Рассмотрим состояния дискретного датчика, отображаемые OPC-сервером Tekon.OPC.DA
Состояние (State) кодируется 2 байтами
b15 b14 .... b1 b0 , где
- b15 - бит реального состояния дискретного входа: 0 - разомкнут, 1 - вход замкнут.
- b1 - бит отклика диспетчера на аварию: 0 - диспетчер с аварией ознакомился, 1 - диспетчер с аварией еще не ознакомился.
- b0 - бит признака аварии, выставляемый OPC-сервером (исходя из настроек дискретного входа : инверсии, задержки и т.п.): 0 - нет авария, 1 - авария.
Введение и b15 и b0 - не является дублированием, b15 - отражает реальное состояние входа в данный момент времени, а b0 - выставляется в зависимости от дополнительных настроек: Инверсии, Задержки, Чувствительности.
Бит b1 - позволяет в АСУД.SCADA реализовать функционал ознакомления диспетчера с аварией. Данный бит выставляется в 1, когда диспетчер "подтверждает" аварийный сигнал: т.е. в OPC-сервер записывается значение State = State or 0x02.
При этом, если дискретный вход в OPC-сервере запрограммирован как "Охрана" (значение по умолчанию), то выставление бита b1 - является обязательным, для сброса сигнала в нормальное состояние, после пропадания "аварии". Что может быть не удобно при работе с OPC-сервером из сторонних SCADA. В этом случае рекомендуется настраивать дискретный вход как "Обычный", в этом случае бит b1 - не используется.
Пример расшифровки состояния дискретных входов:
- Значение 32769 (0х8001) - вход замкнут, авария
- Значение 0 (0х00) - вход разомнут, нет аварии.
- Значение 32771 (0х8003) - вход замкнут, авария, диспетчер ознакомился.
- Значение 32768 (0х8000) - вход замкнут, нет аварии.
- Значение 3 (0х03) - вход разомкнут, авария, диспетчер ознакомился.
Внимание! Если в сторонней SCADA (или в АСУД.SCADA если сигнал связан с примитивом текстовое поле + скрипт, а не дискретный датчик) видно значение:
- Значение 1 (0х01) - вход разомкнут, авария, диспетчер не ознакомился.
При этом авария фактически уже прошла (т.е. датчик нормально-разомкнутый, разомкнут), а SCADA все еще показывает аварию, следует проверить настройки OPC-сервера, и изменить настройку датчика с "Охрана" на "Обычный".
В данном случае OPC-сервер ожидает подтверждения ознакомления с аварией (записи b1=1) и не снимает сигнал.
--Alex 11:53, 10 июня 2013 (UTC)