Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FB32 SEQ1 P02 Step Switching Mechanism (SSM)

 

 

 

Netzwerk 1: Step Switching Mechanism (SSM)

#STEP_PLS := "HMI KEY".P02.GLB.F17_StepPls;

#STEP_MNS := "HMI KEY".P02.GLB.F18_StepMns;

#GOTO_STEP := "HMI KEY".P02.GLB.F19_GoToStep;

#GOTO_STEP_NO := "HMI KEY".P02.GLB.GoToStep;

#LAST_STEP := 17;

 

 

 

Netzwerk 2: Pre-Setting

"M02 RdyToStart" := "M02 HomPosIS";

 

 

 

Netzwerk 3: SSM1 Jump distributor

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

    0: // Waiting für SEQ1 enable

        "M02 SEQ1 Active" := FALSE;

        IF NOT "M02 RdyToStart" THEN

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

            RETURN;

        ELSE

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

        END_IF;

       

    1: // C01 Lifting gate WP (close)

        "M02 SEQ1 Active" := TRUE;

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

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

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

       

    2: // S120_M MovAbso towards Pos.0 (10.0)

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

            "DI OUT P02".S120_M.DRV.Support.SetVelo := "DI OUT P02".Manual.S120_M.TchInVelo_3;

            "DI OUT P02".S120_M.DRV.MC_MoveAbsolute.Position := "DI OUT P02".Manual.S120_M.TchInPos_0;

        ELSE

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

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

        END_IF;

       

    3: // C01 Lifting gate HP (open)

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

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

        "DI MAIN P02".SEQ1.S.stepd := "DI OUT P02".C01.FB_HP;

       

    4: // S120_M MovAbso towards Pos.1 (444.0)

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

            "DI OUT P02".S120_M.DRV.Support.SetVelo := "DI OUT P02".Manual.S120_M.TchInVelo_3;

            "DI OUT P02".S120_M.DRV.MC_MoveAbsolute.Position := "DI OUT P02".Manual.S120_M.TchInPos_1;

        ELSE

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

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

        END_IF;

       

    5: // S120_M MovAbso towards Pos.2 (400.0)

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

            "DI OUT P02".S120_M.DRV.Support.SetVelo := "DI OUT P02".Manual.S120_M.TchInVelo_3;

            "DI OUT P02".S120_M.DRV.MC_MoveAbsolute.Position := "DI OUT P02".Manual.S120_M.TchInPos_2;

        ELSE

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

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

        END_IF;

       

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

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

            "DI OUT P02".S120_M.DRV.Support.SetVelo := "DI OUT P02".Manual.S120_M.TchInVelo_3;

            "DI OUT P02".S120_M.DRV.MC_MoveAbsolute.Position := "DI OUT P02".Manual.S120_M.TchInPos_3;

        ELSE

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

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

        END_IF;

       

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

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

            "DI OUT P02".S120_M.DRV.Support.SetVelo := "DI OUT P02".Manual.S120_M.TchInVelo_3;

            IF "DI OUT P02".S120_M.DRV.Support.ActPos >= "DI OUT P02".Manual.S120_M.TchInPos_1 THEN

                "DI OUT P02".S120_M.DRV.MC_MoveRelative.Distance := - "DI OUT P02".Manual.S120_M.TchInPos_1;

            ELSE

                "DI OUT P02".S120_M.DRV.MC_MoveRelative.Distance := "DI OUT P02".Manual.S120_M.TchInPos_1;

            END_IF;

            "DI OUT P02".S120_M.DRV.Support.SavTrgtPos := "DI OUT P02".S120_M.DRV.Support.ActPos + "DI OUT P02".S120_M.DRV.MC_MoveRelative.Distance;

        ELSE

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

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

        END_IF;

       

    8: // C01 Lifting gate WP (close)

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

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

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

       

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

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

            "DI OUT P02".S120_M.DRV.Support.SetVelo := "DI OUT P02".Manual.S120_M.TchInVelo_3;

            IF "DI OUT P02".S120_M.DRV.Support.ActPos >= "DI OUT P02".Manual.S120_M.TchInPos_2 THEN

                "DI OUT P02".S120_M.DRV.MC_MoveRelative.Distance := - "DI OUT P02".Manual.S120_M.TchInPos_2;

            ELSE

                "DI OUT P02".S120_M.DRV.MC_MoveRelative.Distance := "DI OUT P02".Manual.S120_M.TchInPos_2;

            END_IF;

            "DI OUT P02".S120_M.DRV.Support.SavTrgtPos := "DI OUT P02".S120_M.DRV.Support.ActPos + "DI OUT P02".S120_M.DRV.MC_MoveRelative.Distance;

        ELSE

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

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

        END_IF;

       

    10: // C01 Lifting gate HP (open)

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

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

        "DI MAIN P02".SEQ1.S.stepd := "DI OUT P02".C01.FB_HP;

       

    11: // S120_M MovAbso towards Pos.0 (10.0)

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

            "DI OUT P02".S120_M.DRV.Support.SetVelo := "DI OUT P02".Manual.S120_M.TchInVelo_3;

            "DI OUT P02".S120_M.DRV.MC_MoveAbsolute.Position := "DI OUT P02".Manual.S120_M.TchInPos_0;

        ELSE

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

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

        END_IF;

       

    12: // S120_M MovJogWP towards middle point (750.0) rough

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

            "DI OUT P02".S120_M.DRV.Support.SetVelo := "DI OUT P02".Manual.S120_M.TchInVelo_1;

            "DI OUT P02".S120_M.DRV.Support.SavTrgtPos := "DI OUT P02".S120_M.DRV.Support.SW_EndLim_MaxPos / 2.0;

        ELSE

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

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

        END_IF;

       

    13: // C01 Lifting gate WP (close)

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

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

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

       

    14: // S120_M MovRela distance Pos.1 (750.0 -/+ 444.0)

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

            "DI OUT P02".S120_M.DRV.Support.SetVelo := "DI OUT P02".Manual.S120_M.TchInVelo_3;

            IF "DI OUT P02".S120_M.DRV.Support.ActPos >= "DI OUT P02".Manual.S120_M.TchInPos_1 THEN

                "DI OUT P02".S120_M.DRV.MC_MoveRelative.Distance := - "DI OUT P02".Manual.S120_M.TchInPos_1;

            ELSE

                "DI OUT P02".S120_M.DRV.MC_MoveRelative.Distance := "DI OUT P02".Manual.S120_M.TchInPos_1;

            END_IF;

            "DI OUT P02".S120_M.DRV.Support.SavTrgtPos := "DI OUT P02".S120_M.DRV.Support.ActPos + "DI OUT P02".S120_M.DRV.MC_MoveRelative.Distance;

        ELSE

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

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

        END_IF;

       

    15: // C01 Lifting gate HP (open)

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

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

        "DI MAIN P02".SEQ1.S.stepd := "DI OUT P02".C01.FB_HP;

       

    16: // S120_M MovJogWP towards middle point (750.0) exact

        "DI OUT P02".S120_M.DRV.Support.SetVelo := "DI OUT P02".Manual.S120_M.TchInVelo_1;

        "DI OUT P02".S120_M.DRV.Support.SavTrgtPos := "DI OUT P02".S120_M.DRV.Support.SW_EndLim_MaxPos / 2.0;

        IF "DI OUT P02".S120_M.DRV.Support.InPos THEN

            "DI OUT P02".S120_M.DRV.Support.SetVelo := "DI OUT P02".Manual.S120_M.TchInVelo_0;

        END_IF;

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

        "DI MAIN P02".SEQ1.S.stepd := "DI OUT P02".S120_M.DRV.Support.ActPos >= "DI OUT P02".S120_M.DRV.Support.SavTrgtPos;

       

    17: // S120_M MovRela distance Pos.2 (750.0 + 400.0)

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

            "DI OUT P02".S120_M.DRV.Support.SetVelo := "DI OUT P02".Manual.S120_M.TchInVelo_2;

            "DI OUT P02".S120_M.DRV.MC_MoveRelative.Distance := "DI OUT P02".Manual.S120_M.TchInPos_2;

            "DI OUT P02".S120_M.DRV.Support.SavTrgtPos := "DI OUT P02".S120_M.DRV.Support.ActPos + "DI OUT P02".S120_M.DRV.MC_MoveRelative.Distance;

        ELSE

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

            "M02 SEQ1 Done" := "DI OUT P02".S120_M.DRV.Support.InPos AND NOT "DI MAIN P02".SEQ1.S.steplo;

        END_IF;

END_CASE;

 

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