4.1.4.5.14.5.1. Настройка обмена данными
Для настройки обмена данными между модулем MQTT Client и брокером необходимы следующие исходные данные:
1. Информация о брокере:
IP-адрес брокера;
номер TCP порта;
версия протокола MQTT;
имя пользователя и пароль.
2. Информация о данных, которых требуется получать от брокера или публиковать на брокер:
топик данных, по которому будет выполняться подписка;
тип данных.
Добавление ссылки на модуль MQTT
Чтобы добавить в проект таблицу описания топиков подписки, необходимую для описания топиков, подписка на которые выполняется на брокере:
Добавьте в проект ссылку на модуль MQTT.

Нажмите кнопку
(Обновить) на панели инструментов или клавишу «F5» на клавиатуре. После чего в панели элементов отобразится таблица описания топиков подписки - TopicDescriptionTable.

Добавление и заполнение таблицы описания топиков подписки
Чтобы описать топики, подписка на которые выполняется на брокере, добавьте и заполните таблицу описания топиков подписки.
Таблицу описания топиков подписки можно заполнять как в Astra.AStudio, так и с помощью редакторов файлов формата *.csv
|
Чтобы описать топики подписки, выполните следующие действия:
1. Добавьте в проект таблицу TopicDescriptionTable.

2. На элементе TopicDescriptionTable нажмите кнопку
. В открывшемся окне укажите место хранения таблицы описания топиков подписки на диске, задайте имя таблицы описания топиков подписки, нажмите кнопку Открыть.

Таблица описания топиков подписки в формате *.csv будет создана. Если требуется открыть существующую таблицу описания топиков подписки, то выберите файл таблицы описания топиков подписки на диске и нажмите кнопку Открыть.
3. Перейдите в таблицу описания топиков подписки и для каждого топика подписки брокера заполните поля таблицы:
|
Поле
|
Значение
|
|
Идентификатор
|
Уникальный строковый идентификатор топика в таблице. Укажите произвольный идентификатор. В дальнейшем идентификатор будет использоваться при конфигурировании брокера.
|
|
Описание
|
Вспомогательный столбец, в который можно вносить любую информацию о топике.
Не используется модулем
|
|
Топик
|
Tопик брокера, на который будет выполняться подписка.
|
|
Качество обслуживания
|
Качество обслуживания, устанавливаемое публикациям:
«At most once» - брокер получит сообщение максимум один раз - доставка сообщения не гарантируется.
«At least once» - брокер получит сообщение минимум один раз - сообщения будут посылаться брокеру, пока MQTT Client не получит подтверждения доставки.
«Exactly once» - брокер получит сообщение гарантировано один раз
|
Настройка передающего сервера
Чтобы настроить объектную модель передающего Astra.Server:
1. Перейдите в Astra.Server и добавьте Приложение.

2. Перейдите в добавленное Приложение и добавьте экземпляры логического типа передающего Astra.Server.

3. На элементе Карта адресов MQTT нажмите кнопку
.В открывшемся окне укажите место хранения карты адресов на диске, задайте имя карты адресов, нажмите кнопку Открыть.

4.В свойствах Карты адресов MQTT укажите таблицу описания топиков подписки.

5. Перейдите в Карту адресов MQTT и настройте параметры адресов только тех сигналов, значения которых будут передаваться в другой Astra.Server следующим образом:
|
Параметр
|
Значение
|
|
Привязка
|
«непосредственно».
|
|
Идентификатор топика подписки
|
Идентификатор топика из таблицы описания топиков подписки
|
|
Топик
|
Переменная часть топика подписки.
|
|
Протокольный тип
|
«binaryTunneling».
|
Заполненная Карта адресов MQTT:

Настройка клиента MQTT
Чтобы настроить MQTT Client для передачи данный в другой Astra.Server:
-
Перейдите в Astra.Domain → Узел Astra.Domain → Astra.Server, и из папки Коммуникационные модули добавьте Клиент MQTT.
2. В свойствах Клиента MQTT укажите карту адресов передающего сервера:

Настройка диода данных
Чтобы настроить диод данных для туннелирования по MQTT:
1. Перейдите в Astra.Domain и добавьте Устройство. Укажите Имя.

2. Перейдите в добавленное Устройство и добавьте два экземпляра Брокер MQTT. Каждому брокеру укажите значения свойств:

|
Свойство
|
Значение
|
|
Номер TCP порта
|
Порт брокера.
|
|
Имя
|
Имя брокера в проекте
|
Для настройки диода данных из примера:
одному брокеру задайте имя «MqttBroker_In» и порт «1883»;
второму брокеру задайте имя «MqttBroker_Out» и порт «1884».
3. В это же Устройство добавьте два экземпляра Адаптер Ethernet. Укажите свойства каждого Адаптера Ethernet:

|
Свойство
|
Значение
|
|
Адрес
|
IP - адрес брокера.
|
|
Имя
|
Имя адаптера Ethernet в проекте.
|
4. Соедините Брокер MQTT и соответствующий ему Адаптер Ethernet.

5. Перейдите в Astra.Domain и соедините Адаптер Ethernet диода данных «Ethernet_In» с «Network1».

Настройка принимающего сервера.
Чтобы настроить принимающий Astra.Server:
1. Перейдите в Astra.Domain и добавьте Узел Astra.Domain. Задайте Имя.

2.Перейдите в добавленный Узел Astra.Domain и в настройках Адаптера Ethernet укажите:

|
Свойство
|
Значение
|
|
Адрес
|
IP - адрес брокера.
|
|
Имя
|
Имя адаптера Ethernet в проекте.
|
3. В Узел Astra.Domain добавьте Astra.Server.

4. Перейдите в Astra.Server и добавьте Клиент MQTT.

5. В Astra.Server добавьте Приложение.

6. Перейдите в добавленное Приложение и добавьте два экземпляра логического типа принимающего Astra.Server . Для каждого логического типа принимающего Astra.Server в свойстве Представляемый объект укажите соответствующий логический тип передающего Astra.Server.

7. Инициализируйте ссылки Приложения:
вызовите контекстное меню и выполните команду Инициализировать все ссылки;

нажмите кнопку
на панели инструментов или клавишу «F5» на клавиатуре.
8. Вернитесь в Astra.Server и добавьте Ссылку на исполняемый модуль приложения.

9.В свойстве Исполняемые объекты укажите Приложение передающего Astra.Server.

.
10.На Ссылке на исполняемый модуль приложения нажмите кнопку и укажите ранее добавленный диод данных.

11. Вернитесь в Astra.Domain и добавьте ещё один элемент Сеть Ethernet. Cоедините Адаптер Ethernet принимающего Astra.Server и Адаптер Ethernet диода данных «Ethernet_Out» с добавленной Сетью Network2.

