iRidium Server + Modbus

Подробнее о драйвере Modbus можно прочитать тут: http://wiki2.iridiummobile.net/Modbus

Этапы формирования проектов управления оборудованием Modbus при помощи iRidium Server:
1. Создание серверного проекта. Импорт каналов управления, настройка подключения к оборудованию. Создание скриптовых сценариев, настройка записи в базу данных.
2. Создание панельного проекта, связанного с серверным. Создание графического интерфейса проекта, связь графического интерфейса с каналами и тегами управления.
3. Загрузка серверного проекта на сервер.
4. Загрузка панельного проекта в клиент.

Для быстрого перехода с версии 2.2 на версию с сервером удобно использовать ранее созданный в iRidium GUI Editor проект.

Проекты для изучения - серверный и, связанный с ним, панельный проект:
Modbus Server.sirpz

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 позволяет перемещаться между окнами настроек сервера:

Editor window Server Project Overview.png

Project Overview:







5. Добавить драйвер Modbus в проект

Чаще всего добавление Modbus драйвера в проект происходит при помощи функции Импорт. Импортировать можно проект, созданный в Excel и имеющий формат *.csv, а так же *.irpz, созданный в iRidium GUI Editor, если у вас уже есть готовая настроенная инсталляция на оборудовании Modbus.

Доступ к функции импорта осуществляется из меню File->Import и по кнопке на панели DRIVERS:


Шаблон файла csv для драйвера Modbus (TCP):


Зеленым выделены места, разрешенные для правки. Пожалуйста, не удаляйте строки и колонки. Добавляйте необходимое количество команд и фитбеков после существующих.

Примеры готовых шаблонов для импорта всех типов Modbus: modbus csv.zip


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

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

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

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

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

Настройте команды и каналы обратной связи на панели DRIVERS, точно так же, как и во вкладке Project Device Panel панельного проекта. Инструкции по драйверу Modbus можно найти на Wiki V2
Если вы импортировали ранее созданный проект, то команды и каналы обратной связи уже настроены.


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


На панели 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 функцию каждый раз при активации тега
!В текущей версии iRidium Studio beta нет возможности синхронизировать имена 
драйвера, каналов и тегов - т.о. дайте им окончательные имена при текущей 
настройке. Т.е., если вы уже начнете настраивать панельный проект, а после 
этого решите переименовать драйвер, каналы или теги в панели IRIDIUM 
SERVER, то при синхронизации они добавятся как новый драйвер, или как 
новый канал или фитбек и вам придется заново связывать их с элементами 
графического интерфейса.

8. Создать виртуальные переменные (опционально):

Виртуальные переменные (Virtual) - переменные, в которые можно записывать любые данные, полученные в результате работы скриптов (числа, строки, массивы). Виртуальные переменные доступны для изменения с панели управления.

  • VIrtual > Channels - переменные, доступные для записи
  • VIrtual > Tags - переменные, доступные для чтения
Работа с Virtual идентична работе с Project Tokens, использует те же правила и функции API.

Для примера, создадим 2 виртуальных серверных канала (с именами External Modbus IP и Internal Modbus IP), которые при активации будут вызывать функцию SetParameters и переключать настройки драйвера с внешних на внутренние и наоборот. А также виртуальный серверный тег "Status", в который мы будем записывать текст из скрипта:

1. Создайте 2 виртуальный канала и 1 виртуальный тег по ПКМ:



2. Перейдите в редактор JS-скриптов. Создайте файл скрипта с необходимыми функциями:
function ExternalModbus()
{
 IR.Log("External Modbus IP"); //выводит в лог сервера
 IR.GetDevice("ModBus TCP").SetParameters({Host: "192.168.0.93", Port: "502", UpdateTime: "500"}); // меняет настройки подключения к драйверу
 IR.SetVariable("Server.Tags.Status Modbus","We try to connect to External Modbus IP"); //записывает в виртуальный тег Status текст
};
function InternalModbus()
{
 IR.Log("Internal Modbus IP"); //выводит в лог сервера
 IR.GetDevice("ModBus TCP").SetParameters({Host: "213.114.30.30", Port: "502", UpdateTime: "500"}); // меняет настройки подключения к драйверу
 IR.SetVariable("Server.Tags.Status Modbus","We try to connect to Internal Modbus IP"); //записывает в виртуальный тег Status текст
};
3. В поле Script необходимой команды выберите нужную функцию для обеих команд.



