Уточните, пожалуйста где DWORD? Если вы о 16#FF00 - значение вполне умещается в WORD. Если Вы в режиме стоп установили "вручную" команду запуска, модуль должен был начать опрос. Пожалуйста подробнее опишите Ваши действия.
ну примерно так
var
myTP:TP; (* Таймер отсчета по переднему фронту IN*)
myR_TRIG:R_TRIG; (* Обнаружение начала события *)
end_var
myR_TRIG(CLK:=incoming_event);
myTP(IN:=incoming_event,PT:=#5s); (*Запуск по внешнему событию*)
if myTP.Q and myR_TRIG.Q then
command_Start_read:=16#00FF;
else
if not myTP.Q then
command_Start_read:=16#00FE;
end_if
end_if
incoming_event:=false;
Пояснения - цикл сканирования выполняется часто - порядка 1 мс. Для модуля Modbus Master этой 1 ms недостаточно что бы прочитать значения переменной на макс. скорости 115200. Время 5c - абстрактное, Вам нужно вычислить его исходя из Вашей скорости обмена, кол-ва переменных, количества перезапросов, таймаутов, и байт запрос-ответ на каждую переменную.
Значение watchdoga Вы задаете сами в PLC Configuration->(Корень)->MaxCyclLength
Оценить время циклы вы можете добавив модуль статистика (в PLC Configuraton).
Если Ваши POU (в PLC_PRG) или задачах выполняются дольше, чем максимальное время цикла - однозначно сработает






