Переменные: различия между версиями

Материал из TekonWiki
Перейти к навигацииПерейти к поиску
Нет описания правки
Строка 1: Строка 1:
[[Category:ДокументацияСКАДА]]


== Введение ==  
== Введение ==
 
  '''Внимание!'''
  '''Внимание!'''
  Следует обновить SCADA до версии 2.3.8 или обновить модуль Variables
  Следует обновить SCADA до версии 2.3.8 или обновить модуль Variables


Начиная с версии 2.2.2 в программе АСУД.SCADA доступен ряд дополнительных функциональных возможностей по анализу состояния группы дискретных сигналов.  
Начиная с версии 2.2.2 в программе АСУД.SCADA доступен ряд дополнительных функциональных возможностей по анализу состояния группы дискретных сигналов.


Данный функционал реализуется с помощью механизма "Переменных".
Данный функционал реализуется с помощью механизма "Переменных".


Переменные - это некий аналог Item в понимании OPC-сервера, но реализованный на стороне Scada.  
Переменные - это некий аналог Item в понимании OPC-сервера, но реализованный на стороне Scada.


Переменная в общем случае может быть связана с несколькими Item OPC-сервера. Значение Переменной при этом определяется, как функция от состояния связанных Item.  
Переменная в общем случае может быть связана с несколькими Item OPC-сервера. Значение Переменной при этом определяется, как функция от состояния связанных Item.


Значение, которые может принимать Переменная:
Значение, которые может принимать Переменная:
* 0 - состояние Норма
 
* 1 - состояние Активное (Сигнальное)
*0 - состояние Норма  
* 3 - подтвержденное сигнальное состояние (желтый восклицательный знак).
*1 - состояние Активное (Сигнальное)  
*3 - подтвержденное сигнальное состояние (желтый восклицательный знак).  


Изменение состояния Переменной будет отображаться в Журнале событий и в Оперативном журнале.
Изменение состояния Переменной будет отображаться в Журнале событий и в Оперативном журнале.


В Scada можно привязать Переменную через свойство Тэг к примитивам  
В Scada можно привязать Переменную через свойство Тэг к примитивам
* Дискретный сигнал (набор примитивов) - это наиболее типовой случай применения.
 
* LED, Изображение (см. [[Дополнительные_примитивы | дополнительные примитивы]])
*Дискретный сигнал (набор примитивов) - это наиболее типовой случай применения.  
* и т.п.
*LED, Изображение (см. [[Дополнительные_примитивы|дополнительные примитивы]])  
*и т.п.  


== Настройка OPC-сервера ==
== Настройка OPC-сервера ==
Строка 31: Строка 33:
Если для отображения состояния переменной используется примитив типа Дискретный датчик, то дополнительной настройки ОРС-сервера не требуется.
Если для отображения состояния переменной используется примитив типа Дискретный датчик, то дополнительной настройки ОРС-сервера не требуется.


В случае использования примитивов типа Изображение (или любого другого примитива, у которого нет сигнального состояния с красным восклицательным знаком) - следует в настройках OPC-сервера для всех связанных с переменной дискретных сигналов настроить режим Уровень безопасности в ''Обычный'' (по умолчанию значение установлено в ''Охрана'').
В случае использования примитивов типа Изображение (или любого другого примитива, у которого нет сигнального состояния с красным восклицательным знаком) - следует в настройках OPC-сервера для всех связанных с переменной дискретных сигналов настроить режим Уровень безопасности в ''Обычный'' (по умолчанию значение установлено в ''Охрана'').


Уровень безопасности в ''Обычный'' - не требует обязательного подтверждения Диспетчером сигнального состояния примитива.
Уровень безопасности в ''Обычный'' - не требует обязательного подтверждения Диспетчером сигнального состояния примитива.
Строка 39: Строка 41:
В режиме настройки выбрать меню Вид / Переменные
В режиме настройки выбрать меню Вид / Переменные


[[Файл:Variables1.PNG|600px|center|Настройка Переменных]]
[[File:Variables1.PNG|center|600px|Настройка Переменных]]


