Запуск сценариев на сервере с клиента.

Рассмотрим как можно запрограммировать включение и выключение всех необходимых линий освещения использую новый функционал iRidium Mobile 3.0 и устройство Modbus. Для работы нам потребуется iRidium Server, iRidium Studio и любое устройство с iRidium Client.

1. Создать серверный проект

Подробнее о создании Серверного проекта описано тут.

1. Создать файл серверного проекта

В Меню выбрать пункт меню "New Server Project"

Image 8767


2. Назвать проект.

Дать имя новому проекту, либо оставить по-умолчанию.

3. Указать настройки подключения к серверу.

Внесите основную информацию о проекте, а так же указать настройки подключения к серверу (можно указать позже).

Image 8803

Для удобства дальнейшей работы заполните поля в разделе Settings:
  • Server host - IP адрес сервера
  • Server port - порт подключения к серверу (по-умолчанию: 30464)
  • Login (функционал в разработке) - логин для подключения панелей к серверу
  • Password (бфункционал в разработке) - пароль для подключения панелей к серверу
  • System ID (функционал в разработке) - уникальный идентификатор сервера, будет использован в системе push нотификаций и DDNS сервере
На этапе формирования панельных проектов, привязанных к вашему серверному проекту, эти настройки автоматически будут импортированы, что позволит вам не вводить настройки вручную в каждый из панельных проектов.
О назначении других полей прочитайте здесь.

4. Перейти в рабочую вкладку I/O

(подробнее о назначении вкладок здесь):
Project Overview позволяет перемещаться между окнами настроек сервера:

Editor window Server Project Overview.png

Project Overview:

5. Добавить драйвер Modbus TCP из базы драйверов.

Image 8901

6. Указать настройки подключения к оборудованию:

Если вы импортировали драйвера из проекта *.irpz, ранее созданного в iRidium GUI Editor, настройки уже будут заполнены.
В тестовом примере мы взяли готовый проект с WIKI2, сделанный в старой версии iRidium GUI Editor

Image 8854
Укажите настройки подключения к управляемому оборудованию во вкладке DRIVERS:

  • Name - имя управляемого устройства, произвольно
  • Debug Level - какие уведомления следует выводить в лог сервера
  • Local Connection - заполните список настроек подключения, он уникален для каждого драйвера

7. Настроить команды управления оборудованием и каналы обратной связи:

Настройте команды и каналы обратной связи на панели DRIVERS, точно так же, как и во вкладке Project Device Panel панельного проекта. Инструкции по драйверу Modbus можно найти на Wiki V2
На панели IRIDIUM SERVER для каждой команды и канала обратной связи драйвера формируется серверный канал (для записи) или тег (для чтения). На их основе будет сформирован драйвер iRidium Server, и каждая панель управления, которая будет подключаться к этому серверу, будет обращаться именно к этим каналам и тегам.

Поля, которые можно настроить у серверного канала (для записи):
Image 8856

  • Name - короткое имя (по-умолчанию: имя команды драйвера)
  • Full Name - полное имя серверного канала для обращения из скрипта
  • Description - описание (опционально)
  • Script - выполнить JavaScript функцию без аргументов каждый раз при активации канала
Поля, которые можно настроить у серверного тега (для чтения):
Image 8857
  • Name - короткое имя (по-умолчанию: имя канала обратной связи драйвера)
  • Full Tag Name - полное имя серверного тега для обращения из скрипта
  • Description - описание (опционально)
  • Store In DB - сохранение всех измененных значений в базу данных
  • Access - тип переменной: Public - можно изменить с панели управления, Private - можно изменить только с сервера
  • Deadband - погрешность изменения, которую не нужно учитывать при построении графика на основании данных тега. Например, при Deadband: 0.5, изменение переменной на 0.3 не отобразится на графике в приложении-клиенте.
  • Script - выполнить JavaScript функцию каждый раз при активации тега
Для нашего проекта нам потребуется:
1 Виртуальный канал с именем Light
Image 8904
3 Канала с настроеным адресами
Image 8905

3 фидбека с настроенными адресами
Image 8906

8. Пишем логику, которую будет обрабатывать скрипт.

Для этого необходимо зайти в окно скриптов
Image 8902
Далее мы увидим следующее окно
Image 8903


Далее мы будем описывать логику для обработки необходимых функций сервера.
а точнее в нашем проекте, будет использоваться следующая
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

2. Дайте имя панельному проекту.
3. В панельном проекте в "Project Device Panel" находится драйвер iRidium Server, который содержит настройки подключения к серверному проекту (если вы их заранее настроили), а так же все каналы и теги.

2. Привязать команды к графическим элементам

Команды и обратная связь драйверов, а также Токены драйвера привязываются аналогично уже существующим инструкциям работы с драйверами, описанными на iRidiumWiki.

Виртуальные серверные каналы привязываются как SendNumber:
Image 8908

На выключение света мы должны отправлять 1, а на включение света 0.

Для проверки работоспособности сделанного выше, необходимо:
1. Запустить сервер.
2. Загрузить на него проект.
3. Запустить/загрузить клиентский проект.
4. Если у вас нет реального Modbus. То необходимо запустить эмулятор Modbus.

Готовые проекты (Внутри архива лежит серверный+панельный проект и эмулятор):

Modbus Light.zip

Эта статья была полезна для 5 людей. Эта статья помогла вам?

Сервис поддержки клиентов работает на платформе UserEcho