登录
首页 PLC论坛 信捷XINJE
回帖 发帖
正文

主题:信捷XC3 plc如何读写仪表的MODBUS地址?

点击:15946 回复:17

信捷PLC XC3系列,在用2号端口的modbus的REGR读写仪表的寄存器的数值时,总是报错
3#站,仪表的寄存器地址是H0,即16进制的0,读这个寄存器的值,数值放在信捷的D100里
REGW K3 H0 K1 D100 K2
这样读数能读出来但是总是报错,读其它的地址也是这样,但是寄存器就没事,读寄存器时报错后,程序就不往下执行了(下面的语句都不执行)
报错是说D8138为2,即地址错误(越界)
附件 2323.jpg
最后修改:2016/10/7 2:35:35
16-10-07 01:22
单独就写一条读的指令看看,看程序读写是同时进行的可能有冲突。如果单独一条读的指令可以,那么要读与写的话就用顺序功能块来做好了。
16-10-07 07:42
这个值得学习一下。
16-10-07 07:53
刚刚试了这样读,也是不行,还是会提示2号错误。不知道是不是REGR指令用的哪里有问题?
附件 2323.jpg
16-10-07 09:40
用INRR试试
16-10-07 10:14
看看关注下
最后修改:2016/10/7 11:41:04
16-10-07 11:14
Nrr也不行,直接报通讯超时
刚又试了,应该是一条modbus指令,要单独写一条,不能和其它的串在一起,
比如M8013触发REGR,另起一行8012触发RERW,这样就可以
如果另起一行,同样又用M8013再触发REGR,这第二个REGR还是执行不了。
西门子的我都是用SM0.5触发串在一起的指令,执行起来很快。
16-10-07 11:39

引用 YXBK 在 2016/10/7 7:42:53 发言【内容省略】

试了一天,怎么都不行,一个上升沿只能执行一条
后来看到你说的功能块,看了说明书,试了试,发现真方便,一下问题就解决了,太感谢了
16-10-07 19:26
记得我咨询过信捷那边的人,说xc系列读多个寄存器时要用功能块,要不然会不正常
16-10-07 22:09

引用 liangmaoxian 在 2016/10/7 22:09:24 发言【内容省略】

只要是读寄存器就要用顺序功能块吗,自由通迅也要这样用?
反正今天一天把我折磨死了,我反复试反复试,可就是不行,直到乢过头来用楼上的建议用顺序功能块,才终于实现功能
这一点,说明书里也没有写。
16-10-07 22:27

上一页下一页

工控新闻

更多新闻资讯