因为S7-200包括多种不同的数据存储地址,比如V区,I区,Q区和AI区,这些地址PLC可以区分开来,而Modbus协议是无法区分的。因此,为了让数据地址通过Modbus协议传输,S7-200自带的通信程序规定,地址+40000表示映射到V区;换句话就是说,开始数字为4的地址表示外部设备同PLC的V区之间进行数据交换。这样,PLC可以确定功能码,生成相应的通信数据帧。
虽然你事先加上了40001,但PLC还是把数据帧里面的地址减去了40001,相当于没变。
从40001-49999有9999个数据地址支持,足够大家使用了。但PLC还是可以支持400001-465536这样更大范围的地址。
Modbus是从1开始的地址编码,而PLC和其它设备是从0开始的地址编码,所以我们需要加上40001,而不是40000