Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

FB21 SET GLB GLB SET Home position

 

 

 

Network 1: SET Pre-Setting Last step

#SSM(LAST_STEP := 7);

 

 

 

Network 2: SET jump distributor

CASE #SSM.S.stepact OF

    0: // Waiting for enable

        #SSM.S.stepd := #SSM.S.steps;

       

    1: // Query V90_X axis home HomDone

        "HMI KEY".P01.V90_X.F5_Set_Ref_Point := NOT "DI OUT P01".V90_X.DRV.Support.HomeDone;

        #SSM.S.stepd := "DI OUT P01".V90_X.DRV.Support.HomeDone AND NOT #SSM.S.DlyOff.Q;

       

    2: // Query V90_Y axis home HomDone

        "HMI KEY".P01.V90_Y.F5_Set_Ref_Point := NOT "DI OUT P01".V90_Y.DRV.Support.HomeDone;

        #SSM.S.stepd := "DI OUT P01".V90_Y.DRV.Support.HomeDone AND NOT #SSM.S.DlyOff.Q;

       

    3: // Query V90_Z axis home HomDone

        "HMI KEY".P01.V90_Z.F5_Set_Ref_Point := NOT "DI OUT P01".V90_Z.DRV.Support.HomeDone;

        #SSM.S.stepd := "DI OUT P01".V90_Z.DRV.Support.HomeDone AND NOT #SSM.S.DlyOff.Q;

       

    4: // Query MD_12 gripper axis home HomDone

        "HMI KEY".P01.MD_12.F5_Set_Ref_Point := NOT "DI OUT P01".MD_12.DRV.Support.HomeDone;

        #SSM.S.stepd := "DI OUT P01".MD_12.DRV.Support.HomeDone AND NOT #SSM.S.DlyOff.Q;

       

    5: // Query MD_34 gripper axis home HomDone

        "HMI KEY".P01.MD_34.F5_Set_Ref_Point := NOT "DI OUT P01".MD_34.DRV.Support.HomeDone;

        #SSM.S.stepd := "DI OUT P01".MD_34.DRV.Support.HomeDone AND NOT #SSM.S.DlyOff.Q;

       

    6: // Create puls all slave move to home position

        "M01 Init" := TRUE;

        #SSM.S.stepd := NOT #SSM.S.DlyOff.Q;

       

    7: // End home position complet machine

        IF "DI OUT P01".V90_X.DRV.Support.HomeDone

            AND "DI OUT P01".V90_X.DRV.Support.HomeDone

            AND "DI OUT P01".V90_Y.DRV.Support.HomeDone

            AND "DI OUT P01".V90_Z.DRV.Support.HomeDone

            AND "DI OUT P01".MD_12.DRV.Support.HomeDone

            AND "DI OUT P01".MD_34.DRV.Support.HomeDone THEN

            "M00 OM HOME POS ON" := FALSE;

        END_IF;

END_CASE;

 

 

 

FB31 SET P01 :  P01 SET sequence

 

 

 

Network 1: SET query home position

"M01 HomPosIS" :=

"DI MAIN P01".SEQ1.PosPointer = 1

AND "DI OUT P01".V90_X.DRV.Support.InPos

AND "DI OUT P01".V90_Y.DRV.Support.InPos

AND "DI OUT P01".V90_Z.DRV.Support.InPos

AND "DI OUT P01".MD_12.DRV.Support.InPos

AND "DI OUT P01".MD_34.DRV.Support.InPos

AND "DI OUT P01".C01.FB_HP;

 

 

 

Network 2: Reset command move axis

