1 "Set temprature setp..." seq. condition never met, 2 FlowMetersInParallel : InactiveFlowmtr for correct display, ver. 3.2.1913

This commit is contained in:
Milan Hanajik 2022-05-16 11:10:19 +02:00
parent b0a534315e
commit 00fc9ea847
4 changed files with 41 additions and 30 deletions

View File

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

View File

@ -32,7 +32,7 @@ namespace TBF.Rig.Modbus.TempControl.Novus
log.Debug(this.ToString());
}
public SetTemperatureSetpointOp(TControl tempControl, double temperature)
: this(tempControl, temperature, Event.ConditionMet)
: this(tempControl, temperature, Event.ConditionNotMet)
{
}

View File

@ -16,12 +16,13 @@ namespace TBF.Rig.Uni.FlowMetersInParallel
private static readonly ILog log = LogManager.GetLogger(typeof(FlowMeter));
public override string ToString() { return string.Format("{0}({1})", ClassName, Cfg.ToString(-1)); }
readonly FlowMeterCfg flowMeterCfg;
readonly FlowMeterCfg myCfg;
UniCB uniCB;
IFlowMeterSingle flowMtr1;
IFlowMeterSingle flowMtr2;
IFlowMeterSingle flowMtr3;
IFlowMeterSingle inactiveFlowMtr;
double nominalFlow;
double nominalFreq;
double ltrPerPulse;
@ -33,11 +34,11 @@ namespace TBF.Rig.Uni.FlowMetersInParallel
public double NominalFreq { get { return nominalFreq; } }
public double LtrPerPulse { get { return ltrPerPulse; } }
public SchematicDrawing.IDrawingItem DrawingItem { get { return flowMeterCfg as SchematicDrawing.IDrawingItem; } }
public string MsrdFormat { get { return flowMeterCfg.MsrdFormat; } }
public Common.Unit MsrdUnit { get { return flowMeterCfg.MsrdUnit; } }
public double MsrdValLimLo { get { return flowMeterCfg.MsrdValLimLo; } set { flowMeterCfg.MsrdValLimLo = value; } }
public double MsrdValLimHi { get { return flowMeterCfg.MsrdValLimHi; } set { flowMeterCfg.MsrdValLimHi = value; } }
public SchematicDrawing.IDrawingItem DrawingItem { get { return myCfg as SchematicDrawing.IDrawingItem; } }
public string MsrdFormat { get { return myCfg.MsrdFormat; } }
public Common.Unit MsrdUnit { get { return myCfg.MsrdUnit; } }
public double MsrdValLimLo { get { return myCfg.MsrdValLimLo; } set { myCfg.MsrdValLimLo = value; } }
public double MsrdValLimHi { get { return myCfg.MsrdValLimHi; } set { myCfg.MsrdValLimHi = value; } }
public bool MsrmntAvailable
@ -45,9 +46,10 @@ namespace TBF.Rig.Uni.FlowMetersInParallel
get
{
bool result = true;
if (flowMtr1 != null) result = result && flowMtr1.MsrmntAvailable;
if (flowMtr2 != null) result = result && flowMtr2.MsrmntAvailable;
if (flowMtr3 != null) result = result && flowMtr3.MsrmntAvailable;
if (flowMtr1 != null) result = (result && flowMtr1.MsrmntAvailable);
if (flowMtr2 != null) result = (result && flowMtr2.MsrmntAvailable);
if (flowMtr3 != null) result = (result && flowMtr3.MsrmntAvailable);
if (inactiveFlowMtr != null) result = (result && !inactiveFlowMtr.MsrmntAvailable);
return result;
}
}
@ -65,17 +67,18 @@ namespace TBF.Rig.Uni.FlowMetersInParallel
public FlowMeter(Generic.IComponentCfg cfg, IList<Generic.IComponent> components)
: base(cfg)
{
flowMeterCfg = cfg as FlowMeterCfg;
myCfg = cfg as FlowMeterCfg;
}
public override void Initialize()
{
uniCB = TbfComponents.FindComponent(flowMeterCfg.ParentName) as UniCB;
uniCB = TbfComponents.FindComponent(myCfg.ParentName) as UniCB;
if (uniCB == null) throw new Exception("Cannot find " + Name + " parent");
if (!string.IsNullOrEmpty(flowMeterCfg.Flowmeter1)) flowMtr1 = TbfComponents.FindComponent(flowMeterCfg.Flowmeter1) as IFlowMeterSingle;
if (!string.IsNullOrEmpty(flowMeterCfg.Flowmeter2)) flowMtr2 = TbfComponents.FindComponent(flowMeterCfg.Flowmeter2) as IFlowMeterSingle;
if (!string.IsNullOrEmpty(flowMeterCfg.Flowmeter3)) flowMtr3 = TbfComponents.FindComponent(flowMeterCfg.Flowmeter3) as IFlowMeterSingle;
if (!string.IsNullOrEmpty(myCfg.Flowmeter1)) flowMtr1 = TbfComponents.FindComponent(myCfg.Flowmeter1) as IFlowMeterSingle;
if (!string.IsNullOrEmpty(myCfg.Flowmeter2)) flowMtr2 = TbfComponents.FindComponent(myCfg.Flowmeter2) as IFlowMeterSingle;
if (!string.IsNullOrEmpty(myCfg.Flowmeter3)) flowMtr3 = TbfComponents.FindComponent(myCfg.Flowmeter3) as IFlowMeterSingle;
if (!string.IsNullOrEmpty(myCfg.InactiveFlowmtr)) inactiveFlowMtr = TbfComponents.FindComponent(myCfg.InactiveFlowmtr) as IFlowMeterSingle;
nominalFlow = 0;
flowMetersCount = 0;

View File

@ -30,8 +30,9 @@ namespace TBF.Rig.Uni.FlowMetersInParallel
public string Flowmeter1; /// 0 Flowmeter component name or string.Empty
public string Flowmeter2; /// 1 - ' ' -
public string Flowmeter3; /// 2 - ' ' -
public string MsrdFormat { get; set; } /// 3
public Unit MsrdUnit { get; set; } /// 4
public string InactiveFlowmtr; /// 3 Inactive flowmeter component name or string.Empty
public string MsrdFormat { get; set; } /// 4
public Unit MsrdUnit { get; set; } /// 5
/// Schematic drawing info
public Shape Shape { get; set; }
@ -83,6 +84,7 @@ namespace TBF.Rig.Uni.FlowMetersInParallel
Flowmeter1 = "I11";
Flowmeter2 = "I12";
Flowmeter3 = string.Empty;
InactiveFlowmtr = "I13";
MsrdFormat = "{0:F3} m3/h";
MsrdUnit = Unit.m3ph;
}
@ -92,8 +94,9 @@ namespace TBF.Rig.Uni.FlowMetersInParallel
"Flow meter 1", /// 0
"Flow meter 2", /// 1
"Flow meter 3", /// 2
"Display format", /// 3
"Unit of flow on a display", /// 4
"Inactive flow meter", /// 3
"Display format", /// 4
"Unit of flow on a display", /// 5
};
public string ParamName(int i) { return paramNames[i]; }
public int ParamsCount() { return paramNames.Length; }
@ -105,12 +108,13 @@ namespace TBF.Rig.Uni.FlowMetersInParallel
case 0:
case 1:
case 2:
case 3:
if (flowMeters == null) return null;
var fmtrs = new List<string>();
foreach (var fmtr in flowMeters) fmtrs.Add(fmtr.Name);
fmtrs.Add("---");
return fmtrs;
case 4:
case 5:
return new string[] { "m3/h", "l/h" };
default:
return null;
@ -124,12 +128,13 @@ namespace TBF.Rig.Uni.FlowMetersInParallel
case 0: return string.IsNullOrEmpty(Flowmeter1) ? "---" : Flowmeter1;
case 1: return string.IsNullOrEmpty(Flowmeter2) ? "---" : Flowmeter2;
case 2: return string.IsNullOrEmpty(Flowmeter3) ? "---" : Flowmeter3;
case 3: return MsrdFormat;
case 4: return MsrdUnit.ToDescription();
case 3: return string.IsNullOrEmpty(InactiveFlowmtr) ? "---" : InactiveFlowmtr;
case 4: return MsrdFormat;
case 5: return MsrdUnit.ToDescription();
default:
return string.Format("Name={0} {1} {2} {3} fmt={4} unit={5} Lo={6} Hi={7}",
Name, Flowmeter1, Flowmeter2, Flowmeter3,
return string.Format("Name={0} {1} {2} {3} ~{4} fmt={5} unit={6} Lo={7} Hi={8}",
Name, Flowmeter1, Flowmeter2, Flowmeter3, InactiveFlowmtr,
MsrdFormat, MsrdUnit.ToDescription(), MsrdValLimLo, MsrdValLimHi);
}
}
@ -141,8 +146,9 @@ namespace TBF.Rig.Uni.FlowMetersInParallel
case 0: Flowmeter1 = (str != "---") ? str : string.Empty; return CfgUpdateFlags.RestartRqrd;
case 1: Flowmeter2 = (str != "---") ? str : string.Empty; return CfgUpdateFlags.RestartRqrd;
case 2: Flowmeter3 = (str != "---") ? str : string.Empty; return CfgUpdateFlags.RestartRqrd;
case 3: MsrdFormat = str; return CfgUpdateFlags.RestartRqrd;
case 4: MsrdUnit = (str == "l/h") ? Unit.lph : Unit.m3ph; return CfgUpdateFlags.RestartRqrd;
case 3: InactiveFlowmtr = (str != "---") ? str : string.Empty; return CfgUpdateFlags.RestartRqrd;
case 4: MsrdFormat = str; return CfgUpdateFlags.RestartRqrd;
case 5: MsrdUnit = (str == "l/h") ? Unit.lph : Unit.m3ph; return CfgUpdateFlags.RestartRqrd;
default:
return CfgUpdateFlags.None;
}
@ -157,10 +163,11 @@ namespace TBF.Rig.Uni.FlowMetersInParallel
case 0:
case 1:
case 2:
case 4:
case 3:
case 5:
if (ParamValues(i).Contains(str)) return true;
break;
case 3:
case 4:
return true;
default:
message = "Invalid index";
@ -176,6 +183,7 @@ namespace TBF.Rig.Uni.FlowMetersInParallel
prms.Flowmeter1 = this.Flowmeter1;
prms.Flowmeter2 = this.Flowmeter2;
prms.Flowmeter3 = this.Flowmeter3;
prms.InactiveFlowmtr = this.InactiveFlowmtr;
prms.MsrdFormat = this.MsrdFormat;
prms.MsrdUnit = this.MsrdUnit;
}