我用施耐德的m200plc(主站)与s7-200(从站)用modbus通信,读取从站s7-200 vw1000开始的8个字 放在 施耐德m200plc mw200开始8个字里面,两个plc 程序 地址 波特率 奇偶校验等都正确,但s7-200报故障 错误代码是9 用modscan32检测从站也连接不上,只有把vw1000换成vw0开始时,两台plc才能正常通信,也就是把首地址换成&vb0 为什么会这样呢 还有不知道什么原因用modscan32测试从站
s7 200时 总不成功!
问题补充:
1L说的不对吧 首地址从哪都可以不一定非要从vb0开始
钻石用户推荐最佳答案
错误代码9的解释为:请求中有非法存储区地址。将你程序中的HoldStart设置为&VB1000,将MaxHold的参数设置大于等于8.还有你主站读取西门子从站的地址是不是读错了,VW1000对应的MODBUS的地址为40501,不是41001.
参数MaxHold设置可以使用的V存储器字保持寄存器的个数,相应于Modbus地址4xxxx。例如,要允
许主站访问2000字节的V存储器,则设置MaxHold为1000字(保持寄存器)。
参数HoldStart是V存储器的保持寄存器的起始地址。通常设为VB0,所以参数HoldStart设为&VB0
(VB0的地址)。也可以将其它的V存储器地址指定为保持寄存器的起始地址,以便使VB0可以在项
目中用作其它目的。Modbus主站可以访问起始地址为HoldStart,字数为MaxHold的V存储器。
提问者对于答案的评价:
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc370414.html