Browse Source

fix 新增fimsManualCheck配置,防止auto 模式下,氧气分析仪切换有问题导致Load Check fail

jiangjy 1 month ago
parent
commit
89f1362802

+ 35 - 0
FrameworkLocal/Common/Extens/DictionaryExtensions.cs

@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace MECF.Framework.Common.Extens
+{
+    public static class DictionaryExtensions
+    {
+        public static void TryAddValue<TKey, TValue>(this Dictionary<TKey, List<TValue>> dictionary, TKey key, TValue value)
+        {
+            if (dictionary.ContainsKey(key))
+            {
+                dictionary[key].Add(value);
+            }
+            else
+            {
+                dictionary.Add(key, new List<TValue> { value });
+            }
+        }
+        public static void TryAddValue<TKey, TValue>(this Dictionary<TKey, TValue> dictionary, TKey key, TValue value)
+        {
+            if (dictionary.ContainsKey(key))
+            {
+                dictionary[key] = value;
+            }
+            else
+            {
+                dictionary.Add(key, value);
+            }
+        }
+    }
+
+}

+ 6 - 0
Furnace/FurnaceRT/Config/FurnaceGemModel.xml

@@ -1682,6 +1682,12 @@
     <SVID id="338830001" valueType="F8" logicalName="PM1.VG21.Value" value="" eventTrigger="" units="" description="" isArray="false" />
     <SVID id="338840001" valueType="F8" logicalName="PM1.VG32.Value" value="" eventTrigger="" units="" description="" isArray="false" />
     <SVID id="338850001" valueType="F8" logicalName="PM1.VG33.Value" value="" eventTrigger="" units="" description="" isArray="false" />
+    <SVID id="338860001" valueType="Boolean" logicalName="PM1.SensorFrontbodyinterlockbuttonled.Value" value="" eventTrigger="" units="" description="" isArray="false" />
+    <SVID id="338870001" valueType="Boolean" logicalName="PM1.SensorFrontbodyinterlockresetbutton.Value" value="" eventTrigger="" units="" description="" isArray="false" />
+    <SVID id="338880001" valueType="Boolean" logicalName="PM1.SensorFTRinterlockreset.Value" value="" eventTrigger="" units="" description="" isArray="false" />
+    <SVID id="338890001" valueType="Boolean" logicalName="PM1.SensorGasboxinterlockbuttonled.Value" value="" eventTrigger="" units="" description="" isArray="false" />
+    <SVID id="338900001" valueType="Boolean" logicalName="PM1.SensorPowerboxinterlockbuttonled.Value" value="" eventTrigger="" units="" description="" isArray="false" />
+    <SVID id="338910001" valueType="Boolean" logicalName="PM1.SensorWTRinterlockreset.Value" value="" eventTrigger="" units="" description="" isArray="false" />
     <SVID id="630010001" valueType="Boolean" logicalName="Stocker1.CassetteHasWafer" value="" eventTrigger="" units="" description="" isArray="false" />
     <SVID id="630010002" valueType="Boolean" logicalName="Stocker1.FoupPresent" value="" eventTrigger="" units="" description="" isArray="false" />
     <SVID id="630010003" valueType="Boolean" logicalName="Stocker1.IsError" value="" eventTrigger="" units="" description="" isArray="false" />

+ 1 - 0
Furnace/FurnaceRT/Config/System.sccfg

@@ -13,6 +13,7 @@
 		<config default="false" name="AxisMonShowKey" description="" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false" />
 		<!--是否检查Recipe文件夹结构不正确-->
 		<config default="true" name="EnableCheckRecipe" description="" max="" min="" paramter="" tag="" unit="" type="Bool"   />
+		<config default="true" name="FIMSManualCheck" description="" max="" min="" paramter="" tag="" unit="" type="Bool"  visible="false"  />
 
 		<!--Valve是否展示新版图标-->
 		<config default="false" name="IsShowJetValve" description="" max="" min="" paramter="" tag="" unit="" type="Bool" visible="false" />

+ 6 - 0
Furnace/FurnaceRT/Config/VIDs/_SVID.xml

@@ -1630,6 +1630,12 @@
   <VIDItem Name="PM1.VG21.Value" Index="338830001" DataType="System.Double" Description="" Module="PM1" Type="" Unit="VG21" Parameter="Value" />
   <VIDItem Name="PM1.VG32.Value" Index="338840001" DataType="System.Double" Description="" Module="PM1" Type="" Unit="VG32" Parameter="Value" />
   <VIDItem Name="PM1.VG33.Value" Index="338850001" DataType="System.Double" Description="" Module="PM1" Type="" Unit="VG33" Parameter="Value" />
