Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FB38 MAM P01 : Manual operation

 

 

 

Network 1: S200A1 Pick & Place Delta Robot - enable

IF #PLANT_MANU AND NOT #SUPPORT_SEQ THEN

    IF "DI MAIN GLB".M00.EntirePlant_Run_Imp THEN

        #S200A1.ManualVelocity_1 := "DI OUT P01".S200A1.DRV.Support.SetVelo; // m/min

    END_IF;

    // MoveJog

    "DI OUT P01".S200A1.DRV.Support.SetVelo := #S200A1.ManualVelocity_1;

    #S200A1.CmdExe_slow_fast_WP := "HMI KEY".P01.S200A1.F3_Jog_slow_WP AND "HMI KEY".P01.S200A1.F12_Enable_WP AND NOT "HMI KEY".P01.S200A1.F21_HALT;

    #S200A1.CmdExe_slow_fast_HP := "HMI KEY".P01.S200A1.F4_Jog_slow_HP AND "HMI KEY".P01.S200A1."F11_Enable_HP" AND NOT "HMI KEY".P01.S200A1.F21_HALT;

END_IF;

// Enable disable operation (Modulo active)

"HMI KEY".P01.S200A1.F11_Enable_HP := "DI OUT P01".S200A1.DRV.Support.InOperation AND NOT "DI OUT P01".S200A1.Common_FLT

AND "DI OUT P01".S200A1.DRV.Support.ActPos >= "DI OUT P01".S200A1.DRV.Support.SW_EndLim_MinPos;

"HMI KEY".P01.S200A1.F12_Enable_WP := "DI OUT P01".S200A1.DRV.Support.InOperation AND NOT "DI OUT P01".S200A1.Common_FLT

AND "DI OUT P01".S200A1.DRV.Support.ActPos <= "DI OUT P01".S200A1.DRV.Support.SW_EndLim_MaxPos;

 

 

 

Network 2: S200A2 Pick & Place Delta Robot - enable

IF #PLANT_MANU AND NOT #SUPPORT_SEQ THEN

    IF "DI MAIN GLB".M00.EntirePlant_Run_Imp THEN

        #S200A2.ManualVelocity_1 := "DI OUT P01".S200A2.DRV.Support.SetVelo; // m/min

    END_IF;

    // MoveJog

    "DI OUT P01".S200A2.DRV.Support.SetVelo := #S200A2.ManualVelocity_1;

    #S200A2.CmdExe_slow_fast_WP := "HMI KEY".P01.S200A2.F3_Jog_slow_WP AND "HMI KEY".P01.S200A2.F12_Enable_WP AND NOT "HMI KEY".P01.S200A2.F21_HALT;

    #S200A2.CmdExe_slow_fast_HP := "HMI KEY".P01.S200A2.F4_Jog_slow_HP AND "HMI KEY".P01.S200A2."F11_Enable_HP" AND NOT "HMI KEY".P01.S200A2.F21_HALT;

END_IF;

// Enable disable operation (Modulo active)

"HMI KEY".P01.S200A2.F11_Enable_HP := "DI OUT P01".S200A2.DRV.Support.InOperation AND NOT "DI OUT P01".S200A2.Common_FLT

AND "DI OUT P01".S200A2.DRV.Support.ActPos >= "DI OUT P01".S200A2.DRV.Support.SW_EndLim_MinPos;

"HMI KEY".P01.S200A2.F12_Enable_WP := "DI OUT P01".S200A2.DRV.Support.InOperation AND NOT "DI OUT P01".S200A2.Common_FLT

AND "DI OUT P01".S200A2.DRV.Support.ActPos <= "DI OUT P01".S200A2.DRV.Support.SW_EndLim_MaxPos;

 

 

 

Network 3: S200A3 Pick & Place Delta Robot - enable

