PLC 通讯 MODBUS 协议入门:从应用到编程,看完就能上手!

都说搞PLC通讯头大,实则就是Modbus那几个最常见的坑没搞清楚。

这东西根本没那么玄乎,就是一套工业设备之间对话的“普通话”。

PLC 通讯 MODBUS 协议入门:从应用到编程,看完就能上手!

所谓主站从站,就是领导和员工。

PLC当领导(主站),发号施令;变频器、仪表当员工(从站),听指令干活、汇报数据。

接线用RS485双绞线,A对A,B对B,这谁都会。

但许多人死活连不上,就是忘了在通讯网络的最开始和最末端,给A、B线之间并上一个120欧的终端电阻。

PLC 通讯 MODBUS 协议入门:从应用到编程,看完就能上手!

距离一长或者设备一多,没这个电阻,信号反射回来就乱套了,数据全是错码,能让你调试到怀疑人生。

数据格式无脑选RTU,二进制传输,又快又稳。

那个ASCII码是把数据转成文本再传,纯属脱裤子放屁,速度慢一倍,除非老掉牙的设备指定要用,否则别碰。

最坑、最劝退新手的,就是寄存器地址。

PLC 通讯 MODBUS 协议入门:从应用到编程,看完就能上手!

设备手册上写着地址是40001,你照着往PLC程序里填,保准没反应。

记住,这个“4”开头只是个区域代号,代表“保持寄存器”,不是真地址!

实际发指令的时候,地址要填“0”。

同理,手册写40002,你程序里就填“1”。

3开头的输入寄存器也是一个道理。

PLC 通讯 MODBUS 协议入门:从应用到编程,看完就能上手!

多少人在这儿卡了几天都找不到北。

功能码也别只会用03(读)和06(写)。

想一次性改好几个连续的参数,列如同时设定频率、加减速时间,直接用16(0x10,写多个寄存器)啊,一条指令搞定,效率高多了。

老是用06一个一个写,不嫌麻烦吗?

PLC 通讯 MODBUS 协议入门:从应用到编程,看完就能上手!

同理,读多个用03,读单个也用03。

还有个不大不小但很烦人的问题,数据高低字节顺序。

列如你读一个温度值1000,十六进制是0x03E8。

结果PLC读回来是0xE803,变成一个超大的数。

PLC 通讯 MODBUS 协议入门:从应用到编程,看完就能上手!

别慌,这就是设备发出的数据和你PLC接收的字节顺序反了,叫大小端问题。

许多PLC的通讯指令里都有个选项让你交换一下高低字节,勾上就行。

目前更流行走网线了,叫Modbus TCP。

就是把上面那套规矩原封不动地搬到以太网上,用IP地址取代从站地址来找设备,速度更快,接线也更简单,道理完全一样。

所以说,Modbus就是个纸老虎。

把终端电阻、地址减一、字节顺序这三个坎迈过去,剩下的就是对着设备手册做填空题。

© 版权声明

相关文章

暂无评论

none
暂无评论...