|
@@ -73,7 +73,8 @@ namespace Venus_RT.Modules
|
|
|
StartSEJob,
|
|
|
AbortSEJob,
|
|
|
SEMoveWafer,
|
|
|
- SEReturnWafer
|
|
|
+ SEReturnWafer,
|
|
|
+ SEAbort,
|
|
|
}
|
|
|
|
|
|
public PMEntity PMA { get; private set; }
|
|
@@ -446,6 +447,7 @@ namespace Venus_RT.Modules
|
|
|
OP.Subscribe("System.CreateSEJob", (cmd, args) => CheckToPostMessage((int)MSG.CreateSEJob, args));
|
|
|
OP.Subscribe("System.StartSEJob",(cmd,args)=>CheckToPostMessage((int)MSG.StartSEJob,args));
|
|
|
OP.Subscribe("System.ReturnAllSEWafer", (cmd, args) => CheckToPostMessage((int)MSG.SEReturnWafer, args));
|
|
|
+ OP.Subscribe("System.SEAbort", (cmd, args) => CheckToPostMessage((int)MSG.SEAbort, args));
|
|
|
}
|
|
|
public bool CheckToPostMessage(int msg, params object[] args)
|
|
|
{
|
|
@@ -716,21 +718,21 @@ namespace Venus_RT.Modules
|
|
|
// SETM Cycle
|
|
|
Transition(RtState.Idle, MSG.SETMCycle, FsmStartSETMCycle, RtState.SETMCycle);
|
|
|
Transition(RtState.SETMCycle, FSM_MSG.TIMER, FsmMonitorSETMCycle, RtState.Idle);
|
|
|
- Transition(RtState.SETMCycle, MSG.StopSECycle, FsmStopSETMCycle, RtState.Idle);
|
|
|
+ Transition(RtState.SETMCycle, MSG.SEAbort, SEAbort, RtState.Idle);
|
|
|
// SETM CreateCycle
|
|
|
Transition(RtState.Idle, MSG.CreateSEJob, FsmStartCreateSEJob, RtState.Idle);
|
|
|
// SETM StartCycle
|
|
|
Transition(RtState.Idle, MSG.StartSEJob, FsmStartSEJob, RtState.SERunning);
|
|
|
Transition(RtState.SERunning, FSM_MSG.TIMER, FsmSEJobMonitor, RtState.Idle);
|
|
|
- Transition(RtState.SERunning, MSG.StopSECycle, FsmStopSETMCycle, RtState.Idle);
|
|
|
+ Transition(RtState.SERunning, MSG.SEAbort, SEAbort, RtState.Idle);
|
|
|
// SE Transfer
|
|
|
Transition(RtState.Idle, MSG.SEMoveWafer, FsmStartSEMoveWafer, RtState.SETransfer);
|
|
|
Transition(RtState.SETransfer, FSM_MSG.TIMER, FsmMonitorSEMoveWafer, RtState.Idle);
|
|
|
- Transition(RtState.SETransfer, MSG.StopSECycle, FsmSEAbort, RtState.Idle);
|
|
|
+ Transition(RtState.SETransfer, MSG.SEAbort, SEAbort, RtState.Idle);
|
|
|
// SE ReturnWafer
|
|
|
Transition(RtState.Idle, MSG.SEReturnWafer, FsmStartSEReturnWafer, RtState.SEReturnWafer);
|
|
|
Transition(RtState.SEReturnWafer, FSM_MSG.TIMER, FsmMonitorSEReturnWafer, RtState.Idle);
|
|
|
- Transition(RtState.SEReturnWafer, MSG.StopSECycle, FsmSEAbort, RtState.Idle);
|
|
|
+ Transition(RtState.SEReturnWafer, MSG.SEAbort, SEAbort, RtState.Idle);
|
|
|
}
|
|
|
|
|
|
private bool FsmMonitor(object[] objs)
|
|
@@ -822,6 +824,7 @@ namespace Venus_RT.Modules
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
private bool FsmStartTMCycle(object[] objs)
|
|
|
{
|
|
|
return _TMCycle.Start(objs) == RState.Running;
|
|
@@ -1100,9 +1103,12 @@ namespace Venus_RT.Modules
|
|
|
return ret == RState.End;
|
|
|
}
|
|
|
|
|
|
- private bool FsmSEAbort(object[] objs)
|
|
|
+ private bool SEAbort(object[] objs)
|
|
|
{
|
|
|
+ _seTMCycle.Abort();
|
|
|
_setransfer.Abort();
|
|
|
+ _sereturnWafer.Abort();
|
|
|
+ seTM.CheckToPostMessage((int)SETMEntity.MSG.Abort);
|
|
|
return true;
|
|
|
}
|
|
|
}
|