Работа с оборудованием
Содержание
- 1 Инструменты работы с управляемым оборудованием
- 2 Создание нового управляемого устройства
- 3 Tokens - переменные дерева устройств
- 4 Настройка подключения к оборудованию
- 5 Создание команд и статусных каналов
- 6 Связь команд и каналов с графической частью проекта
- 7 Макрокоманды для оборудования
- 8 Отображение статусов переменных на элементах
- 9 Уведомления о событиях в системе
Подробную информацию по работе с различными драйверами, поддерживаемыми iRidium, Вы можете найти в разделе «Документация по управлению оборудованием»
Чтобы настроить команды оборудованию и связать их с интерфейсом визуализации, используйтеи нструменты работы с драйверами iRidium. Драйверы проекта хранят информацию о подключении к оборудованию и команды взаимодействия с этим оборудованием в виде дерева Project Device Panel.
Инструменты работы с управляемым оборудованием
Работа с драйверной частью проекта осуществляется во вкладках редактора “Device Panel”, “Project Device Panel” и её подразделе “Properties”.
Device Panel – база данных iRidium, хранит все поддерживаемые iRidium нативные и скриптовые драйвера, а также устройства и команды, с помощью которых можно управлять различными системами здания по TCP/IP, UDP, RS232, ИК, HTTP.
Project Device Panel – хранит устройства, которыми необходимо управлять в данном проекте iRidium, а также токены (глобальные переменные) и системные переменные для получения данных от управляющей панели без участия управляемого оборудования.
Properties – вкладка настроек подключения к управляемому оборудованию, свойств команд и каналов оборудования. Здесь указываются параметры подключения к управляемым устройствам, свойства команд и каналов управляемого оборудования.
Добавление драйвера из базы данных iRidium в дерево проекта производится методом Drag&Drop. Когда драйвер добавлен, можно указать настройки подключения к оборудованию, взаимодействие с которым будет производиться при помощи этого драйвера.
После настройки подключения настраиваются команды и статусные каналы, определяющие методы взаимодейтсвия с оборудованием. Команды и каналы привязываются к графическим элементам для инициации отправки данных, или могут активироваться при помощью скрипта.
Создание нового управляемого устройства
База данных iRidium (Device Base) содержит информацию обо всех нативных и скриптовых драйверах iRidium, с помощью которых на данный момент возможно управление различным оборудованием для автоматизации, контроля аудио/видео систем и т.п. Чтобы использовать нативный драйвер в своем проекте, перенесите его из базы iRidium в категорию Drivers окна Project Device Tree:
У каждого устройства есть три типа каналов, сгруппированных по папкам в устройстве:
- Токены Драйвера (Driver tokens)
- Команды (Commands)
- Каналы обратной связи (Feedbacks)
Команды (Commands)
Команды (Commands) - предназначены для отправки данных управляемому оборудованию
Команда привязывается к графическому элементу с указанием типа данных и значения, которое нужно передать при использовании элемента. Тип данных зависит от типа команды, в общем случае различают:
- Send String - отправить ASCII строку
- Send Number - отправить десятичное число
- Send Token - отправить значение, указанное в настройках графического элемента, к которому привязывается команда (используется при работе с графическими элементами Trigger Button, Level, Up/Down Button)
- Send Binary Data - отправить бинарные данные
Каналы (Feedbacks)
Каналы (Feedback) - переменные для получения и хранения данных, полученных от управляемого оборудования
Канал обратной связи привязывается к графическому элементу с указанием, на какой именно параметр графического элемента будет воздейстовать полученное из канала значение. Различают:
- In Value - значение, полученное из канала обратной связи, будет менять состояние графического элемента, переключая его из неактивного в активное или перемещая ползунок слайдера, также используется при работе с «шаблонами обработки и вывода данных» (см. ниже)
- In Text - значение, полученное из канала обратной связи, заменит любой текст, который был по умолчанию вписан в текстовое поле графического элемента
- More... - здесь можно выбрать любой параметр графического элемента, на который должно влиять значение из канала, например, видимость, активность или координаты по осям X и Y
«Шаблоны обработки и вывода данных» для каналов обратной связи
Шаблон |
Функция |
Шаблон |
Функция |
$P |
процента от максимального значения Уровня | $V |
целая часть полученного значения |
$L |
минимальное значение Уровня | $H |
максимальное значение Уровня |
$S |
номер выбранного состояния | $A |
значение за вычетом минимального значения Уровня |
$R |
размах Уровня (максимальное минус минимальное) | $F1-5 |
значение с плавающей запятой, 1-5 - число знаков после запятой |
$X |
текущее значение в формате HEX | $$ |
символ "доллара" |
команда (шаблон) обработки и отображения входящих данных вносится в текстовое поле графического элемента и может быть совмещен с другим текстом и символами (комментариями, единицами измерения)
Tokens - переменные дерева устройств
Tokens - особый тип переменных в дереве устройств проекта iRidium, не относящийся напрямую к управляемому оборудованию.
Различают 3 вида токенов проекта:
- System Tokens - системные переменные. Работают только на чтение, позволяют получать различные параметры управляющего устройства, как системное время, заряд, состояние сети и др.
- Project Tokens - переменные проекта. Работают на чтение и запись. В токен можно записать любое значение или текст от драйвера или элемента, затем использовать его в проекте. Токены не перетираются при рестарте проекта, если снять чекбокс с Clear Token, который находится в Project Properties, вкладка System.
- Driver Tokens - переменные драйвера. Работают только на чтение, позволяют получать различные параметры драйвера: статус подключения, хост и порт управляемого драйвера и др.
System Tokens (системные токены)
System Token - системные токены (переменные). находятся в Дереве устройств проекта (Project Device Panel). Возвращают значения параметров операционной системы и устройства, на котором запущен проект.
Токен можно привязать к любому графическому элементу интерфейса, и он будет выводить в него полученную от системы информацию. В системный токен нельзя записать значение из интерфейса, данные в него вносит только сама система.
Подробно о назначении системных токенов и вызове их из скрипта читайте в System Tokens API
Project Tokens (токены проекта)
Project Tokens - токены (переменные) проекта. Переменная может хранить данные, которые будут доступны для записи и чтения. Записать данные в токен или прочитать их может графический элемент, драйвер или скрипт.
- Переменные хранятся в Дереве устройств проекта (Project Device Panel)
- В переменную можно записать число или строку (DEC или ASCII).
- Их можно создавать, удалять, делать копии, сортировать между собой и группировать по папкам.
- Данные в переменных можно сохранять (или не сохранять) после закрытия приложения iRidium.
- Записать данные в переменную можно командой с элемента, командой от драйвера или командой из iRidium Script
Записать данные в Project Tokens можно с помощью группы макросов Send to Token в Macros Editor графического элемента:
- Send Number - Записать в токен десятичное число (формат DEC)
- Send Text - Записать в токен текст (формат ASCII)
- Send Token - Записать в токен данные, извлеченные из параметров графического элемента (Value, координаты, размеры, текст и т.д. – переменные значения, определяемые текущими свойствами объекта)
Читать данные из Project Tokens можно натащив Token на графический элемент проекта:
- In Text - запись значения токена в свойство элемента Text. Данные отобразятся на элементе в независимости от типа (строка или число).
- In Value - запись значения токена в свойство элемента Value. В зависимости от того какое число содержит глобальная переменная, именно в такое состояние (отсчет состояний начинается с нуля) перейдет графический элемент. В этом случае глобальная переменная обязательно должна содержать в себе число.
- Если в свойство Text графического элемента записан шаблон отображения значения $V - то значение глобальной переменной также отобразится на элементе.
- More - запись значения токена в произвольное свойство графического элемента выбранное пользователем. В этом случае глобальная переменная должна содержать в себе число.
- К примеру, значение токена проекта Menu нужно записать в свойство графического элемента Opacity:
- Токены проекта могут хранить данные после завершения приложения iRidium.
- Если требуется что бы токены проекта очищали свои значения после завершения приложения - перейдите в Project / Project Properites / System и поставьте галочку у параметра Clear Token.
Типичные задачи:
- связь между кнопками без использования драйвера (оборудования) или скрипта
- создание радио-кнопок (меню Radio-Buttons)
- демо-режим работы проекта (команды и обратные связи, не привязанные к реальному оборудованию)
- сохранение полезных данных между перезапусками проекта
ПРИМЕР: Настройка меню навигации для проекта через Radio-Buttons
Пример создания навигационного меню с помощью токенов проекта (взаимодействие кнопок будет происходить по принципу радио-кнопок: в единицу времени активен только один из связанных элементов):
- Создайте три графических элемента и задайте им следующие параметры в панели Свойства (Object Properties) во вкладке Programming:
- Создайте токен Menu и перенесите его на графические элементы выбрав связь In Value.
- Для каждого графического элемента создайте макрос Send Number записывавший порядковый номером графического элемента (1, 2, 3) в глобальную переменную Menu.
Загрузить: Пример использования Токенов проекта для Windows, iPhone, iPad >>
Driver tokens (токены драйвера)
Токены драйвера (Driver tokens) - переменные, которые отражают статус подключения к управляемому оборудованию, эти параметры можно только прочитать. Для использования токена, перетащите его на графический элемент, как канал обратной связи (значение токена можно вывести в текстовое поле элемента или изменить с его помощью состояние элемента)
Online | состояние подключения к управляемой системе (Online/Offline = 1/0) |
Status | статус подключения к системе (Offline/Connecting/Online/Waiting = 0...3) |
Host | доменное имя удаленной системы |
HostPort | порт на удаленной системе, к которому подключается iRidium App |
IP | IP-адрес управляющей панели |
HostIP | IP-адрес удаленной системы, к которой подключено iRidium App |
Port | локальный порт клиента, через который осуществляется связь с удаленным устройством |
Настройка подключения к оборудованию
Когда драйвер добавлен, необходимо выбрать его в дереве устройств и перейти к вкладке Properties, содержащей настройки компонентов дерева. Здесь указываются настройки подключения к управляемому с помощью драйвера оборудованию:
Вкладка Properties содержит настройки локального и внешнего подключения к управляемому оборудованию. Другими словами, здесь возможна настройка параметров доступа к оборудованию в случае, если управляющее устройство находится в одной IP-подсети с объектом автоматизации, и если производится управление оборудованием через Интернет:
Name | произвольное имя управляемого устройства |
Driver Type | тип драйвера, с помощью которого производится управление устройством (неизменен) |
Local Connection | секция настройки подключения к оборудованию в пределах локальной сети объекта автоматизации |
Создание команд и статусных каналов
Команды и статусные каналы служат для определения способов взаимодействия с управляемым устройством на базе стандартного драйвера. В пределах одного устройства и проекта может быть создано практически неограниченное число команд и каналов. Обычно, число команд и каналов определяется количеством управляемых узлов оборудования, числом команд, которые должен иметь возможность отправить пользователь, узлов, статус которых должен отображаться в проекте iRidium.
Для создания команд используйте инструменты окна Project Device Panel, позволяющие не только создать новую команду или канал, но и произвести импорт данных из файла проекта или санирование сети для отдельных типов оборудования. Итак, существуют следующие способы создания каналов и команд при работе с различными драйверами iRidium:
- 1.Создание команд и каналов вручную
Создание команды, статусного канала можно осуществить с помощью инструментов «Создать команду» и «Создать канал» окна Project Device Panel:
- 2. Импорт данных из проектов
Если iRidium поддерживает импорт данных из проектов конфигурации контроллера, которым Вам необходимо управлять, Вы можете добавить все имеющиеся в файле конфигурации контроллера управляемые узлы в проект iRidium. На данный момент iRidium поддерживает импорт из файлов:
- iRidium Project (*.IRP, *.IRPZ) – импорт устройств из проектов iRidium
- ETS Project (*.pr3, *.pr4, *.pr5, *.knxproj, *.csv) – импорт групповых адресов из проектов ETS (для KNX)
- Simpl project (*.smw) – импорт джоинов из проектов Crestron
- 3. Сканирование локальной сети для поиска устройств
Для отдельных типов оборудования существует механизм сканирования локальной сети объекта автоматизации, позволяющий обнаружить и добавить в дерево проекта iRidium список устройств, обнаруженных при сканировании локальной сети и ответивших iRidium по определенному протоколу. Эти устройства могут иметь преднастроенные команды и каналы, настройки подключения и инфраструктуру, включающую общую сеть (Network) объекта.
На данный момент поддерживается поиск следующих типов устройств в локальной сети:
- HDL-BUS Pro Net (UDP) – оборудование, использующее для работы протокол HDL-BUS Pro
- Lutron (UDP) – оборудование, использующее для работы протокол Lutron
- DuoTecno (TCP) – оборудование, использующее для работы протокол DuoTecno
Связь команд и каналов с графической частью проекта
После настройки оборудования, необходимо установить связь между графической и драйверной частью проекта iRidium. Связь между этими частями осуществляется за счет взаимодействия команд и каналов с графическими элементами проекта iRidium.
Чтобы привязать команду и канал к графическому элементу, используйте метод Drag&Drop – перетащите объект дерева на графический элемент проекта. При этом откроется диалоговое окно, где необходимо указать способ взаимодействия элемента и команды. Настройки графических элементов напрямую влияют на способы отправки, получения и отображения данных.
Например, при работе с драйвером Custom (TCP), отправить можно только данные, содержащиеся в информационном поле команды (Send Command), а отобразить данные, полученные от оборудования можно различными способами (вывести в текстовое поле, сменить состояние элемента).
Способы отправки и обработки данных определяются типом драйвера управляемого оборудования.
Макрокоманды для оборудования
При помощи макрокоманд реализуются последовательности отправки данных и сценарии управления оборудованием. Макрокоманда может включать последовательность отправляемых данных, задержки между отправками и команды графическому интерфейсу. Макрос формируется в окне Programming свойств графического элемента и может быть настроен для разных событий интерфейса и системы.
Окно работы с макрокомандами подробно описано в статье Макрокоманды (Macros Editor).
Отображение статусов переменных на элементах
Для того чтобы вывести значение, полученное от переменной управляемого оборудования на графический элемент, существует два метода:
- 1. Вывести полученное значение в текст в неизменном виде
Если значение, полученное от управляемой переменной не должно влиять на состояние графического элемента, а необходимо только отображение полученных данных в его текстовом поле, при привязке статусного канала к графическому элементу выберите запись данный в текстовое поле элемента, “In Text”. Это позволит переменной влиять только на состояние текстового поля, не меняя состояние всего элемента:
- 2. Обработать (преобразовать) и вывести значение в текст
Когда необходимо произвести некоторое преобразование полученных данных, например из абсолютного значения сделать проценты шкалы, используются «шаблоны обработки и вывода значений на графические элементы». Для применения этих шаблонов статусный канал должен быть привязан “In Value” элемента для возможности обработки.
Шаблон |
Функция |
Шаблон |
Функция |
$P |
процента от максимального значения Уровня | $V |
целая часть полученного значения |
$L |
минимальное значение Уровня | $H |
максимальное значение Уровня |
$S |
номер выбранного состояния | $A |
значение за вычетом минимального значения Уровня |
$R |
размах Уровня (максимальное минус минимальное) | $F1-5 |
значение с плавающей запятой, 1-5 - число знаков после запятой |
$X |
текущее значение в формате HEX | $$ |
символ "доллара" |
команда (шаблон) обработки и отображения входящих данных вносится в текстовое поле графического элемента и может быть совмещен с другим текстом и символами (комментариями, единицами измерения)
Шаблон вписывается в текстовое поле элемента и в дальнейшем будет заменен преобразованными данными. С шаблоном можно указывать и любые текстовые блоки (единицы измерения, комментарии)
Уведомления о событиях в системе
Уведомление - это сообщение, звук или действие, информирующее пользователя об изменениях в системе. Уведомления работают, когда приложение "i2 Control" запущено и развернуто на панели управления. Они настраиваются с помощью iRidium Script, и могут выполнять любые действия или сочетания действий, доступных в iRidium Script.
На данный момент, уведомления для фонового режима (свернутого или закрытого приложения) не поддерживаются.
В качестве уведомления можно:
- показать текстовое сообщение на графическом элементе;
- показать окно или страницу с уведомлением
- воспроизвести звуковой сигнал;
- автоматически вызвать команду для управляемой системы (включить свет, выключить радио при звонке в домофон,...)
С помощью iRidium Script вы можете сформировать список любых условий и действий, которые нужно выполнить при возникновении этих условий.
Примеры использования:
- показать диалоговое окно видео-домофона при получении входящего вызова;
- показать уведомление, когда сработал датчик протечки.
Настройка уведомлений:
- 1. Создайте проект визуализации, настройте его пользовательский интерфейс и работу с драйверами (согласно инструкции для своего оборудования)
- 2. Создайте файл скрипта (Варианты создания и запуска скрипта)
- 3. Сформируйте в файле скрипта обработчики событий драйвера, при возникновении которых должны появляться уведомления.
Далее приведены несколько примеров уведомлений.
1. Уведомить о подключении к оборудованию (Online)
- Событие:
- успешная установка соединения с оборудованием ("My Driver"). Оборудование - любой драйвер проекта визуализации.
- Действие:
- вывести на графический элемент ("Item 1"), находящийся на странице ("Page 1"), текстовую информацию о событии (например, " System Online") и время возникновения события в 24-часовом формате ("System.Time.24"). Изменить цвет выводимого текста на зеленый.
- Пример::
/***** online notification ****/ IR.AddListener(IR.EVENT_ONLINE, IR.GetDevice("My Driver"), function() { IR.GetItem("Page 1").GetItem("Item 1").Text = IR.GetVariable("System.Time.24") + " System Online"; // notification IR.GetItem("Page 1").GetItem("Item 1").GetState(0).TextColor = 0x00FF00FF; // text color });
2. Уведомить об отключении от оборудования (Offline)
- Событие:
- отключение от оборудования ("My Driver"). Оборудование - любой драйвер проекта визуализации.
- Действие:
- вывести на графический элемент ("Item 1"), находящийся на странице ("Page 1"), текстовую информацию о событии (например, " System Offline") и время возникновения события в 24-часовом формате ("System.Time.24"). Изменить цвет выводимого текста на красный.
- Пример::
/***** offline notification ****/ IR.AddListener(IR.EVENT_OFFLINE, IR.GetDevice("My Driver"), function() { IR.GetItem("Page 1").GetItem("Item 1").Text = IR.GetVariable("System.Time.24") + " System Offline"; // notification IR.GetItem("Page 1").GetItem("Item 1").GetState(0).TextColor = 0xFF0000FF; // text color });
3. Автоматически открыть попап при активации канала
- Событие:
- получение значения (1 и 2) из канала ("Channel 10") драйвера ("My Driver"). Оборудование - любой драйвер проекта визуализации.
- Действие:
- 1. При получении 1 - открыть всплывающее окно ("Popup 1"), вывести в текстовое поле ("Item_Display") этого окна информацию о событии (например, " Lamp in Garden broken") и время возникновения события в 24-часовом формате ("System.Time.24").
- 2. При получении 2 - открыть всплывающее окно ("Popup 1"), вывести в текстовое поле ("Item Display") этого окна информацию о событии (например, " Lamp in Garden Response Failed. Please Check") и время возникновения события в 24-часовом формате ("System.Time.24").
- Пример::
/***** event notification (Tag Change) ****/ var old_value1 = -1; // do not show notification if the previous state is the same var old_value2 = -1; IR.AddListener(IR.EVENT_START, 0, function() { IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetDevice("My Driver"), function(name, value) { if (name == 'Channel 10' && value == 1 && value != old_value1) // Check the Value = 1 in Feedback "Channel 10" { IR.ShowPopup("Notify_danger"); IR.GetItem("Popup 1").GetItem("Item_Display").Text = IR.GetVariable("System.Time.24") + " Lamp in Garden broken"; old_value1 = value; } else if (name == 'Channel 10' && value == 2 && value != old_value2) // Check the feedback "Channel 10'" { IR.ShowPopup("Notify_important"); IR.GetItem("Popup 1").GetItem("Item_Display").Text = IR.GetVariable("System.Time.24") + " Lamp in Garden Response Failed. Please Check"; old_value2 = value; } });
4. Воспроизвести звук при активации канала
- Событие:
- получение значения (1) из канала ("Channel 11") драйвера ("My Driver"). Оборудование - любой драйвер проекта визуализации.
- Действие:
- 1. При получении 1 воспроизвести звук уведомления и вывести в текстовое поле графического элемент ("Item 5") на странице ("Page 1") информацию о событии (например, " Incoming Call") и время возникновения события в 24-часовом формате ("System.Time.24").
- Пример::
/***** event notification (Tag Change) ****/ IR.AddListener(IR.EVENT_START, 0, function() { IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetDevice("My Driver"), function(name, value) { if (name == 'Channel 11' && value == 1) // Check the Value = 1 in Feedback "Channel 11" { IR.PlaySound('BEEP1.WAV',1,70); // Play Sound ('name',slot,volume) IR.GetItem("Page 1").GetItem("Item 5").Text = IR.GetVariable("System.Time.24") + " Incoming Call"; } });
Загрузить: пример уведомлений для KNX: простые уведомления, центр уведомлений