This repository has been archived on 2024-01-02. You can view files and clone it, but cannot push or open issues or pull requests.
Sic06/SicRT/Equipments/Schedulers/SchedulerModuleFactory.cs

116 lines
3.9 KiB
C#
Raw Normal View History

2023-01-13 10:57:37 +08:00
using SicRT.Scheduler;
using MECF.Framework.Common.Equipment;
using System.Collections.Generic;
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);
protected SchedulerPM _pm1 = new SchedulerPM(ModuleName.PM1);
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()
{
_lstPms.AddRange(new[] { _pm1,_pm2 });
_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();
}
}
}