Browse Source

wafer manager.

sangwq 2 years ago
parent
commit
c3154ba629

+ 4 - 1
Venus/Framework/Common/Common.csproj

@@ -33,7 +33,7 @@
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="csmatio">
-      <HintPath>..\..\ThirdParty\dlls\csmatio.dll</HintPath>
+      <HintPath>..\Output\MECF.Framework\csmatio.dll</HintPath>
     </Reference>
     <Reference Include="DocumentFormat.OpenXml">
       <HintPath>..\..\ThirdParty\DocumentFormat.OpenXml.dll</HintPath>
@@ -709,5 +709,8 @@
       <Name>Venus_Core</Name>
     </ProjectReference>
   </ItemGroup>
+  <ItemGroup>
+    <Analyzer Include="..\Output\MECF.Framework\csmatio.dll" />
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 </Project>

+ 1 - 1
Venus/Framework/RTCore/RTCore.csproj

@@ -36,7 +36,7 @@
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="FabConnect">
-      <HintPath>..\..\ThirdParty\dlls\FabConnect.dll</HintPath>
+      <HintPath>..\..\ThirdParty\FabConnect.dll</HintPath>
     </Reference>
     <Reference Include="log4net">
       <HintPath>..\..\ThirdParty\log4net.dll</HintPath>

+ 9 - 11
Venus/Framework/SimulatorCore/SimulatorCore.csproj

@@ -40,13 +40,13 @@
     <Reference Include="PresentationFramework" />
     <Reference Include="PresentationFramework.Aero" />
     <Reference Include="SuperSocket.Common">
-      <HintPath>..\..\ThirdParty\dlls\SuperSocket.Common.dll</HintPath>
+      <HintPath>..\Output\MECF.Framework\SuperSocket.Common.dll</HintPath>
     </Reference>
     <Reference Include="SuperSocket.SocketBase">
-      <HintPath>..\..\ThirdParty\dlls\SuperSocket.SocketBase.dll</HintPath>
+      <HintPath>..\Output\MECF.Framework\SuperSocket.SocketBase.dll</HintPath>
     </Reference>
     <Reference Include="SuperSocket.SocketEngine">
-      <HintPath>..\..\ThirdParty\dlls\SuperSocket.SocketEngine.dll</HintPath>
+      <HintPath>..\Output\MECF.Framework\SuperSocket.SocketEngine.dll</HintPath>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
@@ -61,20 +61,18 @@
     <Reference Include="System.Net.Http" />
     <Reference Include="System.Xml" />
     <Reference Include="WindowsBase" />
-    <Reference Include="WPFToolkit, Version=3.5.40128.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\ThirdParty\dlls\WPFToolkit.dll</HintPath>
+    <Reference Include="WPFToolkit">
+      <HintPath>..\..\ThirdParty\WPFToolkit.dll</HintPath>
     </Reference>
     <Reference Include="WPFToolkit.Extended, Version=1.6.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\ThirdParty\dlls\WPFToolkit.Extended.dll</HintPath>
+      <HintPath>..\Output\MECF.Framework\WPFToolkit.Extended.dll</HintPath>
     </Reference>
     <Reference Include="Xceed.Wpf.AvalonDock">
-      <HintPath>..\..\ThirdParty\dlls\Xceed.Wpf.AvalonDock.dll</HintPath>
+      <HintPath>..\Output\MECF.Framework\Xceed.Wpf.AvalonDock.dll</HintPath>
     </Reference>
-    <Reference Include="Xceed.Wpf.Toolkit, Version=2.0.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\..\ThirdParty\dlls\Xceed.Wpf.Toolkit.dll</HintPath>
+    <Reference Include="Xceed.Wpf.Toolkit">
+      <HintPath>..\..\ThirdParty\Xceed.Wpf.Toolkit.dll</HintPath>
     </Reference>
   </ItemGroup>
   <ItemGroup>

+ 3 - 3
Venus/Framework/UICore/UICore.csproj

@@ -81,13 +81,13 @@
     <Reference Include="WindowsBase" />
     <Reference Include="WindowsFormsIntegration" />
     <Reference Include="WPFToolkit">
