(****** QuickLD compiler *******************************)
(****** Copyright Rockwell Automation Canada, Ltd ******)
(****** ST *********************************************)

(*************** Rung **********************************)
(*Example 6.3 Tub loader control*)
__STEPPRAGMA
0,1
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB1 := RUN AND NOT(STEP_1) AND NOT(STEP_2) AND NOT(STEP_3) AND NOT(STEP_4) AND NOT(STEP_5) AND NOT(STEP_6) AND NOT(STEP_7) ;
IF __EDTB1 THEN
(*Set coil*)
STEP_1 := TRUE ;
END_IF ;

(*************** Code for the end of Rung **************)
__GL __LG0001 ;


(*************** Rung **********************************)
(*Step 1 - Count parts. Trans. to Step 2 when 100 parts have passed.*)
__STEPPRAGMA
0,3
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB2 := STEP_1 ;
(* FB call: CTU *)
Part_Ctr(__EDTB2 AND NOT(PE272), PART_CTR_RESET, 100) ;
__EDTB3 := Part_Ctr.Q ;
__EDTB4 := __EDTB2 AND PART_CTR.Q AND RUN ;
__EDTB5 := __EDTB4 ;
IF __EDTB5 THEN
(*Reset coil*)
STEP_1 := FALSE ;
END_IF ;
__EDTB6 := __EDTB4 ;
IF __EDTB6 THEN
(*Set coil*)
STEP_2 := TRUE ;
END_IF ;
PART_CTR_RESET := NOT(STEP_1) ;

(*************** Code for the end of Rung **************)
__GL __LG0002 ;


(*************** Rung **********************************)
(*Step 2 - Open gate 1. Trans. to Step 3 when open*)
__STEPPRAGMA
0,10
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB7 := STEP_2 AND GATE1_OPLS AND RUN ;
__EDTB8 := __EDTB7 ;
IF __EDTB8 THEN
(*Reset coil*)
STEP_2 := FALSE ;
END_IF ;
__EDTB9 := __EDTB7 ;
IF __EDTB9 THEN
(*Set coil*)
STEP_3 := TRUE ;
END_IF ;

(*************** Code for the end of Rung **************)
__GL __LG0003 ;


