Browse Source

add ChillerCheck and Interval to 1s && SE DE Chamber can operate TurboPump freely && fix the bug in GasLeakCheck && close PVN22 after PMPumpDown

zhouhr 11 months ago
parent
commit
a0f20d03ac

+ 2 - 2
Venus/Venus_MainPages/Views/OverVenusDEView.xaml

@@ -1169,8 +1169,8 @@
             <ctrls:Turbo Width="40" Height="40"  Canvas.Top="521" Canvas.Left="1242" IsOpen="{Binding TurboIsOpen}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}">
                 <ctrls:Turbo.ContextMenu>
                     <ContextMenu>
-                        <MenuItem Header="ON" Command="{Binding OpenTurboPumpCommand}" IsChecked="{Binding TurboIsOpen,Mode=OneWay}" IsEnabled="{Binding TurboIsOpen,Converter={StaticResource BoolToBool},Mode=OneWay}"/>
-                        <MenuItem Header="OFF" Command="{Binding CloseTurboPumpCommand}" IsChecked="{Binding TurboIsOpen,Converter={StaticResource BoolToBool},Mode=OneWay}" IsEnabled="{Binding TurboIsOpen,Mode=OneWay}"/>
+                        <MenuItem Header="ON" Command="{Binding OpenTurboPumpCommand}"/>
+                        <MenuItem Header="OFF" Command="{Binding CloseTurboPumpCommand}"/>
                     </ContextMenu>
                 </ctrls:Turbo.ContextMenu>
             </ctrls:Turbo>

+ 2 - 2
Venus/Venus_MainPages/Views/OverVenusSEView.xaml

@@ -1091,8 +1091,8 @@
             <ctrls:Turbo Width="40" Height="40"  Canvas.Top="521" Canvas.Left="1242" IsOpen="{Binding TurboIsOpen}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}">
                 <ctrls:Turbo.ContextMenu>
                     <ContextMenu>
-                        <MenuItem Header="ON" Command="{Binding OpenTurboPumpCommand}" IsChecked="{Binding TurboIsOpen,Mode=OneWay}" IsEnabled="{Binding TurboIsOpen,Converter={StaticResource BoolToBool},Mode=OneWay}"/>
-                        <MenuItem Header="OFF" Command="{Binding CloseTurboPumpCommand}" IsChecked="{Binding TurboIsOpen,Converter={StaticResource BoolToBool},Mode=OneWay}" IsEnabled="{Binding TurboIsOpen,Mode=OneWay}"/>
+                        <MenuItem Header="ON" Command="{Binding OpenTurboPumpCommand}"   />
+                        <MenuItem Header="OFF" Command="{Binding CloseTurboPumpCommand}" />
                     </ContextMenu>
                 </ctrls:Turbo.ContextMenu>
             </ctrls:Turbo>

+ 5 - 4
Venus/Venus_RT/Devices/SMCChillerDrive.cs

@@ -119,7 +119,7 @@ namespace Venus_RT.Devices
                 //注意 数据开头有":"
                 //地址位 决定了是哪个chamber的哪个type
                 ModuleName module = ModuleName.System;
-                LOG.Write(eEvent.INFO_DEVICE_CHILLER, ModuleName.System, $"[{_PortNum}] smc chiller receive message {cmd}");
+                //LOG.Write(eEvent.INFO_DEVICE_CHILLER, ModuleName.System, $"[{_PortNum}] smc chiller receive message {cmd}");
                 string header = cmd.Substring(1, 2);
                 if (_address2Module.ContainsKey(header) && _addressQuery.ContainsKey(header))
                 {
@@ -224,12 +224,13 @@ namespace Venus_RT.Devices
                 //每interval获取温度 超过一秒时效性失去意义 500 * 2积累太多数据 同时注意其是与monitor紧密联系的 实际上是每interval就会进来可能导致数组变大
                 //因此每次进来要控制规模 > 2 时 实时性已经失去此时应该等待回复并把头前的清除掉 而且要注意 chiller本身升温很慢 界面上ramp不明显
                 _addressCmdQueue[str.Substring(0, 2)].Enqueue(str);
-                if (_addressCmdQueue[str.Substring(0, 2)].Count > 2)
+
+                if (_addressCmdQueue[str.Substring(0, 2)].Count > 1)
                     _addressCmdQueue[str.Substring(0, 2)].Dequeue();
-                
-                if(_addressCmdQueue[str.Substring(0, 2)].Count != 0)
+                else
                     blockingCollection.Add(":" + _addressCmdQueue[str.Substring(0, 2)].Peek() + ModbusUtility.CalculateLrc(ModbusUtility.HexToBytes(str)).ToString("X2") + "\r\n");
 
+
             }
 
         }

+ 1 - 5
Venus/Venus_RT/Devices/SMCShareChiller.cs

@@ -22,7 +22,7 @@ namespace Venus_RT.Devices
         private SMCChillerDrive _driver;
         private string _address;
         private readonly DeviceTimer _timerQueryStatus = new DeviceTimer();
-        private const ushort CHK_ST_INTERVAL = 500;
+        private const ushort CHK_ST_INTERVAL = 1000;
         bool[] Statusflag = new bool[32];
         bool[] LastStatusflag = new bool[32];
         bool[] Alarmflag = new bool[48];
@@ -187,11 +187,7 @@ namespace Venus_RT.Devices
             {
                 if (_timerQueryStatus.IsTimeout() && StatusSMC != SMCChillerState.ERROR)
                 {
-                    Stopwatch stopwatch = Stopwatch.StartNew();
-                    stopwatch.Start();
                     _driver.SendCmd(ChillerMsgType.Get,message.GET_ALL);
-                    stopwatch.Stop();
-                    LOG.Write(eEvent.INFO_DEVICE_CHILLER, Module, $"Use Time:{stopwatch.ElapsedMilliseconds}");
                     _timerQueryStatus.Start(CHK_ST_INTERVAL);
                 }
 

+ 32 - 0
Venus/Venus_RT/Modules/PMs/GasBoxLeakCheckRoutine.cs

@@ -154,6 +154,38 @@ namespace Venus_RT.Modules.PMs
             {
                 _chamber.OpenValve(ValveType.PV41, true);
             }
+            if (_gasLineNums.Contains(5))
+            {
+                _chamber.OpenValve(ValveType.PV51, true);
+            }
+            if (_gasLineNums.Contains(6))
+            {
+                _chamber.OpenValve(ValveType.PV61, true);
+            }
+            if (_gasLineNums.Contains(7))
+            {
+                _chamber.OpenValve(ValveType.PV71, true);
+            }
+            if (_gasLineNums.Contains(8))
+            {
+                _chamber.OpenValve(ValveType.PV81, true);
+            }
+            if (_gasLineNums.Contains(9))
+            {
+                _chamber.OpenValve(ValveType.PV91, true);
+            }
+            if (_gasLineNums.Contains(10))
+            {
+                _chamber.OpenValve(ValveType.PVA1, true);
+            }
+            if (_gasLineNums.Contains(11))
+            {
+                _chamber.OpenValve(ValveType.PVB1, true);
+            }
+            if (_gasLineNums.Contains(12))
+            {
+                _chamber.OpenValve(ValveType.PVC1, true);
+            }
             //2023/04/25添加vent line漏气检测
             if (isCheckVentLine == true)
             {

+ 14 - 4
Venus/Venus_RT/Modules/PMs/PumpDownRoutine.cs

@@ -25,6 +25,7 @@ namespace Venus_RT.Modules.PMs
             kOpenTurboPump,
             kGasFinal,
             kFinalStep,
+            kCloseValve,
             kEnd,
         }
 
@@ -88,11 +89,13 @@ namespace Venus_RT.Modules.PMs
                           .Run(PumpStep.kCloseISOValve, HOFs.WrapAction(_chamber.OpenValve, ValveType.TurboPumpPumping, false), _delay_2s)
                           .Run(PumpStep.kSoftPump, HOFs.WrapAction(_chamber.OpenValve, ValveType.SoftPump, true), () => { return _chamber.ChamberPressure < _roughPumpPressure; })
                           .Run(PumpStep.kFastPump, OpenFastPump, () => { return _chamber.ChamberPressure < _vHe2FlowPressure; })
+                          .Delay(PumpStep.kHe2ExDelay, 3000)
                           .Run(PumpStep.kPVHe2, OpenHe2Valve, _delay_2s)
                           .Run(PumpStep.kISOValve, OpenISOValve, _delay_2s)
                           .Run(PumpStep.kVATValve, OpenVATValve, _delay_5s)
                           .Run(PumpStep.kOpenTurboPumpPurgeGasFinal, OpenTurboPumpPurgeGasFinalValve, _delay_3s)
                           .Run(PumpStep.kFinalStep, FinalStep, () => { return _chamber.ChamberPressure < _basePressure; })
+                          .Run(PumpStep.kCloseValve, CloseValve, NullFun)
                           .End(PumpStep.kEnd, NullFun, _delay_1s);
                     break;
 
@@ -113,14 +116,15 @@ namespace Venus_RT.Modules.PMs
                 case JetChamber.VenusDE:
                     Runner.Delay(PumpStep.kDelay_2s, _delay_2s)
                           .Run(PumpStep.kCloseISOValve, HOFs.WrapAction(_chamber.OpenValve, ValveType.TurboPumpPumping, false), _delay_2s)
-                          .Run(PumpStep.kFastPump, OpenDEFastPump, () => { return _chamber.ChamberPressure < _vHe2FlowPressure; })
+                          .RunIf(PumpStep.kFastPump, _chamber.ChamberPressure > _vHe2FlowPressure, OpenDEFastPump, () => { return _chamber.ChamberPressure < _vHe2FlowPressure; })
                           .Delay(PumpStep.kHe2ExDelay, 3000)
-                          .Run(PumpStep.kPVHe2, OpenHe2Valve, _delay_5s)
-                          .Run(PumpStep.kISOValve, OpenISOValve, _delay_5s)
+                          .Run(PumpStep.kPVHe2, OpenHe2Valve, _delay_2s)
+                          .Run(PumpStep.kISOValve, OpenISOValve, _delay_2s)
                           .Run(PumpStep.kOpenTurboPump, OpenTurboValve, _delay_3s)
                           .Run(PumpStep.kVATValve, OpenVATValve, _delay_2s)
                           .Run(PumpStep.kOpenTurboPump, OpenGuageGasFinalValve, _delay_3s)
                           .Run(PumpStep.kFinalStep, FinalStep, () => { return _chamber.ChamberPressure < _basePressure; })
+                          .Run(PumpStep.kCloseValve,CloseValve,NullFun)
                           .End(PumpStep.kEnd, NullFun, _delay_1s);
                     break;
 
@@ -155,6 +159,13 @@ namespace Venus_RT.Modules.PMs
 
             return Runner.Status;
         }
+
+        private bool CloseValve()
+        {
+            _chamber.OpenValve(ValveType.PVN22, true);
+            return true;
+        }
+
         private bool OpenTurboPumpPurgeGasFinalValve()
         {
             _chamber.OpenValve(ValveType.TurboPumpPurge, true);
@@ -216,7 +227,6 @@ namespace Venus_RT.Modules.PMs
         private bool FinalStep()
         {
             _chamber.OpenValve(ValveType.Guage, true);
-
             //2023/04/25修改
             //_chamber.OpenValve(ValveType.TurboPumpPurge, true);
             //_chamber.OpenValve(ValveType.GasFinal, true);