基于MQTT协议实现点对点和一点对多点通信


 
一、概述

    MQTT是一个由IBM主导开发的物联网传输协议,它是通过发布/订阅的方式实现报文的传输,特别适合远程连接现场串口设备的应用场景。

    物联网通信应用中,一种场景是需要实现设备和设备之间的通信,例如PLC和一个现场仪表的通信。

DTU点对点通信

    另一种应用场景是一个中心设备(PLC或者触摸屏),基于modbus rtu协议读取多个现场仪表

DTU一点对多点通信
 
二、MQTT通信的建立

    在Comway 4G DTU加载MQTT动态程序,设置连接MQTT服务器通信参数,配置发布和订阅主题,即可实现基于MQTT协议的通信

  • 设置Comway MQTT服务器地址和端口:mqtt.comway.com.cn:2883(永久免费服务)
  • 设置MQTT通信的用户名和密码:联系公司技术支持申请
  • 设置MQTT的Client ID:缺省为空,即DTU自动生成随机client ID(避免冲突)
  • 设置MQTT的工作模式: MQTT透传模式
 
三、实现点对点和一点对多点通信:

    DTU点对点或者一点对多点通信,是通过发布和订阅的方式实现数据通信。

    DTU之间点对点通信,DTU(A)的订阅和发布主题,设置如下图:。

    在主题中,添加编号的目的是避免在一个comway账号中,存在多个相同的主题 。

     DTU(B)的的订阅和发布主题正好和DTU(A)相反,设置如下图 。

    基于modbus rtu协议,在一个中心主设备连接多个从设备的应用场景中,连接modbus主设备的Dtu(主)可以设置发布和订阅主题,详见相关文档