В этой статье мы рассмотрим вариант использования универсального драйвера для случая, когда необходимо подключить к OrangeScada удаленное устройство Modbus TCP: будем считать, что компьютерная станция с OrangeScada имеет доступ извне (белый статический ip, возможность открыть порт). Со стороны клиента достаточно иметь подключение к Internet.
Для настройки параметров подключения удаленного устройства к OrangeScada необходимо запустить утилиту 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
},
Запуск драйвер производится через командную строку, при нахождении в папке драйвера, посредством ввода node driver Также можно настроить автоматический запуск драйвера, как службы. Для Windows нужно выполнить команду node toServiceDriver, которая создаст службу OrangeScadaAPIDriver, управлять которой можно из панели диспетчера служб. Для автозапуска в других операционных системах, обратитесь к соответствующим руководствам.
Выберем в меню разработчика инструмент "Драйверы" и добавим новый драйвер:
Укажем название драйвера, его уникальный номер и пароль (номер и пароль должен совпадать с данными, указанными в файле конфигурации драйвера). Если соединение произведено успешно, то в статусной строке драйвера появится галка "Коннект" и информация о версии драйвера.
При возникновении проблем с подключением, можно со стороны сервера воспользоваться инструментом "Диагностика", со стороны драйвера проверить сообщения, который он выводит в консоль.
Для настройки коммуникационных узлов, устройств и тегов необходимо перейти в настройки драйвера:
Контекстное меню позволяет добавить коммуникационные узлы (узлы за которыми работают устройства с одинаковым ip, но с разными Modbus id) и обычные устройства. Все изменения конфигурации узлов, устройств, тегов отражаются в конфигурационном файле на стороне драйвера.
Важно! При настройке коммуникационных узлов указывается ip-адресация в сегменте удаленной локальной сети
Добавим устройство в состав коммуникационного узла
В нашем примере мы подключили устройство в удаленной локальной сети с ip-адресом 192.168.0.20, порт 502 и modbus id = 1. Перейдя по кнопке "Теги" в свойстве устройств мы попадаем в редактор тегов драйвера:
Все наборы параметров свойств узлов, устройств и тегов храняться в секции optionsScheme файла driverConfig.json
Добавление узлов, устройств и тегов можно делать не только в ручном режиме, но и путем прямой записи данных в файл driverConfig.json (при остановленной службе драйвера) в соответствующие разделы json: nodes, devices и tags.
По окончании конфигурации драйвера, переходим в любой из проектов на сервере. Драйвер можно подключать к устройствам в проекте:
Из настроенных в драйвере тегов можно выбрать те, которые которые должны быть в устройстве при помощи опции "Обновить с сервера"
Далее можно работать со значениями тегов драйвера, как с и остальными тегами: подключать их к объектам мнемосхем, добавлять аварии, тренды, триггеры, отчеты, записывать в них новые значения (при наличии доступа).