Приложение B. Пример настройки удаленного доступа к modbus-устройству

В этой статье мы рассмотрим вариант использования универсального драйвера для случая, когда необходимо подключить к OrangeScada удаленное устройство Modbus TCP: будем считать, что компьютерная станция с OrangeScada имеет доступ извне (белый статический ip, возможность открыть порт). Со стороны клиента достаточно иметь подключение к Internet.

Схема работы через туннель

Настройка со стороны сервера

Для настройки параметров подключения удаленного устройства к OrangeScada необходимо запустить утилиту ConfigOS и перейти на вкладку "Драйверы"

Утилита ConfigOS, вкладка "Драйверы"

Для активации работы драйвера необходимо установить галку "Активно" и выбрать порт для обмена данными. Указанный порт должен быть открыт на внешний доступ в брандмауэре.

Для обеспечения шифрования данных, необходимо выбрать режим шифрования SSL и указать файлы сертификата и ключа (*.crt, *.key). Можно пользоваться самоподписанными сертификатами, сгенерированными при помощи утилиты openssl.

После завершения настроек необходимо закрыть утилиту и перезапустить сервер.

Настройка на стороне удаленного устройства

Драйвер для обеспечения коммуникации с сервером посредством REST API интерфейса может быть написана самостоятельно, для этого воспользуйтесь статьей с описанием функций API. Готовый вариант драйвера для Modbus TCP устройств, написанный на Nodejs можно скачать со страницы загрузок нашего сайта. Архив необходимо распаковать в папку удаленного устройства при помощи которого будет выполняться коммуникация с сервером.

Драйвер работает под управлением среды nodejs, которая обеспечивает кроссплатформенность, поэтому возможен запуск драйвера не только на Windows-машинах, но и на полевых устройствах или контроллерах, операционные системы которых поддерживаю работу с nodejs. Для установки или обновления nodejs необходимо воспользоваться ссылкой.

Перед запуском необходимо выполнить настройки в файле конфигурации driverConfig.json, секция driver:

"driver": {
"orangeScadaPort": 8892,
"orangeScadaHost": "localhost",
"ssl": false,
"version": "1.0",
"uid": "1234",
"password": "password",
"isItemsEditable": true
},

orangeScadaPort
Внешний порт для соединения с сервером OrangeScada, должен быть открыт в брандмауэре
orangeScadaHost
Внешний ip-адрес или доменное имя сервера по которому он доступен из сети Internet
ssl
false | true, использовать ли шифрование при обмене данными
version
Номер версии драйвера, отображается в OrangeScada в списке подключенных драйверов
uid
Уникальный идентификатор драйвера, указывается в OrangeScada при подключении
password
Пароль, проверяемый при подключении, указывается в OrangeScada
isItemsEditable
false | true, параметр определяет разрешено ли серверу вносить изменения в конфигурацию устройств

Запуск драйвер производится через командную строку, при нахождении в папке драйвера, посредством ввода node driver Также можно настроить автоматический запуск драйвера, как службы. Для Windows нужно выполнить команду node toServiceDriver, которая создаст службу OrangeScadaAPIDriver, управлять которой можно из панели диспетчера служб. Для автозапуска в других операционных системах, обратитесь к соответствующим руководствам.

Подключение к драйверу в web-интерфейсе

Выберем в меню разработчика инструмент "Драйверы" и добавим новый драйвер:

Добавление нового драйвера

Укажем название драйвера, его уникальный номер и пароль (номер и пароль должен совпадать с данными, указанными в файле конфигурации драйвера). Если соединение произведено успешно, то в статусной строке драйвера появится галка "Коннект" и информация о версии драйвера.

Драйвер подключен

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

Для настройки коммуникационных узлов, устройств и тегов необходимо перейти в настройки драйвера:

Переход к настройкам драйвера

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

Добавление коммуникационного узла

Важно! При настройке коммуникационных узлов указывается ip-адресация в сегменте удаленной локальной сети

Настройки коммуникационного узла

Добавим устройство в состав коммуникационного узла

Настройки устройства

В нашем примере мы подключили устройство в удаленной локальной сети с ip-адресом 192.168.0.20, порт 502 и modbus id = 1. Перейдя по кнопке "Теги" в свойстве устройств мы попадаем в редактор тегов драйвера:

Настройки тега

Все наборы параметров свойств узлов, устройств и тегов храняться в секции optionsScheme файла driverConfig.json

Добавление узлов, устройств и тегов можно делать не только в ручном режиме, но и путем прямой записи данных в файл driverConfig.json (при остановленной службе драйвера) в соответствующие разделы json: nodes, devices и tags.

По окончании конфигурации драйвера, переходим в любой из проектов на сервере. Драйвер можно подключать к устройствам в проекте:

Подключение драйвера к устройству

Из настроенных в драйвере тегов можно выбрать те, которые которые должны быть в устройстве при помощи опции "Обновить с сервера"

Добавление тегов драйвера в устройство проекта

Далее можно работать со значениями тегов драйвера, как с и остальными тегами: подключать их к объектам мнемосхем, добавлять аварии, тренды, триггеры, отчеты, записывать в них новые значения (при наличии доступа).