Учебное пособие по мосту данных промышленного Интернета вещей: мост Modbus к MQTT
Учебное пособие по мосту данных промышленного Интернета вещей: мост Modbus к MQTT

Введение в Modbus

Modbus — это протокол последовательной связи, используемый для подключения оборудования промышленной автоматизации. Он был первоначально разработан компанией Modicon и появился в 1979 году. В настоящее время он стал одним из универсальных стандартов связи и широко используется в сценариях промышленной автоматизации.

Modbus использует режим «главный-подчиненный» и поддерживает несколько методов передачи, включая последовательный (RS-232/485) и Ethernet-версии (TCP/IP). Он в основном используется для мониторинга и управления оборудованием автоматизации, таким как датчики, двигатели и ПЛК. Он может осуществлять обмен данными и отправку команд управления между устройствами, чтобы различные устройства могли координировать свои действия друг с другом.

В протоколе Modbus определены четыре типа областей хранения: катушки, дискретные входы, входные регистры и регистры хранения. Различные типы областей хранения соответствуют различным операциям чтения и записи.

имя сегмента

тип данных

тип доступа

PLC адрес

Зарегистрировать адрес

Катушка

Кусочек

Читай и пиши

000001-065536

0-65535

дискретный вход

Кусочек

только чтение

100001-165536

0-65535

входной регистр

Характер

только чтение

300001-365536

0-65535

регистр временного хранения

Характер

Читай и пиши

400001-465536

0-65535

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

Если взять в качестве примера Modbus TCP, его структура сообщения — MBAP (заголовок сообщения) + PDU (структура кадра).

Заголовок сообщения

рамная конструкция

идентификатор вещи

идентификатор протокола

длина

идентификатор объекта

Код функции

данные

Modbus Протокол определяет различные функция реализует доступ к зоне хранения и пиши, распространены следующие Коды функции。

Код функции

Функция

Кусочек/Характердействовать

Количество операций

01

Чтение состояния катушки

Кусочекдействовать

один или несколько

02

Чтение статуса дискретного входа

Кусочекдействовать

один или несколько

03

Чтение реестра временного хранения

Характердействовать

один или несколько

04

Чтение входного регистра

Характердействовать

один или несколько

05

Напишите одну катушку

Кусочекдействовать

одинокий

06

Запись в единый регистр временного хранения

Характердействовать

одинокий

15

Запись нескольких катушек

Кусочекдействовать

Несколько

16

Запись нескольких регистров временного хранения

Характердействовать

Несколько

Предположим, что адрес подчиненной машины 01H, прочитать регистр временного храненияначинатьадресдля 006BH, читать 2 зарегистрируйтесь, инструкция такая:

С адреса машины

Код функции

начинатьадресвысокий Кусочек

начинатьадрес Низкий Кусочек

Количество регистров большое Кусочек

Количество регистров низкое Кусочек

01

03

00

6B

00

02

Длина каждого регистра временного хранения равна 2 индивидуальный Характер Фестиваль。Низкийадрес Регистр переносится первым,Высокий адрес зарегистрируйтесь после переноса. Данные каждого регистра данных старшего раздела характера передаются первыми.,Передача после низкого раздела данных Характера. Ответ следующий:

С адреса машины

Код функции

Характер Фестиваль数

006BH Фестиваль Высокого Характера

006BH низкий раздел Характер

006CH Фестиваль высокого характера

006CH Фестиваль низкого характера

01

03

04

00

00

00

00

Зачем соединять Modbus с MQTT

С появлением Индустрии 4.0 растет спрос на интеллект, автоматизацию и данные в производстве. В этом контексте протокол Modbus также сталкивается с некоторыми проблемами.

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

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

Кроме того, протокол Modbus по-прежнему имеет определенные ограничения в приложениях многоуровневой архитектуры и облачных платформ. Он может обмениваться данными только в режиме «точка-точка» и плохо поддерживает распределенные системы и платформы облачных вычислений.

MQTT имеет очевидные преимущества перед Modbus. Протокол MQTT — это упрощенный протокол передачи сообщений, основанный на модели публикации/подписки. Он основан на протоколе TCP/IP и был выпущен IBM в 1999 году. 29 октября 2014 года MQTT стал официально одобренным стандартом связи OASIS. Он широко используется в Интернете вещей, мобильном Интернете, интеллектуальном оборудовании, Интернете транспортных средств, умных городах, телемедицине, электроэнергетике, нефти и энергетике и других областях.

