Heat meters support for measurement with pulses, change in ResultsDB.MeterTestRslt, ver. 2.10.352
This commit is contained in:
+10
-1
@@ -12,40 +12,49 @@ namespace Config
|
||||
public const int WMsCount = 3;
|
||||
public const int LineSize = 1;
|
||||
public const int CompoundWMsCount = 1;
|
||||
public const int HeatMetersCount = 0;
|
||||
#elif DN100 || BADGER_VELKA_TRAT
|
||||
public const int WMsCount = 3;
|
||||
public const int LineSize = 3;
|
||||
public const int CompoundWMsCount = 1;
|
||||
public const int HeatMetersCount = 0;
|
||||
#elif FUZHOU300 || FUZHOU150 || PT200IL || PUCHONG_PT200 || GENESIS
|
||||
public const int WMsCount = 6;
|
||||
public const int LineSize = 6;
|
||||
public const int CompoundWMsCount = 3;
|
||||
public const int HeatMetersCount = 0;
|
||||
#elif TORINO50 || BADGER_MALA_TRAT
|
||||
public const int WMsCount = 6;
|
||||
public const int LineSize = 6;
|
||||
public const int CompoundWMsCount = 1;
|
||||
public const int HeatMetersCount = 0;
|
||||
#elif TORUN_PT50_2015 || CEVAK_PT40_272 || MURES_PT40 || FUZHOU_40
|
||||
public const int WMsCount = 20;
|
||||
public const int LineSize = 10;
|
||||
public const int CompoundWMsCount = 1;
|
||||
public const int HeatMetersCount = 0;
|
||||
#elif IPERLST
|
||||
public const int WMsCount = 40;
|
||||
public const int LineSize = 20;
|
||||
public const int CompoundWMsCount = 1;
|
||||
public const int HeatMetersCount = 0;
|
||||
#elif IPERLST_SPECIAL
|
||||
public const int WMsCount = 6;
|
||||
public const int LineSize = 6;
|
||||
public const int CompoundWMsCount = 1;
|
||||
public const int HeatMetersCount = 0;
|
||||
#elif SLM_50
|
||||
public const int WMsCount = 12;
|
||||
public const int LineSize = 12;
|
||||
public const int CompoundWMsCount = 1;
|
||||
public const int HeatMetersCount = 6;
|
||||
#elif SLM_END
|
||||
public const int WMsCount = 12;
|
||||
public const int LineSize = 6;
|
||||
public const int CompoundWMsCount = 1;
|
||||
public const int HeatMetersCount = 0;
|
||||
#endif
|
||||
public static int MaxPartNr()
|
||||
public static int MaxPartNr()
|
||||
{
|
||||
return Math.Max(WMsCount / LineSize, CompoundWMsCount);
|
||||
}
|
||||
|
||||
@@ -76,6 +76,8 @@ namespace Config.Entities
|
||||
CompoundMain,
|
||||
CompoundAux,
|
||||
Compound,
|
||||
HeatMeterVolume,
|
||||
HeatMeterEnergy,
|
||||
}
|
||||
|
||||
public enum Medium
|
||||
|
||||
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("2.10.351.0")]
|
||||
[assembly: AssemblyFileVersion("2.10.351.0")]
|
||||
[assembly: AssemblyVersion("2.10.352.0")]
|
||||
[assembly: AssemblyFileVersion("2.10.352.0")]
|
||||
|
||||
+16
-11
@@ -91,22 +91,27 @@ namespace Results
|
||||
|
||||
if (t.Part != 0 && waterMeterParts[i] != 0 && t.Part != waterMeterParts[i]) continue;
|
||||
|
||||
///
|
||||
/// Create empty watermeter test results and add them to the list and to dictionaries
|
||||
if (!d.Batch.Compound)
|
||||
///
|
||||
IList<MeterTestRslt> wmtrs = d.WaterMeters[i].MeterTestRslts;
|
||||
if (d.Batch.Compound)
|
||||
{
|
||||
MeterTestRslt mtr = new MeterTestRslt(d.WaterMeters[i], tr, Config.Entities.CompoundMeterId.Single);
|
||||
d.WaterMeters[i].MeterTestRslts.Add(mtr);
|
||||
/// Compound water meter
|
||||
wmtrs.Add(new MeterTestRslt(d.WaterMeters[i], tr, Config.Entities.CompoundMeterId.CompoundMain));
|
||||
wmtrs.Add(new MeterTestRslt(d.WaterMeters[i], tr, Config.Entities.CompoundMeterId.CompoundAux));
|
||||
wmtrs.Add(new MeterTestRslt(d.WaterMeters[i], tr, Config.Entities.CompoundMeterId.Compound));
|
||||
}
|
||||
else if (d.Batch.HeatMeter)
|
||||
{
|
||||
/// Heat meter
|
||||
wmtrs.Add(new MeterTestRslt(d.WaterMeters[i], tr, Config.Entities.CompoundMeterId.HeatMeterVolume));
|
||||
wmtrs.Add(new MeterTestRslt(d.WaterMeters[i], tr, Config.Entities.CompoundMeterId.HeatMeterEnergy));
|
||||
}
|
||||
else
|
||||
{
|
||||
MeterTestRslt mainMTR = new MeterTestRslt(d.WaterMeters[i], tr, Config.Entities.CompoundMeterId.CompoundMain);
|
||||
d.WaterMeters[i].MeterTestRslts.Add(mainMTR);
|
||||
|
||||
MeterTestRslt auxMTR = new MeterTestRslt(d.WaterMeters[i], tr, Config.Entities.CompoundMeterId.CompoundAux);
|
||||
d.WaterMeters[i].MeterTestRslts.Add(auxMTR);
|
||||
|
||||
MeterTestRslt cmpdMTR = new MeterTestRslt(d.WaterMeters[i], tr, Config.Entities.CompoundMeterId.Compound);
|
||||
d.WaterMeters[i].MeterTestRslts.Add(cmpdMTR);
|
||||
/// Water meter
|
||||
wmtrs.Add(new MeterTestRslt(d.WaterMeters[i], tr, Config.Entities.CompoundMeterId.Single));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,9 +31,7 @@ namespace Results.Entities
|
||||
public virtual IList<WaterMeter> WaterMeters { get; set; }
|
||||
public virtual IList<TestRslt> TestRslts { get; set; }
|
||||
public virtual bool Compound { get; set; } /// Not mapped to DB now
|
||||
#if HEAT_METERS_SUPPORT
|
||||
public virtual bool HeatMeter { get; set; } /// Not mapped to DB now
|
||||
#endif
|
||||
public virtual bool HeatMeter { get; set; } /// Not mapped to DB now
|
||||
|
||||
public Batch()
|
||||
{
|
||||
|
||||
@@ -9,24 +9,18 @@ namespace Results.Entities
|
||||
{
|
||||
public virtual int Id { get; protected set; }
|
||||
|
||||
public virtual byte CompoundMeterId { get; set; } /// 0=single, 1=compound/main, 2=compound/aux., 3=compound/overal
|
||||
public virtual double PulsesMeter { get; set; } /// # of water meter pulses
|
||||
public virtual byte CompoundMeterId { get; set; } /// 0=single, 1=compound/main, 2=compound/aux., 3=compound/overal, 4=heat meter volume, 5=heat meter energy
|
||||
public virtual double PulsesMeter { get; set; } /// # of water meter or heat meter pulses
|
||||
public virtual double PulsesMaster { get; set; } /// # of reference flowmeter pulses (gated by this water meter pulses)
|
||||
public virtual double PulsesPerLiter { get; set; } /// # of water meter pulses per one liter
|
||||
public virtual double VolumeStart { get; set; } /// [l]
|
||||
public virtual double VolumeEnd { get; set; } /// [l]
|
||||
public virtual double VolumeMeter { get; set; } /// [l]
|
||||
public virtual double VolumeRef { get; set; } /// [l]
|
||||
public virtual double PulsesPerLiter { get; set; } /// [l ^ -1], in case of heat meters (CompoundMeterId==5) pulses per kWh in [kWh ^ -1]
|
||||
public virtual double VolumeStart { get; set; } /// Volume or energy (CompoundMeterId==5) on test start in [l] or [J]
|
||||
public virtual double VolumeEnd { get; set; } /// Volume or energy (CompoundMeterId==5) on test end in [l] or [J]
|
||||
public virtual double VolumeMeter { get; set; } /// Measured volume or energy (CompoundMeterId==5) in [l] or [J]
|
||||
public virtual double VolumeRef { get; set; } /// Reference volume or energy (CompoundMeterId==5) in [l] or [J]
|
||||
public virtual double TimestampStart { get; set; } /// [s]
|
||||
public virtual double TimestampEnd { get; set; } /// [s]
|
||||
public virtual double TestTime { get; set; } /// [s]
|
||||
///
|
||||
/// Heat meter
|
||||
public virtual double EnergyStart { get; set; } /// [J]
|
||||
public virtual double EnergyEnd { get; set; } /// [J]
|
||||
public virtual double Energy { get; set; } /// [J]
|
||||
public virtual double RefEnergy { get; set; } /// [J]
|
||||
|
||||
|
||||
/// Main result
|
||||
public virtual double Error { get; set; } /// [%]
|
||||
public virtual bool TestDone { get; set; } /// true = test was completed
|
||||
|
||||
@@ -47,9 +47,8 @@ namespace Results.Entities
|
||||
public virtual string Text5 { get; set; }
|
||||
|
||||
public virtual bool Compound { get; set; }
|
||||
#if HEAT_METER_SUPPORT
|
||||
public virtual bool HeatMeter { get; set; }
|
||||
#endif
|
||||
|
||||
#if IPERLST || IPERLST_SPECIAL
|
||||
public virtual int WMTypeId { get; set; }
|
||||
public virtual int WMTypeRev { get; set; }
|
||||
@@ -102,6 +101,7 @@ namespace Results.Entities
|
||||
if (Text5 != wmd.Text5) return false;
|
||||
|
||||
if (Compound != wmd.Compound) return false;
|
||||
if (HeatMeter != wmd.HeatMeter) return false;
|
||||
|
||||
#if IPERLST || IPERLST_SPECIAL
|
||||
if (WMTypeId != wmd.WMTypeId) return false;
|
||||
|
||||
+2
-2
@@ -166,8 +166,8 @@ namespace Results
|
||||
AllItems.Add(new ItemSpec("Batch end time", Strings.End, x => x.Batch().EndTime.ToShortTimeString(), (x, y, z) => x.Batch().EndTime.ToShortTimeString()));
|
||||
|
||||
/// Heat meters results
|
||||
AllItems.Add(new ItemSpec("Energy", Strings.Energy, x => x.Energy.ToString(), null));
|
||||
AllItems.Add(new ItemSpec("Reference energy", Strings.Energy_ref, x => x.RefEnergy.ToString(), null));
|
||||
AllItems.Add(new ItemSpec("Energy", Strings.Energy, null, (x,y,z) => z.VolumeMeter.ToString()));
|
||||
AllItems.Add(new ItemSpec("Reference energy", Strings.Energy_ref, null, (x,y,z) => z.VolumeRef.ToString()));
|
||||
}
|
||||
|
||||
public static ItemSpec GetItem(string name)
|
||||
|
||||
@@ -25,12 +25,6 @@ namespace Results.Mappings
|
||||
Map(x => x.Error);
|
||||
Map(x => x.TestDone);
|
||||
Map(x => x.Passed);
|
||||
#if HEAT_METERS_SUPPORT
|
||||
Map(x => x.EnergyStart);
|
||||
Map(x => x.EnergyEnd);
|
||||
Map(x => x.Energy);
|
||||
Map(x => x.RefEnergy);
|
||||
#endif
|
||||
|
||||
References(x => x.WaterMeter);
|
||||
References(x => x.TestRslt);
|
||||
|
||||
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("2.10.351.0")]
|
||||
[assembly: AssemblyFileVersion("2.10.351.0")]
|
||||
[assembly: AssemblyVersion("2.10.352.0")]
|
||||
[assembly: AssemblyFileVersion("2.10.352.0")]
|
||||
|
||||
@@ -136,8 +136,8 @@ namespace Results
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Volume, Strings.Volume + "()", (w, t, u, f, p) => (w.GetMeterTestRslt(t) == null) ? "" : Config.Units.ConvertTo(u, w.GetMeterTestRslt(t).VolumeMeter).ToString(string.IsNullOrEmpty(p) ? "F3" : p)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Reference_volume, Strings.VolRef + "()", (w, t, u, f, p) => (w.GetMeterTestRslt(t) == null) ? "" : Config.Units.ConvertTo(u, w.GetMeterTestRslt(t).VolumeRef).ToString(string.IsNullOrEmpty(p) ? "F3" : p)));
|
||||
#if HEAT_METERS_SUPPORT
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Energy, Strings.Energy + "()", (w, t, u, f, p) => (w.GetMeterTestRslt(t) == null) ? "" : Config.Units.ConvertTo(u, w.GetMeterTestRslt(t).Energy).ToString(string.IsNullOrEmpty(p) ? "F1" : p)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Reference_energy, Strings.Energy_ref + "()", (w, t, u, f, p) => (w.GetMeterTestRslt(t) == null) ? "" : Config.Units.ConvertTo(u, w.GetMeterTestRslt(t).RefEnergy).ToString(string.IsNullOrEmpty(p) ? "F1" : p)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Energy, Strings.Energy + "()", (w, t, u, f, p) => (w.GetMeterTestRslt(t, Config.Entities.CompoundMeterId.HeatMeterEnergy) == null) ? "" : Config.Units.ConvertTo(u, w.GetMeterTestRslt(t, Config.Entities.CompoundMeterId.HeatMeterEnergy).VolumeMeter).ToString(string.IsNullOrEmpty(p) ? "F1" : p)));
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Reference_energy, Strings.Energy_ref + "()", (w, t, u, f, p) => (w.GetMeterTestRslt(t, Config.Entities.CompoundMeterId.HeatMeterEnergy) == null) ? "" : Config.Units.ConvertTo(u, w.GetMeterTestRslt(t, Config.Entities.CompoundMeterId.HeatMeterEnergy).VolumeRef).ToString(string.IsNullOrEmpty(p) ? "F1" : p)));
|
||||
#endif
|
||||
#if IPERLST || IPERLST_SPECIAL
|
||||
AllItems.Add(new WMeterRsltItemSpec(ItemID.Error, Strings.Error + "()", (w, t, u, f, p) => (w.GetMeterTestRslt(t) == null) ? "0" : Config.Units.ConvertTo(u, w.GetMeterTestRslt(t).Error).ToString(string.IsNullOrEmpty(p) ? "F2" : p)));
|
||||
|
||||
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("2.10.351.0")]
|
||||
[assembly: AssemblyFileVersion("2.10.351.0")]
|
||||
[assembly: AssemblyVersion("2.10.352.0")]
|
||||
[assembly: AssemblyFileVersion("2.10.352.0")]
|
||||
|
||||
+2
-2
@@ -6,7 +6,7 @@ using TBF.BenchControl.Generic;
|
||||
|
||||
namespace TBF.BenchControl.Elde.RegisterReader
|
||||
{
|
||||
public class RegisterReaderFactory : IComponentFactory
|
||||
public class Factory : IComponentFactory
|
||||
{
|
||||
public string ClassName { get { return "RegisterReader"; } }
|
||||
|
||||
@@ -16,7 +16,7 @@ namespace TBF.BenchControl.Elde.RegisterReader
|
||||
|
||||
public IComponent GetComponent(IComponentCfg cfg, IList<IComponent> components) { return new RegisterReader(cfg, components); }
|
||||
|
||||
public IComponentCfg DefaultConfig() { return new RegisterReaderCfg(this); }
|
||||
public IComponentCfg DefaultConfig() { return new RegisterReaderCfg("Sick", this); }
|
||||
|
||||
public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component)
|
||||
{
|
||||
@@ -13,7 +13,7 @@ namespace TBF.BenchControl.Elde.RegisterReader
|
||||
{
|
||||
public class RRProcedureParams : ProcedureParamsBase, IParamsProvider, IProcedureParams
|
||||
{
|
||||
public float PulsesPerLtr; /// Target low limit of the flow increase or decrease
|
||||
public float PulsesPerLtr; /// [l^-1]
|
||||
|
||||
public override void InitializeAll()
|
||||
{
|
||||
|
||||
@@ -33,16 +33,16 @@ namespace TBF.BenchControl.Elde.RegisterReader
|
||||
/// Private parameterless constructor invoked by all other (public) constructors
|
||||
RegisterReaderCfg()
|
||||
{
|
||||
Name = "Sick";
|
||||
ParentName = "CB";
|
||||
Position = 1;
|
||||
ProcParams = new RRProcedureParams();
|
||||
}
|
||||
|
||||
public RegisterReaderCfg(IComponentFactory factory)
|
||||
public RegisterReaderCfg(string name, IComponentFactory factory)
|
||||
: this()
|
||||
{
|
||||
this.Factory = factory;
|
||||
Name = name;
|
||||
Factory = factory;
|
||||
ParentName = "CB";
|
||||
Position = 1;
|
||||
}
|
||||
|
||||
public string ToString(int i)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
///
|
||||
/// Copyright (c) 2013-2015 Sensus Metering Systems
|
||||
/// Copyright (c) 2013-2016 Sensus Metering Systems
|
||||
///
|
||||
using TBF.BenchControl.Generic;
|
||||
using TBF.Boxes;
|
||||
@@ -8,8 +8,8 @@ namespace TBF.BenchControl.GenericDevices
|
||||
{
|
||||
public interface IRegisterReader : IComponent
|
||||
{
|
||||
double PulsesPerLtr { get; } /// Entered by users in configuration
|
||||
double LtrsPerPulse { get; } /// To calculate the volume from WMPulses
|
||||
double PulsesPerLtr { get; } /// [l^-1] ... water meter or volume measurement part of a heat meter
|
||||
double LtrsPerPulse { get; } /// [l]
|
||||
|
||||
int WMPulses { get; } /// Counted pulses of the water meter
|
||||
double WMVolume { get; } /// Counted volume of the water metter
|
||||
|
||||
@@ -249,7 +249,8 @@ namespace TBF.BenchControl.Sequences
|
||||
foreach (var wm in WaterMeters) wm.ClearData(); /// Clean water meter data
|
||||
|
||||
bool compound = (StateMachine.Procedure.MetersKind == MetersKind.Combined);
|
||||
int waterMetersCount = Math.Min(WaterMeters.Count, compound ? Config.Data.CompoundWMsCount : Config.Data.WMsCount);
|
||||
bool heatMeters = (StateMachine.Procedure.MetersKind == MetersKind.HeatMeter);
|
||||
int waterMetersCount = Math.Min(WaterMeters.Count, heatMeters ? Config.Data.HeatMetersCount : (compound ? Config.Data.CompoundWMsCount : Config.Data.WMsCount));
|
||||
///
|
||||
Results.Entities.WaterMeterData[] waterMeterData = new Results.Entities.WaterMeterData[waterMetersCount];
|
||||
///
|
||||
|
||||
@@ -73,7 +73,7 @@ namespace TBF.BenchControl
|
||||
Factories.Add(new Elde.PumpTandem.PumpFactory());
|
||||
Factories.Add(new Modbus.QuidoRS.Factory()); /// QuidoRS
|
||||
Factories.Add(new TestMethods.ReferenceFlowmeterCalibration.TestMethodFactory());
|
||||
Factories.Add(new Elde.RegisterReader.RegisterReaderFactory());
|
||||
Factories.Add(new Elde.RegisterReader.Factory());
|
||||
Factories.Add(new Elde.RegulValve.RegulValveFactory());
|
||||
Factories.Add(new Elde.RegulValveTandem.RegulValveTandemFactory());
|
||||
Factories.Add(new ResultsPrinters.Cevak.PrinterFactory());
|
||||
|
||||
+38
-24
@@ -740,38 +740,52 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection
|
||||
///
|
||||
/// Heat meters
|
||||
///
|
||||
tstRslt.RefEnergy = Energy.Sum * tstRslt.VolumeCTV / VolumeForEnergy.Sum; /// [J]=[J]*[l]/[l]
|
||||
tstRslt.RefEnergy = Energy.Sum * tstRslt.VolumeCTV / VolumeForEnergy.Sum; /// [J] = [J] * [l] / [l]
|
||||
|
||||
for (int i = 0; i < BatchRslts.WMPositionsCount; i++)
|
||||
{
|
||||
if (test.Part != 0 && test.Part != Utils.PartNr(i + 1, BatchRslts.Batch.Compound)) continue;
|
||||
|
||||
Results.Entities.MeterTestRslt meterRslt = BatchRslts.GetMeterTestRslt(testName, i, Config.Entities.CompoundMeterId.Single);
|
||||
BenchControl.Elde.FixedStartRegisterReader.RegisterReader regReader =
|
||||
sensPath.RegisterReaders[i] as BenchControl.Elde.FixedStartRegisterReader.RegisterReader;
|
||||
Results.Entities.MeterTestRslt volumeRslt = BatchRslts.GetMeterTestRslt(testName, i, Config.Entities.CompoundMeterId.HeatMeterVolume);
|
||||
Results.Entities.MeterTestRslt energyRslt = BatchRslts.GetMeterTestRslt(testName, i, Config.Entities.CompoundMeterId.HeatMeterEnergy);
|
||||
|
||||
if (meterRslt != null && regReader != null)
|
||||
BenchControl.Elde.FixedStartRegisterReader.RegisterReader volumeRegReader =
|
||||
(sensPath.RegisterReaders.Length > 2 * i) ? sensPath.RegisterReaders[2 * i] as BenchControl.Elde.FixedStartRegisterReader.RegisterReader : null;
|
||||
|
||||
BenchControl.Elde.FixedStartRegisterReader.RegisterReader energyRegReader =
|
||||
(sensPath.RegisterReaders.Length > 2 * i + 1) ? sensPath.RegisterReaders[2 * i + 1] as BenchControl.Elde.FixedStartRegisterReader.RegisterReader : null;
|
||||
|
||||
if (volumeRslt != null && volumeRegReader != null)
|
||||
{
|
||||
meterRslt.PulsesPerLiter = 1.0f;
|
||||
meterRslt.VolumeStart = regReader.BeginWMState;
|
||||
meterRslt.VolumeEnd = regReader.EndWMState;
|
||||
meterRslt.VolumeMeter = meterRslt.VolumeEnd - meterRslt.VolumeStart;
|
||||
meterRslt.VolumeRef = tstRslt.VolumeCTV; /// liter
|
||||
meterRslt.PulsesMeter = meterRslt.VolumeMeter;
|
||||
meterRslt.PulsesMaster = tstRslt.PulsesMaster;
|
||||
meterRslt.TestTime = tstRslt.TestTime;
|
||||
if (dataEntryCmpnt is GenericDevices.IHasHeatMtrStatesForm)
|
||||
{
|
||||
meterRslt.EnergyStart = (dataEntryCmpnt as GenericDevices.IHasHeatMtrStatesForm).EnergyStartState(i);
|
||||
meterRslt.EnergyEnd = (dataEntryCmpnt as GenericDevices.IHasHeatMtrStatesForm).EnergyEndState(i);
|
||||
meterRslt.Energy = meterRslt.EnergyEnd - meterRslt.EnergyStart;
|
||||
}
|
||||
meterRslt.RefEnergy = tstRslt.RefEnergy;
|
||||
volumeRslt.PulsesPerLiter = 1.0f;
|
||||
volumeRslt.VolumeStart = volumeRegReader.BeginWMState;
|
||||
volumeRslt.VolumeEnd = volumeRegReader.EndWMState;
|
||||
volumeRslt.VolumeMeter = volumeRslt.VolumeEnd - volumeRslt.VolumeStart;
|
||||
volumeRslt.VolumeRef = tstRslt.VolumeCTV;
|
||||
volumeRslt.PulsesMeter = volumeRslt.VolumeMeter;
|
||||
volumeRslt.PulsesMaster = tstRslt.PulsesMaster; /// <----------------- ???
|
||||
volumeRslt.TestTime = tstRslt.TestTime;
|
||||
|
||||
meterRslt.Error = Formulas.ErrorFromVolumes(meterRslt.Energy, meterRslt.RefEnergy);
|
||||
meterRslt.Passed = (meterRslt.Error >= test.ErrLimLo + test.Uncertainty)
|
||||
&& (meterRslt.Error <= test.ErrLimHi - test.Uncertainty);
|
||||
meterRslt.TestDone = true;
|
||||
volumeRslt.Error = Formulas.ErrorFromVolumes(volumeRslt.VolumeMeter, volumeRslt.VolumeRef);
|
||||
volumeRslt.Passed = (volumeRslt.Error >= test.ErrLimLo + test.Uncertainty)
|
||||
&& (volumeRslt.Error <= test.ErrLimHi - test.Uncertainty);
|
||||
volumeRslt.TestDone = true;
|
||||
}
|
||||
|
||||
if (energyRslt != null && energyRegReader != null && dataEntryCmpnt is GenericDevices.IHasHeatMtrStatesForm)
|
||||
{
|
||||
volumeRslt.PulsesPerLiter = 1.0f;
|
||||
energyRslt.VolumeStart = (dataEntryCmpnt as GenericDevices.IHasHeatMtrStatesForm).EnergyStartState(i);
|
||||
energyRslt.VolumeEnd = (dataEntryCmpnt as GenericDevices.IHasHeatMtrStatesForm).EnergyEndState(i);
|
||||
energyRslt.VolumeMeter = energyRslt.VolumeEnd - energyRslt.VolumeStart;
|
||||
energyRslt.VolumeRef = tstRslt.RefEnergy;
|
||||
energyRslt.PulsesMeter = energyRslt.VolumeMeter;
|
||||
energyRslt.PulsesMaster = tstRslt.PulsesMaster; /// <----------------- ???
|
||||
|
||||
energyRslt.Error = Formulas.ErrorFromVolumes(energyRslt.VolumeMeter, energyRslt.VolumeRef);
|
||||
energyRslt.Passed = (energyRslt.Error >= test.ErrLimLo + test.Uncertainty)
|
||||
&& (energyRslt.Error <= test.ErrLimHi - test.Uncertainty);
|
||||
energyRslt.TestDone = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -396,32 +396,47 @@ namespace TBF.BenchControl.TestMethods.FlyingStart
|
||||
{
|
||||
if (test.Part != 0 && test.Part != Utils.PartNr(i + 1, BatchRslts.Batch.Compound)) continue;
|
||||
|
||||
Results.Entities.MeterTestRslt meterRslt = BatchRslts.GetMeterTestRslt(testName, i, Config.Entities.CompoundMeterId.Single);
|
||||
GenericDevices.IRegisterReader regReader = sensPath.RegisterReaders[i];
|
||||
Results.Entities.MeterTestRslt volumeRslt = BatchRslts.GetMeterTestRslt(testName, i, Config.Entities.CompoundMeterId.HeatMeterVolume);
|
||||
Results.Entities.MeterTestRslt energyRslt = BatchRslts.GetMeterTestRslt(testName, i, Config.Entities.CompoundMeterId.HeatMeterEnergy);
|
||||
|
||||
if (meterRslt != null && regReader != null)
|
||||
BenchControl.Elde.FixedStartRegisterReader.RegisterReader volumeRegReader =
|
||||
(sensPath.RegisterReaders.Length > 2 * i) ? sensPath.RegisterReaders[2 * i] as BenchControl.Elde.FixedStartRegisterReader.RegisterReader : null;
|
||||
|
||||
BenchControl.Elde.FixedStartRegisterReader.RegisterReader energyRegReader =
|
||||
(sensPath.RegisterReaders.Length > 2 * i + 1) ? sensPath.RegisterReaders[2 * i + 1] as BenchControl.Elde.FixedStartRegisterReader.RegisterReader : null;
|
||||
|
||||
if (volumeRslt != null && volumeRegReader != null)
|
||||
{
|
||||
meterRslt.PulsesPerLiter = regReader.PulsesPerLtr;
|
||||
meterRslt.PulsesMeter = Convert.ToDouble(regReader.WMPulses);
|
||||
meterRslt.PulsesMaster = Convert.ToDouble(regReader.WMRefPulses);
|
||||
volumeRslt.PulsesPerLiter = volumeRegReader.PulsesPerLtr; /// [l ^ -1]
|
||||
volumeRslt.PulsesMeter = Convert.ToDouble(volumeRegReader.WMPulses);
|
||||
volumeRslt.PulsesMaster = Convert.ToDouble(volumeRegReader.WMRefPulses);
|
||||
volumeRslt.VolumeStart = 0;
|
||||
volumeRslt.VolumeEnd = 0;
|
||||
volumeRslt.VolumeMeter = volumeRslt.PulsesMeter * volumeRegReader.LtrsPerPulse; /// [l]
|
||||
volumeRslt.VolumeRef = volumeRslt.PulsesMaster * tstRslt.ConstMaster; /// [l]
|
||||
volumeRslt.TestTime = tstRslt.TestTime; /// [s]
|
||||
|
||||
meterRslt.TestTime = tstRslt.TestTime; /// TODO: Malo by sa citat z dosky
|
||||
meterRslt.VolumeStart = 0; /// liter
|
||||
meterRslt.VolumeEnd = 0; /// liter
|
||||
meterRslt.VolumeMeter = meterRslt.PulsesMeter * regReader.LtrsPerPulse; /// liter
|
||||
meterRslt.VolumeRef = meterRslt.PulsesMaster * tstRslt.ConstMaster; /// liter
|
||||
volumeRslt.Error = Formulas.ErrorFromVolumes(volumeRslt.VolumeMeter, volumeRslt.VolumeRef);
|
||||
volumeRslt.Passed = (volumeRslt.Error >= test.ErrLimLo + test.Uncertainty)
|
||||
&& (volumeRslt.Error <= test.ErrLimHi - test.Uncertainty);
|
||||
volumeRslt.TestDone = true;
|
||||
}
|
||||
|
||||
/// TODO: Rewrite the following 2 lines
|
||||
meterRslt.EnergyStart = 0.0;
|
||||
meterRslt.EnergyEnd = 1.0;
|
||||
if (energyRslt != null && energyRegReader != null)
|
||||
{
|
||||
energyRslt.PulsesPerLiter = energyRegReader.PulsesPerLtr; /// [kWh ^ -1]
|
||||
energyRslt.PulsesMeter = Convert.ToDouble(energyRegReader.WMPulses);
|
||||
energyRslt.PulsesMaster = Convert.ToDouble(energyRegReader.WMRefPulses);
|
||||
energyRslt.VolumeStart = 0;
|
||||
energyRslt.VolumeEnd = 0;
|
||||
energyRslt.VolumeMeter = energyRslt.PulsesMeter * Config.Units.ConvertFrom(Config.Unit.kWh, energyRegReader.LtrsPerPulse); /// [J]
|
||||
energyRslt.VolumeRef = tstRslt.RefEnergy; /// [J]
|
||||
energyRslt.TestTime = tstRslt.TestTime; /// [s]
|
||||
|
||||
meterRslt.Energy = meterRslt.EnergyEnd - meterRslt.EnergyStart;
|
||||
meterRslt.RefEnergy = tstRslt.RefEnergy;
|
||||
|
||||
meterRslt.Error = Formulas.ErrorFromVolumes(meterRslt.Energy, meterRslt.RefEnergy);
|
||||
meterRslt.Passed = (meterRslt.Error >= test.ErrLimLo + test.Uncertainty)
|
||||
&& (meterRslt.Error <= test.ErrLimHi - test.Uncertainty);
|
||||
meterRslt.TestDone = true;
|
||||
energyRslt.Error = Formulas.ErrorFromVolumes(energyRslt.VolumeMeter, energyRslt.VolumeRef);
|
||||
energyRslt.Passed = (energyRslt.Error >= test.ErrLimLo + test.Uncertainty)
|
||||
&& (energyRslt.Error <= test.ErrLimHi - test.Uncertainty);
|
||||
energyRslt.TestDone = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+36
-21
@@ -667,32 +667,47 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection
|
||||
{
|
||||
if (test.Part != 0 && test.Part != Utils.PartNr(i + 1, BatchRslts.Batch.Compound)) continue;
|
||||
|
||||
Results.Entities.MeterTestRslt meterRslt = BatchRslts.GetMeterTestRslt(testName, i, Config.Entities.CompoundMeterId.Single);
|
||||
GenericDevices.IRegisterReader regReader = sensPath.RegisterReaders[i];
|
||||
Results.Entities.MeterTestRslt volumeRslt = BatchRslts.GetMeterTestRslt(testName, i, Config.Entities.CompoundMeterId.HeatMeterVolume);
|
||||
Results.Entities.MeterTestRslt energyRslt = BatchRslts.GetMeterTestRslt(testName, i, Config.Entities.CompoundMeterId.HeatMeterEnergy);
|
||||
|
||||
if (meterRslt != null && regReader != null)
|
||||
BenchControl.Elde.FixedStartRegisterReader.RegisterReader volumeRegReader =
|
||||
(sensPath.RegisterReaders.Length > 2 * i) ? sensPath.RegisterReaders[2 * i] as BenchControl.Elde.FixedStartRegisterReader.RegisterReader : null;
|
||||
|
||||
BenchControl.Elde.FixedStartRegisterReader.RegisterReader energyRegReader =
|
||||
(sensPath.RegisterReaders.Length > 2 * i + 1) ? sensPath.RegisterReaders[2 * i + 1] as BenchControl.Elde.FixedStartRegisterReader.RegisterReader : null;
|
||||
|
||||
if (volumeRslt != null && volumeRegReader != null)
|
||||
{
|
||||
meterRslt.PulsesPerLiter = regReader.PulsesPerLtr;
|
||||
meterRslt.PulsesMeter = Convert.ToDouble(regReader.WMPulses);
|
||||
meterRslt.PulsesMaster = Convert.ToDouble(regReader.WMRefPulses);
|
||||
volumeRslt.PulsesPerLiter = volumeRegReader.PulsesPerLtr; /// [l ^ -1]
|
||||
volumeRslt.PulsesMeter = Convert.ToDouble(volumeRegReader.WMPulses);
|
||||
volumeRslt.PulsesMaster = Convert.ToDouble(volumeRegReader.WMRefPulses);
|
||||
volumeRslt.VolumeStart = 0;
|
||||
volumeRslt.VolumeEnd = 0;
|
||||
volumeRslt.VolumeMeter = volumeRslt.PulsesMeter * volumeRegReader.LtrsPerPulse; /// [l]
|
||||
volumeRslt.VolumeRef = volumeRslt.PulsesMaster * tstRslt.ConstMaster; /// [l]
|
||||
volumeRslt.TestTime = tstRslt.TestTime; /// [s]
|
||||
|
||||
meterRslt.TestTime = tstRslt.TestTime; /// TODO: Malo by sa citat z dosky
|
||||
meterRslt.VolumeStart = 0; /// liter
|
||||
meterRslt.VolumeEnd = 0; /// liter
|
||||
meterRslt.VolumeMeter = meterRslt.PulsesMeter * regReader.LtrsPerPulse; /// liter
|
||||
meterRslt.VolumeRef = meterRslt.PulsesMaster * tstRslt.ConstMaster; /// liter
|
||||
volumeRslt.Error = Formulas.ErrorFromVolumes(volumeRslt.VolumeMeter, volumeRslt.VolumeRef);
|
||||
volumeRslt.Passed = (volumeRslt.Error >= test.ErrLimLo + test.Uncertainty)
|
||||
&& (volumeRslt.Error <= test.ErrLimHi - test.Uncertainty);
|
||||
volumeRslt.TestDone = true;
|
||||
}
|
||||
|
||||
/// TODO: Rewrite the following 2 lines
|
||||
meterRslt.EnergyStart = 0.0;
|
||||
meterRslt.EnergyEnd = 1.0;
|
||||
if (energyRslt != null && energyRegReader != null)
|
||||
{
|
||||
energyRslt.PulsesPerLiter = energyRegReader.PulsesPerLtr; /// [kWh ^ -1]
|
||||
energyRslt.PulsesMeter = Convert.ToDouble(energyRegReader.WMPulses);
|
||||
energyRslt.PulsesMaster = Convert.ToDouble(energyRegReader.WMRefPulses);
|
||||
energyRslt.VolumeStart = 0;
|
||||
energyRslt.VolumeEnd = 0;
|
||||
energyRslt.VolumeMeter = energyRslt.PulsesMeter * Config.Units.ConvertFrom(Config.Unit.kWh, energyRegReader.LtrsPerPulse); /// [J]
|
||||
energyRslt.VolumeRef = tstRslt.RefEnergy; /// [J]
|
||||
energyRslt.TestTime = tstRslt.TestTime; /// [s]
|
||||
|
||||
meterRslt.Energy = meterRslt.EnergyEnd - meterRslt.EnergyStart;
|
||||
meterRslt.RefEnergy = tstRslt.RefEnergy;
|
||||
|
||||
meterRslt.Error = Formulas.ErrorFromVolumes(meterRslt.Energy, meterRslt.RefEnergy);
|
||||
meterRslt.Passed = (meterRslt.Error >= test.ErrLimLo + test.Uncertainty)
|
||||
&& (meterRslt.Error <= test.ErrLimHi - test.Uncertainty);
|
||||
meterRslt.TestDone = true;
|
||||
energyRslt.Error = Formulas.ErrorFromVolumes(energyRslt.VolumeMeter, energyRslt.VolumeRef);
|
||||
energyRslt.Passed = (energyRslt.Error >= test.ErrLimLo + test.Uncertainty)
|
||||
&& (energyRslt.Error <= test.ErrLimHi - test.Uncertainty);
|
||||
energyRslt.TestDone = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
[assembly: AssemblyVersion("2.10.351.1")]
|
||||
[assembly: AssemblyFileVersion("2.10.351.1")]
|
||||
[assembly: AssemblyVersion("2.10.352.1")]
|
||||
[assembly: AssemblyFileVersion("2.10.352.1")]
|
||||
|
||||
@@ -2751,6 +2751,15 @@ namespace TBF.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Pulses per kWh.
|
||||
/// </summary>
|
||||
internal static string PulsesPerKWh {
|
||||
get {
|
||||
return ResourceManager.GetString("PulsesPerKWh", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Pulses per liter.
|
||||
/// </summary>
|
||||
|
||||
@@ -1585,4 +1585,7 @@
|
||||
<data name="Calibration_coefficients" xml:space="preserve">
|
||||
<value>Calibration coefficients</value>
|
||||
</data>
|
||||
<data name="PulsesPerKWh" xml:space="preserve">
|
||||
<value>Pulses per kWh</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -927,7 +927,7 @@
|
||||
<Compile Include="BenchControl\Elde\RegisterReader\RegisterReaderCfgCtrl.Designer.cs">
|
||||
<DependentUpon>RegisterReaderCfgCtrl.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="BenchControl\Elde\RegisterReader\RegisterReaderFactory.cs" />
|
||||
<Compile Include="BenchControl\Elde\RegisterReader\Factory.cs" />
|
||||
<Compile Include="BenchControl\Elde\RegulValve\RegulValveCfgCtrl.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
|
||||
Reference in New Issue
Block a user