|
@@ -42,6 +42,7 @@ namespace FurnaceRT.Equipments.CarrierRobots
|
|
|
public IoDoor DoorDevice { get; set; }
|
|
|
public IoAlarmSignal AlarmSignaFOUPRobotTPStatusWarning { get; set; }
|
|
|
private Dictionary<string, int> _actionCommand;
|
|
|
+ private Dictionary<string, int> _actionCommandStocker;
|
|
|
|
|
|
public void InitDevice()
|
|
|
{
|
|
@@ -56,6 +57,45 @@ namespace FurnaceRT.Equipments.CarrierRobots
|
|
|
WaferManager.Instance.SubscribeLocation(Module, SC.GetValue<int>("System.CassetteSlotCount"));
|
|
|
this.OnDeviceAlarmStateChanged += OnModuleDeviceAlarmStateChanged;
|
|
|
CarrierRobotDevice.OnDeviceAlarmStateChanged += OnModuleDeviceAlarmStateChanged;
|
|
|
+ _actionCommandStocker = new Dictionary<string, int>()
|
|
|
+ {
|
|
|
+ {"Stocker1.Pick",101 },
|
|
|
+ {"Stocker1.Place",201 },
|
|
|
+ {"Stocker2.Pick",102 },
|
|
|
+ {"Stocker2.Place",202 },
|
|
|
+ {"Stocker3.Pick",103 },
|
|
|
+ {"Stocker3.Place",203 },
|
|
|
+ {"Stocker4.Pick",104 },
|
|
|
+ {"Stocker4.Place",204 },
|
|
|
+ {"Stocker5.Pick",105 },
|
|
|
+ {"Stocker5.Place",205 },
|
|
|
+ {"Stocker6.Pick",106 },
|
|
|
+ {"Stocker6.Place",206 },
|
|
|
+ {"Stocker7.Pick",107 },
|
|
|
+ {"Stocker7.Place",207 },
|
|
|
+ {"Stocker8.Pick",108 },
|
|
|
+ {"Stocker8.Place",208 },
|
|
|
+ {"Stocker9.Pick",109 },
|
|
|
+ {"Stocker9.Place",209 },
|
|
|
+ {"Stocker10.Pick",110 },
|
|
|
+ {"Stocker10.Place",210 },
|
|
|
+ {"Stocker11.Pick",111 },
|
|
|
+ {"Stocker11.Place",211 },
|
|
|
+ {"Stocker12.Pick",112 },
|
|
|
+ {"Stocker12.Place",212 },
|
|
|
+ {"Stocker13.Pick",113 },
|
|
|
+ {"Stocker13.Place",213 },
|
|
|
+ {"Stocker14.Pick",114 },
|
|
|
+ {"Stocker14.Place",214 },
|
|
|
+ {"Stocker15.Pick",115 },
|
|
|
+ {"Stocker15.Place",215 },
|
|
|
+ {"Stocker16.Pick",116 },
|
|
|
+ {"Stocker16.Place",216 },
|
|
|
+ {"Stocker17.Pick",117 },
|
|
|
+ {"Stocker17.Place",217 },
|
|
|
+ {"Stocker18.Pick",118 },
|
|
|
+ {"Stocker18.Place",218 },
|
|
|
+ };
|
|
|
_actionCommand = new Dictionary<string, int>()
|
|
|
{
|
|
|
{"C01.Pick",1 },
|
|
@@ -178,6 +218,13 @@ namespace FurnaceRT.Equipments.CarrierRobots
|
|
|
if (!CarrierRobotDevice.ModuleAssociateStationDic.ContainsKey(traget.ToString()))
|
|
|
return;
|
|
|
|
|
|
+ if(_actionCommandStocker.ContainsKey($"{traget}.{transferType}"))
|
|
|
+ {
|
|
|
+ //Stocker相关工位
|
|
|
+ _trigActionCommand.SetAOTrigger(_actionCommandStocker[$"{traget}.{transferType}"], out _);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
var station = CarrierRobotDevice.ModuleAssociateStationDic[traget.ToString()];
|
|
|
if(!_actionCommand.ContainsKey($"{station}.{transferType}"))
|
|
|
return;
|
|
@@ -188,6 +235,12 @@ namespace FurnaceRT.Equipments.CarrierRobots
|
|
|
if (!CarrierRobotDevice.ModuleAssociateStationDic.ContainsKey(traget.ToString()))
|
|
|
return false;
|
|
|
|
|
|
+ if (_actionCommandStocker.ContainsKey($"{traget}.{transferType}"))
|
|
|
+ {
|
|
|
+ //Stocker相关工位
|
|
|
+ return Math.Abs(_trigActionCommand.AIValue - _actionCommandStocker[$"{traget}.{transferType}"]) < 0.001;
|
|
|
+ }
|
|
|
+
|
|
|
var station = CarrierRobotDevice.ModuleAssociateStationDic[traget.ToString()];
|
|
|
if (!_actionCommand.ContainsKey($"{station}.{transferType}"))
|
|
|
return false;
|