MQTT в основном имеет следующие преимущества:

  • легкий:MQTT Он очень прост в использовании и может использоваться в средах с ограниченной пропускной способностью и плохим качеством сети.
  • гибкость:MQTT Поддерживает несколько методов подключения и обеспечивает гибкую доставку сообщений посредством модели подписки/публикации.
  • надежность:MQTT Может быть гарантирована надежная передача сообщений, а связь может быть восстановлена ​​и возобновлена ​​даже в случае сбоя в работе сети.
  • безопасность:MQTT поддерживать SSL/TLS Механизмы шифрования и аутентификации могут гарантировать безопасность ваших данных.

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

Мост Modbus для архитектуры MQTT

Источник данных Modbus отправляет данные MQTT Broker, который получает и пересылает их. Для реализации этого процесса необходимы два компонента: один из них — периферийное устройство преобразует протокол Modbus в MQTT и отправляет его брокеру MQTT, другой — брокер MQTT, который обрабатывает сообщения MQTT;

Neuron EMQ может конвертировать протокол Modbus в MQTT; EMQX может служить брокером MQTT для обработки массовых соединений.

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

EMQX — это масштабируемый облачный распределенный сервер обмена сообщениями IoT MQTT. Являясь самым масштабируемым сервером сообщений MQTT в мире, EMQX обеспечивает эффективное и надежное соединение с массивными устройствами Интернета вещей. Он может перемещать и обрабатывать данные потока сообщений и событий в режиме реального времени с высокой производительностью, помогая пользователям быстро создавать критически важные для бизнеса платформы и приложения Интернета вещей.

Ниже показана архитектура Neuron, собирающая данные с периферии и преобразующая их в MQTT для загрузки в MQTT-брокер.

Мост Modbus для архитектуры MQTT
Мост Modbus для архитектуры MQTT

Мост Modbus с MQTT через Neuron

В этой главе рассказывается, как использовать Neuron для сбора данных с устройств Modbus, загрузки собранных данных в MQTT Broker (EMQX) и просмотра их с помощью MQTTX.

Быстрое использование EMQX

EMQX Предоставляет несколько методов установки, пользователи могут Установить Подробный метод «Установить» см. в разделе . В этом примере используется стандартизированный метод развертывания, чтобы можно было как можно быстрее приступить к его использованию. EMQX。

Выполните следующую команду, чтобы получить образ Docker:

Язык кода:txt
копировать
docker pull emqx/emqx:5.1.0

Выполните следующую команду, чтобы запустить контейнер Docker

Язык кода:txt
копировать
docker run -d --name emqx -p 1883:1883 -p 8081:8081 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.1.0

Доступ через браузер http://localhost:18083/ (localhost можно заменить на ваш реальный IP адрес)к访问 EMQX Dashboard Консоль управления для мониторинга и управления подключениями устройств и соответствующими индикаторами. Это руководство сохраняет docker Просто начните это.

Первоначальное имя пользователя: admin ,Начальный пароль:public

Установите эмулятор Modbus.

Установить PeakHMI Slave Simulators программное обеспечение,Установить Бао Кэсуществовать PeakHMI Официальный сайт Загрузите в.

Установитьназад,бегать Modbus TCP slave БЫВШИЙ. Должен гарантировать Neuron Запускайте в той же локальной сети, что и эмулятор.

Нажмите Windows->Register data Просмотр данных.

Выберите сайт номер 1.

Выберите сайт номер 1.
Выберите сайт номер 1.

выбирать Holding Registers。До сих пор,успехзапускатьэмулятор,Держатьэмулятор Открыть,Далее идет Нейрон.

выбирать Holding Registers
выбирать Holding Registers

Нейрон Быстрый старт

Neuron Предоставляет несколько методов установки, пользователи могут Установить Подробный метод «Установить» см. в разделе . В этом примере используется стандартизированный метод развертывания, чтобы можно было как можно быстрее приступить к его использованию. Neuron。

Получите образ Docker:

Язык кода:txt
копировать
$ docker pull emqx/neuron:latest

Запустите Docker-контейнер:

Язык кода:txt
копировать
$ docker run -d --name neuron -p 7000:7000 --privileged=true --restart=always emqx/neuron:latest

Открыть Web Браузер, введите «Выполнить» Neuron Слоган адресаконец шлюза можно использовать для входа на страницу консоли управления. По умолчанию слоган «окончание». 7000。Доступ через браузер http://localhost:7000/ (localhost можно заменить на ваш реальный IP адрес)

Первый шаг, авторизуйтесь

Страница Открыть пост,Войдите в интерфейс входа,Пользователи могут войти в систему, используя исходное имя пользователя и пароль (Первоначальное имя пользователь:admin, начальный пароль: 0000).

Второй шаг — добавить оборудование для южного направления.

