Время работы: Пн-Пт 9:00-18:00

Ваш список сравнения:

Сравнить Закрыть
+


Звонок    Закрыть
Оборудование
Производители
Модели
Корзина


Оформить     Очистить
   11  Кол-во:

OK   Отмена




Реализация MQTT в операторских панелях Weintek

Протокол MQTT разработан в рамках концепции IoT ( интернет вещей ), когда предполагается, что множество устройств должны обмениваться данными друг с другом. MQTT был стандартизован в 2014 году (см www.mqtt.org ), является инновационным и перспективным протоколом, поэтому компания Weintek Labs. приняла решение применить его в своей продукции.

Популярность протокола MQTT быстро растет, например, MQTT применяется в таких сервисах, как мессенджер Facebook, Amazon Web Services, его поддержка реализована в облачных сервисах IBM Bluemix, AWS IoT.

В настоящее время протокол MQTT реализован в операторских панелях Weintek серии XE и серии cMT.

Что можно делать с помощью протокола MQTT на панелях оператора Weintek.

С помощью протокола MQTT можно отправлять данные С ПАНЕЛИ Weintek на произвольные устройства.

Отправлять данные НА ПАНЕЛЬ с помощью MQTT нельзя. ( пока не реализовано, хотя протоколом MQTT предусмотрено ).

Таким образом, MQTT в панелях Weintek может служить средством для мониторинга произвольных данных в панели, когда панель отправляет данные, собранные с подключенных к ней устройств, контроллеров, по событиям, либо по времени, например, раз в секунду на заданный MQTT-брокер. Но управлять панелью по MQTT нельзя.

Получателем данных может быть некий сервер, мобильное устройство, браузер, и т.д. Для MQTT в настоящее время разработаны клиенты на множестве языков программирования ( C, JavaScript, PHP, Python, Java, итд ), исходники которых доступны и бесплатны. MQTT клиентом может выступать даже браузер ( для ПК, и для мобильных устройств).

MQTT клиенты доступны в App Store ( например MQTTInspector ) и Play Market ( например MyMQTT ).

MQTT протокол очень «легковесный», поэтому аппаратная платформа клиента может быть любой, даже платой, собранной на микроконтроллере.

В протоколе MQTT предусмотрена авторизация MQTT клиента, поэтому протокол MQTT является безопасным, в отличие от, например Modbus TCP, с помощью которого также можно отправлять данные от панели оператора на удаленный сервер, однако, авторизация в нем не предусмотрена.

Как работает MQTT

Работает MQTT с помощью сервера-посредника, называемого MQTT-брокер по принципу «публикация/подписка». MQTT-клиент «публикует» данные на MQTT -брокере под определенным «топиком», либо «подписывается» на получение данных от необходимого «топика». MQTT- брокер, при поступлении на него данных от MQTT-клиента ( операторской панели, например ), проверяет топик, на который они поступили, и отправляет данные всем MQTT-клиентам, «подписавшимся» на этот топик.

Такая схема отличается высокой гибкостью. Например, необходимо мониторить данные от операторской панели на ПК, мобильном устройстве, и архивировать их на сервере компании. С помощью MQTT это несложно сделать. Операторская панель будет MQTT – клиентом и будет «публиковать» данные на неком брокере под неким топиком. ( например, broker.mqttdashboard.com под топиком mycompany/myproject/hmi1 ) ПК, мобильные устройства, сервер компании будут MQTT-клиентами, «подписавшимися» на этот топик на этом брокере, и будут получать данные от панели, как только она их «опубликует» на брокере.

Что такое MQTT- брокер

MQTT-брокер — это узел в сети Интернет, либо локальной сети, на котором установлено специальное ПО - MQTT-брокер.

Существует множество реализаций MQTT брокеров, например  ActiveMQ, Apollo, HiveMQ, IBM MessageSight, JoramMQ, Mosquitto, RabbitMQ, Solace Message Routers, VerneMQ.

Например, http://mosquitto.org - MQTT-брокер с открытым исходным кодом.

