Call Main-Safety-Block OB123

FB32 SEQ1 P01 CEA Hydraulic Press - SEQ1 ram single stroke (RSS)

 

 

 

Netzwerk 1: Execute SEQ1

 

#SSM1(STEP_PLS := "HMI KEY".P01.GLB.F17_StepPls,

      STEP_MNS := "HMI KEY".P01.GLB.F18_StepMns,

      GOTO_STEP := "HMI KEY".P01.GLB.F19_GoToStep,

      GOTO_STEP_NO := "HMI KEY".P01.GLB.GoToStep,

      MAX_STEP := 8);

#ACT_STEP := #SSM1.S.stepact;

#SSM1.S.DlyStart.PT := t#700ms;

 

 

 

Netzwerk 2: Step jump distributor

 

CASE #SSM1.S.stepact OF

    0: // Waiting for SEQ1 to start

        "M01 SSM1 Active" := FALSE;

        #SSM1.S.stepd := #SSM1.S.steps AND "E01 AutoMod RSS";

       

    1: // Query C27 WP

        "M01 SSM1 Active" :=

        "DI OUT P01".Y09.CmdExe_WP :=

        "DI OUT P01".Y04.CmdExe_WP :=

        "DI OUT P01".Y05.CmdExe_WP :=

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

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

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

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

        #SSM1.S.c1.start := "DI OUT P01".C27.FB_WP;

        #SSM1.S.c1.set := 30;

        #SSM1.S.stepd := "M01 RdyToStart" AND #SSM1.S.c1.done;

       

    2: // Ram rapid traverse down to slow WS1

        IF #SSM1.S.stepfc 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.0;

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

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

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

        END_IF;

        // Y09 WP, Y04 WP, Y05 WP, Y08 WP, Y03 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".Y05.CmdExe_WP := "HMI KEY".P01.Y05.F12_Enable_WP;

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

        "DI OUT P01".Y03.CmdExe_WP :=

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

        // Query end position

        "DI OUT P01".C13.CmdExe_WP :=

        "HMI KEY".P01.C13.F12_Enable_WP

        AND "DI OUT P01".Y09.LampWP

        AND "DI OUT P01".Y04.LampWP

        AND "DI OUT P01".Y05.LampWP

        AND "DI OUT P01".Y08.LampWP;

       

        #SSM1.S.stepd := "DI OUT P01".MaPa.Support.Slow_WS1_reached AND NOT "DIF_Main_Safety_RTG1".FB_SAFE_P01.A01_C13_WP.FEEDBACK;

       

    3: // Ram slowing down bevore WS1

        IF #SSM1.S.stepfc THEN

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

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

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

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

        END_IF;

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

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

        "M01 YP42 Linear CmdExe" :=

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

        IF "DI OUT P01".MaPa.Support.Slow_BDC_reached AND NOT "DIF_Main_Safety_RTG1".FB_SAFE_P01.A01_C13_WP.FEEDBACK THEN

            #SSM1.S.stepd := TRUE;

        END_IF;

       

    4: // Start pressing time at WS2

        IF #SSM1.S.stepfc THEN

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

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

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

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

            #SSM1.S.c2.set := 40;

        END_IF;

        "M01 YP42 Linear CmdExe" := TRUE;

        #SSM1.S.c2.start := "DI OUT P01".MaPa.Set_Force_kN < "DI OUT P01".P421_PEW_SCAL_kN.Support.Out_Scale;

        // Waiting for pressing time elapsed

        IF #SSM1.S.c2.done THEN

            #SSM1.S.stepd := TRUE;

            "ParallelismControl"(ENABLE := #SSM1.S.steps,

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

                                 PARA_FAULT => #Sav_ParaFault);

        END_IF;

       

    5: // Start decompression

        IF #SSM1.S.stepfc THEN

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

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

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

            #SSM1.S.c1.set := 30; // 4sec

        END_IF;

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

        "DI OUT P01".C13.CmdExe_HP :=

        "DI OUT P01".C13.CmdExe_WP :=

        "DI OUT P01".Y09.CmdExe_WP :=

        "DI OUT P01".Y08.CmdExe_WP :=

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

       

        #SSM1.S.c1.start := "DIF_Main_Safety_RTG1".FB_SAFE_P01.A01_C13_HP.FEEDBACK;

        #SSM1.S.stepd := #SSM1.S.c1.done;

       

    6: // Start ram creeping mode up to RSS

        IF #SSM1.S.stepfc THEN

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

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

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

        END_IF;

        // C13 HP, Y09 WP, Y04 WP, Y05 HP, Y08 WP, Y03 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_HP :=

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

        // Query end position

        "DI OUT P01".C13.CmdExe_HP :=

        "HMI KEY".P01.C13.F11_Enable_HP

        AND "DI OUT P01".Y09.LampWP

        AND "DI OUT P01".Y04.LampWP

        AND "DI OUT P01".Y08.LampWP;

        // Query ram retreat reached

        #SSM1.S.stepd :=

        NOT "DIF_Main_Safety_RTG1".FB_SAFE_P01.A01_C13_HP.FEEDBACK

        AND "DI OUT P01".MaPa.Support.RRT_reached;

       

    7: // Start ram rapid traverse up

        IF #SSM1.S.stepfc THEN

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

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

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

        END_IF;

        #SSM1.S.stepd := "DI OUT P01".MaPa.Support.Slow_TDC_reached;

       

    8: // Star ram slowing down bevore TDC

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

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

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

        // Query TDC reached   

        IF "DI OUT P01".MaPa.Support.TDC_reached THEN

            "DI OUT P01".C13.CmdExe_HP :=

            "DI OUT P01".Y09.CmdExe_WP :=

            "DI OUT P01".Y04.CmdExe_WP :=

            "DI OUT P01".Y08.CmdExe_WP :=

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

            #FLT."3_FAULT_00_15".%X0 := #Sav_ParaFault;

            "M01 SSM1 Done" := TRUE;

        END_IF;

END_CASE;

 

 

Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO