Переменные: различия между версиями
Alex (обсуждение | вклад) Нет описания правки |
Alex (обсуждение | вклад) Нет описания правки |
||
| Строка 2: | Строка 2: | ||
== Введение == | == Введение == | ||
В программе АСУД.SCADA доступен ряд дополнительных функциональных возможностей по анализу состояния группы дискретных сигналов. | |||
Данный функционал реализуется с помощью механизма "Переменных". | Данный функционал реализуется с помощью механизма "Переменных". | ||
| Строка 13: | Строка 10: | ||
Переменная в общем случае может быть связана с несколькими Item OPC-сервера. Значение Переменной при этом определяется, как функция от состояния связанных Item. | Переменная в общем случае может быть связана с несколькими Item OPC-сервера. Значение Переменной при этом определяется, как функция от состояния связанных Item. | ||
Значение, которые может принимать Переменная: | Переменная может быть двух типов: | ||
*Дискретный сигнал - обычно это некая логическая операция над группой Item, например: отобразить аварию, если Item1 и Item2 в аварии. | |||
*Число - некая математическая операция над значением одного или нескольких Item. | |||
Значение, которые может принимать Переменная типа дискретный сигнал: | |||
*0 - состояние Норма | *0 - состояние Норма | ||
| Строка 19: | Строка 21: | ||
*3 - подтвержденное сигнальное состояние (желтый восклицательный знак). | *3 - подтвержденное сигнальное состояние (желтый восклицательный знак). | ||
Изменение состояния Переменной будет отображаться в Журнале событий и в Оперативном журнале. | Изменение состояния Переменной (если она связана с какми-либо Примитивом) будет отображаться в Журнале событий и в Оперативном журнале. | ||
В Scada можно привязать Переменную через свойство Тэг к примитивам | В Scada можно привязать Переменную через свойство Тэг почти к любым примитивам, например: | ||
*Дискретный сигнал (набор примитивов) - это наиболее типовой случай применения. | *Дискретный сигнал (набор примитивов) - это наиболее типовой случай применения. | ||
| Строка 29: | Строка 31: | ||
== Настройка OPC-сервера == | == Настройка OPC-сервера == | ||
Никакой специальной настройки OPC-сервера при использовании переменных не требуется. | |||
== Настройка Scada == | == Настройка Scada == | ||
| Строка 45: | Строка 41: | ||
Слева указаны зарегистрированные Переменные. | Слева указаны зарегистрированные Переменные. | ||
Имя переменной всегда начинается с '''" | Имя переменной всегда начинается с '''"VAR."''' | ||
Для добавления Переменной следует кликнуть правой кнопкой мыши в списке Переменной. | Для добавления Переменной следует кликнуть правой кнопкой мыши в списке Переменной. | ||
| Строка 60: | Строка 56: | ||
*Название - имя переменной (без приставки '''Var.''') | *Название - имя переменной (без приставки '''Var.''') | ||
*Журнал событие - название типа неисправности ( | *Журнал событие - название типа неисправности (будет отображаться в [[Журнал_событий,_заявок,_записи_переговоров|Журнале событий]]) | ||
*Журнал адрес - адрес ( | *Журнал адрес - адрес (отображаться в [[Журнал_событий,_заявок,_записи_переговоров|Журнале событий]]) | ||
*Тип - реализуемая функция обработки значения | *Задержка - задержка в (с) сработки переменной. Только для типа переменной - Дискретный сигнал | ||
* | *Тип данных - тип переменной | ||
**Дискретный сигнал | |||
**Число | |||
*Тип обработки - реализуемая функция обработки значения | |||
**для Дискретного сигнала - выбрать из списка (подробнее см. примеры далее) | |||
**для Числа - использовать ВЫРАЖЕНИЕ (подробнее см. примеры далее) | |||
*Выражение - для типа ВЫРАЖЕНИЕ следует указать правило обработки входного значения | |||
Далее следует добавить Item OPC-сервера, выполнив клик правой кнопкой мыши в списке Тэги / Переменные. | Далее следует добавить Item OPC-сервера, выполнив клик правой кнопкой мыши в списке Тэги / Переменные. | ||
| Строка 69: | Строка 71: | ||
После добавления Item в окне отобразится их текущее состояние и вычисленное текущее состояние Переменной. | После добавления Item в окне отобразится их текущее состояние и вычисленное текущее состояние Переменной. | ||
В настоящее время реализованы следующие функции обработки (Типы обработки) значений Item: | |||
В настоящее время реализованы следующие функции: | |||
{| class="wikitable" | {| class="wikitable" | ||
| Строка 156: | Строка 156: | ||
После внесения изменений следует сохранить их, нажав на пиктограмму "Сохранить все" панели инструментов. | После внесения изменений следует сохранить их, нажав на пиктограмму "Сохранить все" панели инструментов. | ||
== | == Пример работы == | ||
Рассмотрим следующий демонстрационный пример. | |||
Предположим у нас есть дискретных сигнала: Item1 и Item2. | |||
Оба Item связаны с двумя переменными VAR.1 и VAR.2. Обе переменные типа Дискретный сигнал, | |||
*Переменная VAR.1 - тип обработки AND (логическое "и") | |||
*Переменная VAR.2 - тип обработки OR (логическое "или"). | |||
Отобразим на карте четыре примитива типа дискретный датчик и свяжем их с переменными и Item. | |||
1. Ни один из дискретных сигналов не находится в Активном состоянии. | 1. Ни один из дискретных сигналов не находится в Активном состоянии. | ||
| Строка 195: | Строка 175: | ||
2. Один из дискретных сигналов находится в Активном состоянии. | 2. Один из дискретных сигналов находится в Активном состоянии. | ||
Это приводит к переводу в сигнальное состояние переменной | Это приводит к переводу в сигнальное состояние переменной VAR.2 (OR) - тип ИЛИ. | ||
[[File:Variables alert.PNG|center|600px|Переменные Норма]] | [[File:Variables alert.PNG|center|600px|Переменные Норма]] | ||
| Строка 209: | Строка 189: | ||
=== Выделить битовое состояние из числа (Modbus-устройства) === | === Выделить битовое состояние из числа (Modbus-устройства) === | ||
Пусть есть [[Modbus-устройства|Modbus-устройство]], в одном из регистров которого записано целочисленное значение, являющееся битовым набором состояний датчиков и, например: установленный | Пусть есть [[Modbus-устройства|Modbus-устройство]], в одном из регистров которого записано целочисленное значение, являющееся битовым набором состояний датчиков и, например: установленный в единицу 3-й бит является признаком ошибки Насоса1, которую необходимо визуализировать. | ||
'''Решение''' | '''Решение''' | ||
Открываем меню Вид / Переменные | Открываем меню Вид / Переменные | ||
Добавляем переменную | Добавляем переменную VAR.0, переименовываем имя в VAR.Pump1 | ||
VAR.Pump1 | |||
*Журнал событие - Насос 1 | *Журнал событие - Насос 1 | ||
*Журнал адрес - адрес установки устройства | *Журнал адрес - адрес установки устройства | ||
*Тэги | *Тэги | ||
** | **ваше название Тэга | ||
*Тип - ВЫРАЖЕНИЕ | *Тип - Дискретный сигнал | ||
*Тип обработки - ВЫРАЖЕНИЕ | |||
*Выражение - BIT(X;3) | *Выражение - BIT(X;3) | ||
Отобразить на ситуационном плане любой примитив Дискретный датчик и в свойстве Тэг указать вручную | Отобразить на ситуационном плане любой примитив Дискретный датчик и в свойстве Тэг указать вручную VAR.Pump1 (нажать Enter). | ||
=== Логическая группировка сигналов === | === Логическая группировка сигналов === | ||
| Строка 268: | Строка 237: | ||
Открываем меню Вид / Переменные | Открываем меню Вид / Переменные | ||
Добавляем 2 переменные | Добавляем 2 переменные VAR.0, VAR.1 | ||
VAR.0 | |||
*Тип - AND | *Тип - Дискретный сигнал | ||
*Тип обработки - AND | |||
*Журнал - Неисправность | *Журнал - Неисправность | ||
*Адрес - адрес установки устройства | *Адрес - адрес установки устройства | ||
| Строка 280: | Строка 250: | ||
**КУН.DiscretChannel3 | **КУН.DiscretChannel3 | ||
VAR.1 | |||
*Тип - OR | *Тип - Дискретный сигнал | ||
*Тип обработки - OR | |||
*Журнал - Выше нормы | *Журнал - Выше нормы | ||
*Адрес - адрес установки устройства | *Адрес - адрес установки устройства | ||
| Строка 289: | Строка 260: | ||
**КУН.DiscretChannel5 | **КУН.DiscretChannel5 | ||
Отобразить на ситуационном плане любой примитив Дискретный датчик и в свойстве Тэг указать вручную | Отобразить на ситуационном плане любой примитив Дискретный датчик и в свойстве Тэг указать вручную VAR.0 (нажать Enter) | ||
Повторить тоже самое для переменной VAR.1 | |||
[[Category:SCADA]] | [[Category:SCADA]] | ||
Версия от 13:19, 29 декабря 2020
Введение
В программе АСУД.SCADA доступен ряд дополнительных функциональных возможностей по анализу состояния группы дискретных сигналов.
Данный функционал реализуется с помощью механизма "Переменных".
Переменные - это некий аналог Item в понимании OPC-сервера, но реализованный на стороне Scada.
Переменная в общем случае может быть связана с несколькими Item OPC-сервера. Значение Переменной при этом определяется, как функция от состояния связанных Item.
Переменная может быть двух типов:
- Дискретный сигнал - обычно это некая логическая операция над группой Item, например: отобразить аварию, если Item1 и Item2 в аварии.
- Число - некая математическая операция над значением одного или нескольких Item.
Значение, которые может принимать Переменная типа дискретный сигнал:
- 0 - состояние Норма
- 1 - состояние Активное (Сигнальное)
- 3 - подтвержденное сигнальное состояние (желтый восклицательный знак).
Изменение состояния Переменной (если она связана с какми-либо Примитивом) будет отображаться в Журнале событий и в Оперативном журнале.
В Scada можно привязать Переменную через свойство Тэг почти к любым примитивам, например:
- Дискретный сигнал (набор примитивов) - это наиболее типовой случай применения.
- LED, Изображение (см. дополнительные примитивы)
- и т.п.
Настройка OPC-сервера
Никакой специальной настройки OPC-сервера при использовании переменных не требуется.
Настройка Scada
В режиме настройки выбрать меню Вид / Переменные
Слева указаны зарегистрированные Переменные.
Имя переменной всегда начинается с "VAR."
Для добавления Переменной следует кликнуть правой кнопкой мыши в списке Переменной.
Элементы меню добавления переменной:
- Добавить - добавить новую переменную
- Копия (полная) - скопировать настройки текущей переменной (удобно при разбивке битовой маски одного Item, при настройке Modbus-устройства)
- Копия (без тегов) - скопировать настройки текущей переменной без заполнения Тегов
- Удалить - удалить переменную
- Имя в буфер обмена - скопировать имя переменной в буфер обмена для последующей вставки в свойство Тег Примитива на карте
Настройки переменной:
- Название - имя переменной (без приставки Var.)
- Журнал событие - название типа неисправности (будет отображаться в Журнале событий)
- Журнал адрес - адрес (отображаться в Журнале событий)
- Задержка - задержка в (с) сработки переменной. Только для типа переменной - Дискретный сигнал
- Тип данных - тип переменной
- Дискретный сигнал
- Число
- Тип обработки - реализуемая функция обработки значения
- для Дискретного сигнала - выбрать из списка (подробнее см. примеры далее)
- для Числа - использовать ВЫРАЖЕНИЕ (подробнее см. примеры далее)
- Выражение - для типа ВЫРАЖЕНИЕ следует указать правило обработки входного значения
Далее следует добавить Item OPC-сервера, выполнив клик правой кнопкой мыши в списке Тэги / Переменные.
После добавления Item в окне отобразится их текущее состояние и вычисленное текущее состояние Переменной.
В настоящее время реализованы следующие функции обработки (Типы обработки) значений Item:
| Тип функции | Описание | Число связанных Item | Типы связанных Item |
|---|---|---|---|
| OR | Логическое ИЛИ (анализируется только младший бит Item) | Любое |
|
| AND | Логическое И (анализируется только младший бит Item) | Любое |
|
| XOR | Логическое исключающее ИЛИ (анализируется только младший бит Item) | 2 |
|
| !=0 | Сравнение с 0 (авария - числовое значение <> 0) | 1 | Числовое значение |
| ВЫРАЖЕНИЕ | Логическое выражение | Любое | Числовое значение |
Последний Тип удобно использовать при визуализации данных контроллеров сторонних производителей, например: Modbus-устройств.
Выражения - позволяют реализовать более сложную модель обработки значения одного или нескольких Item. При этом каждый добавленный Item в разделе Теги и/или Переменные получает условное буквенное обозначение X, Y, Z, K, L и т.д.
Примеры построения выражений:
| Выражение | Описание |
|---|---|
| BIT (X;1) | Проверить установленный 1-ый бит в значении Item-а. Нумерация бит 32..1 (1 - младший) |
| X > 10 | Проверить, что значение Item-a больше 10 |
| X == 5 | Проверить, что значение Item-a равно 5 |
| X != 2 | Проверить, что значение Item-a не равно 2 |
| X !! Y | Логическое ИЛИ двух значений Item |
| X && Y | Логическое И двух значений Item |
| X % 2 | X mod 2 |
| X div 2 | X div 2 |
После внесения изменений следует сохранить их, нажав на пиктограмму "Сохранить все" панели инструментов.
Пример работы
Рассмотрим следующий демонстрационный пример.
Предположим у нас есть дискретных сигнала: Item1 и Item2.
Оба Item связаны с двумя переменными VAR.1 и VAR.2. Обе переменные типа Дискретный сигнал,
- Переменная VAR.1 - тип обработки AND (логическое "и")
- Переменная VAR.2 - тип обработки OR (логическое "или").
Отобразим на карте четыре примитива типа дискретный датчик и свяжем их с переменными и Item.
1. Ни один из дискретных сигналов не находится в Активном состоянии.
2. Один из дискретных сигналов находится в Активном состоянии.
Это приводит к переводу в сигнальное состояние переменной VAR.2 (OR) - тип ИЛИ.
3. Оба дискретных сигнала находятся в Активном состоянии.
Это приводит к переводу в сигнальное состояние обоих переменных.
Пример решения типовых задач
Выделить битовое состояние из числа (Modbus-устройства)
Пусть есть Modbus-устройство, в одном из регистров которого записано целочисленное значение, являющееся битовым набором состояний датчиков и, например: установленный в единицу 3-й бит является признаком ошибки Насоса1, которую необходимо визуализировать.
Решение
Открываем меню Вид / Переменные
Добавляем переменную VAR.0, переименовываем имя в VAR.Pump1
VAR.Pump1
- Журнал событие - Насос 1
- Журнал адрес - адрес установки устройства
- Тэги
- ваше название Тэга
- Тип - Дискретный сигнал
- Тип обработки - ВЫРАЖЕНИЕ
- Выражение - BIT(X;3)
Отобразить на ситуационном плане любой примитив Дискретный датчик и в свойстве Тэг указать вручную VAR.Pump1 (нажать Enter).
Логическая группировка сигналов
Пусть есть устройство, подключенное к концентратору КУН, которое выдает 5 дискретных сигналов.
При этом считается, что:
- одновременная сработка сигналов 1-3 с двухминутной задержкой является переходом устройства в состояние Неисправность
- cработка любого из сигналов 4,5 без задержки является признаком состояния Выше нормы.
Необходимо отобразить в Scada 2-а дискретных датчика, отражающих состояния устройства:
- Неисправность.
- Выше нормы.
Решение
1. Настройка OPC-сервера
Настраиваем концентратор КУН-2Д.1, к которому подключено устройство.
Настраиваем 5 дискретных сигналов (например, 1 сигнал устройства подключен к входу 3 КУН, 2 - к 4, и т.д.):
- для каждого из входов КУН 3 - 5 указываем задержку 2 мин.
Закрываем Конфигуратор
2. Настройка Scada
Открываем меню Вид / Переменные
Добавляем 2 переменные VAR.0, VAR.1
VAR.0
- Тип - Дискретный сигнал
- Тип обработки - AND
- Журнал - Неисправность
- Адрес - адрес установки устройства
- Тэги
- КУН.DiscretChannel1 (это 3 вход на плате КУН-2Д.1)
- КУН.DiscretChannel2
- КУН.DiscretChannel3
VAR.1
- Тип - Дискретный сигнал
- Тип обработки - OR
- Журнал - Выше нормы
- Адрес - адрес установки устройства
- Тэги
- КУН.DiscretChannel4 (это 6 вход на плате КУН-2Д.1)
- КУН.DiscretChannel5
Отобразить на ситуационном плане любой примитив Дискретный датчик и в свойстве Тэг указать вручную VAR.0 (нажать Enter)
Повторить тоже самое для переменной VAR.1