-      <HintPath>..\..\ThirdParty\dlls\WPFToolkit.dll</HintPath>
+      <HintPath>..\..\ThirdParty\WPFToolkit.dll</HintPath>
     </Reference>
     <Reference Include="Xceed.Wpf.DataGrid">
-      <HintPath>..\..\ThirdParty\dlls\Xceed.Wpf.DataGrid.dll</HintPath>
+      <HintPath>..\..\ThirdParty\Xceed.Wpf.DataGrid.dll</HintPath>
     </Reference>
     <Reference Include="Xceed.Wpf.Toolkit">
-      <HintPath>..\..\ThirdParty\dlls\Xceed.Wpf.Toolkit.dll</HintPath>
+      <HintPath>..\..\ThirdParty\Xceed.Wpf.Toolkit.dll</HintPath>
     </Reference>
   </ItemGroup>
   <ItemGroup>

+ 1 - 1
Venus/RecipeEditorControl/View/RecipeEditorControl.xaml.cs

@@ -67,7 +67,7 @@ namespace Aitex.UI.RecipeEditor
             return (bool)obj.GetValue(ShowBorderProperty);
         }
 
-        private static bool flag = false;
+        //private static bool flag = false;
 
         public static void SetShowBorder(DependencyObject obj, bool value)
         {

+ 1 - 1
Venus/Venus_MainPages/Unity/GridOptions.cs

@@ -18,7 +18,7 @@ namespace Venus_MainPages.Unity
             return (bool)obj.GetValue(ShowBorderProperty);
         }
 
