```pascal FUNCTION "Output_AnalogValueToHMI" : Void { S7_Optimized_Access := 'FALSE' } AUTHOR : 'Author' FAMILY : TASK2 NAME : 'Name' VERSION : 1.0 BEGIN // TO the HMI FOR display "HMI_Instrument".FTN301.PVFiltered := "Blender_Variables".gH2O_Flow_Meas ; "HMI_Variables_Status".Analog_Values.WaterTotalizer := "Blender_Variables_Pers".gWaterTotal ; "HMI_Instrument".FTP302.PVFiltered := "Blender_Variables".gSYR_Flow_Meas ; "HMI_Variables_Status".Analog_Values.SyrupTotalizerKg := "Blender_Variables_Pers".gSyrupTotal ; (* classic code: IF "HMI_Blender_Parameters".Actual_Recipe_Parameters._SyrupDensity <> 0.0 AND "gBlenderBlending" THEN*) IF "HMI_Blender_Parameters".Actual_Recipe_Parameters._SyrupDensity <> REAL#0.0 AND "gBlenderBlending" THEN "HMI_Variables_Status".Analog_Values.SyrupTotalizerLt := "Blender_Variables_Pers".gSyrupTotal / "HMI_Blender_Parameters".Actual_Recipe_Parameters._SyrupDensity ; END_IF; "HMI_Instrument".FTP302_Brix.PVFiltered := "Profibus_Variables".gFTP302_Brix ; //"Blender_Variables".gMeterSyrBrix "HMI_Instrument".FTP302_Density.PVFiltered := "Profibus_Variables".gFTP302_Density ; //"Blender_Variables".gMeterSyrDensity "HMI_Instrument".FTP302_Temperature.PVFiltered := "Profibus_Variables".gFTP302_Temp ; //"Blender_Variables".gMeterSyrTemp "HMI_Instrument".FTM303.PVFiltered := "Blender_Variables".gCO2_Flow_Meas; "HMI_Variables_Status".Analog_Values.CO2Temperature := "Profibus_Variables".gFTM303_Temp ; "HMI_Variables_Status".Analog_Values.CO2Density := "Profibus_Variables".gFTM303_Density ; "HMI_Variables_Status".Analog_Values.CO2Totalizer := "Blender_Variables_Pers".gCO2Total ; // Kg "HMI_Variables_Status".Analog_Values.ProductTotalizer := "Blender_Variables_Pers".gWaterTotal + "HMI_Variables_Status".Analog_Values.SyrupTotalizerLt ; "HMI_Variables_Status".Analog_Values.ProductBrixCorrection := "Blender_Variables".gBrixTrackingCorr ; "HMI_Variables_Status".Analog_Values.ProductCO2Correction := "Blender_Variables".gCO2TrackingCorr ; "HMI_Instrument".QTM_301.PVFiltered := "Blender_Variables".gProductBrix ; "HMI_Instrument".QTM_302.PVFiltered := "Blender_Variables".gProductCO2 ; "HMI_Instrument"._ProductO2Conc.PVFiltered := "Blender_Variables".gProductO2Conc ; "HMI_Instrument".QTM_RecipeNum.PVFiltered := "mPDS_PA_Data".Output_To_mPDS.gPAmPDSNumRecipe; "HMI_Instrument".QTM_Temperature.PVFiltered := "Blender_Variables".gProductTemp ; // Blending Error TO HMI IF NOT "Procedure_Variables".First_Production.Done OR "gBlenderCIPMode" OR "gBlenderRinseMode" OR "gBlendErrorLowSyr_Fault" OR "gBlendErrorHighSyr_Fault" THEN "HMI_Variables_Status".Analog_Values.MaxBlendError := "HMI_Blender_Parameters".ProcessSetup._MaxBlendError ; "HMI_Variables_Status".Analog_Values.MaxCarboCO2Error := "HMI_Blender_Parameters".ProcessSetup._MaxCarboCO2Error ; ELSIF "gBlenderEnToRamp" THEN (* classic code: "HMI_Variables_Status".Analog_Values.MaxBlendError := "HMI_Blender_Parameters".ProcessSetup._MaxBlendError / 6.0 ;*) "HMI_Variables_Status".Analog_Values.MaxBlendError := "HMI_Blender_Parameters".ProcessSetup._MaxBlendError / REAL#3.0 ; (* classic code: "HMI_Variables_Status".Analog_Values.MaxCarboCO2Error := "HMI_Blender_Parameters".ProcessSetup._MaxCarboCO2Error / 6.0 ;*) "HMI_Variables_Status".Analog_Values.MaxCarboCO2Error := "HMI_Blender_Parameters".ProcessSetup._MaxCarboCO2Error / REAL#3.0 ; ELSE (* classic code: "HMI_Variables_Status".Analog_Values.MaxBlendError := "HMI_Blender_Parameters".ProcessSetup._MaxBlendError / 2.0 ;*) "HMI_Variables_Status".Analog_Values.MaxBlendError := "HMI_Blender_Parameters".ProcessSetup._MaxBlendError / REAL#1.0 ; (* classic code: "HMI_Variables_Status".Analog_Values.MaxCarboCO2Error := "HMI_Blender_Parameters".ProcessSetup._MaxCarboCO2Error / 2.0 ;*) "HMI_Variables_Status".Analog_Values.MaxCarboCO2Error := "HMI_Blender_Parameters".ProcessSetup._MaxCarboCO2Error / REAL#1.0 ; END_IF; "HMI_Variables_Status".Analog_Values.BlendError := "Blender_Variables".gBlendError ; "HMI_Variables_Status".Analog_Values.CarboError := "Blender_Variables".gCarboCO2Error ; "HMI_Alarms".gH_Message[012] := "gFTN301_FlowTooLow" ; "HMI_Alarms".gH_Message[013] := "gFTN301_SpeedTooLow" ; "HMI_Variables_Status".Analog_Values.ActualRatio := "gActualSP_RatioVol" ; "HMI_Variables_Status".Analog_Values.WaterPercentage := "Blender_Variables".gActualWaterPerc ; "HMI_Variables_Status".Analog_Values.SyrupPercentage := "Blender_Variables".gActualSyrupPerc ; "HMI_Variables_Status".Analog_Values.ActualCO2 := "Blender_Variables".gActual_SP_CO2 ; "HMI_Instrument".LTP303.SP := "HMI_PID".RVP303.Sp ; "HMI_Instrument".PTM304.SP := "HMI_PID".RVM301.Sp ; IF NOT "Blender_Variables_Pers".gCarboStillRecipe THEN "HMI_Instrument".PTN313.SP := "Blender_Constants".gTN301VacuumPress ; ELSE (* classic code: "HMI_Instrument".PTN313.SP := 0.0 ;*) "HMI_Instrument".PTN313.SP := REAL#0.0 ; END_IF ; "HMI_Instrument".PCM306.SP := "HMI_PID".PCM306.Sp ; "HMI_Instrument".TT_S5.SP := "HMI_PID".RVS318.Sp ; "HMI_Instrument".TTS305_1.SP := "HMI_PID".RVS318.Sp ; "HMI_Instrument".TTM306_PRD.SP := "HMI_PID".RVM319_PRD.Sp ; "HMI_Instrument".TTM306_H2O.SP := "HMI_PID".RVM319_H2O.Sp ; "HMI_Instrument".FTN301.SP := "HMI_PID".RMM301.Sp ; "HMI_Instrument".FTP302.SP := "HMI_PID".RMP302.Sp ; "HMI_Instrument".FTP302_Density.SP := "HMI_Blender_Parameters".Actual_Recipe_Parameters._SyrupDensity ; "HMI_Instrument".FTP302_Brix.SP := "HMI_Blender_Parameters".Actual_Recipe_Parameters._SyrupBrix ; "HMI_Instrument".FTM303.SP := "HMI_PID".RMM303.Sp ; "HMI_Instrument".PTP338.SP := "HMI_Blender_Parameters".ProcessSetup._SyrupLinePressure ; IF "CIP_Program_Variables".Status.WaitEventRequest.LowConductivity THEN "HMI_Instrument".CTS301.SP := "CIP_Program_Variables".General_Data.SPConductivity ; ELSE (* classic code: "HMI_Instrument".CTS301.SP := 0.0 ;*) "HMI_Instrument".CTS301.SP := REAL#0.0 ; END_IF ; IF "CIP_Program_Variables".Status.WaitEventRequest.HighConductivity THEN "HMI_Instrument".CTS302.SP := "CIP_Program_Variables".General_Data.SPConductivity ; ELSE (* classic code: "HMI_Instrument".CTS302.SP := 0.0 ;*) "HMI_Instrument".CTS302.SP := REAL#0.0 ; END_IF ; "HMI_Instrument".QTM_302.SP := "HMI_Blender_Parameters".Actual_Recipe_Parameters._CO2Vols * "HMI_Blender_Parameters".Actual_Recipe_Parameters._CO2Fact ; "HMI_Instrument".QTM_301.SP := "HMI_Blender_Parameters".Actual_Recipe_Parameters._ProductBrix + "HMI_Blender_Parameters".Actual_Recipe_Parameters._ProdBrixOffset ; "HMI_Instrument".QTM_Temperature.SP := "HMI_PID".RVM319_PRD.Sp ; "HMI_Instrument".RVN304.SP := "HMI_PID".RVN304.Sp ; "P1_Pres_Edit_Recipe" := ("gHProcessSetup_KWatPump"*(SQR("HMI_Recipe_Edit".Actual_Recipe_Parameters._WaterPumpFreq))/10) - "PID_Variables".PPN301FrictionLoss; "HMI_Variables_Status".Analog_Values.PPN301_Pressure := "P1_Pres_Edit_Recipe" ; END_FUNCTION ```