|
@@ -150,14 +150,16 @@ namespace CyberX8_RT.Schedulers
|
|
List<SchedulerSyncModuleMessage> synModules = GenerateLoaderTransporterSyncModuleMessage(strTRNP);
|
|
List<SchedulerSyncModuleMessage> synModules = GenerateLoaderTransporterSyncModuleMessage(strTRNP);
|
|
SchedulerSequence bufferToLoaderSequence = CreateLoaderTransporterSequence(transporterAction,synModules, ref index);
|
|
SchedulerSequence bufferToLoaderSequence = CreateLoaderTransporterSequence(transporterAction,synModules, ref index);
|
|
schedulerSequences.Add(bufferToLoaderSequence);
|
|
schedulerSequences.Add(bufferToLoaderSequence);
|
|
|
|
+ //尺寸不一致
|
|
|
|
+ bool needFlip = CheckLoaderWaferSizeNotEqual() && waferCount == 2;
|
|
//Loader
|
|
//Loader
|
|
LoaderParameter parameter = new LoaderParameter();
|
|
LoaderParameter parameter = new LoaderParameter();
|
|
- parameter.WaferCount= waferCount;
|
|
|
|
|
|
+ parameter.WaferCount= needFlip?1: waferCount;
|
|
parameter.LoadCompleteToTransporterSide = strTRNP;
|
|
parameter.LoadCompleteToTransporterSide = strTRNP;
|
|
|
|
+ parameter.NeedWaitFlip = needFlip;
|
|
SchedulerSequence loaderSequence = CreateLoaderSequence(parameter,ref index);
|
|
SchedulerSequence loaderSequence = CreateLoaderSequence(parameter,ref index);
|
|
schedulerSequences.Add(loaderSequence);
|
|
schedulerSequences.Add(loaderSequence);
|
|
- //尺寸不一致
|
|
|
|
- if (CheckLoaderWaferSizeNotEqual()&&waferCount==2)
|
|
|
|
|
|
+ if (needFlip)
|
|
{
|
|
{
|
|
string reverse = GetReverseTransporterLocation(strTRNP);
|
|
string reverse = GetReverseTransporterLocation(strTRNP);
|
|
TransporterAction flipAction = GenerateTransporterFlipAction(reverse);
|
|
TransporterAction flipAction = GenerateTransporterFlipAction(reverse);
|
|
@@ -165,9 +167,10 @@ namespace CyberX8_RT.Schedulers
|
|
schedulerSequences.Add(flipSequence);
|
|
schedulerSequences.Add(flipSequence);
|
|
//Loader
|
|
//Loader
|
|
LoaderParameter reverseParameter = new LoaderParameter();
|
|
LoaderParameter reverseParameter = new LoaderParameter();
|
|
- reverseParameter.WaferCount = waferCount;
|
|
|
|
|
|
+ reverseParameter.WaferCount = 1;
|
|
reverseParameter.LoadCompleteToTransporterSide = reverse;
|
|
reverseParameter.LoadCompleteToTransporterSide = reverse;
|
|
- SchedulerSequence reverseLoadSequence = CreateLoaderSequence(parameter, ref index);
|
|
|
|
|
|
+ reverseParameter.NeedWaitFlip = false;
|
|
|
|
+ SchedulerSequence reverseLoadSequence = CreateLoaderSequence(reverseParameter, ref index);
|
|
schedulerSequences.Add(reverseLoadSequence);
|
|
schedulerSequences.Add(reverseLoadSequence);
|
|
}
|
|
}
|
|
//wafer holder装载后的recipe工序
|
|
//wafer holder装载后的recipe工序
|
|
@@ -279,12 +282,30 @@ namespace CyberX8_RT.Schedulers
|
|
TransporterAction transporterAction = GenerateTransporterTransferAction(currentLocationModuleName, ModuleType.Buffer, ModuleName.Loader1, ModuleType.Loader);
|
|
TransporterAction transporterAction = GenerateTransporterTransferAction(currentLocationModuleName, ModuleType.Buffer, ModuleName.Loader1, ModuleType.Loader);
|
|
SchedulerSequence bufferToLoaderSequence = CreateLoaderTransporterSequence(transporterAction,synModules, ref index);
|
|
SchedulerSequence bufferToLoaderSequence = CreateLoaderTransporterSequence(transporterAction,synModules, ref index);
|
|
schedulerSequences.Add(bufferToLoaderSequence);
|
|
schedulerSequences.Add(bufferToLoaderSequence);
|
|
|
|
+
|
|
|
|
+ //尺寸不一致
|
|
|
|
+ bool needFlip = CheckLoaderWaferSizeNotEqual() && waferCount == 2;
|
|
//Loader
|
|
//Loader
|
|
LoaderParameter parameter = new LoaderParameter();
|
|
LoaderParameter parameter = new LoaderParameter();
|
|
- parameter.WaferCount = waferCount;
|
|
|
|
|
|
+ parameter.WaferCount = needFlip ? 1 : waferCount; ;
|
|
parameter.LoadCompleteToTransporterSide = strTRNP;
|
|
parameter.LoadCompleteToTransporterSide = strTRNP;
|
|
|
|
+ parameter.NeedWaitFlip = needFlip;
|
|
SchedulerSequence loaderSequence = CreateLoaderSequence(parameter,ref index);
|
|
SchedulerSequence loaderSequence = CreateLoaderSequence(parameter,ref index);
|
|
schedulerSequences.Add(loaderSequence);
|
|
schedulerSequences.Add(loaderSequence);
|
|
|
|
+ if (needFlip)
|
|
|
|
+ {
|
|
|
|
+ string reverse = GetReverseTransporterLocation(strTRNP);
|
|
|
|
+ TransporterAction flipAction = GenerateTransporterFlipAction(reverse);
|
|
|
|
+ SchedulerSequence flipSequence = CreateLoaderTransporterSequence(flipAction, null, ref index);
|
|
|
|
+ schedulerSequences.Add(flipSequence);
|
|
|
|
+ //Loader
|
|
|
|
+ LoaderParameter reverseParameter = new LoaderParameter();
|
|
|
|
+ reverseParameter.WaferCount = 1;
|
|
|
|
+ reverseParameter.LoadCompleteToTransporterSide = reverse;
|
|
|
|
+ reverseParameter.NeedWaitFlip = false;
|
|
|
|
+ SchedulerSequence reverseLoadSequence = CreateLoaderSequence(reverseParameter, ref index);
|
|
|
|
+ schedulerSequences.Add(reverseLoadSequence);
|
|
|
|
+ }
|
|
//Loader To Buffer
|
|
//Loader To Buffer
|
|
TransporterAction loaderMoveToBufferAction=GenerateTransporterTransferAction (ModuleName.Loader1, ModuleType.Loader,
|
|
TransporterAction loaderMoveToBufferAction=GenerateTransporterTransferAction (ModuleName.Loader1, ModuleType.Loader,
|
|
bufferModule, ModuleType.Buffer);
|
|
bufferModule, ModuleType.Buffer);
|