|
@@ -162,6 +162,15 @@ namespace PunkHPX8_RT.Devices.VpwMain
|
|
|
/// 总流量上升沿
|
|
|
/// </summary>
|
|
|
private R_TRIG _totalFlowTrig = new R_TRIG();
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 检测到total flow 低于设定条件的时间
|
|
|
+ /// </summary>
|
|
|
+ private DateTime _totalFlowAbnormalDetectTime;
|
|
|
+ /// <summary>
|
|
|
+ /// 检测到cell flow 满足设定条件的时间
|
|
|
+ /// </summary>
|
|
|
+ private bool _totalFlowAbnormal;
|
|
|
#endregion
|
|
|
|
|
|
#region 属性
|
|
@@ -867,8 +876,61 @@ namespace PunkHPX8_RT.Devices.VpwMain
|
|
|
AdjustPumpSpeed();
|
|
|
}
|
|
|
MonitorTotalFlow();
|
|
|
+ BoosterPumpMonitor();
|
|
|
+ WaterPressureMonitor();
|
|
|
+
|
|
|
return true;
|
|
|
}
|
|
|
+ //Speed Auto模式同时pump enbled,对flow 上下限进行监控
|
|
|
+ private void WaterPressureMonitor()
|
|
|
+ {
|
|
|
+ if (_commonData.BoosterPumpSpeedAuto && _commonData.BoosterPumpEnable)
|
|
|
+ {
|
|
|
+ if(_commonData.DiwPressure > _commonData.BoosterPumpPressureData.MaxError)
|
|
|
+ {
|
|
|
+ LOG.WriteLog(eEvent.ERR_VPW, Module, $"total flow is large than Error_max {_commonData.BoosterPumpPressureData.MaxError},Booster Pump Closed!");
|
|
|
+ BoosterPumpDisable();
|
|
|
+ }
|
|
|
+ else if (_commonData.DiwPressure > _commonData.BoosterPumpPressureData.MaxWarning)
|
|
|
+ {
|
|
|
+ LOG.WriteLog(eEvent.WARN_VPW, Module, $"total flow is large than Warning_max {_commonData.BoosterPumpPressureData.MaxWarning}");
|
|
|
+ }
|
|
|
+ else if (_commonData.DiwPressure < _commonData.BoosterPumpPressureData.MinError)
|
|
|
+ {
|
|
|
+ LOG.WriteLog(eEvent.ERR_VPW, Module, $"total flow is lower than Error_min {_commonData.BoosterPumpPressureData.MinError},Booster Pump Closed!");
|
|
|
+ BoosterPumpDisable();
|
|
|
+ }
|
|
|
+ else if (_commonData.DiwPressure < _commonData.BoosterPumpPressureData.MinWarning)
|
|
|
+ {
|
|
|
+ LOG.WriteLog(eEvent.WARN_VPW, Module, $"total flow is large than Warning_min {_commonData.BoosterPumpPressureData.MinWarning}");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //total flow不满足条件过一段时间自动关闭增压泵
|
|
|
+ private void BoosterPumpMonitor()
|
|
|
+ {
|
|
|
+ double totalFlowStartLimit = SC.GetValue<double>("VPWMain.Plumbing.TotalFlowStartLowLimit");
|
|
|
+ int flowFaultHoldOffTime = SC.GetValue<int>($"VPWMain.FlowFaultHoldOffTime");
|
|
|
+ if (_commonData.DiwTotalFlow < totalFlowStartLimit)
|
|
|
+ {
|
|
|
+ if (!_totalFlowAbnormal)
|
|
|
+ {
|
|
|
+ _totalFlowAbnormal = true;
|
|
|
+ _totalFlowAbnormalDetectTime = DateTime.Now;
|
|
|
+ }
|
|
|
+ if ((DateTime.Now - _totalFlowAbnormalDetectTime).TotalSeconds > flowFaultHoldOffTime * 60 && _commonData.BoosterPumpEnable)
|
|
|
+ {
|
|
|
+ LOG.WriteLog(eEvent.WARN_VPW, Module, $"total flow is lower than start limit more than {flowFaultHoldOffTime} min,Booster Pump Closed!");
|
|
|
+ BoosterPumpDisable();
|
|
|
+ _totalFlowAbnormalDetectTime = DateTime.Now;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ _totalFlowAbnormal = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 调速
|
|
|
/// </summary>
|