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

(*************** Rung **********************************)
(*Example 6.5 Engine Inverter Station control - with parallel branching 
Start/stop/pause. Start prevented if reset in progress.*)
__STEPPRAGMA
0,1
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB1 := START_PB AND NOT(INT_RESET) ;
__EDTB2 := RUN ;
RUN := (__EDTB1 OR __EDTB2) AND STOP_PB ;

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


(*************** Rung **********************************)
(*Transition out of initial step*)
__STEPPRAGMA
0,4
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB3 := 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) AND NOT(STEP_8) AND NOT(STEP_9) AND NOT(STEP_10) AND NOT(STEP_11) AND NOT(STEP_12) AND NOT(STEP_13) AND NOT(STEP_14) AND NOT(STEP_15) ;
IF __EDTB3 THEN
(*Set coil*)
STEP_1 := TRUE ;
END_IF ;

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


(*************** Rung **********************************)
(*Step 1 - Wait for pallet. Trans. to step 2 when pallet present*)
__STEPPRAGMA
0,6
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB4 := STEP_1 AND PROX1 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 ;

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


(*************** Rung **********************************)
(*Step 2 - Move to hook 2. Trans. to steps 3 & 4 when engaging 1 hook open 2 sec*)
__STEPPRAGMA
0,9
__ENDSTEPPRAGMA
(*Label :*)(**)
(* FB call: TON *)
Eng1_Tmr(STEP_2, T#2S) ;
__EDTB7 := Eng1_Tmr.Q ;
__EDTB8 := __EDTB7 ;
IF __EDTB8 THEN
(*Reset coil*)
STEP_2 := FALSE ;
END_IF ;
__EDTB9 := __EDTB7 ;
IF __EDTB9 THEN
(*Set coil*)
STEP_3 := TRUE ;
END_IF ;
__EDTB10 := __EDTB7 ;
IF __EDTB10 THEN
(*Set coil*)
STEP_4 := TRUE ;
END_IF ;

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


(*************** Rung **********************************)
(*When pallet raised & lowered, transition to step 5.*)
__STEPPRAGMA
0,13
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB11 := STEP_3 AND PALL_UPLS AND STEP_4 AND ROTR_DNLS AND RUN ;
__EDTB12 := __EDTB11 ;
IF __EDTB12 THEN
(*Reset coil*)
STEP_3 := FALSE ;
END_IF ;
__EDTB13 := __EDTB11 ;
IF __EDTB13 THEN
(*Reset coil*)
STEP_4 := FALSE ;
END_IF ;
__EDTB14 := __EDTB11 ;
IF __EDTB14 THEN
(*Set coil*)
STEP_5 := TRUE ;
END_IF ;

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


(*************** Rung **********************************)
(*Step 5 - Clamp engine. Trans. to Step 6 when timer done and not paused*)
__STEPPRAGMA
0,17
__ENDSTEPPRAGMA
(*Label :*)(**)
(* FB call: TON *)
Clmp_Tmr(STEP_5, T#1S500MS) ;
__EDTB15 := Clmp_Tmr.Q AND RUN ;
__EDTB16 := __EDTB15 ;
IF __EDTB16 THEN
(*Reset coil*)
STEP_5 := FALSE ;
END_IF ;
__EDTB17 := __EDTB15 ;
IF __EDTB17 THEN
(*Set coil*)
STEP_6 := TRUE ;
END_IF ;

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


(*************** Rung **********************************)
(*Step 6 - Raise rotator. Trans. to Step 7 when up.*)
__STEPPRAGMA
0,20
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB18 := STEP_6 AND ROTR_UPLS AND RUN ;
__EDTB19 := __EDTB18 ;
IF __EDTB19 THEN
(*Reset coil*)
STEP_6 := FALSE ;
END_IF ;
__EDTB20 := __EDTB18 ;
IF __EDTB20 THEN
(*Set coil*)
STEP_7 := TRUE ;
END_IF ;

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


(*************** Rung **********************************)
(*Step 7 - Rotate clockwise. Trans. to Step 8 when clockwise.*)
__STEPPRAGMA
0,23
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB21 := STEP_7 AND ROTR_CWLS AND RUN ;
__EDTB22 := __EDTB21 ;
IF __EDTB22 THEN
(*Reset coil*)
STEP_7 := FALSE ;
END_IF ;
__EDTB23 := __EDTB21 ;
IF __EDTB23 THEN
(*Set coil*)
STEP_8 := TRUE ;
END_IF ;

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


(*************** Rung **********************************)
(*Step 8 - Lower rotator. Trans. to Step 9 when down.*)
__STEPPRAGMA
0,26
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB24 := STEP_8 AND ROTR_DNLS AND RUN ;
__EDTB25 := __EDTB24 ;
IF __EDTB25 THEN
(*Reset coil*)
STEP_8 := FALSE ;
END_IF ;
__EDTB26 := __EDTB24 ;
IF __EDTB26 THEN
(*Set coil*)
STEP_9 := TRUE ;
END_IF ;

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


(*************** Rung **********************************)
(*Step 9 - Unclamp timer. Trans. to Steps 10 & 13 after 1 sec.*)
__STEPPRAGMA
0,29
__ENDSTEPPRAGMA
(*Label :*)(**)
(* FB call: TON *)
Unclmp_Tmr(STEP_9, T#1S) ;
__EDTB27 := Unclmp_Tmr.Q AND RUN ;
__EDTB28 := __EDTB27 ;
IF __EDTB28 THEN
(*Reset coil*)
STEP_9 := FALSE ;
END_IF ;
__EDTB29 := __EDTB27 ;
IF __EDTB29 THEN
(*Set coil*)
STEP_10 := TRUE ;
END_IF ;
__EDTB30 := __EDTB27 ;
IF __EDTB30 THEN
(*Set coil*)
STEP_13 := TRUE ;
END_IF ;

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


(*************** Rung **********************************)
(*Step 10 - Raise rotator. Trans. to Step 11 when up.*)
__STEPPRAGMA
0,33
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB31 := STEP_10 AND ROTR_UPLS AND RUN ;
__EDTB32 := __EDTB31 ;
IF __EDTB32 THEN
(*Reset coil*)
STEP_10 := FALSE ;
END_IF ;
__EDTB33 := __EDTB31 ;
IF __EDTB33 THEN
(*Set coil*)
STEP_11 := TRUE ;
END_IF ;

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


(*************** Rung **********************************)
(*Step 11 - Rotate CCW. Trans. to Step 12 (wait) when CCW.*)
__STEPPRAGMA
0,36
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB34 := STEP_11 AND ROTR_CCWLS AND RUN ;
__EDTB35 := __EDTB34 ;
IF __EDTB35 THEN
(*Reset coil*)
STEP_11 := FALSE ;
END_IF ;
__EDTB36 := __EDTB34 ;
IF __EDTB36 THEN
(*Set coil*)
STEP_12 := TRUE ;
END_IF ;

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


(*************** Rung **********************************)
(*Step 13 - Drop engine. Trans. to Step 14 when not up.*)
__STEPPRAGMA
0,39
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB37 := STEP_13 AND NOT(PALL_UPLS) AND RUN ;
__EDTB38 := __EDTB37 ;
IF __EDTB38 THEN
(*Reset coil*)
STEP_13 := FALSE ;
END_IF ;
__EDTB39 := __EDTB37 ;
IF __EDTB39 THEN
(*Set coil*)
STEP_14 := TRUE ;
END_IF ;

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


(*************** Rung **********************************)
(*Step 14 - Move out pallet. Trans. to Step 15 (wait) when time done.*)
__STEPPRAGMA
0,42
__ENDSTEPPRAGMA
(*Label :*)(**)
(* FB call: TON *)
Eng2_Tmr(STEP_14, T#3S) ;
__EDTB40 := Eng2_Tmr.Q ;
__EDTB41 := __EDTB40 ;
IF __EDTB41 THEN
(*Reset coil*)
STEP_14 := FALSE ;
END_IF ;
__EDTB42 := __EDTB40 ;
IF __EDTB42 THEN
(*Set coil*)
STEP_15 := TRUE ;
END_IF ;

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


(*************** Rung **********************************)
(*Transition to Step 1 when in step 12 and 15*)
__STEPPRAGMA
0,45
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB43 := STEP_12 AND STEP_15 AND RUN ;
__EDTB44 := __EDTB43 ;
IF __EDTB44 THEN
(*Reset coil*)
STEP_12 := FALSE ;
END_IF ;
__EDTB45 := __EDTB43 ;
IF __EDTB45 THEN
(*Reset coil*)
STEP_15 := FALSE ;
END_IF ;
__EDTB46 := __EDTB43 ;
IF __EDTB46 THEN
(*Set coil*)
STEP_1 := TRUE ;
END_IF ;

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


(*************** Rung **********************************)
(*Start/stop for reset operation. Reset pb starts it, reset step 4 stops it.*)
__STEPPRAGMA
0,49
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB47 := RESET_PB AND NOT(RUN) ;
__EDTB48 := INT_RESET ;
INT_RESET := (__EDTB47 OR __EDTB48) AND NOT(RSTEP_4) ;

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


(*************** Rung **********************************)
(*First press of reset pb starts reset*)
__STEPPRAGMA
0,52
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB49 := INT_RESET AND NOT(RSTEP_1) AND NOT(RSTEP_2) AND NOT(RSTEP_3) AND NOT(RSTEP_4) ;
IF __EDTB49 THEN
(*Set coil*)
RSTEP_1 := TRUE ;
END_IF ;

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


(*************** Rung **********************************)
(*Reset Step 1 - Delay to unclamp. Trans. to Reset Step 2 when done.*)
__STEPPRAGMA
0,54
__ENDSTEPPRAGMA
(*Label :*)(**)
(* FB call: TON *)
RUnClmp_Tmr(RSTEP_1, T#1S) ;
__EDTB50 := RUnClmp_Tmr.Q ;
__EDTB51 := __EDTB50 ;
IF __EDTB51 THEN
(*Reset coil*)
RSTEP_1 := FALSE ;
END_IF ;
__EDTB52 := __EDTB50 ;
IF __EDTB52 THEN
(*Set coil*)
RSTEP_2 := TRUE ;
END_IF ;

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


(*************** Rung **********************************)
(*Reset Step 2 - Raise mechanism. Trans. to Reset Step 3 when up.*)
__STEPPRAGMA
0,57
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB53 := RSTEP_2 AND ROTR_UPLS ;
__EDTB54 := __EDTB53 ;
IF __EDTB54 THEN
(*Reset coil*)
RSTEP_2 := FALSE ;
END_IF ;
__EDTB55 := __EDTB53 ;
IF __EDTB55 THEN
(*Set coil*)
RSTEP_3 := TRUE ;
END_IF ;

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


(*************** Rung **********************************)
(*Reset Step 3 - Rotate CCW. Trans. to Reset Step 3 when CCW.*)
__STEPPRAGMA
0,60
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB56 := RSTEP_3 AND ROTR_CCWLS ;
__EDTB57 := __EDTB56 ;
IF __EDTB57 THEN
(*Reset coil*)
RSTEP_3 := FALSE ;
END_IF ;
__EDTB58 := __EDTB56 ;
IF __EDTB58 THEN
(*Set coil*)
RSTEP_4 := TRUE ;
END_IF ;

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


(*************** Rung **********************************)
(*Transition out of Reset Step 4 when internal reset unlatched.*)
__STEPPRAGMA
0,63
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB59 := RSTEP_4 AND NOT(INT_RESET) ;
IF __EDTB59 THEN
(*Reset coil*)
RSTEP_4 := FALSE ;
END_IF ;

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


(*************** Rung **********************************)
(*Reset steps*)
__STEPPRAGMA
0,65
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB60 := INT_RESET ;
__EDTB61 := __EDTB60 ;
IF __EDTB61 THEN
(*Reset coil*)
STEP_1 := FALSE ;
END_IF ;
__EDTB62 := __EDTB60 ;
IF __EDTB62 THEN
(*Reset coil*)
STEP_2 := FALSE ;
END_IF ;
__EDTB63 := __EDTB60 ;
IF __EDTB63 THEN
(*Reset coil*)
STEP_3 := FALSE ;
END_IF ;
__EDTB64 := __EDTB60 ;
IF __EDTB64 THEN
(*Reset coil*)
STEP_4 := FALSE ;
END_IF ;
__EDTB65 := __EDTB60 ;
IF __EDTB65 THEN
(*Reset coil*)
STEP_5 := FALSE ;
END_IF ;
__EDTB66 := __EDTB60 ;
IF __EDTB66 THEN
(*Reset coil*)
STEP_6 := FALSE ;
END_IF ;
__EDTB67 := __EDTB60 ;
IF __EDTB67 THEN
(*Reset coil*)
STEP_7 := FALSE ;
END_IF ;
__EDTB68 := __EDTB60 ;
IF __EDTB68 THEN
(*Reset coil*)
STEP_8 := FALSE ;
END_IF ;
__EDTB69 := __EDTB60 ;
IF __EDTB69 THEN
(*Reset coil*)
STEP_9 := FALSE ;
END_IF ;
__EDTB70 := __EDTB60 ;
IF __EDTB70 THEN
(*Reset coil*)
STEP_10 := FALSE ;
END_IF ;
__EDTB71 := __EDTB60 ;
IF __EDTB71 THEN
(*Reset coil*)
STEP_11 := FALSE ;
END_IF ;
__EDTB72 := __EDTB60 ;
IF __EDTB72 THEN
(*Reset coil*)
STEP_12 := FALSE ;
END_IF ;
__EDTB73 := __EDTB60 ;
IF __EDTB73 THEN
(*Reset coil*)
STEP_13 := FALSE ;
END_IF ;
__EDTB74 := __EDTB60 ;
IF __EDTB74 THEN
(*Reset coil*)
STEP_14 := FALSE ;
END_IF ;
__EDTB75 := __EDTB60 ;
IF __EDTB75 THEN
(*Reset coil*)
STEP_15 := FALSE ;
END_IF ;

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


(*************** Rung **********************************)
(*Engaging hooks control*)
__STEPPRAGMA
0,81
__ENDSTEPPRAGMA
(*Label :*)(**)
ENG1_RET := STEP_2 ;

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


(*************** Rung **********************************)
(**)
__STEPPRAGMA
0,83
__ENDSTEPPRAGMA
(*Label :*)(**)
ENG2_RET := STEP_14 ;

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


(*************** Rung **********************************)
(*Rotating mechanism up/dpwn control*)
__STEPPRAGMA
0,85
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB76 := STEP_6 ;
__EDTB77 := STEP_10 ;
__EDTB78 := (__EDTB76 OR __EDTB77) AND RUN ;
__EDTB79 := RSTEP_2 ;
ROTR_UP := (__EDTB78 OR __EDTB79) ;

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


(*************** Rung **********************************)
(**)
__STEPPRAGMA
0,89
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB80 := STEP_4 ;
__EDTB81 := STEP_8 ;
ROTR_DOWN := (__EDTB80 OR __EDTB81) AND RUN ;

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


(*************** Rung **********************************)
(*Rotation control*)
__STEPPRAGMA
0,92
__ENDSTEPPRAGMA
(*Label :*)(**)
ROTAT_CW := STEP_7 AND RUN ;

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


(*************** Rung **********************************)
(**)
__STEPPRAGMA
0,94
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB82 := STEP_11 AND RUN ;
__EDTB83 := RSTEP_3 ;
ROTAT_CCW := (__EDTB82 OR __EDTB83) ;

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


(*************** Rung **********************************)
(*Gripper control*)
__STEPPRAGMA
0,97
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB84 := STEP_5 ;
__EDTB85 := STEP_6 ;
__EDTB86 := STEP_7 ;
__EDTB87 := STEP_8 ;
__EDTB88 := (__EDTB86 OR __EDTB87) ;
__EDTB89 := (__EDTB85 OR __EDTB88) ;
GRIP_CLOS := (__EDTB84 OR __EDTB89) ;

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


(*************** Rung **********************************)
(*Pallet up control*)
__STEPPRAGMA
0,102
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB90 := STEP_3 ;
__EDTB91 := STEP_4 ;
__EDTB92 := (__EDTB90 OR __EDTB91) ;
__EDTB93 := STEP_5 ;
__EDTB94 := (__EDTB92 OR __EDTB93) ;
__EDTB95 := STEP_6 ;
__EDTB96 := STEP_7 ;
__EDTB97 := STEP_8 ;
__EDTB98 := STEP_9 ;
__EDTB99 := STEP_10 ;
__EDTB100 := (__EDTB98 OR __EDTB99) ;
__EDTB101 := STEP_11 ;
__EDTB102 := (__EDTB100 OR __EDTB101) ;
__EDTB103 := (__EDTB97 OR __EDTB102) ;
__EDTB104 := (__EDTB96 OR __EDTB103) ;
__EDTB105 := (__EDTB95 OR __EDTB104) ;
PALL_UPCTL := (__EDTB94 OR __EDTB105) ;

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


(*************** 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 *)
(* __EDTB39 *)
(* __EDTB40 *)
(* __EDTB41 *)
(* __EDTB42 *)
(* __EDTB43 *)
(* __EDTB44 *)
(* __EDTB45 *)
(* __EDTB46 *)
(* __EDTB47 *)
(* __EDTB48 *)
(* __EDTB49 *)
(* __EDTB50 *)
(* __EDTB51 *)
(* __EDTB52 *)
(* __EDTB53 *)
(* __EDTB54 *)
(* __EDTB55 *)
(* __EDTB56 *)
(* __EDTB57 *)
(* __EDTB58 *)
(* __EDTB59 *)
(* __EDTB60 *)
(* __EDTB61 *)
(* __EDTB62 *)
(* __EDTB63 *)
(* __EDTB64 *)
(* __EDTB65 *)
(* __EDTB66 *)
(* __EDTB67 *)
(* __EDTB68 *)
(* __EDTB69 *)
(* __EDTB70 *)
(* __EDTB71 *)
(* __EDTB72 *)
(* __EDTB73 *)
(* __EDTB74 *)
(* __EDTB75 *)
(* __EDTB76 *)
(* __EDTB77 *)
(* __EDTB78 *)
(* __EDTB79 *)
(* __EDTB80 *)
(* __EDTB81 *)
(* __EDTB82 *)
(* __EDTB83 *)
(* __EDTB84 *)
(* __EDTB85 *)
(* __EDTB86 *)
(* __EDTB87 *)
(* __EDTB88 *)
(* __EDTB89 *)
(* __EDTB90 *)
(* __EDTB91 *)
(* __EDTB92 *)
(* __EDTB93 *)
(* __EDTB94 *)
(* __EDTB95 *)
(* __EDTB96 *)
(* __EDTB97 *)
(* __EDTB98 *)
(* __EDTB99 *)
(* __EDTB100 *)
(* __EDTB101 *)
(* __EDTB102 *)
(* __EDTB103 *)
(* __EDTB104 *)
(* __EDTB105 *)

