123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- using Aitex.Core.RT.SCCore;
- using MECF.Framework.Common.Equipment;
- using System.Collections.Generic;
- using System.Linq;
- namespace FurnaceRT.Equipments.Schedulers
- {
- public class SchedulerModuleFactory
- {
- protected static SchedulerCarrierRobot _carrierRobot = new SchedulerCarrierRobot();
- protected static SchedulerWaferRobot _waferRobot = new SchedulerWaferRobot();
- protected static SchedulerFIMS _fims1 = new SchedulerFIMS(ModuleName.FIMS1);
- protected static SchedulerFIMS _fims2 = new SchedulerFIMS(ModuleName.FIMS2);
- protected static SchedulerPM _pm1 = new SchedulerPM(ModuleName.PM1);
- protected static List<SchedulerPM> _lstPms;
- protected static SchedulerLoadPort _lp1 = new SchedulerLoadPort(ModuleName.LP1);
- protected static SchedulerLoadPort _lp2 = new SchedulerLoadPort(ModuleName.LP2);
- protected List<SchedulerLoadPort> _lstLPs;
- protected static List<SchedulerFIMS> _lstFIMSs;
- //protected List<SchedulerStocker> _lstBatchAStocker;
- //protected List<SchedulerStocker> _lstBatchBStocker;
- protected List<SchedulerStocker> _lstExtraDummyStocker;
- protected List<SchedulerStocker> _lstSideDummyStocker;
- //protected List<SchedulerStocker> _lstMonitor1Stocker;
- //protected List<SchedulerStocker> _lstMonitor2Stocker;
- protected List<SchedulerStocker> _lstCurrentBatchStocker = new List<SchedulerStocker>();
- protected List<SchedulerStocker> _lstCurrentMonitorStocker = new List<SchedulerStocker>();
- protected List<SchedulerStocker> _lstTotlaStockers;
- protected List<SchedulerStocker> _lstPlaceExtraDummyStockers;
- protected List<SchedulerStocker> _lstPlaceSideDummyStocker;
- protected List<SchedulerStocker> _lstPlaceMonitor1Stocker;
- protected List<SchedulerStocker> _lstPlaceMonitor2Stocker;
- protected List<SchedulerStocker> _lstPlaceCurrentBatchStocker;
- protected List<SchedulerStocker> _lstPlaceXDStocker;
- protected List<SchedulerStocker> _lstPlaceTStocker;
- protected void InitModule()
- {
- _lstPms = new List<SchedulerPM>() { _pm1 };
- _lstFIMSs = new List<SchedulerFIMS>();
- if (SC.GetValue<bool>($"System.SetUp.IsFIMS1Installed"))
- {
- _lstFIMSs.Add(_fims1);
- }
- if (SC.GetValue<bool>($"System.SetUp.IsFIMS2Installed"))
- {
- _lstFIMSs.Add(_fims2);
- }
- _lstLPs = new List<SchedulerLoadPort>();
- if (SC.GetValue<bool>($"System.SetUp.IsLP1Installed"))
- {
- _lstLPs.Add(_lp1);
- }
- if (SC.GetValue<bool>($"System.SetUp.IsLP2Installed"))
- {
- _lstLPs.Add(_lp2);
- }
- //_lstBatchAStocker = new List<SchedulerStocker>();
- //_lstBatchBStocker = new List<SchedulerStocker>();
- _lstExtraDummyStocker = new List<SchedulerStocker>();
- _lstSideDummyStocker = new List<SchedulerStocker>();
- //_lstMonitor1Stocker = new List<SchedulerStocker>();
- //_lstMonitor2Stocker = new List<SchedulerStocker>();
- _lstPlaceExtraDummyStockers = new List<SchedulerStocker>();
- _lstPlaceSideDummyStocker = new List<SchedulerStocker>();
- _lstPlaceMonitor1Stocker = new List<SchedulerStocker>();
- _lstPlaceMonitor2Stocker = new List<SchedulerStocker>();
- _lstPlaceCurrentBatchStocker = new List<SchedulerStocker>();
- _lstPlaceXDStocker = new List<SchedulerStocker>();
- _lstPlaceTStocker = new List<SchedulerStocker>();
- _lstTotlaStockers = new List<SchedulerStocker>();
- for(int i = 1; i < 30; i++)
- {
- if (!SC.ContainsItem($"System.SetUp.IsStocker{i}Installed"))
- continue;
- if (SC.GetValue<bool>($"System.SetUp.IsStocker{i}Installed"))
- {
- _lstTotlaStockers.Add(new SchedulerStocker(ModuleHelper.Converter($"Stocker{i}")));
- }
- }
- foreach (var stokcer in _lstTotlaStockers)
- {
- var type = SC.GetStringValue($"System.Stocker.{stokcer.Module}WaferType");
- switch (type)
- {
- case "P1":
- //_lstBatchAStocker.Add(stokcer);
- break;
- case "P2":
- //_lstBatchBStocker.Add(stokcer);
- break;
- case "M1":
- //_lstMonitor1Stocker.Add(stokcer);
- break;
- case "M2":
- //_lstMonitor2Stocker.Add(stokcer);
- break;
- case "ED":
- _lstExtraDummyStocker.Add(stokcer);
- break;
- case "SD":
- _lstSideDummyStocker.Add(stokcer);
- break;
- case "None":
- _lstSideDummyStocker.Add(stokcer);
- _lstExtraDummyStocker.Add(stokcer);
- break;
- }
- }
- }
- protected SchedulerModule GetModule(string name)
- {
- switch (ModuleHelper.Converter(name))
- {
- case ModuleName.PM1:
- return _pm1;
- case ModuleName.CarrierRobot:
- return _carrierRobot;
- case ModuleName.WaferRobot:
- return _waferRobot;
- case ModuleName.Stocker1:
- case ModuleName.Stocker2:
- case ModuleName.Stocker3:
- case ModuleName.Stocker4:
- case ModuleName.Stocker5:
- case ModuleName.Stocker6:
- case ModuleName.Stocker7:
- case ModuleName.Stocker8:
- case ModuleName.Stocker9:
- case ModuleName.Stocker10:
- case ModuleName.Stocker11:
- case ModuleName.Stocker12:
- case ModuleName.Stocker13:
- case ModuleName.Stocker14:
- case ModuleName.Stocker15:
- case ModuleName.Stocker16:
- case ModuleName.Stocker17:
- case ModuleName.Stocker18:
- case ModuleName.Stocker19:
- case ModuleName.Stocker20:
- case ModuleName.Stocker21:
- return _lstTotlaStockers.FirstOrDefault(x => x.Module == ModuleHelper.Converter(name));
- case ModuleName.FIMS1:
- return _fims1;
- case ModuleName.FIMS2:
- return _fims2;
- case ModuleName.LP1:
- return _lp1;
- case ModuleName.LP2:
- return _lp2;
- }
- return null;
- }
- }
- }
|