существовать Конфигурация 菜单серединавыбирать Южное оборудование,Перейти в Южное оборудованиеинтерфейс,Нажмите Добавить устройство Добавьте новое устройство.

  • Имя: Введите имя устройства, например modbus-tcp-1;
  • Плагин: раскрывающийся список выбора Modbus TCP плагин.

Третий шаг — установка параметров устройства южного направления.

После добавления Южного оборудования вы автоматически войдете в интерфейс Конфигурации устройства, заполните параметры и отправите заявку.

  • Режим передачи: выбор TCP;
  • Режим подключения: выбор клиента;
  • Максимальное количество повторов: по умолчанию 0;
  • Интервал повторной отправки команд: по умолчанию 0;
  • Интервал отправки команд: по умолчанию 20;
  • IP адрес:заполнять Установить PeakHMI Slave Simulators программное обеспечение PC конец IP адрес;
  • Конец Слоган: По умолчанию 502;
  • Тайм-аут соединения: по умолчанию 3000.

Шаг 4. Создайте группу в карточке устройства.

Нажмите Любое пустое место на карте узла устройства.,Войдите в интерфейс управления списком групп.,Нажмите создавать ,неожиданно возникнуть создавать Группа диалоговое окно. Заполните параметры и отправьте:

  • Имя группы: введите имя группы, например группа-1;
  • Интервал: по умолчанию 1000.

Шаг 5. Добавьте точки данных в группу

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

существовать Группасередина添加данныеточка Кусочек
существовать Группасередина添加данныеточка Кусочек

Заполните параметры Кусочек и отправьте:

  • Имя: Введите имя Кусочек.,Например,tag-1;
  • Атрибуты: раскройте список, нажмите на атрибут Кусочек.,Например,Read,Write;
  • Тип: раскрывающийся список типов данных,Например,INT16;
  • адрес: Заполните адрес водителя,Например,1!40001。1 представлять Modbus эмуляторсерединанастраиватьизточка Кусочек站точка号,40001 представлятьточка Кусочек Зарегистрировать адрес;
  • Оставьте описание, коэффициент умножения и точность пустыми.

Шаг 6. Просмотрите собранные данные при мониторинге данных.

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

Посмотреть коллекцию
Посмотреть коллекцию

Обратите внимание: убедитесь, что симулятор Modbus запущен.

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

  • Южное оборудование: В раскрывающемся списке выбор хочет просмотреть Южное оборудование,Например,выбиратьужесоздаватьиз modbus-tcp-1;
  • Имя группы: раскрывающийся список выбора, хотите просмотреть выбранное Южное Были созданы группы по оборудованию, например, выборы. group-1;
  • выбирать Заканчивать,На странице Воля будут отображаться прочитанные значения всех точек Кусочек в группе.

Шаг 7. Добавьте в приложение подключаемый модуль северного направления.

создавать Приложение на север, Neuron Установите соединение с северным приложением и загрузите собранные данные устройства в MQTT Broker(EMQX)。

существоватьКонфигурация菜单серединавыбиратьПриложение на север,Нажмите Добавить приложение , как показано на рисунке ниже.

Добавить приложение
Добавить приложение

Добавьте модуль подключения к облаку MQTT:

  • Имя: введите имя приложения, например, MQTT;
  • Plugin:раскрывающийся списоквыбирать MQTT плагин.

Шаг 8. Установите параметры приложения для северного направления

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

Настройте соединение MQTT:

  • Конец клиента ID: обратите внимание на это ID Чтобы быть независимыми друг от друга, повторяйте ID может вызвать Конец клиентавыгнали。Напримернастраиватьдля,MQTT1999;
  • Уровень QoS: по умолчанию — 0;
  • Формат сообщаемых данных: По умолчанию используется формат значений;
  • Тема запроса на запись: по умолчанию — /neuron/MQTT/write/req;
  • Напишите тему ответа: По умолчанию — /neuron/MQTT/write/resp;
  • Автономное кэширование: отключено по умолчанию;
  • серверадрес:заполнятьсоздаватьиз emqx broker адрес,адресдля部署 emqx изадрес localhost, который является вашим фактическим IP адрес。
  • Порт сервера: по умолчанию 1883;
  • Имя пользователя, пароль: оставьте пустыми;
  • SSL: отключен по умолчанию.

Шаг 9. Подпишитесь на группу точек южного направления.

Нажмите Толькосоздаватьиз MQTT Заполните любое пустое место на карточке узла и войдите в интерфейс группы подписки, нажмите Добавить подписку

Подпишитесь на группу данных южного устройства:

  • Южное оборудование:раскрывающийся списоквыбиратьужесоздаватьиз Южное оборудование,Например,modbus-tcp-1;
  • Группа: в раскрывающемся списке выберите группу, на которую вы хотите подписаться.,Например,group-1;
  • Тема: MQTT Тема,которая в данном случае по умолчанию равна /neuron/MQTT/group-1。Следующийсуществовать MQTTX Подпишитесь на эту тему и получайте сообщения.

