Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FB31 SET P01 : SET Move CAM_DISC towards home position

 

 

 

Netzwerk 1: Query home position

"DI MAIN P01".M00.HomPosIS :=

NOT ("E01 Part Available Income" OR "E01 Part Available Outcome")

AND "DI OUT P01".V90S.DRV.MC_GearIn.InGear

AND "DI OUT P01".V90.DRV.Support.LampOFF

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

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

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

AND "E01 V90SM LiBa" AND "E01 V90S LiBa";

 

 

 

Netzwerk 2: Define last step

#SSM(LAST_STEP := 9);

 

 

 

Netzwerk 3: Step Switching Mechanism (SSM)

CASE #SSM.S.stepact OF

    0: // Waiting for SET to start

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

       

    1: // V90S stop GearIn

        IF #SSM.S.stepfc THEN

            "HMI KEY".P01.V90S.F21_HALT := TRUE;

            "DI OUT P01".V90S.DRV.MC_MoveJog.Velocity :=

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

            "DI OUT P01".V90M.DRV.Support.SetVelo := 100; // mm/s

            "DI OUT P01".CAM_DISC.CAM.Support.Cam.Current_Position := #tmp_del_pos;

            "DI OUT P01".CAM_DISC.CAM.Support.Write_Index := "DI OUT P01".CAM_DISC.CAM.Support.Read_Index := "DI OUT P01".CAM_DISC.CAM.Support.Output_Index := 0;

        ELSIF NOT ("DI OUT P01".V90S.DRV.MC_GearIn.Busy OR "DI OUT P01".V90S.DRV.MC_GearIn.InGear) THEN

            #SSM.S.stepd := TRUE;

            "HMI KEY".P01.V90S.F21_HALT := FALSE;

        END_IF;

       

    2: // Query part available at notch area

        #SSM.S.stepd := NOT ("E01 Part Available Income" OR "E01 Part Available Outcome");

        #tmp_llo := "HMI KEY".P01.V90M.F12_Enable_WP AND "HMI KEY".P01.V90SM.F12_Enable_WP AND "HMI KEY".P01.V90S.F11_Enable_HP;

        "DI OUT P01".V90M.DRV.Support.Cmd_MoveJogWP :=

        "DI OUT P01".V90SM.DRV.Support.Cmd_MoveJogWP :=

        "DI OUT P01".V90S.DRV.Support.Cmd_MoveJogHP := NOT #SSM.S.stepd AND #tmp_llo AND #SSM.S.stepa;

       

    3: // Query V90M MC_PositioningAxis Master HomDone

        #SSM.S.c1.start := "HMI KEY".P01.V90M.F5_Set_Ref_Point := NOT "DI OUT P01".V90M.DRV.Support.HomeDone;

        #SSM.S.c1.set := 25;

        #SSM.S.stepd := "DI OUT P01".V90M.DRV.Support.HomeDone AND #SSM.S.c1.done OR "DI OUT P01".V90M.DRV.Support.HomeDone AND NOT (#SSM.S.steplo OR #SSM.S.c1.done);

       

    4: // V90SM MC_PositioningAxis Salve+Master jog towards home position

        IF "DI OUT P01".V90SM.DRV.Support.ActPos <= 10.0 THEN

            "DI OUT P01".V90SM.DRV.Support.SetVelo := 0.1;

            "DI OUT P01".V90SM.DRV.Support.Cmd_MoveJogWP := FALSE;

            "DI OUT P01".V90SM.DRV.Support.Cmd_MoveJogHP := "HMI KEY".P01.V90SM.F11_Enable_HP AND #SSM.S.stepa;

            IF "DI OUT P01".V90SM.DRV.Support.ActPos < "DI OUT P01".V90SM.DRV.Support.WindowRange THEN

                "DI OUT P01".V90SM.DRV.Support.Cmd_MoveJogHP := "DI OUT P01".V90SM.DRV.Support.Cmd_MoveJogWP := FALSE;

                #SSM.S.stepd := "DI OUT P01".V90SM.DRV.Support.LampOFF AND "E01 V90SM LiBa";

            END_IF;

        ELSIF "DI OUT P01".V90SM.DRV.Support.ActPos > 10.0 THEN

            "DI OUT P01".V90SM.DRV.Support.Cmd_MoveJogHP := FALSE;

            "DI OUT P01".V90SM.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.V90SM.F12_Enable_WP AND #SSM.S.stepa AND NOT #SSM.S.steplo;

        END_IF;

       

    5: // Query V90SM V90SM MC_PositioningAxis Salve + Master

        #SSM.S.c1.set := 25;

        #SSM.S.stepd := "DI OUT P01".V90SM.DRV.Support.HomeDone AND #SSM.S.c1.done OR "DI OUT P01".V90SM.DRV.Support.HomeDone AND NOT (#SSM.S.steplo OR #SSM.S.c1.done);

        #SSM.S.c1.start := "HMI KEY".P01.V90SM.F5_Set_Ref_Point := NOT #SSM.S.stepd;

       

    6: // V90S MC_SynchronousAxis Slave jog towards home position

        IF "DI OUT P01".V90S.DRV.Support.ActPos <= 10.0 THEN

            "DI OUT P01".V90S.DRV.MC_MoveJog.Velocity := 0.1;

            "DI OUT P01".V90S.DRV.Support.Cmd_MoveJogWP := FALSE;

            "DI OUT P01".V90S.DRV.Support.Cmd_MoveJogHP := "HMI KEY".P01.V90S.F11_Enable_HP AND #SSM.S.stepa;

            IF "DI OUT P01".V90S.DRV.Support.ActPos < "DI OUT P01".V90S.DRV.Support.WindowRange THEN

                "DI OUT P01".V90S.DRV.Support.Cmd_MoveJogHP := "DI OUT P01".V90S.DRV.Support.Cmd_MoveJogWP := FALSE;

                #SSM.S.stepd := "DI OUT P01".V90S.DRV.Support.LampOFF AND "E01 V90S LiBa";

            END_IF;

        ELSIF "DI OUT P01".V90S.DRV.Support.ActPos > 10.0 THEN

            "DI OUT P01".V90S.DRV.Support.Cmd_MoveJogHP := FALSE;

            "DI OUT P01".V90S.DRV.Support.Cmd_MoveJogWP := "HMI KEY".P01.V90S.F12_Enable_WP AND #SSM.S.stepa AND NOT #SSM.S.steplo;

        END_IF;

       

    7: // Query V90S MC_SynchronousAxis Slave

        #SSM.S.c1.set := 25;

        #SSM.S.stepd := "DI OUT P01".V90S.DRV.Support.HomeDone AND #SSM.S.c1.done OR "DI OUT P01".V90S.DRV.Support.HomeDone AND NOT (#SSM.S.steplo OR #SSM.S.c1.done);

        #SSM.S.c1.start := "HMI KEY".P01.V90S.F5_Set_Ref_Point := NOT #SSM.S.stepd;

       

    8: // Drive velocity pre-setting

        IF #SSM.S.stepfc THEN

            "DI OUT P01".V90S.DRV.MC_MoveJog.Velocity :=

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

            "DI OUT P01".V90M.DRV.Support.SetVelo := 0.0; // mm/s

            #SSM.S.stepd := TRUE;

        END_IF;

       

    9: // Query P01 home at home position

        "HMI KEY".P01.V90S.F22_Start_Gearing := NOT "DI OUT P01".V90S.DRV.MC_GearIn.InGear;

        "DI MAIN P01".M00.HomPosRun := "HMI KEY".P01.V90S.F22_Start_Gearing := NOT "DI MAIN P01".M00.HomPosIS OR #SSM.S.steplo;

END_CASE;