Слева указаны зарегистрированные Переменные.
Слева указаны зарегистрированные Переменные.


Имя переменной всегда начинается с '''"Var."'''.
Имя переменной всегда начинается с '''"Var."'''.


Для добавления Переменной следует кликнуть правой кнопкой мыши в списке Переменной.
Для добавления Переменной следует кликнуть правой кнопкой мыши в списке Переменной.


Элементы меню добавления переменной:
Элементы меню добавления переменной:
* Добавить - добавить новую переменную  
 
* Копия (полная) - скопировать настройки текущей переменной (удобно при разбивке битовой маски одного Item, при настройке [[Modbus-устройства]])
*Добавить - добавить новую переменную  
* Копия (без тегов) - скопировать настройки текущей переменной без заполнения Тегов
*Копия (полная) - скопировать настройки текущей переменной (удобно при разбивке битовой маски одного Item, при настройке [[Modbus-устройства|Modbus-устройства]])  
* Удалить - удалить переменную
*Копия (без тегов) - скопировать настройки текущей переменной без заполнения Тегов  
* Имя в буфер обмена - скопировать имя переменной в буфер обмена для последующей вставки в свойство Тег Примитива на карте
*Удалить - удалить переменную  
*Имя в буфер обмена - скопировать имя переменной в буфер обмена для последующей вставки в свойство Тег Примитива на карте  


Настройки переменной:
Настройки переменной:
* Название - имя переменной (без приставки '''Var.''')
 
* Журнал событие - название типа неисправности (для Дискретного датчика будет отображаться в Журнале событий)
*Название - имя переменной (без приставки '''Var.''')  
* Журнал адрес - адрес (для Дискретного датчика будет отображаться в Журнале событий)
*Журнал событие - название типа неисправности (для Дискретного датчика будет отображаться в Журнале событий)  
* Тип - реализуемая функция обработки значения  
*Журнал адрес - адрес (для Дискретного датчика будет отображаться в Журнале событий)  
* Задержка - задержка срабатывания Переменной в секундах (max 600 секунд)
*Тип - реализуемая функция обработки значения  
*Задержка - задержка срабатывания Переменной в секундах (max 600 секунд)  


Далее следует добавить Item OPC-сервера, выполнив клик правой кнопкой мыши в списке Тэги / Переменные.
Далее следует добавить Item OPC-сервера, выполнив клик правой кнопкой мыши в списке Тэги / Переменные.
Строка 65: Строка 69:
После добавления Item в окне отобразится их текущее состояние и вычисленное текущее состояние Переменной.
После добавления Item в окне отобразится их текущее состояние и вычисленное текущее состояние Переменной.


=== Тип (функции обработки значений) ===  
=== Тип (функции обработки значений) ===


В настоящее время реализованы следующие функции:
В настоящее время реализованы следующие функции:
{| class="wikitable"
{| class="wikitable"
|-
|-
! Тип функции !! Описание !! Число связанных Item !! Типы связанных Item
! Тип функции
! Описание
! Число связанных Item
! Типы связанных Item
|-
|-
| OR || Логическое ИЛИ (анализируется только младший бит Item)|| Любое || <br>
| OR
* дискретный сигнал;
| Логическое ИЛИ (анализируется только младший бит Item)
* канал ПГС;
| Любое
* канал управления.
| &nbsp;
*дискретный сигнал;  
*канал ПГС;  
*канал управления.  
 
|-
|-
| AND || Логическое И (анализируется только младший бит Item)|| Любое|| <br>
| AND
* дискретный сигнал;
| Логическое И (анализируется только младший бит Item)
* канал ПГС;
| Любое
* канал управления.
| &nbsp;
*дискретный сигнал;  
*канал ПГС;  
*канал управления.  
 
|-
|-
| XOR || Логическое исключающее ИЛИ (анализируется только младший бит Item)|| 2|| <br>
| XOR
* дискретный сигнал;
| Логическое исключающее ИЛИ (анализируется только младший бит Item)
* канал ПГС;
| 2
* канал управления.
| &nbsp;
|-
*дискретный сигнал;  
| !=0 || Сравнение с 0 (авария - числовое значение <> 0) || 1 || Числовое значение
*канал ПГС;  
*канал управления.  
 
|-
|-
| ВЫРАЖЕНИЕ|| Логическое выражение || Любое || Числовое значение
| &nbsp;!=0
| Сравнение с 0 (авария - числовое значение <> 0)
| 1
| Числовое значение
|-
|-
| ВЫРАЖЕНИЕ
| Логическое выражение
| Любое
| Числовое значение
|}
|}


