Приветствую! Не смог найти ответа на форуме, поэтому спрошу. Разбираюсь с работой по Modbus через библиотеку. Не могу понять, как реализовать период опроса внешнего устройства по времени, как это было в конфигураторе.
Хочу реализовать проект следующим образом - подпрограмма для обмена по RS485:
Код:
CASE master1 OF
0: (* функция 06 - запись параметра типа Int в прибор*)
send1_modbus(
Enable:= enabl, (* разрешение работы блока *)
Mode:=MB_RTU, (*режим передачи*)
DevAddr:= INT_TO_BYTE(Dev), (*адрес*)
RegAddr:= Adrs, (*регистр*)
Value:=Din, (*значение переменной, которое надо передать*)
ComHandle:= Settings.Port, (*номер сом-порта*)
TimeOut:=TimeOut , (*таймаут T#50ms*)
Complete=>cmpl , (* скопировать признак завершения операции *)
Exception=>err ); (* скопировать регистр ошибок *)
(*если установлен признак завершения операции, то *)
IF cmpl THEN
master1:=1; (*переходим к выполнению следующего блока*)
а само обращение из основной программы. Приблизительно так:
Код:
RS485(enabl:= enabl, Din:= A , Dev:= Panel1, Adrs:=402);
RS485(enabl:= enabl, Din:= B , Dev:= Panel2, Adrs:=403);
Как сделать, чтобы передача каждого регистра происходила с периодом 100 мс? И, вообще, допустимы ли подобные решения?