Показано с 1 по 10 из 17

Тема: Соединить программу на ПК с программой для ПЛК выполняющейся в режиме эмуляции

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,256

    По умолчанию

    Цитата Сообщение от kost2 Посмотреть сообщение
    Печально.
    Как же тогда отлаживать что-то работающее по сети? только на железе получается
    А это сильно зависит от опыта. Через библиотеки модбас и либсокет любую задачу можно решить и на ВинНТ

  2. #2

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    А это сильно зависит от опыта. Через библиотеки модбас и либсокет любую задачу можно решить и на ВинНТ
    Немного не понял...
    Т.е. мне нужно написать свою прогу для ПЛК ВинНТ, а затем просто поменять целевую платформу на нужный мне ПЛК? или посложнее дело обстоит?

  3. #3
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,256

    По умолчанию

    Цитата Сообщение от kost2 Посмотреть сообщение
    Немного не понял...
    Т.е. мне нужно написать свою прогу для ПЛК ВинНТ, а затем просто поменять целевую платформу на нужный мне ПЛК? или посложнее дело обстоит?
    Примерно так, можно еще создать проект под конкретный плк, а затем с помощью экспорта/импорта перенести свой код без конфигурации

  4. #4

    По умолчанию

    В теории все вроде понятно, на практике PLC WinNT 2.4.7.38 (DEMO) отказывается открывать com-порт в примере по записи через Modbus с сайта owen.ru
    Код:
    PROGRAM PLC_PRG
    VAR
    	get1_modbus: MB_RD_HOLD_REGS;    
    	get2_modbus: MB_RD_INP_REGS;		
    	get3_modbus: MB_RD_HOLD_REGS;
    	Buffer: ARRAY[0..255] OF BYTE;		
         	cmpl: BOOL;
    	port_opened:  BYTE := 0;
    	Init: BOOL;					
    	Settings:COMSETTINGS;		
          	com_num: PORTS:=2;				
    	enabl: BOOL;		
    	err: INT;							
    	TimeOut: TIME:=T#50ms;				
    	Exception: BYTE;
    	DataSize: WORD;
    	master1: BYTE:= 1;
    
    	t: DWORD;						
    	A: WORD := 0;					
    	x:WORD;						
    	x1: WORD;					
    	x2: WORD;					
    	x3: WORD;					
    	d:  REAL;					
    	ptr_D:POINTER TO BYTE;
    
    	COM_SERVICE1: COM_SERVICE;
    END_VAR
    Код:
    t:=t+1;
    IF (t MOD 1000)=0 THEN
    	A := A + 1;
    		IF A > 9999 THEN
    			A := 0;
    		END_IF
    END_IF
    
    IF port_opened=0 THEN
    		Settings.Port:=com_num;            
    		Settings.dwBaudRate:=115200;   
    		Settings.byParity:=0;
    		Settings.dwTimeout:=0;
    		Settings.byStopBits:=1;
    		Settings.dwBufferSize:=0;
    		Settings.dwScan:=0;
    END_IF
    
    COM_SERVICE1(Enable:=(port_opened=0) , Settings:=Settings , Task:=OPEN_TSK  );
    IF COM_SERVICE1.ready THEN (*здесь всегда false получается*)
    	port_opened:=2;
    END_IF
    виртуальные com-порты создавал с помощью com0com и virtual serial port driver 6.9 - проверял их через HyperTerminal все работает правильно

Похожие темы

  1. Ответов: 9
    Последнее сообщение: 05.04.2017, 13:20
  2. Соединить ПМ01 и ТРМ101
    от sasnnick в разделе Эксплуатация
    Ответов: 5
    Последнее сообщение: 22.01.2011, 12:27
  3. Ответов: 1
    Последнее сообщение: 16.02.2009, 15:09
  4. проблема соединить плк по тср через хаб
    от Павел ГОН в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 26.06.2007, 08:19

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •