前提:以下程序是在模拟器中执行得到的结果,程序只写在OB1中没有其他任何程序。
用存储器间接寻址
L P#8.7 把指针值装载到累加器1
T MD2 把指针值传送到MD2
A I[MD2] 查询I8.7的信号状态(例I8.7一直为‘1’)
= Q[MD2] 给输出位Q8.7赋值
---------------------------------------
以上程序执行没有问题(在同一NW中)
但把上面的程序分开写在2个NW中,并在前一句里加上条件后,Q8.7的输出就有点不对了。程序如下:
Network 1
A M10.0 新加的条件
L P#8.7
T MD2
Network 2
A I[MD2]
= Q[MD2]
当M10.0=1时执行情况与之前的程序一致Q8.7输出值为‘1’(I8.7一直为‘1’)
但当M10.0=0时Q8.7输出值为‘0’。
我的问题是:
A、当地址赋值语句不执行时AR1不保存前一次的操作值吗?
B、OB1每次循环时都会清一次AR1中的地址值吗?
我还试过用于寄存器间接寻址的方式就是用LAR1的语句来写程序得到的执行结果同上,请高手指教谢谢