Przeglądaj źródła

add SchedulerAligner plat type

chenkui 1 miesiąc temu
rodzic
commit
3c2229df11

+ 13 - 2
CyberX8_RT/Schedulers/Aligner/SchedulerAligner.cs

@@ -15,6 +15,7 @@ using MECF.Framework.Common.CommonData;
 using CyberX8_Core;
 using Aitex.Core.RT.Log;
 using Aitex.Core.Common;
+using MECF.Framework.Common.RecipeCenter;
 
 namespace CyberX8_RT.Schedulers.Aligner
 {
@@ -59,9 +60,19 @@ namespace CyberX8_RT.Schedulers.Aligner
             {
                 return false;
             }
-            int angle = int.Parse(parameter.ToString());
+            if (recipe == null)
+            {
+                return false;
+            }
+            if(!(recipe is SequenceRecipe))
+            {
+                return false;
+            }
+            SequenceRecipe sequenceRecipe=recipe as SequenceRecipe;
+            int angle = int.Parse(sequenceRecipe.AlignmentAngle.ToString());
+            int platType = sequenceRecipe.PlatType;
             return _efemEntity.CheckToPostMessage<EfemEntity.STATE, EfemEntity.MSG>(eEvent.ERR_EFEM_COMMON_FAILED,
-                Module.ToString(), (int)EfemEntity.MSG.Align, ModuleName.Aligner1.ToString(), 0, angle);
+                Module.ToString(), (int)EfemEntity.MSG.Align, ModuleName.Aligner1.ToString(), 0, angle,platType);
         }
         /// <summary>
         /// 监控执行

+ 6 - 14
CyberX8_RT/Schedulers/SchedulerSequenceManager.cs

@@ -61,7 +61,7 @@ namespace CyberX8_RT.Schedulers
             MoveItem moveItem = new MoveItem((ModuleName)waferInfo.OriginStation, waferInfo.OriginSlot, ModuleName.Aligner1, 0, Aitex.Sorter.Common.Hand.Blade1);
             SchedulerSequence efemRobotSequence = CreateEfemRobotSequence(moveItem,null,sequenceRecipe.SubstrateSize,ref index);
             schedulerSequences.Add(efemRobotSequence);
-            SchedulerSequence alignerSequence=CreateAlignerSequence(sequenceRecipe.AlignmentAngle,sequenceRecipe.SubstrateSize,ref index);
+            SchedulerSequence alignerSequence=CreateAlignerSequence(sequenceRecipe,ref index);
             schedulerSequences.Add(alignerSequence);
             //从Aligner至Puf B面
             MoveItem moveItem2 = new MoveItem(ModuleName.Aligner1, 0, pufModule, 1, Aitex.Sorter.Common.Hand.Blade1);
@@ -327,15 +327,7 @@ namespace CyberX8_RT.Schedulers
             SchedulerSequence secondEfemRobotSequence = CreateEfemRobotSequence(moveItem, null,sequenceRecipe.SubstrateSize, ref index);
             schedulerSequences.Add(secondEfemRobotSequence);
             //Aligner
-            SchedulerSequence alignerSequence = null;
-            if (sequenceRecipe == null)
-            {
-                alignerSequence= CreateAlignerSequence(0,sequenceRecipe.SubstrateSize, ref index);
-            }
-            else
-            {
-                alignerSequence=CreateAlignerSequence(sequenceRecipe.AlignmentAngle,sequenceRecipe.SubstrateSize, ref index);
-            }
+            SchedulerSequence alignerSequence=CreateAlignerSequence(sequenceRecipe, ref index);
             schedulerSequences.Add(alignerSequence);
             //Aligner至Puf
             MoveItem alignerToPufMoveItem = new MoveItem(ModuleName.Aligner1, 0, pufModule, 1, Aitex.Sorter.Common.Hand.Blade1);
@@ -511,18 +503,18 @@ namespace CyberX8_RT.Schedulers
         /// </summary>
         /// <param name="index"></param>
         /// <returns></returns>
-        private SchedulerSequence CreateAlignerSequence(double angle,int waferSize,ref int index) 
+        private SchedulerSequence CreateAlignerSequence(SequenceRecipe recipe,ref int index) 
         {
             SchedulerSequence sequence = new SchedulerSequence();
             sequence.SchedulerModule = SchedulerManager.Instance.GetScheduler(ModuleName.Aligner1);
             sequence.SequenceIndex = index;
             sequence.ModuleName = ModuleName.Aligner1;
             sequence.State = RState.Init;
-            sequence.Recipe = null;
+            sequence.Recipe = recipe;
             sequence.ModuleType = ModuleType.Aligner;
-            sequence.Parameters = angle;
+            sequence.Parameters = null;
             sequence.MaterialType = MaterialType.Wafer;
-            sequence.WaferSize = waferSize;
+            sequence.WaferSize = sequence.WaferSize;
             index++;
             return sequence;
         }