FB32 SEQ1 P01 : SEQ1 automatic mode |
|
|
|
Netzwerk 1: SEQ1 Pre-Setting #LiftStartUp := "E01 1M1 LB" AND "DI OUT P01".Support."1M2 EndLimUp"; #LiftStartDn := NOT "E01 1M1 LB" AND "DI OUT P01".Support."1M2 EndLimDown"; |
|
|
|
Netzwerk 2: Execute SEQ1 #SEQ1(STEP_PLS := "HMI KEY".P01.GLB.F17_StepPls, STEP_MNS := "HMI KEY".P01.GLB.F18_StepMns, GOTO_STEP := "HMI KEY".P01.GLB.F19_GoToStep, GOTO_STEP_NO := "HMI KEY".P01.GLB.GoToStep, MAX_STEP := 4); #ACT_STEP := #SEQ1.S.stepact; |
|
|
|
Netzwerk 3: Step jump distributor CASE #SEQ1.S.stepact OF 0: // Waiting for SEQ1 enable "M01 SEQ1 Active" := FALSE; "M01 MW38" := 0; #SEQ1.S.stepd := "M01 HomPos" AND #SEQ1.S.steps;
1: // 1M1 Loading drive set value IF #SEQ1.S.stepfc THEN "M01 SEQ1 Active" := TRUE; IF #LiftStartUp THEN "DI OUT P01"."1M1".DRV.SetTrgtPos := "DI OUT P01".MANUAL.Support."1M1".Set_TchInPos_1; RETURN; ELSIF #LiftStartDn THEN "DI OUT P01"."1M1".DRV.SetTrgtPos := "DI OUT P01".MANUAL.Support."1M1".Set_TchInPos_0; RETURN; END_IF; ELSE #SEQ1.S.stepd := NOT "DI OUT P01"."1M1".DRV.SetPoReach; END_IF;
2: // If lift is up 1M1 WP (RTT-Takt) IF "DI OUT P01".Support."1M2 EndLimUp" THEN IF "DI OUT P01"."1M1".DRV.SetPoReach THEN #SEQ1.S.c1.start := "HMI KEY".P01."1M1".F5_Set_Ref_Point := "M01 ToRTT SetPoReach" := TRUE; #SEQ1.S.c1.set := 15; "M01 Enbl RTT" := FALSE; END_IF;
"M01 1M1 GoToPos" := NOT #SEQ1.S.c1.start AND "HMI KEY".P01."1M1".Enable_WP AND "M01 Enbl RTT";
IF #SEQ1.S.c1.done THEN "HMI KEY".P01."1M1".F5_Set_Ref_Point := FALSE; #SEQ1.S.stepnew := 4; #SEQ1.S.stepd := NOT "E01 1M1 LB" AND "DI OUT P01"."1M1".DRV.ReferenceOK AND "DI OUT P01"."1M1".DRV.CrntPos = 0.0; IF NOT #SEQ1.S.stepd THEN #FLT."1M1_WP" := TRUE; END_IF; END_IF; END_IF;
// If lift is down 1M1 HP (unloading) IF "DI OUT P01".Support."1M2 EndLimDown" THEN "M01 ToRTT SetPoReach" := TRUE; "M01 Enbl RTT" := FALSE;
IF "DI OUT P01"."1M1".DRV.SetPoReach THEN #SEQ1.S.c1.start := "HMI KEY".P01."1M1".F5_Set_Ref_Point := "HMI KEY".P01."1M3".F5_Set_Ref_Point := TRUE; #SEQ1.S.c1.set := 15; END_IF;
"M01 1M1 GoToPos" := NOT #SEQ1.S.c1.start AND "HMI KEY".P01."1M1".Enable_HP AND "DI MAIN P03".SEQ1.WP_PLACE.%X3;
"DI OUT P01".MANUAL.Support."1M3".CmdExe_slow_WP := "HMI KEY".P01."1M3".Enable_HP := "M01 1M1 GoToPos";
IF #SEQ1.S.c1.done THEN "HMI KEY".P01."1M1".F5_Set_Ref_Point := "HMI KEY".P01."1M3".F5_Set_Ref_Point := FALSE; #SEQ1.S.stepd := "E01 1M1 LB" AND "DI OUT P01"."1M1".DRV.CrntPos = 0.0 AND "DI OUT P01"."1M3".DRV.CrntPos = 0.0; IF NOT #SEQ1.S.stepd THEN #FLT."1M1_HP" := TRUE; END_IF; END_IF; END_IF;
3: // Lift 1M2 WP (up) IF #SEQ1.S.stepfc THEN "DI OUT P01"."1M2".DRV.SetTrgtPos := "DI OUT P01".MANUAL.Support."1M2".Set_TchInPos_0; #SEQ1.S.c2.start := TRUE; #SEQ1.S.c2.set := 15; RETURN; ELSE "M01 1M2 GoToPos" := "HMI KEY".P01."1M2".Enable_WP; END_IF; IF "DI OUT P01"."1M2".DRV.SetPoReach AND #SEQ1.S.c2.done THEN "M01 1M2 GoToPos" := FALSE; #SEQ1.S.c1.start := TRUE; #SEQ1.S.c1.set := 15; "M01 SEQ1 Done" := "DI MAIN P01".SEQ1.LiftStartUp; IF NOT "M01 SEQ1 Done" AND #SEQ1.S.c1.done THEN #FLT."1M2_WP" := TRUE; END_IF; END_IF;
4: // Lift 1M2 HP (down) IF #SEQ1.S.stepfc THEN "DI OUT P01"."1M2".DRV.SetTrgtPos := "DI OUT P01".MANUAL.Support."1M2".Set_TchInPos_1; #SEQ1.S.c2.start := TRUE; #SEQ1.S.c2.set := 15; RETURN; ELSE "M01 1M2 GoToPos" := "HMI KEY".P01."1M2".Enable_HP; END_IF; IF "DI OUT P01"."1M2".DRV.SetPoReach AND #SEQ1.S.c2.done THEN "M01 1M2 GoToPos" := FALSE; #SEQ1.S.c1.start := TRUE; #SEQ1.S.c1.set := 15; "M01 SEQ1 Done" := "DI MAIN P01".SEQ1.LiftStartDn; IF NOT "M01 SEQ1 Done" AND #SEQ1.S.c1.done THEN #FLT."1M2_HP" := TRUE; END_IF; END_IF; END_CASE; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|