工业物联网ModbusProtocol和MQTTProtocol的优点

freeFree Technical Resource

This content is free to read, suitable for basic learning and search traffic.

工业物联网ModbusProtocol和MQTTProtocol的优点缩略图
🌐 This page is not yet available in English. Showing the Chinese version. Back to Chinese page.

Modbus是一个串行CommunicationProtocol,首次出现于1979年,是connect行业设备实际使用的标准Protocol。MQTT早在20年前便已出现,但是将这两个Protocol结合在一起使用,能够为深度嵌入式设备提供物联网的规模和connect性。

下图展示了这些Protocol之间的一般关系:

物联网网关作为物联网Communication的支持解决方案,现在让我们来看一下Modbus和MQTT,以了解其区别以及如何在物联网中互相补充。
  工业物联网ModbusProtocol和MQTTProtocol的优点插图

Modbus

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

借助RS485,主从机之间的Communication发生在指示function code的帧中。该function code可识别要Operation的Function,如读取独立输入;读取先进先出队列;或执行诊断函数。然后,从机根据收到的function code进行Response,该Response较为简单,由一组byte指示。因此,从机可以是智能设备,也可以是只有一个Sensors的简单设备。

从该描述中,您可以看到ModbusProtocol非常简单,但是其作为Protocol的开放性使其成为整个行业或SCADAsystem的实际CommunicationProtocol。

消息队列遥测传输

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

消息队列遥测传输网络中的作用因素
  工业物联网ModbusProtocol和MQTTProtocol的优点插图1

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

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

connect-建立与MQTT经纪人之间的connect。

断开connect-断开与MQTT经纪人之间的connect。

发布-在MQTT经纪人上发布主题。

订阅-从MQTT经纪人上订阅主题。

退订-从MQTT经纪人上退订主题。

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

消息队列遥测传输代理之间的简单交互
  工业物联网ModbusProtocol和MQTTProtocol的优点插图2

请注意此处Share的主题结构。它与文件system层次结构相似,这可简化主题的结构。这种资源层次形式也常见于Protocol架构中,如REST。

MQTT甚至允许使用通配符的形式,以简化订阅流程。如果用户想要获取所有警报的状态,则可直接订阅/home/alarms/+/status,该主题可通知用户所有的警报状态变化。整个子树还可使用主题/home/#进行订阅,该主题可以订阅/home下的所有事件。

服务质量

MQTT允许定义服务质量(QoS)。MQTT中有三个等级的QoS:

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

2、QoS1。该等级表示“至少一次”交付。用户可能不止一次获得消息,但是允许收到的人Confirm已经收到。

3、QoS2。最慢但是最有保障的服务质量等级即为等级2。QoS2表示“只有一次”,并包含四个阶段的交付握手。该等级最慢,但是最安全。

您选择的QoS等级将取决于data及其交付的重要性。

Technology术语(共 5 个)—— 点击展开
RS485工业常用的差分串行Communication标准,支持多点Communication
function codeModbusfunction code指定读/写OperationType,如01读线圈、03读保持register
SCADAData Acquisition与监视控制system,用于远程监控工业过程
网关Protocol转换设备,如 Modbus RTU ↔ Modbus TCP
Sensors将物理量转换为电信号的检测装置
来源/Tools信息 —— 点击展开
来源 Modbus Chinese Network(modbus.cn) —— China leadingModbuscommunication protocol technical community Category ModbusRelated文章 字数 1614 字 · 阅读约 5 分钟 更新 2024-05-07 永久链接 https://www.modbus.cn/6518.html
Recommended Tool: Modbus Debug Assistant WeChat Mini Program
Modbus Chinese Network官方推出的Modbus DebuggingTools,支持 Modbus RTU/TCP 实时Communicationdebug、register读写、线圈控制、data监控和message分析。 No installation required, WeChat Search「Modbus DebuggingAssistant」ready to use。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
Related Tags
Put this resource to use in a real project?

Go to the Tool Center for message parsing, CRC verification and device debugging, or submit your requirements for selection and integration advice.

Engineer Membership

Turn this article into actionable debugging resources

After activation, you can use advanced message parsing, resource pack downloads, code examples, engineering cases and priority technical support, suitable for real project delivery.

Unlimited Advanced Tools
Resource & Code Packs
Complete Engineering Case Library
Priority Technical Support

Leave a Reply

Your email address will not be published. Required fields are marked *.