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

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

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

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

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

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

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

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

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

Настройка на стороне удаленного устройства (Open Source драйверы)

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

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

Универсальный драйвер

Второй вариант настройки работы удаленного устройства - универсальный драйвер. В панели загрузок нашего сайта можно скачать дистрибутивы универсального драйвера для Windows (x32|x64) и для Linux.

В настоящий момент универсальный драйвер поддерживает протоколы:

Для настройки универсального драйвера необходимо отредактировать конфигурационный файл config.cfg находящийся в папке с программой Для версии для Windows 64 это по умолчанию папка C:\Program Files\OrangeScadaDrivers

Запуск и остановка универсального драйвера производится путем управления службой Windows OrangeScadaDrivers

Списков параметров, настраиваемых в конфигурационном файле:

СекцияПараметрПримечанияПо умолчанию
driverportПорт прослушивания в сервисе OrangeScada должен совпадать с номером порта сервера.8892
hostИмя хоста или IP-адрес сервера OrangeScadalocalhost
sslШифрование SSL (1-вкл, 0-выкл)0
uidУникальное имя для драйвера. Должно соответствовать параметру UID в таблице драйверов OrangeScadagateway
passwordПароль для драйвера. Параметры паролей должны совпадать с параметрами в таблице драйверов OrangeScada
timeSaveВремя ожидания (секунды) для отправки резервных данных в OrangeScada при изменении конфигурации драйвера5
IRZdataPortНомер порта модема IRZ. Должен соответствовать параметру конфигурации модема. 0, если не используется0
TeleofisdataPortНомер порта Teleofis для общих данных. Должен соответствовать параметру конфигурации модема. 0, если не используется0
servicePortНомер порта Teleofis для передачи служебных данных. Должен соответствовать параметру конфигурации модема. 0, если не используетс0
uniGatedataPortНомер порта для модемов с IMEI в преамбуле пакета. Должен соответствовать параметру конфигурации модема. 0, если не используется0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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