Modbus协议广泛应用于工控和物联网领域,最常见的场景是上位机或PLC通过Modbus协议访问其他设备,上位机可以是工控机,也可以是树莓派这样的嵌入式系统,可以通过Modbus Poll这样的传统软件,也可以自己编程实现,不过这些都太重了,在评估了多款市售的嵌入式成品后,我们终于找到了理想的产品。
Modbus转MQTT的Python实现
下面是用Python实现的Modbus转MQTT的框架代码:
1 | import paho.mqtt.client as paho #MQTT Library |
以上是最基本的框架,工程中要采用完备的try catch机制来处理可能出现的各种异常。
可编程嵌入式网关
AiMaster300是采用Lua语言的可编程物联网网关。产品硬件采用:32位CPU/32M内存/3个RS232、RS485通用的串口/可选带温度补偿的时钟模块 。
AiMaster300以写语句,调函数方式编程,采用了与高级语言(C#,Delphi,VB)类似编程思路。其软件框架支持:多线程编程,串口编程, TCP/IP和UDP编程,SQL数据库接口(可执行SQL语句和存储过程),Modbus主从机功能库,mqtt协议库,JSON函数库等。同时还提供大量的专业的数据转换和处理函数。
AiMaster系列产品通过以太网编程调试,无需编程线和SDK,支持透明式多任务系统,零代码实现多个控制任务同时运行。
Lua语言为AiMaster300产品带来了远超传统PLC的灵活性,可以迅速实现想法和创意,使之前需要几周甚至几个月的开发项目,缩短至几个小时。
看上去象是Lua魔改的嵌入式系统,很强大,内置了很多函数库,不过还是太重了。
存储型Modbus转MQTT嵌入式网关
这才是理想中的产品,价格便宜,稳定够用。
-数据采集支持RS232/485接口转网口/4G,可以和卓岚云对接。
-支持Modbus RTU/DLT645设备转JSON/MQTT格式。
-数据采集支持阿里云/ONENET/百度云/腾讯云/卓岚云等各大云平台。
-耐高温-在85度高温下流畅播放视频。
-支持MQTT协议、JSON格式上传,采用MQTT为基础的协议和服务器建立连接,采用订阅发布的形式进行数据通讯,支持Modbus RTU/DLT645设备转JSON/MQTT格式 支持非标串口协议转JSON+ MQTT。
-支持将特定的Modbus寄存器内容转化为JSON格式定时主动上发,可在JSON格式中加入设备ID,方便云端识别设备。
-数据采集支持RS232/485接口转网口/4G,可以和各大云平台对接。
-支持阿里云,百度云,OneNet,华为云,腾讯云,卓岚云,私有云等各云平台。
-支持主动查询Modbus/645仪表。
-支持网关自动采集数据,定时上发数据。
-支持HTTP POST+JSON和HTTP GET JSON数据,支持上传时间、设备ID等数据格式。
-支持在JSON格式中加入设备ID,方便云端识别设备。
-支持无符号数据和有符号数据,支持小数点表示,支持4字节长度数据。所有配置都可以界面化配置完成,用户自主配置无需定制。
-自定义注册包心跳包,支持远程配置和升级维护。
零代码配置,只要熟悉MQTT和Modbus很快可以配置好,有完善的续传机制,实测稳定可靠,如果有PoE版就更好了。