[RT.Equipment]
修正GasFlowUnit中如果未能读取Ratio设置,则流量计算结果总是为0的问题。 修正ProcessDataStatCounter对象中Poll数据返回null导致异常的问题。
This commit is contained in:
parent
aee33017b2
commit
3e6f08c0f8
|
@ -17,6 +17,7 @@ namespace MECF.Framework.RT.Core.Managers.PDS
|
||||||
private DateTime _lastPollingTime = DateTime.MinValue;
|
private DateTime _lastPollingTime = DateTime.MinValue;
|
||||||
private readonly R_TRIG _trigDataPollingError = new();
|
private readonly R_TRIG _trigDataPollingError = new();
|
||||||
private FunFilter _dataFilter;
|
private FunFilter _dataFilter;
|
||||||
|
private readonly R_TRIG _rTrigPollDataFailed = new();
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -94,7 +95,15 @@ namespace MECF.Framework.RT.Core.Managers.PDS
|
||||||
var sum = 0.0d;
|
var sum = 0.0d;
|
||||||
foreach (var pdata in DataPath)
|
foreach (var pdata in DataPath)
|
||||||
{
|
{
|
||||||
var sFlow = DATA.Poll(pdata).ToString();
|
var polled = DATA.Poll(pdata);
|
||||||
|
_rTrigPollDataFailed.CLK = polled == null;
|
||||||
|
if(_trigDataPollingError.Q)
|
||||||
|
LOG.Error($"Failed to count {pdata}, unable to poll data from RT");
|
||||||
|
|
||||||
|
if (polled == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
var sFlow = polled.ToString();
|
||||||
if (double.TryParse(sFlow, out var dFlow))
|
if (double.TryParse(sFlow, out var dFlow))
|
||||||
{
|
{
|
||||||
sum += dFlow * ts.TotalSeconds;
|
sum += dFlow * ts.TotalSeconds;
|
||||||
|
|
|
@ -55,8 +55,8 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.GasFlow
|
||||||
public void Initialize(string moduleName)
|
public void Initialize(string moduleName)
|
||||||
{
|
{
|
||||||
ModuleName = moduleName;
|
ModuleName = moduleName;
|
||||||
SC.RegisterValueChangedCallback($"PM.{ModuleName}.Efficiency.{GasFlowRatioName}", (o) => { Set_Callback(o.ToString()); });
|
SC.RegisterValueChangedCallback($"PM.{ModuleName}.Efficiency.{GasFlowRatioName}", OnGasFlowRatioSCChanged);
|
||||||
GasFlowRatioValue = SC.GetValue<double>($"PM.{ModuleName}.Efficiency.{GasFlowRatioName}");
|
GasFlowRatioValue = SC.SafeGetValue<double>($"PM.{ModuleName}.Efficiency.{GasFlowRatioName}", 1d);
|
||||||
|
|
||||||
if (GasName == "PN2_Vent")
|
if (GasName == "PN2_Vent")
|
||||||
DATA.Subscribe($"{ModuleName}.GasRealTimeFlow.{GasName}.FeedBackSpecial", () => PN2_VentSpecial, SubscriptionAttribute.FLAG.IgnoreSaveDB);//仅作为显示用,不存储数据库
|
DATA.Subscribe($"{ModuleName}.GasRealTimeFlow.{GasName}.FeedBackSpecial", () => PN2_VentSpecial, SubscriptionAttribute.FLAG.IgnoreSaveDB);//仅作为显示用,不存储数据库
|
||||||
|
@ -67,9 +67,12 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.GasFlow
|
||||||
row.Initialize(moduleName, GasName);
|
row.Initialize(moduleName, GasName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Set_Callback(string str = "")
|
private void OnGasFlowRatioSCChanged(object value)
|
||||||
{
|
{
|
||||||
GasFlowRatioValue = SC.GetValue<double>($"PM.{ModuleName}.Efficiency.{GasFlowRatioName}");
|
if (value is double ratio)
|
||||||
|
GasFlowRatioValue = ratio;
|
||||||
|
else
|
||||||
|
GasFlowRatioValue = 1d;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double GetGasFlowFeedBack()
|
public double GetGasFlowFeedBack()
|
||||||
|
|
Loading…
Reference in New Issue