MODBUS 地址超出9999

硬件是这样的:200PLC做modbus主站读取从站地址为1的保持寄存器。在主站子程序里40001~4****为读保持寄存器。但我现在的从站需要读取的地址定义有些特殊,他的地址在51***(modbus地址是16位的字为单位,所以最大支持地址单元为65535,51***仍在有效地址之内)。这样的话问题就出来了,200直接读取地址只能支持0001~9999,我现在想读取超出这个范围的地址。应该如何处理?
谢谢!

问题补充:
我曾实验过就是将MBUS_MSG子程序中地址直接设为451***,这时候会发现POTRO口将没有任何数据发送,而ERR也指示出4错误。事实上,关于这个问题我咨询过西门子客服,客服告诉我的就是这么做。但我实验证明是行不通的。
感谢 wb210xa  提供了3种可行方式,不过因实际情况前两种方法可能实施不了,第三种方法又没有合适的网关选型。
等待潜伏网络的大牛指教啊。
实在不行,只有用最后一招——用自由口自己编MDBUS主站程序了。下下策啊

最佳答案

超出了S7200的处理范围,三种方法:
1. 采用施耐德的PLC,如Twido或M218来实现,读取从站时没有地址范围限制,而且实现比较简单;
2. 如果从站数据区地址可以更改的话,可以改从站的数据区地址到9999之内;
3. 只能加别的网关产品来实现。

提问者对于答案的评价:
我还是自己用自由口编了个简单的收发程序。虽然你的三条可行的意见都没用上,不过依然感谢。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc308336.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月1日
下一篇 2020年11月1日

相关推荐