Переменные
Начиная с версии 2.2.1 в программе АСУД.SCADA доступен ряд дополнительных функциональных возможностей по анализу состояния группы дискретных сигналов.
Данный функционал реализуется с помощью механизма "Переменных".
Переменные - это некий аналог Item в понимании OPC-сервера, но реализованный на стороне Scada.
Переменная может быть связана с несколькими Item OPC-сервера, значение Переменной при этом определяется как логическая функция от состояния связанных Item.
В настоящее время доступны следующие логические функции:
- OR - логическое ИЛИ
- AND - логическое И.
Несмотря на то, что переменная может быть связана с любым типом Item, пока (в связи со спецификой реализации) имеет смысл сопоставлять ее с Item типа:
- дискретный датчик;
- канал ПГС;
- канал управления.
Значение, которые может принимать Переменная:
- 0 - состояние Норма
- 1 - состояние Активное (Сигнальное)
Привязать Переменную можно через свойство Тэг к примитивам
- Дискретный сигнал
- Изображение (см. дополнительные примитивы).
Что в итоге сейчас можно реализовать:
Для Дискретного датчика
Датчик будет срабатывать при одновременной сработке связанных дискретных сигналов или сработке любого из связанных дискретных сигналов.
Для Изображения
- Показать Изображение 1 в случае если любой из анализируемых сигналов находится в Активном (сигнальном) состоянии
- Показать Изображение 2 иначе
или
- Показать Изображение 1 в случае если все из анализируемых сигналов находится в Активном (сигнальном) состоянии
- Показать Изображение 2 иначе
Для использования примитивов в АСУД.SCADA следует добавить модуль variables.psm в папку ..\Scada\Modules
Настройка Scada
В режиме настройки выбрать меню Вид / Переменные
Слева указаны зарегистрированные Переменные.
Имя переменной имеет вид "Var..". Изменить имя нельзя, оно присваивается автоматически при создании переменной.
Для добавления Переменной следует кликнуть правой кнопкой мыши в списке Имя переменной.
Настройки переменной:
- Название - не изменяемое поле
- Тип - реализуемая логическая функция OR или AND
- Журнал - название типа неисправности (для Дискретного датчика будет отображаться в Журнале событий)
- Адрес - адрес (для Дискретного датчика будет отображаться в Журнале событий)
Далее следует добавить Item OPC-сервера, выполнив клик правой кнопкой мыши в списке Тэги / Переменные.
Сохранить изменения, нажав на пиктограмму "Сохранить все" панели инструментов.
Дискретный датчик
Разместить на карте примитив дискретный датчик, указать в поле Тэг имя переменной, например, Var0, нажать Enter.
Изображение
Разместить на карте примитив Изображение, указать в поле Тэг имя переменной, например, Var0, нажать Enter.
Написать простой Lua-скрипт выбора изображения из перечня (название функции может быть любым).
function img (x)
local xi = math.floor(x)
if (xi == 0) then
return "norma.jpg"
end
if (xi == 1) then
return "alert.jpg"
end
end
Указать в настройках примитива Изображение функцию img.
Пример работы
- два дискретных датчика связанны с Переменными Var1 и Var2
- Переменная Var1 - тип AND
- Переменная Var2 - тип OR
1. Ни один из дискретных сигналов не находится в Активном состоянии.
2. Один из дискретных сигналов находится в Активном состоянии.
Это приводит к переводу в сигнальное состояние переменной Var2 (OR)
3. Оба дискретных сигнала находятся в Активном состоянии.
Это приводит к переводу в сигнальное состояние обоих переменных.