如何用单片机mqtt协议通过MODBUS协议与HMI通信

   物联网 (IoT) 不只是新技术 还是与旧技术的集成,其关键在于通信 可用的通信方法各不相同,但是各种不同的协议在将海量“事物”连接到互联网时发挥着重要的作用。 夲文介绍了两种物联网补充协议: 用于短距离设备连接的本地协议 Modbus 以及支持物联网进行全局通信的可扩展互联网协议“消息队列遥测传输 (MQTT)”
   Modbus 是一个串行通信协议,首次出现于 1979 年是连接行业设备实际使用的标准协议。 MQTT 早在 20 年前便已出现但是将这两个协议结合在一起使用,能够为深度嵌入式设备提供物联网的规模和连接性 图 1 展示了这些协议之间的一般关系,同时介绍了连接的支持解决方案:物联网网关

   图 1. 物联网 (IoT) 网关作为物联网通信的支持解决方案 我们来看一下 Modbus 和 MQTT,以了解其区别以及如何在物联网中互相补充

   自 1979 年首次出现至今,Modbus 已经演变为一套全面的支持多种物理链接的协议集(如 RS-485) Modbus 的核心是一个串行通信协议,采用主从模式 主机向从机发送请求,从机予以回复 在标准 Modbus 网络中,有一台主机以及最多 247 台从机(但是如果采用 2 字节寻址,则可显著提高这一界限)

   借助 RS-485,主从机之间的通信发生在指礻功能码的帧中 该功能码可识别要操作的功能,如读取独立输入;读取先进先出队列;或执行诊断函数 然后,从机根据收到的功能码進行响应该响应较为简单,由一组字节指示 因此,从机可以是智能设备也可以是只有一个传感器的简单设备。

   从该描述中您可以看到 Modbus 协议非常简单,但是其作为协议的开放性使其成为整个行业或 SCADA 系统的实际通信协议

   MQTT 是一个开放的轻量级机器对机器协议,专为物联網交互设计 MQTT 网络包含一个 MQTT 经纪人 (broker),负责协调 MQTT 代理之间的交互 代理是发布器,负责发布供用户使用的信息(参见图 2)

   MQTT 的要求非常少因為它专为资源有限的嵌入式设备设计。 除了占地空间少之外MQTT 还可提供出色的通信高效性(即使通过低带宽网络进行通信)和非常少的开銷(较之 HTTP 等协议)。 在 3G 网络中MQTT 的吞吐量速度是使用 HTTP 的表述性状态转移 (REST) 的 93 倍。

   MQTT 可使用最少的方法指示要在特定主题上实施的操作进而实施发布/订阅模式。 代理先连接到经纪人然后再发布或订阅主题。 完成后代理将从经纪人上断开连接。 MQTT 方法定义:

   图 3 展示了发布者与订閱者使用 MQTT 经纪人进行的简单交互 如图所示,信息创建者 (producer) 连接至 MQTT 经纪人 同样,信息消费者 (consumer) 连接至 MQTT 经纪人 消费者订阅主题(此处定义为 /home/alarms/1/status)。 本示例主题可识别主页上针对区域 1 的警报系统的状态变化 当创建者有信息要分享时,它会向经纪人发布一条消息然后经纪人将会將信息分享给所有订阅该主题的用户。

   图 3. 消息队列遥测传输代理之间的简单交互

   请注意此处分享的主题结构.它与文件系统层次结构相似這可简化主题的结构.这种资源层次形式也常见于协议架构中,如REST 
   MQTT 甚至允许使用通配符的形式,以简化订阅流程 如果用户想要获取所有警报的状态,则可直接订阅 /home/alarms/+/status该主题可通知用户所有的警报状态变化。 整个子树还可使用主题 /home/# 进行订阅该主题可以订阅 /home 下的所有事件。

   ?  QoS 0 该等级表示“最多一次”交付(最佳状况)。 消息不会得到确认因而,这是一种一劳永与的方法

   ?  QoS 1。 该等级表示“至少一次”交付 用户可能不止一次获得消息,但是允许收到的人确认已经收到

   ?  QoS 2 最慢但是最有保障的服务质量等级即为等级 2。 QoS 2 表示“只有一次”並包含四个阶段的交付握手。 该等级最慢但是最安全。
   您选择的 QoS 等级将取决于数据及其交付的重要性

   随着越来越多的物联网采用 MQTT 作为支持协议,您将会发现许多开源应用和产品中出现了 MQTT物通博联的物联网网关解决方案则是其中一款采用 MQTT 的全面物联网解决方案,支持将各种工控协议转换为MQTT实现云平台直接调用现场设备的数据。

我要回帖

更多关于 单片机mqtt协议 的文章

 

随机推荐