|
@@ -230,6 +230,7 @@ namespace PunkHPX8_RT.Modules.VpwMain
|
|
AnyStateTransition(VPWCellMsg.Error, NullFunc, VPWCellState.Error);
|
|
AnyStateTransition(VPWCellMsg.Error, NullFunc, VPWCellState.Error);
|
|
//Initialized
|
|
//Initialized
|
|
Transition(VPWCellState.Error, VPWCellMsg.Initialize, InitializeAll, VPWCellState.Initializing);
|
|
Transition(VPWCellState.Error, VPWCellMsg.Initialize, InitializeAll, VPWCellState.Initializing);
|
|
|
|
+ Transition(VPWCellState.Aborting, VPWCellMsg.Initialize, InitializeAll, VPWCellState.Initializing);
|
|
Transition(VPWCellState.Init, VPWCellMsg.Initialize, InitializeAll, VPWCellState.Initializing);
|
|
Transition(VPWCellState.Init, VPWCellMsg.Initialize, InitializeAll, VPWCellState.Initializing);
|
|
Transition(VPWCellState.Idle, VPWCellMsg.Initialize, InitializeAll, VPWCellState.Initializing);
|
|
Transition(VPWCellState.Idle, VPWCellMsg.Initialize, InitializeAll, VPWCellState.Initializing);
|
|
Transition(VPWCellState.Initializing, FSM_MSG.TIMER, InitializeAllMonitor, VPWCellState.Idle);
|
|
Transition(VPWCellState.Initializing, FSM_MSG.TIMER, InitializeAllMonitor, VPWCellState.Idle);
|
|
@@ -241,6 +242,7 @@ namespace PunkHPX8_RT.Modules.VpwMain
|
|
//Cycle Manual Process
|
|
//Cycle Manual Process
|
|
Transition(VPWCellState.Idle, VPWCellMsg.CycleProcessRecipe, CycleManualProcess, VPWCellState.CycleManualProcessing);
|
|
Transition(VPWCellState.Idle, VPWCellMsg.CycleProcessRecipe, CycleManualProcess, VPWCellState.CycleManualProcessing);
|
|
Transition(VPWCellState.CycleManualProcessing, FSM_MSG.TIMER, CycleManualMonitor, VPWCellState.Idle);
|
|
Transition(VPWCellState.CycleManualProcessing, FSM_MSG.TIMER, CycleManualMonitor, VPWCellState.Idle);
|
|
|
|
+ Transition(VPWCellState.CycleManualProcessing, VPWCellMsg.Abort, RunRecipeAbort, VPWCellState.Aborting);
|
|
//Prepare
|
|
//Prepare
|
|
Transition(VPWCellState.Idle, VPWCellMsg.Prepare, Prepare, VPWCellState.Preparing);
|
|
Transition(VPWCellState.Idle, VPWCellMsg.Prepare, Prepare, VPWCellState.Preparing);
|
|
Transition(VPWCellState.Preparing, FSM_MSG.TIMER, PrepareMonitor, VPWCellState.WaitForRunRecipe);
|
|
Transition(VPWCellState.Preparing, FSM_MSG.TIMER, PrepareMonitor, VPWCellState.WaitForRunRecipe);
|
|
@@ -298,6 +300,7 @@ namespace PunkHPX8_RT.Modules.VpwMain
|
|
{
|
|
{
|
|
OP.Subscribe($"{Module}.InitializeAll", (cmd, args) => { return CheckToPostMessage<VPWCellState, VPWCellMsg>(eEvent.ERR_VPW, Module.ToString(), (int)VPWCellMsg.Initialize); });
|
|
OP.Subscribe($"{Module}.InitializeAll", (cmd, args) => { return CheckToPostMessage<VPWCellState, VPWCellMsg>(eEvent.ERR_VPW, Module.ToString(), (int)VPWCellMsg.Initialize); });
|
|
OP.Subscribe($"{Module}.Prepare", (cmd, args) => { return CheckToPostMessage<VPWCellState, VPWCellMsg>(eEvent.ERR_VPW, Module.ToString(), (int)VPWCellMsg.Prepare); });
|
|
OP.Subscribe($"{Module}.Prepare", (cmd, args) => { return CheckToPostMessage<VPWCellState, VPWCellMsg>(eEvent.ERR_VPW, Module.ToString(), (int)VPWCellMsg.Prepare); });
|
|
|
|
+ OP.Subscribe($"{Module}.Abort", (cmd, args) => { return CheckToPostMessage<VPWCellState, VPWCellMsg>(eEvent.ERR_VPW, Module.ToString(), (int)VPWCellMsg.Abort); });
|
|
OP.Subscribe($"{Module}.CycleManualProcessRecipe", (cmd, args) =>
|
|
OP.Subscribe($"{Module}.CycleManualProcessRecipe", (cmd, args) =>
|
|
{
|
|
{
|
|
VpwRecipe recipe = RecipeFileManager.Instance.LoadGenericityRecipe<VpwRecipe>(args[0].ToString());
|
|
VpwRecipe recipe = RecipeFileManager.Instance.LoadGenericityRecipe<VpwRecipe>(args[0].ToString());
|
|
@@ -510,7 +513,24 @@ namespace PunkHPX8_RT.Modules.VpwMain
|
|
}
|
|
}
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
+ private bool RunRecipeAbort(object[] param)
|
|
|
|
+ {
|
|
|
|
+ _cycleManualProcessRoutine.Abort();
|
|
|
|
|
|
|
|
+ VpwMainEntity vpwMainEntity = Singleton<RouteManager>.Instance.GetModule<VpwMainEntity>("VPWMain1");
|
|
|
|
+ if (vpwMainEntity != null)
|
|
|
|
+ {
|
|
|
|
+ //把main的状态置为暂停
|
|
|
|
+ vpwMainEntity.PostMsg(VPWMainMsg.Abort);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //记录LotTrack
|
|
|
|
+ _runRecipeCompleteTime = DateTime.Now;
|
|
|
|
+ _cycleManualProcessRoutine.VpwLotTrackHeaderDatas.ProcessTime = (_runRecipeCompleteTime - _runRecipeStartTime).TotalSeconds.ToString("F2");
|
|
|
|
+ VpwLotTrackUtil.ExportVpwLotTrack(Module.ToString(), _cycleManualProcessRoutine.VpwLotTrackDatas,
|
|
|
|
+ _cycleManualProcessRoutine.VpwLotTrackHeaderDatas, IsAuto, _isRetry);
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
#region VpwCell Retry
|
|
#region VpwCell Retry
|