6.9 KiB
6.9 KiB
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