发布于 2004-04-06 17:51:50
0楼
这是个FIFO的例子,慢慢看。
FUNCTION "ATT" : VOID
TITLE =
VERSION : 0.1
VAR_INPUT
LEN_DAT : REAL ;
END_VAR
VAR_TEMP
TBL_MAX : DINT ;
TBL_CNT : DINT ;
LOOP_CNT : DINT ;
TBL_TBL : DINT ;
END_VAR
BEGIN
NETWORK
TITLE =
L "CAL_DB".MAX_LEN;
T #TBL_MAX;
L "CAL_DB".CUR_LEN;
T #TBL_CNT;
L #TBL_MAX;
>=D ;
JC K001;
OPN "CAL_DB";
LAR1 P#DBX 8.0;
L #TBL_CNT;
L L#4;
*D ;
SLD 3;
+AR1 ;
L #LEN_DAT;
T D [AR1,P#0.0];
L #TBL_CNT;
L L#1;
+D ;
T "CAL_DB".CUR_LEN;
BEU ;
K001: L #TBL_MAX;
L L#1;
-D ;
T #TBL_TBL;
L L#0;
T #LOOP_CNT;
OPN "CAL_DB";
LAR1 P#DBX 8.0;
K002: L D [AR1,P#4.0];
T D [AR1,P#0.0];
L #LOOP_CNT;
L L#1;
+D ;
T #LOOP_CNT;
L #TBL_TBL;
>=D ;
JC K003;
+AR1 P#4.0;
JU K002;
K003: L #LEN_DAT;
T D [AR1,P#4.0];
END_FUNCTION
Zane
注册自动化系统工程师
Always save before download