IF #PLANT_MANU AND NOT #SUPPORT_SEQ THEN

    IF "DI MAIN GLB".M00.EntirePlant_Run_Imp THEN

        #S200A3.ManualVelocity_1 := "DI OUT P01".S200A3.DRV.Support.SetVelo; // m/min

    END_IF;

    // MoveJog

    "DI OUT P01".S200A3.DRV.Support.SetVelo := #S200A3.ManualVelocity_1;

    #S200A3.CmdExe_slow_fast_WP := "HMI KEY".P01.S200A3.F3_Jog_slow_WP AND "HMI KEY".P01.S200A3.F12_Enable_WP AND NOT "HMI KEY".P01.S200A3.F21_HALT;

    #S200A3.CmdExe_slow_fast_HP := "HMI KEY".P01.S200A3.F4_Jog_slow_HP AND "HMI KEY".P01.S200A3."F11_Enable_HP" AND NOT "HMI KEY".P01.S200A3.F21_HALT;

END_IF;

// Enable disable operation (Modulo active)

"HMI KEY".P01.S200A3.F11_Enable_HP := "DI OUT P01".S200A3.DRV.Support.InOperation AND NOT "DI OUT P01".S200A3.Common_FLT

AND "DI OUT P01".S200A3.DRV.Support.ActPos >= "DI OUT P01".S200A3.DRV.Support.SW_EndLim_MinPos;

"HMI KEY".P01.S200A3.F12_Enable_WP := "DI OUT P01".S200A3.DRV.Support.InOperation AND NOT "DI OUT P01".S200A3.Common_FLT

AND "DI OUT P01".S200A3.DRV.Support.ActPos <= "DI OUT P01".S200A3.DRV.Support.SW_EndLim_MaxPos;

 

 

 

Network 4: S200A4 Pick & Place Delta Robot - enable

IF #PLANT_MANU AND NOT #SUPPORT_SEQ THEN

    IF "DI MAIN GLB".M00.EntirePlant_Run_Imp THEN

        #S200A4.ManualVelocity_1 := "DI OUT P01".S200A4.DRV.Support.SetVelo; // m/min

    END_IF;

    // MoveJog

    "DI OUT P01".S200A4.DRV.Support.SetVelo := #S200A4.ManualVelocity_1;

    #S200A4.CmdExe_slow_fast_WP := "HMI KEY".P01.S200A4.F3_Jog_slow_WP AND "HMI KEY".P01.S200A4.F12_Enable_WP AND NOT "HMI KEY".P01.S200A4.F21_HALT;

    #S200A4.CmdExe_slow_fast_HP := "HMI KEY".P01.S200A4.F4_Jog_slow_HP AND "HMI KEY".P01.S200A4."F11_Enable_HP" AND NOT "HMI KEY".P01.S200A4.F21_HALT;

END_IF;

// Enable disable operation (Modulo active)

"HMI KEY".P01.S200A4.F11_Enable_HP := "DI OUT P01".S200A4.DRV.Support.InOperation AND NOT "DI OUT P01".S200A4.Common_FLT

AND "DI OUT P01".S200A4.DRV.Support.ActPos >= "DI OUT P01".S200A4.DRV.Support.SW_EndLim_MinPos;

"HMI KEY".P01.S200A4.F12_Enable_WP := "DI OUT P01".S200A4.DRV.Support.InOperation AND NOT "DI OUT P01".S200A4.Common_FLT

AND "DI OUT P01".S200A4.DRV.Support.ActPos <= "DI OUT P01".S200A4.DRV.Support.SW_EndLim_MaxPos;

 

 

 

Network 5: G120 Picking Control Conveyor - enable

