一根双绞线上的帝国
Modbus诞生于1979年,施耐德电气搞出来的。那时候连以太网都不普及,RS-232/485就是命根子。Modbus RTU,基于串行链路,一主多从,轮询机制。帧格式贼简单:地址码、功能码、数据、CRC校验。就这么几个字节,搞定读写寄存器、线圈。
Modbus TCP:旧酒装新瓶?
后来Modbus TCP出来了,包装成以太网帧,走502端口。本质上就是把RTU的帧去掉校验,加个MBAP报文头。简单粗暴,但有效。因为以太网底层有CRC,所以省了。 这下好了,可靠性高多了,不用跟485较劲。但是——问题来了:它更不安全了。 以前RS-485是隔离的局部总线,物理攻击难。现在TCP能走企业网,甚至有些人直接映射到公网……我的天,这等于把设备控制权拱手送人。Modbus没有任何认证、加密、授权。谁都可以发个功能码,把线圈给置位了。后果不堪设想。
物联网浪潮下的挣扎
现在搞工业物联网,动不动就MQTT、OPC UA、PROFINET。Modbus就显得……像个原始人。OPC UA有安全模型,有建模能力,能支持复杂数据结构。MQTT轻量级,适合云端。Modbus呢?只能读寄存器和线圈,连数据类型都不描述。你得对着设备的手册,知道40001是温度还是压力,单位是什么。恶心透了。 但是!Modbus就是不灭。 为什么?因为存量设备海量。一个工厂,几千个Modbus设备,全部替换?老板会疯。所以网关厂商赚翻了:Modbus转MQTT、Modbus转OPC UA、Modbus转HTTP……各种盒子。 而且,很多传感器的成本压得极低,加个以太网口?贵啊。RS-485收发器几毛钱,单片机跑个Modbus RTU库,几乎不要成本。这就是现实。 ❓ 问:Modbus是不是真的不安全,能不能直接上公网? 答:千万千万别直接上公网!我再说一遍:绝对不要! 用VPN,用安全网关,加防火墙,做网络隔离。至少要用Modbus TCP的网关设备,前面加个代理,做访问控制。有人觉得在专网上就没事,但内部也可能有恶意。Modbus简直就是工业安全的瑞士奶酪,全是洞。💀
老当益壮?还是该退休了?
Modbus就像工业协议里的C语言——古老,但强大,依然无处不在。学自动化的人,Modbus是必修课。但是,我们不能指望它去承担未来的重任。它只适合在封闭、简单的局部网络里,老老实实做它的数据搬运工。 对于那些非要把它推到广域网,或者试图在Modbus上搞复杂应用的人,我只能说:省省吧,给它配个好搭档(网关),别折腾它了。 说实话,每次看到新的设备手册上写着“支持Modbus协议”,我还是会心一笑。老朋友了,虽然毛病一堆,但熟悉。它还能活很多年,至少在设备层,我打赌再战二十年没问题。 不过,作为工程师,我们得清醒:技术是为解决问题而生,不是为情怀。 如果有一天Modbus真的被更优的协议全面替代,我也毫不惋惜。但那天到来之前,咱们还得和这个老家伙好好相处,不是吗? 就这样吧,啰嗦了一堆。下一个项目,我估计还得跟Modbus打交道。认命了。免责声明:文章内容来自互联网,本站仅作为分享,不对其真实性负责,如有侵权等情况,请与本站联系删除。
转载请注明出处:Modbus协议:老而弥坚,还是死而不僵?——一位老工程师的吐槽与反思 https://www.dachanpin.com/a/tg/58222.html