|
@@ -62,7 +62,7 @@ namespace CyberX8_RT.Schedulers
|
|
|
SchedulerSequence alignerSequence=CreateAlignerSequence(sequenceRecipe.AlignmentAngle,ref index);
|
|
|
schedulerSequences.Add(alignerSequence);
|
|
|
//从Aligner至Puf B面
|
|
|
- MoveItem moveItem2 = new MoveItem(ModuleName.Aligner1, 0, pufModule, 0, Aitex.Sorter.Common.Hand.Blade1);
|
|
|
+ MoveItem moveItem2 = new MoveItem(ModuleName.Aligner1, 0, pufModule, 1, Aitex.Sorter.Common.Hand.Blade1);
|
|
|
SchedulerSequence secondEfemRobotSequence = CreateEfemRobotSequence(moveItem2,null,ref index);
|
|
|
schedulerSequences.Add(secondEfemRobotSequence);
|
|
|
SchedulerSequence pufSequence=CreatePufSequence(pufModule,sequenceRecipe,side,true,ref index);
|
|
@@ -144,7 +144,7 @@ namespace CyberX8_RT.Schedulers
|
|
|
//Buffer To Loader
|
|
|
ModuleName currentLocationModuleName = (ModuleName)Enum.Parse(typeof(ModuleName), waferHolderInfo.CurrentLocation);
|
|
|
WaferHolderMoveItem bufferMoveToLoaderItem = new WaferHolderMoveItem(currentLocationModuleName, ModuleType.Buffer, ModuleName.Loader1, ModuleType.Loader);
|
|
|
- SchedulerSequence bufferToLoaderSequence = CreateLoaderTransporterSequence(bufferMoveToLoaderItem, ref index);
|
|
|
+ SchedulerSequence bufferToLoaderSequence = CreateLoaderTransporterSequence(bufferMoveToLoaderItem,sequenceRecipe, ref index);
|
|
|
schedulerSequences.Add(bufferToLoaderSequence);
|
|
|
//Loader
|
|
|
SchedulerSequence loaderSequence = CreateLoaderSequence(waferCount,ref index);
|
|
@@ -167,7 +167,7 @@ namespace CyberX8_RT.Schedulers
|
|
|
ModuleName currentLocationModuleName = (ModuleName)Enum.Parse(typeof(ModuleName), waferHolderInfo.CurrentLocation);
|
|
|
ModuleName bufferModule = (ModuleName)Enum.Parse(typeof(ModuleName), waferHolderInfo.OriginalBuffer);
|
|
|
WaferHolderMoveItem bufferMoveToLoaderItem = new WaferHolderMoveItem(currentLocationModuleName, ModuleType.Buffer, ModuleName.Loader1, ModuleType.Loader);
|
|
|
- SchedulerSequence bufferToLoaderSequence = CreateLoaderTransporterSequence(bufferMoveToLoaderItem, ref index);
|
|
|
+ SchedulerSequence bufferToLoaderSequence = CreateLoaderTransporterSequence(bufferMoveToLoaderItem,waferHolderInfo.SequenceRecipe, ref index);
|
|
|
schedulerSequences.Add(bufferToLoaderSequence);
|
|
|
//Loader
|
|
|
SchedulerSequence loaderSequence = CreateLoaderSequence(waferCount,ref index);
|
|
@@ -175,7 +175,7 @@ namespace CyberX8_RT.Schedulers
|
|
|
//Loader To Buffer
|
|
|
WaferHolderMoveItem loaderMoveToBufferItem = new WaferHolderMoveItem(ModuleName.Loader1, ModuleType.Loader,
|
|
|
bufferModule, ModuleType.Buffer);
|
|
|
- SchedulerSequence loaderToBufferSequence = CreateLoaderTransporterSequence(loaderMoveToBufferItem, ref index);
|
|
|
+ SchedulerSequence loaderToBufferSequence = CreateLoaderTransporterSequence(loaderMoveToBufferItem,waferHolderInfo.SequenceRecipe, ref index);
|
|
|
schedulerSequences.Add(loaderToBufferSequence);
|
|
|
return schedulerSequences;
|
|
|
}
|
|
@@ -229,13 +229,13 @@ namespace CyberX8_RT.Schedulers
|
|
|
//Loader To Buffer
|
|
|
WaferHolderMoveItem loaderMoveToBufferItem = new WaferHolderMoveItem(ModuleName.Loader1, ModuleType.Loader,
|
|
|
moduleName, ModuleType.Buffer);
|
|
|
- SchedulerSequence loaderToBufferSequence = CreateLoaderTransporterSequence(loaderMoveToBufferItem, ref index);
|
|
|
+ SchedulerSequence loaderToBufferSequence = CreateLoaderTransporterSequence(loaderMoveToBufferItem,sequenceRecipe, ref index);
|
|
|
schedulerSequences.Add(loaderToBufferSequence);
|
|
|
//解析sequence recipe后续的工序
|
|
|
var result = AnalyseSequenceRecipeScheduler(sequenceRecipe);
|
|
|
//buffer to recipe第一个工序
|
|
|
WaferHolderMoveItem bufferToFirstItem = new WaferHolderMoveItem(moduleName, ModuleType.Buffer, ModuleName.Unknown, result.firstModuleType);
|
|
|
- SchedulerSequence bufferSequence = CreateLoaderTransporterSequence(bufferToFirstItem, ref index);
|
|
|
+ SchedulerSequence bufferSequence = CreateLoaderTransporterSequence(bufferToFirstItem,sequenceRecipe, ref index);
|
|
|
schedulerSequences.Add(bufferSequence);
|
|
|
//调整工序后面的索引
|
|
|
foreach (SchedulerSequence item in result.sequences)
|
|
@@ -246,7 +246,7 @@ namespace CyberX8_RT.Schedulers
|
|
|
schedulerSequences.AddRange(result.sequences);
|
|
|
//从recipe最后工序
|
|
|
WaferHolderMoveItem lastToBufferItem = new WaferHolderMoveItem(ModuleName.Unknown, result.lastModuleType, moduleName, ModuleType.Buffer);
|
|
|
- SchedulerSequence lastToBufferSequence = CreateLoaderTransporterSequence(lastToBufferItem, ref index);
|
|
|
+ SchedulerSequence lastToBufferSequence = CreateLoaderTransporterSequence(lastToBufferItem,sequenceRecipe, ref index);
|
|
|
schedulerSequences.Add(lastToBufferSequence);
|
|
|
return schedulerSequences;
|
|
|
}
|
|
@@ -453,14 +453,14 @@ namespace CyberX8_RT.Schedulers
|
|
|
/// </summary>
|
|
|
/// <param name="index"></param>
|
|
|
/// <returns></returns>
|
|
|
- private SchedulerSequence CreateLoaderTransporterSequence(WaferHolderMoveItem waferHolderMoveItem, ref int index)
|
|
|
+ private SchedulerSequence CreateLoaderTransporterSequence(WaferHolderMoveItem waferHolderMoveItem,SequenceRecipe sequenceRecipe, ref int index)
|
|
|
{
|
|
|
SchedulerSequence sequence = new SchedulerSequence();
|
|
|
sequence.ModuleType = ModuleType.Transporter;
|
|
|
sequence.ModuleName = ModuleName.Transporter2;
|
|
|
sequence.SequenceIndex = index;
|
|
|
sequence.State = RState.Init;
|
|
|
- sequence.Recipe = null;
|
|
|
+ sequence.Recipe = sequenceRecipe;
|
|
|
sequence.SchedulerModule = SchedulerManager.Instance.GetScheduler(ModuleName.Transporter2);
|
|
|
sequence.Parameters = waferHolderMoveItem;
|
|
|
sequence.MaterialType = MaterialType.WaferHolder;
|