IF #PLANT_MANU AND NOT #SUPPORT_SEQ THEN

    IF "DI MAIN GLB".M00.EntirePlant_Run_Imp THEN

        #G120.ManualVelocity_1 := "DI OUT P01".G120.DRV.Support.SetVelo; // m/min

    END_IF;

    "DI OUT P01".G120.DRV.Support.SetVelo := #G120.ManualVelocity_1;

    // MoveJog (toggle function)

    IF "HMI KEY".P01.G120.F19_Jog_fast_WP AND NOT #G120.Jog_fast_WP_REg THEN

        #G120.CmdExe_slow_fast_WP := NOT #G120.CmdExe_slow_fast_WP AND "HMI KEY".P01.G120.F12_Enable_WP;

        #G120.CmdExe_slow_fast_HP := FALSE;

    ELSIF "HMI KEY".P01.G120.F20_Jog_fast_HP AND NOT #G120.Jog_fast_HP_REg THEN

        #G120.CmdExe_slow_fast_HP := NOT #G120.CmdExe_slow_fast_HP AND "HMI KEY".P01.G120.F11_Enable_HP;

        #G120.CmdExe_slow_fast_WP := FALSE;

    END_IF;

    #G120.Jog_fast_WP_REg := "HMI KEY".P01.G120.F19_Jog_fast_WP;

    #G120.Jog_fast_HP_REg := "HMI KEY".P01.G120.F20_Jog_fast_HP;

END_IF;

// Enable disable operation (Modulo active)

"HMI KEY".P01.G120.F11_Enable_HP := "DI OUT P01".G120.DRV.Support.InOperation AND NOT ("DI OUT P01".G120.Common_FLT OR "DI MAIN P01".M00.FLT_ModuleFault_SR);

"HMI KEY".P01.G120.F12_Enable_WP := "DI OUT P01".G120.DRV.Support.InOperation AND NOT ("DI OUT P01".G120.Common_FLT OR "DI MAIN P01".M00.FLT_ModuleFault_SR);

// HALT moving

IF "DI OUT P01".G120.HALT_01 OR #G120.ManualVelocity_1 = 0.0 THEN

    #G120.CmdExe_slow_fast_HP := #G120.CmdExe_slow_fast_WP := FALSE;

END_IF;

 

 

 

Network 6: ROBOT Pick & Place - enable

"HMI KEY".P01.ROBOT.F8_Enabled := "DI OUT P01".ROBOT.DRV.Support.InOperation

AND "DI OUT P01".ROBOT.DRV.Support.KINpos_Enabled AND NOT ("DI OUT P01".ROBOT.Common_FLT OR "HMI KEY".P01.ROBOT.F5_GroupStop);

// Cancel GroupInerrupt and GroupContinue

IF NOT ("DI OUT P01".ROBOT.DRV.Support.GroupInterrupt AND "HMI KEY".P01.ROBOT.F8_Enabled) THEN

    #ROBOT.CmdExe_GroupContinue := #ROBOT.CmdExe_GroupInterrupt := FALSE;

END_IF;

// Execute MoveLinearAbsolute

IF "DI OUT P01".ROBOT.DRV.MC_MoveLinearAbsolute.Done OR NOT "HMI KEY".P01.ROBOT.F8_Enabled THEN

    #ROBOT.CmdExe_MoveLinearAbsolute := FALSE;

END_IF;

// Stop execute MoveLinearRelative

IF "DI OUT P01".ROBOT.DRV.MC_MoveLinearRelative.Done OR NOT "HMI KEY".P01.ROBOT.F8_Enabled THEN

    #ROBOT.CmdExe_MoveLinearRelative := FALSE;

END_IF;

// Stop execute MoveCircularAbsolute

IF "DI OUT P01".ROBOT.DRV.MC_MoveCircularAbsolute.Done OR NOT "HMI KEY".P01.ROBOT.F8_Enabled THEN

    #ROBOT.CmdExe_MoveCircularAbsolute := FALSE;

END_IF;

// Stop execute MoveCircularRelative

IF "DI OUT P01".ROBOT.DRV.MC_MoveCircularRelative.Done OR NOT "HMI KEY".P01.ROBOT.F8_Enabled THEN

    #ROBOT.CmdExe_MoveCircularRelative := FALSE;

END_IF;

 

 

 

Network 7: M100 Intermediate Belt Conveyor - enable

"HMI KEY".P01.M100.F12_Enable_WP := NOT "DI OUT P01".M100.Common_FLT AND "DI MAIN GLB".#M00.GLB_Estop;

