Фильтр по тематике

ADAM-3600: поддержка среды программирования Node-RED

Для решения задач промышленной автоматизации облачные технологии стали намного привлекательней как с экономической точки зрения, так и в отношении их функциональности. Однако возникает вопрос реализации возможности работы с облачными сервисами. Тем самым поддержка программной платформы Node-RED контроллерами ADAM-3600 компании Advantech является перспективным направлением развития, позволяющим ускорить и удешевить развёртывание системы автоматизации, а также снизить трудозатраты проектировщиков и программистов.

2008 0
Сегодня словом «контроллер» никого не удивишь. Промышленные логические контроллеры и устройства сбора и передачи данных являются неотъемлемой частью современной индустрии, и не только её. Сейчас практически в любой сфере жизнедеятельности человека можно увидеть эти устройства. Но они, по своей сути, просто набор микросхем, бесполезный без правильно проведённого программирования и настройки.
Очень долгий период в нашей стране было востребовано оборудование, поддерживающее языки стандарта IEC 61131. Однако современные реалии показывают, что уже недостаточно закрытых систем, появляется необходимость задействовать облачные сервисы и глобальную сеть.
Именно для работы с данными сервисами помимо языков стандарта IEC 61131 компания Advantech постепенно вводит для своего оборудования поддержку среды программирования Node-RED. Эта среда построена на базе платформы Node.js, а передача данных возможна посредством протокола MQTT.
Одним из первых устройств, поддерживающих Node-RED, стал контроллер ADAM-3600.

ADAM-3600

ADAM-3600 – устройство для удалённого сбора данных, управления промышленными объектами, мониторинга и автоматизации процессов. Оно построено на базе процессора Cortex A8 и работает под управлением операционной системы Real-Time Linux. Благодаря наличию модулей расширения портов ввода-вывода и возможности устанавливать платы беспроводных интерфейсов Wi-Fi, 4G/3G/GPRS, ZigBee, GPS одновременно может выступать в роли устройства связи с объектом (УСО), устройства сбора и передачи данных (УСПД) и программируемого логического контроллера (ПЛК).
Контроллер поддерживает наиболее популярные промышленные протоколы: Modbus, DNP3, MQTT, HTTP REST API, что позволяет интегрировать его в любую современную SCADA-систему.
Благодаря адаптации к жёстким температурным условиям (диапазон рабочих температур –40…+70°C) ADAM-3600 можно устанавливать на удалённые объекты в необслуживаемых помещениях.
Также преимуществом является возможность подключения к облачным системам IoT, таким как Microsoft Azure IoT Hub, Amazon AWS IoT и другие. Тем самым ADAM-3600 удовлетворяет основным принципам промышленного Интернета вещей (IIoT).

Протокол MQTT

MQTT расшифровывается как Message Queue Telemetry Transport (транспорт передачи телеметрических сообщений) и был разработан доктором Энди Стэнфорд-Кларком из IBM и Арленом Ниппером из Arcom (ныне Eurotech) в 1999 году.
Это чрезвычайно простой и лёгкий протокол обмена сообщениями с возможностью публикации/подписки, используемый устройствами с ограниченными ресурсами и сетями с низкой пропускной способностью, высокой задержкой или ненадёжными сетями.
Принципы проектирования заключаются в том, чтобы минимизировать пропускную способность сети и требования к ресурсам устройства, одновременно пытаясь обеспечить надёжность и некоторую степень гарантии доставки. Эти принципы также делают протокол подходящим для мира подключённых устройств типа машина–машина (M2M) или Интернета вещей (IoT), а также для мобильных приложений, где полоса пропускания и заряд батареи имеют первостепенное значение.
Впервые протокол MQTT был опубликован консорциумом OASIS (Organization for the Advancement of Structured Information Standards – Организация по развитию стандартов структурированной информации) в октябре 2014 г. Данный стандарт находится в открытом доступе [1].
В июне 2016 г. стандарт был признан Международной организацией по стандартизации (ISO). MQTT Version 3.1.1 был зарегистрирован техническим комитетом по информационным технологиям ISO (JTC1) под номером ISO/IEC 20922 [2].
При этом можно встретить такие названия протоколов: “SCADA protocol”, “WebSphere MQTT” (WMQTT) и «Протокол устройства SCADA MQ Integrator» (MQIsdp), они являются старыми именами протокола, который сейчас известен как MQ Telemetry Transport (MQTT).
Безопасность в протоколе можно обеспечить несколькими способами. Вы можете передать имя пользователя и пароль с пакетом MQTT v3.1 протокола. Шифрование в сети может быть реализовано с помощью SSL, независимо от самого протокола MQTT (стоит отметить, что SSL не является самым лёгким из протоколов и действительно добавляет значительную нагрузку на сеть). Дополнительная безопасность может быть обеспечена приложением, шифрующим данные, которые оно отправляет и получает, но оно не встроено в протокол.
Протокол MQTT основан на принципе «издатель–подписчик».
MQTT-клиент – это устройство, осна­щённое микроконтроллером, поддерживающим стек TCP/IP. Клиентские библиотеки MQTT доступны для большого числа платформ и языков программирования, например, Android, Arduino, C, C++, C#, Go, iOS, Java, JavaScript, NET [3].
Брокер является основным элементом системы «издатель–подписчик». Он отвечает за приём всех сообщений, их фильтрацию, принятие решения о том, кому интересны эти сообщения, и, в конечном итоге, за пересылку сообщений всем клиентам-подписчикам [4].
Упрощённый процесс обмена информацией представлен на рис. 1.

