```pascal // Block Type: FB // Block Number: 1793 // Original Network Languages: LAD // Block Comment: // TASK1 PID FUNCTION_BLOCK "PID_RVN302" { S7_Optimized_Access := 'TRUE' } VERSION : 0.1 VAR_STAT PID_RVN302_Prop : Real; PID_RVN302_Int : Real; PID_RVN302_Der : Real; PID : "PIDControl"; END_VAR VAR_TEMP mDummy : Bool; mMaxRVN302LevelAnalog : Bool; mMaxRVN302Level : Real; mAuxReal : Real; END_VAR BEGIN // Network 1: Manual Enable (Original Language: LAD) "HMI_PID"."RVN302"."ManualControl"."PidEnable" := ("Blender_Variables_Pers"."gSkipDeaireation" AND "Procedure_Variables"."Blender_Run"."Latch" AND "gBlenderProdMode" AND "gBlenderRinseMode") OR ("Blender_Variables_Pers"."gSkipDeaireation" AND "Procedure_Variables"."TN301_StartUp"."Done" AND "Procedure_Variables"."TN301_StartUp"."Running" AND "gBlenderProdMode" AND "gBlenderRinseMode"); "Blender_Variables"."Aux_RVN302_PID"."ManualControl"."PidEnable" := ("Blender_Variables_Pers"."gSkipDeaireation" AND "Procedure_Variables"."Blender_Run"."Latch" AND "gBlenderProdMode" AND "gBlenderRinseMode") OR ("Blender_Variables_Pers"."gSkipDeaireation" AND "Procedure_Variables"."TN301_StartUp"."Done" AND "Procedure_Variables"."TN301_StartUp"."Running" AND "gBlenderProdMode" AND "gBlenderRinseMode"); // Network 2: Setpoint (Original Language: LAD) SEL_R(G := "Blender_Variables_Pers"."gSkipDeaireation", IN0 := "Blender_Variables"."gSP_DEAIR_Level", IN1 := "Blender_Variables"."gSP_ST OR AGE_Level"); // Network 3: 0 = Deaireation ON, 1 = Deaireation OFF (Original Language: LAD) "HMI_Variables_Status"."System"."SkipDeaireation" := "Blender_Variables_Pers"."gSkipDeaireation"; // Network 4: Setpoint (Original Language: LAD) IF ("Blender_Variables_Pers"."gSkipDeaireation" AND "HMI_PID"."RVN302"."ManualControl"."PidEnable" AND "Procedure_Variables"."Blender_Run"."Running" AND "Procedure_Variables"."BlendFill_StartUp"."Running") OR ("Blender_Variables_Pers"."gSkipDeaireation" AND "HMI_PID"."RVN302"."ManualControl"."PidEnable" AND "Procedure_Variables"."Blender_Run"."Running" AND "Procedure_Variables"."TN301_StartUp"."Running" AND "gDeairTank_Loading") THEN "HMI_PID"."RVN302"."Sp" := "HMI_PID"."RVN302"."Pv"; END_IF; // Network 5: Blender Variables - Persistent (Original Language: LAD) "Blender_Variables"."Aux_RVN302_PID"."Sp" := "HMI_PID"."RVN302"."Sp"; "Blender_Variables"."Aux_RVN302_PID"."Pv" := "HMI_PID"."RVN302"."Pv"; "Blender_Variables"."Aux_RVN302_PID"."KP" := "HMI_PID"."RVN302"."KP"; SEL_R(G := "Blender_Variables_Pers"."gSkipDeaireation", IN0 := "HMI_PID"."RVN302"."Ti", IN1 := "HMI_PID"."RVN302_TM301"."Ti"); SEL_R(G := "Blender_Variables_Pers"."gSkipDeaireation", IN0 := "HMI_PID"."RVN302"."Td", IN1 := "HMI_PID"."RVN302_TM301"."Td"); "Blender_Variables"."Aux_RVN302_PID"."FfOut" := "HMI_PID"."RVN302"."FfOut"; "Blender_Variables"."Aux_RVN302_PID"."OutMax" := "HMI_PID"."RVN302"."OutMax"; "Blender_Variables"."Aux_RVN302_PID"."OutMin" := "HMI_PID"."RVN302"."OutMin"; "Blender_Variables"."Aux_RVN302_PID"."I_ITLVAL" := "HMI_PID"."RVN302"."I_ITLVAL"; "Blender_Variables"."Aux_RVN302_PID"."Lsp" := "HMI_PID"."RVN302"."Lsp"; "Blender_Variables"."Aux_RVN302_PID"."OutMan" := "HMI_PID"."RVN302"."OutMan"; "Blender_Variables"."Aux_RVN302_PID"."Cycle_Time" := "HMI_PID"."RVN302"."Cycle_Time"; "Blender_Variables"."Aux_RVN302_PID"."Dead_Band" := "HMI_PID"."RVN302"."Dead_Band"; "mDummy" := TRUE; // Network 6: From HMI - Local (Original Language: LAD) "Blender_Variables"."Aux_RVN302_PID"."ManualControl"."LocalSP" := "HMI_PID"."RVN302"."ManualControl"."LocalSP"; // Network 7: Integral PID Inizialize (Original Language: LAD) "Blender_Variables"."Aux_RVN302_PID"."I_ITL" := "HMI_PID"."RVN302"."I_ITL"; // Network 8: PID Control (Original Language: LAD) // Attenzione al Bit REG_INV !! "PID"(D_Sel := "AUX TRUE", FF_Enable := "AUX TRUE", I_Sel := "AUX TRUE", LMN_FAC := 1.0, LMN_OFF := 0.0, MAN_ON := "HMI_PID"."RVN302"."ManualControl"."ManOut", PID_Data := "Blender_Variables"."Aux_RVN302_PID", PID_Enable := "HMI_PID"."RVN302"."ManualControl"."PidEnable" OR "HMI_PID"."RVN302"."I_ITL", P_Sel := "AUX TRUE", REG_INV := "AUX FALSE"); // Network 9: Valve Output (Original Language: LAD) "HMI_PID"."RVN302"."Out" := "Blender_Variables"."Aux_RVN302_PID"."Out"; // Network 10: Integral PID Inizialize (Original Language: LAD) "HMI_PID"."RVN302"."I_ITL" := "Blender_Variables"."Aux_RVN302_PID"."I_ITL"; // Network 11: Limit (Original Language: LAD) "HMI_PID"."RVN302"."High_Limit" := "Blender_Variables"."Aux_RVN302_PID"."High_Limit"; // Network 12: Limit (Original Language: LAD) "HMI_PID"."RVN302"."Low_Limit" := "Blender_Variables"."Aux_RVN302_PID"."Low_Limit"; // Network 13: Integral (Original Language: LAD) "mPID_RVN302_Int" := "PID_RVN302_Int"; // Network 14: Integral PID Inizilize (Original Language: LAD) IF "HMI_PID"."RVN302"."I_ITL" THEN "HMI_PID"."RVN302"."I_ITL" := FALSE; END_IF; // Network 15: From HMI (Original Language: LAD) SEL_R(G := "Blender_Variables_Pers"."gSkipDeaireation", IN0 := "Blender_Variables"."gSP_DEAIR_Level", IN1 := "Blender_Variables"."gSP_ST OR AGE_Level"); "mMaxRVN302Level" := "mAuxReal" + 10.0; SEL_R(G := "Blender_Variables_Pers"."gSkipDeaireation", IN0 := "HMI_Instrument"."LTN301"."PVFiltered", IN1 := "HMI_Instrument"."LTM302"."PVFiltered"); "mMaxRVN302LevelAnalog" := "mAuxReal" > "mMaxRVN302Level"; // Network 16: Valve Output (Original Language: LAD) SEL_R(G := "HMI_PID"."RVN302"."ManualControl"."PidEnable" AND ("HMI_PID"."RVN302"."ManualControl"."ManOut" OR "mMaxRVN302LevelAnalog"), IN0 := 0.0, IN1 := "HMI_PID"."RVN302"."Out"); END_FUNCTION_BLOCK ```