```pascal // Block Type: FC // Block Number: 2015 // Original Network Languages: STL, LAD FUNCTION "BlenderRun__Control" : Void { S7_Optimized_Access := 'TRUE' } VERSION : 0.1 VAR_TEMP Buffer : Bool; mInitBlendError : Bool; gRunningMaintHour : DInt; MOD_DI_OUT_Seg31 : DInt; gCheckOilModValves : DInt; gCheckOilWaterPumpMotor : DInt; MOD_DI_OUT_Seg33 : DInt; mRealEnRecPHE01 : Real; mRealEnRecPHE02 : Real; __PlcmigTempFillBits_30B0 : Array[0..7] of Bool; END_VAR #_2S : Bool; // Auto-generated temporary #_2m : Bool; // Auto-generated temporary #_3S : Bool; // Auto-generated temporary #_4M : Bool; // Auto-generated temporary #_5M : Bool; // Auto-generated temporary #_5m : Bool; // Auto-generated temporary BEGIN // Network 1: Buffer (Original Language: LAD) BlenderRun_SelectConstan(); BlenderRun_ProdTime(); "Buffer" := TRUE; // Network 2: Qualifier (Original Language: LAD) "Procedure_Variables"."Blender_Run"."Qualifier" := ("gBlenderProdMode" AND "gProductionONS" AND "gHighPriorityAlarm" AND "Procedure_Variables"."Blender_Rinse"."ONS_Done") OR ("gBlenderProdMode" AND "gProductionONS" AND "gHighPriorityAlarm" AND "System_RunOut_Variables"."FastChangeOverActivated") OR ("gBlenderCIPMode" AND "gCIPONS" AND "gHighPriorityAlarm" AND "Procedure_Variables"."Blender_Rinse"."ONS_Done") OR ("gBlenderCIPMode" AND "gCIPONS" AND "gHighPriorityAlarm" AND "System_RunOut_Variables"."FastChangeOverActivated"); // Network 3: Blender Run Stopping (Original Language: LAD) BlenderRun_Stopping(); // Network 4: Reset (Original Language: LAD) "Procedure_Variables"."Blender_Run"."Reset" := ("gBlenderProdMode" AND "Procedure_Variables"."TM301_RunOut"."Done" AND "HMI_Variables_Status"."System_Run_Out"."SystemRunOutEnabled" AND "System_RunOut_Variables"."System_RunOut"."Reset" AND "gBlenderRinseMode") OR ("gBlenderProdMode" AND "Procedure_Variables"."TM301_RunOut"."Done" AND "HMI_Variables_Status"."System_Run_Out"."SystemRunOutEnabled" AND "gBlenderRinseMode" AND "System_RunOut_Variables"."FastChangeOverActivated") OR ("gBlenderProdMode" AND "HMI_Variables_Status"."System_Run_Out"."SystemRunOutEnabled" AND "System_RunOut_Variables"."System_RunOut"."Reset" AND "gBlenderRinseMode" AND "Procedure_Variables"."TM301_RunOut"."Latch") OR ("gBlenderProdMode" AND "HMI_Variables_Status"."System_Run_Out"."SystemRunOutEnabled" AND "gBlenderRinseMode" AND "System_RunOut_Variables"."FastChangeOverActivated" AND "Procedure_Variables"."TM301_RunOut"."Latch"); // Network 5: Request (Original Language: LAD) // PBox SymPy processed, logic in consumer "M19007" := "gIN_StartBtn" AND "mEnableStartTmr"; // P_TRIG("gIN_StartBtn" AND "mEnableStartTmr") - Mem: "M19007" "Procedure_Variables"."Blender_Run"."Request" := "gIN_StartBtn" AND "mEnableStartTmr" AND "Procedure_Variables"."Blender_Run"."Qualifier" AND NOT "M19007"; // Network 6: Running (Original Language: LAD) "Procedure_Variables"."Blender_Run"."Latch" := ("Procedure_Variables"."Blender_Run"."Qualifier" AND "Procedure_Variables"."Blender_Run"."Request" AND "FirstScan" AND "Procedure_Variables"."Blender_Run"."Reset" AND "Procedure_Variables"."Blender_Run"."Done") OR ("Procedure_Variables"."Blender_Run"."Qualifier" AND "DI_PB_Machine_Start" AND "FirstScan" AND "Procedure_Variables"."Blender_Run"."Reset" AND "Procedure_Variables"."Blender_Run"."Done"); "HMI_Variables_Status"."System"."Blender_Running" := ("Procedure_Variables"."Blender_Run"."Qualifier" AND "Procedure_Variables"."Blender_Run"."Request" AND "FirstScan" AND "Procedure_Variables"."Blender_Run"."Reset" AND "Procedure_Variables"."Blender_Run"."Done") OR ("Procedure_Variables"."Blender_Run"."Qualifier" AND "DI_PB_Machine_Start" AND "FirstScan" AND "Procedure_Variables"."Blender_Run"."Reset" AND "Procedure_Variables"."Blender_Run"."Done"); // Network 7: EnableStart (Original Language: LAD) // Network 7 did not produce printable SCL code. // Network 8: Blender Stopping (Original Language: LAD) // Network 8 did not produce printable SCL code. // Network 9: Wait (Original Language: LAD) "Procedure_Variables"."Blender_Run"."Wait" := ("gBlenderProdMode" AND "Blender_Variables_Pers"."gWaterRecipe" AND "Procedure_Variables"."FTP302Line_Preparation"."Done" AND "gBlenderRinseMode") OR ("gBlenderProdMode" AND "Procedure_Variables"."First_Production"."Latch" AND "gPTM304_OkToRun" AND "gEqPressSelected" AND "gBlenderRinseMode") OR ("gBlenderProdMode" AND "Procedure_Variables"."First_Production"."Latch" AND "gEqPressOk" AND "gEqPressSelected" AND "gBlenderRinseMode"); // Network 10: Running (Original Language: LAD) "Procedure_Variables"."Blender_Run"."Running" := "Procedure_Variables"."Blender_Run"."Latch" AND "Procedure_Variables"."Blender_Run"."Wait"; // Network 11: Pumps Start (Original Language: LAD) "gBlenderStartPumps" := "Procedure_Variables"."Blender_Run"."Running"; // Network 12: Pumps Start ONS (Original Language: LAD) // Edge Logic handled by Coil 26 "M19010" := "gBlenderStartPumps"; // P_TRIG("gBlenderStartPumps") - Mem: "M19010" "gBlenderStartPumpsONS" := "gBlenderStartPumps" AND NOT "M19010"; "M19010" := "gBlenderStartPumps"; // P_TRIG("gBlenderStartPumps") - Mem: "M19010" // Network 13: Blend Error Reset (Original Language: LAD) IF "Procedure_Variables"."First_Production"."Latch" AND "gBlenderStartPumpsONS" AND "gProductChillerEn" THEN "HMI_Variables_Status"."Analog_Values"."BlendError" := 0.0; END_IF; // Network 14: Carbo Co2 Error Reset (Original Language: LAD) IF "Procedure_Variables"."First_Production"."Latch" AND "gBlenderStartPumpsONS" AND "gProductChillerEn" AND "AUX FALSE" THEN "Blender_Variables"."gCarboCO2Error" := 0.0; END_IF; // Network 15: Blend Error (Original Language: LAD) "mInitBlendError" := "gBlenderBlending" AND "gHighPriorityAlarm"; // Network 16: Blend Error (Original Language: LAD) IF "mInitBlendError" AND "gStopBlendCarboError" THEN "Blender_Variables"."gBlendError" := "Blender_Variables"."gBlendError" + "Blender_Constants"."gBlendErrorAfterAlarm"; END_IF; // Network 17: Reset Started (Original Language: LAD) IF "gBlenderCIPMode" OR "gBlenderRinseMode" THEN "Blender_Variables_Pers"."gBlenderStarted" := FALSE; END_IF; // Network 18: Started (Original Language: LAD) IF "gBlenderProdMode" AND "gBlenderCIPMode" AND "gBlenderRinseMode" AND "Blender_Variables_Pers"."gFirstProdLatched" THEN "Blender_Variables_Pers"."gBlenderStarted" := TRUE; END_IF; // Network 19: DelayBlendEn (Original Language: LAD) // Water Pump Rise Pressure TIME = 2.6 sec "mDelayBlendEn"(IN := "gBlenderProdMode" AND "gBlenderRinseMode" AND "gBlenderStartPumps", PT := S5T#3S); // TODO: Declarar "mDelayBlendEn" : TON; "gBlenderBlending" := "mDelayBlendEn".Q; // Network 20: Stable Flow (Original Language: LAD) "mWaitStableFlow"(IN := "gBlenderBlending", PT := S5T#2S); // TODO: Declarar "mWaitStableFlow" : TON; "gBlenderStableFlow" := "mWaitStableFlow".Q; // Network 21: Flow Filter Enable (Original Language: LAD) // gBlenderFlowFltEn: Enables the Product Flow Filter, in order TO disable the // filter itself during product ramp-up AND down "gBlenderFlowFltEn" := "gBlenderStableFlow" OR ("Procedure_Variables"."Blender_Stop"."Latch" AND "gBlenderStopping" AND "gBlenderFlowFltEn"); // Network 22: EnToRamp (Original Language: LAD) "mEnToRamp"(IN := "gBlenderStableFlow", PT := S5T#3S); // TODO: Declarar "mEnToRamp" : TON; "gBlenderEnToRamp" := "mEnToRamp".Q; // Network 23: EnCooler (Original Language: LAD) "mEnCooler"(IN := "gBlenderProdMode" AND "gBlenderStartPumps", PT := S5T#2m); // TODO: Declarar "mEnCooler" : TON; "PID_Variables"."PID_RVM319_H2O_EnInt" := "mEnCooler".Q; "PID_Variables"."PID_RVM319_PRD_EnInt" := "mEnCooler".Q; // Network 24: DlyOffRecirc (Original Language: LAD) // Network 24 did not produce printable SCL code. // Network 25: EnRecircPHE (Original Language: LAD) "m_StartRecircPHE"(IN := "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_CoolerControl" >= 2, PT := S5T#5M); // TODO: Declarar "m_StartRecircPHE" : TON; IF "m_StartRecircPHE".Q THEN "gEnRecircPHE" := TRUE; END_IF; // Network 26: EnRecircPHE01 (Original Language: STL) // --- BEGIN STL Network 26 --- L "HMI_PID".RVM319_PRD.KP L 0.0 NE_R = "__PlcmigTempFillBits_30B0"[0] A "__PlcmigTempFillBits_30B0"[0] JNB _004 L "HMI_PID".RVM319_PRD.KP T "mRealEnRecPHE01" _004: NOP_0 A "__PlcmigTempFillBits_30B0"[0] NEG JNB _005 L 1 T "mRealEnRecPHE01" _005: NOP_0 // --- END STL Network 26 --- // Network 27: EnRecircPHE02 (Original Language: LAD) "mRealEnRecPHE02" := "HMI_PID.RVM319.Error" / "mRealEnRecPHE01"; // Network 28: EnRecircPHE Reset (Original Language: LAD) "m_StopRecircPHE"(IN := "gEnRecircPHE", PT := S5T#5M); // TODO: Declarar "m_StopRecircPHE" : TON; "mTON_Reset_RecircPHE_Goo"(IN := "mRealEnRecPHE02" <= 1.0, PT := S5T#4M); // TODO: Declarar "mTON_Reset_RecircPHE_Goo" : TON; IF "HMI_Device"."AVM381"."Config" OR ("HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_CoolerControl" <= 1) THEN "gEnRecircPHE" := FALSE; END_IF; // Network 29: EnStopFromFiller (Original Language: LAD) "mEnStopFromFillerTmr"(IN := "gBlenderBlending", PT := S5T#5m); // TODO: Declarar "mEnStopFromFillerTmr" : TON; // Network 30: DelayToRestart (Original Language: LAD) // Network 30 did not produce printable SCL code. // Network 31: Check Oil in Modulating Valve (Original Language: LAD) // Check Oil in Modulating Valve Recirculating Balls Screw "gRunningMaintHour" := "Blender_Variables_Pers"."gRunningMaintHour"; "gCheckOilModValves" := "Blender_Constants"."gCheckOilModValves"; "MOD_DI_OUT_Seg31" := "gRunningMaintHour" MOD "gCheckOilModValves"; // Network 32: Check Oil in Modulating Valve (Original Language: LAD) // Check Oil in Modulating Valve Recirculating Balls Screw "HMI_Alarms"."gH_Message" := Ne(0, "Blender_Variables_Pers"."gRunningMaintHour"); // Network 33: Check Oil in Water Pump Motor (Original Language: LAD) // Check Oil in Water Pump Motor "gCheckOilWaterPumpMotor" := "Blender_Constants"."gCheckOilWaterPumpMotor"; "MOD_DI_OUT_Seg33" := "gRunningMaintHour" MOD "gCheckOilWaterPumpMotor"; // Network 34: Check Oil in Water Pump Motor (Original Language: LAD) // Check Oil in Water Pump Motor "HMI_Alarms"."gH_Message" := Ne(0, "Blender_Variables_Pers"."gRunningMaintHour"); // Network 35: Done (Original Language: LAD) "Procedure_Variables"."Blender_Run"."Done" := ("Procedure_Variables"."Blender_Run"."Latch" AND "Procedure_Variables"."Blender_Stop"."Done" AND "Procedure_Variables"."Blender_Stop"."Latch") OR ("Procedure_Variables"."Blender_Run"."Latch" AND "Procedure_Variables"."Blender_Stop"."Request" AND "Procedure_Variables"."Blender_Stop"."Done" AND "gBlenderStopping") OR ("Procedure_Variables"."Blender_Run"."Latch" AND "Procedure_Variables"."Blender_Stop"."Request" AND "Procedure_Variables"."Blender_Stop"."Latch" AND "gBlenderCIPMode") OR ("Procedure_Variables"."Blender_Run"."Latch" AND "Procedure_Variables"."Blender_Stop"."Request" AND "gBlenderCIPMode" AND "gBlenderStopping"); END_FUNCTION ```