на производстве 12 машин работают на ПЛК110М2, на всех них одна и та же программа. Проблема такая, есть подпрограммы которые по коду операции пришедшему по Modbus запускают некий агрегат по таймеру, код выглядит примерно так:
работает какое то время, но периодически появляется то на одной машине, то на другой машине пропуск операции. Входит в подпрограмму, запускает таймер и он сразу отрабатывает. Сделал принудительный сброс первой итерации с принудительным перезапуском таймера, так:Код:PROGRAM dododo VAR TON_KnL: TON; KnlElasp:BOOL; END_VAR TON_KnL(IN := TRUE, PT := DINT_TO_TIME(TRUNC(UST_Time * 1000)), Q=>KnlElasp); IF(KnlElasp) THEN TON_KnL(IN := FALSE); UST_Time := 0; END_IF;
стало лучше, но пропуски хоть и реже, но продолжают появляться. Может кто то сталкивался с данной проблемой, либо знает как полечить.Код:PROGRAM dododo VAR TON_KnL: TON; KnlElasp:BOOL; inInd:BOOL := TRUE; END_VAR IF(inInd) THEN TON_KnL(IN := FALSE); inInd :=FALSE; ELSE TON_KnL(IN := TRUE, PT := DINT_TO_TIME(TRUNC(UST_Time * 1000)), Q=>KnlElasp); IF(KnlElasp) THEN TON_KnL(IN := FALSE); inInd :=TRUE; UST_Time := 0; END_IF; END_IF;


Ответить с цитированием
), предсказуемые программы.