ivan_ivan » 30 май 2024, 17:34
Подскажите, как грамотно сделать так чтобы на панели-слэйве можно было узнать о том что мастер ПЛК выключен, либо отвалился модбас?
Пока сделал коряво - с мастера пересылаю бит во внутренний регистр панели со стандартным интервалом модбас
Также есть макрос, который выполняется периодически (пробовал 2-5 секунд) и выставляет ноль в тот же бит, чтобы при отваливании мастера можно было увидеть что в отслеживаемом регистре 0
И также есть макрос, который меняет окна в зависимости от состояния отслеживаемого бита. Учитывая что бит перетирается в ноль каждые несколько секунд автоматически, то периодически происходит перехлест и на доли секунды вылетает окно с ошибкой, даже если ее нет на самом деле
Н т.е. если контроллер не успел отправить новый запрос с единичкой вовремя.
Смотрел системные регистры из раздела 22.3.12 в документации
Там регистр receives request всегда выставлен, даже если запросов от мастера давно не было
Попробовал регистр request's function code - MODBUS server (LW-9270 и далее), присылает номер функции из последнего запроса мастера
Может быть как-то в макросе считать время от последнего обновления этого регистра и при определенном тайм ауте считать что мастер отвалился.
Но не нашел, можно ли такое сделать. Видимо нет.