Последний Тип удобно использовать при визуализации данных контроллеров сторонних производителей, например: [[Modbus-устройства|Modbus-устройств]].
Последний Тип удобно использовать при визуализации данных контроллеров сторонних производителей, например: [[Modbus-устройства|Modbus-устройств]].


Выражения - позволяют реализовать более сложную модель обработки значения одного или нескольких Item. При этом каждый добавленный Item в разделе Теги и/или Переменные получает условное буквенное обозначение X, Y, Z, K, L и т.д.  
Выражения - позволяют реализовать более сложную модель обработки значения одного или нескольких Item. При этом каждый добавленный Item в разделе Теги и/или Переменные получает условное буквенное обозначение X, Y, Z, K, L и т.д.


Примеры построения выражений:
Примеры построения выражений:
{| class="wikitable"
{| class="wikitable"
|-
|-
! Выражение !! Описание  
! Выражение
! Описание
|-
|-
| BIT (X;1) || Проверить установленный 1-ый бит в значении Item-а. Нумерация бит 32..1 (1 - младший)
| BIT (X;1)
| Проверить установленный 1-ый бит в значении Item-а. Нумерация бит 32..1 (1 - младший)
|-
|-
| X > 10 || Проверить, что значение Item-a больше 10
| X > 10
| Проверить, что значение Item-a больше 10
|-
|-
| X == 5 || Проверить, что значение Item-a равно 5
| X == 5
| Проверить, что значение Item-a равно 5
|-
|-
| X != 2 || Проверить, что значение Item-a не равно 2
| X&nbsp;!= 2
| Проверить, что значение Item-a не равно 2
|-
|-
| X !! Y || Логическое ИЛИ двух значений Item
| X&nbsp;!! Y
| Логическое ИЛИ двух значений Item
|-
|-
| X && Y || Логическое И двух значений Item
| X && Y
| Логическое И двух значений Item
|-
|-
| X % 2 || X mod 2
| X&nbsp;% 2
|-
| X mod 2
| X div 2 || X div 2
|-
|-
| X div 2
| X div 2
|}
|}


После внесения изменений следует сохранить их, нажав на пиктограмму "Сохранить все" панели инструментов.  
После внесения изменений следует сохранить их, нажав на пиктограмму "Сохранить все" панели инструментов.


=== Дискретный датчик ===  
=== Дискретный датчик ===


Разместить на карте примитив дискретный датчик, указать в поле Тэг имя переменной, например, Var0, нажать Enter.
Разместить на карте примитив дискретный датчик, указать в поле Тэг имя переменной, например, Var0, нажать Enter.


Размещать (визуализировать) на карте все связанные с переменной дискретные сигналы необходимости нет. Однако, если они будут размещены, то при переходе Примитива, связанного с переменной в сигнальное состояние, его подтверждение (с помощью мыши или трубки) будет приводить к авто-подтверждению связанных с переменной Item-ов.  
Размещать (визуализировать) на карте все связанные с переменной дискретные сигналы необходимости нет. Однако, если они будут размещены, то при переходе Примитива, связанного с переменной в сигнальное состояние, его подтверждение (с помощью мыши или трубки) будет приводить к авто-подтверждению связанных с переменной Item-ов.


=== Изображение ===
=== Изображение ===


Разместить на карте примитив [[Дополнительные_примитивы | Изображение]], указать в поле Тэг имя переменной, например, Var0, нажать Enter.
Разместить на карте примитив [[Дополнительные_примитивы|Изображение]], указать в поле Тэг имя переменной, например, Var0, нажать Enter.


