发表于:2004/6/6 18:24:00
#0楼
请教各位高手:
1 看介绍说双字的指针分为两部分,位3~18是被寻址字节的字节编号,位0~2是被寻址的位编号(范围是0~7)。如果想访问一个字节、字或双字,被寻址位的编号就必须是0
L P#8.7
T MD2
A I[MD2] //即 A I8.7
L P#8.0
T MD2
L IB[MD2] //即 L IB 8
T MW[MD2] //即 T MD 8
问题是如何利用间接寻址访问到 I 8.0呢?
2 怎样用间接寻址的方法调用自己编写的功能块呢?
比如:
A I 0.0
= L 1.0
CALL "BIN FILTER"
BINPUT :=L1.0
WkTimer :=T 2
FilterTime:=S5T#10S
BFilted :=Q0.0
NOP 0
上面的程序中:I 0.0可以用 A I[MD2](假设MD2 = P#0.0)表达,但
BFilted :=Q0.0 却无法用 BFilted :=Q[MD2] 表达,
还有, WKTimer := T 2 也无法用 WKTimer := T [MW6](假设MD2 = +2)替换。
这种情况应该如何使用间接寻址编程呢?
谢谢了!
1 看介绍说双字的指针分为两部分,位3~18是被寻址字节的字节编号,位0~2是被寻址的位编号(范围是0~7)。如果想访问一个字节、字或双字,被寻址位的编号就必须是0
L P#8.7
T MD2
A I[MD2] //即 A I8.7
L P#8.0
T MD2
L IB[MD2] //即 L IB 8
T MW[MD2] //即 T MD 8
问题是如何利用间接寻址访问到 I 8.0呢?
2 怎样用间接寻址的方法调用自己编写的功能块呢?
比如:
A I 0.0
= L 1.0
CALL "BIN FILTER"
BINPUT :=L1.0
WkTimer :=T 2
FilterTime:=S5T#10S
BFilted :=Q0.0
NOP 0
上面的程序中:I 0.0可以用 A I[MD2](假设MD2 = P#0.0)表达,但
BFilted :=Q0.0 却无法用 BFilted :=Q[MD2] 表达,
还有, WKTimer := T 2 也无法用 WKTimer := T [MW6](假设MD2 = +2)替换。
这种情况应该如何使用间接寻址编程呢?
谢谢了!
Good good study, day day up!