// FB1813 // Block Type: FB // Block Name (Original): Syrup Line MFM Prep DAR // Block Number: 1813 // Original Network Languages: LAD, STL FUNCTION_BLOCK "Syrup_Line_MFM_Prep_DAR" { S7_Optimized_Access := 'TRUE' } VERSION : 0.1 VAR_INPUT IN : Bool; PT : Time; END_VAR VAR_OUTPUT Q : Bool; ET : Time; END_VAR VAR_STAT mStepNum : Int; mTimeStep : Int; Real_Time : Time; mTransition : Bool; mSyrLineMFMPrepONS : Bool; mSyrupLineManualDrainSR : Bool; mQTM306_PrepReqTPON : Bool; mQTM306_PrepReqTP1ON : Bool; mDelayON_StopPumpON : Bool; mDelayON_SyrupMinON : Bool; mDelayON_PumpStatusON : Bool; mHVP302_TONON : Bool; mQTM306_Prep_TimeOutON : Bool; mQTM306_PrepReqTP : "TP:v1.0"; mQTM306_PrepReqTP1 : "TP:v1.0"; mDelayON_StopPump : "TON:v1.0"; mDelayON_SyrupMin : "TON:v1.0"; mDelayON_PumpStatus : "TON:v1.0"; mHVP302_TON : "TON:v1.0"; mQTM306_Prep_TimeOut : "TON:v1.0"; END_VAR VAR_TEMP mDummy : Bool; mAux1 : Real; mAux2 : Real; mTimeOutElapsed : Bool; mStopPumpP2 : Bool; mSyrMinLevel : Bool; mPumpP2Running : Bool; mWaterCountAcheaved : Bool; mSyrupLineManualDrained : Bool; mFuzzyNetOut : Bool; Out_Time_DI : DInt; Real_Time_S5 : S5Time; mProcSlctd : Bool; mFuzzyNetAdd1 : Real; mFuzzyNetAdd2 : Real; mFuzzyNetAdd3 : Real; mSyrBrixAux : Real; mSyrBrixAux_1 : Real; Aux_Somma_Lt : Real; END_VAR #_1S : Bool; // Auto-generated temporary #_4S : Bool; // Auto-generated temporary #_4S_600MS : Bool; // Auto-generated temporary #_5S : Bool; // Auto-generated temporary #TON_INSTANCE_26_dup3 : TON; // Auto-generated temporary #TON_INSTANCE_26_dup5 : TON; // Auto-generated temporary #TON_INSTANCE_27_dup4 : TON; // Auto-generated temporary #TON_INSTANCE_30_dup5 : TON; // Auto-generated temporary #TP_INSTANCE_44 : TP; // Auto-generated temporary BEGIN // Network 1: (Original Language: LAD) %DB960.DBX56.0 := ("gBlenderProdMode" AND "gBlenderSuppliesOk" AND "System_RunOut_Variables"."FastChangeOverActivated" AND NOT "Blender_Variables_Pers"."gWaterRecipe") OR ("gBlenderProdMode" AND "gBlenderSuppliesOk" AND NOT "Blender_Variables_Pers"."gWaterRecipe" AND NOT "gBlenderRinseMode"); // Network 2: SyrLineMFMPrepReq (Original Language: LAD) // PBox SymPy processed, logic in consumer "Tag_69" := "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_FTP302Line_Prep" AND NOT "System_RunOut_Variables"."FastChangeOverActivated" AND NOT "Procedure_Variables"."Syr_RunOut"."FastChangeOverRinseDone"; // P_TRIG("HMI_Variables_Cmd"."Commands_From_HMI"."CMD_FTP302Line_Prep" AND NOT "System_RunOut_Variables"."FastChangeOverActivated" AND NOT "Procedure_Variables"."Syr_RunOut"."FastChangeOverRinseDone") - Mem: "Tag_69" #TP_INSTANCE_44(IN := "System_RunOut_Variables"."FastChangeOverActivated" AND "Procedure_Variables"."Syr_RunOut"."FastChangeOverRinseDone" AND "HMI_Variables_Cmd"."GLOBAL_CMD"."_EnableNextRecipe" AND "System_RunOut_Variables"."NextRecipeOk" AND NOT %DB960.DBX56.6, PT := T#1S); %DB960.DBX56.1 := ("mQTM306_PrepReqTP1ON" AND %DB960.DBX56.0) OR (%DB960.DBX56.0 AND "HMI_Variables_Cmd"."Commands_From_HMI"."CMD_FTP302Line_Prep" AND NOT "System_RunOut_Variables"."FastChangeOverActivated" AND NOT "Tag_69" AND NOT "Procedure_Variables"."Syr_RunOut"."FastChangeOverRinseDone"); // Network 3: (Original Language: LAD) // PBox SymPy processed, logic in consumer "mSyrLineMFMPrepONS" := %DB960.DBX56.1 AND %DB960.DBX56.6 AND NOT "Procedure_Variables"."Blender_Run"."Latch" AND NOT "System_RunOut_Variables"."FastChangeOverActivated"; // P_TRIG(%DB960.DBX56.1 AND %DB960.DBX56.6 AND NOT "Procedure_Variables"."Blender_Run"."Latch" AND NOT "System_RunOut_Variables"."FastChangeOverActivated") - Mem: "mSyrLineMFMPrepONS" %DB960.DBX56.2 := "gBlenderCIPMode" OR "Blender_Variables_Pers"."gWaterRecipe" OR ("gEmergencyPressed" AND %DB960.DBX56.3) OR ("Procedure_Variables"."SyrupLineRinse"."Latch" AND "System_RunOut_Variables"."FastChangeOverActivated") OR ("gBlenderRinseMode" AND NOT "System_RunOut_Variables"."FastChangeOverActivated") OR (%DB960.DBX56.1 AND %DB960.DBX56.6 AND NOT "Procedure_Variables"."Blender_Run"."Latch" AND NOT "System_RunOut_Variables"."FastChangeOverActivated" AND NOT "mSyrLineMFMPrepONS"); // Network 4: (Original Language: LAD) IF ("Procedure_Variables"."Blender_Rinse"."Latch" AND NOT "AUX MASTER VALIDATION") OR ("Procedure_Variables"."Syr_RunOut"."Latch" AND NOT "AUX MASTER VALIDATION") OR ("CIP_Program_Variables"."Status"."Started" AND NOT "AUX MASTER VALIDATION") THEN %DB960.DBX57.0 := FALSE; END_IF; // Network 5: (Original Language: LAD) IF "Procedure_Variables"."FTP302Line_Preparation"."Reset" THEN "mStepNum" := 0; END_IF; IF "Procedure_Variables"."FTP302Line_Preparation"."Reset" THEN %DB960.DBX56.6 := FALSE; END_IF; IF "Procedure_Variables"."FTP302Line_Preparation"."Reset" THEN "Procedure_Variables"."FTP302Line_Preparation"."LinePrepared" := FALSE; END_IF; IF "Procedure_Variables"."FTP302Line_Preparation"."Reset" THEN "mWaterCountAcheaved" := FALSE; END_IF; // Network 6: (Original Language: LAD) %DB960.DBX56.5 := "HMI_Device"."PPP302"."Alarm" OR "HMI_Device"."SyrupRoom_SyrupPump"."Alarm" OR NOT "HMI_Digital"."PSM311"."Filtered"; // Network 7: (Original Language: LAD) %DB960.DBX56.3 := (%DB960.DBX56.1 AND NOT "AUX Start CPU" AND NOT %DB960.DBX56.2 AND NOT %DB960.DBX56.6) OR ("Procedure_Variables"."FTP302Line_Preparation"."Latch" AND NOT "AUX Start CPU" AND NOT %DB960.DBX56.2 AND NOT %DB960.DBX56.6); IF (%DB960.DBX56.1 AND NOT "AUX Start CPU" AND NOT %DB960.DBX56.2 AND NOT %DB960.DBX56.6) OR ("Procedure_Variables"."FTP302Line_Preparation"."Latch" AND NOT "AUX Start CPU" AND NOT %DB960.DBX56.2 AND NOT %DB960.DBX56.6) THEN "HMI_Variables_Status"."Procedures"."BlenderStateNum" := 3; END_IF; // Network 8: (Original Language: LAD) %DB960.DBX56.4 := %DB960.DBX56.3 AND NOT %DB960.DBX56.5; // Network 9: MIX - (Original Language: LAD) "mAux1" := "Blender_Variables"."gMinProduction" / 6.0; SEL_R(G := Ne("mAux1", 0.0), IN0 := 1.0, IN1 := "mAux1"); "mAux2" := "HMI_Blender_Parameters"."ProcessSetup"."_SyrupRunOutLiters" * 1.5; "mAux1" := "mAux2" / "mAux1"; "Out_Time_DI" := CEIL("mAux1"); "mDummy" := TRUE; // Network 10: (Original Language: STL) // #Out_Time_DI (DINT) converted in #Real_Time_S5 (S5Time) // Use L#1000 IF #Out_Time_DI is in ms // --- BEGIN STL Network 10 --- ```stl L "Out_Time_DI" L 1000 MUL_D T "Real_Time" ``` // --- END STL Network 10 --- // Network 11: SyrLineMFMPrep_TimeOut (Original Language: LAD) #TON_INSTANCE_26_dup3(IN := %DBX56.3, PT := "Real_Time"); "mTimeOutElapsed" := "mQTM306_Prep_TimeOutON"; // Network 12: DelayON_StopPump (Original Language: LAD) #TON_INSTANCE_27_dup4(IN := NOT "gIN_SyrTank_MinLvl", PT := T#4S_600MS); "mStopPumpP2" := "mDelayON_StopPumpON"; // Network 13: DelayON_SyrupMin (Original Language: LAD) "mSyrMinLevel" := "gIN_SyrTank_MinLvl"; // Network 14: DelayON_PumpStatus (Original Language: LAD) #TON_INSTANCE_26_dup5(IN := "HMI_Device"."PPP302"."Out", PT := T#4S); "mPumpP2Running" := "mDelayON_PumpStatusON"; // Network 15: SYRUP LINE MANUAL DRAIN (Original Language: LAD) // THIS PROCEDURE HAS TO BE DONE BEFORE TO SELECT THE SYRUP LINE STARTUP. #TON_INSTANCE_30_dup5(IN := "gIN_HVP301_Aux", PT := T#5S); // Network 16: MIX - HMI Variables Cmd (Original Language: LAD) "mSyrupLineManualDrained" := %DB960.DBX56.3 AND "mSyrupLineManualDrainSR" AND NOT "gIN_HVP301_Aux"; // Network 17: (Original Language: LAD) IF NOT "Procedure_Variables"."FTP302Line_Preparation"."Latch" THEN "Blender_Variables_Pers"."gSyrLinePrepCountInit" := "Profibus_Variables"."gFTP302_Tot"; END_IF; // Network 18: BRIX PRODUCT STARTUP THRESHOLD (Original Language: LAD) "mSyrBrixAux" := "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_SyrupBrix" * "HMI_Blender_Parameters"."ProcessSetup"."_PercSyrupBrixSyrStarUp"; "mSyrBrixAux_1" := "mSyrBrixAux" / 100.0; "Blender_Constants"."gSugaredSyrupBrixThrsd" := "mSyrBrixAux_1"; // Network 19: Fuzzy Net (Original Language: LAD) SEL_R(G := "M_validat_27_01_25" AND "gPV_SyrDensOk" AND "HMI_Device"."PPP302"."Out" AND NOT "Blender_Variables_Pers"."gSugarBeverage", IN0 := 0.0, IN1 := 101.0); IF "Blender_Variables_Pers"."gSugarBeverage" THEN "mAux1" := "Profibus_Variables"."gFTP302_Brix" * "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_SyrupFactor"; END_IF; SEL_R(G := "gIN_SyrTank_MinLvl" AND ("mAux1" > "Blender_Constants"."gSugaredSyrupBrixThrsd"), IN0 := 0.0, IN1 := 101.0); IF NOT "M_validat_27_01_25" AND NOT "Blender_Variables_Pers"."gSugarBeverage" THEN "Aux_Somma_Lt" := "HMI_Blender_Parameters"."ProcessSetup"."_SyrupRunOutLiters" + %DBD784; END_IF; IF NOT "M_validat_27_01_25" AND NOT "Blender_Variables_Pers"."gSugarBeverage" THEN "HMI_Variables_Status"."Analog_Values"."TP301SyrupPrimingCount" := "Profibus_Variables"."gFTP302_Tot" - "Blender_Variables_Pers"."gSyrLinePrepCountInit"; END_IF; "mWaterCountAcheaved" := NOT "mSyrupLineManualDrainSR" AND ("HMI_Variables_Status"."Analog_Values"."TP301SyrupPrimingCount" >= "Aux_Somma_Lt"); SEL_R(G := "HMI_Device"."PPP302"."Out" AND NOT "mSyrupLineManualDrainSR" AND ("HMI_Variables_Status"."Analog_Values"."TP301SyrupPrimingCount" >= "Aux_Somma_Lt"), IN0 := 0.0, IN1 := 101.0); "mDummy" := TRUE; // Network 20: Fuzzy Net (Original Language: LAD) "mFuzzyNetAdd1" := "mFuzzyNetAdd1" + "mFuzzyNetAdd2"; "mFuzzyNetAdd1" := "mFuzzyNetAdd1" + "mFuzzyNetAdd3"; "mFuzzyNetOut" := "Procedure_Variables"."FTP302Line_Preparation"."Latch" AND ("mFuzzyNetAdd1" > 100.0); IF "Procedure_Variables"."FTP302Line_Preparation"."Latch" AND NOT "AUX MASTER VALIDATION" AND ("mFuzzyNetAdd1" > 100.0) THEN "Procedure_Variables"."FTP302Line_Preparation"."LinePrepared" := TRUE; END_IF; // Network 21: Opeartor Run Syrup Prep (Original Language: LAD) _HMI_Alarms___gH_Message__8_ := "gBlenderProdMode" AND "Procedure_Variables"."FTP302Line_Preparation"."Qualifier" AND NOT "Procedure_Variables"."FTP302Line_Preparation"."Latch" AND NOT "Blender_Variables_Pers"."gWaterRecipe" AND NOT "gBlenderRinseMode" AND NOT "Procedure_Variables"."FTP302_StartUp"."Latch" AND NOT "Procedure_Variables"."FTP302Line_Preparation"."Done" AND NOT "System_RunOut_Variables"."FastChangeOverActivated"; // Network 22: Syrup Tank Prep Running (Original Language: LAD) // Syrup Tank Prep Running Message "HMI_Variables_Status"."Procedures"."TP301PrepRun" := "Procedure_Variables"."FTP302Line_Preparation"."Latch"; // Network 23: Syrup Tank Prep Running (Original Language: LAD) // Syrup Tank Prep Running Message _HMI_Alarms___gH_Status__3_ := "Procedure_Variables"."FTP302Line_Preparation"."Latch" OR "Procedure_Variables"."FTP302_StartUp"."Latch"; // Network 24: (Original Language: LAD) IF "Procedure_Variables"."FTP302Line_Preparation"."Running" THEN Syrup_Line_MFM_Prep_Seq(FuzzyNetOut := "mFuzzyNetOut", SyrupLineManualDrained := "mSyrupLineManualDrained", WaterCountAcheaved := "mWaterCountAcheaved", mStep := "mStepNum", mStopPumpP2 := "mStopPumpP2", mSyrMinLevel := "mDelayON_SyrupMinON", mTimer := "mTimeStep", mTransition := "mTransition"); END_IF; // Network 25: (Original Language: LAD) "HMI_Variables_Status"."System_Run_Out"."TP301PrepDone" := "Procedure_Variables"."FTP302Line_Preparation"."Done"; END_FUNCTION_BLOCK