1.1 Modbus的起源与发展

聊Modbus之前,我先讲个故事。

1979年,Modicon公司为了配合自家的PLC,搞了一套通信协议。说白了,就是想让PLC和别的设备能说上话。那时候工业通信还是一片蛮荒,各家有各家的玩法,互不兼容。

我刚开始接触这行时,师傅就跟我说:"Modbus是工业界的通用语言"。这么多年干下来,我越来越认同这句话。

关键时间节点:

  • 1979年 — Modicon发布Modbus协议,最初用于PLC通信
  • 1990年代 — 成为事实上的工业标准,被广泛采用
  • 2004年 — Modbus-IDA组织将其标准化,正式成为开放协议
  • 至今 — 全球数以亿计的工业设备支持Modbus

为什么它能活这么久?我个人觉得,核心原因就两个字:简单

你想想看,一个协议能从上世纪70年代活到现在,经历了PLC时代、DCS时代、工业以太网时代,甚至现在物联网时代还在用,这本身就说明问题。

我的经验: 2015年我在一个老旧工厂做改造项目,现场还有1988年出厂的Modicon PLC,用的就是Modbus RTU。新换的智能仪表,照样能跟它通信。这种兼容性,在工业界真的不多见。

1.2 Modbus协议族对比

Modbus其实不是单一协议,而是一个家族。主要有三个成员:RTU、ASCII、TCP

1.2.1 三种协议的核心区别

特性 Modbus RTU Modbus ASCII Modbus TCP
物理层 RS-232/485 RS-232/485 以太网
数据编码 二进制(8位) ASCII字符(16进制) 二进制(TCP帧)
传输效率 低(约RTU的一半)
校验方式 CRC-16 LRC TCP/IP校验
最大节点数 32(485总线) 32(485总线) 无限制
典型距离 1200米 1200米 100米(交换机级联可扩展)

1.2.2 我该怎么选?

这个问题,几乎每个项目都会遇到。我一般这么判断:

  • 选RTU的情况: 现场环境恶劣,距离远,设备多,对实时性有要求。这是工业现场最常用的方案。我做过一个污水处理项目,30多台仪表分布在厂区各个角落,全部走485总线,RTU协议,稳得很。
  • 选ASCII的情况: 说实话,现在很少用了。除非你对接的设备只支持ASCII,或者通信链路质量极差,ASCII的LRC校验虽然弱,但字符可读性强,调试方便。嗯,我十年前用过一次,之后再也没碰过。
  • 选TCP的情况: 设备在同一个局域网内,或者通过互联网通信。速度要求高,数据量大。现在新项目我基本优先考虑TCP,毕竟以太网便宜又方便。

避坑指南: 我曾经在一个项目中,把RTU和TCP混用了。现场有台设备通过485转以太网模块接入,结果发现RTU的3.5字符空闲间隔在TCP环境下根本没法保证。折腾了两天才搞定。记住:RTU的时序要求严格,TCP没有这个限制

1.3 Modbus在工业物联网中的地位

聊到工业物联网(IIoT),很多人第一反应是MQTT、OPC UA这些新协议。但我想说,Modbus依然是工业物联网的基石

为什么会这样?

我给你算笔账:

  • 全球存量工业设备中,超过60%支持Modbus
  • 新出厂的传感器、PLC、变频器、仪表,90%以上标配Modbus接口
  • 几乎所有工业网关、边缘计算设备,第一个支持的协议就是Modbus

说白了,工业物联网的第一步,就是把设备的数据读上来。而Modbus就是那个最通用的"读数据"的协议。

我的观点: Modbus在IIoT中的角色,就像普通话在中国的作用。你可以说方言(私有协议),但要想跟所有人沟通,还是得用普通话(Modbus)。

1.3.1 Modbus在IIoT架构中的位置

一个典型的工业物联网架构,Modbus通常出现在最底层:

云端平台(MQTT/HTTP)
        ↑
   边缘网关(协议转换)
        ↑
   Modbus RTU/TCP(现场总线)
        ↑
  传感器、PLC、仪表(现场设备)

你看,Modbus在最底层,负责把现场设备的数据"拽"出来。网关拿到数据后,再转换成MQTT等协议上传云端。

1.3.2 为什么Modbus不会被淘汰?

我经常被问到这个问题。我的回答是:因为工业现场不需要"花哨"

  • 可靠性: Modbus的请求-应答模式虽然简单,但极其可靠。每个请求都有明确的应答,要么成功要么失败,没有歧义。
  • 实时性: RTU模式下,一个请求-应答周期可以做到10ms以内。这在工业控制中非常重要。
  • 成本: 一片485芯片几毛钱,一个Modbus协议栈几百行C代码。你想想看,哪个老板不愿意省钱?
  • 生态: 从1979年到现在,积累的工具、库、经验、人才,是任何新协议短期内无法超越的。

我的建议: 如果你想进入工业物联网领域,第一个要学的协议就是Modbus。不管是做设备开发、系统集成还是平台开发,Modbus都是绕不开的坎。我面试工程师时,Modbus是必考题。能讲清楚Modbus的人,工业基础一般不会差。

本章小结

这一章我们聊了:

  • Modbus从1979年诞生到现在,靠"简单"活了40多年
  • RTU、ASCII、TCP三种变体,各有适用场景,RTU最常用
  • 在工业物联网时代,Modbus依然是现场设备接入的"第一公里"

下一章,我们会深入Modbus RTU的物理层,聊聊RS-485的那些事儿。嗯,那才是真正开始"干活"的地方。