[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 readonly R_TRIG _trigDataPollingError = new();
|
||||
private FunFilter _dataFilter;
|
||||
private readonly R_TRIG _rTrigPollDataFailed = new();
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -94,7 +95,15 @@ namespace MECF.Framework.RT.Core.Managers.PDS
|
|||
var sum = 0.0d;
|
||||
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))
|
||||
{
|
||||
sum += dFlow * ts.TotalSeconds;
|
||||
|
|
|
@ -55,8 +55,8 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.GasFlow
|
|||
public void Initialize(string moduleName)
|
||||
{
|
||||
ModuleName = moduleName;
|
||||
SC.RegisterValueChangedCallback($"PM.{ModuleName}.Efficiency.{GasFlowRatioName}", (o) => { Set_Callback(o.ToString()); });
|
||||
GasFlowRatioValue = SC.GetValue<double>($"PM.{ModuleName}.Efficiency.{GasFlowRatioName}");
|
||||
SC.RegisterValueChangedCallback($"PM.{ModuleName}.Efficiency.{GasFlowRatioName}", OnGasFlowRatioSCChanged);
|
||||
GasFlowRatioValue = SC.SafeGetValue<double>($"PM.{ModuleName}.Efficiency.{GasFlowRatioName}", 1d);
|
||||
|
||||
if (GasName == "PN2_Vent")
|
||||
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);
|
||||
}
|
||||
|
||||
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()
|
||||
|
|
Loading…
Reference in New Issue