Browse Source

fix bug leakCheck跳步不正确

jiangjy 2 weeks ago
parent
commit
3f91de4b64
1 changed files with 9 additions and 10 deletions
  1. 9 10
      Furnace/FurnaceRT/Equipments/PMs/PMLeakCheck.cs

+ 9 - 10
Furnace/FurnaceRT/Equipments/PMs/PMLeakCheck.cs

@@ -54,9 +54,9 @@ namespace FurnaceRT.Equipments.PMs
             DATA.Subscribe($"{Module}.LeakCheckLowLimit", () => _leakCheckTableParameter != null ? _leakCheckTableParameter.LowLimit : 0.0f);
             DATA.Subscribe($"{Module}.LeakCheckBasePressureLimit", () => _leakCheckTableParameter != null ? _leakCheckTableParameter.BasePressureLimit : 0.0f);
             DATA.Subscribe($"{Module}.LeakCheckDelayTime", () => _leakCheckTableParameter != null ? _leakCheckTableParameter.DelayTime : 0.0f);
-            DATA.Subscribe($"{Module}.LeakCheckDelayElapseTime", () => (_leakCheckTableParameter != null && _leakCheckStatus.Equals("LeakCheckDelay") && _leakCheckDelayTimer.IsRunning) ? _leakCheckDelayTimer.ElapsedMilliseconds / 1000 : 0.0f);
+            DATA.Subscribe($"{Module}.LeakCheckDelayElapseTime", () => (_leakCheckTableParameter != null && _leakCheckStatus == (int)LeakCheckStatusEnum.LeakCheckDelay && _leakCheckDelayTimer.IsRunning) ? _leakCheckDelayTimer.ElapsedMilliseconds / 1000 : 0.0f);
             DATA.Subscribe($"{Module}.LeakCheckCheckTime", () => _leakCheckTableParameter != null ? _leakCheckTableParameter.CheckTime : 0.0f);
-            DATA.Subscribe($"{Module}.LeakCheckElapseTime", () => _leakCheckTableParameter != null && !_leakCheckStatus.Equals("None") && _leakCheckTimer.IsRunning ? _leakCheckTimer.ElapsedMilliseconds / 1000 : 0.0f);
+            DATA.Subscribe($"{Module}.LeakCheckElapseTime", () => _leakCheckTableParameter != null && _leakCheckStatus != (int)LeakCheckStatusEnum.None && _leakCheckTimer.IsRunning ? _leakCheckTimer.ElapsedMilliseconds / 1000 : 0.0f);
             DATA.Subscribe($"{Module}.LeakCheckBasePressure", () => _leakCheckTableParameter != null ? _basePressure : 0.0f);
             DATA.Subscribe($"{Module}.LeakCheckLeakLimit", () => _leakCheckTableParameter != null ? _leakCheckTableParameter.LeakLimit : 0.0f);
             DATA.Subscribe($"{Module}.LeakCheckDelayMonitorPressure", () => _leakCheckTableParameter != null && _leakCheckDelayTimer.IsRunning && !_leakCheckTimer.IsRunning ? (float)_leakCheckDelayMonitorPressure : 0.0f);
@@ -77,9 +77,7 @@ namespace FurnaceRT.Equipments.PMs
             _leakCheckActualLeak = 0;
             _leakCheckDelayMonitorPressure = 0;
             _leakCheckStartPressure = 0;
-
             _leakCheckMonitorPressure = 0;
-
             if (_leakCheckDic == null)
                 return;
             var ret = _leakCheckDic.TryGetValue(index, out _leakCheckTableParameter);
@@ -247,15 +245,12 @@ namespace FurnaceRT.Equipments.PMs
         public bool CheckLeakCheckFinish()
         {
 
-
             if (_leakCheckDic == null || _currentLeakCheckIndex < 0)
                 return true;
 
-            if (_isLeakCheckFinished)
+            if (_leakCheckStatus == (int)LeakCheckStatusEnum.None)
             {
                 StopLeakCheckTimer();
-
-                _currentRetryCount = 0;
                 return true;
             }
 
@@ -310,6 +305,7 @@ namespace FurnaceRT.Equipments.PMs
                     {
                         if (_currentRetryCount < leakCheckParameter.RetryLimit)
                         {
+
                             _currentRetryCount++;
                             _processRoutine.LeakCheckRetry();
                             LOG.Write($"Leak check retry {_currentRetryCount}/{leakCheckParameter.RetryLimit}");
@@ -317,12 +313,14 @@ namespace FurnaceRT.Equipments.PMs
                         else
                         {
                             LeakCheckAlarm.Set($"Leak check alarm: already retry count={_currentRetryCount} >= retry limit={leakCheckParameter.RetryLimit}");
+                            _currentRetryCount = 0;
                             ProcessLeakCheckErrorCommand(leakCheckParameter.RetryOverCommand);
                         }
                     }
                     else
                     {
                         LeakCheckAlarm.Set($"Leak check alarm: actual leak={_leakCheckActualLeak} > leak limit={leakCheckParameter.LeakLimit}");
+                        _currentRetryCount = 0;
                         ProcessLeakCheckErrorCommand(leakCheckParameter.ErrorCommand);
                     }
 
@@ -332,6 +330,7 @@ namespace FurnaceRT.Equipments.PMs
                 {
 
                     _isLeakCheckFinished = true;
+                    _currentRetryCount = 0;
                     _leakCheckStatus = (int)LeakCheckStatusEnum.None;
                     _leakCheckTimer.Stop();
                     _leakCheckDelayTimer.Stop();
@@ -341,15 +340,15 @@ namespace FurnaceRT.Equipments.PMs
 
             return _isLeakCheckFinished;
         }
+
         public void AbortLeakCheck()
         {
-            _leakCheckStatus = (int)LeakCheckStatusEnum.None;
             _currentRetryCount = 0;
             StopLeakCheckTimer();
         }
         public void StopLeakCheckTimer()
         {
-
+            _leakCheckStatus = (int)LeakCheckStatusEnum.None;
             if (_leakCheckDelayTimer.IsRunning)
                 _leakCheckDelayTimer.Stop();