Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FB32 SEQ1 P01 P01 sequencer 1 (LIF)

 

 

 

Netzwerk 1: Step Switching Mechanism (SSM)

#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;

#LAST_STEP := 17;

 

 

 

Netzwerk 2: Pre-Setting

"M01 RdyToStart" := "M01 HomPosIS";

 

 

 

Netzwerk 3: Step jump distributor

CASE "DI MAIN P01".SEQ1.S.stepact OF

    0: // Waiting für SEQ1 enable

        "M01 SEQ1 Active" := FALSE;

        IF NOT "M01 RdyToStart" THEN

            "M00 AutoCmpltMa run" := "M00 InchCmpltMa run" := FALSE;

            RETURN;

        ELSE

            "DI MAIN P01".SEQ1.S.stepd := "DI MAIN P01".SEQ1.S.steps;

        END_IF;

       

    1: // C01 cylinder WP (close)

        "M01 SEQ1 Active" := TRUE;

        "DI OUT P01".C01.VLV_OC.CmdExe_HP := FALSE;

        "DI OUT P01".C01.VLV_OC.CmdExe_WP := "HMI KEY".P01.C01.F12_Enable_WP;

        "DI MAIN P01".SEQ1.S.stepd := "DI OUT P01".C01.FB_WP;

       

    2: // S120_X + G120G_Y MovAbso towards next IndexPos 1

        IF "DI MAIN P01".SEQ1.S.stepfc THEN

            #IndexPos := #IndexPos + 1;

            #ExecuteCoodinate(INDEX_POS := #IndexPos,

                              REF_POS := "DI OUT P01".MANUAL.Rer_Pos,

                              PLACES_ON_X := "DI OUT P01".MANUAL.Places_on_X,

                              PLACES_ON_Y := "DI OUT P01".MANUAL.Places_on_Y,

                              GAP_FACTOR_X := "DI OUT P01".MANUAL.Gap.X,

                              GAP_FACTOR_Y := "DI OUT P01".MANUAL.Gap.Y,

                              TARGET_POS := #TrgtPos);

        ELSE

            "FC POS REACHED"(START := "DI MAIN P01".SEQ1.S.steplo,

                             TARGET_POS := #TrgtPos,

                             VELO_X := "DI OUT P01".MANUAL.S120_X.TchInVelo_1,

                             VELO_Y := "DI OUT P01".MANUAL.G120C_Y.TchInVelo_1,

                             ENABLE_X := NOT "DI OUT P01".S120_X.HALT_01 AND "DI MAIN P01".SEQ1.S.stepa,

                             ENABLE_Y := NOT "DI OUT P01".G120C_Y.HALT_01 AND "DI MAIN P01".SEQ1.S.stepa,

                             PRECISION := 5.0,

                             MOV_TO_POS_X => "DI OUT P01".S120_X.DRV.Support.Cmd_MovAbso,

                             MOV_TO_POS_Y => "DI OUT P01".G120C_Y.DRV.Support.Cmd_MovAbso,

                             TARGET_REACHED => "DI MAIN P01".SEQ1.S.stepd);

        END_IF;

       

    3: // S120_X + G120G_Y MovAbso towards next IndexPos 2

        IF "DI MAIN P01".SEQ1.S.stepfc THEN

            #IndexPos := #IndexPos + 1;

            #ExecuteCoodinate(INDEX_POS := #IndexPos,

                              REF_POS := "DI OUT P01".MANUAL.Rer_Pos,

                              PLACES_ON_X := "DI OUT P01".MANUAL.Places_on_X,

                              PLACES_ON_Y := "DI OUT P01".MANUAL.Places_on_Y,

                              GAP_FACTOR_X := "DI OUT P01".MANUAL.Gap.X,

                              GAP_FACTOR_Y := "DI OUT P01".MANUAL.Gap.Y,

                              TARGET_POS := #TrgtPos);

        ELSE

            "FC POS REACHED"(START := "DI MAIN P01".SEQ1.S.steplo,

                             TARGET_POS := #TrgtPos,

                             VELO_X := "DI OUT P01".MANUAL.S120_X.TchInVelo_1,

                             VELO_Y := "DI OUT P01".MANUAL.G120C_Y.TchInVelo_1,

                             ENABLE_X := NOT "DI OUT P01".S120_X.HALT_01 AND "DI MAIN P01".SEQ1.S.stepa,

                             ENABLE_Y := NOT "DI OUT P01".G120C_Y.HALT_01 AND "DI MAIN P01".SEQ1.S.stepa,

                             PRECISION := 5.0,

                             MOV_TO_POS_X => "DI OUT P01".S120_X.DRV.Support.Cmd_MovAbso,

                             MOV_TO_POS_Y => "DI OUT P01".G120C_Y.DRV.Support.Cmd_MovAbso,

                             TARGET_REACHED => "DI MAIN P01".SEQ1.S.stepd);

        END_IF;

       

    4: // S120_X + G120G_Y MovAbso towards next IndexPos 3

        IF "DI MAIN P01".SEQ1.S.stepfc THEN

            #IndexPos := #IndexPos + 1;

            #ExecuteCoodinate(INDEX_POS := #IndexPos,

                              REF_POS := "DI OUT P01".MANUAL.Rer_Pos,

                              PLACES_ON_X := "DI OUT P01".MANUAL.Places_on_X,

                              PLACES_ON_Y := "DI OUT P01".MANUAL.Places_on_Y,

                              GAP_FACTOR_X := "DI OUT P01".MANUAL.Gap.X,

                              GAP_FACTOR_Y := "DI OUT P01".MANUAL.Gap.Y,

                              TARGET_POS := #TrgtPos);

        ELSE

            "FC POS REACHED"(START := "DI MAIN P01".SEQ1.S.steplo,

                             TARGET_POS := #TrgtPos,

                             VELO_X := "DI OUT P01".MANUAL.S120_X.TchInVelo_1,

                             VELO_Y := "DI OUT P01".MANUAL.G120C_Y.TchInVelo_1,

                             ENABLE_X := NOT "DI OUT P01".S120_X.HALT_01 AND "DI MAIN P01".SEQ1.S.stepa,

                             ENABLE_Y := NOT "DI OUT P01".G120C_Y.HALT_01 AND "DI MAIN P01".SEQ1.S.stepa,

                             PRECISION := 5.0,

                             MOV_TO_POS_X => "DI OUT P01".S120_X.DRV.Support.Cmd_MovAbso,

                             MOV_TO_POS_Y => "DI OUT P01".G120C_Y.DRV.Support.Cmd_MovAbso,

                             TARGET_REACHED => "DI MAIN P01".SEQ1.S.stepd);

        END_IF;

       

    5: // S120_X MovAbso towards Pos.3 (1444.0)

        IF "DI MAIN P01".SEQ1.S.stepfc THEN

            "DI OUT P01".S120_X.DRV.Support.SetVelo := "DI OUT P01".MANUAL.S120_X.TchInVelo_3;

            "DI OUT P01".S120_X.DRV.MC_MoveAbsolute.Position := "DI OUT P01".MANUAL.S120_X.TchInPos_3;

        ELSE

            "DI OUT P01".S120_X.DRV.Support.Cmd_MovAbso := NOT "DI OUT P01".S120_X.HALT_01 AND "DI MAIN P01".SEQ1.S.stepa;

            "DI MAIN P01".SEQ1.S.stepd := "DI OUT P01".S120_X.DRV.Support.InPos AND NOT "DI MAIN P01".SEQ1.S.steplo;

        END_IF;

       

    6: // G120C_Y MovAbso towards Pos.3 (1444.0)

        IF "DI MAIN P01".SEQ1.S.stepfc THEN

            "DI OUT P01".G120C_Y.DRV.Support.SetVelo := "DI OUT P01".MANUAL.G120C_Y.TchInVelo_3;

            "DI OUT P01".G120C_Y.DRV.MC_MoveAbsolute.Position := "DI OUT P01".MANUAL.G120C_Y.TchInPos_3;

        ELSE

            "DI OUT P01".G120C_Y.DRV.Support.Cmd_MovAbso := NOT "DI OUT P01".G120C_Y.HALT_01 AND "DI MAIN P01".SEQ1.S.stepa;

            "DI MAIN P01".SEQ1.S.stepd := "DI OUT P01".G120C_Y.DRV.Support.InPos AND NOT "DI MAIN P01".SEQ1.S.steplo;

        END_IF;

       

    7: // G120C MovRela distance Pos.1 (1444.0 -/+ 444.0)

        IF "DI MAIN P01".SEQ1.S.stepfc THEN

            "DI OUT P01".G120C_Y.DRV.Support.SetVelo := "DI OUT P01".MANUAL.G120C_Y.TchInVelo_3;

            IF "DI OUT P01".G120C_Y.DRV.Support.ActPos >= "DI OUT P01".MANUAL.G120C_Y.TchInPos_1 THEN

                "DI OUT P01".G120C_Y.DRV.MC_MoveRelative.Distance := - "DI OUT P01".MANUAL.G120C_Y.TchInPos_1;

            ELSE

                "DI OUT P01".G120C_Y.DRV.MC_MoveRelative.Distance := "DI OUT P01".MANUAL.G120C_Y.TchInPos_1;

            END_IF;

            "DI OUT P01".G120C_Y.DRV.Support.SavTrgtPos := "DI OUT P01".G120C_Y.DRV.Support.ActPos + "DI OUT P01".G120C_Y.DRV.MC_MoveRelative.Distance;

        ELSE

            "DI OUT P01".G120C_Y.DRV.Support.Cmd_MovRela := NOT "DI OUT P01".G120C_Y.HALT_01 AND "DI MAIN P01".SEQ1.S.stepa;

            "DI MAIN P01".SEQ1.S.stepd :=

             ABS("DI OUT P01".G120C_Y.DRV.Support.SavTrgtPos - "DI OUT P01".G120C_Y.DRV.Support.ActPos) <= "DI OUT   P01".G120C_Y.DRV.Support.WinRange;

        END_IF;

       

    8: // S120_X MovRela distance Pos.1 (1444.0 -/+ 444.0)

        IF "DI MAIN P01".SEQ1.S.stepfc THEN

            "DI OUT P01".S120_X.DRV.Support.SetVelo := "DI OUT P01".MANUAL.S120_X.TchInVelo_3;

            IF "DI OUT P01".S120_X.DRV.Support.ActPos >= "DI OUT P01".MANUAL.S120_X.TchInPos_1 THEN

                "DI OUT P01".S120_X.DRV.MC_MoveRelative.Distance := - "DI OUT P01".MANUAL.S120_X.TchInPos_1;

            ELSE

                "DI OUT P01".S120_X.DRV.MC_MoveRelative.Distance := "DI OUT P01".MANUAL.S120_X.TchInPos_1;

            END_IF;

            "DI OUT P01".S120_X.DRV.Support.SavTrgtPos := "DI OUT P01".S120_X.DRV.Support.ActPos + "DI OUT P01".S120_X.DRV.MC_MoveRelative.Distance;

        ELSE

            "DI OUT P01".S120_X.DRV.Support.Cmd_MovRela := NOT "DI OUT P01".S120_X.HALT_01 AND "DI MAIN P01".SEQ1.S.stepa;

            "DI MAIN P01".SEQ1.S.stepd := "DI OUT P01".S120_X.DRV.Support.InPos AND NOT "DI MAIN P01".SEQ1.S.steplo;

        END_IF;

       

    9: // G120C_Y MovRela distance Pos.2 (1000.0 -/+ 400.0)

        IF "DI MAIN P01".SEQ1.S.stepfc THEN

            "DI OUT P01".G120C_Y.DRV.Support.SetVelo := "DI OUT P01".MANUAL.G120C_Y.TchInVelo_3;

            IF "DI OUT P01".G120C_Y.DRV.Support.ActPos >= "DI OUT P01".MANUAL.G120C_Y.TchInPos_2 THEN

                "DI OUT P01".G120C_Y.DRV.MC_MoveRelative.Distance := - "DI OUT P01".MANUAL.G120C_Y.TchInPos_2;

            ELSE

                "DI OUT P01".G120C_Y.DRV.MC_MoveRelative.Distance := "DI OUT P01".MANUAL.G120C_Y.TchInPos_2;

            END_IF;

            "DI OUT P01".G120C_Y.DRV.Support.SavTrgtPos := "DI OUT P01".G120C_Y.DRV.Support.ActPos + "DI OUT P01".G120C_Y.DRV.MC_MoveRelative.Distance;

        ELSE

            "DI OUT P01".G120C_Y.DRV.Support.Cmd_MovRela := NOT "DI OUT P01".G120C_Y.HALT_01 AND "DI MAIN P01".SEQ1.S.stepa;

            "DI MAIN P01".SEQ1.S.stepd := "DI OUT P01".G120C_Y.DRV.Support.InPos AND NOT "DI MAIN P01".SEQ1.S.steplo;

        END_IF;

       

    10: // S120_X MovRela distance Pos.2 exact (1000.0 -/+ 400.0)

        IF "DI MAIN P01".SEQ1.S.stepfc THEN

            "DI OUT P01".S120_X.DRV.Support.SetVelo := "DI OUT P01".MANUAL.S120_X.TchInVelo_3;

            IF "DI OUT P01".S120_X.DRV.Support.ActPos >= "DI OUT P01".MANUAL.S120_X.TchInPos_2 THEN

                "DI OUT P01".S120_X.DRV.MC_MoveRelative.Distance := - "DI OUT P01".MANUAL.S120_X.TchInPos_2;

            ELSE

                "DI OUT P01".S120_X.DRV.MC_MoveRelative.Distance := "DI OUT P01".MANUAL.S120_X.TchInPos_2;

            END_IF;

            "DI OUT P01".S120_X.DRV.Support.SavTrgtPos := "DI OUT P01".S120_X.DRV.Support.ActPos + "DI OUT P01".S120_X.DRV.MC_MoveRelative.Distance;

        ELSE

            "DI OUT P01".S120_X.DRV.Support.Cmd_MovRela := NOT "DI OUT P01".S120_X.HALT_01 AND "DI MAIN P01".SEQ1.S.stepa;

            "DI MAIN P01".SEQ1.S.stepd := "DI OUT P01".S120_X.DRV.Support.InPos AND NOT "DI MAIN P01".SEQ1.S.steplo;

        END_IF;

       

    11:   // G120C_Y + S120_X MovAbso towards Pos.0 (10.0)

        IF "DI MAIN P01".SEQ1.S.stepfc THEN

            "DI OUT P01".G120C_Y.DRV.Support.SetVelo := "DI OUT P01".MANUAL.G120C_Y.TchInVelo_3;

            "DI OUT P01".G120C_Y.DRV.MC_MoveAbsolute.Position := "DI OUT P01".MANUAL.G120C_Y.TchInPos_0;

            "DI OUT P01".S120_X.DRV.Support.SetVelo := "DI OUT P01".MANUAL.S120_X.TchInVelo_3;

            "DI OUT P01".S120_X.DRV.MC_MoveAbsolute.Position := "DI OUT P01".MANUAL.S120_X.TchInPos_0;

        ELSE

            "DI OUT P01".S120_X.DRV.Support.Cmd_MovAbso := NOT "DI OUT P01".S120_X.HALT_01 AND "DI MAIN P01".SEQ1.S.stepa;

            "DI OUT P01".G120C_Y.DRV.Support.Cmd_MovAbso := NOT "DI OUT P01".G120C_Y.HALT_01 AND "DI MAIN P01".SEQ1.S.stepa;

            "DI MAIN P01".SEQ1.S.stepd := "DI OUT P01".S120_X.DRV.Support.InPos AND "DI OUT P01".G120C_Y.DRV.Support.InPos AND NOT "DI MAIN P01".SEQ1.S.steplo;

        END_IF;

       

    12: // G120C_Y + S120_X MovJogWP towards middle point (745.0) rough

        IF "DI MAIN P01".SEQ1.S.stepfc THEN

            "DI OUT P01".S120_X.DRV.Support.SetVelo := "DI OUT P01".MANUAL.S120_X.TchInVelo_1;

            "DI OUT P01".S120_X.DRV.Support.SavTrgtPos := "DI OUT P01".S120_X.DRV.Support.SW_EndLim_MaxPos / 2.0;

            "DI OUT P01".G120C_Y.DRV.Support.SetVelo := "DI OUT P01".MANUAL.G120C_Y.TchInVelo_1;

            "DI OUT P01".G120C_Y.DRV.Support.SavTrgtPos := "DI OUT P01".G120C_Y.DRV.Support.SW_EndLim_MaxPos / 2.0;

        ELSE

            "DI OUT P01".S120_X.DRV.Support.Cmd_MovJogWP := NOT "DI OUT P01".S120_X.HALT_01 AND "DI MAIN P01".SEQ1.S.stepa;

            "DI OUT P01".G120C_Y.DRV.Support.Cmd_MovJogWP := NOT "DI OUT P01".G120C_Y.HALT_01 AND "DI MAIN P01".SEQ1.S.stepa;

            IF "DI OUT P01".S120_X.DRV.Support.InPos AND NOT "DI MAIN P01".SEQ1.S.steplo THEN

                "DI OUT P01".S120_X.DRV.Support.Cmd_MovJogWP := FALSE;

            END_IF;

            IF "DI OUT P01".G120C_Y.DRV.Support.InPos AND NOT "DI MAIN P01".SEQ1.S.steplo THEN

                "DI OUT P01".G120C_Y.DRV.Support.Cmd_MovJogWP := FALSE;

            END_IF;

            "DI MAIN P01".SEQ1.S.stepd := "DI OUT P01".S120_X.DRV.Support.InPos AND "DI OUT P01".G120C_Y.DRV.Support.InPos AND NOT "DI MAIN P01".SEQ1.S.steplo;

        END_IF;

       

    13: // S120_X + G120G_Y MovAbsoXY towards next IndexPos 4

        IF "DI MAIN P01".SEQ1.S.stepfc THEN

            #IndexPos := #IndexPos + 1;

            #ExecuteCoodinate(INDEX_POS := #IndexPos,

                              REF_POS := "DI OUT P01".MANUAL.Rer_Pos,

                              PLACES_ON_X := "DI OUT P01".MANUAL.Places_on_X,

                              PLACES_ON_Y := "DI OUT P01".MANUAL.Places_on_Y,

                              GAP_FACTOR_X := "DI OUT P01".MANUAL.Gap.X,

                              GAP_FACTOR_Y := "DI OUT P01".MANUAL.Gap.Y,

                              TARGET_POS := #TrgtPos);

        ELSE

            "FC POS REACHED"(START := "DI MAIN P01".SEQ1.S.steplo,

                             TARGET_POS := #TrgtPos,

                             VELO_X := "DI OUT P01".MANUAL.S120_X.TchInVelo_1,

                             VELO_Y := "DI OUT P01".MANUAL.G120C_Y.TchInVelo_1,

                             ENABLE_X := NOT "DI OUT P01".S120_X.HALT_01 AND "DI MAIN P01".SEQ1.S.stepa,

                             ENABLE_Y := NOT "DI OUT P01".G120C_Y.HALT_01 AND "DI MAIN P01".SEQ1.S.stepa,

                             PRECISION := 5.0,

                             MOV_TO_POS_X => "DI OUT P01".S120_X.DRV.Support.Cmd_MovAbso,

                             MOV_TO_POS_Y => "DI OUT P01".G120C_Y.DRV.Support.Cmd_MovAbso,

                             TARGET_REACHED => "DI MAIN P01".SEQ1.S.stepd);

        END_IF;

       

    14: // G120C_Y MovRela distance Pos.1 (745.0 -/+ 444.0)

        IF "DI MAIN P01".SEQ1.S.stepfc THEN

            "DI OUT P01".G120C_Y.DRV.Support.SetVelo := "DI OUT P01".MANUAL.G120C_Y.TchInVelo_3;

            IF "DI OUT P01".G120C_Y.DRV.Support.ActPos >= "DI OUT P01".MANUAL.G120C_Y.TchInPos_1 THEN

                "DI OUT P01".G120C_Y.DRV.MC_MoveRelative.Distance := - "DI OUT P01".MANUAL.G120C_Y.TchInPos_1;

            ELSE

                "DI OUT P01".G120C_Y.DRV.MC_MoveRelative.Distance := "DI OUT P01".MANUAL.G120C_Y.TchInPos_1;

            END_IF;

            "DI OUT P01".G120C_Y.DRV.Support.SavTrgtPos := "DI OUT P01".G120C_Y.DRV.Support.ActPos + "DI OUT P01".G120C_Y.DRV.MC_MoveRelative.Distance;

        ELSE

            "DI OUT P01".G120C_Y.DRV.Support.Cmd_MovRela := NOT "DI OUT P01".G120C_Y.HALT_01 AND "DI MAIN P01".SEQ1.S.stepa;

            "DI MAIN P01".SEQ1.S.stepd := "DI OUT P01".G120C_Y.DRV.Support.InPos AND NOT "DI MAIN P01".SEQ1.S.steplo;

        END_IF;

       

    15: // S120_X MovRela distance Pos.1 (745.0 -/+ 444.0)

        IF "DI MAIN P01".SEQ1.S.stepfc THEN

            "DI OUT P01".S120_X.DRV.Support.SetVelo := "DI OUT P01".MANUAL.S120_X.TchInVelo_3;

            IF "DI OUT P01".S120_X.DRV.Support.ActPos >= "DI OUT P01".MANUAL.S120_X.TchInPos_1 THEN

                "DI OUT P01".S120_X.DRV.MC_MoveRelative.Distance := - "DI OUT P01".MANUAL.S120_X.TchInPos_1;

            ELSE

                "DI OUT P01".S120_X.DRV.MC_MoveRelative.Distance := "DI OUT P01".MANUAL.S120_X.TchInPos_1;

            END_IF;

            "DI OUT P01".S120_X.DRV.Support.SavTrgtPos := "DI OUT P01".S120_X.DRV.Support.ActPos + "DI OUT P01".S120_X.DRV.MC_MoveRelative.Distance;

        ELSE

            "DI OUT P01".S120_X.DRV.Support.Cmd_MovRela := NOT "DI OUT P01".S120_X.HALT_01 AND "DI MAIN P01".SEQ1.S.stepa;

            "DI MAIN P01".SEQ1.S.stepd := "DI OUT P01".S120_X.DRV.Support.InPos AND NOT "DI MAIN P01".SEQ1.S.steplo;

        END_IF;

       

    16: // G120C_Y + S120_X MovJogWP/HP towards middle point exact (745.0)

        IF "DI MAIN P01".SEQ1.S.steplo THEN

            "DI MAIN P01".SEQ1.S.c1.set := 5;

            "DI OUT P01".G120C_Y.DRV.Support.SetVelo := "DI OUT P01".MANUAL.G120C_Y.TchInVelo_1;

            "DI OUT P01".G120C_Y.DRV.Support.SavTrgtPos := "DI OUT P01".G120C_Y.DRV.Support.SW_EndLim_MaxPos / 2.0;

            IF "DI OUT P01".G120C_Y.DRV.Support.ActPos <= "DI OUT P01".G120C_Y.DRV.Support.SavTrgtPos THEN

                "DI OUT P01".G120C_Y.DRV.Support.Cmd_MovJogWP := NOT "DI OUT P01".G120C_Y.HALT_01;

            ELSIF "DI OUT P01".G120C_Y.DRV.Support.ActPos > "DI OUT P01".G120C_Y.DRV.Support.SavTrgtPos THEN

                "DI OUT P01".G120C_Y.DRV.Support.Cmd_MovJogHP := NOT "DI OUT P01".G120C_Y.HALT_01;

            END_IF;

            "DI OUT P01".S120_X.DRV.Support.SetVelo := "DI OUT P01".MANUAL.S120_X.TchInVelo_1;

            "DI OUT P01".S120_X.DRV.Support.SavTrgtPos := "DI OUT P01".S120_X.DRV.Support.SW_EndLim_MaxPos / 2.0;

            IF "DI OUT P01".S120_X.DRV.Support.ActPos <= "DI OUT P01".S120_X.DRV.Support.SavTrgtPos THEN

                "DI OUT P01".S120_X.DRV.Support.Cmd_MovJogWP := NOT "DI OUT P01".S120_X.HALT_01;

            ELSIF "DI OUT P01".S120_X.DRV.Support.ActPos > "DI OUT P01".S120_X.DRV.Support.SavTrgtPos THEN

                "DI OUT P01".S120_X.DRV.Support.Cmd_MovJogHP := NOT "DI OUT P01".S120_X.HALT_01;

            END_IF;

        ELSE

            IF "DI OUT P01".G120C_Y.DRV.Support.InPos THEN

                "DI OUT P01".G120C_Y.DRV.Support.SetVelo := "DI OUT P01".MANUAL.G120C_Y.TchInVelo_0;

            END_IF;

            IF "DI OUT P01".S120_X.DRV.Support.InPos THEN

                "DI OUT P01".S120_X.DRV.Support.SetVelo := "DI OUT P01".MANUAL.S120_X.TchInVelo_0;

            END_IF;

            IF ABS("DI OUT P01".G120C_Y.DRV.Support.SavTrgtPos - "DI OUT P01".G120C_Y.DRV.Support.ActPos) <= 0.3 OR NOT "DI MAIN P01".SEQ1.S.stepa THEN

                "DI OUT P01".G120C_Y.DRV.Support.Cmd_MovJogWP := "DI OUT P01".G120C_Y.DRV.Support.Cmd_MovJogHP := FALSE;

            END_IF;

            IF ABS("DI OUT P01".S120_X.DRV.Support.SavTrgtPos - "DI OUT P01".S120_X.DRV.Support.ActPos) <= 0.3 OR NOT "DI MAIN P01".SEQ1.S.stepa THEN

                "DI OUT P01".S120_X.DRV.Support.Cmd_MovJogWP := "DI OUT P01".S120_X.DRV.Support.Cmd_MovJogHP := FALSE;

            END_IF;

            "DI MAIN P01".SEQ1.S.c1.start := NOT ("DI OUT P01".S120_X.DRV.MC_MoveJog.Busy OR "DI OUT P01".G120C_Y.DRV.MC_MoveJog.Busy);

            "DI MAIN P01".SEQ1.S.stepd := "DI MAIN P01".SEQ1.S.c1.done;

        END_IF;

       

    17: // S120_X + G120C_Y MovRela distance Pos.2 (745.0 + 400.0), C01 Cylinder HP

        IF "DI MAIN P01".SEQ1.S.stepfc THEN

            "DI OUT P01".G120C_Y.DRV.Support.SetVelo := "DI OUT P01".MANUAL.G120C_Y.TchInVelo_2;

            "DI OUT P01".G120C_Y.DRV.MC_MoveRelative.Distance := "DI OUT P01".MANUAL.G120C_Y.TchInPos_2;

            "DI OUT P01".G120C_Y.DRV.Support.SavTrgtPos := "DI OUT P01".G120C_Y.DRV.Support.ActPos + "DI OUT P01".G120C_Y.DRV.MC_MoveRelative.Distance;

            "DI OUT P01".S120_X.DRV.Support.SetVelo := "DI OUT P01".MANUAL.S120_X.TchInVelo_3;

            "DI OUT P01".S120_X.DRV.MC_MoveRelative.Distance := "DI OUT P01".MANUAL.S120_X.TchInPos_2;

            "DI OUT P01".S120_X.DRV.Support.SavTrgtPos := "DI OUT P01".S120_X.DRV.Support.ActPos + "DI OUT P01".S120_X.DRV.MC_MoveRelative.Distance;

        ELSE

            "DI OUT P01".C01.VLV_OC.CmdExe_WP := FALSE;

            "DI OUT P01".C01.VLV_OC.CmdExe_HP := "HMI KEY".P01.C01.F11_Enable_HP;

           

            "DI OUT P01".S120_X.DRV.Support.Cmd_MovRela := NOT "DI OUT P01".S120_X.HALT_01 AND "DI MAIN P01".SEQ1.S.stepa;

            "DI OUT P01".G120C_Y.DRV.Support.Cmd_MovRela := NOT "DI OUT P01".G120C_Y.HALT_01 AND "DI MAIN P01".SEQ1.S.stepa;

            "M01 SEQ1 Done" :=

            "DI OUT P01".S120_X.DRV.Support.InPos AND "DI OUT P01".G120C_Y.DRV.Support.InPos AND "DI OUT P01".C01.FB_HP AND NOT "DI MAIN P01".SEQ1.S.steplo;

        END_IF;

END_CASE;

 

To go to next HMI image use the touch buttons; some of them are interactive.