|
@@ -19,6 +19,7 @@ namespace Venus_RT.Modules.EFEM
|
|
|
{
|
|
|
private enum HomeStep
|
|
|
{
|
|
|
+ WaitEFEMReady,
|
|
|
ClearError,
|
|
|
InitRobot,
|
|
|
HomeAllAxes,
|
|
@@ -56,7 +57,8 @@ namespace Venus_RT.Modules.EFEM
|
|
|
|
|
|
if(_targetModule == ModuleName.EFEM)
|
|
|
{
|
|
|
- Runner.Run(HomeStep.ClearError, ClearError, IsStepComplete, _homeTimeout)
|
|
|
+ Runner.Wait(HomeStep.WaitEFEMReady, WaitEFEMIdle, _delay_60s)
|
|
|
+ .Run(HomeStep.ClearError, ClearError, IsStepComplete, _homeTimeout)
|
|
|
.Run(HomeStep.InitRobot, HomeAll, IsStepComplete, _homeTimeout)
|
|
|
.Run(HomeStep.HomeAllAxes, HomeAllAxes, IsStepComplete, _homeTimeout)
|
|
|
.Run(HomeStep.CheckWaferPresence, CheckWaferPresence, VerifyWaferPresence, _homeTimeout)
|
|
@@ -64,9 +66,10 @@ namespace Venus_RT.Modules.EFEM
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- Runner.Run(HomeModuleStep.Home, HomeModule, IsStepComplete, _homeTimeout)
|
|
|
- .Run(HomeModuleStep.HomeAxes, HomeModuleAxes, IsStepComplete, _homeTimeout)
|
|
|
- .End(HomeModuleStep.End, NullFun, _delay_50ms);
|
|
|
+ Runner.Wait(HomeStep.WaitEFEMReady, WaitEFEMIdle, _delay_60s)
|
|
|
+ .Run(HomeModuleStep.Home, HomeModule, IsStepComplete, _homeTimeout)
|
|
|
+ .Run(HomeModuleStep.HomeAxes, HomeModuleAxes, IsStepComplete, _homeTimeout)
|
|
|
+ .End(HomeModuleStep.End, NullFun, _delay_50ms);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -94,6 +97,11 @@ namespace Venus_RT.Modules.EFEM
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ private bool WaitEFEMIdle()
|
|
|
+ {
|
|
|
+ return _efem.Status != RState.Running;
|
|
|
+ }
|
|
|
+
|
|
|
private bool ClearError()
|
|
|
{
|
|
|
return _efem.ClearError();
|