Mqtt И Modbus: Сравнение Протоколов, Используемых В Шлюзах Iot

В развитии Интернета вещей важны не только совершенно новые технологии.

Возможность интеграции с прошлыми разработками играет здесь неоценимую роль.

И ключевым моментом такой интеграции является общение.

Существует множество протоколов, которые позволяют огромному количеству «вещей» подключаться к Интернету и взаимодействовать друг с другом.



MQTT и Modbus: сравнение протоколов, используемых в шлюзах IoT

Сегодня мы поговорим о парочке взаимодополняющих протоколов, нашедших применение в IoT. Первый — Modbus. Он служит для организации связи между устройствами, расположенными близко друг к другу.

Второй — MQTT. Он имеет гораздо более широкие возможности и поддерживает работу в локальных сетях и Интернете.

С его помощью можно организовать обмен данными между «вещами» в глобальном масштабе.

Модбус — протокол последовательного обмена данными, появившийся в 1979 году и ставший де-факто стандартом для организации связи между промышленными устройствами.

MQTT появился на 20 лет позже, но, несмотря на разницу в возрасте, совместное использование этих двух протоколов позволяет предоставить узкоспециализированным интегрированным устройствам все возможности, которые доступны при подключении к Интернету.

На рисунке ниже показана схема взаимодействия этих протоколов, а также устройство, позволяющее организовать такое взаимодействие — шлюз Интернета вещей.



MQTT и Modbus: сравнение протоколов, используемых в шлюзах IoT

Шлюз Интернета вещей сочетает в себе возможности MQTT и Modbus Давайте подробнее рассмотрим Modbus и MQTT, изучим их особенности и возможности совместного использования в IoT-решениях.



Модбус

Modbus за десятилетия своего существования развился в широкий спектр протоколов, использующих различные способы физического соединения устройств (например, интерфейс RS-485).

Все эти реализации основаны на последовательном протоколе, построенном по модели «главный-подчиненный».

Мастер отправляет запрос ведомому, а ведомый отвечает на этот запрос.

В стандартной сети Modbus имеется один главный узел и до 247 подчиненных узлов.

Однако следует отметить, что двухбайтовая система адресации может существенно ослабить это ограничение.

С помощью интерфейса RS-485 связь между ведущими и ведомыми устройствами осуществляется с помощью пакетов, содержащих функциональный код и данные.

Этот код указывает, какое действие необходимо предпринять, например, необходимость прочитать дискретные входные данные, прочитать данные из очереди FIFO или выполнить диагностическую операцию.

Подчиненное устройство, получив команду и выполнив ее, в ответ отправляет пакет, структура которого очень проста.

Благодаря низкой вычислительной нагрузке, которую создает взаимодействие через Modbus, «общаться» с его помощью могут самые разные устройства: от умных контроллеров до обычных датчиков.

Из описания можно судить о чрезвычайной простоте Modbus, однако его открытость сделала этот протокол де-факто стандартом для промышленных и SCADA-систем.



MQTT

MQTT (Message Queuing Telemetry Transport) — это простой открытый протокол, разработанный специально для Интернета вещей и используемый для обмена данными между устройствами.

В сеть MQTT входит MQTT-брокер, который выступает посредником во взаимодействии агентов MQTT — издателей и подписчиков.

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



MQTT и Modbus: сравнение протоколов, используемых в шлюзах IoT

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

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

При этом в структуре передаваемых с его помощью данных очень мало служебной информации, то есть по сравнению со многими другими протоколами, например HTTP, он почти не нагружает сети передачей только необходимой информации.

для функционирования протокола.

Согласно измерениям, проведенным в сетях 3G, пропускная способность MQTT в 93 раза выше, чем протокол REST (Representational State Transfer), работающий поверх HTTP. MQTT реализует модель издатель-подписчик, используя минимальное количество методов.

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

Эти действия сводятся к взаимодействию с брокером и работе с темами и сообщениями.

Агенты подключаются к брокеру и затем либо публикуют для них темы и сообщения, либо подписываются на темы и получают сообщения, опубликованные в этих темах.

После завершения своей работы агент отключается от брокера.

Вот как выглядят методы MQTT:

  • Connect – установить соединение с брокером.

  • Disconnect – разорвать соединение с брокером.

  • Опубликовать – опубликовать тему на брокере.

  • Подписаться – подписаться на тему брокера.

  • Отписаться – отписаться от темы на брокере.

