PulsesPerLiter added to Entities.MeterTestResult and to result items. Version 1.4.36

More times added to Entities.Test (TimeBeforeFlow, TimeFlow2Mass, TimeMass2Start, TimeStop2Mass).
Activity display fixed in FlyingStartCollectionMethod.
This commit is contained in:
Milan Hanajik 2015-05-19 15:38:58 +02:00
parent 6690ad65ca
commit cd9042a648
15 changed files with 52 additions and 30 deletions

View File

@ -284,7 +284,8 @@ namespace TBF.BenchControl.TestMethods.Adjustment
tstRslt.Meters[i].SerialNr = (WaterMeters.Count > i) ? WaterMeters[i].SerialNr : string.Empty;
tstRslt.Meters[i].VolumeStart = 0; /// liter
tstRslt.Meters[i].VolumeEnd = 0; /// liter
if (sensPath.RegisterReaders[i].PulsesPerLtr <= float.Epsilon) tstRslt.Meters[i].VolumeMeter = 0;
tstRslt.Meters[i].PulsesPerLiter = (sensPath.RegisterReaders[i] == null ? 1.0f : sensPath.RegisterReaders[i].PulsesPerLtr);
if (sensPath.RegisterReaders[i].PulsesPerLtr <= float.Epsilon) tstRslt.Meters[i].VolumeMeter = 0;
else tstRslt.Meters[i].VolumeMeter = Convert.ToSingle(WMPulses[i]) / sensPath.RegisterReaders[i].PulsesPerLtr;
tstRslt.Meters[i].VolumeRef = tstRslt.ConstMaster * WMRefPulses[i]; /// liter
tstRslt.Meters[i].PulsesMeter = WMPulses[i];

View File

@ -304,7 +304,7 @@ namespace TBF.BenchControl.TestMethods.CombinedMeters
.AddOperation(outPath.Balance.ReadMassOp(ref mass))
.AddOperation(cBrd.UpdateTankWeightOp())
.AddOperation(processDataLoggingOp)
.AddOperation(new Operations.TimerOp(test.Time2MassMsrmt))
.AddOperation(new Operations.TimerOp(test.TimeStop2Mass))
.EnterState();
do
{
@ -403,6 +403,7 @@ namespace TBF.BenchControl.TestMethods.CombinedMeters
}
else
{
tstRslt.Meters[i].PulsesPerLiter = (sensPath.RegisterReaders[i] == null ? 1.0f : sensPath.RegisterReaders[i].PulsesPerLtr);
tstRslt.Meters[i].VolumeMeter = Convert.ToSingle(WMPulses[i]) / sensPath.RegisterReaders[i].PulsesPerLtr;
}

View File

@ -605,6 +605,7 @@ namespace TBF.BenchControl.TestMethods.CombinedWithDetection
}
else
{
tstRslt.Meters[i].PulsesPerLiter = (sensPath.RegisterReaders[i] == null ? 1.0f : sensPath.RegisterReaders[i].PulsesPerLtr);
tstRslt.Meters[i].VolumeMeter = Convert.ToSingle(WMPulses[i]) / sensPath.RegisterReaders[i].PulsesPerLtr;
}

View File