(*************** Rung **********************************)
(*Step_3 - Hold gate 1 open for 3 secs after tub passes. Trans. to step 4 when done.*)
__STEPPRAGMA
0,13
__ENDSTEPPRAGMA
(*Label :*)(**)
(* FB call: RTO *)
G1_Hold_Tmr(STEP_3 AND NOT(TUB_PROX) AND RUN, G1_HOLD_TMR_RST, T#3S) ;
__EDTB10 := G1_Hold_Tmr.Q ;
__EDTB11 := __EDTB10 ;
IF __EDTB11 THEN
(*Reset coil*)
STEP_3 := FALSE ;
END_IF ;
__EDTB12 := __EDTB10 ;
IF __EDTB12 THEN
(*Set coil*)
STEP_4 := TRUE ;
END_IF ;
G1_HOLD_TMR_RST := NOT(STEP_3) ;

(*************** Code for the end of Rung **************)
__GL __LG0004 ;


(*************** Rung **********************************)
(*Step 4 - Close gate 1. Trans. to step 5 when closed*)
__STEPPRAGMA
0,18
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB13 := STEP_4 AND GATE1_CLLS AND RUN ;
__EDTB14 := __EDTB13 ;
IF __EDTB14 THEN
(*Reset coil*)
STEP_4 := FALSE ;
END_IF ;
__EDTB15 := __EDTB13 ;
IF __EDTB15 THEN
(*Set coil*)
STEP_5 := TRUE ;
END_IF ;

(*************** Code for the end of Rung **************)
__GL __LG0005 ;


(*************** Rung **********************************)
(*Step 5 - Open gate 2. Trans. to Step 6 when open*)
__STEPPRAGMA
0,21
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB16 := STEP_5 AND GATE2_OPLS AND RUN ;
__EDTB17 := __EDTB16 ;
IF __EDTB17 THEN
(*Reset coil*)
STEP_5 := FALSE ;
END_IF ;
__EDTB18 := __EDTB16 ;
IF __EDTB18 THEN
(*Set coil*)
STEP_6 := TRUE ;
END_IF ;

(*************** Code for the end of Rung **************)
__GL __LG0006 ;


(*************** Rung **********************************)
(*Step 6 - Hold gate 2 open for 5secs after tub in. Trans. to Step 7 when delay done.*)
__STEPPRAGMA
0,24
__ENDSTEPPRAGMA
(*Label :*)(**)
(* FB call: RTO *)
G2_Hold_Tmr(STEP_6 AND TUB_PROX AND RUN, G2_HOLD_TMR_RST, T#5S) ;
__EDTB19 := G2_Hold_Tmr.Q ;
__EDTB20 := __EDTB19 ;
IF __EDTB20 THEN
(*Reset coil*)
STEP_6 := FALSE ;
END_IF ;
__EDTB21 := __EDTB19 ;
IF __EDTB21 THEN
(*Set coil*)
STEP_7 := TRUE ;
END_IF ;
G2_HOLD_TMR_RST := NOT(STEP_6) ;

(*************** Code for the end of Rung **************)
__GL __LG0007 ;


(*************** Rung **********************************)
(*Step 7 - Close gate 2. Trans. to Step 1 when closed*)
__STEPPRAGMA
0,29
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB22 := STEP_7 AND GATE2_CLLS AND RUN ;
__EDTB23 := __EDTB22 ;
IF __EDTB23 THEN
(*Reset coil*)
STEP_7 := FALSE ;
END_IF ;
__EDTB24 := __EDTB22 ;
IF __EDTB24 THEN
(*Set coil*)
STEP_1 := TRUE ;
END_IF ;

(*************** Code for the end of Rung **************)
__GL __LG0008 ;


(*************** Rung **********************************)
(*Reset steps*)
__STEPPRAGMA
0,32
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB25 := RESET AND NOT(RUN) ;
__EDTB26 := __EDTB25 ;
IF __EDTB26 THEN
(*Reset coil*)
STEP_1 := FALSE ;
END_IF ;
__EDTB27 := __EDTB25 ;
IF __EDTB27 THEN
(*Reset coil*)
STEP_2 := FALSE ;
END_IF ;
__EDTB28 := __EDTB25 ;
IF __EDTB28 THEN
(*Reset coil*)
STEP_3 := FALSE ;
END_IF ;
__EDTB29 := __EDTB25 ;
IF __EDTB29 THEN
(*Reset coil*)
STEP_4 := FALSE ;
END_IF ;
__EDTB30 := __EDTB25 ;
IF __EDTB30 THEN
(*Reset coil*)
STEP_5 := FALSE ;
END_IF ;
__EDTB31 := __EDTB25 ;
IF __EDTB31 THEN
(*Reset coil*)
STEP_6 := FALSE ;
END_IF ;
__EDTB32 := __EDTB25 ;
IF __EDTB32 THEN
(*Reset coil*)
STEP_7 := FALSE ;
END_IF ;

(*************** Code for the end of Rung **************)
__GL __LG0009 ;


(*************** Rung **********************************)
(*Beltl conveyor control*)
__STEPPRAGMA
0,40
__ENDSTEPPRAGMA
(*Label :*)(**)
BELT_RUN := STEP_1 AND RUN ;

(*************** Code for the end of Rung **************)
__GL __LG000A ;


(*************** Rung **********************************)
(*Roll conveyor control*)
__STEPPRAGMA
0,42
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB33 := STEP_3 ;
__EDTB34 := STEP_6 ;
TROLL_RUN := (__EDTB33 OR __EDTB34) AND RUN ;

(*************** Code for the end of Rung **************)
__GL __LG000B ;


(*************** Rung **********************************)
(*Gate 1 cylinder control*)
__STEPPRAGMA
0,45
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB35 := STEP_2 ;
__EDTB36 := STEP_3 ;
GATE1_RET := (__EDTB35 OR __EDTB36) AND RUN ;

(*************** Code for the end of Rung **************)
__GL __LG000C ;


(*************** Rung **********************************)
(*Gate 2 cylinder control*)
__STEPPRAGMA
0,48
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB37 := STEP_5 ;
__EDTB38 := STEP_6 ;
GATE2_RET := (__EDTB37 OR __EDTB38) AND RUN ;

(*************** Code for the end of Rung **************)
__GL __LG000D ;


(*************** Rung **********************************)
(*Tub permissive control*)
__STEPPRAGMA
0,51
__ENDSTEPPRAGMA
(*Label :*)(**)
TUB_PERMISSIVE := STEP_1 AND RUN ;

(*************** Code for the end of Rung **************)
__GL __LG000E ;


(*************** Code for the end of File **************)
__GL __LG0000 ;



(*************** Local Symbols table *******************)
(* __EDTB1 *)
(* __EDTB2 *)
(* __EDTB3 *)
(* __EDTB4 *)
(* __EDTB5 *)
(* __EDTB6 *)
(* __EDTB7 *)
(* __EDTB8 *)
(* __EDTB9 *)
(* __EDTB10 *)
(* __EDTB11 *)
(* __EDTB12 *)
(* __EDTB13 *)
(* __EDTB14 *)
(* __EDTB15 *)
(* __EDTB16 *)
(* __EDTB17 *)
(* __EDTB18 *)
(* __EDTB19 *)
(* __EDTB20 *)
(* __EDTB21 *)
(* __EDTB22 *)
(* __EDTB23 *)
(* __EDTB24 *)
(* __EDTB25 *)
(* __EDTB26 *)
(* __EDTB27 *)
(* __EDTB28 *)
(* __EDTB29 *)
(* __EDTB30 *)
(* __EDTB31 *)
(* __EDTB32 *)
(* __EDTB33 *)
(* __EDTB34 *)
(* __EDTB35 *)
(* __EDTB36 *)
(* __EDTB37 *)
(* __EDTB38 *)

