MQTT-клиент

<< Click to Display Table of Contents >>

Navigation:  Multi-Protocol MasterOPC Server > Multi-Protocol MasterOPC Server > MQTT-клиент >

MQTT-клиент

MQTT - упрощенный сетевой протокол, для работы в сетях TCP/IP. Основное назначение протокола - приборы IoT (Internet of Things - интернет-вещей).

Используется для обмена сообщениями по принципу издатель-подписчик, с использованием промежуточного сервера - называемого "брокером". Сервером MQTT может выступать облачный сервис (в этом случае в поле IP адрес указывается его доменное имя), или локальный MQTT сервер, например Mosqitto (в этом случае указывается его IP адрес). В поставку сервера входит пример-конфигурация Demo_MQTT.mbp с подключением к облачному сервису.

Настройки подключения MQTT клиента

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

MQTT-klient

IP адрес - IP адрес или доменное имя MQTT сервера (брокера).

IP порт - порт обмена, по умолчанию используется 1883.

Keepalive interval (s) - время посылки тестового запроса, для проверки состояния соединения.

User ID - составная строка с полем-идентификатором устройства. Определяется параметрами брокера.

Clean Session - если флаг установлен в True, то при разъединении сеанса брокер очищает всю информацию при отключении клиента. Если флаг установлен в false, то данные сохраняются.

User Name - имя пользователя.

Password - пароль.

Publish QoS - тип передаваемого QoS. Доступные варианты: 0 - без подтверждения получения, 1 - с подтверждением получения, 2 - с подтверждением подтверждения получения.

Publish retain - передача retain флага. Retain - флаг сохраняемости сообщения. Если флаг установлен, то брокер хранит последнее сообщение полученное по подписке. Например, клиент А передал данные брокеру, а клиент В подписался на него после этого. Если флаг будет установлен, то клиент B получит эти данные.

Subscribe QoS - тип получаемого QoS. Доступные варианты: 0 - без подтверждения получения, 1 - с подтверждением получения, 2 - с подтверждением подтверждения получения.

Will - данная строка передается брокеру, а при отключении MQTT клиента, брокер посылает широковещательный запрос всем подписчикам. Строка состоит из текстовых полей Will topic, Will payload, Will retain, Will QoS.

Reconnect timeout (s) - при обрыве соединения через данное время происходит попытка подключения.

Режим работы regular/master/slave - данная настройка позволяет перевести OPC сервер в режим MQTT-тоннеля.

Topic Publis rule - настройка открывает редактор скрипта.

MQTT-klient1

По умолчанию скрипт содержит функцию - getMQTTTopicPayload. Данная функция вызывается каждый раз когда изменяется значение тега с передачей в MQTT сервер. В данную функцию передается имя тега, его Publish topic, значение QoS, флаг Retain, а также передаваемые значение, признак качества и метка времени тега.

Функция должна вернуть флаг ошибки (если true, то данные не передаются), имя topic, передаваемые данные payload, значение QoS и флаг Retain.

Используя встроенные функции редактора скрипта можно изменить передаваемые данные - например передать не только значение (как передается по умолчанию), но и также метку времени или признак качества или любые другие сервисные данные.

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

После включения MQTT клиента, у каждого тега в сервере появляется группа MQTT-клиент, содержащая настройки Publish (передача данные брокеру) и Subscribe (получение данных от брокера). При их включении появляются настойки.

MQTT-klient2

Publish topic - имя раздела (топика) по которому будет передаваться значение.

Publish on change - режим передачи данных. True - передача по изменению, False - передача с циклом опроса.

Subscribe topic - имя раздела (топика) по которому будет получаться значение в тег. В этом случае тег должен иметь тип доступа - ReadWrite.