IF "DI MAIN P01".SET.SSM.S.stepfc OR "DI MAIN P01".SEQ1.SSM.S.stepfc THEN

    "DI OUT P01".V90_X.DRV.Support.Cmd_MovAbso :=

    "DI OUT P01".V90_X.DRV.Support.Cmd_MovRela :=

    "DI OUT P01".V90_X.DRV.Support.Cmd_MovJogHP :=

    "DI OUT P01".V90_X.DRV.Support.Cmd_MovJogWP :=

    "DI OUT P01".V90_Y.DRV.Support.Cmd_MovAbso :=

    "DI OUT P01".V90_Y.DRV.Support.Cmd_MovRela :=

    "DI OUT P01".V90_Y.DRV.Support.Cmd_MovJogHP :=

    "DI OUT P01".V90_Y.DRV.Support.Cmd_MovJogWP :=

    "DI OUT P01".V90_Z.DRV.Support.Cmd_MovAbso :=

    "DI OUT P01".V90_Z.DRV.Support.Cmd_MovRela :=

    "DI OUT P01".V90_Z.DRV.Support.Cmd_MovJogHP :=

    "DI OUT P01".V90_Z.DRV.Support.Cmd_MovJogWP :=

    "DI OUT P01".MD_12.DRV.Support.Cmd_MovAbso :=

    "DI OUT P01".MD_12.DRV.Support.Cmd_MovRela :=

    "DI OUT P01".MD_12.DRV.Support.Cmd_MovJogHP :=

    "DI OUT P01".MD_12.DRV.Support.Cmd_MovJogWP :=

    "DI OUT P01".MD_34.DRV.Support.Cmd_MovAbso :=

    "DI OUT P01".MD_34.DRV.Support.Cmd_MovRela :=

    "DI OUT P01".MD_34.DRV.Support.Cmd_MovJogHP :=

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

END_IF;

 

#SSM(LAST_STEP := 4);

 

 

 

Network 3: Step Switching Mechanism (SSM)

CASE #SSM.S.stepact OF

    0: // Waiting for SSM enable

        #SSM.S.stepd := #SSM.S.steps;

       

    1: // C01 Lifting gate WP

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

        #SSM.S.stepd := "DI OUT P01".C01.FB_WP;

       

    2: // XYZaxis MovAbso towards Pos.1 part control (up/closed)

        "DI MAIN P01".SEQ1.PosPointer := 1;

        #tmp_llo := "DI OUT P01".MD_12.NexDrv_DlyOn AND "DI OUT P01".MD_34.NexDrv_DlyOn;

        "FC POS REACHED"(START := #SSM.S.steplo,

                         TARGET_POS := "DI OUT P01".MANUAL.XYZG_TrgtPos["DI MAIN P01".SEQ1.PosPointer],

                         VELO_Z := "DI OUT P01".MANUAL.XYZGaxisVelo_1,

                         VELO_XYG := "DI OUT P01".MANUAL.XYZGaxisVelo_1,

                         ENABLE_X := NOT "DI OUT P01".V90_X.HALT_01 AND "DI OUT P01".V90_Z.DRV.Support.InPos AND #tmp_llo,

                         ENABLE_Y := NOT "DI OUT P01".V90_Y.HALT_01 AND "DI OUT P01".V90_Z.DRV.Support.InPos AND #tmp_llo,

                         ENABLE_Z := NOT "DI OUT P01".V90_Z.HALT_01 AND #tmp_llo,

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

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

                         MOV_TO_POS_Z => "DI OUT P01".V90_Z.DRV.Support.Cmd_MovAbso,

                         PRECISION := 0.1,

                         TARGET_REACHED => #SSM.S.stepd);

        "DI OUT P01".MD_12.DRV.Support.Cmd_MovAbso := NOT "DI OUT P01".MD_12.HALT_01;

        "DI OUT P01".MD_34.DRV.Support.Cmd_MovAbso := NOT "DI OUT P01".MD_34.HALT_01;

       

    3: // C01 Lifting gate HP

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

        #SSM.S.stepd := "DI OUT P01".C01.FB_HP;

       

    4: // Query P01 home position

        "M01 HomPosRun" := NOT "M01 HomPosIS";

END_CASE;