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

(*************** Rung **********************************)
(*Example 6.4 Engine Inverter Station control 
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) ;
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 step 3 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 ;

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


(*************** Rung **********************************)
(*Step_3 - Raise pallet. Trans. to step 4 when up*)
__STEPPRAGMA
0,12
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB10 := STEP_3 AND PALL_UPLS AND RUN ;
__EDTB11 := __EDTB10 ;
IF __EDTB11 THEN
(*Reset coil*)
STEP_3 := FALSE ;
END_IF ;
__EDTB12 := __EDTB10 ;
IF __EDTB12 THEN
(*Set coil*)
STEP_4 := TRUE ;
END_IF ;

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


(*************** Rung **********************************)
(*Step 4 - Lower rotator. Trans. to step 5 when up*)
__STEPPRAGMA
0,15
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB13 := STEP_4 AND ROTR_DNLS 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 __LG0006 ;


(*************** Rung **********************************)
(*Step 5 - Clamp engine. Trans. to Step 6 when timer done and not paused*)
__STEPPRAGMA
0,18
__ENDSTEPPRAGMA
(*Label :*)(**)
(* FB call: TON *)
Clmp_Tmr(STEP_5, T#1S500MS) ;
__EDTB16 := Clmp_Tmr.Q 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 __LG0007 ;


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

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


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

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


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

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


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

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


(*************** 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 __LG000C ;


(*************** Rung **********************************)
(*Step 11 - Rotate CCW. Trans. to Step 12 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 __LG000D ;


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

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


(*************** Rung **********************************)
(*Step 13 - Move out pallet. Trans. to Step 1 when time done.*)
__STEPPRAGMA
0,42
__ENDSTEPPRAGMA
(*Label :*)(**)
(* FB call: TON *)
Eng2_Tmr(STEP_13, T#3S) ;
__EDTB40 := Eng2_Tmr.Q ;
__EDTB41 := __EDTB40 ;
IF __EDTB41 THEN
(*Reset coil*)
STEP_13 := FALSE ;
END_IF ;
__EDTB42 := __EDTB40 ;
IF __EDTB42 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,45
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB43 := RESET_PB AND NOT(RUN) ;
__EDTB44 := INT_RESET ;
INT_RESET := (__EDTB43 OR __EDTB44) AND NOT(RSTEP_4) ;

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


(*************** Rung **********************************)
(*First press of reset pb starts reset*)
__STEPPRAGMA
0,48
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB45 := INT_RESET AND NOT(RSTEP_1) AND NOT(RSTEP_2) AND NOT(RSTEP_3) AND NOT(RSTEP_4) ;
IF __EDTB45 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,50
__ENDSTEPPRAGMA
(*Label :*)(**)
(* FB call: TON *)
RUnClmp_Tmr(RSTEP_1, T#1S) ;
__EDTB46 := RUnClmp_Tmr.Q ;
__EDTB47 := __EDTB46 ;
IF __EDTB47 THEN
(*Reset coil*)
RSTEP_1 := FALSE ;
END_IF ;
__EDTB48 := __EDTB46 ;
IF __EDTB48 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,53
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB49 := RSTEP_2 AND ROTR_UPLS ;
__EDTB50 := __EDTB49 ;
IF __EDTB50 THEN
(*Reset coil*)
RSTEP_2 := FALSE ;
END_IF ;
__EDTB51 := __EDTB49 ;
IF __EDTB51 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,56
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB52 := RSTEP_3 AND ROTR_CCWLS ;
__EDTB53 := __EDTB52 ;
IF __EDTB53 THEN
(*Reset coil*)
RSTEP_3 := FALSE ;
END_IF ;
__EDTB54 := __EDTB52 ;
IF __EDTB54 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,59
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB55 := RSTEP_4 AND NOT(INT_RESET) ;
IF __EDTB55 THEN
(*Reset coil*)
RSTEP_4 := FALSE ;
END_IF ;

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


(*************** Rung **********************************)
(*Reset steps*)
__STEPPRAGMA
0,61
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB56 := INT_RESET ;
__EDTB57 := __EDTB56 ;
IF __EDTB57 THEN
(*Reset coil*)
STEP_1 := FALSE ;
END_IF ;
__EDTB58 := __EDTB56 ;
IF __EDTB58 THEN
(*Reset coil*)
STEP_2 := FALSE ;
END_IF ;
__EDTB59 := __EDTB56 ;
IF __EDTB59 THEN
(*Reset coil*)
STEP_3 := FALSE ;
END_IF ;
__EDTB60 := __EDTB56 ;
IF __EDTB60 THEN
(*Reset coil*)
STEP_4 := FALSE ;
END_IF ;
__EDTB61 := __EDTB56 ;
IF __EDTB61 THEN
(*Reset coil*)
STEP_5 := FALSE ;
END_IF ;
__EDTB62 := __EDTB56 ;
IF __EDTB62 THEN
(*Reset coil*)
STEP_6 := FALSE ;
END_IF ;
__EDTB63 := __EDTB56 ;
IF __EDTB63 THEN
(*Reset coil*)
STEP_7 := FALSE ;
END_IF ;
__EDTB64 := __EDTB56 ;
IF __EDTB64 THEN
(*Reset coil*)
STEP_8 := FALSE ;
END_IF ;
__EDTB65 := __EDTB56 ;
IF __EDTB65 THEN
(*Reset coil*)
STEP_9 := FALSE ;
END_IF ;
__EDTB66 := __EDTB56 ;
IF __EDTB66 THEN
(*Reset coil*)
STEP_10 := FALSE ;
END_IF ;
__EDTB67 := __EDTB56 ;
IF __EDTB67 THEN
(*Reset coil*)
STEP_11 := FALSE ;
END_IF ;
__EDTB68 := __EDTB56 ;
IF __EDTB68 THEN
(*Reset coil*)
STEP_12 := FALSE ;
END_IF ;
__EDTB69 := __EDTB56 ;
IF __EDTB69 THEN
(*Reset coil*)
STEP_13 := FALSE ;
END_IF ;

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


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

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


(*************** Rung **********************************)
(**)
__STEPPRAGMA
0,77
__ENDSTEPPRAGMA
(*Label :*)(**)
ENG2_RET := STEP_13 ;

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


(*************** Rung **********************************)
(*Rotating mechanism up/dpwn control*)
__STEPPRAGMA
0,79
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB70 := STEP_6 ;
__EDTB71 := STEP_10 ;
__EDTB72 := (__EDTB70 OR __EDTB71) AND RUN ;
__EDTB73 := RSTEP_2 ;
ROTR_UP := (__EDTB72 OR __EDTB73) ;

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


(*************** Rung **********************************)
(**)
__STEPPRAGMA
0,83
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB74 := STEP_4 ;
__EDTB75 := STEP_8 ;
ROTR_DOWN := (__EDTB74 OR __EDTB75) AND RUN ;

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


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

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


(*************** Rung **********************************)
(**)
__STEPPRAGMA
0,88
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB76 := STEP_11 AND RUN ;
__EDTB77 := RSTEP_3 ;
ROTAT_CCW := (__EDTB76 OR __EDTB77) ;

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


(*************** Rung **********************************)
(*Gripper control*)
__STEPPRAGMA
0,91
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB78 := STEP_5 ;
__EDTB79 := STEP_6 ;
__EDTB80 := STEP_7 ;
__EDTB81 := STEP_8 ;
__EDTB82 := (__EDTB80 OR __EDTB81) ;
__EDTB83 := (__EDTB79 OR __EDTB82) ;
GRIP_CLOS := (__EDTB78 OR __EDTB83) ;

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


(*************** Rung **********************************)
(*Pallet up control*)
__STEPPRAGMA
0,96
__ENDSTEPPRAGMA
(*Label :*)(**)
__EDTB84 := STEP_3 ;
__EDTB85 := STEP_4 ;
__EDTB86 := (__EDTB84 OR __EDTB85) ;
__EDTB87 := STEP_5 ;
__EDTB88 := (__EDTB86 OR __EDTB87) ;
__EDTB89 := STEP_6 ;
__EDTB90 := STEP_7 ;
__EDTB91 := STEP_8 ;
__EDTB92 := STEP_9 ;
__EDTB93 := STEP_10 ;
__EDTB94 := (__EDTB92 OR __EDTB93) ;
__EDTB95 := STEP_11 ;
__EDTB96 := (__EDTB94 OR __EDTB95) ;
__EDTB97 := (__EDTB91 OR __EDTB96) ;
__EDTB98 := (__EDTB90 OR __EDTB97) ;
__EDTB99 := (__EDTB89 OR __EDTB98) ;
PALL_UPCTL := (__EDTB88 OR __EDTB99) ;

(*************** 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 *)

