Переменные: различия между версиями
Alex (обсуждение | вклад) |
Alex (обсуждение | вклад) |
||
| Строка 210: | Строка 210: | ||
** КУН.DiscretChannel3 | ** КУН.DiscretChannel3 | ||
Var1 | |||
* Тип - OR | * Тип - OR | ||
* Журнал - Выше нормы | * Журнал - Выше нормы | ||
Версия от 07:56, 20 октября 2017
Введение
Версия 2.3.1 update 3
Начиная с версии 2.2.2 в программе АСУД.SCADA доступен ряд дополнительных функциональных возможностей по анализу состояния группы дискретных сигналов.
Данный функционал реализуется с помощью механизма "Переменных".
Переменные - это некий аналог Item в понимании OPC-сервера, но реализованный на стороне Scada.
Переменная в общем случае может быть связана с несколькими Item OPC-сервера. Значение Переменной при этом определяется, как функция от состояния связанных Item.
Значение, которые может принимать Переменная:
- 0 - состояние Норма
- 1 - состояние Активное (Сигнальное)
- 3 - подтвержденное сигнальное состояние (желтый восклицательный знак).
Изменение состояния Переменной будет отображаться в Журнале событий и в Оперативном журнале.
В настоящее время реализованы следующие функции:
| Тип функции | Описание | Число связанных Item | Типы связанных Item |
|---|---|---|---|
| OR | Логическое ИЛИ (анализируется только младший бит Item) | Любое |
|
| AND | Логическое И (анализируется только младший бит Item) | Любое |
|
| XOR | Логическое исключающее ИЛИ (анализируется только младший бит Item) | 2 |
|
| <> 0 | Сравнение с 0 (авария - числовое значение <> 0) | 1 | Числовое значение |
| Bit | Проверка указанного бита (авария - бит = 1) | 1 | Числовое значение |
| BitInv | Проверка указанного бита (авария - бит = 0) | 1 | Числовое значение |
| Bit+AND (OR) | Проверка указанного бита (авария - бит = 1) затем AND (OR) | Любое | Числовое значение |
| BitInv+AND (OR) | Проверка указанного бита (авария - бит = 0) затем AND (OR) | Любое | Числовое значение |
Последние 5 типов удобно использовать при визуализации данных контроллеров сторонних производителей, например: Modbus-устройств.
В Scada можно привязать Переменную через свойство Тэг к примитивам
- Дискретный сигнал (набор примитивов) - это наиболее типовой случай применения.
- Изображение (см. дополнительные примитивы)
- и т.п.
Настройка OPC-сервера
Внимание! Важно!
Если для отображения состояния переменной используется примитив типа Дискретный датчик, то дополнительной настройки ОРС-сервера не требуется.
В случае использования примитивов типа Изображение (или любого другого примитива, у которого нет сигнального состояния с красным восклицательным знаком) - следует в настройках OPC-сервера для всех связанных с переменной дискретных сигналов настроить режим Уровень безопасности в Обычный (по умолчанию значение установлено в Охрана).
Уровень безопасности в Обычный - не требует обязательного подтверждения Диспетчером сигнального состояния примитива.
Настройка Scada
В режиме настройки выбрать меню Вид / Переменные
Слева указаны зарегистрированные Переменные.
Имя переменной всегда начинается с "Var..".
Для добавления Переменной следует кликнуть правой кнопкой мыши в списке Имя переменной.
Настройки переменной:
- Название - имя переменной (без приставки Var)
- Журнал событие - название типа неисправности (для Дискретного датчика будет отображаться в Журнале событий)
- Журнал адрес - адрес (для Дискретного датчика будет отображаться в Журнале событий)
- Тип - реализуемая функция
- Бит - номер бита 1..32 (младший - 1)
Далее следует добавить Item OPC-сервера, выполнив клик правой кнопкой мыши в списке Тэги / Переменные.
После добавления Item в окне отобразится их текущее состояние и вычисленное текущее состояние Переменной.
После внесения изменений следует сохранить их, нажав на пиктограмму "Сохранить все" панели инструментов.
Дискретный датчик
Разместить на карте примитив дискретный датчик, указать в поле Тэг имя переменной, например, Var0, нажать Enter.
Размещать (визуализировать) на карте все связанные с переменной дискретные сигналы необходимости нет. Однако, если они будут размещены, то при переходе Примитива, связанного с переменной в сигнальное состояние, его подтверждение (с помощью мыши или трубки) будет приводить к авто-подтверждению связанных с переменной Item-ов.
Изображение
Разместить на карте примитив Изображение, указать в поле Тэг имя переменной, например, 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. Оба дискретных сигнала находятся в Активном состоянии.
Это приводит к переводу в сигнальное состояние обоих переменных.
Пример решения типовых задач
Выделить битовое состояние из числа (Modbus-устройства)
Пусть есть Modbus-устройство, в одном из регистров которого записано целочисленное значение, являющееся битовым набором состояний датчиков и, например: установленный (в 1) 3-й бит является признаком ошибки Насоса1, которую необходимо визуализировать.
Решение
1. Настройка ASUDBase
Выполнить регистрацию Modbus-устройства. Добавить настройку регистра, указав тип в виде целочисленного значения. При этом нет необходимости дополнительно указывать регистр с типом BIT и использовать настройку Виртуальный КДД-RS (как это было ранее).
Далее, запустить KCSLogger и прочитать состояние устройства.
2. Настройка OPC-сервера
Добавить Контейнер оборудования \ Прибор учета
3. Настройка Scada
Открываем меню Вид / Переменные
Добавляем переменную Var0, переименовываем имя в VarPump1
VarPump1
- Журнал событие - Насос 1
- Журнал адрес - адрес установки устройства
- Тип - BIT
- Бит - 3
- Тэги
- Контейнер.Прибор.PumpState (ваше название Тэга)
Отобразить на ситуационном плане любой примитив Дискретный датчик и в свойстве Тэг указать вручную VarPump1 (нажать Enter).
Логическая группировка сигналов
Пусть есть устройство, подключенное к концентратору КУН, которое выдает 5 дискретных сигналов.
При этом считается, что:
- одновременная сработка сигналов 1-3 с двухминутной задержкой является переходом устройства в состояние Неисправность
- cработка любого из сигналов 4,5 без задержки является признаком состояния Выше нормы.
Необходимо отобразить в Scada 2-а дискретных датчика, отражающих состояния устройства:
- Неисправность.
- Выше нормы.
Решение
1. Настройка OPC-сервера
Настраиваем концентратор КУН-2Д.1, к которому подключено устройство.
Настраиваем 5 дискретных сигналов (например, 1 сигнал устройства подключен к входу 3 КУН, 2 - к 4, и т.д.):
- для каждого из входов КУН 3 - 5 указываем задержку 2 мин.
Закрываем Конфигуратор
2. Настройка Scada
Открываем меню Вид / Переменные
Добавляем 2 переменные Var0, Var1
Var0
- Тип - AND
- Журнал - Неисправность
- Адрес - адрес установки устройства
- Тэги
- КУН.DiscretChannel1 (это 3 вход на плате КУН-2Д.1)
- КУН.DiscretChannel2
- КУН.DiscretChannel3
Var1
- Тип - OR
- Журнал - Выше нормы
- Адрес - адрес установки устройства
- Тэги
- КУН.DiscretChannel4 (это 6 вход на плате КУН-2Д.1)
- КУН.DiscretChannel5
Отобразить на ситуационном плане любой примитив Дискретный датчик и в свойстве Тэг указать вручную Var0 (нажать Enter)
Повторить тоже самое для переменной Var1.