MODBUS规约是MODICOM公司开发的一个为很多厂商支持的开放规约, Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
最主要的是它被很多组态软件所兼容,开发速度较快,受到了很多工控厂商的追捧。但是协议还是有点小麻烦的。
下面主要说一下Modbus协议中的03功能码,即4xxxx,因为03功能码常被用在一些Modbus通讯的仪器仪表上,很多客户的需求就是将仪表的数据与PLC或者上位机(如wincc、组态王等)通过Modbus通讯,实现数据的采集。
那么还有很多不太懂Modbus协议的用户,不知道4xxxx,怎么回事,比如功能码为03,寄存器地址是100,即40100,很多用户在上位机或者PLC中想要读取其数据,就直接定义为40100,比如您用Modbus调试软件,如Modbus Poll,起始地址应该定义为100,而不是40100
但是像西门子的PLC定义为40101,如:西门子S7-200,在程序里是这样定义的
像一些上位机软件,如winc、组态王、力控等,定义方式又不一样
Wincc如下:
组态王如下:
力控如下:
另外我们有一款TCP转ModbusRTU的转换器,能够将带有Modbus RTU方式的仪表直接与PLC或上位机wincc、组态王、力控等通过ModbusTCP方式通讯,非常方便实用。