Сопоставление
Мэппинг — это проекция битов в пользовательские биты «КАСКАД Цифра».
- Нет: пользовательским битам не назначается никаких качеств
- Биты для серверов: пользовательским битам 1-32 назначаются только биты для серверов.
- «Authorization bits» («Биты полномочий»): Стандартные биты: пользовательским битам назначаются только биты OPC по умолчанию.
В зависимости от комбинации всех битов качества, либо только качества и подстатуса, либо только подстатуса, либо только пределов. QQSSSSLL назначается, начиная с QQ соответственно SSSS соответственно LL:
Качество, Подстатус и Пределы: назначать все 8 битов пользовательским битам. QQ назначается пользовательским битам 1+2, SSSS битам 3-6, LL битам 7,8
Качество и Подстатус: назначать только QQSSSS, начиная с пользовательского бита X. Это означает, что QQ присваивается X, X+1.
Подстатус: назначает только SSSS, начиная с пользовательского бита X
:Предельные значения: назначить только LL пользовательским битам X, X+1
ПРИМЕРЫ
Биты для «Принято, местная блокировка» задают X, X+1 (Принято), X+3, X+4 (Местная блокировка). Для пользовательского бита 2 это означает:
x | x | x | x |
«Превышено количество инженерных модулей» задает X+1, X+3.
x | x |
«Нижнее ограничение, напр., задает единственный пользовательский бит X+1
x |
Эти настройки представляют собой состояние качества для значения данных позиции. Это аналогично, но проще, чем спецификация качества протокола полевой шины (раздел 4.4.1 в окончательных спецификациях H1). Данная конструкция существенно упрощает определение функционала, который необходимо реализовать, как для серверных, так и для клиентских приложений.
Нижние 8 бит флагов качества в настоящий момент определяются в форме трех битовых полей: Качество, Подстатус, и состояние предельного значения. 8 битов качества располагаются следующим образом:
QQSSSSLL
Верхние 8 бит слова качества доступны для использования поставщиком. При использовании этих бит стандартные биты качества OPC все равно должны быть заданы как можно точнее, для того, чтобы клиент мог предстказать, чего ожидать от возвращенных данных. Кроме того, каждый клиент, интерпретирующий описатель качества от конкретного поставщика, несет ответственность за то, чтобы сервер, предоставляющий этот описатель, руководствовался теми же правилами, что и клиент. Подробная информация о подобной самонастройке в данном стандарте не указывается, несмотря на возможность подхода с обращением Queryinterface к серверу за интерфейсом конкретного поставщика, таким, как IMyQualityDefinitions.
Сведения о стандартных битах качества OPC:
Битовое поле качества
Битовое значение | Определить | Описание | |
0 | 00SSSSLL | Bad | Значение непригодно по причинам, указанным описателем «Подстатус» |
1 | 01SSSSLL | Uncertain | Качество значения неизвестно по причинам, указанным описателем «Подстатус» |
2 | 10SSSSLL | Неприменимо | Не используется OPC |
3 | 11SSSSLL | Good (Принято) | Качество значения соответствует требованиям. |
Комментарий:
Сервер, не поддерживающий какого либо описателя качества, должен возвращать 3 (Good). Допустим также сигнал Bad или Good от сервера (0x00 или 0xC0) и всегда возвращать 0 для описателя «Подстатус» и предельного значения.
Рекомендуется, чтобы клиенты как минимум проводили битовое поле качества всех результатов (даже если они не проверяют поля подстатуса или предельных значений).
Даже в случае возврата значения ‘BAD’ содержание поля значения должно быть хорошо определенным ТИПОМ ДАННЫХ, даже если он не содержит точного значения. Это необходимо для упрощения обработки ошибок в клиентских приложениях. Например, всегда ожидается, что клиенты будут вызывать VariantClear() по результатам синхронного чтения (Synchronous Read). Аналогично, IAdviseSink должна иметь возможность интерпретировать и «распаковывать» Значение и Данные, включенные в Поток, даже если данные определены как BAD.
Если у сервера нет известных значений для возврата, то необходимо вернуть соответствующее значение по умолчанию, например строку NULL или числовое значение 0.
Битовое поле подстатуса
Вид этого поля зависит от значения поля качества.
Подстатус для качества BAD :
SSSS | Битовое значение | Определить | Описание |
0 | 000000LL | Non-specific | Значение ошибочно по неизвестной причине. |
1 | 000001LL | Configuration Error | Проблемы конфигурации, характерные для сервера. Например, единицей является вопрос, удаленный из конфигурации. |
2 | 000010LL | Not Connected | Вход должен быть логически соединен с чем-то, но соединение отсутствует. Этот описатель может свидетельствовать об отсутствии доступных значений в настоящее время, например, потому что значение не было передано источником данных. |
3 | 000011LL | Device Failure | Обнаружен отказ устройства |
4 | 000100LL | Sensor Failure | Обнаружен отказ датчика (поле «Предельные значения» может дать дополнительную информацию для диагностики в некоторых ситуациях.) |
5 | 000101LL | Last Known Value | Отказ обмена данными. Тем не менее, доступно последнее известное значение. Обратите внимание, что «возраст» значения может определяться значением TIMESTAMP в поле OPCITEMSTATE. |
6 | 000110LL | Comm Failure | Отказ обмена данными. Последнее известное значение отсутствует |
7 | 000111LL | Out of Service | Блок не доступен для опроса, либо заблокирован иным способом. Этот описатель также используется, когда активное состояние единицы или группы, в состав которой входит единица, неактивно. |
8-15 | — | Неприменимо | Не используется OPC |
Комментарий
Серверы, не поддерживающие подстатус, должны возвращать 0. Обратите внимание, что возможен возврат «старого» значения в случае, если описатель качества настроен на BAD (0) а описатель Substatus настроен на 5. Это единственный случай, когда клиент может принять значение ‘BAD’ в качестве пригодного для применения.
Подстатус для Качества UNCERTAIN :
SSSS | Битовое значение | Определить | Описание |
0 | 010000LL | Non-specific | Отстутствует конкретная причина возврата такого значения. |
1 | 010001LL | Last Usable Value | Устройство, которое записывало это значение, остановлено. Возвращаемое значение должно считаться «устаревшим». Обратите внимание, что оно отличается от значения BAD с подстатусом 5 (Последнее известное значение). Это состояние ассоциируется только с обнаружимой ошибкой обмена данных Эта ошибка ассоциируется с отказом какого-либо из внешних источников, который записывает это значение с заданными интервалами. Обратите внимание, что «возраст» значения может определяться значением TIMESTAMP в поле OPCITEMSTATE. |
2-3 | — | Неприменимо | Не используется OPC |
4 | 010100LL | Sensor Not Accurate | Значение «зафиксировано» в одном из предельных значений датчика (в этом случае поле предельного значения должно быть задано как 1 или 2), либо с помощью какого-либо средства внутренней диагностикии стало известно о нарушении калибровки датчика (в этом случае предельное значение должно быть задано как 0). |
5 | 010101LL | Engineering Units Exceeded | Возвращаемое значение выходит за предельные значения для этого параметра. Обратите внимание, что в данном случае (согласно спецификации Fieldbus), поля «предельные значения» свидетельствуют о том, какое предельное значение превышено, но НЕ обязательно означает, что это значение не может уйти дальше за пределы. |
6 | 010110LL | Sub-Normal | Значение было получено из нескольких источников, число которых ниже, чем необходимо для сигнала Good. |
7-15 | — | Неприменимо | Не используется OPC |
Комментарий
Серверы, не поддерживающие подстатус, должны возвращать 0.
Подстатус для Качества GOOD :
SSSS | Битовое значение | Определить | Описание |
0 | 110000LL | Non-specific | Значение принято. Особые условия отстутсвуют |
1-5 | — | Неприменимо | Не используется OPC |
6 | 110110LL | Local Override | Значение было перекрыто. Как правило, это означает об отключении входа и ручном вводе значения с последующим принудительным перекрытием исходного значения. |
7-15 | — | Неприменимо | Не используется OPC |
Комментарий
Серверы, не поддерживающие подстатус, должны возвращать 0.
The Limit BitField
Поле предельного значения всегда правильно вне зависимости от качества и подстатуса. В некоторых случаях, таких, как отказ датчика, оно может предоставить полезную для диагностики информацию.
LL: | Битовое значение | Определить | Описание |
0 | QQSSSS00 | Not Limited | Значение может повышаться или понижаться. |
1 | QQSSSS01 | Low Limited | Значению присвоен нижний предел. |
2 | QQSSSS10 | High Limited | Значению присвоен верхний предел. |
3 | QQSSSS11 | Константа | Значение постоянно и не может меняться. |
Комментарий
Серверы, не поддерживающие предельное значение, должны возвращать 0.
Символьные равенства определяются для значений и масок для этих битовых полей в разделее «QUALITY» файлов заголовков OPC.