Вот так выглядит упрощенная схема взаимодействия подписчика и паблишера с использованием MQTT-брокера.



MQTT и Modbus: сравнение протоколов, используемых в шлюзах IoT

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

Абонент, потребитель информации, делает то же самое и подписывается на тему, которая здесь представлена как «/home/alarms/1/status».

В данном примере в данной теме публикуется информация об изменении состояния домашней сигнализации в определенной «зоне №1».

Когда у издателя появляются новые данные, он связывается с брокером и публикует сообщение в этой теме.

Брокер, в свою очередь, передает опубликованное сообщение всем, кто подписался на эту тему.

Обратите внимание на иерархическую структуру имени темы в нашем примере.

Это похоже на путь в файловой системе.

Это упрощает организацию тем.

Кроме того, аналогичные иерархические структуры именования ресурсов популярны в других архитектурах протоколов, таких как REST. MQTT также допускает использование подстановочных знаков, что упрощает процесс подписки.

Если подписчик, например, хочет знать о состоянии всех датчиков сигнализации, он может подписаться на такую тему: «/home/alarms/+/status».

В результате он будет уведомлен о срабатывании сигнализации во всех зонах, а не только в «зоне №1», как в приведенном выше примере.

Вы можете подписаться на целое поддерево тем, используя шаблон со знаком «#».

Например, подписка на «/home/#» позволит вам получать сообщения обо всем, что происходит в темах ниже узла «/home».



Качество обслуживания

MQTT поддерживает указание уровня качества обслуживания (QoS).

А именно, таких уровней три:

  • QoS 0. На этом уровне используется стратегия «доставка сообщения не более одного раза».

    Получатель сообщения не подтверждает его получение; отправитель, соответственно, передает сообщение только один раз, не предпринимая попыток его повторной передачи.

    Это метод «отправил и забыл».

  • QoS 1. Здесь используется подход «доставка хотя бы одного сообщения».

    Гарантируется, что получатель получит сообщение хотя бы один раз.

    В этом случае абонент может получить одно и то же сообщение несколько раз.

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

  • QoS 2. Этот уровень качества обслуживания соответствует самой медленной процедуре доставки сообщений, но при этом является наиболее надежным.

    Его главная особенность — реализация стратегии «однократной доставки сообщений».

    При его использовании применяется четырехэтапная процедура подтверждения доставки сообщений.

Выбор конкретного уровня качества обслуживания зависит от характера передаваемых данных и важности их доставки.



Брокеры и шлюзы Intel MQTT для Интернета вещей

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

Шлюзы Intel для Интернета вещей — одно из передовых решений промышленного уровня, поддерживающее MQTT. Это семейство продуктов обеспечивает безопасные соединения между датчиками, устройствами Интернета вещей и облачными сервисами.

Шлюзы тщательно протестированы и готовы к установке программного обеспечения, необходимого для функционирования конкретного проекта.

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

Среди этих методов, помимо традиционного проводного Ethernet и беспроводного Wi-Fi, можно найти ZigBee, поддержку сотовых сетей, USB и, конечно же, MQTT и Modbus. Если говорить о сетевых возможностях, то существует три варианта шлюзов Intel для Интернета вещей; у них разные конфигурации подсистем ввода/вывода информации.

Это разделение основано на потребностях рынка.

Среди таких потребностей, которые могут учитываться как по отдельности, так и в комбинациях, можно отметить создание стационарных решений промышленного уровня, экономное энергопотребление, разработку решений для движущихся объектов.

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

При этом стандартной ОС шлюзов является безопасная и стабильная Wind River Linux. Очень важным преимуществом шлюзов Intel IoT является поддержка технологий безопасности McAfee Embedded Control. В частности, благодаря этим технологиям становится возможным отслеживать изменения состояния устройства на основе политики безопасности.

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



Заключение

MQTT и Modbus — это совершенно разные технологии, но вместе они помогают создавать надежные решения IoT. Modbus используется как локальный интерфейс взаимодействия с устройствами, роль MQTT — организация глобальных связей между компонентами системы.

Каждый из них играет важную роль.

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

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

Теги: #шлюзы #iot #mqtt #Modbus #Программирование микроконтроллеров #Разработка для Интернета вещей

Вместе с данным постом часто просматривают: