恭喜,你发布的帖子
发布于 2016-05-26 12:22:37
8楼
n侠 终于把你盼来了, 你修改的部分 ,我之前也是这么用的, 因为 M [AR2,P#0.0] 只有M2.0置1,我就把 程序更改为 用MD数据再转给AR1和AR2, 但效果也是一样的。 我在VAT 里监控,只有M2.0 置1, 之后就像只停留在第一次循环上, 只有M2.0 能置1, 如果改为
LAR1 P#5.0 //把P#1.0给AR1
LAR2 P#2.1 //把P#2.0给AR2 则M2.1就置1了,M2.2和之后M2.3等还是为0, 说明条件是成立的,如果循环的话,原程序M2.0和M2.1都应该置1的。因为都满足条件。
为了测试循环是否正常, 我又增加了一个计算,每循环一次 让一个MD400 增加10,在程序开头增加一个MD400 赋值 0, 在循环程序的下一段程序增加一个MD400的转移,监控能看到,循环之后MD400一直显示是200,改变循环次数20变为10,则MD400则为100, 所以证明循环是没问题的,之后的结果是循环20次之后的结果, 但为什么 M [AR2,P#0.0] 这个循环 只有开始M2.0才置1, 想不通了。是不是必须用DB才行
这是FC块里的程序。
头都大了, 第一搞这个指针循环,就卡壳了。
= M [AR2,P#0.0] //这条语句符合语法,是赋值操作(把当前的RLO赋给当前的M位);并不是置位操作。无论是赋值还是置位,对DB区和M区都是一样的。再检查一下,程序其它地方是不是还有对MD2、MD6写操作。
如果是置位,可以写成这样:
S M [AR2,P#0.0]
请填写推广理由:
分享
只看
楼主