diff --git a/TBF/Properties/AssemblyInfo.cs b/TBF/Properties/AssemblyInfo.cs
index 35c55adca..bed4002fa 100644
--- a/TBF/Properties/AssemblyInfo.cs
+++ b/TBF/Properties/AssemblyInfo.cs
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
// Build Number
// Revision
//
-[assembly: AssemblyVersion("3.1.1839.0")]
-[assembly: AssemblyFileVersion("3.1.1839.0")]
+[assembly: AssemblyVersion("3.1.1840.0")]
+[assembly: AssemblyFileVersion("3.1.1840.0")]
diff --git a/TBF/Rig/Dummy/FlowMeter/FlowMeter.cs b/TBF/Rig/Dummy/FlowMeter/FlowMeter.cs
index 41a15c50b..2c33c1a38 100644
--- a/TBF/Rig/Dummy/FlowMeter/FlowMeter.cs
+++ b/TBF/Rig/Dummy/FlowMeter/FlowMeter.cs
@@ -17,6 +17,7 @@ namespace TBF.Rig.Dummy.FlowMeter
readonly FlowMeterCfg flowMeterCfg;
public double NominalFlow { get { return flowMeterCfg.NominalFlow; } }
+ public double NominalFreq { get { return 2000; } }
public double LtrPerPulse { get { return flowMeterCfg.NominalFlow / 7200.0f; } }
public IDrawingItem DrawingItem { get { return flowMeterCfg as IDrawingItem; } }
diff --git a/TBF/Rig/GenericDevices/IFlowMeter.cs b/TBF/Rig/GenericDevices/IFlowMeter.cs
index 5b100f9e9..83a1be1f1 100644
--- a/TBF/Rig/GenericDevices/IFlowMeter.cs
+++ b/TBF/Rig/GenericDevices/IFlowMeter.cs
@@ -1,5 +1,5 @@
///
-/// Copyright (c) 2013-2018 Sensus Slovensko a.s.
+/// Copyright (c) 2013-2021 Sensus Slovensko a.s.
///
using System.Collections.Generic;
using TBF.Rig.Generic;
@@ -13,11 +13,16 @@ namespace TBF.Rig.GenericDevices
public interface IFlowMeter : IComponent
{
///
- /// Nominal flow in m3/h at the maximum (2kHz) output frequency.
- /// In case of a flowmeter couple, the sum of two nominal flows (reached at 4kHz of summed pulses).
+ /// Nominal flow in m3/h at the nominal output frequency (see below).
+ /// In case of a flowmeter couple, the sum of two nominal flows (reached at sum of nominal freq.).
///
double NominalFlow { get; }
+ ///
+ /// Nominal frequency in Hz.
+ ///
+ double NominalFreq { get; }
+
///
/// Nominal (uncorrected) volume per flowmeter pulse in [l].
///
diff --git a/TBF/Rig/Uni/FlowMeter/FlowMeter.cs b/TBF/Rig/Uni/FlowMeter/FlowMeter.cs
index 3624db045..fe2817f93 100644
--- a/TBF/Rig/Uni/FlowMeter/FlowMeter.cs
+++ b/TBF/Rig/Uni/FlowMeter/FlowMeter.cs
@@ -21,7 +21,8 @@ namespace TBF.Rig.Uni.FlowMeter
readonly FlowMeterCfg flowMeterCfg;
public int Idx1 { get { return (flowMeterCfg != null) ? flowMeterCfg.Idx1 : 0; } }
public double NominalFlow { get { return (flowMeterCfg != null) ? flowMeterCfg.NominalFlow : 0; } }
- public double LtrPerPulse { get { return (flowMeterCfg != null) ? flowMeterCfg.NominalFlow / 7200.0 : 0; } } /// Nominal frequency is 2000 Hz
+ public double NominalFreq { get { return (flowMeterCfg != null) ? flowMeterCfg.NominalFreq : 2000; } }
+ public double LtrPerPulse { get { return (flowMeterCfg != null) ? flowMeterCfg.NominalFlow / (3.6 * NominalFreq) : 0; } }
public bool RangeEnabled(int ix) { return flowMeterCfg.RangeEnabled(ix); }
public double GetTempLo(int ix) { return flowMeterCfg.GetTempLo(ix); }
public double GetTempHi(int ix) { return flowMeterCfg.GetTempHi(ix); }
@@ -55,10 +56,10 @@ namespace TBF.Rig.Uni.FlowMeter
return false;
}
}
- public double MeasuredVal { get { return NominalFlow * ReadFrequency() / 2000.0; } }
+ public double MeasuredVal { get { return NominalFlow * ReadFrequency() / NominalFreq; } }
public string AltString { get { return string.Format("Calibration expires on {0:dd.MM.yyyy}", flowMeterCfg.CalibValidDate); } }
///
- public double ReadFlow() { return NominalFlow * ReadFrequency() / 2000.0; }
+ public double ReadFlow() { return NominalFlow * ReadFrequency() / NominalFreq; }
///
public double ReadFrequency()
{
diff --git a/TBF/Rig/Uni/FlowMeter/FlowMeterCfg.cs b/TBF/Rig/Uni/FlowMeter/FlowMeterCfg.cs
index 368aa7ef4..f06c0e839 100644
--- a/TBF/Rig/Uni/FlowMeter/FlowMeterCfg.cs
+++ b/TBF/Rig/Uni/FlowMeter/FlowMeterCfg.cs
@@ -30,40 +30,41 @@ namespace TBF.Rig.Uni.FlowMeter
///
public int Idx1; /// 0 /// 1..7, (DEWA300 : I1+I2=48, I1+I3=80, I2_I3=96, I1+I2+I3=112)
public double NominalFlow; /// 1 /// Nominal flow in m3/h at nominal output frequency (typ. 2000 Hz)
- public string MsrdFormat { get; set; } /// 2
- public Unit MsrdUnit { get; set; } /// 3
- public Unit TempUnit; /// 4
- public Unit PressureUnit; /// 5
+ public double NominalFreq; /// 2 /// Nominal flow in m3/h at nominal output frequency (typ. 2000 Hz)
+ public string MsrdFormat { get; set; } /// 3
+ public Unit MsrdUnit { get; set; } /// 4
+ public Unit TempUnit; /// 5
+ public Unit PressureUnit; /// 6
- public bool Range1Enabled; /// 6
- public double Temp1Lo; /// 7
- public double Temp1Hi; /// 8
- public double Press1Lo; /// 9
- public double Press1Hi; /// 10
+ public bool Range1Enabled; /// 7
+ public double Temp1Lo; /// 8
+ public double Temp1Hi; /// 9
+ public double Press1Lo; /// 10
+ public double Press1Hi; /// 11
- public bool Range2Enabled; /// 11
- public double Temp2Lo; /// 12
- public double Temp2Hi; /// 13
- public double Press2Lo; /// 14
- public double Press2Hi; /// 15
+ public bool Range2Enabled; /// 12
+ public double Temp2Lo; /// 13
+ public double Temp2Hi; /// 14
+ public double Press2Lo; /// 15
+ public double Press2Hi; /// 16
- public bool Range3Enabled; /// 16
- public double Temp3Lo; /// 17
- public double Temp3Hi; /// 18
- public double Press3Lo; /// 19
- public double Press3Hi; /// 20
+ public bool Range3Enabled; /// 17
+ public double Temp3Lo; /// 18
+ public double Temp3Hi; /// 19
+ public double Press3Lo; /// 20
+ public double Press3Hi; /// 21
- public bool Range4Enabled; /// 21
- public double Temp4Lo; /// 22
- public double Temp4Hi; /// 23
- public double Press4Lo; /// 24
- public double Press4Hi; /// 25
+ public bool Range4Enabled; /// 22
+ public double Temp4Lo; /// 23
+ public double Temp4Hi; /// 24
+ public double Press4Lo; /// 25
+ public double Press4Hi; /// 26
- public bool Range5Enabled; /// 26
- public double Temp5Lo; /// 27
- public double Temp5Hi; /// 28
- public double Press5Lo; /// 29
- public double Press5Hi; /// 30
+ public bool Range5Enabled; /// 27
+ public double Temp5Lo; /// 28
+ public double Temp5Hi; /// 29
+ public double Press5Lo; /// 30
+ public double Press5Hi; /// 31
/// Calibration info serialized parameters displayed in Metrology tab page
public string CalibCertificateNr;
@@ -289,6 +290,7 @@ namespace TBF.Rig.Uni.FlowMeter
{
Idx1 = 1;
NominalFlow = 1;
+ NominalFreq = 2000;
MsrdFormat = "{0:F3} m2/h";
MsrdUnit = Unit.m3ph;
@@ -331,20 +333,21 @@ namespace TBF.Rig.Uni.FlowMeter
string[] paramNames = new string[]
{
"Identification number (1 .. 7)", /// 0
- "Nominal flow at 2000Hz [m3/h]", /// 1
+ "Nominal flow [m3/h]", /// 1
+ "Nominal frequency [Hz]", /// 2
- "Display format", /// 2
- "Unit of flow on a display", /// 3
- "Unit of temperature", /// 4
- "Unit of pressure", /// 5
+ "Display format", /// 3
+ "Unit of flow on a display", /// 4
+ "Unit of temperature", /// 5
+ "Unit of pressure", /// 6
- "Range 1 enabled", /// 6
- "Range 1 : Temperature Lo", /// 7
- "Range 1 : Temperature Hi", /// 8
- "Range 1 : Pressure Lo", /// 9
- "Range 1 : Pressure Hi", /// 10
+ "Range 1 enabled", /// 7
+ "Range 1 : Temperature Lo", /// 8
+ "Range 1 : Temperature Hi", /// 9
+ "Range 1 : Pressure Lo", /// 10
+ "Range 1 : Pressure Hi", /// 11
- "Range 2 enabled", /// 11
+ "Range 2 enabled", /// 12
"Range 2 : Temperature Lo",
"Range 2 : Temperature Hi",
"Range 2 : Pressure Lo",
@@ -377,17 +380,17 @@ namespace TBF.Rig.Uni.FlowMeter
{
case 0:
return new string[] { "1", "2", "3", "4", "5", "6", "7" };
- case 3:
- return new string[] { "m3/h", "l/h" };
case 4:
- return new string[] { "°C", "°F", "K" };
+ return new string[] { "m3/h", "l/h" };
case 5:
- return new string[] { "Pa", "hPa", "mbar", "kPa", "inHg", "psi", "bar", "MPa" };
+ return new string[] { "°C", "°F", "K" };
case 6:
- case 11:
- case 16:
- case 21:
- case 26:
+ return new string[] { "Pa", "hPa", "mbar", "kPa", "inHg", "psi", "bar", "MPa" };
+ case 7:
+ case 12:
+ case 17:
+ case 22:
+ case 27:
return new string[] { Strings.yes, Strings.no };
default:
return null;
@@ -400,40 +403,41 @@ namespace TBF.Rig.Uni.FlowMeter
{
case 0: return Idx1.ToString();
case 1: return NominalFlow.ToString();
- case 2: return MsrdFormat;
- case 3: return MsrdUnit.ToDescription();
- case 4: return TempUnit.ToDescription();
- case 5: return PressureUnit.ToDescription();
+ case 2: return NominalFreq.ToString();
+ case 3: return MsrdFormat;
+ case 4: return MsrdUnit.ToDescription();
+ case 5: return TempUnit.ToDescription();
+ case 6: return PressureUnit.ToDescription();
- case 6: return Range1Enabled ? Strings.yes : Strings.no;
- case 7: return Temp1Lo.ToString();
- case 8: return Temp1Hi.ToString();
- case 9: return Press1Lo.ToString();
- case 10: return Press1Hi.ToString();
+ case 7: return Range1Enabled ? Strings.yes : Strings.no;
+ case 8: return Temp1Lo.ToString();
+ case 9: return Temp1Hi.ToString();
+ case 10: return Press1Lo.ToString();
+ case 11: return Press1Hi.ToString();
- case 11: return Range2Enabled ? Strings.yes : Strings.no;
- case 12: return Temp2Lo.ToString();
- case 13: return Temp2Hi.ToString();
- case 14: return Press2Lo.ToString();
- case 15: return Press2Hi.ToString();
+ case 12: return Range2Enabled ? Strings.yes : Strings.no;
+ case 13: return Temp2Lo.ToString();
+ case 14: return Temp2Hi.ToString();
+ case 15: return Press2Lo.ToString();
+ case 16: return Press2Hi.ToString();
- case 16: return Range3Enabled ? Strings.yes : Strings.no;
- case 17: return Temp3Lo.ToString();
- case 18: return Temp3Hi.ToString();
- case 19: return Press3Lo.ToString();
- case 20: return Press3Hi.ToString();
+ case 17: return Range3Enabled ? Strings.yes : Strings.no;
+ case 18: return Temp3Lo.ToString();
+ case 19: return Temp3Hi.ToString();
+ case 20: return Press3Lo.ToString();
+ case 21: return Press3Hi.ToString();
- case 21: return Range4Enabled ? Strings.yes : Strings.no;
- case 22: return Temp4Lo.ToString();
- case 23: return Temp4Hi.ToString();
- case 24: return Press4Lo.ToString();
- case 25: return Press4Hi.ToString();
+ case 22: return Range4Enabled ? Strings.yes : Strings.no;
+ case 23: return Temp4Lo.ToString();
+ case 24: return Temp4Hi.ToString();
+ case 25: return Press4Lo.ToString();
+ case 26: return Press4Hi.ToString();
- case 26: return Range5Enabled ? Strings.yes : Strings.no;
- case 27: return Temp5Lo.ToString();
- case 28: return Temp5Hi.ToString();
- case 29: return Press5Lo.ToString();
- case 30: return Press5Hi.ToString();
+ case 27: return Range5Enabled ? Strings.yes : Strings.no;
+ case 28: return Temp5Lo.ToString();
+ case 29: return Temp5Hi.ToString();
+ case 30: return Press5Lo.ToString();
+ case 31: return Press5Hi.ToString();
default:
return string.Format("{0}({1}) {2}[{3},{4}] Idx1={5}, NominalFlow={6}",
@@ -448,40 +452,41 @@ namespace TBF.Rig.Uni.FlowMeter
{
case 0: Idx1 = int.Parse(str); return CfgUpdateFlags.RestartRqrd;
case 1: NominalFlow = TBF.Utils.ParseUDouble(str); return CfgUpdateFlags.RestartRqrd;
- case 2: MsrdFormat = str; return CfgUpdateFlags.RestartRqrd;
- case 3: MsrdUnit = (str == "l/h") ? Unit.lph : Unit.m3ph; return CfgUpdateFlags.RestartRqrd;
- case 4: TempUnit.ToDescription(); return CfgUpdateFlags.RestartRqrd;
- case 5: PressureUnit.ToDescription(); return CfgUpdateFlags.RestartRqrd;
+ case 2: NominalFreq = TBF.Utils.ParseUDouble(str); return CfgUpdateFlags.RestartRqrd;
+ case 3: MsrdFormat = str; return CfgUpdateFlags.RestartRqrd;
+ case 4: MsrdUnit = (str == "l/h") ? Unit.lph : Unit.m3ph; return CfgUpdateFlags.RestartRqrd;
+ case 5: TempUnit.ToDescription(); return CfgUpdateFlags.RestartRqrd;
+ case 6: PressureUnit.ToDescription(); return CfgUpdateFlags.RestartRqrd;
- case 6: Range1Enabled = (str == Strings.yes); return CfgUpdateFlags.RestartRqrd;
- case 7: Temp1Lo = TBF.Utils.ParseSDouble(str); return CfgUpdateFlags.RestartRqrd;
- case 8: Temp1Hi = TBF.Utils.ParseSDouble(str); return CfgUpdateFlags.RestartRqrd;
- case 9: Press1Lo = TBF.Utils.ParseUDouble(str); return CfgUpdateFlags.RestartRqrd;
- case 10: Press1Hi = TBF.Utils.ParseUDouble(str); return CfgUpdateFlags.RestartRqrd;
+ case 7: Range1Enabled = (str == Strings.yes); return CfgUpdateFlags.RestartRqrd;
+ case 8: Temp1Lo = TBF.Utils.ParseSDouble(str); return CfgUpdateFlags.RestartRqrd;
+ case 9: Temp1Hi = TBF.Utils.ParseSDouble(str); return CfgUpdateFlags.RestartRqrd;
+ case 10: Press1Lo = TBF.Utils.ParseUDouble(str); return CfgUpdateFlags.RestartRqrd;
+ case 11: Press1Hi = TBF.Utils.ParseUDouble(str); return CfgUpdateFlags.RestartRqrd;
- case 11: Range2Enabled = (str == Strings.yes); return CfgUpdateFlags.RestartRqrd;
- case 12: Temp2Lo = TBF.Utils.ParseSDouble(str); return CfgUpdateFlags.RestartRqrd;
- case 13: Temp2Hi = TBF.Utils.ParseSDouble(str); return CfgUpdateFlags.RestartRqrd;
- case 14: Press2Lo = TBF.Utils.ParseUDouble(str); return CfgUpdateFlags.RestartRqrd;
- case 15: Press2Hi = TBF.Utils.ParseUDouble(str); return CfgUpdateFlags.RestartRqrd;
+ case 12: Range2Enabled = (str == Strings.yes); return CfgUpdateFlags.RestartRqrd;
+ case 13: Temp2Lo = TBF.Utils.ParseSDouble(str); return CfgUpdateFlags.RestartRqrd;
+ case 14: Temp2Hi = TBF.Utils.ParseSDouble(str); return CfgUpdateFlags.RestartRqrd;
+ case 15: Press2Lo = TBF.Utils.ParseUDouble(str); return CfgUpdateFlags.RestartRqrd;
+ case 16: Press2Hi = TBF.Utils.ParseUDouble(str); return CfgUpdateFlags.RestartRqrd;
- case 16: Range3Enabled = (str == Strings.yes); return CfgUpdateFlags.RestartRqrd;
- case 17: Temp3Lo = TBF.Utils.ParseSDouble(str); return CfgUpdateFlags.RestartRqrd;
- case 18: Temp3Hi = TBF.Utils.ParseSDouble(str); return CfgUpdateFlags.RestartRqrd;
- case 19: Press3Lo = TBF.Utils.ParseUDouble(str); return CfgUpdateFlags.RestartRqrd;
- case 20: Press3Hi = TBF.Utils.ParseUDouble(str); return CfgUpdateFlags.RestartRqrd;
+ case 17: Range3Enabled = (str == Strings.yes); return CfgUpdateFlags.RestartRqrd;
+ case 18: Temp3Lo = TBF.Utils.ParseSDouble(str); return CfgUpdateFlags.RestartRqrd;
+ case 19: Temp3Hi = TBF.Utils.ParseSDouble(str); return CfgUpdateFlags.RestartRqrd;
+ case 20: Press3Lo = TBF.Utils.ParseUDouble(str); return CfgUpdateFlags.RestartRqrd;
+ case 21: Press3Hi = TBF.Utils.ParseUDouble(str); return CfgUpdateFlags.RestartRqrd;
- case 21: Range4Enabled = (str == Strings.yes); return CfgUpdateFlags.RestartRqrd;
- case 22: Temp4Lo = TBF.Utils.ParseSDouble(str); return CfgUpdateFlags.RestartRqrd;
- case 23: Temp4Hi = TBF.Utils.ParseSDouble(str); return CfgUpdateFlags.RestartRqrd;
- case 24: Press4Lo = TBF.Utils.ParseUDouble(str); return CfgUpdateFlags.RestartRqrd;
- case 25: Press4Hi = TBF.Utils.ParseUDouble(str); return CfgUpdateFlags.RestartRqrd;
+ case 22: Range4Enabled = (str == Strings.yes); return CfgUpdateFlags.RestartRqrd;
+ case 23: Temp4Lo = TBF.Utils.ParseSDouble(str); return CfgUpdateFlags.RestartRqrd;
+ case 24: Temp4Hi = TBF.Utils.ParseSDouble(str); return CfgUpdateFlags.RestartRqrd;
+ case 25: Press4Lo = TBF.Utils.ParseUDouble(str); return CfgUpdateFlags.RestartRqrd;
+ case 26: Press4Hi = TBF.Utils.ParseUDouble(str); return CfgUpdateFlags.RestartRqrd;
- case 26: Range5Enabled = (str == Strings.yes); return CfgUpdateFlags.RestartRqrd;
- case 27: Temp5Lo = TBF.Utils.ParseSDouble(str); return CfgUpdateFlags.RestartRqrd;
- case 28: Temp5Hi = TBF.Utils.ParseSDouble(str); return CfgUpdateFlags.RestartRqrd;
- case 29: Press5Lo = TBF.Utils.ParseUDouble(str); return CfgUpdateFlags.RestartRqrd;
- case 30: Press5Hi = TBF.Utils.ParseUDouble(str); return CfgUpdateFlags.RestartRqrd;
+ case 27: Range5Enabled = (str == Strings.yes); return CfgUpdateFlags.RestartRqrd;
+ case 28: Temp5Lo = TBF.Utils.ParseSDouble(str); return CfgUpdateFlags.RestartRqrd;
+ case 29: Temp5Hi = TBF.Utils.ParseSDouble(str); return CfgUpdateFlags.RestartRqrd;
+ case 30: Press5Lo = TBF.Utils.ParseUDouble(str); return CfgUpdateFlags.RestartRqrd;
+ case 31: Press5Hi = TBF.Utils.ParseUDouble(str); return CfgUpdateFlags.RestartRqrd;
default: return CfgUpdateFlags.None;
}
@@ -499,40 +504,41 @@ namespace TBF.Rig.Uni.FlowMeter
if (int.TryParse(str, out idummy) && idummy >= 1 && idummy <= 7) return true;
break;
case 1:
- case 9:
+ case 2:
case 10:
- case 14:
+ case 11:
case 15:
- case 19:
+ case 16:
case 20:
- case 24:
+ case 21:
case 25:
- case 29:
+ case 26:
case 30:
+ case 31:
if (TBF.Utils.TryParseUDouble(str, out dummy)) return true;
break;
- case 7:
case 8:
- case 12:
+ case 9:
case 13:
- case 17:
+ case 14:
case 18:
- case 22:
+ case 19:
case 23:
- case 27:
+ case 24:
case 28:
+ case 29:
if (TBF.Utils.TryParseSDouble(str, out dummy)) return true;
break;
- case 2:
- return true;
case 3:
+ return true;
case 4:
case 5:
case 6:
- case 11:
- case 16:
- case 21:
- case 26:
+ case 7:
+ case 12:
+ case 17:
+ case 22:
+ case 27:
if (ParamValues(i).Contains(str)) return true;
break;
default:
@@ -550,6 +556,7 @@ namespace TBF.Rig.Uni.FlowMeter
prms.Idx1 = Idx1;
prms.NominalFlow = NominalFlow;
+ prms.NominalFreq = NominalFreq;
prms.MsrdFormat = MsrdFormat;
prms.MsrdUnit = MsrdUnit;
prms.TempUnit = TempUnit;
diff --git a/TBF/Rig/Uni/FlowMetersInParallel/FlowMeter.cs b/TBF/Rig/Uni/FlowMetersInParallel/FlowMeter.cs
index 955ad2221..2691cdcdc 100644
--- a/TBF/Rig/Uni/FlowMetersInParallel/FlowMeter.cs
+++ b/TBF/Rig/Uni/FlowMetersInParallel/FlowMeter.cs
@@ -22,12 +22,14 @@ namespace TBF.Rig.Uni.FlowMetersInParallel
readonly IFlowMeter flowMeter2;
readonly IFlowMeter flowMeter3;
double nominalFlow;
+ double nominalFreq;
double ltrPerPulse;
int flowMetersCount;
int flowMetersBitfield;
public int Idx1 { get { return flowMetersBitfield; } }
public double NominalFlow { get { return nominalFlow; } }
+ public double NominalFreq { get { return nominalFreq; } }
public double LtrPerPulse { get { return ltrPerPulse; } }
public SchematicDrawing.IDrawingItem DrawingItem { get { return flowMeterCfg as SchematicDrawing.IDrawingItem; } }
@@ -138,18 +140,21 @@ namespace TBF.Rig.Uni.FlowMetersInParallel
if (flowMeter1 != null)
{
nominalFlow += flowMeter1.NominalFlow;
+ nominalFreq += flowMeter1.NominalFreq;
flowMetersBitfield |= (4 << flowMeter1.Idx1);
flowMetersCount++;
}
if (flowMeter2 != null)
{
nominalFlow += flowMeter2.NominalFlow;
+ nominalFreq += flowMeter2.NominalFreq;
flowMetersBitfield |= (4 << flowMeter2.Idx1);
flowMetersCount++;
}
if (flowMeter3 != null)
{
nominalFlow += flowMeter3.NominalFlow;
+ nominalFreq += flowMeter3.NominalFreq;
flowMetersBitfield |= (4 << flowMeter3.Idx1);
flowMetersCount++;
}
@@ -157,7 +162,7 @@ namespace TBF.Rig.Uni.FlowMetersInParallel
MsrdValLimHi = nominalFlow;
- ltrPerPulse = nominalFlow / (flowMetersCount * 7200.0); /// Nominal freq. is flowMetersCount * 2000 Hz (2000, 4000 or 6000 Hz)
+ ltrPerPulse = nominalFlow / (3.6 * nominalFreq); /// Nominal freq. is sum of particular nominal frquencies
refFreq = new double[4];
refPulses = new int[4];
@@ -165,7 +170,7 @@ namespace TBF.Rig.Uni.FlowMetersInParallel
public double ReadFlow()
{
- return nominalFlow * ReadFrequency() / (flowMetersCount * 7200.0);
+ return nominalFlow * ReadFrequency() / (3.6 * nominalFreq);
}
public double ReadFrequency()