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; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|