+  <VIDItem Name="PM1.SensorFrontbodyinterlockbuttonled.Value" Index="338860001" DataType="System.Boolean" Description="" Module="PM1" Type="" Unit="SensorFrontbodyinterlockbuttonled" Parameter="Value" />
+  <VIDItem Name="PM1.SensorFrontbodyinterlockresetbutton.Value" Index="338870001" DataType="System.Boolean" Description="" Module="PM1" Type="" Unit="SensorFrontbodyinterlockresetbutton" Parameter="Value" />
+  <VIDItem Name="PM1.SensorFTRinterlockreset.Value" Index="338880001" DataType="System.Boolean" Description="" Module="PM1" Type="" Unit="SensorFTRinterlockreset" Parameter="Value" />
+  <VIDItem Name="PM1.SensorGasboxinterlockbuttonled.Value" Index="338890001" DataType="System.Boolean" Description="" Module="PM1" Type="" Unit="SensorGasboxinterlockbuttonled" Parameter="Value" />
+  <VIDItem Name="PM1.SensorPowerboxinterlockbuttonled.Value" Index="338900001" DataType="System.Boolean" Description="" Module="PM1" Type="" Unit="SensorPowerboxinterlockbuttonled" Parameter="Value" />
+  <VIDItem Name="PM1.SensorWTRinterlockreset.Value" Index="338910001" DataType="System.Boolean" Description="" Module="PM1" Type="" Unit="SensorWTRinterlockreset" Parameter="Value" />
   <VIDItem Name="Stocker1.CassetteHasWafer" Index="630010001" DataType="System.Boolean" Description="" Module="Stocker1" Type="" Unit="" Parameter="CassetteHasWafer" />
   <VIDItem Name="Stocker1.FoupPresent" Index="630010002" DataType="System.Boolean" Description="" Module="Stocker1" Type="" Unit="" Parameter="FoupPresent" />
   <VIDItem Name="Stocker1.IsError" Index="630010003" DataType="System.Boolean" Description="" Module="Stocker1" Type="" Unit="" Parameter="IsError" />

+ 10 - 6
Furnace/FurnaceRT/Equipments/FIMSs/FIMSLoadRoutine.cs

@@ -61,11 +61,15 @@ namespace FurnaceRT.Equipments.FIMSs
             }
             if (_isNeedN2Purge)
             {
-                if (!(Singleton<EquipmentManager>.Instance.Modules[ModuleName.PM1] as PMModule).FIMSLoadCheckLAO2(out string reason))
+                if (SC.ContainsItem("System.FIMSManualCheck") && SC.GetValue<bool>("System.FIMSManualCheck") )
                 {
-                    _fimsModule.LoadFailAlarm.Set(reason);
-                    return Result.FAIL;
+                    if (!(Singleton<EquipmentManager>.Instance.Modules[ModuleName.PM1] as PMModule).FIMSLoadCheckLAO2(out string reason))
+                    {
+                        _fimsModule.LoadFailAlarm.Set(reason);
+                        return Result.FAIL;
+                    }
                 }
+            
                 _pmModule?.SetN2PurgeParameters();
 
             }
@@ -88,10 +92,10 @@ namespace FurnaceRT.Equipments.FIMSs
             _fimsModule.FIMSDevice.IsUnloadCompleted = false;
 
 
-    
+
 
             Notify($"{_fimsModule.Name} {Name} start");
-          
+
 
 
             return Result.RUN;
@@ -165,7 +169,7 @@ namespace FurnaceRT.Equipments.FIMSs
                     throw (new RoutineBreakException());
             }
         }
-       
+
         private void CheckLoadFinish(int id, int timeout)
         {
             Tuple<bool, Result> ret = ExecuteAndWait(id, () =>

+ 1 - 0
Furnace/FurnaceRT/FurnaceRT.csproj

@@ -601,6 +601,7 @@
   </ItemGroup>
   <ItemGroup>
     <Folder Include="Config\BackUp\" />
+    <Folder Include="dependence\" />
   </ItemGroup>
   <ItemGroup>
     <WCFMetadata Include="Connected Services\" />