Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FB38 MAN P01 P01 Manual mode handling

 

 

 

Netzwerk 1: S210_A1 axis Roller-Picker-2D - enable

IF #ST_MANU AND NOT #SUPPORT_SEQ THEN

    IF "DI MAIN GLB".M00.CmpltMaRun_Imp THEN

        #S210_A1.ManualVelocity_1 := "DI OUT P01".S210_A1.DRV.Support.SetVelo / 3.6; // [%]

    ELSE

        // Set value velocity

        "DI OUT P01".S210_A1.DRV.Support.SetVelo := #S210_A1.ManualVelocity_1 * 3.6;

        // Jog slow WP (button function)

        #S210_A1.CmdExe_slow_WP := "HMI KEY".P01.S210_A1.F3_Jog_slow_WP;

        // Jog slow HP (button function)

        #S210_A1.CmdExe_slow_HP := "HMI KEY".P01.S210_A1.F4_Jog_slow_HP;

    END_IF;

END_IF;

// Enabling HP

"HMI KEY".P01.S210_A1.F11_Enable_HP :=

"DI OUT P01".S210_A1.DRV.Support.InOperation // ready

AND "E01 RP2D LimS_HP" // Pos > 0.1

AND "DI OUT P01".S210_A1.DRV.Support.ActPos >= "DI OUT P01".S210_A1.DRV.Support.SW_EndLim_MinPos //(not by modulo on)

AND NOT ("DI OUT P01".S210_A1.DRV.Support.SW_EndLim_Min OR "DI OUT P01".S210_A1.Com_FLT);

 

// Enabling WP

"HMI KEY".P01.S210_A1.F12_Enable_WP :=

"DI OUT P01".S210_A1.DRV.Support.InOperation // ready

AND "E01 RP2D LimS_WP"

AND "DI OUT P01".S210_A1.DRV.Support.ActPos <= "DI OUT P01".S210_A1.DRV.Support.SW_EndLim_MaxPos // (not by modulo on)

AND NOT ("DI OUT P01".S210_A1.DRV.Support.SW_EndLim_Max OR "DI OUT P01".S210_A1.Com_FLT);

 

 

 

Netzwerk 2: S210_A2 axis Roller-Picker-2D - enable

IF #ST_MANU AND NOT #SUPPORT_SEQ THEN

    IF "DI MAIN GLB".M00.CmpltMaRun_Imp THEN

        #S210_A2.ManualVelocity_1 := "DI OUT P01".S210_A2.DRV.Support.SetVelo / 3.6; // [%]

    ELSE

        // Set value velocity

        "DI OUT P01".S210_A2.DRV.Support.SetVelo := #S210_A2.ManualVelocity_1 * 3.6;

        // Jog slow WP (button function)

        #S210_A2.CmdExe_slow_WP := "HMI KEY".P01.S210_A2.F3_Jog_slow_WP;

        // Jog slow HP (button function)

        #S210_A2.CmdExe_slow_HP := "HMI KEY".P01.S210_A2.F4_Jog_slow_HP;

    END_IF;

END_IF;

// Enabling HP

"HMI KEY".P01.S210_A2.F11_Enable_HP :=

"DI OUT P01".S210_A2.DRV.Support.InOperation // ready

AND "E01 RP2D LimS_HP" // Pos > 0.1

AND "DI OUT P01".S210_A2.DRV.Support.ActPos >= "DI OUT P01".S210_A2.DRV.Support.SW_EndLim_MinPos //(not by modulo on)

AND NOT ("DI OUT P01".S210_A2.DRV.Support.SW_EndLim_Min OR "DI OUT P01".S210_A2.Com_FLT);

 

// Enabling WP

"HMI KEY".P01.S210_A2.F12_Enable_WP :=

"DI OUT P01".S210_A2.DRV.Support.InOperation // ready

AND "E01 RP2D LimS_WP"

AND "DI OUT P01".S210_A2.DRV.Support.ActPos <= "DI OUT P01".S210_A2.DRV.Support.SW_EndLim_MaxPos // (not by modulo on)

AND NOT ("DI OUT P01".S210_A2.DRV.Support.SW_EndLim_Max OR "DI OUT P01".S210_A2.Com_FLT);

 

 

 

Netzwerk 3: Cartesian Roller-Picker-2D - enable

IF #ST_MANU AND NOT #SUPPORT_SEQ THEN

    // Kinematics GroupMoveStop GroupMoveInterupt GroupMoveContinue

    IF "HMI KEY".P01.RP2D.F5_GroupStop THEN

        "DI OUT P01".RP2D.DRV.Support.Cmd_MoveCircularAbsolute := "DI OUT P01".RP2D.DRV.Support.Cmd_MoveCircularRelative :=

        "DI OUT P01".RP2D.DRV.Support.Cmd_MoveLinearAbsolute := "DI OUT P01".RP2D.DRV.Support.Cmd_MoveLinearRelative :=

        #RP2D.CmdExe_MovLinAbso := #RP2D.CmdExe_MovLinRela := #RP2D.CmdExe_MovCirAbso := #RP2D.CmdExe_MovCirRela := FALSE;

    END_IF;

END_IF;

// Enabling Kinematics

"HMI KEY".P01.RP2D.F9_Enabled_WP := "DI OUT P01".RP2D.DRV.Support.InOperation AND NOT ("DI OUT P01".RP2D.Com_FLT OR "DI MAIN GLB".M00.CmpltMaOFF_Imp)

AND "DI OUT P01".RP2D.DRV.Support.Status.x.Position <= "DI OUT P01".RP2D.DRV.Support.SW_EndLim_MaxPos

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

AND "DI OUT P01".S210_A2.DRV.Support.HomeDone;

 

// Stop GroupInerrupt and GroupContinue

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

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

END_IF;

// Execute MoveLinearAbsolute

IF "DI OUT P01".RP2D.DRV.MC_MoveLinearAbsolute.Done OR NOT "HMI KEY".P01.RP2D.F9_Enabled_WP THEN

    #RP2D.CmdExe_MovLinAbso := FALSE;

END_IF;

// Stop execute MoveLinearRelative

IF "DI OUT P01".RP2D.DRV.MC_MoveLinearRelative.Done OR NOT "HMI KEY".P01.RP2D.F9_Enabled_WP THEN

    #RP2D.CmdExe_MovLinRela := FALSE;

END_IF;

// Stop execute MoveCircularAbsolute

IF "DI OUT P01".RP2D.DRV.MC_MoveCircularAbsolute.Done OR NOT "HMI KEY".P01.RP2D.F9_Enabled_WP THEN

    #RP2D.CmdExe_MovCirAbso := FALSE;

END_IF;

// Stop execute MoveCircularRelative

IF "DI OUT P01".RP2D.DRV.MC_MoveCircularRelative.Done OR NOT "HMI KEY".P01.RP2D.F9_Enabled_WP THEN

    #RP2D.CmdExe_MovCirRela := FALSE;

END_IF;

 

 

 

Netzwerk 4: M100 vacuum gripper pump (RP2D) - enable

"HMI KEY".P01.M100.F12_Enable_WP := NOT ("DI OUT P01".M100.HALT_01 OR "DI OUT P01".M100.Com_FLT);

// Manual off switching

IF NOT "HMI KEY".P01.M100.F12_Enable_WP OR "HMI KEY".P01.M100.F1_HP THEN

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

END_IF;

 

 

 

Netzwerk 5: V100 vacuum gripper (RP2D) - enable

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

 

 

 

Netzwerk 6: C100 swivelling vacuum gripper - enable

"HMI KEY".P01.C100.F11_Enable_HP := "HMI KEY".P01.C100.F12_Enable_WP := NOT "DI OUT P01".C100.Com_FLT AND "E00 AirPressure OK";

 

 

 

Netzwerk 7: C101 tow arm intermediate cylinder - enable

"HMI KEY".P01.C101.F11_Enable_HP := "HMI KEY".P01.C101.F12_Enable_WP := NOT "DI OUT P01".C101.Com_FLT AND "E00 AirPressure OK";

 

 

 

Netzwerk 8: C102 pull push cylinder - enable

"HMI KEY".P01.C102.F11_Enable_HP := "HMI KEY".P01.C102.F12_Enable_WP := NOT "DI OUT P01".C102.Com_FLT AND "E00 AirPressure OK";

 

 

 

Netzwerk 9: Monitoring pneumatics manual operation ***

IF NOT #ST_MANU THEN

    RETURN;

ELSIF #MODULE_HP AND NOT #Support.HomPos_REg THEN

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

END_IF;

#Support.HomPos_REg := #MODULE_HP;

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

                                      PT := t#500ms);

#Support.HomPos_FEg := #SUPPORT_SEQ;

IF #SUPPORT_SEQ THEN

    RETURN;

END_IF;

 

 

 

Netzwerk 10: S210_A1 axis Roller-Picker-2D - execute

#S210_A1.CmdExe_slow_fast_WP :=

"DI OUT P01".S210_A1.DRV.Support.SetVelo > 0 AND "HMI KEY".P01.S210_A1.F12_Enable_WP AND #S210_A1.CmdExe_slow_WP;

#S210_A1.CmdExe_slow_fast_HP :=

"DI OUT P01".S210_A1.DRV.Support.SetVelo > 0 AND "HMI KEY".P01.S210_A1.F11_Enable_HP AND #S210_A1.CmdExe_slow_HP;

// Halt moving

IF "HMI KEY".P01.S210_A1.F21_Halt THEN

    "HMI KEY".P01.S210_A1.F17_GoToAbsoPos := "HMI KEY".P01.S210_A1.F18_GoToRelaPos := #S210_A1.CmdExe_slow_fast_WP := #S210_A1.CmdExe_slow_fast_HP := FALSE;

END_IF;

 

 

 

Netzwerk 11: S210_A2 axis Roller-Picker-2D - execute

#S210_A2.CmdExe_slow_fast_WP :=

"DI OUT P01".S210_A2.DRV.Support.SetVelo > 0 AND "HMI KEY".P01.S210_A2.F12_Enable_WP AND #S210_A2.CmdExe_slow_WP;

#S210_A2.CmdExe_slow_fast_HP :=

"DI OUT P01".S210_A2.DRV.Support.SetVelo > 0 AND "HMI KEY".P01.S210_A2.F11_Enable_HP AND #S210_A2.CmdExe_slow_HP;

// Halt moving

IF "HMI KEY".P01.S210_A2.F21_Halt THEN

    "HMI KEY".P01.S210_A2.F17_GoToAbsoPos := "HMI KEY".P01.S210_A2.F18_GoToRelaPos := #S210_A2.CmdExe_slow_fast_WP := #S210_A2.CmdExe_slow_fast_HP := FALSE;

END_IF;

 

 

 

Netzwerk 12: Cartesian Roller-Picker-2D - execute

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

    #RP2D.CmdExe_GroupContinue := "HMI KEY".P01.RP2D.F9_Enabled_WP;

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

    #RP2D.CmdExe_GroupInterrupt := "HMI KEY".P01.RP2D.F9_Enabled_WP;

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

    #RP2D.CmdExe_MovLinAbso := "HMI KEY".P01.RP2D.F9_Enabled_WP;

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

    #RP2D.CmdExe_MovLinRela := "HMI KEY".P01.RP2D.F9_Enabled_WP;

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

    #RP2D.CmdExe_MovCirAbso := "HMI KEY".P01.RP2D.F9_Enabled_WP;

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

    #RP2D.CmdExe_MovCirRela := "HMI KEY".P01.RP2D.F9_Enabled_WP;

END_IF;

 

 

 

Netzwerk 13: M100 vacuum gripper pump (RP2D) - 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;

 

 

 

Netzwerk 14: V100 vacuum gripper (RP2D) - execute

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

AND NOT "HMI KEY".P01.V100.F1_HP AND ("HMI KEY".P01.V100.F2_WP OR "DI OUT P01".V100.FB_WP);

 

 

 

Netzwerk 15: C100 swivelling vacuum gripper - execute

"DI OUT P01".C100.VLV_OC.CmdExe_WP := "HMI KEY".P01.C100.F12_Enable_WP

AND NOT "HMI KEY".P01.C100.F1_HP AND ("HMI KEY".P01.C100.F2_WP OR "DI OUT P01".C100.FB_WP);

 

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

AND NOT "HMI KEY".P01.C100.F2_WP AND ("HMI KEY".P01.C100.F1_HP OR "DI OUT P01".C100.FB_HP);

 

 

 

Netzwerk 16: C101 tow arm intermediate cylinder - execute

DI OUT P01".C101.VLV_OC.CmdExe_WP := "HMI KEY".P01.C101.F12_Enable_WP

AND NOT "HMI KEY".P01.C101.F1_HP AND ("HMI KEY".P01.C101.F2_WP OR "DI OUT P01".C101.FB_WP);

 

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

AND NOT "HMI KEY".P01.C101.F2_WP AND ("HMI KEY".P01.C101.F1_HP OR "DI OUT P01".C101.FB_HP);

 

 

 

Netzwerk 17: C102 pull push cylinder - execute

"DI OUT P01".C102.VLV_OC.CmdExe_WP := "HMI KEY".P01.C102.F12_Enable_WP

AND NOT "HMI KEY".P01.C102.F1_HP AND ("HMI KEY".P01.C102.F2_WP OR "DI OUT P01".C102.FB_WP);

 

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

AND NOT "HMI KEY".P01.C102.F2_WP AND ("HMI KEY".P01.C102.F1_HP OR "DI OUT P01".C102.FB_HP);