diff --git a/TestBenchFramework/BenchControl/Sequences/ProcessData.cs b/TestBenchFramework/BenchControl/Sequences/ProcessData.cs index f6ce5cd2c..563dd3a1f 100644 --- a/TestBenchFramework/BenchControl/Sequences/ProcessData.cs +++ b/TestBenchFramework/BenchControl/Sequences/ProcessData.cs @@ -11,9 +11,9 @@ namespace TBF.BenchControl.Sequences public static FloatBox AmbientTemp = new FloatBox() { Name = "Ambient Temperature", Format = "F1" }; /// [Celsius] public static FloatBox AmbientPressure = new FloatBox() { Name = "Ambient Pressure", Format = "F0", Factor = 1000 }; /// [bar], printed by ToString() in [mbar] public static FloatBox AmbientHumidity = new FloatBox() { Name = "Ambient Humidity", Format = "F1" }; /// [%] - public static FloatBox TempIn = new FloatBox() { Name = "Temperature In", Format = "F2" }; /// [Celsius] - public static FloatBox TempOut = new FloatBox() { Name = "Temperature Out", Format = "F2" }; /// [Celsius] - public static FloatBox TempDiv = new FloatBox() { Name = "Temperature Div", Format = "F2" }; /// [Celsius] + public static FloatBox TempIn = new FloatBox() { Name = "Temperature In", Format = "F2" }; /// [°C] + public static FloatBox TempOut = new FloatBox() { Name = "Temperature Out", Format = "F2" }; /// [°C] + public static FloatBox TempDiv = new FloatBox() { Name = "Temperature Div", Format = "F2" }; /// [°C] public static FloatBox PressureUp = new FloatBox() { Name = "Pressure In", Format = "F2" }; /// [bar] public static FloatBox PressureDown = new FloatBox() { Name = "Pressure Out", Format = "F2" }; /// [bar] @@ -27,6 +27,12 @@ namespace TBF.BenchControl.Sequences public static FloatBox StartMass = new FloatBox() { Name = "Start Mass", Format = "F3" }; /// [kg] public static FloatBox EndMass = new FloatBox() { Name = "End Mass", Format = "F3" }; /// [kg] + /// Heat meters only + public static FloatBox TempRefWarm1 = new FloatBox() { Name = "T ref warm 1", Format = "F3" }; /// [°C] + public static FloatBox TempRefWarm2 = new FloatBox() { Name = "T ref warm 2", Format = "F3" }; /// [°C] + public static FloatBox TempRefCold1 = new FloatBox() { Name = "T ref cold 1", Format = "F3" }; /// [°C] + public static FloatBox TempRefCold2 = new FloatBox() { Name = "T ref cold 2", Format = "F3" }; /// [°C] + public static DateTime TestStartTime; public static DateTime TestEndTime; diff --git a/TestBenchFramework/BenchControl/Sequences/SequenceBase.cs b/TestBenchFramework/BenchControl/Sequences/SequenceBase.cs index 109947453..525eb887e 100644 --- a/TestBenchFramework/BenchControl/Sequences/SequenceBase.cs +++ b/TestBenchFramework/BenchControl/Sequences/SequenceBase.cs @@ -590,6 +590,10 @@ namespace TBF.BenchControl.Sequences .AddOperation(outPath.TempDiv.ReadTempOp(ref TempDiv)) .AddOperation(benchPath.PressIn.ReadPressureOp(ref PressureUp)) .AddOperation(benchPath.PressOut.ReadPressureOp(ref PressureDown)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefWarm1.ReadTempOp(ref TempRefWarm1)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefWarm2.ReadTempOp(ref TempRefWarm2)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefCold1.ReadTempOp(ref TempRefCold1)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefCold2.ReadTempOp(ref TempRefCold2)) .AddOperation(realTest ? outPath.Balance.ReadMassOp(ref Mass) : null) .AddOperation(StateMachine.ControlBoard.UpdateTankWeightOp()) .AddOperation((StateMachine.Ambient != null) diff --git a/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs b/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs index a7b219d15..66ca16c48 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs @@ -213,17 +213,13 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection int lastTimeSec = StateMachine.Time; float Tw_last = 0; float Tc_last = 0; - FloatBox Tw1 = new FloatBox(); - FloatBox Tw2 = new FloatBox(); - FloatBox Tc1 = new FloatBox(); - FloatBox Tc2 = new FloatBox(); State.Create("FixedStartMassCollection : Check temperature stabilized.") .AddOperation(checkUiOp) - .AddOperation(heatMetersPath.TMeterRefWarm1.ReadTempOp(ref Tw1)) - .AddOperation(heatMetersPath.TMeterRefWarm2.ReadTempOp(ref Tw2)) - .AddOperation(heatMetersPath.TMeterRefCold1.ReadTempOp(ref Tc1)) - .AddOperation(heatMetersPath.TMeterRefCold2.ReadTempOp(ref Tc2)) + .AddOperation(heatMetersPath.TMeterRefWarm1.ReadTempOp(ref TempRefWarm1)) + .AddOperation(heatMetersPath.TMeterRefWarm2.ReadTempOp(ref TempRefWarm2)) + .AddOperation(heatMetersPath.TMeterRefCold1.ReadTempOp(ref TempRefCold1)) + .AddOperation(heatMetersPath.TMeterRefCold2.ReadTempOp(ref TempRefCold2)) .EnterState(); do { @@ -231,24 +227,27 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; } if (e.Contains(Event.Next)) goto temperature_set; - if (StateMachine.Time - lastTimeSec > 10 || StateMachine.Time - lastTimeSec < 0) - { - float Tw = (Tw1.Val + Tw2.Val) / 2.0f; - float Tc = (Tc1.Val + Tc2.Val) / 2.0f; - if (heatMetersTestParams.TempWarmLo <= Tw && Tw <= heatMetersTestParams.TempWarmHi && - heatMetersTestParams.TempColdLo <= Tc && Tc <= heatMetersTestParams.TempColdHi && - Math.Abs(Tw - Tw_last) <= heatMetersTestParams.ChangeInTimeWarm && - Math.Abs(Tc - Tc_last) <= heatMetersTestParams.ChangeInTimeCold && - Math.Abs(Tw1.Val - Tw2.Val) <= heatMetersTestParams.DeltaTempWarm && - Math.Abs(Tc1.Val - Tc2.Val) <= heatMetersTestParams.DeltaTempCold) - { - goto temperature_set; - } + if (TempRefWarm1.Val != 0 && TempRefWarm2.Val != 0 && TempRefCold1.Val != 0 && TempRefCold2.Val != 0) + { + if (StateMachine.Time - lastTimeSec > 10 || StateMachine.Time - lastTimeSec < 0) + { + float Tw = (TempRefWarm1.Val + TempRefWarm2.Val) / 2.0f; + float Tc = (TempRefCold1.Val + TempRefCold2.Val) / 2.0f; + if (heatMetersTestParams.TempWarmLo <= Tw && Tw <= heatMetersTestParams.TempWarmHi && + heatMetersTestParams.TempColdLo <= Tc && Tc <= heatMetersTestParams.TempColdHi && + Math.Abs(Tw - Tw_last) <= heatMetersTestParams.ChangeInTimeWarm && + Math.Abs(Tc - Tc_last) <= heatMetersTestParams.ChangeInTimeCold && + Math.Abs(TempRefWarm1.Val - TempRefWarm2.Val) <= heatMetersTestParams.DeltaTempWarm && + Math.Abs(TempRefCold1.Val - TempRefCold2.Val) <= heatMetersTestParams.DeltaTempCold) + { + goto temperature_set; + } - lastTimeSec = StateMachine.Time; - Tw_last = Tw; - Tc_last = Tc; - } + lastTimeSec = StateMachine.Time; + Tw_last = Tw; + Tc_last = Tc; + } + } } while (true); } @@ -323,6 +322,10 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection .AddOperation(outPath.TempDiv.ReadTempOp(ref TempDiv)) .AddOperation(benchPath.PressIn.ReadPressureOp(ref PressureUp)) .AddOperation(benchPath.PressOut.ReadPressureOp(ref PressureDown)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefWarm1.ReadTempOp(ref TempRefWarm1)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefWarm2.ReadTempOp(ref TempRefWarm2)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefCold1.ReadTempOp(ref TempRefCold1)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefCold2.ReadTempOp(ref TempRefCold2)) .AddOperation((StateMachine.Ambient != null) ? StateMachine.Ambient.ReadAmbientOp(AmbientTemp, AmbientPressure, AmbientHumidity) : null) .AddOperations(measureOperations) @@ -346,7 +349,11 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection State.Create("FixedStartMassCollection : Starting the test") .AddOperation(checkUiOp) .AddOperations(measureOperations) - .AddOperation(cBrd.StartMeasurementOp(outPath, Elde.TestMethods.Diverter | Elde.TestMethods.Synchro, + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefWarm1.ReadTempOp(ref TempRefWarm1)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefWarm2.ReadTempOp(ref TempRefWarm2)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefCold1.ReadTempOp(ref TempRefCold1)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefCold2.ReadTempOp(ref TempRefCold2)) + .AddOperation(cBrd.StartMeasurementOp(outPath, Elde.TestMethods.Diverter | Elde.TestMethods.Synchro, test.Qfrom, test.Qto, 2 * totalPulses, (float)test.TolerRed)) .EnterState(); do @@ -360,7 +367,11 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection State.Create("FixedStartMassCollection : Opening the start/stop valve at the beginning of the fixed start test") .AddOperation(checkUiOp) - .AddOperation(StateMachine.ControlBoard.SetValvesOp(outPath.StartValve, null)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefWarm1.ReadTempOp(ref TempRefWarm1)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefWarm2.ReadTempOp(ref TempRefWarm2)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefCold1.ReadTempOp(ref TempRefCold1)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefCold2.ReadTempOp(ref TempRefCold2)) + .AddOperation(StateMachine.ControlBoard.SetValvesOp(outPath.StartValve, null)) .AddOperation(StateMachine.ControlBoard.UpdateTankWeightOp()) .EnterState(); do @@ -420,8 +431,8 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection else { //double deltaTime = (double)(StateMachine.Time - lastEnergyUpdateTime); - float T_in = (heatMetersPath.TMeterRefWarm1.ReadTemperature() + heatMetersPath.TMeterRefWarm2.ReadTemperature()) / 2; /// [°C] - float T_out = (heatMetersPath.TMeterRefCold1.ReadTemperature() + heatMetersPath.TMeterRefCold2.ReadTemperature()) / 2; /// [°C] + float T_in = (TempRefWarm1.Val + TempRefWarm2.Val) / 2; /// [°C] + float T_out = (TempRefCold1.Val + TempRefCold2.Val) / 2; /// [°C] double deltaVolume = LtrPerRefPulse * RefPulsesDelta; /// [l] double deltaEnergy = 0.001 * deltaVolume * (T_in - T_out) * Formulas.HeatCoefficientWater(16, T_in, T_out, heatMetersTestParams.FlowMeasuredAtHiTempPipe); /// [J] = [m3] * [K] * [J/(m3 K)] Energy.Update(deltaEnergy); @@ -456,7 +467,11 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection State.Create("FixedStartMassCollection : Closing the start/stop valve at the end of the fixed start test") .AddOperation(checkUiOp) - .AddOperation(StateMachine.ControlBoard.SetValvesOp(null, outPath.StartValve)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefWarm1.ReadTempOp(ref TempRefWarm1)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefWarm2.ReadTempOp(ref TempRefWarm2)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefCold1.ReadTempOp(ref TempRefCold1)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefCold2.ReadTempOp(ref TempRefCold2)) + .AddOperation(StateMachine.ControlBoard.SetValvesOp(null, outPath.StartValve)) .AddOperation(StateMachine.ControlBoard.UpdateTankWeightOp()) .EnterState(); do @@ -474,7 +489,11 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection .AddOperation(outPath.TempDiv.ReadTempOp(ref TempDiv)) .AddOperation(benchPath.PressIn.ReadPressureOp(ref PressureUp)) .AddOperation(benchPath.PressOut.ReadPressureOp(ref PressureDown)) - .AddOperation((StateMachine.Ambient != null) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefWarm1.ReadTempOp(ref TempRefWarm1)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefWarm2.ReadTempOp(ref TempRefWarm2)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefCold1.ReadTempOp(ref TempRefCold1)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefCold2.ReadTempOp(ref TempRefCold2)) + .AddOperation((StateMachine.Ambient != null) ? StateMachine.Ambient.ReadAmbientOp(AmbientTemp, AmbientPressure, AmbientHumidity) : null) .AddOperation(outPath.Balance.ReadMassOp(ref Mass)) .AddOperation(cBrd.UpdateTankWeightOp()) @@ -500,7 +519,11 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection .AddOperation(outPath.TempDiv.ReadTempOp(ref TempDiv)) .AddOperation(benchPath.PressIn.ReadPressureOp(ref PressureUp)) .AddOperation(benchPath.PressOut.ReadPressureOp(ref PressureDown)) - .AddOperation((StateMachine.Ambient != null) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefWarm1.ReadTempOp(ref TempRefWarm1)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefWarm2.ReadTempOp(ref TempRefWarm2)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefCold1.ReadTempOp(ref TempRefCold1)) + .AddOperation(heatMetersPath == null ? null : heatMetersPath.TMeterRefCold2.ReadTempOp(ref TempRefCold2)) + .AddOperation((StateMachine.Ambient != null) ? StateMachine.Ambient.ReadAmbientOp(AmbientTemp, AmbientPressure, AmbientHumidity) : null) .AddOperation(outPath.Balance.ReadStableMassOp(ref EndMass, test.MassRepeats, test.MassSpread, test.MassMethod)) .AddOperation(cBrd.UpdateTankWeightOp()) diff --git a/TestBenchFramework/Properties/AssemblyInfo.cs b/TestBenchFramework/Properties/AssemblyInfo.cs index 7392d7279..22f5a3269 100644 --- a/TestBenchFramework/Properties/AssemblyInfo.cs +++ b/TestBenchFramework/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("2.10.342.1")] -[assembly: AssemblyFileVersion("2.10.342.1")] +[assembly: AssemblyVersion("2.10.343.1")] +[assembly: AssemblyFileVersion("2.10.343.1")]