浔之漫智控技术(上海)有限公司总部
主营西门子模块 , PLC模块 , 变频器模块 , 触摸屏模块
西门子S7-200模块供应商

西门子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模块代理商

展开全文