11 KiB
11 KiB
// Block Type: FC
// Block Number: 2015
// Original Network Languages: LAD, STL
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