前阵子去珠三角一个汽配加工厂做旧线改造,一进门总工拉着我吐槽,说新来的应届生上来就要换全套OPC UA,说Modbus老掉牙了,跟不上新技术趋势。
这不扯吗?
Modbus从1979年诞生到现在,四十多年过去了,全球超过90%的工业现场底层设备还在跑这个协议。真这么不堪,早就死透了。
Modbus协议能活四十多年的核心原因
说穿了就两个字:简单。
当年施耐德开发这个协议,本来就是给自己的PLC读写寄存器用的,天生完全开放免费,没有任何版权门槛。你买个几千块的传感器,几万元的PLC,要是协议收你大几千授权费,哪个工厂能接受?对吧?
它的帧结构总共就那么点内容,功能码掰着手指头就能数完。不管是干了二十年的老电工,还是刚入行的应届生,抓包调试学三天就能上手,根本不需要花几周啃厚厚的协议文档。

很多人吐槽它不安全,没有加密验证,容易被攻击。说实话,工业现场底层设备大多跑在内网,本身算力就低到可怜,你给它加个加密运算,直接就跑不动了,要那个花架子功能有什么用?
安全要做,也应该做在网关出口,没必要让底层小设备跟着瞎折腾。
问:现在很多新设备都支持Modbus TCP,它和老的Modbus RTU到底有啥区别?选型的时候该选哪个?
答:核心的数据读写逻辑根本没变,只是传输层不一样。Modbus RTU走RS485串口,适合老现场长距离低速率的设备,比如几十米外的温度传感器、变频器,抗干扰能力还强。Modbus TCP走以太网,速率快,能接更多设备,现在新出的触摸屏、PLC基本都默认带这个,选型就看你现场的布线和设备新旧,老RTU跑的好好的,完全没必要花钱换。
90%的人用Modbus协议都会踩的坑
干了这么多年工业调试,我见过最多的坑,就是地址定义搞错。
不同厂家对Modbus地址的基准定义完全不一样,有的是零基地址,有的是一基地址,差整整一位。你拿着施耐德的地址去读西门子的变频器,调一下午出不来数据,最后发现就是地址差了1,说多了都是泪。
其次就是通讯参数不匹配。Modbus RTU要对波特率、数据位、停止位、校验位,四个参数错一个都不通。我上次帮一个食品厂排查问题,整条线温度采集时断时续,换了PLC换了传感器,折腾了一天,最后发现是新来的工人换模块的时候,把偶校验改成了无校验。
💡 小提醒:换老设备的时候,一定要把所有通讯参数抄在本上,别光记个地址就完事。还有一个藏的很深的坑:总线阻抗不匹配。RS485总线上设备多了,或者距离长了,通讯就会时不时抽风, ping有时候通有时候不通,你找破头都找不到问题。最后大概率只需要在总线两端各加一个120欧的终端电阻,立马就好。
我刚入行的时候,为这个破问题熬了两个通宵,现在想起来还懊恼。

问:Modbus最多能挂多少台设备?我现场有三十多个传感器,会不会带不动?
答:传统RS485接口的Modbus RTU,理论上最多带32个站,刚好卡着三十多的话,加个几十块钱的中继器分个网段就搞定,根本不用换网关。要是用Modbus TCP走以太网,那就更不用担心,几百上千个设备都能挂,只要带宽够,稳的很。别听供应商瞎忽悠你买高端网关,先加个中继试试,能省好几千。
Modbus协议真的会被OPC UA淘汰吗?

这几年OPC UA吹的太凶,好多厂商都在喊替换Modbus,我反正不认同。
OPC UA功能强,信息模型丰富,安全机制完善,确实适合做上层数据对接,对接工业互联网平台、做跨厂商设备互联,它确实比Modbus好用。但是呢,底层现场设备之间的通讯,传感器、变频器、PLC之间的小数据量读写,Modbus完全够用,开发快、成本低,调试还简单。
不过话说回来,现在最新的工业实践里,也根本不是你死我活的关系。大多都是底层用Modbus连现场设备,网关转成OPC UA或者MQTT再往上接平台,两者互补,谁也代替不了谁。
❗ 说句掏心窝子的话:工业现场选协议,从来不是选最新的,是选最稳定最省钱的。上个月我做一个分布式光伏电站的项目,现场一百二十多台智能电表,全用Modbus TCP采集,运行两个多月,延迟不到10ms,没掉过一个包,整体成本比用别的协议省了快三分之一。
你一个做五金冲压的小工厂,总共就几十个IO点,非要花几十万换全套OPC UA,最后用起来和Modbus没任何区别,这不就是交智商税吗?
工业圈的规矩从来都是,能用三十年的东西,都是真刀真枪拼出来的。Modbus能活到现在,还能继续活下去,靠的不是情怀,是真的好用。