Запуск сценариев на сервере с клиента.
Рассмотрим как можно запрограммировать включение и выключение всех необходимых линий освещения использую новый функционал iRidium Mobile 3.0 и устройство Modbus. Для работы нам потребуется iRidium Server, iRidium Studio и любое устройство с iRidium Client.
Дать имя новому проекту, либо оставить по-умолчанию.
![Image 8803](/s/attachments/15553/6/2/0783d27cc07b8da5fdf3d9d8fc258279.png)
Для удобства дальнейшей работы заполните поля в разделе Settings:
О назначении других полей прочитайте здесь.
Project Overview позволяет перемещаться между окнами настроек сервера:
![Editor window Server Project Overview.png](http://wiki3.irmob.tmweb.ru/images/3/37/Editor_window_Server_Project_Overview.png)
Project Overview:
![Image 8901](/s/attachments/15553/6/6264/55bb5b9ec76f5a16bc16057e158e872f.png)
В тестовом примере мы взяли готовый проект с WIKI2, сделанный в старой версии iRidium GUI Editor
![Image 8854](/s/attachments/15553/6/2/9281850bde8da390c8dc8a6f5dc75d02.png)
Укажите настройки подключения к управляемому оборудованию во вкладке DRIVERS:
![Image 8904](/s/attachments/15553/6/6264/bc152e1c3280f8019633bc93a67b5489.png)
![Image 8905](/s/attachments/15553/6/6264/bc68dd13bae2c7d58e9a7316bb1004f7.png)
![Image 8906](/s/attachments/15553/6/6264/544e51c7edb821eefc7ef3ca3dd3d9e0.png)
![Image 8902](/s/attachments/15553/6/6264/48bf5664081b0e73b0cdbe0ba89cd77f.png)
Далее мы увидим следующее окно
![Image 8903](/s/attachments/15553/6/6264/345ee42c6857a238924aa935b7805751.png)
Далее мы будем описывать логику для обработки необходимых функций сервера.
а точнее в нашем проекте, будет использоваться следующая
1. Создать панельный проект из серверного проекта
1. Откройте ваш серверный проект. Правой кнопкой мыши нажмите на его имя и выберите пункт меню "Create Panel Project"
![Image 8907](/s/attachments/15553/6/6264/6c835af231d5228fec85e25f5036ea4c.png)
2. Дайте имя панельному проекту.
3. В панельном проекте в "Project Device Panel" находится драйвер iRidium Server, который содержит настройки подключения к серверному проекту (если вы их заранее настроили), а так же все каналы и теги.
Виртуальные серверные каналы привязываются как SendNumber:
![Image 8908](/s/attachments/15553/6/6264/5cdaab492ed3a1607b920dda04a3cf81.png)
На выключение света мы должны отправлять 1, а на включение света 0.
Для проверки работоспособности сделанного выше, необходимо:
1. Запустить сервер.
2. Загрузить на него проект.
3. Запустить/загрузить клиентский проект.
4. Если у вас нет реального Modbus. То необходимо запустить эмулятор Modbus.
Готовые проекты (Внутри архива лежит серверный+панельный проект и эмулятор):
Modbus Light.zip
1. Создать серверный проект
Подробнее о создании Серверного проекта описано тут.1. Создать файл серверного проекта
В Меню выбрать пункт меню "New Server Project"![Image 8767](/s/attachments/15553/6/2/6d8b17544907419b80414691ab9cc219.png)
2. Назвать проект.
Дать имя новому проекту, либо оставить по-умолчанию.3. Указать настройки подключения к серверу.
Внесите основную информацию о проекте, а так же указать настройки подключения к серверу (можно указать позже).![Image 8803](/s/attachments/15553/6/2/0783d27cc07b8da5fdf3d9d8fc258279.png)
Для удобства дальнейшей работы заполните поля в разделе Settings:
- Server host - IP адрес сервера
- Server port - порт подключения к серверу (по-умолчанию: 30464)
- Login (функционал в разработке) - логин для подключения панелей к серверу
- Password (бфункционал в разработке) - пароль для подключения панелей к серверу
- System ID (функционал в разработке) - уникальный идентификатор сервера, будет использован в системе push нотификаций и DDNS сервере
О назначении других полей прочитайте здесь.
4. Перейти в рабочую вкладку I/O
(подробнее о назначении вкладок здесь):Project Overview позволяет перемещаться между окнами настроек сервера:
![Editor window Server Project Overview.png](http://wiki3.irmob.tmweb.ru/images/3/37/Editor_window_Server_Project_Overview.png)
Project Overview:
- I/O - входы/выходы; открывает для редактирования теги сервера и теги драйвера
- Config - настройки серверного проекта
5. Добавить драйвер Modbus TCP из базы драйверов.
![Image 8901](/s/attachments/15553/6/6264/55bb5b9ec76f5a16bc16057e158e872f.png)
6. Указать настройки подключения к оборудованию:
Если вы импортировали драйвера из проекта *.irpz, ранее созданного в iRidium GUI Editor, настройки уже будут заполнены.В тестовом примере мы взяли готовый проект с WIKI2, сделанный в старой версии iRidium GUI Editor
![Image 8854](/s/attachments/15553/6/2/9281850bde8da390c8dc8a6f5dc75d02.png)
Укажите настройки подключения к управляемому оборудованию во вкладке DRIVERS:
- Name - имя управляемого устройства, произвольно
- Debug Level - какие уведомления следует выводить в лог сервера
- Local Connection - заполните список настроек подключения, он уникален для каждого драйвера
7. Настроить команды управления оборудованием и каналы обратной связи:
Настройте команды и каналы обратной связи на панели DRIVERS, точно так же, как и во вкладке Project Device Panel панельного проекта. Инструкции по драйверу Modbus можно найти на Wiki V2На панели IRIDIUM SERVER для каждой команды и канала обратной связи драйвера формируется серверный канал (для записи) или тег (для чтения). На их основе будет сформирован драйвер iRidium Server, и каждая панель управления, которая будет подключаться к этому серверу, будет обращаться именно к этим каналам и тегам.
Поля, которые можно настроить у серверного канала (для записи):
![Image 8856](/s/attachments/15553/6/2/980c423e7e9cf4be045e302c3f2a9670.png)
![Image 8857](/s/attachments/15553/6/2/81a236997f562fd8eb7605b6f087822e.png)
Поля, которые можно настроить у серверного канала (для записи):
![Image 8856](/s/attachments/15553/6/2/980c423e7e9cf4be045e302c3f2a9670.png)
- Name - короткое имя (по-умолчанию: имя команды драйвера)
- Full Name - полное имя серверного канала для обращения из скрипта
- Description - описание (опционально)
- Script - выполнить JavaScript функцию без аргументов каждый раз при активации канала
![Image 8857](/s/attachments/15553/6/2/81a236997f562fd8eb7605b6f087822e.png)
- Name - короткое имя (по-умолчанию: имя канала обратной связи драйвера)
- Full Tag Name - полное имя серверного тега для обращения из скрипта
- Description - описание (опционально)
- Store In DB - сохранение всех измененных значений в базу данных
- Access - тип переменной: Public - можно изменить с панели управления, Private - можно изменить только с сервера
- Deadband - погрешность изменения, которую не нужно учитывать при построении графика на основании данных тега. Например, при Deadband: 0.5, изменение переменной на 0.3 не отобразится на графике в приложении-клиенте.
- Script - выполнить JavaScript функцию каждый раз при активации тега
1 Виртуальный канал с именем Light
![Image 8904](/s/attachments/15553/6/6264/bc152e1c3280f8019633bc93a67b5489.png)
3 Канала с настроеным адресами
![Image 8905](/s/attachments/15553/6/6264/bc68dd13bae2c7d58e9a7316bb1004f7.png)
3 фидбека с настроенными адресами
![Image 8906](/s/attachments/15553/6/6264/544e51c7edb821eefc7ef3ca3dd3d9e0.png)
8. Пишем логику, которую будет обрабатывать скрипт.
Для этого необходимо зайти в окно скриптов![Image 8902](/s/attachments/15553/6/6264/48bf5664081b0e73b0cdbe0ba89cd77f.png)
Далее мы увидим следующее окно
![Image 8903](/s/attachments/15553/6/6264/345ee42c6857a238924aa935b7805751.png)
Далее мы будем описывать логику для обработки необходимых функций сервера.
а точнее в нашем проекте, будет использоваться следующая
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"![Image 8907](/s/attachments/15553/6/6264/6c835af231d5228fec85e25f5036ea4c.png)
2. Дайте имя панельному проекту.
3. В панельном проекте в "Project Device Panel" находится драйвер iRidium Server, который содержит настройки подключения к серверному проекту (если вы их заранее настроили), а так же все каналы и теги.
2. Привязать команды к графическим элементам
Команды и обратная связь драйверов, а также Токены драйвера привязываются аналогично уже существующим инструкциям работы с драйверами, описанными на iRidiumWiki.Виртуальные серверные каналы привязываются как SendNumber:
![Image 8908](/s/attachments/15553/6/6264/5cdaab492ed3a1607b920dda04a3cf81.png)
На выключение света мы должны отправлять 1, а на включение света 0.
Для проверки работоспособности сделанного выше, необходимо:
1. Запустить сервер.
2. Загрузить на него проект.
3. Запустить/загрузить клиентский проект.
4. Если у вас нет реального Modbus. То необходимо запустить эмулятор Modbus.
Готовые проекты (Внутри архива лежит серверный+панельный проект и эмулятор):
Modbus Light.zip
Сервис поддержки клиентов работает на платформе UserEcho