{PLC, IOT}应用:使用ESP32搭建MODBUS转MQTT网关

一、应用背景

         工业互联网是{PLC,IOT}>ESP32 项目产品的重要应用领域,在这个领域中存在很多以MODBUS协议通信的机器设备,将这些设备连接到中心服务器,实现监控或者系统级的自动化生产,是工业互联网应用普遍会遇到的需求。

         MODBUS的有线通信方式,以及不同设备的波特率不完全一致或者可设置,地址编码不一定可调等问题,导致了用MODBUS总线实现系统级(设备种类多、设备数量多)的联网基本不可行,这个问题催生了一类产品——“MODBUS网关”,将MODBUS的RS485接口协议转成以太网接口,实现通过IP/TCP网络协议对设备的读写操作。在具体的应用中,MODBUS网关解决了网络访问设备的问题,结合到项目应用还有很多的开发工作要做,因此,本文将基于 {PLC,IOT}>ESP32提供一套可以直接套用到应用项目的设计框架,帮助使用者快速实现项目要求。

二、MODBUS转MQTT网关设计框架

        基于{PLC,IOT}>ESP32实现MODBUS转MQTT网关,实现的功能是:通过MQTT向应用网关发送操作指令,应用网关按照MODBUS协议操作目标设备,并通过MQTT反馈操作结果。这个设计框架的好处是:把modbus的操作设计成交互式命令,由服务端的程序灵活操作,方便适配不同的应用要求。

2.1 设计框架构成

        MODBUS转MQTT网关设计框架包含:

         1、远程升级支持组件(详细设计文件参考{PLC,IOT}>ESP32 项目实践——远程升级)

              应用升级配置 + 平台固件升级配置 + WIFI_MQTT + MSG_RX

        1、MODBUS主机配置

        2、从机MODBUS寄存器地址和PLC变量的映射关系

        3、MODBUS操作必需的参数

        4、MODBUS操作的执行模块  MBUS_MSG

        5、MQTT消息接收模块 MSG_RX 和发送模块MSG_TX

2.2 设计详解

        用全局的配置变量,实现MODBUS的主机配置,从机MODBUS寄存器地址和PLC变量的映射关系。

{PLC,IOT}>ESP32的MODBUS将另安排文章详细讲解。

        WIFI接入和MQTT连接服务器在 远程升级支持组件(详细设计文件参考{PLC,IOT}>ESP32 项目实践——远程升级)中完成。

      如上图,WIFI_MQTT完成WIFI接入和MQTT连接服务器。

       增加MOD2MQTT程序块完成mqtt指令接收、modbus操作以及寄存器值回传的功能。

在MOD2MQTT程序块的局部变量中,添加MODBUS操作必需的参数、modubs寄存器变量、MODBUS操作的执行模块  MBUS_MSG、MQTT消息接收模块 MSG_RX 和发送模块MSG_TX。

mqtt指令接收

modbus操作

mqtt回传寄存器值

作者:ESP32:{PLC+IOT}

物联沃分享整理
物联沃-IOTWORD物联网 » {PLC, IOT}应用:使用ESP32搭建MODBUS转MQTT网关

发表回复