Диспетчеризация и modbus
> Есть ещё вопрос, при управлении контроллера со скады
> необходимо, чтобы при обрыве связи в контролер переключался
> в другой режим управления (местный или таймер) как в
> программе определить что связь оборвалась (можно конечно
> запрограммировать обмен сигналами скады и контроллера и
> аварию при отсутствии ответа в течении времени, может быть
> есть какой то более эффективный способ?)
Нет, в сетях подобной организации не предусмотрено механизма проверки ведомым устройством наличия связи. Это можно осуществить только косвенно. В наших прикладных программах нет никакого детектирования связи с диспетчерской программой. Таймер работает в любом случае, если включен (есть связь или нет), а режим местный/дистанционный переключается как местно (на самом контроллере), так и удалённо (из диспетчерской программы).
Наличие связи можно определять только косвенно или введением протокола обмена (это тот вариант, который вы предложили). Косвенно, это (например): если заранее известно, что скада опрашивает контроллер не реже какого-либо отрезка времени, то можно использовать блок SMH2010(link), настроить на нужный порт и анализировать выход TrmPacket на предмет изменения количества отосланных скаде пакетов. Если пакеты не отсылаются в течении некоторого времени, значит скада не опрашивает, значит связи нет.
|