Статусы ОРС#

При получении данных от 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).