Шаг 10, просмотрите данные на MQTT-клиенте

После завершения подписки, помимо собственного интерфейса мониторинга данных Neuron, пользователи могут использовать клиент MQTT — MQTTX для подключения к EMQX для просмотра отчетных данных.

запускать MQTTX назадсуществовать Главная страница Нажмите + New Connection,После заполнения параметров Конфигурации,Нажмите на соединение в правом верхнем углу.

  • Имя. Назовите сообщение для удобства просмотра, например modbus-tcp;
  • Client ID:useЗначения по умолчанию достаточно, гарантировано ID независимый;
  • Адрес сервера: раскрывающийся список выбора ws://, emqx@localhost,(localhost можно заменить на ваш реальный IP адрес);
  • конецрот:8083。

Остальные параметры не являются обязательными,Заканчиватьназад Нажмите на соединение в правом верхнем углу.успехсоединятьназад订阅主题。

  • Нажмите Добавить подписку,Topic В соответствии с темой девятого шага. Например, заполните /neuron/MQTT/group-1

После успешной подписки вы увидите, что MQTTX продолжает получать данные, собранные и отправленные Neuron. Как показано ниже.

MQTTX Постоянно получаю Neuron коллекция并上报过来изданные
MQTTX Постоянно получаю Neuron коллекция并上报过来изданные

Сценарии применения промышленного Интернета вещей

Сбор данных о добыче нефти

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

Программное обеспечение шлюза промышленного протокола со стороны устройства через периферийное ПО Neuron Путем стыковки различных типов промышленного оборудования оборудование в нефтедобывающей среде может быть DTU、RTU и различные типы данных ПЛК для объединения коллекции. В то же время процесс отчетности о существовании оборудования реализует принцип сбора данных.、коллекциячастота、Частота отчетности、上报格式из统一规划,Удобен для бизнес-систем верхнего уровня.хранилищеиданные Потребление。

Сбор данных о добыче нефти
Сбор данных о добыче нефти

Комплексное решение, объединяющее Neuron с другими продуктами EMQ, такими как EMQX, eKuiper, EMQX-ECP и т. д., может принести нефтяной промышленности следующие преимущества:

  • Архитектура системы, подчеркивающая передний и задний конец.,Сократите затраты на эксплуатацию и обслуживание оборудования и систем на объекте.
  • На основе протокола Интернета вещей в качестве основного метода сбора и передачи данных достигается отчетность о производственных данных в режиме реального времени с малой задержкой, что улучшает возможности реагирования бизнеса.
  • Решите проблему унифицированной конвергенции огромного разнородного оборудования и систем в реальном времени.,Достигнуто унифицированное схождение и хранение различных видов продукции и оборудования.,Обеспечьте эффективную интеграцию активов данных.
  • Благодаря единой платформе доступа и богатым интерфейсам данных, предоставляемым платформой, системы сбора и потребления данных разделены, что делает разработку приложений более удобной и эффективной.

Расширение возможностей промышленных сетей, цифровизации и интеллекта

统一изуниверсальный магазин Промышленный Интернет вещейвеб-платформы данныхсуществоватьпромышленность 4.0 контекст становится решающим.

Neuron могу поддержать Modbus、OPC-UA、IEC61850、IEC104 и другие полные промышленные протоколы для достижения эффективного доступа к различным типам данных разнородного промышленного оборудования. Легкий механизм обработки краевого потока eKuiper существующий край конец выполняет сбор, фильтрацию, завершение, расчет временного окна и т. д. для края. AI Службы вывода предоставляют высококачественные источники данных.

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

универсальный магазин Промышленный Интернет вещейвеб-платформы данных
универсальный магазин Промышленный Интернет вещейвеб-платформы данных

Заключение

использовать Modbus Протокол обеспечивает связь и обмен данными между устройствами, а также MQTT Он обеспечивает эффективный, гибкий и безопасный механизм передачи сообщений. добавив Modbus RTU или TCP Преобразовать в MQTT информация,Легко отправьте свое устройство в облако конец,И существует дистанционный монитор монитора, когда это необходимо. Такой подход может помочь промышленным компаниям лучше управлять своим оборудованием и производственными процессами.,И повысить эффективность и качество производства.

Заявление об авторских правах: эта статья принадлежит EMQ. При перепечатке указывайте источник.

Исходная ссылка:https://www.emqx.com/zh/blog/bridging-modbus-data-to-mqtt-for-iiot

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose