Call Main-Safety-Block OB123

FB38 MAN P01 : CEA Hydraulic Press - Test and Manual Mode

 

 

 

Netzwerk 1: Pre-setting

 

#tmp_enable_hydraulic_test :=

"E01 HydOil Off Min"

AND "M00 EStp ok"

AND "DI OUT P01".T36_PEW_SCAL.Support.Out_Scale < 80.0 // oil temperature

AND "DI OUT P01".P113_PEW_SCAL.Support.Out_Scale < 220.0; // Auxiliary oil pressure tank

 

// Start stop Traverse-Control Procedure

#tmp_logical_link_outcome :=

"DI OUT P01".MaPa.Support.CmdExe_Ram_Dn

AND "DI OUT P01".MaPa.Set_Force_Pressing_kN > "DI OUT P01".P421_PEW_SCAL_kN.Support.Out_Scale

AND NOT "DI OUT P01".MaPa.Support.BDC_reached

AND "DI OUT P01".C27.FB_WP

AND "DI OUT P01".M01.DRV.LampWP

AND "DI OUT P01".M03.DRV.LampWP

AND "DI OUT P01".M02.DRV.LampWP

OR "DI OUT P01".MaPa.Support.CmdExe_Ram_Up AND NOT "DI OUT P01".MaPa.Support.Slow_TDC_reached

OR "DI OUT P01".MaPa.Support.CmdExe_Ram_Dn_PL AND NOT "DI OUT P01".MaPa.Support.BDC_reached

OR "DI OUT P01".MaPa.Support.CmdExe_Ram_OTC AND "M00 Ram OTC" AND NOT "DI OUT P01".Save_OTC_reached;

 

// Stop impuse semi automaic mode

#Support.RamHALT_Imp := NOT #tmp_logical_link_outcome AND #Support.RamHALT_FEg;

#Support.RamHALT_FEg := #tmp_logical_link_outcome;

 

 

 

Netzwerk 2: Overrun Traverse Control (OTC)

 

IF "DI OUT P01".MaPa.Support.CmdExe_Ram_OTC AND "M00 Ram OTC" AND NOT "DI OUT P01".Save_OTC_reached AND #tmp_logical_link_outcome AND NOT "M00 HYD OpraTest" THEN

    // Ram rapid traverse down OTC

    IF "DI OUT P01".LinearEncoder_Master.ActPos_Dint > "DI OUT P01".MaPa.Set_OTC_Pos THEN

        "DI OUT P01".YF41E_PAW_VALU.Support.CmdExe_WP :=

        "DI OUT P01".YP43E_PAW_VALU.Support.CmdExe_WP := TRUE;

        "DI OUT P01".YF41E_PAW_RAMP.Support.Steep := 2.5;

        "DI OUT P01".YF41E_PAW_RAMP.Support.Target := "DI OUT P01".MaPa.Set_VolFlow_OTC;

        "DI OUT P01".YP42_PAW_RAMP.Support.Target := "DI OUT P01".MaPa.Set_Pressure_bar;

        "DI OUT P01".YP43E_PAW_RAMP.Support.Target := "DI OUT P01".YP43E_PAW_RAMP.Support.Target;

        // C13 WP, Y09 WP, Y04 WP, Y05 WP, Y08 WP, Y03 HP

        "DI OUT P01".C13.CmdExe_HP := FALSE;

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

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

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

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

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

        "DI OUT P01".Y03.CmdExe_WP := FALSE;

    ELSE // Ram rapid traverse up OTC

        "DI OUT P01".YF41E_PAW_VALU.Support.CmdExe_WP :=

        "DI OUT P01".YP43E_PAW_VALU.Support.CmdExe_WP := TRUE;

        "DI OUT P01".YF41E_PAW_RAMP.Support.Steep := 2.5;

        "DI OUT P01".YF41E_PAW_RAMP.Support.Target := "DI OUT P01".MaPa.Set_VolFlow_OTC;

        "DI OUT P01".YP42_PAW_RAMP.Support.Target := "DI OUT P01".MaPa.Max_Pressure_bar;

        "DI OUT P01".YP43E_PAW_RAMP.Support.Target := 0.0;

        // C13 HP, Y09 WP, Y04 WP, Y05 HP, Y08 WP, Y03 HP

        "DI OUT P01".C13.CmdExe_WP := FALSE;

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

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

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

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

        "DI OUT P01".Y05.CmdExe_WP :=

        "DI OUT P01".Y03.CmdExe_WP := FALSE;

    END_IF;

END_IF;

#Support.RamOTC_TON(IN := "M00 Ram OTC" AND "DI OUT P01".Save_OTC_reached,

                    PT := t#5s);

IF #Support.RamOTC_TON.Q THEN

    "M00 Ram OTC" := "DI OUT P01".Save_OTC_reached := FALSE;

END_IF;

 

 

 

Netzwerk 3: Manual Mode

 

IF "M00 ManuCmpltMa run" THEN

    // Manual mode 2Hd ram down 2Hd + pressing

    IF "DI OUT P01".MaPa.Support.CmdExe_Ram_Dn AND NOT "DI OUT P01".MaPa.Support.BDC_reached

        AND "DI OUT P01".MaPa.Set_Force_Pressing_kN > "DI OUT P01".P421_PEW_SCAL_kN.Support.Out_Scale THEN

        "DI OUT P01".YF41E_PAW_VALU.Support.CmdExe_WP := TRUE;

        "DI OUT P01".YP43E_PAW_VALU.Support.CmdExe_WP := FALSE;

        "DI OUT P01".YF41E_PAW_RAMP.Support.Steep := 1.0;

        "DI OUT P01".YF41E_PAW_RAMP.Support.Target := "DI OUT P01".MaPa.Set_VolFlow_Down_2Hd;

        "DI OUT P01".YP43E_PAW_RAMP.Support.Target := 0.0;

        IF "DI OUT P01".MaPa.Max_RRT_Pos > "DI OUT P01".LinearEncoder_Master.ActPos_Dint THEN

            "M01 YP42 Linear CmdExe" := TRUE;

            "ParallelismControl"(ENABLE := "M01 YP42 Linear CmdExe",

                                 TOLERANCE := "DI OUT P01".MaPa.Set_ParaTolerance,

                                 PARA_FAULT => "DI MAIN P01".SEQ1.FLT."3_FAULT_00_15".%X0);

        END_IF;

        // C13 WP, Y09 WP, Y04 WP, Y05 WP, Y08 WP, Y03 HP

        "DI OUT P01".C13.CmdExe_HP := FALSE;

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

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

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

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

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

        "DI OUT P01".Y03.CmdExe_WP := FALSE;

        // Manual mode 2Hd ram up

    ELSIF "DI OUT P01".MaPa.Support.CmdExe_Ram_Up AND NOT "DI OUT P01".MaPa.Support.Slow_TDC_reached THEN

        "DI OUT P01".YF41E_PAW_VALU.Support.CmdExe_WP := TRUE;

        "DI OUT P01".YP43E_PAW_VALU.Support.CmdExe_WP := FALSE;

        "DI OUT P01".YF41E_PAW_RAMP.Support.Steep := 1.0;

        "DI OUT P01".YF41E_PAW_RAMP.Support.Target := "DI OUT P01".MaPa.Set_VolFlow_Up_2Hd;

        "DI OUT P01".YP42_PAW_RAMP.Support.Target :=

        "DI OUT P01".YP43E_PAW_RAMP.Support.Target := 0.0;

        // C13 HP, Y09 WP, Y04 WP, Y05 HP, Y08 WP, Y03 HP

        "DI OUT P01".C13.CmdExe_WP := FALSE;

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

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

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

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

        "DI OUT P01".Y05.CmdExe_WP :=

        "DI OUT P01".Y03.CmdExe_WP := FALSE;

        // Manual mode pressure less down

    ELSIF "E01 PrsurLes EnblKs" AND "DI OUT P01".MaPa.Support.CmdExe_Ram_Dn_PL AND NOT "DI OUT P01".MaPa.Support.BDC_reached THEN

        "DI OUT P01".YF41E_PAW_VALU.Support.CmdExe_WP := TRUE;

        "DI OUT P01".YP43E_PAW_VALU.Support.CmdExe_WP := FALSE;

        "DI OUT P01".YF41E_PAW_RAMP.Support.Steep := 0.1;

        "DI OUT P01".YF41E_PAW_RAMP.Support.Target := "DI OUT P01".MaPa.Set_VolFlow_PrsrLess;

        "DI OUT P01".YP42_PAW_RAMP.Support.Target := "DI OUT P01".MaPa.Mim_Pressure_bar;

        "DI OUT P01".YP43E_PAW_RAMP.Support.Target := 0.0;

        // C13 HP/WP, Y09 HP, Y04 WP, Y05 HP, Y08 HP, Y03 WP

        "DI OUT P01".C13.CmdExe_WP :=

        "DI OUT P01".C13.CmdExe_HP :=

        "DI OUT P01".Y09.CmdExe_WP := FALSE;

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

        "DI OUT P01".Y08.CmdExe_WP :=

        "DI OUT P01".Y05.CmdExe_WP := FALSE;

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

    END_IF;

END_IF;

// Halt moving up and down

IF #Support.RamHALT_Imp OR "DI MAIN GLB".TOF_ManuOff_Pulse.Q THEN

    "DI OUT P01".C13.CmdExe_WP :=

    "DI OUT P01".C13.CmdExe_HP :=

    "DI OUT P01".Y09.CmdExe_WP :=

    "DI OUT P01".Y03.CmdExe_WP :=

    "DI OUT P01".Y04.CmdExe_WP :=

    "DI OUT P01".Y08.CmdExe_WP :=

    "DI OUT P01".Y05.CmdExe_WP := FALSE;

END_IF;

 

 

 

Netzwerk 4: M01 Control pump

 

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

#tmp_enable_hydraulic_test AND NOT "DI OUT P01".M01.drv_com_flt;

 

 

 

Netzwerk 5: M02 Main pump 1

 

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

#tmp_enable_hydraulic_test AND NOT "DI OUT P01".M02.drv_com_flt;

IF NOT "HMI KEY".P01.M02.F12_Enable_WP THEN

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

END_IF;

 

 

 

Netzwerk 6: M03 Main pump 2

 

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

#tmp_enable_hydraulic_test AND NOT "DI OUT P01".M03.drv_com_flt;

IF NOT "HMI KEY".P01.M03.F12_Enable_WP THEN

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

END_IF;

 

 

 

Netzwerk 7: M04 Stroke limitation drive

 

// Jog fast WP (toggle function)

IF #ST_MANU AND NOT #SUPPORT_SEQ THEN

    IF "HMI KEY".P01.M04.F19_Jog_fast_WP AND NOT #M04.F19_Jog_fast_WP_REg THEN

        #M04.CmdExe_fast_WP := NOT #M04.CmdExe_slow_WP AND "DI OUT P01".RE04_ActDiff_Val < 0;

        #M04.CmdExe_fast_HP := FALSE;

        // Jog fast WP (toggle function)

    ELSIF "HMI KEY".P01.M04.F20_Jog_fast_HP AND NOT #M04.F20_Jog_fast_HP_REg THEN

        #M04.CmdExe_fast_HP := NOT #M04.CmdExe_fast_HP AND "DI OUT P01".RE04_ActDiff_Val > 0;

        #M04.CmdExe_fast_WP := FALSE;

        // Jog slow WP (button function)

    ELSIF "HMI KEY".P01.M04.F3_Jog_slow_WP OR "DI OUT P01".RE04.Support.Adjustment_cmd THEN

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

        #M04.CmdExe_fast_HP :=

        #M04.CmdExe_fast_WP := FALSE;

        // Jog slow WP (button function)

    ELSIF "HMI KEY".P01.M04.F4_Jog_slow_HP OR "DI OUT P01".RE04.Support.Adjustment_cmd THEN

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

        #M04.CmdExe_fast_HP :=

        #M04.CmdExe_fast_WP := FALSE;

    ELSE

        #M04.CmdExe_slow_HP :=

        #M04.CmdExe_slow_WP := FALSE;

    END_IF;

    // Jog fast WP HP (Assigning rising edge)

    #M04.F19_Jog_fast_WP_REg := "HMI KEY".P01.M04.F19_Jog_fast_WP;

    #M04.F20_Jog_fast_HP_REg := "HMI KEY".P01.M04.F20_Jog_fast_HP;

    // Set velocity value

    IF "DI OUT P01".M04.DRV.CmdExe_HP THEN

        "DI OUT P01".M04.DRV.SetTrgtPos := #M04.ManuVelocity_1;

    ELSIF "DI OUT P01".M04.DRV.CmdExe_WP THEN

        "DI OUT P01".M04.DRV.SetTrgtPos := #M04.ManuVelocity_1;

    END_IF;

END_IF;

// M04 slow down

IF ABS("DI OUT P01".RE04_ActDiff_Val) < 10 THEN

    IF "DI OUT P01".RE04_ActDiff_Val > 0 THEN

        #M04.ManuVelocity_1 := "DI OUT P01".M04.DRV.SetTrgtPos := -400.0;

    ELSE

        #M04.ManuVelocity_1 := "DI OUT P01".M04.DRV.SetTrgtPos := 400.0;

    END_IF;

END_IF;

// Enabling 13MA1 Stroke limitation motor WP

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

"E00 M04 BDC" AND "E00 M04 CFP"

AND NOT "DI MAIN GLB".TOF_ManuOff_Pulse.Q

AND "DI OUT P01".M04.DRV.SavWord = w#16#7002

AND #tmp_enable_hydraulic_test AND NOT "DI OUT P01".M04.drv_com_flt;

// Enabling 13MA1 Stroke limitation motor HP

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

"E00 M04 TDC" AND "E00 M04 CFP"

AND NOT "DI MAIN GLB".TOF_ManuOff_Pulse.Q

AND "DI OUT P01".M04.DRV.SavWord = w#16#7002

AND #tmp_enable_hydraulic_test AND NOT "DI OUT P01".M04.drv_com_flt;

 

 

 

Netzwerk 8: C13 Ram safety valve WP_HP

 

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

"DI OUT P01".C27.FB_WP

AND NOT "DI OUT P01".MaPa.Support.BDC_reached

AND #tmp_enable_hydraulic_test AND NOT "DIF_Main_Safety_RTG1".FB_SAFE_P01.A01_C13_WP.ERROR;

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

"DI OUT P01".C27.FB_WP

AND NOT "DI OUT P01".MaPa.Support.TDC_reached

AND #tmp_enable_hydraulic_test AND NOT "DIF_Main_Safety_RTG1".FB_SAFE_P01.A01_C13_HP.ERROR;

 

 

 

Netzwerk 9: Y09 Ram safety valve WP

 

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

#tmp_enable_hydraulic_test AND NOT "DIF_Main_Safety_RTG1".FB_SAFE_P01.A01_Y09_WP.ERROR;

 

IF NOT "HMI KEY".P01.Y09.F12_Enable_WP THEN

    "DI OUT P01".Y09.CmdExe_WP := FALSE;

END_IF;

 

 

 

Netzwerk 10: C27 Ram stow pin

 

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

#tmp_enable_hydraulic_test AND NOT "DIF_Main_Safety_RTG1".FB_SAFE_P01.A01_C27_RSP_HP.ERROR;

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

#tmp_enable_hydraulic_test AND NOT "DIF_Main_Safety_RTG1".FB_SAFE_P01.A01_C27_RSP_WP.ERROR;

 

IF NOT ("HMI KEY".P01.C27.F12_Enable_WP AND "HMI KEY".P01.C27.F11_Enable_HP) THEN

    "DI OUT P01".C27.VLV.CmdExe_WP :=

    "DI OUT P01".C27.VLV.CmdExe_WP := FALSE;

END_IF;

 

 

 

Netzwerk 11: Y01 Auxiliary tank loading valve (max 210 bar)

 

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

#tmp_enable_hydraulic_test AND NOT "DI OUT P01".M01.drv_com_flt;

IF NOT "HMI KEY".P01.Y01.F12_Enable_WP THEN

    "DI OUT P01".Y01.CmdExe_WP := FALSE;

END_IF;

 

 

 

Netzwerk 12: Y02 Auxiliary tank relief valve (min 140 bar)

 

"HMI KEY".P01.Y02.F12_Enable_WP := #tmp_enable_hydraulic_test;

IF NOT "HMI KEY".P01.Y02.F12_Enable_WP THEN

    "DI OUT P01".Y02.CmdExe_WP := FALSE;

END_IF;

 

 

 

Netzwerk 13: Y03 Ram pressure less down

 

"HMI KEY".P01.Y03.F12_Enable_WP := #tmp_enable_hydraulic_test AND "E00 DC24V";

IF NOT "HMI KEY".P01.Y03.F12_Enable_WP THEN

    "DI OUT P01".Y03.CmdExe_WP := FALSE;

END_IF;

 

 

 

Netzwerk 14: Y04 Oil pressure circulation valve

 

"HMI KEY".P01.Y04.F12_Enable_WP := #tmp_enable_hydraulic_test AND "E00 DC24V";

IF NOT "HMI KEY".P01.Y04.F12_Enable_WP THEN

    "DI OUT P01".Y04.CmdExe_WP := FALSE;

END_IF;

 

 

 

Netzwerk 15: Y05 Ram oil filling valve

 

"HMI KEY".P01.Y05.F12_Enable_WP := #tmp_enable_hydraulic_test AND "E00 DC24V";

IF NOT "HMI KEY".P01.Y05.F12_Enable_WP THEN

    "DI OUT P01".Y05.CmdExe_WP := FALSE;

END_IF;

 

 

 

Netzwerk 16: Y08 Oil pressure standby valve

 

"HMI KEY".P01.Y08.F12_Enable_WP := #tmp_enable_hydraulic_test AND "E00 DC24V";

IF NOT "HMI KEY".P01.Y08.F12_Enable_WP THEN

    "DI OUT P01".Y08.CmdExe_WP := FALSE;

END_IF;

 

 

 

Netzwerk 17: YF41E  Oil volume flow prop.valve 0-100%

 

"HMI KEY".P01.YF41E.F12_Enable_WP := #tmp_enable_hydraulic_test AND "E00 DC24V";

IF NOT "HMI KEY".P01.YF41E.F12_Enable_WP THEN

    "DI OUT P01".YF41E_PAW_VALU.Support.CmdExe_WP := FALSE;

END_IF;

 

 

 

Netzwerk 18: YP43E Ram rapid traverse down proportion valve setpoint 0-100%

 

"HMI KEY".P01.YP43E.F12_Enable_WP := #tmp_enable_hydraulic_test AND "E00 DC24V";

IF NOT "HMI KEY".P01.YP43E.F12_Enable_WP THEN

    "DI OUT P01".YP43E_PAW_VALU.Support.CmdExe_WP := FALSE;

END_IF;

 

 

 

[See next page..]

 

 

Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO