|
День добрый! Интересует, как в AlarmWorx32 server configurator правильно решить следующие задачи.
1. Аварийный тег с OPC input типа "enumeration". То есть, устройство выдает integer, где значение "0" - нет аварий, значение "1" - авария типа 1, "2" - авария типа 2, и так далее. Сконфигурировал каждый тип аварии в виде отдельного тега, digital alarm, в поле "OPC input 1" ставим выражение x = {{тег OPC}} == 1 для аварии 1-го типа, x = {{тег OPC}} == 2 для аварии 2-го типа, итд. Почему-то не удается просто прописать OPC тег, а значения 1, 2, 3 итд подставлять в поле ALarm State Value, похоже что там все, что больше 0, считается как TRUE и приводит к генерации аварии. Но это ладно. Плохо то, что когда какая-то авария прекратилась, будет выдано сообщение из поля "Return to normal", а если оно пустое, то получим сообщение "digital is normal". Если устройство перешло из одной аварии сразу в другую, это явно лишнее.
2. Хочу записывать логгером события, и опять исходный тег OPC типа enumeration - режим 1, режим 2, режим 3... Опять для каждого значения (режима) создается свой алармовый тег с выражением {{тег OPC}}== 1, {{тег OPC}}== 2 итд. Определяем минимальный приоритет 100, будем расценивать это как события, а не как аварии, убираем необходимость подтверждения оператором "Req ack". И опять проблема в том, что при перехода из режима 1 в режим 2 будет сгенерировано два сообщения: сначала нечто навроде "режим 1 деактивирован", а потом "активирован режим 2". Да, я знаю, что в events можно писать значения, которые ввел оператор с рабочей станции. Но здесь тот случай, когда информация о переключении режимов приходит с самого полевого устройства, т.к. переключения могут производиться с локального дисплея на устройстве.
Мои вопросы: 1. Как оптимально решить данные задачи в Gen32? 2. Можно ли в принципе убрать генерацию сообщений по возвращению аварийного тега в норму, для определенных тегов (где поле return to normal пустое, например)?
|
|
К сожалению, убрать генерацию сообщения при возврате в норму нельзя, но можно изменить текст (если это поможет задаче): например, сделать вывод пустой строки. Для AlarmWorX Viewer можно отфильтровать нежелательные сообщения о возврате в норму, но в лог (через Alarm Logger) они всё равно писаться будут. Оптимальное решение для enumerated-аварий именно через регистрацию Digital (как Вы и делаете), но с фильтрацией Viewer по возврату в норму.
|