Возможно есть другой способ опроса... Для опроса по трём функциям сделал в основном цикле такую конструкцию:
Код:
CASE i OF
0: (*функция 01*)
IF RL1.FUN<>1 THEN
T1:=TIME();
END_IF
RL1.FUN:=1;
IF (TIME()-T1)>T#200ms THEN i:=1; END_IF (*время адержки перехода на следующую функцию*)
1: (*функция 02*)
IF RL1.FUN<>2 THEN
T2:=TIME();
END_IF
RL1.FUN:=2;
IF (TIME()-T2)>T#500ms THEN i:=2; END_IF (*время задержки перехода на следующую функцию*)
2: IF V<>V_bak THEN (*функция 05*)
V_bak:=V;
RL1.wrDO:= NOT RL1.wrDO;
T3:=TIME();
RL1.FUN:=5;
END_IF
IF (TIME()-T3)>T#1s THEN i:=0; END_IF (*время задержки перехода на следующую функцию*)
END_CASE
В соответсвующей функции опрашиваю модуль также оператором case - передаю из основной программы посредством RL1.FUN.
Так теперь работает.