Показано с 1 по 5 из 5

Тема: ПЛК160 RS232 SysLibCom

  1. #1

    По умолчанию ПЛК160 RS232 SysLibCom

    Здравствуйте,
    Взял библиотеку SysLibCom, подключил ее к RS232 и использую пример
    SysLibCom.jpg

    код из примера:
    Код HTML:
    (* Пример выдает в интерфейс RS-485 каждую секунду строку "TEST1"
        Настройка порта 9600, 7бит, нет четности, один стоп бит                           *)
    PROGRAM PLC_PRG
    VAR
    	port_opened: BOOL := FALSE;
    	com_handle: DWORD;
    	com_num: PORTS:=0;
    	com_set: COMSETTINGS;
    	com_setEx:	COMSETTINGSEX;
    	res: BOOL;
    	tOn1:TON;
    	start_tmr:BOOL:=FALSE;
    	tr1:R_TRIG;
    	snd_str: STRING:='TEST1$N';
    	port_init: BOOL;
    	rcvbuf:ARRAY [0..1023] OF BYTE;
    	sz:DWORD;
    END_VAR
    
    
    
    
    
    
    (*Открываем порт*)
    IF NOT port_opened THEN
    	com_handle:=SysComOpen(com_num);
    	IF com_handle<>16#FFFFFFFF THEN
    		port_init:=TRUE;
    	ELSE
    		SysComClose(	com_num);
    		com_handle:=SysComOpen(	com_num);
    		port_init:=TRUE;
    
    	END_IF
    (*
    (*Настраиваем скорость*)
    	com_set.Port:=com_num;
    	com_set.dwBaudRate:=115200;
    	com_set.byParity:=0;
    	com_set.dwTimeout:=0;
    	com_set.byStopBits:=0; (* *)
    	com_set.dwBufferSize:=0;
    	com_set.dwScan:=0;
    	res:=SysComSetSettings(com_num,ADR(com_set));
    (*Успешно открыли*)
    	IF NOT res THEN
    		port_opened:=TRUE;
    	END_IF
    
    *)
    	com_setEx.Size:=SIZEOF(com_setEx);
    	com_setEx.Port:=com_num;
          com_setEx.dwBaudRate:=9600;
    
    	com_setEx.byStopBits:=0;
    (*
       byStopBits:BYTE; 	Кол-во стоповых бит 0 =один, 1=полтора , 2=два
    *)
    	com_setEx.byParity:=0;
    (*
       byParity:BYTE;	 	Режим проверки четности 0 = нет, 1 = нечет, 2 = чет
    *)
    
        com_setEx.dwTimeout:=0;(*
    DWORD; 	Не используется должно быть =0
    *)
      com_setEx.dwBufferSize:=0;
    (*DWORD; 	Не используется должно быть =0
    *)
      com_setEx.dwScan:=0;(*DWORD; 	Не используется должно быть =0
    *)
    
      com_setEx.cByteSize :=7;
    (* BYTE;         Длина символа в битах   5-8 бит.
    *)	
    (*
       fOutxCtsFlow :  BOOL;  Определяет состояние вывода CTS в PLC-100 не распаян
    
       fDtrControl : BYTE; 	Определяет состояние вывода DTR в PLC-100 не распаян
    
       fDsrSensitivity : BOOL; Определяет чувствительность к состоянию вывода DTR в PLC-
                                100 не распаян
       f RtsControl : BYTE;     Определяет состояние вывода RTS в PLC-100 не распаян
    
       fOutxDsrFlow : BOOL;  Определяет состояние вывода DSR в PLC-100 не распаян
    *)
    
    	res:=SysComSetSettingsEx(com_num,ADR(com_setEx));
    
    (*Успешно открыли*)
    	IF NOT res THEN
    		port_opened:=TRUE;
    	END_IF
    END_IF
    
    IF NOT port_opened THEN
    	RETURN;
    END_IF
    
    	ton1(In:=start_tmr,pt:=t#1s);
    	start_tmr:=TRUE;
    	tr1(clk:=ton1.Q);
    	IF tr1.Q THEN
    		SysComWrite(com_num,ADR(snd_str),LEN(snd_str),0);
    		start_tmr:=FALSE;
    	END_IF
    
    	sz:=SysComRead(com_num,ADR(rcvBUF),1024,0);
    возвращается открытый порт:

    подкл_1.jpg
    подкл_2.jpg

    Но в порт ни чего не идет.
    Гипер.jpg
    Только осваиваю, вопросов много. Помогите пожалуйста, может что то включить еще надо?

  2. #2

    По умолчанию

    Может вам начать с чего попроще, взять какой нибудь модуль и его опросить.
    Лучше напишите что вы хотите сделать.
    Вы же закоментировали половину программы , настройки сети не выставили и что то хотите добиться ещё, просто жесть.

  3. #3

    По умолчанию

    Дескриптор порта com_handle на картинках равен 0, получается порт не открылся. Номер порта у 232 вроде 1, 0 - это 485. Лучше другой пример взять

  4. #4

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Может вам начать с чего попроще, взять какой нибудь модуль и его опросить.
    Лучше напишите что вы хотите сделать.
    Вы же закоментировали половину программы , настройки сети не выставили и что то хотите добиться ещё, просто жесть.
    Modbus RTU, я уже делал через конфигуратор. А этот пример с сайта https://owen.ru/product/codesys_v2/libraries - так что я ни чего не комментировал.

  5. #5

    По умолчанию

    Цитата Сообщение от BodDen Посмотреть сообщение
    Modbus RTU, я уже делал через конфигуратор. А этот пример с сайта https://owen.ru/product/codesys_v2/libraries - так что я ни чего не комментировал.
    Ниже примеры
    Возьмите
    Примеры сетевого обмена / 5 Обмен через библиотеки Modbus и OwenNet, выберите пример с Модбас и читайте комментарии в программе
    https://owen.ru/product/codesys_v2/example_program

Похожие темы

  1. ПЛК160/RS232 - AC3-M подключение
    от In_Da_Cher_A в разделе ПЛК1хх
    Ответов: 24
    Последнее сообщение: 26.03.2024, 18:41
  2. Связь ПЛК160 с СП270 по RS232
    от GREGORY64 в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 23.02.2020, 10:01
  3. Ответов: 6
    Последнее сообщение: 22.05.2017, 12:31
  4. ПЛК150 (TCP) - (RS232) NPort 5110 ( Ethernet) - (RS232) СП270
    от AvtCom в разделе Панели оператора (HMI)
    Ответов: 1
    Последнее сообщение: 02.12.2015, 17:43
  5. ПЛК150 (TCP) - (RS232) NPort 5110 ( Ethernet) - (RS232) СП270
    от AvtCom в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 29.11.2015, 17:52

Ваши права

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