```pascal // Block Type: FC // Block Number: 1870 // Original Network Languages: LAD, STL FUNCTION "PumpsControl" : Void { S7_Optimized_Access := 'TRUE' } VERSION : 0.1 VAR_TEMP mWaterPumpRun : Bool; mWaterPump2Run : Bool; mSyrupPumpRun : Bool; mProductPump1Run : Bool; mProductPump2Run : Bool; mCIP_Return_PumpRun : Bool; P1_Water_Pump_Fault : Bool; P5_Water_Pump_Fault : Bool; P2_Syrup_Pump_Fault : Bool; P3_Product_Pump_Fault : Bool; P4_Vacuum_Pump_Fault : Bool; P5_Rinse_Tank_Pump_Fault : Bool; P6_Recircul_Pump_Fault : Bool; P7_CIP_Return_Pump_Fault : Bool; mP1_CIP_RunPump : Bool; P7_CIP_Return_Pump : Bool; END_VAR #_1s : Bool; // Auto-generated temporary #_60S : Bool; // Auto-generated temporary BEGIN // Network 1: DelayStartP1 (Original Language: LAD) "mP1_CIP_RunPump" := "HMI_Device"."PPM303"."Out" AND "HMI_Device"."AVM362"."Out" AND "CIP_Program_Variables"."Status"."Started" AND "gBlenderCIPMode"; // Network 2: PPN301 Water Pump Run (Original Language: LAD) // Network 2 did not produce printable SCL code. // Network 3: DEOX Recovery completed (Original Language: LAD) IF ("AUX TRUE" AND "CIP_Program_Variables"."Status"."CausticRecoveryRun" AND "HMI_Digital"."LSN302L"."Filtered" AND "HMI_Digital"."LSN301L"."Filtered") OR ("AUX TRUE" AND "CIP_Program_Variables"."Status"."CausticRecoveryRun" AND "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_DoubleDeair" AND "HMI_Digital"."LSN301L"."Filtered") THEN "M110.0" := TRUE; END_IF; IF "AUX TRUE" AND "CIP_Program_Variables"."Status"."CausticRecoveryRun" THEN "M110.0" := FALSE; END_IF; // Network 4: Pump PPN301Ctrl (Original Language: LAD) // Network 4 did not produce printable SCL code. // Network 5: Pump PPN301Alarm (Original Language: LAD) "HMI_Device"."PPN301"."Alarm" := "mPPN301_Pump" OR "DI_PPN301_Ovrld"; // Network 6: Pump PPN301Start (Original Language: LAD) // P1 Water Pump "HMI_Device"."PPN301"."Out" := ("HMI_Device"."PPN301"."Alarm" AND "HMI_Device"."PPN301"."ManOn" AND "gIN_VoltageOk") OR ("HMI_Device"."PPN301"."Alarm" AND "mWaterPumpRun" AND "HMI_Device"."PPN301"."Auto" AND "gIN_VoltageOk"); // Network 7: Pump PPN301VFC (Original Language: LAD) IF "HMI_PID"."PPN301"."Config" THEN PPN301_VFC_Ctrl(); END_IF; // Network 8: Pump PPN305 (Original Language: STL) // PPN305 // --- BEGIN STL Network 8 --- A_BRACK O_BRACK A "HMI_Digital".LSN302L.Filtered A_BRACK O "gBlenderBlending" O "Procedure_Variables".Blender_Rinse.Running BRACKET L S5T#3S_500MS OnDelay "mDelayStartPPN305Blend" NOP_0 NOP_0 NOP_0 A "mDelayStartPPN305Blend" BRACKET O A_BRACK A "HMI_Digital".LSN302L.Filtered A "gBlenderCIPMode" A_BRACK ON M110.0 ON "CIP_Program_Variables".Status.CausticRecoveryRun BRACKET L S5T#10S OnDelay "mDelayStartPPN305" NOP_0 NOP_0 NOP_0 A "mDelayStartPPN305" BRACKET A "gBlenderStartPumps" O A "HMI_Digital".LSN302L.Filtered A "gDeairTank_Loading" O_BRACK A "HMI_Digital".LSN302L.Filtered A "gP_PPN305" L S5T#1S OffDelay "mDelayStopPPN305" NOP_0 NOP_0 NOP_0 A "mDelayStopPPN305" BRACKET O_BRACK A "HMI_Digital".LSN302L.Filtered A "gBlenderCIPMode" A "gIN_CIP_DrainRequest" A "gBlenderStartPumps" L S5T#20S OffDelay "mDelayCIPStopP5" NOP_0 NOP_0 NOP_0 A "mDelayCIPStopP5" BRACKET BRACKET A "HMI_Device".PPN305.Config = "mWaterPump2Run" A "mWaterPump2Run" AN "HMI_Blender_Parameters".Processor_Options.Blender_OPT._Simulation = "gOUT_PPN305_Run" // --- END STL Network 8 --- // Network 9: Pump PPN305 Alarm (Original Language: STL) // PPN305 // --- BEGIN STL Network 9 --- A_BRACK A_BRACK A "HMI_Device".PPN305.Out AN "DI_Water_Pump2_Contactor" L S5T#500MS OnDelay "mPPN305_Pump" NOP_0 NOP_0 NOP_0 A "mPPN305_Pump" BRACKET = "P5_Water_Pump_Fault" A "P5_Water_Pump_Fault" O "DI_Water_Pump2_Ovrld" O A "HMI_Device".PPN305.Alarm AN "gIN_ResetBtn" BRACKET A "HMI_Device".PPN305.Config AN "HMI_Blender_Parameters".Processor_Options.Blender_OPT._Simulation = "HMI_Device".PPN305.Alarm // --- END STL Network 9 --- // Network 10: Pump PPN305 Start (Original Language: LAD) // P5 Water Pump "HMI_Device"."PPN305"."Out" := ("HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_Device"."PPN305"."ManOn") OR ("HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "mWaterPump2Run" AND "HMI_Device"."PPN305"."Auto") OR ("gIN_VoltageOk" AND "HMI_Device"."PPN305"."ManOn" AND "HMI_Device"."PPN305"."Alarm") OR ("gIN_VoltageOk" AND "mWaterPump2Run" AND "HMI_Device"."PPN305"."Auto" AND "HMI_Device"."PPN305"."Alarm"); // Network 11: Pump PPP302 (Original Language: STL) // --- BEGIN STL Network 11 --- A_BRACK A_BRACK A_BRACK O "HMI_Digital".LAL_S3.Filtered O "gIN_SyrTank_MinLvl" BRACKET A_BRACK A "gBlenderProdMode" AN "gBlenderRinseMode" AN "Blender_Variables_Pers".gWaterRecipe A "gBlenderStartPumps" O "gP_PPP302" BRACKET O_BRACK A_BRACK O "HMI_Digital".LAL_S3.Filtered O "gIN_SyrTank_MinLvl" BRACKET A_BRACK O "gBlenderCIPMode" O A "gBlenderRinseMode" AN "System_RunOut_Variables".FastChangeOverActivated BRACKET A "gBlenderStartPumps" AN "HMI_Variables_Status".Procedures.CIP_SyrTankFloodRun AN "gCIP_SyrTank_Flood" = "gCIPRinseEnableRMP302" A "gCIPRinseEnableRMP302" L S5T#2S OffDelay "mDelayCIPStopP2" NOP_0 NOP_0 NOP_0 A "mDelayCIPStopP2" BRACKET BRACKET L S5T#600MS OnDelay "mDelayStartPPP302" NOP_0 NOP_0 NOP_0 A "mDelayStartPPP302" BRACKET A "HMI_Device".PPP302.Config = "mSyrupPumpRun" A "mSyrupPumpRun" AN "HMI_Blender_Parameters".Processor_Options.Blender_OPT._Simulation = "gOUT_PPP302_Run" // --- END STL Network 11 --- // Network 12: Pump PPP302 Syrup Pump alarm (Original Language: LAD) // Network 12 did not produce printable SCL code. // Network 13: Pump PPP302 Syrup Pump alarm (Original Language: LAD) "HMI_Device"."PPP302"."Alarm" := ("mPPP302_Pump" AND "HMI_Device"."PPP302"."Config") OR ("DI_PPP302_Ovrld" AND "HMI_Device"."PPP302"."Config"); // Network 14: Pump PPP302 Start (Original Language: LAD) // P2 Syrup Pump "HMI_Device"."PPP302"."Out" := ("HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_Device"."PPP302"."ManOn") OR ("HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "mSyrupPumpRun" AND "HMI_Device"."PPP302"."Auto") OR ("gIN_VoltageOk" AND "HMI_Device"."PPP302"."Alarm" AND "HMI_Device"."PPP302"."ManOn") OR ("gIN_VoltageOk" AND "HMI_Device"."PPP302"."Alarm" AND "mSyrupPumpRun" AND "HMI_Device"."PPP302"."Auto"); // Network 15: Pump PPP302 VFC (Original Language: LAD) IF "HMI_PID"."PPP302"."Config" THEN PPP302_VFC_Ctrl(); END_IF; // Network 16: (Original Language: LAD) // Network 16 did not produce printable SCL code. // Network 17: Product Pump 1 PPM303 Run (Original Language: LAD) // Network 17 did not produce printable SCL code. // Network 18: Product Pump 1 PPM303 Start (Original Language: LAD) // P3 Product Pump "HMI_Device"."PPM303"."Out" := ("HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND (("mProductPump1Run" AND "HMI_Device"."PPM303"."Auto") OR ("HMI_PID"."PPM303"."ManualControl"."ManOut" AND (("HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_BlendFillSystem" AND "HMI_Device"."PPM303"."ManOn") OR ("HMI_Device"."PPM303"."ManOn" AND "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_InverterProdPumpPPM303"))))) OR ("gIN_VoltageOk" AND "HMI_Device"."PPM303"."Alarm" AND (("mProductPump1Run" AND "HMI_Device"."PPM303"."Auto") OR ("HMI_PID"."PPM303"."ManualControl"."ManOut" AND (("HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_BlendFillSystem" AND "HMI_Device"."PPM303"."ManOn") OR ("HMI_Device"."PPM303"."ManOn" AND "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_InverterProdPumpPPM303"))))); // Network 19: Product Pump 1 PPM303 Ctrl (Original Language: LAD) // Network 19 did not produce printable SCL code. // Network 20: Product Pump 1 PPM303 Alarm (Original Language: LAD) "HMI_Device"."PPM303"."Alarm" := ("DI_PPM303_Ovrld" AND "HMI_Device"."PPM303"."Config") OR ("mPPM303_Pump" AND "HMI_Device"."PPM303"."Config"); // Network 21: Product Pump 1 PPM303 VFC (Original Language: LAD) IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_BlendFillSystem" OR "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_InverterProdPumpPPM303" THEN PPM303_VFC_Ctrl(); END_IF; // Network 22: Product Pump 2 PPM305 Run (Original Language: LAD) // Network 22 did not produce printable SCL code. // Network 23: Product Pump 2 PPM305 Start (Original Language: LAD) // P3 Product Pump "HMI_Device"."PPM305"."Out" := ("mProductPump2Run" AND "HMI_Device"."PPM305"."Auto") OR ("HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_BlendFillSystem" AND "HMI_Device"."PPM305"."ManOn" AND "HMI_PID"."PPM305"."ManualControl"."ManOut") OR ("HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_InverterProdPumpPPM303" AND "HMI_Device"."PPM305"."ManOn" AND "HMI_PID"."PPM305"."ManualControl"."ManOut"); // Network 24: Product Pump 2 PPM305 Alarm (Original Language: LAD) "HMI_Device"."PPM305"."Alarm" := ("DI_PPM303_Ovrld" AND "HMI_Device"."PPM305"."Config") OR ("gIN_ResetBtn" AND "HMI_Device"."PPM303"."Alarm" AND "HMI_Device"."PPM305"."Config"); // Network 25: Product Pump 2 PPM305 VFC (Original Language: LAD) IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_BlendFillSystem" OR "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_InverterProdPumpPPM303" THEN PPM305_VFC_Ctrl(); END_IF; // Network 26: Vacuum Pump PPN304 Run (Original Language: LAD) "gOUT_PPN304_Run" := ("HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "gBlenderProdMode" AND "gP_PPN304" AND "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_Deareation_Vacum" AND "HMI_Device"."PPN304"."Config" AND "HMI_Alarms"."gH_Message") OR ("HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "gBlenderProdMode" AND "gStillWaterByPassEn" AND "Procedure_Variables"."TN301_StartUp"."Done" AND "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_Deareation_Vacum" AND "HMI_Device"."PPN304"."Config" AND "HMI_Alarms"."gH_Message"); // Network 27: Vacuum Pump PPN304 Ctrl (Original Language: LAD) // Network 27 did not produce printable SCL code. // Network 28: Vacuum Pump PPN304 Alarm (Original Language: LAD) "HMI_Device"."PPN304"."Alarm" := ("HMI_Device"."PPN304"."Config" AND "mPPN304_Pump") OR ("HMI_Device"."PPN304"."Config" AND "DI_PPM305_Ovrld"); // Network 29: Vacuum Pump PPN304 Start (Original Language: LAD) // P4 Vacuum Pump "HMI_Device"."PPN304"."Out" := ("gIN_VoltageOk" AND "HMI_Device"."PPN304"."Alarm" AND "HMI_Device"."PPN304"."ManOn") OR ("gIN_VoltageOk" AND "HMI_Device"."PPN304"."Alarm" AND "gOUT_PPN304_Run" AND "HMI_Device"."PPN304"."Auto"); // Network 30: Recycle Pump PPM306 Run (Original Language: LAD) "gOUT_PPM306_Run" := ("gBlendRecircActive" AND "gBlenderProdMode" AND "gBlenderRinseMode" AND "gBlenderMinLevel" AND "HMI_Device"."PPM306"."Config") OR ("gBlenderProdMode" AND "gBlenderRinseMode" AND "gBlenderStartPumps" AND "gBlenderMinLevel" AND "HMI_Device"."PPM306"."Config"); // Network 31: Recycle Pump PPM306 Start (Original Language: LAD) // P6 Recirculation Pump "HMI_Device"."PPM306"."Out" := ("gIN_VoltageOk" AND "HMI_Device"."PPM306"."ManOn" AND "HMI_Device"."PPM306"."Alarm") OR ("gIN_VoltageOk" AND "gOUT_PPM306_Run" AND "HMI_Device"."PPM306"."Auto" AND "HMI_Device"."PPM306"."Alarm"); // Network 32: Recycle Pump PPN306 Alarm (Original Language: LAD) "mPPM306_Pump"(IN := "HMI_Device"."PPM306"."Out" AND "DI_PPM306_Contactor", PT := S5T#1s); // TODO: Declarar "mPPM306_Pump" : TON; "HMI_Device"."PPM306"."Alarm" := ("mPPM306_Pump".Q AND "HMI_Device"."PPM306"."Config") OR ("gIN_ResetBtn" AND "HMI_Device"."PPM306"."Alarm") OR ("HMI_Device"."PPM306"."Config" AND "DI_PPM306_Ovrld"); // Network 33: CIP Pump PPM307 Run (Original Language: STL) // CIP Pump // --- BEGIN STL Network 33 --- A_BRACK O_BRACK AN "HMI_Blender_Parameters".Processor_Options.Blender_OPT._BlendFillSystem A "gProdAvailable" A_BRACK A "gBlenderMinLevel" A_BRACK A "gOUT_FillerMinimumLevel" A "gIN_Filler1ProductReq" O "gBlendRecircActive" BRACKET O AN "gPrdTank_Empty" A_BRACK O "Procedure_Variables".TM301_RunOut.Latch O "System_RunOut_Variables".ProdPipe_RunOut.Latch BRACKET BRACKET L S5T#4S OffDelay "mDelayProdStopPPM303" NOP_0 NOP_0 NOP_0 A "mDelayProdStopPPM303" BRACKET O AN "HMI_Blender_Parameters".Processor_Options.Blender_OPT._BlendFillSystem A "gBlenderMinLevel" A_BRACK O "Procedure_Variables".First_Production.Running O A "gWorkshopTest" A "Procedure_Variables".Blender_Run.Latch O A "Procedure_Variables".Blender_Run.Latch A "gEnRecircPHE" BRACKET O_BRACK AN "HMI_Blender_Parameters".Processor_Options.Blender_OPT._BlendFillSystem A "Procedure_Variables".Blender_Run.Latch A_BRACK O "gBlenderMinLevel" ON "gPrdTank_Empty" BRACKET A_BRACK AN "HMI_Variables_Status".Procedures.CIP_ProdTankFloodRun AN "gIN_CIP_TankFilling" A "gIN_FillerCIPRequest" A "gBlenderCIPMode" O AN "System_RunOut_Variables".FastChangeOverActivated A "gBlenderRinseMode" BRACKET L S5T#4S OffDelay "mDelayCIPStopPPM303" NOP_0 NOP_0 NOP_0 A "mDelayCIPStopPPM303" BRACKET O A "HMI_Digital".LSM302L.Filtered A "HMI_Blender_Parameters".Processor_Options.Blender_OPT._BlendFillSystem A_BRACK A "gBlenderProdMode" AN "gBlenderRinseMode" O A "Procedure_Variables".Blender_Run.Latch A_BRACK A "gBlenderCIPMode" A "gIN_CIP_CIPRunning" AN "HMI_Variables_Status".Procedures.CIP_ProdTankFloodRun AN "gIN_CIP_TankFilling" O A "gBlenderRinseMode" A "System_RunOut_Variables".In_Flr_WaterRinseRequest BRACKET A "HMI_Device".AVM362.Out BRACKET A "HMI_PID".PPM303.ManualControl.PidEnable O A "HMI_Digital".LSM302L.Filtered A "gP_PPM303" BRACKET A "HMI_Device".PPM307.Config = "mCIP_Return_PumpRun" A "mCIP_Return_PumpRun" AN "HMI_Blender_Parameters".Processor_Options.Blender_OPT._Simulation = "gOUT_PPM307_Run" // --- END STL Network 33 --- // Network 34: MIX - PPM307 CIP Pump Run (Original Language: LAD) "gOUT_PPM307_Run" := "HMI_Device"."PPM303"."Out" AND "HMI_Device"."AVM362"."Out" AND "gBlenderCIPMode" AND "Procedure_Variables"."Blender_Run"."Latch" AND "HMI_Device"."PPM307"."Config"; // Network 35: CIP Pump PPM307 Out (Original Language: LAD) // P7 CIP Return Pump "HMI_Device"."PPM307"."Out" := ("gIN_VoltageOk" AND "HMI_Device"."PPM307"."ManOn" AND "HMI_Device"."PPM307"."Alarm") OR ("gIN_VoltageOk" AND "gOUT_PPM307_Run" AND "HMI_Device"."PPM307"."Auto" AND "HMI_Device"."PPM307"."Alarm"); // Network 36: Syrup Room Water Request (Original Language: LAD) "HMI_Device"."SyrupRoom_WaterPump"."Out" := ("Procedure_Variables"."Syr_RunOut"."Latch" AND "gWorkshopTest" AND "gBlenderProdMode") OR ("gSyrupQcoRinse" AND "gWorkshopTest" AND "gBlenderProdMode") OR ("System_RunOut_Variables"."FastChangeOverActivated" AND "gWorkshopTest" AND "Procedure_Variables"."Blender_Run"."Latch" AND "gBlenderRinseMode"); // Network 37: Syrup Room Water Alarm (Original Language: LAD) "mSyrRoomH2OPumpFaultDly"(IN := "gWorkshopTest" AND "HMI_Device"."SyrupRoom_WaterPump"."Out" AND "DI_SyrRoom_WatPumpReady" AND "gSyrupRoomEn" AND "AUX FALSE" AND "gIN_ResetBtn" AND "gBlenderProdMode", PT := S5T#60S); // TODO: Declarar "mSyrRoomH2OPumpFaultDly" : TON; "HMI_Device"."SyrupRoom_WaterPump"."Alarm" := "mSyrRoomH2OPumpFaultDly".Q OR ("HMI_Device"."SyrupRoom_WaterPump"."Alarm" AND "gIN_ResetBtn"); // Network 38: Syrup Room Syrup Pump (Original Language: LAD) // Network 38 did not produce printable SCL code. // Network 39: (Original Language: LAD) // Network 39 has no logic elements. END_FUNCTION ```