菜鸟:
例如在STL中一段求相邻的变量的和,使用PIONTER指针,我可以求MW0开始的5个变量,也可以求DB1.DBW10开始的5个变量。因为STL中有32位的地址寄存器。但是这样的问题在SCL中怎么解决?
大虾:
那循环语句就可以了
菜鸟:
SCL也可以用变量寻址
FUNCTION FC2 : void
VAR_TEMP
i: DINT;
END_VAR
mw0 := 0;
FOR i := 0 TO 9 BY 2 DO
MW0 := INT_TO_WORD(WORD_TO_INT(DB1.DW[i]) + WORD_TO_INT(MW0));
END_FOR;
END_FUNCTION
L P##IN0
LAR1
L W [AR1,P#0.0]
T #MY_DBNUM
L D [AR1,P#2.0]
T #MY_ADDRESS
L B [AR1,P#2.0]
T LB 10
L LB 10
L B#16#84
==I
JCN M000
OPN DB [#MY_DBNUM]
M000: LAR1 #MY_ADDRESS
L 0
T #SUM
L #NUMBER
NEXT: T LW 12
L W [AR1,P#0.0]
L #SUM
+I
T #SUM
+AR1 P#2.0
L LW 12
LOOP NEXT
这是我的一段求和的FB块,使用PIONTER指针,例如:我可以求MW0开始的5个变量,也可以求DB1.DBW10开始的5个变量的和,因为STL中有32位的地址寄存器。但是这样的问题在SCL中怎么解决?
大虾:
其实我的主要意思就是用SCL怎么做,能达到上面的功能。