Добрый день.
Подтолкните советом, пожалуйста. Запутался в трех соснах, порыл весь форум, ничего не нашел.
Пытаюсь организовать считывание через 485 порт по протоколу Modbus данных из другого контроллера. Сразу запнулся на функции открытия порта - не открывает. Код следующий:
Код:
PROGRAM MODBUS
VAR
Sett : COM_Settings;
Sett2 : COM_SettingsEx;
port_opened : INT:=0;
Res : SysCom.RTS_IEC_RESULT;
END_VAR
-----------------------------------------------------------
IF (port_opened=0) THEN
SysComClose(0); (* закрытие порта *)
SysComOpen(0,Res);
SysComGetSettings(0,ADR(Sett),ADR(Sett2));
Sett.sPort:=SYS_COMPORT_NONE;
Sett.ulBaudrate:=SYS_BR_19200;
Sett.byParity:=SYS_NOPARITY;
Sett.ulTimeout:=0;
Sett.byStopBits:=SYS_ONESTOPBIT;
Sett.ulBufferSize:=0;
Res:=SysComSetSettings(0, ADR(Sett),ADR(Sett2));
IF Res=0 THEN (* запуск порта*)
port_opened:=2;
ELSE
//Res:=SysComClose(hCom:=COM_Handle);
port_opened:=-1;
END_IF
END_IF
В итоге, port_opened=-1. Ни одна функция не отрабатывает корректно. Res в последнем присваивании = 1. SysComOpen возвращает 16#FFFFFFFF.