Предположим я поверил. Он работает с заранее заданными параметрами. А когда он отсчет начал в моменте когда ему что-то присвоили или же в этом моменте tonTimer();. и вообще программа там будет стоять и чего-то ждать? и вообще в чем смысл этой записи?
Все тот-же пример из библиотеки modbus.lib
По сути в IF THEN таймер уже запустился и начал считать до значения T_FRTU и он досчитает до него. Либо таймер умирает как только мы выходим из условия и для этого он еще раз вызывается с параметрами заданными строкой выше. Верно ли я сужу?Код:IF Mode = MB_RTU THEN (* прием кадра RTU *) IF MB_RTU_RX( ComHandle, (* дескриптор последовательного порта SysLibCom *) DataBuf, (* буфер принимаемого кадра *) DataSize, (* указатель буфера кадра *) StartFrame) (* признак начала кадра *) = RX_CONT THEN (* приемный буфер обновился *) tonTimer(IN := FALSE); (* остановить таймер тайм-аута *) tonTimer(IN := TRUE, (* запустить таймер на ожидание конца кадра *) PT := T_FRTU); END_IF tonTimer(); (* отработать цикл таймера тайм-аута *) IF tonTimer.Q = TRUE THEN (* стработал таймер любого тайм-аута *)




Ответить с цитированием
