Запуск сценариев на сервере с клиента.
Рассмотрим как можно запрограммировать включение и выключение всех необходимых линий освещения использую новый функционал iRidium Mobile 3.0 и устройство Modbus. Для работы нам потребуется iRidium Server, iRidium Studio и любое устройство с iRidium Client.
Дать имя новому проекту, либо оставить по-умолчанию.
Для удобства дальнейшей работы заполните поля в разделе Settings:
О назначении других полей прочитайте здесь.
Project Overview позволяет перемещаться между окнами настроек сервера:
Project Overview:
В тестовом примере мы взяли готовый проект с WIKI2, сделанный в старой версии iRidium GUI Editor
Укажите настройки подключения к управляемому оборудованию во вкладке DRIVERS:
Далее мы увидим следующее окно
Далее мы будем описывать логику для обработки необходимых функций сервера.
а точнее в нашем проекте, будет использоваться следующая
1. Создать панельный проект из серверного проекта
1. Откройте ваш серверный проект. Правой кнопкой мыши нажмите на его имя и выберите пункт меню "Create Panel Project"
2. Дайте имя панельному проекту.
3. В панельном проекте в "Project Device Panel" находится драйвер iRidium Server, который содержит настройки подключения к серверному проекту (если вы их заранее настроили), а так же все каналы и теги.
Виртуальные серверные каналы привязываются как SendNumber:
На выключение света мы должны отправлять 1, а на включение света 0.
Для проверки работоспособности сделанного выше, необходимо:
1. Запустить сервер.
2. Загрузить на него проект.
3. Запустить/загрузить клиентский проект.
4. Если у вас нет реального Modbus. То необходимо запустить эмулятор Modbus.
Готовые проекты (Внутри архива лежит серверный+панельный проект и эмулятор):
Modbus Light.zip
1. Создать серверный проект
Подробнее о создании Серверного проекта описано тут.1. Создать файл серверного проекта
В Меню выбрать пункт меню "New Server Project"
2. Назвать проект.
Дать имя новому проекту, либо оставить по-умолчанию.3. Указать настройки подключения к серверу.
Внесите основную информацию о проекте, а так же указать настройки подключения к серверу (можно указать позже).Для удобства дальнейшей работы заполните поля в разделе Settings:
- Server host - IP адрес сервера
- Server port - порт подключения к серверу (по-умолчанию: 30464)
- Login (функционал в разработке) - логин для подключения панелей к серверу
- Password (бфункционал в разработке) - пароль для подключения панелей к серверу
- System ID (функционал в разработке) - уникальный идентификатор сервера, будет использован в системе push нотификаций и DDNS сервере
О назначении других полей прочитайте здесь.
4. Перейти в рабочую вкладку I/O
(подробнее о назначении вкладок здесь):Project Overview позволяет перемещаться между окнами настроек сервера:
Project Overview:
- I/O - входы/выходы; открывает для редактирования теги сервера и теги драйвера
- Config - настройки серверного проекта
5. Добавить драйвер Modbus TCP из базы драйверов.
6. Указать настройки подключения к оборудованию:
Если вы импортировали драйвера из проекта *.irpz, ранее созданного в iRidium GUI Editor, настройки уже будут заполнены.В тестовом примере мы взяли готовый проект с WIKI2, сделанный в старой версии iRidium GUI Editor
Укажите настройки подключения к управляемому оборудованию во вкладке DRIVERS:
- Name - имя управляемого устройства, произвольно
- Debug Level - какие уведомления следует выводить в лог сервера
- Local Connection - заполните список настроек подключения, он уникален для каждого драйвера
7. Настроить команды управления оборудованием и каналы обратной связи:
Настройте команды и каналы обратной связи на панели DRIVERS, точно так же, как и во вкладке Project Device Panel панельного проекта. Инструкции по драйверу Modbus можно найти на Wiki V2На панели IRIDIUM SERVER для каждой команды и канала обратной связи драйвера формируется серверный канал (для записи) или тег (для чтения). На их основе будет сформирован драйвер iRidium Server, и каждая панель управления, которая будет подключаться к этому серверу, будет обращаться именно к этим каналам и тегам.
Поля, которые можно настроить у серверного канала (для записи):
Поля, которые можно настроить у серверного канала (для записи):
- Name - короткое имя (по-умолчанию: имя команды драйвера)
- Full Name - полное имя серверного канала для обращения из скрипта
- Description - описание (опционально)
- Script - выполнить JavaScript функцию без аргументов каждый раз при активации канала
- Name - короткое имя (по-умолчанию: имя канала обратной связи драйвера)
- Full Tag Name - полное имя серверного тега для обращения из скрипта
- Description - описание (опционально)
- Store In DB - сохранение всех измененных значений в базу данных
- Access - тип переменной: Public - можно изменить с панели управления, Private - можно изменить только с сервера
- Deadband - погрешность изменения, которую не нужно учитывать при построении графика на основании данных тега. Например, при Deadband: 0.5, изменение переменной на 0.3 не отобразится на графике в приложении-клиенте.
- Script - выполнить JavaScript функцию каждый раз при активации тега
1 Виртуальный канал с именем Light
3 Канала с настроеным адресами
3 фидбека с настроенными адресами
8. Пишем логику, которую будет обрабатывать скрипт.
Для этого необходимо зайти в окно скриптовДалее мы увидим следующее окно
Далее мы будем описывать логику для обработки необходимых функций сервера.
а точнее в нашем проекте, будет использоваться следующая
IR.AddListener(IR.EVENT_START,0,function() { //Запускаем слушатель на основе глобального срабатывания тега. IR.SetGlobalListener(IR.EVENT_GLOBAL_TAG_CHANGE, function(name, value) { IR.Log("Active global: " + name + "\tЗначение: " + value); /* Пишем логику для необходимой нам обработки. В нашел случае это При условии что если имя команды совпадает с нашим каналом и его значение равно 1 то в этом случаем мы меняем значение каналов на 0, то есть выключаем свет */ if (name == "Server.Channels.Light" && value == 1) { IR.Log("Light OFF") IR.SetVariable("Server.Channels.Modbus TCP.Channel 1", 0) IR.SetVariable("Server.Channels.Modbus TCP.Channel 2", 0) IR.SetVariable("Server.Channels.Modbus TCP.Channel 3", 0) }else /* Пишем логику для необходимой нам обработки. В нашел случае это При условии что если имя команды совпадает с нашим каналом и его значение равно 0 то в этом случаем мы меняем значение каналов на 1, то есть включаем свет */ if (name == "Server.Channels.Light" && value == 0) { IR.Log("Light ON") IR.SetVariable("Server.Channels.Modbus TCP.Channel 1", 1) IR.SetVariable("Server.Channels.Modbus TCP.Channel 2", 1) IR.SetVariable("Server.Channels.Modbus TCP.Channel 3", 1) } }); //Блок подписи на необходимые для нас теги IR.SubscribeTagChange("Server.Channels.Light"); IR.SubscribeTagChange("Server.Tags.Modbus TCP.Channel 1") IR.SubscribeTagChange("Server.Tags.Modbus TCP.Channel 2") IR.SubscribeTagChange("Server.Tags.Modbus TCP.Channel 3") });
9. Сохранить проект.
2. Создать панельный проект
1. Добавить в панельный проект каналы и теги серверного проекта
Существует несколько способов:1. Создать панельный проект из серверного проекта
1. Откройте ваш серверный проект. Правой кнопкой мыши нажмите на его имя и выберите пункт меню "Create Panel Project"2. Дайте имя панельному проекту.
3. В панельном проекте в "Project Device Panel" находится драйвер iRidium Server, который содержит настройки подключения к серверному проекту (если вы их заранее настроили), а так же все каналы и теги.
2. Привязать команды к графическим элементам
Команды и обратная связь драйверов, а также Токены драйвера привязываются аналогично уже существующим инструкциям работы с драйверами, описанными на iRidiumWiki.Виртуальные серверные каналы привязываются как SendNumber:
На выключение света мы должны отправлять 1, а на включение света 0.
Для проверки работоспособности сделанного выше, необходимо:
1. Запустить сервер.
2. Загрузить на него проект.
3. Запустить/загрузить клиентский проект.
4. Если у вас нет реального Modbus. То необходимо запустить эмулятор Modbus.
Готовые проекты (Внутри архива лежит серверный+панельный проект и эмулятор):
Modbus Light.zip
Customer support service by UserEcho