物联网(IoT,或者说工业互联网)的基础在于设备之间的通信,通信协议在将海量设备连接到互联网时发挥着重要作用。本文介绍IoT中的通信/通讯协议,并对常用的协议如:MQTT, CoAp, OPC UA, Modbus, Profinet ,介绍其特点,并进行比较,说明协议的适用场景。先上一张大图。
MQTT
MQTT全称消息队列遥测传输(Message Queue Transfering Transport),是一种轻量级,可扩展的互联网协议,可用于支持物联网全局通信。MQTT专为物联网交互设计,通信对设备的资源要求低,保证了通信的高效性(支持低带宽网络)。和HTTP等协议相比,其网络开销非常小。同时,MQTT允许定义服务质量,分为最多一次发送(QoS 0),至少一次发送(QoS 1)和只有一次发送(QoS 2)三个等级,通信质量由低到高,资源占用由少至多。MQTT网络由发布者(Publisher),代理(Broker)以及订阅者(Subscriber)三者构成,如图。
客户端通过代理向服务端订阅消息主题。当服务端发布消息时,代理将该消息发送给订阅此主题的客户端。
ModBus/MBus
Modbus核心是一个串行通信协议,采用主从模式,主机向从机请求数据,是短距离连接行业设备的标准协议。标准Modbus最多支持247台从机(采用2字节寻址,可提高从机数量)。经过四十年发展,Modbus已经演变为支持多种物理链接的协议集(如RS-485)。借助RS-485,主从机之间的通信发生在指示功能码的帧中。该功能码指示要操作的功能:读取输入/队列 或执行诊断函数,从机根据功能码进行响应。Modbus协议非常简单,其开放性使其成为整个行业或SCADA系统的实际通信协议。
未完待续