Издатель передаёт сообщение с данными (например, информацию с датчиков температуры) брокеру, указывая те­му (Topic), к которой эти данные относятся (например, Temp). Брокер анализирует, какие из подписчиков имеют подписку на определённые темы, в данном случае – на тему Temp. Подписчикам, которые подписаны на тему Temp, брокером будет отправлено сообщение с информацией от датчиков температуры.
Данная технология позволяет сократить энергозатраты на связь и объём трафика.

Программная платформа Node.js

Платформу Node.js разработал Райан Даль в 2009 году. В результате своих исследований серверных веб-компонентов он установил, что наиболее продуктивными будут событийно-ориентированные системы вместо ныне существующих традиционных моделей параллелизма на основе потоков. Данная модель обладает следующими положительными свойствами: простота, низкие накладные расходы (по сравнению с идеологией «один поток на каждое соединение») и лучшее быстродействие. Платформа Node.js предназначена для создания масштабируемых сетевых приложений, это среда выполнения JavaScript с асинхронным управлением событиями.
Node, или Node.js – это программная платформа, основанная на движке V8 (транслирующем JavaScript в машинный код), превращающая JavaScript из узкоспециализированного языка в язык общего назначения. Node.js добавляет возможность JavaScript взаимодействовать с устройствами ввода-вывода через свой интерфейс API (написанный на C++), подключать другие внешние библиотеки, написанные на разных языках, обеспечивая вызовы к ним из JavaScript-кода. Node.js применяется преимущественно на сервере, выполняя роль веб-сервера, но есть возможность разрабатывать на Node.js и оконные приложения для ПК (при помощи NW.js, AppJS или Electron для Linux, Windows и macOS) и даже программировать микроконтроллеры (например, tessel и espruino). В основе Node.js лежит событийно-ориентированное и асинхронное (или реактивное) программирование с неблокирующим вводом/выводом [5].

Node-RED

Node-RED – это мощный инструмент для создания приложений Интернета вещей с акцентом на упрощение соединения блоков кода для выполнения задач. Он использует подход визуального программирования, который позволяет разработчику соединять предопределённые блоки кода, известные как узлы, для выполнения задачи. Связанные узлы, обычно комбинация входных узлов, узлов обработки и выходных узлов, соединённые вместе, составляют потоки.
Первоначально разработанный как проект с открытым исходным кодом в IBM в конце 2013 года, чтобы удовлетворить потребность в быстром подключении оборудования и устройств к веб-сервисам и другому программному обеспечению, как своего рода клей для IoT, он быстро превратился в инструмент программирования IoT общего назначения. Важно отметить, что Node-RED быстро накопил значительную и растущую пользовательскую базу, а также развил активное сообщество разработчиков, которые предоставляют новые узлы, позволяющие программистам повторно использовать код Node-RED для самых разнообразных задач.
Установка Node-RED идёт в виде модуля NPM в среду Node.js. После того как прошла установка и пакет запущен, загрузится справочная информация по его состоянию. Графический клиент запускается в браузере. Сервер имеет адрес http//127.0.0.1:1880/. Если рассматривать графический интерфейс (рис. 2), то в левой части располагается палитра с доступными узлами.

