恭喜,你发布的帖子
发布于 2016-05-26 11:55:21
7楼
//------------------修改部分---------------------------
LAR1 P#1.0 //把P#1.0给AR1
LAR2 P#2.0 //把P#2.0给AR2
//--------------------------------------------------------
OPN DB1
L 20
M2: T MW 30 //循环20次
L DBD [AR1,P#4.0]
L DBD [AR1,P#0.0]
-R
L DBD [AR1,P#0.0]
/R
T MD 100 //将相差的值比例给MD100
L MD 100
ABS
T MD 100 // 绝对值
A(
L DBD [AR1,P#2.0] // 如果这个值不等于0
L 0.000000e+000
<>R
)
A(
L MD 100 //且 MD100小于MD200
L MD 200
) = M [AR2,P#0.0] // 则 让M 这个位 置1 //------------------修改部分--------------------------- +AR1 P#30.0 +AR2 P#0.1 //-------------------------------------------------------- L MW 30 LOOP M2 // MW30 不为0则继续循环 楼主:我稍微修改了一下,试试看。
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块里的程序。
头都大了, 第一搞这个指针循环,就卡壳了。
请填写推广理由:
分享
只看
楼主