<< 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.
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 - настройка открывает редактор скрипта.
По умолчанию скрипт содержит функцию - getMQTTTopicPayload. Данная функция вызывается каждый раз когда изменяется значение тега с передачей в MQTT сервер. В данную функцию передается имя тега, его Publish topic, значение QoS, флаг Retain, а также передаваемые значение, признак качества и метка времени тега.
Функция должна вернуть флаг ошибки (если true, то данные не передаются), имя topic, передаваемые данные payload, значение QoS и флаг Retain.
Используя встроенные функции редактора скрипта можно изменить передаваемые данные - например передать не только значение (как передается по умолчанию), но и также метку времени или признак качества или любые другие сервисные данные.
После включения MQTT клиента, у каждого тега в сервере появляется группа MQTT-клиент, содержащая настройки Publish (передача данные брокеру) и Subscribe (получение данных от брокера). При их включении появляются настойки.
Publish topic - имя раздела (топика) по которому будет передаваться значение.
Publish on change - режим передачи данных. True - передача по изменению, False - передача с циклом опроса.
Subscribe topic - имя раздела (топика) по которому будет получаться значение в тег. В этом случае тег должен иметь тип доступа - ReadWrite.