Написать простой [[Скрипты | Lua-скрипт]] выбора изображения из перечня (название функции может быть любым).
Написать простой [[Скрипты|Lua-скрипт]] выбора изображения из перечня (название функции может быть любым).


<source lang="php">
&nbsp;
<syntaxhighlight lang="php">
function img (x)
function img (x)
  local xi = math.floor(x)
  local xi = math.floor(x)
Строка 144: Строка 179:
  end
  end
end
end
</source>
</syntaxhighlight>


Указать в настройках примитива Изображение функцию img.
Указать в настройках примитива Изображение функцию img.


== Пример работы ==  
== Пример работы ==
 
* два дискретных датчика связанны с Переменными Var1 и Var2
*два дискретных датчика связанны с Переменными Var1 и Var2  
* Переменная Var1 - тип AND
*Переменная Var1 - тип AND  
* Переменная Var2 - тип OR
*Переменная Var2 - тип OR  


1. Ни один из дискретных сигналов не находится в Активном состоянии.
1. Ни один из дискретных сигналов не находится в Активном состоянии.


[[Файл:Variables_norma.PNG|600px|center|Переменные Норма]]
[[File:Variables norma.PNG|center|600px|Переменные Норма]]


2. Один из дискретных сигналов находится в Активном состоянии.
2. Один из дискретных сигналов находится в Активном состоянии.
Строка 162: Строка 197:
Это приводит к переводу в сигнальное состояние переменной Var2 (OR) - тип ИЛИ.
Это приводит к переводу в сигнальное состояние переменной Var2 (OR) - тип ИЛИ.


[[Файл:Variables_alert.PNG|600px|center|Переменные Норма]]
[[File:Variables alert.PNG|center|600px|Переменные Норма]]


3. Оба дискретных сигнала находятся в Активном состоянии.
3. Оба дискретных сигнала находятся в Активном состоянии.
Строка 168: Строка 203:
Это приводит к переводу в сигнальное состояние обоих переменных.
Это приводит к переводу в сигнальное состояние обоих переменных.


[[Файл:Variables_alert2.PNG|600px|center|Переменные Норма]]
[[File:Variables alert2.PNG|center|600px|Переменные Норма]]


== Пример решения типовых задач ==
== Пример решения типовых задач ==


=== Выделить битовое состояние из числа (Modbus-устройства) ===
=== Выделить битовое состояние из числа (Modbus-устройства) ===
Пусть есть [[Modbus-устройства|Modbus-устройство]], в одном из регистров которого записано целочисленное значение, являющееся битовым набором состояний датчиков и, например: установленный (в 1) 3-й бит является признаком ошибки Насоса1, которую необходимо визуализировать.  
 
Пусть есть [[Modbus-устройства|Modbus-устройство]], в одном из регистров которого записано целочисленное значение, являющееся битовым набором состояний датчиков и, например: установленный (в 1) 3-й бит является признаком ошибки Насоса1, которую необходимо визуализировать.


'''Решение'''
'''Решение'''


1. Настройка ASUDBase  
1. Настройка ASUDBase


Выполнить регистрацию [[Modbus-устройства]]. Добавить настройку регистра, указав тип в виде целочисленного значения. При этом нет необходимости дополнительно указывать регистр с типом BIT и использовать настройку [[Виртуальный КДД-RS]] (как это было ранее).
Выполнить регистрацию [[Modbus-устройства|Modbus-устройства]]. Добавить настройку регистра, указав тип в виде целочисленного значения. При этом нет необходимости дополнительно указывать регистр с типом BIT и использовать настройку [[Виртуальный_КДД-RS|Виртуальный КДД-RS]] (как это было ранее).


Далее, запустить [[KCSLogger]] и прочитать состояние устройства.  
Далее, запустить [[KCSLogger|KCSLogger]] и прочитать состояние устройства.


2. Настройка OPC-сервера
2. Настройка OPC-сервера
Строка 189: Строка 225:
3. Настройка Scada
3. Настройка Scada


Открываем меню Вид / Переменные  
Открываем меню Вид / Переменные