Также, в сети существует несколько бесплатных MQTT-брокеров, которыми можно свободно пользоваться, например broker.mqttdashboard.com, broker.hivemq.com , test.mosquitto.org.

Естественно, бесплатные сервисы не дают никаких гарантий относительно надежности своей работы. Если требуется гарантированная надежность, можно развернуть свой MQTT брокер, на своих серверных мощностях, воспользовавшись одной из вышеперечисленных реализаций, либо воспользоваться одним из платных брокеров MQTT, например cloudmqtt.com.

MQTT брокер также можно установить на Raspberry PI.

MQTT брокер также установлен в панелях Weintek серии XE и серии cMT и, в некоторых случаях, целесообразно пользоваться им.

Таким образом, в панелях оператора Weintek реализован и MQTT клиент, и MQTT брокер. MQTT клиент можно настроить, чтобы он публиковал данные на внешнем брокере ( например, broker.mqttdashboard.com ), либо на своем локальном брокере ( встроенном в панель ).

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

Однако, если у панели с включенным брокером есть статический IP адрес, то подписаться на получение ее данных может любое устройство во внешней сети.

Также, при активированном EasyAccess2.0 на топик на сервере панели можно подписаться и удаленно.

Проект для демонстрации отправки данных по MQTT
от операторской панели MT8090XE браузеру

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

  • операторская панель MT8090XE, как MQTT клиент, публикующий данные,
  • браузер с загруженной страницей www.rusavtomatika.com/mqtt/demo.php, как MQTT клиент, получающий данные,
  • бесплатный MQTT брокер broker.mqttdashboard.com,( IP адрес 212.72.74.21 ), "соединяющий" оба клиента.

Проект для операторской панели MT8090XE доступен здесь. При отсутствии панели, проект также можно запускать в Онлайн Симуляторе EasyBuilder Pro ( Инструменты -> Онлайн Симуляция ).

При старте проекта необходимо задать топик, на который панель будет публиковать данные и нажать кнопку "Старт MQTT". Панель соединяется с broker.mqttdashboard.com, и в случае успешного соединения начинает публиковать на заданном топике значения Переменной 1 и Переменной 2 раз в секунду.

Значения переменных можно менять с помощью слайдеров.

Проект на операторской панели MT8090XE

Просмотреть данные, опубликованные панелью можно на странице www.rusavtomatika.com/mqtt/demo.php. Для подключения к MQTT брокеру на данной странице используются бесплатная JavaScript библиотека HiveMQ.

С ее помощью браузер работает как MQTT клиент.

Для отображения приборов и графика используется бесплатная JavaScript библиотека JqPlot.

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

Вы можете наблюдать на странице значения Переменной 1 и Переменной 2, отправляемые из операторской панели раз в секунду. В поле данных можно видеть, что данные от операторской панели поступают в формате JSON, который широко применяется в различных языках программирования. Например, в JavaScript строка JSON преобразовывается в объект стандартной функцией.

Страница demo.php на www.rusavtomatika.com

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

Можно открыть страницу www.rusavtomatika.com/mqtt/demo.php с браузеров мобильных устройств, либо других компьютеров, и, если подписаться на тот же топик, увидеть данные от операторской панели.

Можно также установить, например, приложение для Андроид MyMQTT , и через приложение подключиться к этому же брокеру на тот же топик, получать данные от панели в приложении.

В приложении также можно публиковать данные, и если это сделать на тот же топик, то на странице demo.php в поле данных можно будет видеть то, что вы отправили из приложения. Так как вряд ли вы отправите строку в формате JSON, она не будет преобразована в значения переменных, а просто отобразится в логе данных.


Надеемся, данный материал поможет вам в освоении протокола MQTT и его использовании в операторских панелях Weintek. Операторские панели, поддерживающие протокол MQTT, всегда на наших складах в Санкт-Петербурге и Москве. Вопросы можно задавать по телефонам ( в шапке сайта ), email ( в шапке сайта ), или в чате, который всплывает справа.