FB39 OUT P01 : CEA Hydraulic Press - outputs |
|
|
|
Netzwerk 1: Call manual operation
#MANUAL(ST_MANU := "M00 HYD OpraTest", MODULE_HP := "HMI KEY".P01.GLB.F20_HomPos, SUPPORT_SEQ := "M01 RunHomPos" OR "M00 Ram OTC" AND NOT "M00 HYD OpraTest"); |
|
|
|
Netzwerk 2: Pre-Setting
// Linear encoder front left (master) #LinearEncoder_Master.PED_Pos := DWORD_TO_DINT(IN:= "E01 AE13 Mstr"); #LinearEncoder_Master.ActPos_Dint := (#LinearEncoder_Master.PED_Pos / #LinearEncoder_Master.Resolution + #LinearEncoder_Master.OffSet) / #LinearEncoder_Master.LE_Factor; #LinearEncoder_Master.ActPos_Real := DINT_TO_REAL(IN := #LinearEncoder_Master.ActPos_Dint); // Linear encoder front right (slave 1) #LinearEncoder_Slave1.PED_Pos := DWORD_TO_DINT(IN := "E01 AE13 Slv1"); #LinearEncoder_Slave1.ActPos_Dint := (#LinearEncoder_Slave1.PED_Pos / #LinearEncoder_Slave1.Resolution + #LinearEncoder_Slave1.OffSet) / #LinearEncoder_Slave1.LE_Factor; #LinearEncoder_Slave1.ActPos_Real := DINT_TO_REAL(IN := #LinearEncoder_Slave1.ActPos_Dint); // Linear encoder behind left (slave 2) #LinearEncoder_Slave2.PED_Pos := DWORD_TO_DINT(IN := "E01 AE13 Slv2"); #LinearEncoder_Slave2.ActPos_Dint := (#LinearEncoder_Slave2.PED_Pos / #LinearEncoder_Slave2.Resolution + #LinearEncoder_Slave2.OffSet) / #LinearEncoder_Slave2.LE_Factor; #LinearEncoder_Slave2.ActPos_Real := DINT_TO_REAL(IN := #LinearEncoder_Slave2.ActPos_Dint); |
|
|
|
Netzwerk 3: Ram cam tolerance
// TDC reached #MaPa.Support.TDC_reached := (#MaPa.Set_TDC_Pos - 100) < #LinearEncoder_Master.ActPos_Dint AND (#MaPa.Set_TDC_Pos + 100) > #LinearEncoder_Master.ActPos_Dint; // Slow down before TDC reached #MaPa.Support.Slow_TDC_reached := #LinearEncoder_Master.ActPos_Dint > #MaPa.Set_SlowTDC_Pos; // Slow down before BDC reached #MaPa.Support.Slow_BDC_reached := #LinearEncoder_Master.ActPos_Dint < #MaPa.Set_SlowBDC_Pos; // BDC reached #MaPa.Support.BDC_reached := (#MaPa.Set_BDC_Pos - 100) < #LinearEncoder_Master.ActPos_Dint AND (#MaPa.Set_BDC_Pos + 100) > #LinearEncoder_Master.ActPos_Dint; // WS1 reached #MaPa.Support.Slow_WS1_reached := #LinearEncoder_Master.ActPos_Dint < #MaPa.Set_WS1_Pos; // WS2 reached #MaPa.Support.WS2_reached := #LinearEncoder_Master.ActPos_Dint < #MaPa.Set_WS2_Pos; // RRT reached #MaPa.Support.RRT_reached := #LinearEncoder_Master.ActPos_Dint > #MaPa.Set_RRT_Pos; // OTC reached #MaPa.Support.OTC_reached := ABS_DINT(IN := #MaPa.Set_OTC_Pos - #LinearEncoder_Master.ActPos_Dint) < 200; IF #MaPa.Support.OTC_reached AND "M00 Ram OTC" THEN #Save_OTC_reached := TRUE; END_IF; |
|
|
|
Netzwerk 4: M01 Oil control pump
IF "E01 HYD off" OR NOT "HMI KEY".P01.M01.F12_Enable_WP THEN #M01.DRV.CmdExe_WP := FALSE; ELSIF "E01 HYD on" THEN #M01.DRV.CmdExe_WP := TRUE; END_IF; #M01(CMD_ONOFF := FALSE, FD_BACK := "E00 M01 Run", MCB := "E00 M01 MCB", ESTOP := "HMI KEY".P01.M01.F12_Enable_WP, ACK_FLT := "M00 ACK Imp", MOT_CW => "A00 M01 CR"); |
|
|
|
Netzwerk 5: M02 Main oil pump 1
#M02(CMD_ONOFF := #M01.DRV.DelyOn, FD_BACK := "E00 M02 Run", MCB := "E00 M02 MCB", ESTOP := "HMI KEY".P01.M02.F12_Enable_WP, ACK_FLT := "M00 ACK Imp", MOT_CW => "A00 M02 CR"); |
|
|
|
Netzwerk 6: M03 Main oil pump 2
#M03(CMD_ONOFF := #M02.DRV.DelyOn, FD_BACK := "E00 M03 Run", MCB := "E00 M03 MCB", ESTOP := "HMI KEY".P01.M03.F12_Enable_WP, ACK_FLT := "M00 ACK Imp", MOT_CW => "A00 M03 CR"); |
|
|
|
Netzwerk 7: RE04 Rotary encoder evaluation
#RE04(PED_IN := "E01 RE04 SLD":P, ADJUST_CMD := #RE04.Support.Adjustment_cmd, ADJUST_VAL := #RE04.Support.Adjustment_val, GEAR_NUM := 1, GEAR_DENO := 1, OFFSET := #RE04.Support.Off_Set, PAD_OUT => "E01 M04 SLD":P, ACT_VAL => #RE04.Support.Actual_Value);
#RE04_ActDiff_Val := #RE04.Support.Actual_Value - #RE04.Support.Adjustment_val; |
|
|
|
Netzwerk 8: M04 Stroke limitation drive
#M04(CMD_ONOFF := FALSE, MCB := "E00 M04 MCB", HALT_10 := #RE04_ActDiff_Val <> 0 AND ("HMI KEY".P01.M04.F12_Enable_WP OR "HMI KEY".P01.M04.F11_Enable_HP), ACK_FLT := "M00 ACK FP", HW_IO_STS_W1 := "+0-M04~PROFINET-Schnittstelle~Standard_Telegramm_1", HW_IO_CMD_W1 := "+0-M04~PROFINET-Schnittstelle~Standard_Telegramm_1"); |
|
|
|
Netzwerk 9: C13 Ram control valve
"DIF_Main_Safety_RTG1".FB_SAFE_P01.C13_CmdExe_WP := #C13.CmdExe_WP; #C13.LampWP := "A00 C13 WP"; "DIF_Main_Safety_RTG1".FB_SAFE_P01.C13_CmdExe_HP := #C13.CmdExe_HP; #C13.LampHP := "A00 C13 HP";
IF #Save_Ram_WS2_reached AND #MaPa.Support.TDC_reached THEN #Save_Ram_TDC_reached := #Save_Ram_WS2_reached := FALSE; #C13.Current := #C13.Current + 1; ELSIF #MaPa.Support.TDC_reached AND NOT #MaPa.Support.WS2_reached THEN #Save_Ram_TDC_reached := TRUE; ELSIF #Save_Ram_TDC_reached AND #MaPa.Support.WS2_reached THEN #Save_Ram_WS2_reached := TRUE; END_IF; |
|
|
|
Netzwerk 10: Y09 Ram safety valve
"DIF_Main_Safety_RTG1".FB_SAFE_P01.Y09_CmdExe_WP := #Y09.CmdExe_WP; #Y09.LampWP := "A00 Y09 WP"; |
|
|
|
Netzwerk 11: C27 Ram stow pin
#C27(CMD_WP := FALSE, CMD_HP := FALSE, FB_WP := "E00 C27 WP", FB_HP := "E00 C27 HP", RLS := TRUE, ACK_FLT := "M00 ACK Imp", VALV_WP => "A00 C27 WP", VALV_HP => "A00 C27 HP"); |
|
|
|
Netzwerk 12: Y01 Loading valve pressure maintenance at auxiliary tank (max 210 bar)
// 11QM1 WP when Max is not reached IF #P113_PEW_SCAL.Support.Out_Scale >= #P113_PEW_SCAL.Support.High_Lim THEN #P113_PEW_SCAL.Support.CmdExe_WP := TRUE; ELSIF #P113_PEW_SCAL.Support.Out_Scale <= #P113_PEW_SCAL.Support.High_Lim THEN #P113_PEW_SCAL.Support.CmdExe_WP := FALSE; END_IF; #Y01.LampWP := "A01 Y01 WP" := "HMI KEY".P01.Y01.F12_Enable_WP AND #Y01.CmdExe_WP AND NOT #P113_PEW_SCAL.Support.CmdExe_WP; |
|
|
|
Netzwerk 13: Y02 Relief valve pressure maintenance at auxiliary tank (min 140 bar)
#Y02.LampWP := "A01 Y02 WP" := "HMI KEY".P01.Y02.F12_Enable_WP AND #Y02.CmdExe_WP; |
|
|
|
Netzwerk 14: Y03 Ram pressure less down valve
#Y03.LampWP := "A01 Y03 WP" := "HMI KEY".P01.Y03.F12_Enable_WP AND #Y03.CmdExe_WP; |
|
|
|
Netzwerk 15: Y04 Pressure less circulation valve
#Y04_TOF(IN := "HMI KEY".P01.Y04.F12_Enable_WP AND #Y04.CmdExe_WP OR #M01.DRV.LampWP, PT := t#22s); #Y04.LampWP := "A01 Y04 WP" := #Y04_TOF.Q; |
|
|
|
Netzwerk 16: Y05 Ram oil filling valve
#Y05.LampWP := "A01 Y05 HP" := "HMI KEY".P01.Y05.F12_Enable_WP AND #Y05.CmdExe_WP; |
|
|
|
Netzwerk 17: Y08 Pressure standby valve
#Y08.LampWP := "A01 Y08 WP" := "HMI KEY".P01.Y08.F12_Enable_WP AND #Y08.CmdExe_WP; |
|
|
|
Netzwerk 18: YF41E Volume flow set value 0-100% prop. valve
#YF41E_PAW_VALU.Support.HMI_WP := "A01 YF41E Enbl" := #YF41E_PAW_VALU.Support.CmdExe_WP AND "HMI KEY".P01.YF41E.F12_Enable_WP;
#YF41E_PAW_RAMP(RAMP_TRGT := #YF41E_PAW_RAMP.Support.Target, RAMP_STEEP := #YF41E_PAW_RAMP.Support.Steep, RAMP_OUT => #YF41E_PAW_RAMP.Support.OutPut); #YF41E_PAW_VALU(REQ_VALUE := #YF41E_PAW_RAMP.Support.OutPut, H_LIM := 100.0, L_LIM := 0.0, OUT_PAW => "A01 YF41E PrV VF":P); #YF41E_PAW_VALU.Support.HMI_ShowValu := INT_TO_REAL(IN := WORD_TO_INT(IN := "A01 YF41E PrV VF")) / #YF41E_PAW_VALU.Support.LimRawFac * #YF41E_PAW_VALU.Support.HMI_FactScal; // Prop. valve automatically switching off by 0.0 value IF #YF41E_PAW_VALU.Support.HMI_ShowValu = 0.0 THEN #YF41E_PAW_VALU.Support.CmdExe_WP := FALSE; END_IF; |
|
|
|
Netzwerk 19: YP42 Force set value prop. valve after pump 1+2
IF "M01 YP42 Linear CmdExe" THEN "Iinearization"(SET_POINT := #P421_PEW_SCAL_kN.Support.Out_Scale, OUT_PUT => #YP42_PAW_RAMP.Support.OutPut); #YP42_PAW_VALU.Support.High_Lim := #MaPa.Max_Force_kN; ELSE #YP42_PAW_VALU.Support.High_Lim := 100.0; #YP42_PAW_RAMP.Support.Target := #P421_PEW_SCAL_kN.Support.Out_Scale * 100.0 / #MaPa.Max_Force_kN; END_IF; IF #YP42_PAW_RAMP.Support.Selection = 0 THEN #YP42_PAW_RAMP.Support.Steep := #MaPa.Force_Soft_Ramp; ELSIF #YP42_PAW_RAMP.Support.Selection = 1 THEN #YP42_PAW_RAMP.Support.Steep := #MaPa.Force_Middle_Ramp; ELSIF #YP42_PAW_RAMP.Support.Selection = 2 THEN #YP42_PAW_RAMP.Support.Steep := #MaPa.Force_Hard_Ramp; END_IF; #YP42_PAW_RAMP(RAMP_TRGT := #YP42_PAW_RAMP.Support.Target, RAMP_STEEP := #YP42_PAW_RAMP.Support.Steep, RAMP_OUT => #YP42_PAW_RAMP.Support.OutPut); #YP42_PAW_VALU(REQ_VALUE := #YP42_PAW_RAMP.Support.OutPut, H_LIM := #YP42_PAW_VALU.Support.High_Lim, L_LIM := 0.0, OUT_PAW => "A01 YP42 PrV Frc":P);
#YP42_PAW_VALU.Support.HMI_ShowValu := INT_TO_REAL(IN := WORD_TO_INT(IN := "A01 YP42 PrV Frc")) / #YP42_PAW_VALU.Support.LimRawFac * #YP42_PAW_VALU.Support.HMI_FactScal; |
|
|
|
Netzwerk 20: YP43E Ram rapid traverse down prop. valve set point
IF #YP43E_PAW_RAMP.Support.Selection = 0 THEN #YP43E_PAW_RAMP.Support.Steep := #MaPa.Rpd_Strk_Soft_Ramp; ELSIF #YP43E_PAW_RAMP.Support.Selection = 1 THEN #YP43E_PAW_RAMP.Support.Steep := #MaPa.Rpd_Strk_Middle_Ramp; ELSIF #YP43E_PAW_RAMP.Support.Selection = 2 THEN #YP43E_PAW_RAMP.Support.Steep := #MaPa.Rpd_Strk_Hard_Ramp; END_IF; #YP43E_PAW_VALU.Support.HMI_WP := "A01 YP43E Enbl" := "HMI KEY".P01.YP43E.F12_Enable_WP AND #YP43E_PAW_VALU.Support.CmdExe_WP;
#YP43E_PAW_RAMP(RAMP_TRGT := #YP43E_PAW_RAMP.Support.Target, RAMP_STEEP := #YP43E_PAW_RAMP.Support.Steep, RAMP_OUT => #YP43E_PAW_RAMP.Support.OutPut); #YP43E_PAW_VALU(REQ_VALUE := #YP43E_PAW_RAMP.Support.OutPut, H_LIM := 100.0, L_LIM := 0.0, OUT_PAW => "A01 YP43E PrV RTD":P); #YP43E_PAW_VALU.Support.HMI_ShowValu := INT_TO_REAL(IN := WORD_TO_INT(IN := "A01 YP43E PrV RTD")) / #YP43E_PAW_VALU.Support.LimRawFac * #YP43E_PAW_VALU.Support.HMI_FactScal; // Prop. valve automatically switching off by 0.0 value IF #YP43E_PAW_VALU.Support.HMI_ShowValu = 0.0 THEN #YP43E_PAW_VALU.Support.CmdExe_WP := FALSE; END_IF; |
|
|
|
Netzwerk 21: P113 Pressure sensor at auxiliary oil tank P1=140bar P2=210bar
#P113_PEW_SCAL(PEW_IN := "E01 P113 Prsur AT":P, H_LIM := #P113_PEW_SCAL.Support.High_Lim, L_LIM := #P113_PEW_SCAL.Support.Low_Lim, PEW_SCALE => #P113_PEW_SCAL.Support.Out_Scale); |
|
|
|
Netzwerk 22: T36 Oil temperature sensor
#T36_PEW_SCAL(PEW_IN := "E01 T36 PT100":P, H_LIM := 80.0, L_LIM := 0.0, PEW_SCALE => #T36_PEW_SCAL.Support.Out_Scale); |
|
|
|
Netzwerk 23: P421 Pressure sensor at piston chamber sensor
#P421_PEW_SCAL_kN(PEW_IN := "E01 P421 Prsur PiCh":P, H_LIM := 3150.0, L_LIM := 0.0, PEW_SCALE => #P421_PEW_SCAL_kN.Support.Out_Scale); #P421_PEW_SCAL_BAR(PEW_IN := "E01 P421 Prsur PiCh":P, H_LIM := 400.0, L_LIM := 0.0, PEW_SCALE => #P421_PEW_SCAL_BAR.Support.Out_Scale); |
|
|
|
Netzwerk 24: P423 Pressure sensor at annular space (piston rod)
#P423_PEW_SCAL(PEW_IN := "E01 P423 Prsur AnSp":P, H_LIM := 400.0, L_LIM := 0.0, PEW_SCALE => #P423_PEW_SCAL.Support.Out_Scale); |
|
|
|
Netzwerk 25: P4210 Pressure sensor after pump 1+2
#P4210_PEW_SCAL(PEW_IN := "E01 P4210 Prsur P1P2":P, H_LIM := 400.0, L_LIM := 0.0, PEW_SCALE => #P4210_PEW_SCAL.Support.Out_Scale); |
|