EPSNET: примеры управления регистрами

Материал из iRidium Mobile Wiki
Перейти к: навигация, поиск

ПЛК с поддержкой EPSNET имеет несколько областей памяти, доступных для записи и чтения данных. Эти области могут содержать любую информацию, поэтому инструкция предоставляет несколько конкретных примеров управления переменными регистров памяти. Управление переменной любого типа может быть осуществлено по тем же принципам, что описаны в данных примерах.

Правила адресации регистров EPSNET в iRidium

Произведите экспорт конфигурации контроллера в формат SCADA, чтобы получить список адресов и битов в адресах, которые нужно добавить в iRidium для управления тем или иным входом/выходом контроллера.

Экспорт адресов доступен в программах Mosaic (TECO) и IDM (iNELS).


Настройка экспорта в Mosaic:

MosaicPUBexport.png

Важно: если вы уже генерировали *.pub файл (компилироовали проект), перед тем, как сделать это еще раз, удалите предыдущий *.pub, иначе адреса в поекте будут дублироваться.


Настройка экспорта в IDM iNELS:

INelsExport1.png
Attention.png Убедитесь, что программа IDM подключена к контроллеру, иначе, экспорт невозможен.


Выберите переменные для экспорта в управляющей программе устройства: "Unit/Device Manager" (Менеджер Модуля/Устройства), обязательно указывайте ИМЕНА экспортируемых переменных:

INelsExport2.png

INelsExport3.png

Откройте "Project Setup" (Общие настройки) и укажите путь сохранения файла экспорта. Вкладка может называться '...Of SCADA' или 'RELI':

INelsExport4.png

Чтобы *.pub файл экспортировался на ПК, нужно заново загрузить конфигурацию на контроллер:

INelsExport5.png

Вы можете открыть *.pub файл в текстовом редакторе, он содержит список адресов, в формате, поддерживаемом iRidium. Например:

INelsExport6.png


Значение параметров адреса:

state_DAC2_04M_OUT1 Y F 11 REAL PUB_OUT
DAC2_04M_OUT1_ON R B 18237 .1 BOOL PUB_INOUT
DAC2_04M_OUT1_OFF R B 18237 .2 BOOL PUB_INOUT
DAC2_04M_OUT1 R F 18276 REAL PUB_INOUT
state_DAC2_04M_OUT1 Y F 11 REAL PUB_OUT
  • state_NAME - адрес чтения состояния регистра
    • Y - тип регистра (Register: Y)
    • F - размерность регистра (Type: Float...)
    • 11 - адрес регистра (Address: 11)
    • _OUT = Read Only
DAC2_04M_OUT1_ON R B 18237 .1 BOOL PUB_INOUT
  • NAME_ON - адрес активации канала (только ВКЛ)
    • R - тип регистра (Register: R)
    • B - размерность регистра (Type: Bool)
    • 18237 - адрес регистра (Address: 18237)
    • .1 - адрес бита в адресе (Bit: 1)
    • _INOUT = Read/Write

Обычно, биты распределяются как: 0 = ON, 1 = OFF, 2 = TRIG

DAC2_04M_OUT1 R F 18276 REAL PUB_INOUT
  • NAME - адрес диммирования (управление диапазоном)
    • R - тип регистра (Register: R)
    • F - размерность регистра (Type: Float...)
    • 18276 - адрес регистра (Address: 18276)
    • _INOUT = Read/Write

↑ К оглавлению

Управление булевыми значениями

Для управления логическими переменными (в частности, для переключения состояния отдельных битов), в iRidium необходимо создать команды (Command) и каналы обратной связи (Feedback) в дереве устройств проекта. Команда нужна для отправки данных, канал обратной связи - для чтения текущего статуса переменной.

Для регистров, доступных только на чтение, возможно отображение текущего состояния.


Настройка команды в iRidium GUI Editor:


Для управления булевой переменной (принимающей значение 0 или 1), создадим команду установки состояния и канал обратной связи для отображения её реального статуса:


EPSnet-bool-1.png

Параметры для настройки:

Name: имя регистра, произвольно

Type: размер переменной

Register: переменная

Address: адрес байта

Bit: номер бита в байте (0..7)


Когда команда и фидбек готовы (они образуют пару, с помощью которой можно полноценно контролировать состояние регистра), подготовим графические элементы. Переключение булевой переменной между 2 возможными состояниями (0/1) возможно с помощью элементов:

  • Button (кнопка) - в процессе привязки команды к кнопке, указывается число, которое она должна отправлять переменной при каждом нажатии. Это значение нельзя изменить в процессе работы проекта.
  • Trigger Button (кнопка триггер) - для переключения между двумя заданными значениями, например 100% и 0% яркости. Уставки триггера задаются в процессе настройки графического элемента. Какое значение будет отправлено при очередном нажатии, триггер определяет в зависимости от текущего значения, полученного через канал обратной связи.


Установка значения с кнопки

Создайте и настройте графический элемент - кнопку для отправки переменой единицы или нуля. Привяжите к кнопке команду, руководствуясь следующей последовательностью:


EPSnet-bool-2.png

1. Настройка переменной регистра производится согласно первому пункту инструкции.

2. Настройка графического элемента производится во вкладке Object Properties: General.
Выберите Type: Button и настройте элемент:

Feedback - способ реакции на события:
Momentary - для кнопки, которая переключится в активное состояние при нажатии, а затем вренется в исходное
Channel - для кнопки, которая должна получать обратную связь от переменной и переходить в активное состояние при получении от нее единицы

Другие параметры настраиваем по мере необходимости.

3. Привязать команду к графическому элементу нужно, выбрав тег "Send Number" в диалоге привязки. Тег означает, что будет отправлено число, которое вы укажете в настройках диалога.

4. Выбрать событие и значение для отправки можно в зависимости от требуемого поведения кнопки. Если кнопка при нажатии должна отправлять число, выбираем событие Press, и нужное число. Если кнопка должна переключать переменную в 1 только на время нажатия - указываем Press: 1, Release: 0.

Активировать галочку "Add a Feedback Channel" можно для того, чтобы к элементу автоматически был привязан канал обратной связи с тем же именем, что у команды. Если канал обратной связи Вы хотите привязать позже, то используйте при этом тег "In Value", чтобы канал влиял на состояние кнопки.


Триггерное переключение

Trigger Button (кнопка триггер) используется для переключения переменной между двумя выбранными значениями. В случае логической переменной, это могут быть только 0 и 1. Настройте триггер и привяжите к нему регистр, руководствуясь следующей последовательностью:


EPSnet-bool-3.png

1. Настройка регистра производится согласно первому пункту инструкции. Для триггера обязательно нужна команда и канал обратной связи. В отсутствие канала обратной связи, триггер не будет работать корректно.

2. Настройка графического элемента производится во вкладке Object Properties: General.
Выберите Type: Trigger Button и настройкте элемент:

Feedback - способ реакции на события
Channel - элемент должен обрабатывать и отображать полученные от оборудования данные
Trigger Value 1 и Trigger Value 2 - значения, между которыми переключается триггер при каждом последующем нажатии (0/1). Каждый раз, элемент выбирает для отправки значение, противоположное текущему. Для определения текущего значения используется канал обратной связи
Другие параметры настраиваем по мере необходимости

3. Привязать команду к графическому элементу нужно, выбрав тег "Send Token" в диалоге привязки. Тег "Send Token" означает, что триггер при нажатии будет отправлять то значение, что на данный момент противоположно текущему Value графического элемента.

4. Выбрать событие отправки команды - Press (нажатие на элемент) или Release (отпускание элемента).

5. Активировать галочку "Add a Feedback Channel" нужно для того, чтобы к элементу автоматически был привязан канал обратной связи с тем же именем, что у команды. Это ускоряет работу с деревом устройств. Если канал обратной связи Вы хотите привязать позже, то используйте при этом тег "In Value", чтобы канал влиял на текущее состояние триггера.


Управление диапазоном

Функция димммирования характерна для управления светом, температурой и т.п. Может использоваться для управления занковыми и беззнаковыми переменными, числами с плавающей запятой. В iRidium можно настроить диммирование любой переменной контроллера. Для этого необходимо создать команду (Command) и канал обратной связи (Feedback) в дереве устройств проекта. Команда нужна для отправки данных, канал обратной связи - для чтения текущего статуса переменной.

Для переменных, доступных только на чтение, диммирование невозможно, но возможно отображение текущего состояния на слайдере или дисплее.


Настройка команды в iRidium GUI Editor:


Для переменной, изменяющейся в заданном диапазоне (на примере управления светом, это может быть диммер), создадим команду установки состояния и канал обратной связи для отображения его реального статуса:


EPSnet-dimming-1.png

Параметры для настройки:

Name: имя регистра, произвольно

Type: размер переменной

Register: переменная

Address: адрес байта


