Годится, но только если на этом интерфейсе висит одно-единственное устройство, с адресом 12. Или же если хотим следить лишь за отсутствием ошибок на данном интерфейсе, без уточнения конкретного устройства, вызвавшего ошибку (тогда адрес игнорируем, следим только за LAST485ERR).Цитата:
Лаконичнее надо.
Если же устройств два и более - то фиксировать ошибку обмена по "Last Address" и "Last Error" придется индивидуально для каждого адреса. Иначе результат условия LAST485ADR=12 AND LAST485ERR=81 не останется в TRUE на протяжении полутора секунд - ПЛК за это время перейдет к обмену с другим устройством, LAST485ADR станет уже не равным 12, таймер сбросится...
Предложенный мной вариант далек от изящества и сильно попахивает индусским кодом, но принцип иллюстрирует верно. Обнаружили ошибку обмена с данным адресом - запускаем TON, очередной обмен с этим адресом прошел успешно - сбрасываем. И так для каждого устройства на этом интерфейсе.