发布于 2011-08-12 12:24:21
2楼
没试过,有错误自己改
FUNCTION_BLOCK FB 7
TITLE =
VERSION : 0.1
VAR
AlarmTimerX : ARRAY [0 .. 99 ] OF STRUCT
Signal : BOOL ;
HornOut : BOOL ;
AlarmOut : BOOL ;
AlarmDelay : INT ; //0.1mS
HornDelay : INT ; //0.1ms
CurrentValueT1 : INT ;
CurrentValueT2 : INT ;
END_STRUCT ;
Index : INT ;
Control : BOOL ;
Plusbit : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE =
A T 200;
FP #Plusbit;
= #Control;
AN T 200;
L S5T#100MS;
SD T 200;
AN #Control;
BEC ;
NETWORK
TITLE =
L 100;
l1: T #Index;
L #Index;
L 10;
*I ;
L L#8;
*D ;
L P##AlarmTimerX;
+D ;
LAR1 ;
//T1
A DIX [AR1,P#0.0];
JCN _101;
L DIW [AR1,P#6.0];
L 1;
+I ;
T DIW [AR1,P#6.0];
L DIW [AR1,P#2.0];
>I ;
JCN _101;
L DIW [AR1,P#2.0];
T DIW [AR1,P#6.0];
SET ;
S DIX [AR1,P#0.2];
_101: NOP 0;
AN DIX [AR1,P#0.0];
JCN _102;
L 0;
T DIW [AR1,P#6.0];
SET ;
R DIX [AR1,P#0.2];
_102: NOP 0;
//T2
A DIX [AR1,P#0.2];
JCN _101;
L DIW [AR1,P#6.0];
L 1;
+I ;
T DIW [AR1,P#8.0];
L DIW [AR1,P#4.0];
>I ;
JCN _103;
L DIW [AR1,P#4.0];
T DIW [AR1,P#8.0];
SET ;
S DIX [AR1,P#0.1];
_103: NOP 0;
AN DIX [AR1,P#0.2];
JCN _104;
L 0;
T DIW [AR1,P#8.0];
SET ;
R DIX [AR1,P#0.1];
_104: NOP 0;
L #Index;
LOOP l1;
END_FUNCTION_BLOCK