Когда команда и фидбек готовы (они образуют пару, с помощью которой можно полноценно контролировать состояние переменной), подготовим графические элементы. Диммирование, а также прирост-убывание, переключение состояния регистра могут осуществляться с помощью следующих графических элементов:

  • Level (уровень) - для регулирования значения в заданном диапазоне перемещением ползунка Уровня. Может использоваться для управления переменной или только для отображения её статуса
  • Trigger Button (кнопка триггер) - для переключения между двумя заданными значениями, например 100% и 0% яркости. Уставки триггера задаются в процессе настройки графического элемента. Какое значение будет отправлено при очередном нажатии, триггер определяет в зависимости от текущего значения, полученного через канал обратной связи.
  • Up/Down Button (кнопка Прирост/Убывание) - приращивает или уменьшает значение переменной относительно текущего, полученного через канал обратной связи.


Диммирование уровнем

Создайте и настройте графический элемент - уровень для управления переменной контроллера. Затем привяжите к нему команду, руководствуясь следующей последовательностью:


EPSnet-dimming-2.png

1. Настройка переменной производится согласно первому пункту инструкции. Для димммирования нужна команда и канал обратной связи. В отсутствие канала обратной связи, уровень не будет отображать актуальное состояние при запуске и в процессе работы проекта.

2. Настройка графического элемента производится во вкладке Object Properties: General.
Выберите Type: Level и настройте элемент:

Feedback - способ реакции на события:
Channel для уровня, который будет следить за реальным статусом переменной,
Momentary - для уровня, который НЕ будет отображать реальный статус переменной
Min: 0 - нижнее значение шкалы уровня
Max: 100 - верхнее значение шкалы уровня
Диапазон Min...Max определяет пределы регулирования, уменьшая эти пределы, можно создавать искусственную отсечку (диапазон регулирования меньше предельно допустимого).
Direction: Vertical/Horizontal - положение уровня в пространстве

Другие параметры настраиваем по мере необходимости.

3. Привязать команду к графическому элементу нужно, выбрав тег "Send Token" в диалоге привязки. Тег означает, что Уровень будет отправлять то значение, что выбрано на данный момент с помощью ползунка (Token: Value графического элемента).

4. Выбрать событие отправки команды можно произвольно, но лучше использовать сочетание событий Press и Release (первая уставка отправится при касании Уровня, вторая - при его отпускании). Событие Move будет отправлять значения по мере движения ползунка, но оно нагружает контроллер (используйте с осторожностью).

5. Активировать галочку "Add a Feedback Channel" нужно для того, чтобы к элементу автоматически был привязан канал обратной связи с тем же именем, что у команды. Если канал обратной связи Вы хотите привязать позже, то используйте при этом тег "In Value", чтобы канал влиял на текущее положение ползунка уровня.


Прирост/убывание

Помимо уровня, для точного регулирования (например, +\- 1°C), удобно использовать специальные кнопки больше/меньше (Up/Down Button). Настройте их в проекте iRidium:


Helvar Direct-Level-Device Up-Down.png

В настройках Up/Down Button (кнопка Прирост/Убывание) указываем:

Feedback - способ реакции на события.
Momentary - кнопка должна реагировать на нажатие пользователя (рекомендуется)
Up/Down Value - шаг прироста при каждом последующем нажатии ("-10" / "10" - отрицательный или положительный прирост)
Min/Max Value - предел, дальше которого значение прирастать не должно. Для отрицательного прироста указывается нижний предел регулирования, для положительного - верхний предел (например, "0" для прироста "-10", и "100" для прироста "10").


Привязка команды и канала к элементу производится также, как к Уровню. В отсутствие канала обратной связи, элемент не будет работать корректно.

EPSnet-dimming-3.png

1. Привязать команду к графическому элементу нужно, выбрав тег "Send Token" в диалоге привязки. Тег означает, что будет отправляться значение, большее или меньшее относительно текущего.

2. Выбрать событие отправки команды - Press (нажатие на элемент) или Release (отпускание элемента).

3. Активировать галочку "Add a Feedback Channel" нужно для того, чтобы к элементу автоматически был привязан канал обратной связи с тем же именем, что у команды. Это ускоряет работу с деревом устройств. Если канал обратной связи Вы хотите привязать позже, то используйте при этом тег "In Value", чтобы канал влиял на текущее значение элемента.


Триггерное переключение

Trigger Button (кнопка триггер) используется для переключения переменной между двумя выбранными значениями. Настройте триггер и привяжите к нему переменную, руководствуясь следующей последовательностью:


