```pascal // Block Type: FC // Block Number: 1925 // Original Network Languages: LAD // Block Comment: // TASK1 PID FUNCTION "BlenderPIDCtrl_WriteAnOu" : Void { S7_Optimized_Access := 'TRUE' } VERSION : 0.1 VAR_TEMP mVLT_freq_REAL : Real; mDummy : Bool; mVLT_PumpP2_freq_REAL : Real; mVLT_PumpP1_freq_REAL : Real; END_VAR BEGIN // Network 1: Carbonated Water Valve (Original Language: LAD) // Water Valve IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."RMM301"."Config" THEN WritePeripheral(Analog_Value := "HMI_PID"."RMM301"."Out", MAX_Analog_Value := 100.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 0); END_IF; // Network 2: Syrup Valve (Original Language: LAD) // Syrup IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."RMP302"."Config" THEN WritePeripheral(Analog_Value := "HMI_PID"."RMP302"."Out", MAX_Analog_Value := 100.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 0); END_IF; // Network 3: Co2 Valve (Original Language: LAD) IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."RMM303"."Config" THEN WritePeripheral(Analog_Value := "HMI_PID"."RMM303"."Out", MAX_Analog_Value := 100.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 0); END_IF; // Network 4: Gas2 Valve (Original Language: LAD) IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."RMM304"."Config" THEN WritePeripheral(Analog_Value := "HMI_PID"."RMM304"."Out", MAX_Analog_Value := 100.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 0); END_IF; // Network 5: Product Tank Pressure Valve (Original Language: LAD) IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."RVM301"."Config" THEN WritePeripheral(Analog_Value := "HMI_PID"."RVM301"."Out", MAX_Analog_Value := 100.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 0); END_IF; // Network 6: Syrup Tank Level Valve (Original Language: LAD) IF "HMI_PID"."RVP303"."Out" >= 1.0 THEN WritePeripheral(Analog_Value := "HMI_PID"."RVP303"."Out", MAX_Analog_Value := 100.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 5530); END_IF; // Network 7: Valve Power Enable (Power Supply Analog Signal) (Original Language: LAD) IF "HMI_PID"."RVP303"."Out" < 1.0 THEN "P_AO_RVP303" := 0; END_IF; "DO_SyrupValve_Enable" := "HMI_PID"."RVP303"."Out" < 1.0; // Network 8: Deaireator Level Valve (Original Language: LAD) IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."RVN302"."ConfigPID" AND "HMI_PID"."RVN302"."Config" THEN WritePeripheral(Analog_Value := "HMI_PID"."RVN302"."Out", MAX_Analog_Value := 100.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 0); END_IF; // Network 9: CIp Heating Valve (Original Language: LAD) IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."RVS318"."Config" THEN WritePeripheral(Analog_Value := "HMI_PID"."RVS318"."Out", MAX_Analog_Value := 100.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 0); END_IF; // Network 10: Chiller Temperature (Original Language: LAD) IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."RVM319_PRD"."Config" THEN WritePeripheral(Analog_Value := "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_SP_ProdTemp", MAX_Analog_Value := 50.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 0); END_IF; IF "HMI_Variables_Status"."Procedures"."WarmRinseRun" THEN "HMI_PID"."RVM319_H2O"."Out" := "HMI_PID"."RVM319_PRD"."Out"; END_IF; // Network 11: Cip Return Temperature (Original Language: LAD) IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_LocalCIP" THEN WritePeripheral(Analog_Value := "HMI_Instrument"."TTS305_1"."PVFiltered", MAX_Analog_Value := 100.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 0); END_IF; // Network 12: Cip Conductivity (Original Language: LAD) IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_LocalCIP" THEN WritePeripheral(Analog_Value := "HMI_Instrument"."CTS301"."PVFiltered", MAX_Analog_Value := 2000.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 0); END_IF; // Network 13: Cip Caustic Conductivity (Original Language: LAD) IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_LocalCIP" THEN WritePeripheral(Analog_Value := "HMI_Instrument"."CTS302"."PVFiltered", MAX_Analog_Value := 200.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue", MIN_Analog_Value := 0.0, MIN_Out := 0); END_IF; // Network 14: Product Pump (Original Language: LAD) IF "gBlenderProdMode" AND "gBlenderRinseMode" AND "HMI_Device"."PPM303"."Out" AND "gIN_Filler1ProductReq" AND "HMI_PID"."PPM303"."PID_FIX" AND "HMI_PID"."PPM303"."ManualControl"."ManOut" THEN "HMI_PID"."PPM303"."Out" := "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_ProdPump1_Hz"; END_IF; IF "gBlenderProdMode" AND "gBlenderRinseMode" AND "HMI_Device"."PPM303"."Out" AND "gIN_Filler1ProductReq" AND "HMI_PID"."PPM303"."PID_FIX" AND "HMI_PID"."PPM303"."ManualControl"."ManOut" THEN "HMI_PID"."PPM303"."Out" := 10.0; END_IF; IF ("gBlenderProdMode" AND "gBlenderRinseMode" AND "HMI_Device"."PPM303"."Out" AND "HMI_PID"."PPM303"."PID_FIX" AND "HMI_PID"."PPM303"."ManualControl"."ManOut" AND "HMI_Alarms"."gH_Status") OR ("gBlenderProdMode" AND "gBlenderRinseMode" AND "HMI_Device"."PPM303"."Out" AND "HMI_PID"."PPM303"."ManualControl"."ManOut" AND "HMI_Alarms"."gH_Status" AND "Disable_Bit") THEN "HMI_PID"."PPM303"."Out" := 15.0; END_IF; IF "gBlenderProdMode" AND "gBlenderRinseMode" AND "HMI_Device"."PPM303"."Out" AND "HMI_PID"."PPM303"."ManualControl"."ManOut" THEN "HMI_PID"."PPM303"."Out" := "HMI_Blender_Parameters"."ProcessSetup"."_RinsePPM303Freq"; END_IF; IF "HMI_Device"."PPM303"."Out" AND "HMI_PID"."PPM303"."ManualControl"."ManOut" AND "gBlenderCIPMode" THEN "HMI_PID"."PPM303"."Out" := "HMI_Blender_Parameters"."ProcessSetup"."_CIPPPM303Freq"; END_IF; IF "HMI_PID"."PPM303"."ManualControl"."ManOut" THEN "HMI_PID"."PPM303"."Out" := "HMI_PID"."PPM303"."OutMan"; END_IF; IF "HMI_Device"."PPM303"."Out" AND "HMI_PID"."PPM303"."ManualControl"."ManOut" THEN "HMI_PID"."PPM303"."Out" := 0.0; END_IF; "mDummy" := "gBlenderProdMode" AND "gBlenderRinseMode" AND "HMI_Device"."PPM303"."Out" AND "gIN_Filler1ProductReq" AND "HMI_PID"."PPM303"."PID_FIX" AND "HMI_PID"."PPM303"."ManualControl"."ManOut"; // Network 15: Product Pump Reference Value (Original Language: LAD) // N.B. impostare il MAX_Analog_Value al valore di produzione + 10 Hz ( con // macchina a 50Hz verrà impostato a 60Hz). IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."PPM303"."Config" THEN WritePeripheral(Analog_Value := "HMI_PID"."PPM303"."Out", MAX_Analog_Value := 50.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue_VFC", MIN_Analog_Value := 0.0, MIN_Out := 0); END_IF; // Network 16: Product Pump 2 (Original Language: LAD) IF "gBlenderProdMode" AND "gBlenderRinseMode" AND "HMI_PID"."PPM303"."PID_FIX" AND "HMI_PID"."PPM303"."ManualControl"."ManOut" AND "HMI_Device"."PPM305"."Out" AND "gIN_Filler2ProductReq" THEN "HMI_PID"."PPM305"."Out" := "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_ProdPump2_Hz"; END_IF; IF "gBlenderProdMode" AND "gBlenderRinseMode" AND "HMI_PID"."PPM303"."PID_FIX" AND "HMI_PID"."PPM303"."ManualControl"."ManOut" AND "HMI_Device"."PPM305"."Out" AND "gIN_Filler2ProductReq" THEN "HMI_PID"."PPM305"."Out" := 10.0; END_IF; IF "gBlenderProdMode" AND "HMI_Device"."PPM303"."Out" AND "HMI_PID"."PPM303"."PID_FIX" THEN "HMI_PID"."PPM305"."Out" := "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_FillingValveHead_SP"; END_IF; IF "gBlenderProdMode" AND "gBlenderRinseMode" AND "HMI_Device"."PPM305"."Out" AND "HMI_PID"."PPM305"."ManualControl"."ManOut" THEN "HMI_PID"."PPM305"."Out" := "HMI_Blender_Parameters"."ProcessSetup"."_RinsePPM303Freq"; END_IF; IF "gBlenderCIPMode" AND "HMI_Device"."PPM305"."Out" AND "HMI_PID"."PPM305"."ManualControl"."ManOut" THEN "HMI_PID"."PPM305"."Out" := "HMI_Blender_Parameters"."ProcessSetup"."_CIPPPM303Freq"; END_IF; IF "HMI_Device"."PPM305"."Out" AND "HMI_PID"."PPM305"."ManualControl"."ManOut" THEN "HMI_PID"."PPM305"."Out" := 0.0; END_IF; IF "HMI_PID"."PPM305"."ManualControl"."ManOut" THEN "HMI_PID"."PPM305"."Out" := "HMI_PID"."PPM305"."OutMan"; END_IF; "mDummy" := "gBlenderProdMode" AND "gBlenderRinseMode" AND "HMI_PID"."PPM303"."PID_FIX" AND "HMI_PID"."PPM303"."ManualControl"."ManOut" AND "HMI_Device"."PPM305"."Out" AND "gIN_Filler2ProductReq"; // Network 17: Product Pump 2 Reference Value (Original Language: LAD) // N.B. impostare il MAX_Analog_Value al valore di produzione + 10 Hz ( con // macchina a 50Hz verrà impostato a 60Hz). IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."PPM305"."Config" THEN WritePeripheral(Analog_Value := "HMI_PID"."PPM305"."Out", MAX_Analog_Value := 50.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue_VFC", MIN_Analog_Value := 0.0, MIN_Out := 0); END_IF; // Network 18: Syrup Pump (Original Language: LAD) IF "gBlenderProdMode" AND "HMI_Device"."PPP302"."Out" THEN "mVLT_PumpP2_freq_REAL" := "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_SyrupPumpFreq"; END_IF; IF "gBlenderRinseMode" AND "HMI_Device"."PPP302"."Out" THEN "mVLT_PumpP2_freq_REAL" := "HMI_Blender_Parameters"."ProcessSetup"."_RinsePPP302Freq"; END_IF; IF "gBlenderCIPMode" AND "HMI_Device"."PPP302"."Out" THEN "mVLT_PumpP2_freq_REAL" := "HMI_Blender_Parameters"."ProcessSetup"."_CIPPPP302Freq"; END_IF; IF "HMI_Device"."PPP302"."Out" THEN "mVLT_PumpP2_freq_REAL" := 0.0; END_IF; IF "HMI_PID"."PPP302"."ManualControl"."ManOut" THEN "HMI_PID"."PPP302"."OutMan" := "mVLT_PumpP2_freq_REAL"; END_IF; IF "HMI_PID"."PPP302"."ManualControl"."ManOut" THEN "mVLT_PumpP2_freq_REAL" := "HMI_PID"."PPP302"."OutMan"; END_IF; "HMI_PID"."PPP302"."Out" := "mVLT_PumpP2_freq_REAL"; "mDummy" := ("gBlenderProdMode" AND "HMI_Device"."PPP302"."Out") OR ("gBlenderRinseMode" AND "HMI_Device"."PPP302"."Out"); // Network 19: Syrup Pump Reference Value (Original Language: LAD) // N.B. impostare il MAX_Analog_Value al valore di produzione + 10 Hz ( con // macchina a 50Hz verrà impostato a 60Hz). IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."PPP302"."Config" THEN WritePeripheral(Analog_Value := "HMI_PID"."PPP302"."Out", MAX_Analog_Value := 60.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue_VFC", MIN_Analog_Value := 0.0, MIN_Out := 0); END_IF; // Network 20: Water Pump (Original Language: LAD) IF "gBlenderProdMode" AND "HMI_Device"."PPN301"."Out" THEN "mVLT_PumpP1_freq_REAL" := "HMI_Blender_Parameters"."Actual_Recipe_Parameters"."_WaterPumpFreq"; END_IF; IF "gBlenderRinseMode" AND "HMI_Device"."PPN301"."Out" THEN "mVLT_PumpP1_freq_REAL" := "HMI_Blender_Parameters"."ProcessSetup"."_RinsePPN301Freq"; END_IF; IF "gBlenderCIPMode" THEN "mVLT_PumpP1_freq_REAL" := "HMI_Blender_Parameters"."ProcessSetup"."_CIPPPN301Freq"; END_IF; IF "HMI_Device"."PPN301"."Out" THEN "mVLT_PumpP1_freq_REAL" := 0.0; END_IF; IF "HMI_PID"."PPN301"."ManualControl"."ManOut" THEN "HMI_PID"."PPN301"."OutMan" := "mVLT_PumpP1_freq_REAL"; END_IF; IF "HMI_PID"."PPN301"."ManualControl"."ManOut" THEN "mVLT_PumpP1_freq_REAL" := "HMI_PID"."PPN301"."OutMan"; END_IF; "HMI_PID"."PPN301"."Out" := "mVLT_PumpP1_freq_REAL"; "mDummy" := ("gBlenderProdMode" AND "HMI_Device"."PPN301"."Out") OR ("gBlenderRinseMode" AND "HMI_Device"."PPN301"."Out"); // Network 21: Water Pump Reference Value (Original Language: LAD) // N.B. impostare il MAX_Analog_Value al valore di produzione + 10 Hz ( con // macchina a 50Hz verrà impostato a 60Hz). IF "HMI_Blender_Parameters"."Processor_Options"."Blender_OPT"."_Simulation" AND "HMI_PID"."PPN301"."Config" THEN WritePeripheral(Analog_Value := "HMI_PID"."PPN301"."Out", MAX_Analog_Value := 60.0, MAX_Out := "Blender_Constants"."gAnalogMaxValue_VFC", MIN_Analog_Value := 0.0, MIN_Out := 0); END_IF; END_FUNCTION ```