通讯协议的带宽占用:OPC UA、Modbus、MQTT、SparkplugB

注:本文主要内容源自一篇Johnathan Hottell的ppt “Efficient IIoT Comunications”

各种通讯协议

    通讯协议是在应用层上定义报文结构和内容的约定。常见的如MODBUS、OPC UA、MQTT、CoAP等,他们的存在都有合理性,并没有绝对的好与坏。Modbus简单,OPC UA强大,MQTT灵活,要看具体的应用场景。本文重点介绍OPC UA、MODBUS、MQTT、SparkplugB在传感器数据传输的带宽占用。

流量干什么了

  • 建立连接
  • 传输数据
  • 连接保活
  • 关闭连接

建立连接

    OPC 对于窄带、受限网络未必适用。一篇文章提到,向设备写数据,通过OPC UA非业务报文要600个字节,而MQTT只需要17个字节。

单点传输

    无连接的HTTP和无连接的Modbus消耗更多流量,而MQTT和保持连接的Modbus要少得多。

保持连接

  • 保持连接不是free的
  • 需要定时发送ping包

    MQTT的保活成本较低,PING包只有2个字节。

1小时的总流量消耗

    假设保活心跳间隔5分钟。

扫描二维码关注公众号,回复: 12649417 查看本文章

5秒数据1天总流量消耗

    假设保活心跳间隔5分钟,数据每天变化2次(阀门起、停)。

    MQTT带宽大大少于其他协议,因为只在数据变化时需要发送publish包,相比Modbus Release,MQTT只占其0.5%!

9个点的情况

   

  • Modbus Modpoll 比 Modbus ACM似乎多发送一次数据
  • MQTT与 Modbus ACM带宽占用相同,多发送了3倍数据(时标,别名和值)
  • SparkplugB数据比MQTT压缩了3倍!

油气田案例

    389个标签,每分钟变化传输。其中,223个开关量变化频率慢于每小时1次,111个标签每小时变化,19个模拟量间歇变化,36个模拟量每分钟变化。59%的点位在1小时内不变!

    SparkplugB 是Modbus的9%。

总结

  • 流量节约主要来自变化时发送(report by exception)
  • SparkplugB压缩3倍
  • 与Modbus相比,采用SparkplugB可以节约75%~99.5%的网络带宽,不过这要看你的应用,多少个点,数据的重要程度等
  • 网络带宽节约多少只有在实际做的时候才知道...

扩展阅读:Sparkplug规范

猜你喜欢

转载自blog.csdn.net/xhydongda/article/details/112604659