EPSnet-dimming-4.png

1. Настройка переменной производится согласно первому пункту инструкции. Для триггера обязательно нужна команда и канал обратной связи. В отсутствие канала обратной связи, триггер не будет работать корректно.

2. Настройка графического элемента производится во вкладке Object Properties: General.
Выберите Type: Trigger Button и настройте элемент:

Feedback - способ реакции на события
Channel - элемент должен принимать состояние, соответствующее текущему значению переменной
Trigger Value 1 и Trigger Value 2 - значения, между которыми переключается триггер при каждом последующем нажатии. Каждый раз элемент выбирает для отправки значение, противоположное текущему, для определения текущего значения используется канал обратной связи
Другие параметры настраиваем по мере необходимости

3. Привязать команду к графическому элементу нужно, выбрав тег "Send Token" в диалоге привязки. Триггер будет отправлять то значение, что на данный момент противоположно текущему Value элемента.

4. Выбрать событие отправки команды - Press (нажатие на элемент) или Release (отпускание элемента).

5. Активировать галочку "Add a Feedback Channel" нужно для того, чтобы к элементу автоматически был привязан канал обратной связи с тем же именем, что у команды. Если канал обратной связи Вы хотите привязать позже, то используйте при этом тег "In Value", чтобы канал влиял на текущее состояние триггера.


Установка значения с кнопки

Создайте и настройте графический элемент - кнопку для отправки переменой какого-либо числа. Число это может лежать в допустимом для выбранной переменной диапазоне (зависит от размера переменной). Привяжите к кнопке команду, руководствуясь следующей последовательностью:


EPSnet-bool-2.png

1. Настройка переменной регистра производится согласно первому пункту инструкции.

2. Настройка графического элемента производится во вкладке Object Properties: General.
Выберите Type: Button и настройте элемент:

Feedback - способ реакции на события:
Momentary - для кнопки, которая переключится в активное состояние при нажатии, а затем вренется в исходное
Channel - для кнопки, которая должна получать обратную связь от переменной и переходить в активное состояние при получении от нее единицы

Другие параметры настраиваем по мере необходимости.

3. Привязать команду к графическому элементу нужно, выбрав тег "Send Number" в диалоге привязки. Тег означает, что будет отправлено число, которое вы укажете в настройках диалога.

4. Выбрать событие и значение для отправки можно в зависимости от требуемого поведения кнопки. Если кнопка при нажатии должна отправлять число, выбираем событие Press, и нужное число. Если кнопка должна переключать переменную в 1 только на время нажатия - указываем Press: 1, Release: 0.

Активировать галочку "Add a Feedback Channel" можно для того, чтобы к элементу автоматически был привязан канал обратной связи с тем же именем, что у команды. Если канал обратной связи Вы хотите привязать позже, то используйте при этом тег "In Value", чтобы канал влиял на состояние кнопки.


Отображение статусов

Текущее состояние переменной контроллера можно вывести на выбранный элемент графического интерфейса. Удобно использовать кнопки, уровни, дисплеи (кнопки с 1 состоянием).


EPSnet-display-1.png

Канал обратной связи может быть привязан к графическому элементу с тегом "In Text" или "In Value" в зависимости от того, на какой параметр графического элемента будет воздействовать значение из канала:

  • In Value - значение, полученное из канала обратной связи, будет менять состояние графического элемента, переключая его из неактивного в активное, или перемещая ползунок слайдера. Также используется при работе с «шаблонами обработки и вывода данных» (см. ниже)
  • In Text - значение, полученное из канала обратной связи, заменит любой текст, который был по умолчанию вписан в текстовое поле графического элемента
  • More... - здесь можно выбрать любой параметр графического элемента, на который должно влиять значение из канала, например, видимость, активность или координаты по осям X и Y


Шаблоны обработки и вывода данных» для каналов обратной связи:

Шаблон

Функция

Шаблон

Функция

$P

процента от максимального значения Уровня

$V

целая часть полученного значения

$L

минимальное значение Уровня

$H

максимальное значение Уровня

$S

номер выбранного состояния

$A

значение за вычетом минимального значения Уровня

$R

размах Уровня (максимальное минус минимальное)

$F1-5

значение с плавающей запятой,
1-5 - число знаков после запятой

$X

текущее значение в формате HEX

$$

символ "доллара"

команда (шаблон) обработки и отображения входящих данных вносится в текстовое поле графического элемента и может быть совмещен с другим текстом и символами (комментариями, единицами измерения)