PDA

Просмотр полной версии : Не получается открыть порт 485 (ПЛК304)



Vox
26.01.2011, 15:18
Добрый день.
Подтолкните советом, пожалуйста. Запутался в трех соснах, порыл весь форум, ничего не нашел.
Пытаюсь организовать считывание через 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.

Vox
26.01.2011, 17:29
Валенок, нет, не прокатывает. Хотя и не удивительно, это те же яйца, только вид сбоку - функции-то те же самые использованы. Думаю, есть некоторые особенности в библиотеках CoDeSys v3 по сравнению со второй версией.

Евгений Сергеевич
28.01.2011, 10:02
to Vox
Посмотрите все таки библиотеку