Добавляем переменную Var0, переименовываем имя в VarPump1
Добавляем переменную Var0, переименовываем имя в VarPump1


VarPump1
VarPump1
* Журнал событие - Насос 1
 
* Журнал адрес - адрес установки устройства
*Журнал событие - Насос 1  
* Тэги
*Журнал адрес - адрес установки устройства  
** Контейнер.Прибор.PumpState (ваше название Тэга)
*Тэги  
* Тип - ВЫРАЖЕНИЕ
**Контейнер.Прибор.PumpState (ваше название Тэга)  
* Выражение - BIT(X;3)
*Тип - ВЫРАЖЕНИЕ  
*Выражение - BIT(X;3)  


Отобразить на ситуационном плане любой примитив Дискретный датчик и в свойстве Тэг указать вручную VarPump1 (нажать Enter).
Отобразить на ситуационном плане любой примитив Дискретный датчик и в свойстве Тэг указать вручную VarPump1 (нажать Enter).


=== Логическая группировка сигналов ===
=== Логическая группировка сигналов ===
Пусть есть устройство, подключенное к концентратору КУН, которое выдает 5 дискретных сигналов.<br>  
 
При этом считается, что:  
Пусть есть устройство, подключенное к концентратору КУН, которое выдает 5 дискретных сигналов.<br/> При этом считается, что:
* одновременная сработка  сигналов 1-3 с двухминутной задержкой является переходом устройства в состояние ''Неисправность''
* cработка любого из сигналов 4,5 без задержки является признаком состояния ''Выше нормы''.<br>


Необходимо отобразить в Scada 2-а дискретных датчика, отражающих состояния устройства:  
*одновременная сработка сигналов 1-3 с двухминутной задержкой является переходом устройства в состояние ''Неисправность''
* Неисправность.
*cработка любого из сигналов 4,5 без задержки является признаком состояния ''Выше нормы''.
* Выше нормы.
 
Необходимо отобразить в Scada 2-а дискретных датчика, отражающих состояния устройства:
 
*Неисправность.  
*Выше нормы.  


'''Решение'''
'''Решение'''
Строка 217: Строка 256:
1. Настройка OPC-сервера
1. Настройка OPC-сервера


Настраиваем концентратор КУН-2Д.1, к которому подключено устройство.  
Настраиваем концентратор КУН-2Д.1, к которому подключено устройство.


Настраиваем 5 дискретных сигналов (например, 1 сигнал устройства подключен к входу 3 КУН, 2 - к 4, и т.д.):
Настраиваем 5 дискретных сигналов (например, 1 сигнал устройства подключен к входу 3 КУН, 2 - к 4, и т.д.):
* для каждого из входов КУН 3 - 5 указываем задержку 2 мин.


Закрываем Конфигуратор  
*для каждого из входов КУН 3 - 5 указываем задержку 2 мин.
 
Закрываем Конфигуратор


2. Настройка Scada
2. Настройка Scada


Открываем меню Вид / Переменные  
Открываем меню Вид / Переменные


Добавляем 2 переменные Var0, Var1  
Добавляем 2 переменные Var0, Var1


Var0  
Var0
* Тип - AND
 
* Журнал - Неисправность
*Тип - AND  
* Адрес - адрес установки устройства
*Журнал - Неисправность  
* Тэги
*Адрес - адрес установки устройства  
** КУН.DiscretChannel1 (это 3 вход на плате КУН-2Д.1)
*Тэги  
** КУН.DiscretChannel2
**КУН.DiscretChannel1 (это 3 вход на плате КУН-2Д.1)  
** КУН.DiscretChannel3
**КУН.DiscretChannel2  
**КУН.DiscretChannel3  


Var1
Var1
* Тип - OR
* Журнал - Выше нормы
* Адрес - адрес установки устройства
* Тэги
**  КУН.DiscretChannel4  (это 6 вход на плате КУН-2Д.1)
**  КУН.DiscretChannel5


Отобразить на ситуационном плане любой примитив Дискретный датчик и в свойстве Тэг указать вручную Var0 (нажать Enter)  
*Тип - OR
*Журнал - Выше нормы
*Адрес - адрес установки устройства
*Тэги
**КУН.DiscretChannel4 (это 6 вход на плате КУН-2Д.1)
**КУН.DiscretChannel5 
 