В тестовом проекте добавлены примеры, как сделать функции SetParameters и Connect, Disconnect к драйверу.

9. Написать необходимые скрипты (опционально).

Как обращаться к каналам и тегам серверного проекта описано тут .

10. Сохранить проект.

Modbus Server.sirpz

2. Создать панельный проект


1. Добавить в панельный проект каналы и теги серверного проекта

Существует несколько способов:

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

1. Откройте ваш серверный проект. Правой кнопкой мыши нажмите на его имя и выберите пункт меню "Create Panel Project"



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


2. Синхронизировать драйвер iRidium Server с существующим панельным проектом

1. Открыть в iRidium Studio ваш серверный проект.
2. Создать в iRidium Studio новый или открыть существующий панельный проект.
3. В панельный проект добавить драйвер iRidium Server:


4. Выбрать в качестве источника для драйвера iRidium Server ваш серверный проект:


  1. Выделить драйвер iRidium Server на панели "Project Device Panel"
  2. Нажать в на ... в строке Source Project в настройках драйвера.
  3. Выбрать из списка необходимый серверный проект
  4. Нажать ОК.
5. Синхронизировать драйвер с серверным проектом:



  1. Выделить драйвер iRidium Server на панели "Project Device Panel"
  2. Нажать на иконку синхронизации.
  3. Согласиться с запросом синхронизации.
Расположение каналов и тегов в драйвере iRidium Server:

1 - Driver Tokens - переменные драйвера. Отображают статус подключения к серверу. Переменные драйвера доступны только на чтение:
  • Online - состояние подключения к серверу (Online/Offline = 1/0)
  • Status - статус подключения к серверу (Offline/Connecting/Online/Waiting = 0...3)
  • Host - доменное имя удаленной системы
  • IP - IP-адрес управляющей панели
  • Port - локальный порт клиента, через который осуществляется связь с удаленным устройством
  • HostIP - IP-адрес удаленной системы, к которой подключено iRidium App
  • HostPort - порт на удаленной системе, к которому подключается iRidium App
  • ServerName - имя сервера
  • ServerModel - модель сервера
  • ServerHWID - идентификатор сервера
  • ServerFamily - код семейства операционной системы
  • ServerArch - код архитектуры (1 - x86; 2 - x64-86; 3 - ARM32)
  • ServerFamillyName - имя семейства операционной системы
  • ServerArchName - имя архитектуры операционной системы
  • ServerOsName - полное имя операционной системы
  • ServerVersion - версия сервера
2. Каналы управления драйверов, управляемых через сервер.
3. Виртуальные серверные каналы.
4. Токены драйвера, управляемого через сервер.
5. Теги обратной связи драйверов, управляемых через сервер.
6. Виртуальные серверные теги.

!Не создавайте в панельном проекте в драйвере iRidium Server новых команд и каналов обратной связи. При синхронизации они не будут созданы в серверном проекте и не будут работать.

Параметры серверной команды в панельном проекте:
Name - Имя канала. Формат имени "Имя_драйвера.Имя канала"

Параметры серверного тега в панельном проекте:
Name - Имя тега. Формат имени "Имя_драйвера.Имя тега"
Save Value When Disconnect - сохранение последнего полученного значения тега на кнопке, когда оборвалась связь панели с сервером (True - сохранять значение на элементе; False - сбрасывать значение в 0);


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

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

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


Виртуальные серверные теги привязываются, как As Value или As Text, в зависимости от целей.

3. Синхронизация серверного и панельного проектов в процессе работы

Если вы будете исправлять серверный проект уже в процессе работы над панельным проектом, появится необходимость синхронизации этих проектов.

В текущей версии iRidium Studio синхронизация может:
+ добавлять новые каналы и теги из серверного проекта;

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

Процесс синхронизации:
1. Измените серверный проект и сохраните его
2. Перейдите в связанный с ним панельный проект и:


  1. Выделить драйвер iRidium Server на панели "Project Device Panel"
  2. Нажать на иконку синхронизации.
  3. Согласиться с запросом синхронизации.

После того, как серверный и панельные проекты будут полностью готовы, необходимо загрузить их на сервер и панели.

> > Как загрузить серверный проект на iRidium Server

Dit artikel is nuttig voor 4 personen. Is dit artikel nuttig voor u?