2023-03-03 15:42:13 +08:00
|
|
|
|
using SicRT.Scheduler;
|
|
|
|
|
using MECF.Framework.Common.Equipment;
|
|
|
|
|
using System.Collections.Generic;
|
2023-03-28 13:24:11 +08:00
|
|
|
|
using Aitex.Core.RT.SCCore;
|
2023-03-03 15:42:13 +08:00
|
|
|
|
|
|
|
|
|
namespace SicRT.Modules.Schedulers
|
|
|
|
|
{
|
|
|
|
|
public class SchedulerModuleFactory
|
|
|
|
|
{
|
|
|
|
|
protected SchedulerTMRobot _tmRobot = new SchedulerTMRobot();
|
|
|
|
|
protected SchedulerWaferRobot _waferRobot = new SchedulerWaferRobot();
|
|
|
|
|
protected SchedulerTrayRobot _trayRobot = new SchedulerTrayRobot();
|
|
|
|
|
|
|
|
|
|
protected SchedulerBuffer _buffer = new SchedulerBuffer(ModuleName.Buffer);
|
|
|
|
|
protected SchedulerLoadLock _load = new SchedulerLoadLock(ModuleName.LoadLock);
|
|
|
|
|
protected SchedulerUnLoad _unload = new SchedulerUnLoad(ModuleName.UnLoad);
|
|
|
|
|
protected SchedulerAligner _aligner = new SchedulerAligner(ModuleName.Aligner);
|
2023-03-28 13:24:11 +08:00
|
|
|
|
|
2023-03-03 15:42:13 +08:00
|
|
|
|
protected SchedulerPM _pm1 = new SchedulerPM(ModuleName.PM1);
|
2023-03-28 13:24:11 +08:00
|
|
|
|
|
|
|
|
|
|
2023-03-03 15:42:13 +08:00
|
|
|
|
protected SchedulerPM _pm2 = new SchedulerPM(ModuleName.PM2);
|
|
|
|
|
|
|
|
|
|
protected SchedulerCassette _cassetteAL = new SchedulerCassette(ModuleName.CassAL);
|
|
|
|
|
protected SchedulerCassette _cassetteAR = new SchedulerCassette(ModuleName.CassAR);
|
|
|
|
|
protected SchedulerCassette _cassetteBL = new SchedulerCassette(ModuleName.CassBL);
|
|
|
|
|
|
|
|
|
|
protected List<SchedulerPM> _lstPms = new List<SchedulerPM>();
|
|
|
|
|
protected List<SchedulerCassette> _lstWaferCassettes = new List<SchedulerCassette>();
|
|
|
|
|
|
|
|
|
|
protected SchedulerModuleFactory()
|
|
|
|
|
{
|
|
|
|
|
|
2023-03-28 13:24:11 +08:00
|
|
|
|
_lstPms.AddRange(new[] { _pm1 ,_pm2});
|
|
|
|
|
|
2023-03-03 15:42:13 +08:00
|
|
|
|
_lstWaferCassettes.AddRange(new[] { _cassetteAL, _cassetteAR});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected SchedulerModule GetModule(string name)
|
|
|
|
|
{
|
|
|
|
|
switch (ModuleHelper.Converter(name))
|
|
|
|
|
{
|
|
|
|
|
case ModuleName.Buffer:
|
|
|
|
|
return _buffer;
|
|
|
|
|
case ModuleName.TMRobot:
|
|
|
|
|
return _tmRobot;
|
|
|
|
|
case ModuleName.WaferRobot:
|
|
|
|
|
return _waferRobot;
|
|
|
|
|
case ModuleName.TrayRobot:
|
|
|
|
|
return _trayRobot;
|
|
|
|
|
case ModuleName.PM1:
|
|
|
|
|
return _pm1;
|
|
|
|
|
case ModuleName.PM2:
|
|
|
|
|
return _pm2;
|
|
|
|
|
case ModuleName.CassAL:
|
|
|
|
|
return _cassetteAL;
|
|
|
|
|
case ModuleName.CassAR:
|
|
|
|
|
return _cassetteAR;
|
|
|
|
|
case ModuleName.CassBL:
|
|
|
|
|
return _cassetteBL;
|
|
|
|
|
case ModuleName.LoadLock:
|
|
|
|
|
return _load;
|
|
|
|
|
case ModuleName.UnLoad:
|
|
|
|
|
return _unload;
|
|
|
|
|
case ModuleName.Aligner:
|
|
|
|
|
return _aligner;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected SchedulerModule GetModule(ModuleName name)
|
|
|
|
|
{
|
|
|
|
|
switch (name)
|
|
|
|
|
{
|
|
|
|
|
case ModuleName.Buffer:
|
|
|
|
|
return _buffer;
|
|
|
|
|
case ModuleName.TMRobot:
|
|
|
|
|
return _tmRobot;
|
|
|
|
|
case ModuleName.WaferRobot:
|
|
|
|
|
return _waferRobot;
|
|
|
|
|
case ModuleName.TrayRobot:
|
|
|
|
|
return _trayRobot;
|
|
|
|
|
case ModuleName.PM1:
|
|
|
|
|
return _pm1;
|
|
|
|
|
case ModuleName.PM2:
|
|
|
|
|
return _pm2;
|
|
|
|
|
case ModuleName.CassAL:
|
|
|
|
|
return _cassetteAL;
|
|
|
|
|
case ModuleName.CassAR:
|
|
|
|
|
return _cassetteAR;
|
|
|
|
|
case ModuleName.CassBL:
|
|
|
|
|
return _cassetteBL;
|
|
|
|
|
case ModuleName.LoadLock:
|
|
|
|
|
return _load;
|
|
|
|
|
case ModuleName.UnLoad:
|
|
|
|
|
return _unload;
|
|
|
|
|
case ModuleName.Aligner:
|
|
|
|
|
return _aligner;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void Reset()
|
|
|
|
|
{
|
|
|
|
|
_tmRobot.ResetTask();
|
|
|
|
|
_waferRobot.ResetTask();
|
|
|
|
|
_trayRobot.ResetTask();
|
|
|
|
|
|
|
|
|
|
foreach (var pm in _lstPms)
|
|
|
|
|
{
|
|
|
|
|
pm.ResetTask();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_buffer.ResetTask();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|