Отобразить на ситуационном плане любой примитив Дискретный датчик и в свойстве Тэг указать вручную Var0 (нажать Enter)


Повторить тоже самое для переменной Var1.
Повторить тоже самое для переменной Var1.
&nbsp;
[[Category:SCADA]]

Версия от 14:53, 28 декабря 2020

Введение

Внимание!
Следует обновить SCADA до версии 2.3.8 или обновить модуль Variables

Начиная с версии 2.2.2 в программе АСУД.SCADA доступен ряд дополнительных функциональных возможностей по анализу состояния группы дискретных сигналов.

Данный функционал реализуется с помощью механизма "Переменных".

Переменные - это некий аналог Item в понимании OPC-сервера, но реализованный на стороне Scada.

Переменная в общем случае может быть связана с несколькими Item OPC-сервера. Значение Переменной при этом определяется, как функция от состояния связанных Item.

Значение, которые может принимать Переменная:

  • 0 - состояние Норма
  • 1 - состояние Активное (Сигнальное)
  • 3 - подтвержденное сигнальное состояние (желтый восклицательный знак).

Изменение состояния Переменной будет отображаться в Журнале событий и в Оперативном журнале.

В Scada можно привязать Переменную через свойство Тэг к примитивам

  • Дискретный сигнал (набор примитивов) - это наиболее типовой случай применения.
  • LED, Изображение (см. дополнительные примитивы)
  • и т.п.

Настройка OPC-сервера

Внимание! Важно!

Если для отображения состояния переменной используется примитив типа Дискретный датчик, то дополнительной настройки ОРС-сервера не требуется.

В случае использования примитивов типа Изображение (или любого другого примитива, у которого нет сигнального состояния с красным восклицательным знаком) - следует в настройках OPC-сервера для всех связанных с переменной дискретных сигналов настроить режим Уровень безопасности в Обычный (по умолчанию значение установлено в Охрана).

Уровень безопасности в Обычный - не требует обязательного подтверждения Диспетчером сигнального состояния примитива.

Настройка Scada

В режиме настройки выбрать меню Вид / Переменные

Настройка Переменных
Настройка Переменных

Слева указаны зарегистрированные Переменные.

Имя переменной всегда начинается с "Var.".

Для добавления Переменной следует кликнуть правой кнопкой мыши в списке Переменной.

Элементы меню добавления переменной:

  • Добавить - добавить новую переменную
  • Копия (полная) - скопировать настройки текущей переменной (удобно при разбивке битовой маски одного Item, при настройке Modbus-устройства)
  • Копия (без тегов) - скопировать настройки текущей переменной без заполнения Тегов
  • Удалить - удалить переменную
  • Имя в буфер обмена - скопировать имя переменной в буфер обмена для последующей вставки в свойство Тег Примитива на карте

Настройки переменной:

  • Название - имя переменной (без приставки Var.)
  • Журнал событие - название типа неисправности (для Дискретного датчика будет отображаться в Журнале событий)
  • Журнал адрес - адрес (для Дискретного датчика будет отображаться в Журнале событий)
  • Тип - реализуемая функция обработки значения
  • Задержка - задержка срабатывания Переменной в секундах (max 600 секунд)

Далее следует добавить Item OPC-сервера, выполнив клик правой кнопкой мыши в списке Тэги / Переменные.

После добавления 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

После внесения изменений следует сохранить их, нажав на пиктограмму "Сохранить все" панели инструментов.

Дискретный датчик

Разместить на карте примитив дискретный датчик, указать в поле Тэг имя переменной, например, 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
  • Журнал адрес - адрес установки устройства
  • Тэги
    • Контейнер.Прибор.PumpState (ваше название Тэга)
  • Тип - ВЫРАЖЕНИЕ
  • Выражение - BIT(X;3)

Отобразить на ситуационном плане любой примитив Дискретный датчик и в свойстве Тэг указать вручную 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.