Посередине находится рабочее пространство, в котором происходит объединение узлов в потоки. В правой части расположены три вкладки: информация по выбранному узлу (info), вкладка узла отладки (debug), вкладка рабочей панели (dashboard).
В Node-RED узлы можно разделить на три основных класса:
  • входные (формируют начальное сообщение);
  • функциональные (используются для написания скриптов обработки входных сообщений);
  • выходные (завершают выполнение кода).
В браузере вы создаёте приложение, перетаскивая узлы из своей палитры в рабочую область, и начинаете соединять их вместе. Одним щелчком мыши приложение развёртывается обратно в среду выполнения, где оно запускается.
Палитра узлов может быть легко расширена путём установки новых узлов, разработанных сообществом, а созданные вами потоки могут быть легко переданы в виде файлов JSON.

Пример реализации

Наглядным примером использования Node-RED был стенд, представленный компанией ПРОСОФТ на выставке «Мир климата». Данный стенд демонстрировал возможности применения ADAM-3600 для мониторинга и управления климатическим оборудованием, а именно предоставления информации по микроклимату в помещении и управления системой вентиляции. Данный стенд включал в себя 2 блока. Блок № 1 расположен в офисе ПРОСОФТ в серверном зале и состоит из следующего оборудования: контроллера с подключёнными к нему датчиками температуры и влажности, кулера системы охлаждения и световой арматуры. Блок № 2 располагался на выставке и включал в себя модем и панельный компьютер (рис. 3).
  
Данные с датчиков передаются по Modbus TCP на контроллер ADAM-3600. К контроллеру на аналоговый вход (AI) подключена термопара, а на дискретный выход (DO) подключены вентилятор FAN и светодиодная лента LED. Данные с ADAM передаются в MQTT-брокер, развёрнутый в облаке ПРОСОФТ через Интернет. На моноблоке Advantech установлен сервер Node-RED, который позволяет получать/отправлять данные из облака или в него. Также в Node-RED имеется возможность писать простые алгоритмы обработки данных (рис. 4).
  
В нашем случае написан алгоритм поддержания температуры в диапазоне +19…+22°C. При превышении температуры +22°C в автоматическом режиме включается вентилятор, охлаждающий термопару, пока значение температуры не понизится до +19°C, после чего вентилятор выключается.
Также управлять вентилятором можно в ручном режиме.

Заключение

Благодаря простоте инструмента Node-RED, предоставляющего редактор для визуального программирования на основе браузера, его легко может изучить и работать с ним широкому кругу пользователей. Если специалист может разбить проблему на отдельные шаги, ему не составит труда, посмотрев на поток, понять логику выполнения программы, для этого не требуется понимать отдельные строки кода в каждом узле. Нельзя не отметить использование в управлении событиями неблокирующей модели, простоту работы с облачными сервисами.
Совместное использование ADAM-3600 и Node-RED даёт возможность построить разветвлённую сеть с использованием глобальной сети, решающую основные задачи клиентов на надёжном, проверенном временем оборудовании, рассчитанном на жёсткие условия эксплуатации и оснащённом бесплатным программным обеспечением. ●

Литература

1. OASIS Standards – MQTT v3.1.1 [Электронный ресурс] // Режим доступа : https://www.oasis-open.org/standards#mqttv3.1.1.
2. ISO/IEC 20922:2016 Information technology – Message Queuing Telemetry Trans-port (MQTT) v3.1.1 [Электронный ресурс] // Режим доступа : iso.org/standard/69466.html.
3. GitHub. MQTT libraries [Электронный ресурс] // Режим доступа : https://github.com/mqtt/mqtt.github.io/wiki/libraries.
4. Гойхман В., Лаврова А. Протокол MQTT. Особенности, варианты применения, основные процедуры MQTT Protocol. [Электронный ресурс] // Режим доступа : http://lib.tssonline.ru/articles2/fix-corp/protokol-mqtt-osobennosti-varianty-primeneniya-osnovnye-p....
5. Node.js [Электронный ресурс] // Режим доступа : https://ru.wikipedia.org/wiki/Node.js.

Автор – сотрудник фирмы ПРОСОФТ
Телефон: (495) 234-0636
E-mail: info@prosoft.ru
2008 0
Комментарии
Рекомендуем