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.

FB31 SET P01: Moving to home position

 

 

 

Netzwerk 1: SET query home position

 

"M01 HomPosIS" :=

"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".V90_R.DRV.Support.InPos AND "DI OUT P01".V90_R.DRV.Support.HomeDone

AND "DI OUT P01".C01.FB_HP AND "DI OUT P01".C02.FB_HP AND "DI OUT P01".C03.FB_HP;

// Pre-Setting

"M01 MW32 SEQ1" := "M01 MW38 SEQ1" := 0;

 

 

 

Netzwerk 2: SET execute home position

 

#SSM(MAX_STEP := 5);

 

 

 

Netzwerk 3: Step Switching Mechanism (SSM)

 

CASE #SSM.S.stepact OF

    0: // Waiting for SSM enable

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

       

    1: // C01 Gripper jaws HP

        "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".M01.DRV.CmdExe_WP := "DI OUT P01".M02.DRV.CmdExe_WP := "DI OUT P01".M03.DRV.CmdExe_WP := FALSE;

        #SSM.S.stepd := "DI OUT P01".C01.FB_HP AND "DI OUT P01".M01.DRV.LampHP AND "DI OUT P01".M02.DRV.LampHP AND "DI OUT P01".M03.DRV.LampHP;

       

    2: // V90_Z MovJog towards TchInPos_0

        "DI OUT P01".V90_Z.DRV.Support.SetVelo := "DI OUT P01".MANUAL.XYZRaxisVelo_0;

        #SSM.S.stepd := ABS_LREAL(IN := "DI OUT P01".V90_Z.DRV.Support.ActPos - "DI OUT P01".MANUAL.V90_Z.TchInPos_0) <= 3.0;

        IF "DI OUT P01".V90_Z.DRV.Support.ActPos < "DI OUT P01".MANUAL.V90_Z.TchInPos_0 THEN

            "M01 V90_Z MovJogWP" := NOT (#SSM.S.stepd OR "DI OUT P01".V90_Z.HALT_01);

        ELSE

            "M01 V90_Z MovJogHP" := NOT (#SSM.S.stepd OR "DI OUT P01".V90_Z.HALT_01);

        END_IF;

       

    3: // V90_X MovJog and V90_Y MovJog towards TchInPos_0

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

        "DI OUT P01".V90_Y.DRV.Support.SetVelo := "DI OUT P01".MANUAL.XYZRaxisVelo_0;

        #tmp_llo_x_axis := ABS_LREAL(IN := "DI OUT P01".V90_X.DRV.Support.ActPos - "DI OUT P01".MANUAL.V90_X.TchInPos_0) <= 8.0;

        #tmp_llo_y_axis := ABS_LREAL(IN := "DI OUT P01".V90_Y.DRV.Support.ActPos - "DI OUT P01".MANUAL.V90_Y.TchInPos_0) <= 8.0;

        IF "DI OUT P01".V90_X.DRV.Support.ActPos < "DI OUT P01".MANUAL.V90_X.TchInPos_0 THEN

            "M01 V90_X MovJogWP" := NOT (#tmp_llo_x_axis OR "DI OUT P01".V90_X.HALT_01);

        ELSE

            "M01 V90_X MovJogHP" := NOT (#tmp_llo_x_axis OR "DI OUT P01".V90_X.HALT_01);

        END_IF;

        IF "DI OUT P01".V90_Y.DRV.Support.ActPos < "DI OUT P01".MANUAL.V90_Y.TchInPos_0 THEN

            "M01 V90_Y MovJogWP" := NOT (#tmp_llo_y_axis OR "DI OUT P01".V90_Y.HALT_01);

        ELSE

            "M01 V90_Y MovJogHP" := NOT (#tmp_llo_y_axis OR "DI OUT P01".V90_Y.HALT_01);

        END_IF;

        #SSM.S.stepd := #tmp_llo_x_axis AND #tmp_llo_y_axis;

       

    4: // V90_R MovAbso towards TchInPos_0, C02 Pusher Nok HP, C03 Pusher HP

        IF #SSM.S.stepfc THEN

            "DI OUT P01".V90_R.DRV.Support.SetVelo := "DI OUT P01".MANUAL.XYZRaxisVelo_0;

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

        ELSE

            "M01 V90_R MovAbso" := NOT "DI OUT P01".V90_R.HALT_01;

            "DI OUT P01".C02.VLV_OC.CmdExe_WP :=

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

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

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

            #SSM.S.stepd := "DI OUT P01".V90_R.DRV.Support.InPos AND "DI OUT P01".C02.FB_HP AND "DI OUT P01".C03.FB_HP;

        END_IF;

       

    5: // Query P01 home position

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

END_CASE;