Смотря кто курица , а кто яйцо..., ПЛК у нас - клиент , а модуль - сервер .Если модуль включил релюху , значит принял команду и,должен был отправить ответ .
Щас от нефиг делать открыл библиотеку и... блок MB_UNI_IO - T_FRTU: TIME := T#3ms; (* межкадровый интервал режима RTU *) по ходу из-за этого на низких скоростях 19200 не работает
.
Ой ... та як воно тута...шедеврально , эдакий мастер... так и напрашивается на ...покусание сторожевой собакой:
(* Чтение / запись данных по протоколу MODBUS. Complete -
* выставляется на один цикл до начала следующего чтения / записи. *)
Complete := FALSE; (* снять признак готовности результата *)
Exception := EXC_NO; (* очистить регистр ошибок *)
IF Active = FALSE THEN (* проверить доступность нового цикла обмена *)
Active := TRUE; (* установить признак активности цикла обмена *)
WHILE SysComRead(ComHandle, ADR(DataBuf), SIZEOF(DataBuf), 0) <> 0 DO;
END_WHILE
Read := FALSE; (* снять признак чтения кадра *)
tonTimer(IN := FALSE); (* остановить таймер тайм-аута *)
END_IF
Овен в своем амплуа и репертуаре...




, ПЛК у нас - клиент , а модуль - сервер .Если модуль включил релюху , значит принял команду и,должен был отправить ответ .
Ответить с цитированием