寻址求助

Network 1 
LD     I1.0
EU
INCD   AC1
Network 2 
LD     I0.0
MOVD   &VB0, AC1
MOVB   *AC1, MB3
请问当I1.0给一个脉冲后MB3里地址怎么不会变化啊,我以为是VB1里的值啊,但试验后不对,应该怎么改啊,我想MB3依次取调用VB0—-VB200里的值该怎么做最好呢?
刚开始学习plc,望大侠们多多指教!

问题补充:
首先谢谢各位大侠的指点,我是想依次调用vb0至vb300中的数据,但不知道用什么方法好,就想到了这样寻址,I1.0给一个脉冲MB3中的地址依次加一,但没做出来,试验了各位的方法都没达到要求,我摸索了大半天了也没什么头绪,也在努力啃说明书头都大了,希望各位指点啊!

最佳答案

如楼上所说,次序问题。
第二段程序运行,就把vb0的地址给到AC1了,覆盖了原来的值。
所以AC1始终装的是VB0的地址。

应该是先装载指针,再自加1进行偏移,再读就可以了。
就如楼上程序那样。

给个简单的例子
LD         SM0.0
MOVD   &VB0, AC1
+D         AC0, AC1
MOVB   *AC1, MB3

给AC0任意赋值,就可以通过MB3读取VB0之后任意偏移量的地址了
如AC0为3,则MB3就是vb3里的数值

再加一段网络,ac0自加1,也可以实现你的功能

提问者对于答案的评价:
非常感谢各位!

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

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

相关推荐