FUNCTION_BLOCK FB30
// Block Parameters
VAR_INPUT
IN0,IN1,IN2,IN5,IN6,IN12 :BOOL;
IN3,IN4,IN7,IN8,IN9,IN10,IN11,IN13,IN14,IN15 :INT; // Input Parameters
END_VAR
VAR_OUTPUT
OUT16,OUT18 :INT;
OUT17 :BOOL;
// Output Parameters
END_VAR
VAR
STAT19,STAT20,STAT21,STAT22,STAT23,STAT24,STAT25,STAT36,STAT38,STAT40,STAT41 :INT;
STAT26:ARRAY[1..100] OF INT;
STAT27:ARRAY[1..100] OF INT;
STAT28:ARRAY[1..100] OF REAL;
STAT29:ARRAY[1..100] OF REAL;
STAT30:ARRAY[1..100] OF INT;
STAT31,STAT32,STAT33 :TIME;
STAT34,STAT35 :DINT;
STAT37,STAT42 :BOOL;
// Static Variables
END_VAR
SET
SAVE
= L 0.1
L #IN7
T #STAT22
L #IN8
T #STAT23
L #IN9
T #STAT24
L #IN10
T #STAT25
L #IN3
L 1
T #STAT20
TAK
T LW 2
TAK
M001: L #STAT20
L LW 2
<=I
JCN M002
L #STAT20
ITD
L L#-1
+D
L L#16
*D
TAR2
+D
L #STAT22
ITD
TAK
T LD 4
TAK
L L#0
+D
L L#8
*D
LAR1
OPN DB 218
L DBW [AR1,P#0.0]
LAR1 LD 4
T DIW [AR1,P#46.0]
L #STAT22
L 2
+I
T #STAT22
L #STAT20
ITD
L L#-1
+D
L L#16
*D
TAR2
+D
L #STAT23
ITD
TAK
T LD 4
TAK
L L#0
+D
L L#8
*D
LAR1
L DBW [AR1,P#0.0]
LAR1 LD 4
T DIW [AR1,P#246.0]
L #STAT23
L 2
+I
T #STAT23
L #STAT20
ITD
L L#-1
+D
L L#32
*D
TAR2
+D
L #STAT25
ITD
TAK
T LD 4
TAK
L L#0
+D
L L#8
*D
LAR1
L DBD [AR1,P#0.0]
LAR1 LD 4
T DID [AR1,P#846.0]
L #STAT25
L 4
+I
T #STAT25
L #STAT20
L 1
+I
T #STAT20
JU M001
M002: L #IN3
L #IN4
/I
T #STAT40
L 1
T #STAT41
L #IN4
TAK
T #STAT21
TAK
T LW 2
TAK
M003: L #STAT21
L LW 2
<=I
JCN M004
L #STAT40
L 1
T #STAT20
TAK
T LW 4
TAK
M005: L #STAT20
L LW 4
<=I
JCN M006
L #STAT41
ITD
L L#-1
+D
L L#32
*D
TAR2
+D
L #STAT24
ITD
TAK
T LD 6
TAK
L L#0
+D
L L#8
*D
LAR1
OPN DB 218
L DBD [AR1,P#0.0]
LAR1 LD 6
T DID [AR1,P#446.0]
L #STAT24
L 4
+I
T #STAT24
L #STAT41
L 1
+I
T #STAT41
L #STAT20
L 1
+I
T #STAT20
JU M005
M006: L #IN9
T #STAT24
L #STAT21
L 1
+I
T #STAT21
JU M003
M004: CLR
A #IN0
JCN M007
L L#0
T #STAT35
T #STAT34
L 0
T #STAT36
L #IN15
T #STAT38
TAK
T #OUT18
L #IN3
L 1
T #STAT20
TAK
T LW 2
TAK
M008: L #STAT20
L LW 2
<=I
JCN M009
L #STAT20
ITD
L L#-1
+D
L L#16
*D
TAR2
+D
L 0
TAK
LAR1
TAK
T DIW [AR1,P#1246.0]
L #STAT20
L 1
+I
T #STAT20
JU M008
M009: JU M00a
M007: CLR
A #IN2
JCN M00b
A #IN12
JCN M00b
L #OUT18
L 1
+I
T #OUT18
M00b: CLR
A #IN1
NOT
JCN M00c
CLR
= #STAT42
JU M00a
M00c: CLR
A #STAT42
NOT
A #IN1
JCN M00d
L 0
T #STAT19
SET
= #STAT37
L #IN15
T #STAT38
= #STAT42
M00d: L #STAT19
T #OUT16
TAR2 LD 2
UC "TIME_TCK"
P#L 6.0
LAR2 LD 2
L LD 6
T #STAT31
L #STAT31
L #STAT32
-D
T #STAT34
L #STAT38
L #IN15
<I
A #IN6
= L 0.2
A #STAT37
NOT
A L 0.2
JCN M00e
L #STAT38
L #IN14
+I
T #STAT38
SET
= #STAT37
M00e: CLR
A #STAT37
NOT
A #IN6
JCN M00f
JU M00a
M00f: L #STAT34
L L#1000
/D
L #IN13
ITD
TAK
TAK
>D
JCN M010
JU M011
M010: CLR
A #IN5
NOT
JCN M012
JU M013
M012: L #STAT19
ITD
L L#-1
+D
L L#32
*D
TAR2
+D
L #STAT19
ITD
TAK
T LD 6
TAK
L L#-1
+D
L L#32
*D
TAR2
+D
LAR1 LD 6
L DID [AR1,P#846.0]
TAK
LAR1
TAK
L DID [AR1,P#446.0]
<R
JCN M014
JU M013
JU M015
M014: JU M011
M015: CLR
M013: CLR
A #IN12
JCN M016
L #STAT36
L 1
+I
T #STAT36
L #STAT19
ITD
L L#-1
+D
L L#16
*D
TAR2
+D
L #STAT19
ITD
TAK
T LD 6
TAK
L L#-1
+D
L L#16
*D
TAR2
+D
LAR1
L DIW [AR1,P#1246.0]
L 1
+I
LAR1 LD 6
T DIW [AR1,P#1246.0]
TAR2 LD 2
UC "TIME_TCK"
P#L 6.0
LAR2 LD 2
L LD 6
T #STAT33
M016: L #STAT19
ITD
L L#-1
+D
L L#16
*D
TAR2
+D
L #STAT36
TAK
LAR1
TAK
L DIW [AR1,P#46.0]
>=I
= L 0.2
A #STAT39
NOT
A L 0.2
JCN M017
L 0
T #STAT36
A #IN6
JCN M018
JU M011
M018: SET
= #STAT39
TAR2 LD 2
UC "TIME_TCK"
P#L 6.0
LAR2 LD 2
L LD 6
T #STAT32
TAR2 LD 2
UC "TIME_TCK"
P#L 6.0
LAR2 LD 2
L LD 6
T #STAT31
L #STAT31
L L#1000
/D
L #STAT19
ITD
TAK
T LD 6
TAK
L L#-1
+D
L L#16
*D
TAR2
+D
LAR1
L DIW [AR1,P#246.0]
ITD
L LD 6
+D
T #STAT35
M017: L #STAT31
T #STAT33
L #STAT33
L L#1000
/D
L #STAT35
TAK
<D
A #STAT39
JCN M019
JU M011
M019: JU M00a
M011: L #STAT19
L 1
+I
T #STAT19
L #STAT19
T #OUT16
L 0
T #STAT36
TAR2 LD 2
UC "TIME_TCK"
P#L 6.0
LAR2 LD 2
L LD 6
T #STAT32
TAR2 LD 2
UC "TIME_TCK"
P#L 6.0
LAR2 LD 2
L LD 6
T #STAT33
CLR
= #STAT39
JU M00a
M00a: L #STAT19
L #IN3
>I
JCN M01a
CLR
= #STAT37
L 0
STL.txt