Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Все по ФБ (VS6).doc
Скачиваний:
12
Добавлен:
01.07.2025
Размер:
210 Кб
Скачать
☆

Признаки качества в Функциональных блоках Коды признака качества значения

Константа

Назначение

Описание

OPC_QUALITY_CONFIG_ERROR

Ошибка конфигурации

Алгоритм имеет проблемы с конфигурацией, например,

не все связи или настройки заданы

OPC_QUALITY_NOT_CONNECTED

Нет соединения

Алгоритм имеет проблемы со связью, например, у входа алгоритма оборвана связь с выходом алгоритма-источника данных

OPC_QUALITY_DEVICE_FAILURE

Ошибка устройства

Предписанные алгоритмом операции нельзя выполнить (например, деление на нуль или переполнение порядка)

OPC_QUALITY_SENSOR_FAILURE

Ошибка датчика

Хотя бы одна входная переменная не удовлетворяет условиям, накладываемым на входные переменные алгоритмом, или хотя бы одна входная переменная пришла с любым из плохих признаков качества

OPC_QUALITY_LAST_KNOWN

Последнее известное значение

Сбой связи. Последнее опрошенное значение доступно. Время опроса имеется в отметке времени, сопровождающей значение

OPC_QUALITY_COMM_FAILURE

Нет связи

Связи с источником данных для какого-либо из входов нет. Последнее опрошенное значение не существует. Или алгоритм работает, но выходное значение пока еще не сформировано (например. расчет интеграла)

OPC_QUALITY_OUT_OF_SERVICE

Не обслуживается

При существующих настройках алгоритма данный выход не формируется.

Установка признаков качества выходов фб

  1. Алгоритм имеет проблемы, не позволяющие ему установить правильные значения на выходы. Например в случаях

    • «Алгоритм имеет проблемы с конфигурацией»

    • «Предписанные алгоритмом операции нельзя выполнить(если ошибка касается всех выходов, а не кагого-нибудь одного)»

    • «Хотя бы одна входная переменная не удовлетворяет условиям, накладываемым на входные переменные алгоритмом».

В этих случаях необходимо вызвать функцию SetErrorOnPout (передается код ошибки) и прервать вычисления. Функция UpdatePoutData может иметь такой вид:

HRESULT UpdatePoutData(long lWave)

{

if (<ошибка конфигурации>){

SetErrorOnPout (OPC_QUALITY_CONFIG_ERROR);

return S_OK;

}

if (<входные переменные не удовлетворяют некоторым условиям>){

SetErrorOnPout (OPC_QUALITY_SENSOR_FAILURE);

return S_OK;

}

<Вычисление выходных значений>

return S_OK;

}

  1. Значение какой-то одной выходной переменной нельзя вычислить. Необходимо вызвать функцию SetPoutData([GroupIndex,] PoutIndex, m_varEmpty, -1, DefaultFileTime, Validity) Validity – код ошибки DefaultFileTime – специальная константа, указывающая на то, что метку времени выхода надо вычислить исходя из меток времени входов.

  2. Значение выхода посчитать можно, но оно имеет некоторые признаки качества Необходимо вызвать функцию SetPoutData([GroupIndex,] PoutIndex, Value, -1, DefaultFileTime, Validity) Value – значение выхода

  3. Если хотя бы одна входная переменная пришла с любым из плохих признаков качества, то перед вызовом UpdatePoutData на все выходы будет автоматически выставлен признак качества OPC_QUALITY_SENSOR_FAILURE.