я сделал например вот так. но еще не тестил на стенде. Если найдете ошибку - поправьте.
IF LAST485ADR=12 AND LAST485ERR=81 THEN TIMER_MZD2(IN:=TRUE, PT:=T#1500ms);
ELSE MZD2_CON_ERR:=FALSE;
END_IF;
TIMER_MZD2();
MZD2_CON_ERR:=TIMER_MZD2.Q;
псевдокод: если последний адрес и последний код ошибки равны соответственно 12(адрес вашего устройства) и 81(код ошибки "нет связи"), то запустить таймер TON. Если по прошествии заданного времени PT условие продолжает фиксировать "LAST485ADR=12 AND LAST485ERR=81" То таймер дойдет до конца, выставит выход в true и переменной отвечающей за ошибку связи вашего модуля установится выходное значение таймера. В противном случае (если фиксируется сочитание отличное от заданного условия) переменная ошибки выставляется в FALSE. получается что у вас ничего не затирается и ошибка если есть пишется в спец.переменную





