西门子S7-200模块供应商西门子S7-200模块供应商西门子S7-200模块供应商
S7-200 modbus读数据
用S7-200往变频器的3000H寄存器里读取数据,正常来说addr填412289是可以的,为什么我用状态表查看&vb112里没有数据呢,并且mbus-msg的error值为4.图片是我的程序。
问题补充:
我前面的几个写数据都没有问题,就是读数据的时候读不出来。我又把addr的值从412289改为48193(即我写入数据的地址),状态表显示&vb112为0,但&vb110里有我写入的正确数据,不知道这是为什么。
图片说明: 1,图片
佳答案
1.你M2.5复位的同时置位M2.6 然后用M0.7这个完成位做你下一个轮训的开始,ADDR这块你再用412288这个地址看看。
2.你说的错误代码是4,你看看这个:
保持寄存器地址大于9999
Modbus保持地址通常在40001到49999的范围内。该范围对大多数应用程序来说足够了,但是某些数据映射到保持寄存器的Modbus从站所具有的地址超过9999。这些设备不适合常规的
Modbus寻址方案。
Modbus主设备指令支持通过可选的寻址方法对大于9999的保持寄存器进行寻址。MBUS_MSG指令允许参数"地址"具有附加范围以支持保持寄存器地址的扩充范围。
400001至465536用于保持寄存器
例如:要访问保持寄存器16768,MBUS_MSG的"地址"参数应该设置为416768。
扩充寻址允许访问Modbus协议支持的65536个可能地址的全部范围。该扩充寻址仅支持保持寄存器。
6ES7513-1AL02-0AB0 |
6GK5208-0BA00-2AB2 |
6ES7416-3FS06-0AB0 |
6AV6381-2BE07-5AV0 |
6AV6381-2BH07-5AV0 |
6SE6420-2UD25-5CA1 |
6GK5101-1BB00-2AA3 |
6GK5204-0BA10-2BA3 |
6GK5216-4BS00-2AC2 |
6ES7134-6HD01-0BA1 |
6SE7090-0XX84-0KA0 |
6SN1118-0DM31-0AA2 |
6SE6440-2UD31-5DA1 |
6EP3437-8SB00-0AY0 |
6ES7193-6BP20-0BA0 |
6AV2101-0AA05-0AA5 |
6AV6371-1DV07-5AX0 |
6ES7138-6AA01-0BA0 |
6SE6440-2UD15-5AA1 |
6SE6420-2AB12-5AA1 |
6ES7288-1CR60-0AA1 |
6ES7288-1SR40-0AA1 |
6AV2101-0AA04-0AA5 |
6AV2101-0AA03-0AA5 |
6ES7137-6AA01-0BA0 |
6ES7288-1CR40-0AA1 |
西门子触摸屏代理商西门子触摸屏代理商西门子S7-200模块供应商西门子CPU模块代理商西门子CPU模块代理商西门子CPU模块代理商西门子CPU模块代理商西门子CPU模块代理商