有一个S7200CPU,做modbus从站,要求主站读取从站VD100、VD104、VD108....十个实数值,请问在从站“INIT”指令中,MaxIQ=?,MaxAI=?,MaxHold=?,HoldStart=?应该怎么设置。这十个值对应的modbus地址又是什么例如:40xxx、40xxn?
第一次做modbus通讯,请说详细点谢谢!
最佳答案
S7-200系统手册里讲的很清楚
MaxIQ设置可访问IO点数,设为0禁止访问所有IO点,设为128则可访问所有IO点
MaxAI设置可访问的模拟量输入个数,设为0禁止访问
MaxHold设置V区字保持寄存器的个数,对应modbus的4XXXX
HoldStart设置V区字保持寄存器的开始地址
这里你只需要读V区10个实数,只要设置V区保持寄存器,每个实数占4个字节,所以总数为40字节=20字,MaxHold设置为20,开始地址HoldStart设置为&VB100
对应的modbus地址就是40001~40020
MaxIQ和MaxAI不用可设置为0
如果主站读取这20个字也放在VB100开始的区域,那么这10实数对应地址和从站一样VD100、VD104、VD108......
提问者对于答案的评价:
非常感谢!
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc221384.html