困惑了好久,终于搞明白了,直接上结果:
- modbus本身是从0开始,这可以从指令数据中直接看出来
- PLC分区的地址从1开始,这是PLC的习惯,但是对应的modbus指令的地址要-1
简单说就是,PLC4个区的表达方式对应的地址是基于1的地址,转换成modbus指令里面的地址要-1,这从一些测试工具生成的指令也可以看出来。很多设备给出的协议里面用的是PLC地址,因此生成指令的时候要-1,正是如此造成了很多人的困惑。
PLC的四个区对应的modbus指令不是唯一的,modbus指令分单和多,输入分离散量输入和输入寄存器(我不清楚严格的区别,某些PLC上输入寄存器就是按照八位、十六位来整体读输入)。
这是不是业内常识啊?
(这里是结束)