-        private static bool flag = false;
+//        private static bool flag = false;
 
         public static void SetShowBorder(DependencyObject obj, bool value)
         {

+ 15 - 1
Venus/Venus_RT/Modules/PMs/LLPickRoutine.cs

@@ -1,7 +1,8 @@
 using Aitex.Core.RT.Routine;
 using Aitex.Core.RT.SCCore;
 using Venus_RT.Devices;
-using MECF.Framework.Common.Routine;
+using MECF.Framework.Common.Equipment;
+using MECF.Framework.Common.SubstrateTrackings;
 using Venus_Core;
 
 namespace Venus_RT.Modules.PMs
@@ -34,6 +35,18 @@ namespace Venus_RT.Modules.PMs
             _transferWaferTimeout = SC.GetValue<int>($"{Module}.TransferWaferTimeout");
             _isATMMode = SC.GetValue<bool>("System.IsATMMode");
 
+            if(WaferManager.Instance.CheckNoWafer(ModuleName.PMA, 0))
+            {
+                Stop("腔体没有 Wafer,不能执行取片动作");
+                return RState.Failed;
+            }
+
+            if (WaferManager.Instance.CheckHasWafer(ModuleName.LLA, 0))
+            {
+                Stop("Loadlock 里面有片 Wafer,不能执行取片动作");
+                return RState.Failed;
+            }
+
             if (_isATMMode)
             {
                 if (!_chamber.IsATM || !_chamber.IsATMLoadlock)
@@ -83,6 +96,7 @@ namespace Venus_RT.Modules.PMs
 
         private bool PostTransfer()
         {
+            WaferManager.Instance.WaferMoved(ModuleName.PMA, 0, ModuleName.LLA, 0);
             _chamber.SetSlitDoor(false, out _);
             return true;
         }

+ 16 - 2
Venus/Venus_RT/Modules/PMs/LLPlaceRoutine.cs

@@ -1,7 +1,8 @@
 using Aitex.Core.RT.Routine;
 using Aitex.Core.RT.SCCore;
 using Venus_RT.Devices;
-using MECF.Framework.Common.Routine;
+using MECF.Framework.Common.Equipment;
+using MECF.Framework.Common.SubstrateTrackings;
 using System.Diagnostics;
 using System.Collections.Generic;
 using Venus_Core;
@@ -33,7 +34,19 @@ namespace Venus_RT.Modules.PMs
             _transferWaferTimeout = SC.GetValue<int>($"{Module}.TransferWaferTimeout");
             _isATMMode = SC.GetValue<bool>("System.IsATMMode");
 
-            if(_isATMMode)
+            if (WaferManager.Instance.CheckHasWafer(ModuleName.PMA, 0))
+            {
+                Stop("腔体里面有 Wafer,不能执行放片动作");
+                return RState.Failed;
+            }
+
+            if (WaferManager.Instance.CheckNoWafer(ModuleName.LLA, 0))
+            {
+                Stop("Loadlock 里面没有 Wafer,不能执行放片动作");
+                return RState.Failed;
+            }
+
+            if (_isATMMode)
             {
                 if(!_chamber.IsATM || !_chamber.IsATMLoadlock)
                 {
@@ -82,6 +95,7 @@ namespace Venus_RT.Modules.PMs
 
         private bool PostTransfer()
         {
+            WaferManager.Instance.WaferMoved(ModuleName.LLA, 0, ModuleName.PMA, 0);
             _chamber.SetLiftPin(MovementPosition.Down, out _);
             _chamber.SetSlitDoor(false, out _);
             return true;

+ 3 - 0
Venus/Venus_RT/Modules/PMs/PMEntity.cs

@@ -306,6 +306,9 @@ namespace Venus_RT.Modules.PMs
             Transition(PMState.Processing,      MSG.Abort,          FnAbortProcess,             PMState.Idle);
 
             Running = true;
+
+            WaferManager.Instance.SubscribeLocation(ModuleName.PMA, 1);
+            WaferManager.Instance.SubscribeLocation(ModuleName.LLA, 1);
         }
 
         private bool FnIdle(object[] objs)

+ 5 - 0
Venus/Venus_RT/Modules/PMs/PMProcessRoutine.cs

@@ -2,9 +2,11 @@
 using System.Collections.Generic;
 using Aitex.Core.RT.Routine;
 using Aitex.Core.RT.SCCore;
+using Aitex.Core.Common;
 using Aitex.Common.Util;
 using Aitex.Core.RT.RecipeCenter;
 using Venus_RT.Devices;
+using MECF.Framework.Common.Equipment;
 using MECF.Framework.Common.SubstrateTrackings;
 
 using Venus_Core;
@@ -187,6 +189,8 @@ namespace Venus_RT.Modules.PMs
 
             _tolerance = SC.GetValue<double>($"System.MaxTemperatureToleranceToTarget");
             _OffsetTemp = SC.GetValue<double>($"{Module}.Chiller.ChillerTemperatureOffset");
+
+            WaferManager.Instance.UpdateWaferProcessStatus(Module, 0, EnumWaferProcessStatus.InProcess);
             return Runner.Start(Module, Name);
         }
         public RState Monitor()
@@ -317,6 +321,7 @@ namespace Venus_RT.Modules.PMs
 
         private bool ProcessDone()
         {
+            WaferManager.Instance.UpdateWaferProcessStatus(Module, 0, EnumWaferProcessStatus.Completed);
             return true;
         }
 

+ 1 - 1
Venus/Venus_RT/Modules/PMs/ProcessDefine.cs

@@ -281,7 +281,7 @@ namespace Venus_RT.Modules.PMs
         public static bool LoadMethods(ProcessUnitBase unit)
         {
             var className = unit.GetType().Name;
-            if(startHelper.ContainsKey(className) && checkerHelper.ContainsKey(className))
+            if(startHelper.ContainsKey(className) && checkerHelper.ContainsKey(className) && endHelper.ContainsKey(className))
             {
                 unit.starter = startHelper[className];
                 unit.checker = checkerHelper[className];

+ 1 - 1
Venus/Venus_RT/Venus_RT.csproj

@@ -311,7 +311,7 @@
   </PropertyGroup>
   <PropertyGroup>
     <PostBuildEvent>if $(ConfigurationName)==Release (
-ISCC.exe "$(SolutionDir)\Venus_Setup\Venus_RT.iss"
+ISCC.exe  /Q "$(SolutionDir)\Venus_Setup\Venus_RT.iss"
 )</PostBuildEvent>
   </PropertyGroup>
 </Project>

+ 1 - 1
Venus/Venus_UI/Venus_UI.csproj

@@ -216,7 +216,7 @@
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <PropertyGroup>
     <PostBuildEvent>if $(ConfigurationName)==Release (
-ISCC.exe "$(SolutionDir)\Venus_Setup\Venus_UI.iss"
+ISCC.exe /Q "$(SolutionDir)\Venus_Setup\Venus_UI.iss"
 )</PostBuildEvent>
   </PropertyGroup>
 </Project>