|
@@ -50,6 +50,7 @@ namespace Venus_RT.Modules.TM
|
|
|
private readonly ITransferRobot _robot;
|
|
|
|
|
|
private int _placingTimeout = 120 * 1000;
|
|
|
+ private int _liftPinTimeout = 20 * 1000;
|
|
|
private int _placeDelayTime = 0;
|
|
|
private ModuleName _targetModule;
|
|
|
private PMEntity _pmModule;
|
|
@@ -156,8 +157,6 @@ namespace Venus_RT.Modules.TM
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
return Runner.Status;
|
|
|
}
|
|
|
|
|
@@ -249,6 +248,7 @@ namespace Venus_RT.Modules.TM
|
|
|
else
|
|
|
return _robot.QueryAwc();
|
|
|
}
|
|
|
+
|
|
|
private bool WaitRobotExtendDone()
|
|
|
{
|
|
|
if (_robot.Status == RState.Running)
|
|
@@ -257,7 +257,6 @@ namespace Venus_RT.Modules.TM
|
|
|
}
|
|
|
else if (_robot.Status == RState.End)
|
|
|
{
|
|
|
- WaferManager.Instance.WaferMoved(ModuleName.TMRobot, (int)_hand, _targetModule, _targetSlot);
|
|
|
return true;
|
|
|
}
|
|
|
else
|
|
@@ -314,7 +313,18 @@ namespace Venus_RT.Modules.TM
|
|
|
|
|
|
private bool WaitPMWaferLiftUp()
|
|
|
{
|
|
|
- return _pmModule.Status == PMEntity.PMStatus.Exchange_Ready;
|
|
|
+ if(_pmModule.Status == PMEntity.PMStatus.Exchange_Ready)
|
|
|
+ {
|
|
|
+ WaferManager.Instance.WaferMoved(ModuleName.TMRobot, (int)_hand, _targetModule, _targetSlot);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ else if(Runner.StepElapsedMS > _liftPinTimeout)
|
|
|
+ {
|
|
|
+ WaferManager.Instance.CreateDuplicatedWafer(ModuleName.TMRobot, (int)_hand, _targetModule, _targetSlot);
|
|
|
+ Runner.Stop($"Wait {_targetModule} Lift Pin Up timeout, {Runner.StepElapsedMS}");
|
|
|
+ }
|
|
|
+
|
|
|
+ return false;
|
|
|
}
|
|
|
|
|
|
private bool WaitRobotRetractDone()
|