// Manual off switching

IF NOT "HMI KEY".P01.M100.F12_Enable_WP OR "HMI KEY".P01.M100.F1_HP OR "DI MAIN GLB".M00.EntirePlant_STOP_Imp THEN

    "DI OUT P01".M100.DRV.CmdExe_WP := FALSE;

END_IF;

 

 

 

Network 8: Y100 Delta Robot Vacuum gripper - enable

"HMI KEY".P01.Y100.F12_Enable_WP := NOT "DI OUT P01".Y100.Common_FLT AND "E00 AirPressure OK";

 

 

 

Network 9: C100 Picking Control Camera - enable

"HMI KEY".P01.C100.F12_Enable_WP := NOT "DI OUT P01".TRACT_CONVEYOR.Common_FLT;

 

 

 

Network 10: Monitoring manual operation ***

IF NOT #PLANT_MANU THEN

    RETURN;

ELSIF #MODULE_HP AND NOT #Support.HomPos_REg THEN

    "DI MAIN P01".M00.Initialization := TRUE;

END_IF;

#Support.HomPos_REg := #MODULE_HP;

"DI MAIN P01".M00.TOF_EntireModule_STOP_Pulse(IN := NOT #SUPPORT_SEQ AND #Support.HomPos_FEg,

                                              PT := t#500ms);

#Support.HomPos_FEg := #SUPPORT_SEQ;

IF #SUPPORT_SEQ THEN

    RETURN;

END_IF;

 

 

 

Network 11: ROBOT Pick & Place Delta Robot - execute

IF "HMI KEY".P01.ROBOT.F7_GroupContinue AND "DI OUT P01".ROBOT.DRV.Support.GroupInterrupt THEN

    #ROBOT.CmdExe_GroupContinue := "HMI KEY".P01.ROBOT.F8_Enabled;

ELSIF "HMI KEY".P01.ROBOT.F6_GroupInterrupt THEN

    #ROBOT.CmdExe_GroupInterrupt := "HMI KEY".P01.ROBOT.F8_Enabled;

ELSIF "HMI KEY".P01.ROBOT.F1_MoveLinearAbsolute THEN

    #ROBOT.CmdExe_MoveLinearAbsolute := "HMI KEY".P01.ROBOT.F8_Enabled;

ELSIF "HMI KEY".P01.ROBOT.F2_MoveLinearRelative THEN

    #ROBOT.CmdExe_MoveLinearRelative := "HMI KEY".P01.ROBOT.F8_Enabled;

ELSIF "HMI KEY".P01.ROBOT.F3_MoveCircularAbsolute THEN

    #ROBOT.CmdExe_MoveCircularAbsolute := "HMI KEY".P01.ROBOT.F8_Enabled;

ELSIF "HMI KEY".P01.ROBOT.F4_MoveCircularRelative THEN

    #ROBOT.CmdExe_MoveCircularRelative := "HMI KEY".P01.ROBOT.F8_Enabled;

END_IF;

 

 

 

Network 12: M100 Intermediate Belt Conveyor - execute

IF "HMI KEY".P01.M100.F2_WP THEN

    "DI OUT P01".M100.DRV.CmdExe_WP := "HMI KEY".P01.M100.F12_Enable_WP;

END_IF;

 

 

 

Network 13: Y100 Delta Robot Vacuum gripper - execute

"DI OUT P01".Y100.VLV_O.CmdExe_WP:=

"HMI KEY".P01.Y100.F12_Enable_WP AND NOT "HMI KEY".P01.Y100.F1_HP AND ("HMI KEY".P01.Y100.F2_WP OR "DI OUT P01".Y100.FEEDBACK_WP);

 

 

 

Network 14: C100 Picking Control Camera - execute

"DI OUT P01".C100.ActorJog_WP := "HMI KEY".P01.C100.F12_Enable_WP AND "HMI KEY".P01.C100.F2_WP AND "E00 C100 PartAvailable";