{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回传寄存器值

  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值