Статусы ОРС
Содержание
Статусы ОРС#
При получении данных от OPC серверов измерение, помимо значения характеризуется таким параметром как «качество».
Качество - это числовое значение, которое состоит из набора битов описанных в стандарте ОРС. Качество определяет то, насколько полученному значения можно доверять, т.е. было ли оно получено в результате успешного измерения или при его получении возникали какие-либо ошибки.
При получении значений ОРС Клиент транслирует стандартные для протокола ОРС значения качества в статусы системы IngortechSCADA.
Качество ОРС#
Общее качество измерения определяется набором из трех компонентов:
OPC_QUALITY_MASK |
0xC0 |
11000000 |
Тип качества |
OPC_STATE_MASK |
0x3C |
00111100 |
Тип состояния |
OPC_LIMIT_MASK |
0x03 |
00000011 |
Тип превышения |
Тип качества#
Значения в диапазоне «11000000» обозначают тип качества измерения.
Тип качества определяет общее качество измерения и может принимать следующие значения:
OPCST_ST_OK |
0xC0 |
11000000 |
Хороше Этот типа качества обозначает, что значение было корректно измерено в нормальных условиях и без ошибок. |
OPCST_ST_BAD |
0x00 |
00000000 |
Плохое Этот типа качества обозначает, что при измерении возникли ошибки и значение не было измерено. |
OPCST_ST_UNC |
0x40 |
01000000 |
Неуверенное Этот типа качества обозначает, что значение было измерено, но его величина может не точно соответствовать измеряемой величине. |
OPCST_ST_UNK |
0x80 |
10000000 |
Неизвестное Этот типа качества обозначает, что значение находится в неизвестном состоянии по каким-либо причинам. |
Информация
Из этого набора только тип состояния OPCST_ST_OK обозначает что измерение произведено полностью успешно.
Значение этого состояния в десятичной системе: 192, таким образом, если ОРС передал измерение с качеством 192 - это обозначает, что измерение полностью успешное и при этом не содержит никакой дополнительной информации.
Тип состояния#
Значения в диапазоне «00111100» обозначают тип состояния.
Тип состояния - это код, определяемый разработчиком оборудования, которые используется для обозначения состояния измерения или его ошибки.
Стандарт ОРС подразумевает, что для каждого типа качества определен свой набор значений типов состояний.
OPCST_ST_OK, Хорошее качество
Типы состояний стандартом не определяются, однако производители могут использовать свои значения.
OPCST_ST_BAD, Плохое качество
Для этого состояния стандарт описывает следующий набор состояний:
OPC_QUALITY_CONFIG_ERROR |
0x04 |
Ошибка конфигурации |
OPC_QUALITY_NOT_CONNECTED |
0x08 |
Датчик не подключен |
OPC_QUALITY_DEVICE_FAILURE |
0x0c |
Ошибка датчика/Измерителя |
OPC_QUALITY_SENSOR_FAILURE |
0x10 |
Ошибка чувствительного элемента |
OPC_QUALITY_LAST_KNOWN |
0x14 |
Последнее известное значение |
OPC_QUALITY_COMM_FAILURE |
0x18 |
Ошибка связи |
OPC_QUALITY_OUT_OF_SERVICE |
0x1C |
Датчик отключен |
Так же, производители могут использовать дополнительные значения для обозначения собственных состояний.
OPCST_ST_UNC, Неуверенное качество
Для этого состояния стандарт описывает следующий набор состояний:
OPC_QUALITY_LAST_USABLE |
0x44 |
Последнее известное |
OPC_QUALITY_SENSOR_CAL |
0x50 |
Датчик калибруется |
OPC_QUALITY_EGU_EXCEEDED |
0x54 |
Превышение |
OPC_QUALITY_SUB_NORMAL |
0x58 |
Так же, производители могут использовать дополнительные значения для обозначения собственных состояний.
OPCST_ST_UNK, Неизвестное качество
Для этого состояния стандарт описывает следующий набор состояний:
OPC_QUALITY_LOCAL_OVERRIDE |
0xD8 |
Так же, производители могут использовать дополнительные значения для обозначения собственных состояний.
Тип превышения#
Значения в диапазоне «00000011» обозначают тип превышения измерением установленных порогов.
Стандарт определяет следующие значения для этой величины:
OPC_LIMIT_OK |
0 |
Значение находится в нормальной зоне |
OPC_LIMIT_LOW |
1 |
Значение ниже нижнего порога |
OPC_LIMIT_HIGH |
2 |
Значение выше верхнего порога |
OPC_LIMIT_CONST |
3 |
Пороги не определены |
Интерпретация качества#
При получении значения от OPC сервера, для интерпретации качество измерения необходимо перевести полученной значение в двоичную систему счисления, выделить необходимые биты и, в соответствии с таблицами выше, вычислить расшифровку состояния измерения.
Как правило, качество измерения передается типовым набором значений, поэтому на практике, для определения качества, можно использовать следующую таблицу с диапазонами значений качества:
64 и менее |
0x40 |
Качество плохое, значение измерено с ошибкой |
65..191 |
0x41..0xBF |
Качество неуверенное, значению нельзя доверять |
192 и более |
0xC0 |
Качество хорошее |
Статусы РТС#
При получении значения от OPC сервера, в зависимости от полученного качества устанавливаются различные статусы РТС.
OPCST_ST_OK, Хорошее качество
Если эти биты установлены, то устанавливается статус «ОК» для всех типов переменных.
Аналоговые |
0 |
VARS_A_OK |
Дискретные |
0 или 1 |
Статус устанавливается в значение VARS_D_ON (1) или VARS_D_OFF (0) в зависимости от значения измерения. |
Команды |
0 |
VARS_C_COMPLETE |
Ответ |
7 |
VARS_R_COMPLETE |
Уведомление |
10 |
VARS_N_COMPLETE |
Другое качество
В случае, если значение типа качества не соответствует величине «хорошее» (OPCST_ST_OK), значение статуса РТС устанавливается в зависимости от типа переменной РТС и полученного в качестве типа состояния.
Аналоговые переменные
OPC_QUALITY_BAD |
2 |
VARS_A_NOTWORK |
OPC_QUALITY_CONFIG_ERROR |
5 |
VARS_A_CONFIG |
OPC_QUALITY_NOT_CONNECTED |
1 |
VARS_A_NOTCONNECT |
OPC_QUALITY_DEVICE_FAILURE |
2 |
VARS_A_NOTWORK |
OPC_QUALITY_SENSOR_FAILURE |
2 |
VARS_A_NOTWORK |
OPC_QUALITY_COMM_FAILURE |
11 |
VARS_A_NOCARIER |
OPC_QUALITY_OUT_OF_SERVICE |
1 |
VARS_A_NOTCONNECT |
OPC_QUALITY_WAITING_FOR_INITIAL_DATA |
11 |
VARS_A_NOCARIER |
Для всех остальных значений используется статус VARS_A_UNKNOWN (15).
Дискретные переменные
OPC_QUALITY_BAD |
3 |
VARS_D_ERROR |
OPC_QUALITY_CONFIG_ERROR |
7 |
VARS_D_CONFIG |
OPC_QUALITY_NOT_CONNECTED |
2 |
VARS_D_NOTCONFIG |
OPC_QUALITY_DEVICE_FAILURE |
3 |
VARS_D_ERROR |
OPC_QUALITY_SENSOR_FAILURE |
3 |
VARS_D_ERROR |
OPC_QUALITY_COMM_FAILURE |
4 |
VARS_D_NOCARIER |
OPC_QUALITY_OUT_OF_SERVICE |
2 |
VARS_D_NOTCONFIG |
OPC_QUALITY_WAITING_FOR_INITIAL_DATA |
2 |
VARS_D_NOCARIER |
Для всех остальных значений используется статус VARS_D_UNKNOWN (15).
Команды
OPC_QUALITY_BAD |
7 |
VARS_C_NOTWORK |
OPC_QUALITY_CONFIG_ERROR |
5 |
VARS_C_NOTCONNECT |
OPC_QUALITY_NOT_CONNECTED |
7 |
VARS_C_NOTWORK |
OPC_QUALITY_DEVICE_FAILURE |
7 |
VARS_C_NOTWORK |
OPC_QUALITY_SENSOR_FAILURE |
7 |
VARS_C_NOTWORK |
OPC_QUALITY_COMM_FAILURE |
5 |
VARS_C_NOTCONNECT |
OPC_QUALITY_OUT_OF_SERVICE |
7 |
VARS_D_NOTCONFIG |
OPC_QUALITY_WAITING_FOR_INITIAL_DATA |
5 |
VARS_C_NOTCONNECT |
Для всех остальных значений используется статус VARS_C_INVALID (3).
Ответы
Все значения качества для переменных этого типа транслируются в статус VARS_R_INVALID (10).
Уведомления
Все значения качества для переменных этого типа транслируются в статус VARS_N_INVALID (12).