发布于 2011-12-01 17:49:22
57楼
正好借西门子大侠的例子说下pointer的应用,可以省去一个输入变量.
VAR_INPUT
NoOfDWords : INT ;
D_Pointer : POINTER ;
END_VAR
VAR_OUTPUT
NotZero : BOOL ;
END_VAR
VAR_TEMP
Count : INT ;
DB_NO : INT ;
Addr : DINT ;
END_VAR
BEGIN
NETWORK
TITLE =
CLR ;
= #NotZero;
L P##D_Pointer;
LAR1 ;
L W [AR1,P#0.0];
T #DB_NO;
OPN DB [#DB_NO];
L D [AR1,P#2.0];
LAR1 ;
L #NoOfDWords;
Next: T #Count;
L DBD [AR1,P#0.0];
L L#0;
<>D ;
S #NotZero;
BEC ;
+AR1 P#4.0;
L #Count;
LOOP Next;
END_FUNCTION
还可以使用ANY型输入变量,那样的话连输入字个数都省了。
业精于勤,行成于思