MQTT和MODBUS协议有什么区别?

5

最近我一直在阅读关于这两种协议的文章,但还不能很好地理解为什么要使用MQTT,而不是MODBUS(或反之亦然)。

因为MODBUS用于在低带宽下的PLC之间通过串行通信传输数据,但据我所知,MQTT使用其发布/订阅方法也能实现相同的功能(我知道MQTT使用代理而MODBUS没有,但这不是重点)。

有人能够清晰地区分它们吗?


2
很抱歉,这里没有做任何基础研究的证据。Modbus和MQTT是非常不同的。 - hardillb
1
@hardillb 我已经这样做了,只是尽可能简洁地表达了问题。 - Suyash Bakshi
3个回答

5
它们非常不同,但在各自的时代都很受欢迎。
Modbus最初于1979年发布,主要设计用于控制/监测软件与现场设备进行有限规模的通信,例如工厂/建筑物。因此,它具有以下关键考虑因素:
  • 一对多拓扑结构,始终有一个主机轮询多个从机
  • 简单性优先于灵活性,仅支持请求-响应模式
  • 确定性时间优先于性能,以支持控制系统中严格的实时要求
MQTT始于1999年,大规模网络和互联网变得更加流行,从那时起需要更复杂的软件和设备之间的通信方式,如基于事件的机器对机器通信。因此,MQTT出现以满足以下需求:
  • 多对多拓扑结构,所有参与者都可以通过共同的代理相互通信。
  • 大规模,适用于大型网络,例如互联网。
  • 灵活性,所有参与者都解耦,并提供QoS以满足不同的传递协议。
简而言之,
  • 如果您是软件架构师,尽可能使用 MQTT,因为它为现代物联网世界而设计得很好。
  • 如果您正在设计智能设备,则可以考虑 Modbus,以兼容传统的PLC/SCADA系统。

额外福利: 您可以考虑将 Modbus 连接到 MQTT 世界中,例如使用 modpoll 工具。


3

普通Modbus是一种串行通信协议,常用于连接工业电子设备。

MQTT是一种消息传递协议,通常用于在TCP/IP协议之上发送电子设备测量值到另一个方。

也许这个链接可以帮助一下。 物联网网关协议比较:MQTT和Modbus


1
Modbus有许多变种。但如果我们将一个Modbus变种与MQTT进行比较,那么它应该是Modbus TCP。
*MQTT是一种比Modbus更新的协议,是为物联网(IoT)而开发的。一些旧设备不支持MQTT,只支持Modbus TCP。
*使用MQTT,您可以通过消息代理将数据发送到多个部分,但Modbus TCP只向其服务器发送数据。
*MQTT比Modbus TCP协议更安全。
*MQTT受到许多软件语言和主要云服务提供商的支持,例如Amazon AWS、Microsoft Azure、IBM Bluemix和Google Cloud。
*因此,如果您的设备和系统支持MQTT,请使用它来代替Modbus TCP。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接