实话实说,很多刚进工业自动化圈子的新人,头一回碰到Modbus,都会犯嘀咕。
这玩意儿都四十多岁了,比好多从业者年纪都大,怎么现在大大小小的项目,还全是它?
1979年施耐德为自家可编程逻辑控制器搞出来的通信协议,从诞生那天起就是公开免费的。
没有授权费,没有专利门槛。哪怕你是个三个人的小作坊,做个带数据采集的小设备,加个Modbus支持也不用花一分钱。
换别的私有协议试试?动不动就要按台收授权费,成本直接涨一截,客户根本不买账。
而且它够简单啊。
不管是串口版的Modbus RTU、Modbus ASCII,还是以太网版的Modbus TCP,整个帧结构简单到离谱。调试的时候抓个包,新手看五分钟就能分清楚哪个是地址、哪个是功能码、哪个是实际数据。
换那种复杂的工业以太网协议,没个把月的学习,连调试工具都摸不明白。
问:现在很多新设备都开始支持OPC UA了,Modbus协议真的还有不可替代的地方吗?
答:当然有啊!OPC UA功能全、安全性高,这谁都承认,但你给一个几十块钱的工业温度传感器加OPC UA协议栈试试?普通单片机性能根本扛不住,成本直接翻三倍,客户买设备就是图便宜稳定,加那堆用不上的功能干嘛?Modbus不一样,哪怕是最廉价的8位单片机,都能跑得起来,额外成本几乎为零。小场景小设备,Modbus就是降维打击。
问:都说Modbus协议安全性差,现在工业项目都要求网络安全,这个坑怎么填?
答:说实话啊,绝大多数Modbus本来就用在工厂内网,物理上就和外网隔离开了,哪儿来那么多安全问题?真要连外网,加个廉价的工业防火墙,或者给Modbus包套个TLS隧道,足够应对绝大多数场景了。真到了需要最高等级安全防护的项目,本来就不会用Modbus,存在即合理,不是所有场景都要上最先进的方案。
❗。
有的厂商给的地址是零基,有的是一加偏移,有的线圈地址和寄存器地址编号规则还不一样。我之前见过一个小伙子,调一下午温度不对,最后发现就是供应商给的地址多写了1,改完立马就好,你说气不气。
第二个坑,
💡。
很多人用串口转以太网模块,默认参数直接用,动不动就丢包,怎么查都查不出问题。其实Modbus RTU标准要求,同一帧里两个字节的间隔不能超过3.5个字符时间,波特率9600的时候,这个间隔也就几毫秒,很多模块默认给10ms,直接就把一帧拆成两个,能不丢包吗?
✅。
很多人觉得波特率越高越快越好,原来9600跑得好好的,非要改成115200,结果传输距离超过十几米,现场干扰一大,直接满屏乱码。Modbus本来就是为工业现场干扰环境设计的,慢不是缺点,稳定才是。
别觉得Modbus老,老协议在新场景里一样玩得转。
现在国内做工厂老设备改造,十个项目有八个都用Modbus采数据。原来的老PLC本来就带Modbus接口,不用换硬件,不用改程序,几十块钱的物联网网关就能把Modbus数据转成MQTT传到云平台,做设备状态监测、预测维护,整个改造下来几千块钱搞定。换一套全新的联网系统,几十万都打不住,甲方老板笑都来不及。
不过话说回来,现在很多工业互联网厂商,天天吹自己的新协议新架构,最后产品做出来,还得老老实实加个Modbus兼容接口。为什么?
市面上几百万台存量设备,全靠Modbus通信,你不支持,人家就不用你的产品,就这么简单。
现在的边缘计算节点,也大多把Modbus协议当成标准接入协议,边缘端直接解析,不用额外转码,响应速度不比别的协议慢,成本还低一半都不止。
工业圈和互联网圈不一样,互联网三天一个新框架五个月一个新概念,不追新就好像落伍了。工业圈呢?能用、稳定、便宜,就是最好的协议。Modbus再过四十年,估计还能在工业现场跑着,你说对不对?
免责声明:文章内容来自互联网,本站仅作为分享,不对其真实性负责,如有侵权等情况,请与本站联系删除。
转载请注明出处:工业人不得不懂的Modbus协议:老掉牙为什么还能打? https://www.dachanpin.com/a/tg/68408.html