@ -399,7 +399,7 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection
.AddOperation(outPath.Balance.ReadMassOp(ref mass))
.AddOperation(cBrd.UpdateTankWeightOp())
.AddOperation(processDataLoggingOp)
.AddOperation(new Operations.TimerOp(test.Time2MassMsrmt))
.AddOperation(new Operations.TimerOp(test.TimeStop2Mass))
.EnterState();
do
{

View File

@ -253,7 +253,8 @@ namespace TBF.BenchControl.TestMethods.FlyingStart
tstRslt.Meters[i].SerialNr = (WaterMeters.Count > i) ? WaterMeters[i].SerialNr : string.Empty;
tstRslt.Meters[i].VolumeStart = 0; /// liter
tstRslt.Meters[i].VolumeEnd = 0; /// liter
if (sensPath.RegisterReaders[i].PulsesPerLtr <= float.Epsilon) tstRslt.Meters[i].VolumeMeter = 0;
tstRslt.Meters[i].PulsesPerLiter = (sensPath.RegisterReaders[i] == null ? 1.0f : sensPath.RegisterReaders[i].PulsesPerLtr);
if (sensPath.RegisterReaders[i].PulsesPerLtr <= float.Epsilon) tstRslt.Meters[i].VolumeMeter = 0;
else tstRslt.Meters[i].VolumeMeter = Convert.ToSingle(WMPulses[i]) / sensPath.RegisterReaders[i].PulsesPerLtr;
tstRslt.Meters[i].VolumeRef = tstRslt.ConstMaster * WMRefPulses[i]; /// liter
tstRslt.Meters[i].PulsesMeter = WMPulses[i];

View File

@ -66,7 +66,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartCollectionMethod
float estFlowSetTime = 10.0f;
//------------------------------------------------
Bridge.OnActivity(this, Strings.Setting_the_flow);
Bridge.OnActivity(this, Strings.Starting_the_pump);
//------------------------------------------------
if (inPath.Pump is GenericDevices.IPumpFM) (inPath.Pump as GenericDevices.IPumpFM).TurnOn(test.PumpPower);
@ -139,7 +139,9 @@ namespace TBF.BenchControl.TestMethods.FlyingStartCollectionMethod
set_flow:
//--------------------------------
//------------------------------------------------
Bridge.OnActivity(this, Strings.Setting_the_flow);
//------------------------------------------------
State.Create("FlyingStartCollectionMethod : Setting the flow")
.AddOperation(checkUiOp)
.AddOperation(outPath.RegulValve.SetFlowOp(outPath.FlowMeter, test.Qfrom, test.Qto, outPath.PidCoef, refFlow, 600)) /// timeout = 10 min.
@ -188,7 +190,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartCollectionMethod
.AddOperation(outPath.Balance.ReadMassOp(ref mass))
.AddOperation(cBrd.UpdateTankWeightOp())
.AddOperation(processDataLoggingOp)
.AddOperation(new Operations.TimerOp(test.TimeFlow2Start))
.AddOperation(new Operations.TimerOp(test.TimeFlow2Mass))
.EnterState();
do
{
@ -265,13 +267,15 @@ namespace TBF.BenchControl.TestMethods.FlyingStartCollectionMethod
//--------------------------------
switch (ReadRegistersTempPressAmbient(measureOperations, true))
{
case Event.Error: { retVal = Event.Error; goto stopTest; }
case Event.UiCmdStop: { retVal = Event.UiCmdStop; goto stopTest; }
case Event.Error: { retVal = Event.Error; goto stopTest; }
case Event.UiCmdStop: { retVal = Event.UiCmdStop; goto stopTest; }
case Event.MeasurementCompleted: goto test_completed;
}
int remainingTime = Math.Max(estimtdEndTime - StateMachine.Time, 0);
//------------------------------------------------
int remainingTime = Math.Max(estimtdEndTime - StateMachine.Time, 0);
Bridge.OnActivity(this, string.Format("{0} ... {1} s", Strings.Test_in_progress, remainingTime));
//------------------------------------------------
if (firstTime)
{
@ -326,7 +330,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartCollectionMethod
.AddOperation(outPath.Balance.ReadMassOp(ref mass))
.AddOperation(cBrd.UpdateTankWeightOp())
.AddOperation(processDataLoggingOp)
.AddOperation(new Operations.TimerOp(test.Time2MassMsrmt))
.AddOperation(new Operations.TimerOp(test.TimeStop2Mass))
.EnterState();
do
{
@ -421,6 +425,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartCollectionMethod
tstRslt.Meters[i].SerialNr = (WaterMeters.Count > i) ? WaterMeters[i].SerialNr : string.Empty;
tstRslt.Meters[i].VolumeStart = 0; /// liter
tstRslt.Meters[i].VolumeEnd = 0; /// liter
tstRslt.Meters[i].PulsesPerLiter = (sensPath.RegisterReaders[i] == null ? 1.0f : sensPath.RegisterReaders[i].PulsesPerLtr);
if (sensPath.RegisterReaders[i].PulsesPerLtr <= float.Epsilon) tstRslt.Meters[i].VolumeMeter = 0;
else tstRslt.Meters[i].VolumeMeter = Convert.ToSingle(WMPulses[i]) / sensPath.RegisterReaders[i].PulsesPerLtr;
tstRslt.Meters[i].VolumeRef = tstRslt.ConstMaster * WMRefPulses[i]; /// liter

View File

@ -284,7 +284,7 @@ namespace TBF.BenchControl.TestMethods.ReferenceFlowmeterCalibration
.AddOperation(outPath.Balance.ReadMassOp(ref mass))
.AddOperation(cBrd.UpdateTankWeightOp())
.AddOperation(processDataLoggingOp)
.AddOperation(new Operations.TimerOp(test.Time2MassMsrmt))
.AddOperation(new Operations.TimerOp(test.TimeStop2Mass))
.EnterState();
do
{

View File

@ -18,13 +18,15 @@ namespace TBF.Entities
public virtual float VolumeMeter { get; set; } /// liter
public virtual float VolumeRef { get; set; } /// liter
public virtual float VolumeErrorPct { get; set; } /// %
public virtual float PulsesMeter { get; set; } /// Not applicable for a combined meter
public virtual float PulsesMeter { get; set; } /// # of pulses
public virtual float PulsesPerLiter { get; set; } /// Pulses per liter
public virtual float PulsesMaster { get; set; }
public virtual float Time { get; set; } /// sec.
public virtual bool Passed { get; set; } /// true = test passed
public MeterTestResult()
{
PulsesPerLiter = 1.0f;
}
public MeterTestResult(TestResult testResult)
@ -46,6 +48,7 @@ namespace TBF.Entities
result.VolumeRef = VolumeRef;
result.VolumeErrorPct = VolumeErrorPct;
result.PulsesMeter = PulsesMeter;
result.PulsesPerLiter = PulsesPerLiter;
result.PulsesMaster = PulsesMaster;
result.Time = Time;
result.Passed = Passed;

View File

@ -24,8 +24,10 @@ namespace TBF.Entities
public virtual bool Emptying { get; set; }
public virtual bool Zeroing { get; set; }
public virtual float PumpPower { get; set; } /// Power of the pump in [%] in the range 0 .. 100.0f, use values 0% and 100% for non-FM pumps
public virtual int TimeFlow2Start { get; set; } /// Delay time from the flow stable to the 1st mass measurement (test start) in [s]
public virtual int Time2MassMsrmt { get; set; } /// Delay time from the test end (diverted) to the 2nd mass measuremen in [s]
public virtual int TimeBeforeFlow { get; set; } /// Delay time before the start of flow control in [s]
public virtual int TimeFlow2Mass { get; set; } /// Delay time from the flow stable to the 1st mass measurement in [s]
public virtual int TimeMass2Start { get; set; } /// Delay time from the 1st mass measurement to the test start in [s]
public virtual int TimeStop2Mass { get; set; } /// Delay time from the test end (diverted) to the 2nd mass measuremen in [s]
public virtual string Method { get; set; }
public virtual float ErrLimLo { get; set; } /// in [%] (usually < 0)
public virtual float ErrLimHi { get; set; } /// in [%] (usually > 0)
@ -55,8 +57,10 @@ namespace TBF.Entities
Emptying = false;
Zeroing = false;
PumpPower = 60.0f; /// [%]
TimeFlow2Start = 5; /// [s] between flow stable and the 1st mass measurement (test start) in [s]
Time2MassMsrmt = 5; /// [s] between the test end and the final mass measurement
TimeBeforeFlow = 10; /// [s] time before the start of flow control in [s]
TimeFlow2Mass = 5; /// [s] time from the flow stable to the 1st mass measurement in [s]
TimeMass2Start = 1; /// [s] time from the 1st mass measurement to the test start in [s]
TimeStop2Mass = 5; /// [s] between the test end and the final mass measurement
ErrLimLo = -2.0f; /// [%] lower error limit
ErrLimHi = 2.0f; /// [%] upper error limit
TolerRed = 5.0; /// = Filter parameter
@ -84,8 +88,10 @@ namespace TBF.Entities
result.Emptying = Emptying;
result.Zeroing = Zeroing;
result.PumpPower = PumpPower;
result.TimeFlow2Start = TimeFlow2Start;
result.Time2MassMsrmt = Time2MassMsrmt;
result.TimeBeforeFlow = TimeBeforeFlow;
result.TimeFlow2Mass = TimeFlow2Mass;
result.TimeMass2Start = TimeMass2Start;
result.TimeStop2Mass = TimeStop2Mass;
result.Method = Method;
result.ErrLimLo = ErrLimLo;
result.ErrLimHi = ErrLimHi;

View File

@ -151,7 +151,7 @@ namespace TBF.Entities
Emptying = test.Emptying;
Zeroing = test.Zeroing;
PumpPower = PumpPower;
Time2MassMsrmt = test.Time2MassMsrmt;
Time2MassMsrmt = test.TimeStop2Mass;
Method = test.Method;
ErrLimLo = test.ErrLimLo;
ErrLimHi = test.ErrLimHi;

View File

@ -99,8 +99,8 @@ namespace TBF.Forms
(x, y, z) => z.TestResult.TimeStart.ToShortTimeString()));
AllItems.Add(new ResultItemSpec("End time", "T end", x => x.TestResult.TimeEnd.ToShortTimeString(),
(x, y, z) => z.TestResult.TimeEnd.ToShortTimeString()));
AllItems.Add(new ResultItemSpec("Test time", "T [s]", x => x.TestResult.TimeEnd.ToShortTimeString(),
(x, y, z) => z.TestResult.TimeEnd.ToShortTimeString()));
AllItems.Add(new ResultItemSpec("Test time", "T [s]", x => x.TestResult.Time.ToString("F2"),
(x, y, z) => z.TestResult.Time.ToString("F2")));
AllItems.Add(new ResultItemSpec("Flow", Strings.Flow_m3h, x => Utils.FloatToStr(x.TestResult.FlowVolume / 1000.0f, 4),
(x, y, z) => Utils.FloatToStr(z.TestResult.FlowVolume / 1000.0f, 4)));
AllItems.Add(new ResultItemSpec("T in", Strings.T_in, x => x.TestResult.TempInAvrg.ToString("F2"),
@ -144,6 +144,7 @@ namespace TBF.Forms
AllItems.Add(new ResultItemSpec("Serial Nr", "s/n", x => x.SerialNr, null));
AllItems.Add(new ResultItemSpec("End state", "End state", x => x.EndState, null));
AllItems.Add(new ResultItemSpec("Pulses", "Pulses", x => x.PulsesMeter.ToString(), null));
AllItems.Add(new ResultItemSpec("Pulses/liter", "Pulses/liter", x => x.PulsesPerLiter.ToString(), null));
AllItems.Add(new ResultItemSpec("Reference pulses", "Ref.pulses", x => x.PulsesMaster.ToString(), null));
/// Combined water meters only results

View File

@ -21,6 +21,7 @@ namespace TBF.Mappings
Map(x => x.VolumeRef);
Map(x => x.VolumeErrorPct);
Map(x => x.PulsesMeter);
Map(x => x.PulsesPerLiter);
Map(x => x.PulsesMaster);
Map(x => x.Time);
}

View File

@ -22,8 +22,10 @@ namespace TBF.Mappings
Map(x => x.Emptying);
Map(x => x.Zeroing);
Map(x => x.PumpPower);
Map(x => x.TimeFlow2Start);
Map(x => x.Time2MassMsrmt);
Map(x => x.TimeBeforeFlow);
Map(x => x.TimeFlow2Mass);
Map(x => x.TimeMass2Start);
Map(x => x.TimeStop2Mass);
Map(x => x.Method);
Map(x => x.ErrLimLo);
Map(x => x.ErrLimHi);

View File

@ -617,8 +617,8 @@ namespace TBF
lviMetrlg1.SubItems.Add(test.Repeats.ToString());
lviMetrlg1.SubItems.Add(test.Emptying ? Strings.yes : Strings.no);
//lviMetrlg1.SubItems.Add(test.Zeroing ? Strings.yes : Strings.no);
lviMetrlg1.SubItems.Add(test.TimeFlow2Start.ToString());
lviMetrlg1.SubItems.Add(test.Time2MassMsrmt.ToString());
lviMetrlg1.SubItems.Add(test.TimeFlow2Mass.ToString());
lviMetrlg1.SubItems.Add(test.TimeStop2Mass.ToString());
lviMetrlg1.SubItems.Add((test.Method != null) ? test.Method.ToString() : string.Empty);
metrology1ListViewEx.Items.Add(lviMetrlg1);
@ -680,8 +680,8 @@ namespace TBF
int itmp;
if (int.TryParse(lvi.SubItems[(int)MtrlgyClmn.Repeats].Text, out itmp)) entity.Repeats = itmp;
if (int.TryParse(lvi.SubItems[(int)MtrlgyClmn.Time_Flow2Start].Text, out itmp)) entity.TimeFlow2Start = itmp;
if (int.TryParse(lvi.SubItems[(int)MtrlgyClmn.Time_Stop2Mass].Text, out itmp)) entity.Time2MassMsrmt = itmp;
if (int.TryParse(lvi.SubItems[(int)MtrlgyClmn.Time_Flow2Start].Text, out itmp)) entity.TimeFlow2Mass = itmp;
if (int.TryParse(lvi.SubItems[(int)MtrlgyClmn.Time_Stop2Mass].Text, out itmp)) entity.TimeStop2Mass = itmp;
if (lvi.SubItems[(int)MtrlgyClmn.Emptying].Text.Equals(Strings.yes)) entity.Emptying = true;
else if (lvi.SubItems[(int)MtrlgyClmn.Emptying].Text.Equals(Strings.no)) entity.Emptying = false;

View File

@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
// Build Number
// Revision
//
[assembly: AssemblyVersion("1.3.36.1")]
[assembly: AssemblyFileVersion("1.3.36.1")]
[assembly: AssemblyVersion("1.4.36.1")]
[assembly: AssemblyFileVersion("1.4.36.1")]