我在用S7200 226PLC做从站,请问modbus从站指令中,MBUS_INIT块里“holdst~”是表示主站可访问PLC的起始地址的意思吗?“maxhold”是表示从“holdst~”开始主站可访问PLC的字区间吗?比如我写PLC程序用了VB0~VB6000,那我把“holdst~”写成&VB0,把“maxhold”写成3000,另把“库存储区”初始设地址设成VB7000,我以上这些理解和设置有错误吗?请帮忙指出,谢谢!!!
问题补充:
LaoHuai - 中级工程师 第10级的答案请问:
我PLC写程序的时候已经用掉了VB0~VB6000,那么从“ holdst~”开始,“maxhold”长度的区间是不是也要错开VB0到VB6000,不能和他们重叠?谢谢!
最佳答案
由子程序参数HoldStart和MaxHold指定的保持寄存器区,是在S7-200 CPU的V数据存储区中分配,此数据区不能和库指令数据区有任何重叠,否则在运行时会产生错误,不能正常通信。注意modbus 中的保持寄存器区按“字”寻址,即MaxHold规定的是VW而不是VB的个数。
1.请见《西门子 S7-200·LOGO!·SITOP 参考》V0.92版(更新版)(2008.02.15) 。其中S7200PLC——>通信——>modbus通信一章有详述。下载:
http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=A0136
2.<modbus RTU协议在S7-200中的应用>连接:
http://www.qjy168.com/forum/discuss.php?s_id=169755&page=1
提问者对于答案的评价:
3Q
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc352037.html