|
@@ -171,8 +171,8 @@ namespace CyberX8_RT.Modules.Loader
|
|
|
private LoaderHomeAllRoutine _homeAllRoutine;
|
|
|
private LoaderSwitchAllOnRoutine _switchAllOnRoutine;
|
|
|
private LoaderSwitchAllOffRoutine _switchAllOffRoutine;
|
|
|
- private LoaderUnloadAllSideRoutine _unloadAllSideRoutine;
|
|
|
- private LoaderLoadAllSideRoutine _loadAllSideRoutine;
|
|
|
+ private LoaderUnloadSideRoutine _unloadSideRoutine;
|
|
|
+ private LoaderLoadSideRoutine _loadSideRoutine;
|
|
|
#endregion
|
|
|
|
|
|
#region LotTrackDatas
|
|
@@ -269,8 +269,8 @@ namespace CyberX8_RT.Modules.Loader
|
|
|
_homeAllRoutine=new LoaderHomeAllRoutine(Module.ToString());
|
|
|
_switchAllOnRoutine=new LoaderSwitchAllOnRoutine(Module.ToString());
|
|
|
_switchAllOffRoutine=new LoaderSwitchAllOffRoutine(Module.ToString());
|
|
|
- _unloadAllSideRoutine = new LoaderUnloadAllSideRoutine(Module.ToString());
|
|
|
- _loadAllSideRoutine=new LoaderLoadAllSideRoutine(Module.ToString());
|
|
|
+ _unloadSideRoutine = new LoaderUnloadSideRoutine(Module.ToString());
|
|
|
+ _loadSideRoutine=new LoaderLoadSideRoutine(Module.ToString());
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 初始化数据
|
|
@@ -328,23 +328,23 @@ namespace CyberX8_RT.Modules.Loader
|
|
|
//Prepare for Place
|
|
|
Transition(LOADERSTATE.Idle, LoaderMSG.PrepareForPlace, PrePareForPlace, LOADERSTATE.PrepreForPlacing);
|
|
|
Transition(LOADERSTATE.PrepreForPlacing, FSM_MSG.TIMER, PrepareForPlaceMonitor, LOADERSTATE.WaitForUnload);
|
|
|
- Transition(LOADERSTATE.WaitForUnload, LoaderMSG.UnloadAll, UnloadAll, LOADERSTATE.Unloading);
|
|
|
- Transition(LOADERSTATE.Unloading, FSM_MSG.TIMER, UnloadAllMonitor, LOADERSTATE.WaitForLoad);
|
|
|
- Transition(LOADERSTATE.WaitForLoad, LoaderMSG.LoadAll, LoadAll, LOADERSTATE.Loading);
|
|
|
- Transition(LOADERSTATE.Loading, FSM_MSG.TIMER, LoadAllMonitor, LOADERSTATE.Idle);
|
|
|
+ Transition(LOADERSTATE.WaitForUnload, LoaderMSG.UnloadSide, UnloadSide, LOADERSTATE.Unloading);
|
|
|
+ Transition(LOADERSTATE.Unloading, FSM_MSG.TIMER, UnloadSideMonitor, LOADERSTATE.WaitForLoad);
|
|
|
+ Transition(LOADERSTATE.WaitForLoad, LoaderMSG.LoadSide, LoadSide, LOADERSTATE.Loading);
|
|
|
+ Transition(LOADERSTATE.Loading, FSM_MSG.TIMER, LoadSideMonitor, LOADERSTATE.Idle);
|
|
|
//Retry
|
|
|
Transition(LOADERSTATE.Error, LoaderMSG.Retry, NullFunc, LOADERSTATE.Retrying);
|
|
|
Transition(LOADERSTATE.Retrying,FSM_MSG.TIMER,LoaderRetry,LOADERSTATE.Retrying);
|
|
|
- Transition(LOADERSTATE.Retrying, LoaderMSG.UnloadAll, RetryUnloadAll, LOADERSTATE.Unloading);
|
|
|
- Transition(LOADERSTATE.Retrying, LoaderMSG.LoadAll, RetryLoadAll, LOADERSTATE.Loading);
|
|
|
+ Transition(LOADERSTATE.Retrying, LoaderMSG.UnloadSide, RetryUnloadSide, LOADERSTATE.Unloading);
|
|
|
+ Transition(LOADERSTATE.Retrying, LoaderMSG.LoadSide, RetryLoadSide, LOADERSTATE.Loading);
|
|
|
//ConfirmComplete
|
|
|
Transition(LOADERSTATE.Init, LoaderMSG.ConfirmComplete, ClearModuleAlarm, LOADERSTATE.Init);
|
|
|
Transition(LOADERSTATE.Idle, LoaderMSG.ConfirmComplete, ClearModuleAlarm, LOADERSTATE.Idle);
|
|
|
Transition(LOADERSTATE.Error, LoaderMSG.ConfirmComplete, NullFunc, LOADERSTATE.ConfirmCompleting);
|
|
|
Transition(LOADERSTATE.ConfirmCompleting,FSM_MSG.TIMER,ConfirmComplete, LOADERSTATE.ConfirmCompleting);
|
|
|
Transition(LOADERSTATE.ConfirmCompleting, LoaderMSG.PrepareForPlace, NullFunc, LOADERSTATE.WaitForUnload);
|
|
|
- Transition(LOADERSTATE.ConfirmCompleting,LoaderMSG.UnloadAll,ConfirmUnloadAll, LOADERSTATE.WaitForLoad);
|
|
|
- Transition(LOADERSTATE.ConfirmCompleting, LoaderMSG.LoadAll, ConfirmLoadAll, LOADERSTATE.Idle);
|
|
|
+ Transition(LOADERSTATE.ConfirmCompleting,LoaderMSG.UnloadSide,ConfirmUnloadSide, LOADERSTATE.WaitForLoad);
|
|
|
+ Transition(LOADERSTATE.ConfirmCompleting, LoaderMSG.LoadSide, ConfirmLoadSide, LOADERSTATE.Idle);
|
|
|
|
|
|
EnumLoop<LOADERSTATE>.ForEach((item) => { fsm.MapState((int)item, item.ToString()); });
|
|
|
|
|
@@ -533,19 +533,19 @@ namespace CyberX8_RT.Modules.Loader
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
- #region Unload All
|
|
|
+ #region Unload Side
|
|
|
/// <summary>
|
|
|
- /// Unload All
|
|
|
+ /// Unload Side
|
|
|
/// </summary>
|
|
|
/// <param name="param"></param>
|
|
|
/// <returns></returns>
|
|
|
- private bool UnloadAll(object param)
|
|
|
+ private bool UnloadSide(object param)
|
|
|
{
|
|
|
- bool result= _unloadAllSideRoutine.Start(param) == RState.Running;
|
|
|
+ bool result= _unloadSideRoutine.Start(param) == RState.Running;
|
|
|
if(result)
|
|
|
{
|
|
|
LotTrackDataClear();
|
|
|
- _currentRoutine = _unloadAllSideRoutine;
|
|
|
+ _currentRoutine = _unloadSideRoutine;
|
|
|
_unloadLotTrackDatas.Clear();
|
|
|
_unloadLotTrackDatasBuffer.Clear();
|
|
|
_unloadTimeList.Clear();
|
|
@@ -564,35 +564,35 @@ namespace CyberX8_RT.Modules.Loader
|
|
|
return result;
|
|
|
}
|
|
|
/// <summary>
|
|
|
- /// Retry UloadAll
|
|
|
+ /// Retry UloadSide
|
|
|
/// </summary>
|
|
|
/// <param name="param"></param>
|
|
|
/// <returns></returns>
|
|
|
- private bool RetryUnloadAll(object[] param)
|
|
|
+ private bool RetryUnloadSide(object[] param)
|
|
|
{
|
|
|
int stepIndex = (int)param[0];
|
|
|
- bool result = _unloadAllSideRoutine.Retry(stepIndex)==RState.Running;
|
|
|
+ bool result = _unloadSideRoutine.Retry(stepIndex)==RState.Running;
|
|
|
if (result)
|
|
|
{
|
|
|
_unloadDatasStatus = LotTrackDatasStatus.Half;
|
|
|
_unloadLotTrackDatas.Clear();
|
|
|
- _currentRoutine = _unloadAllSideRoutine;
|
|
|
+ _currentRoutine = _unloadSideRoutine;
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
/// <summary>
|
|
|
- /// Unload All监控
|
|
|
+ /// Unload Side监控
|
|
|
/// </summary>
|
|
|
/// <param name="param"></param>
|
|
|
/// <returns></returns>
|
|
|
- private bool UnloadAllMonitor(object param)
|
|
|
+ private bool UnloadSideMonitor(object param)
|
|
|
{
|
|
|
- RState ret = _unloadAllSideRoutine.Monitor();
|
|
|
+ RState ret = _unloadSideRoutine.Monitor();
|
|
|
if (ret == RState.End)
|
|
|
{
|
|
|
AlarmListManager.Instance.CheckModuleAlamAndRemove(Module.ToString(), LOADERSTATE.Unloading.ToString());
|
|
|
- _unloadLotTrackDatas = _unloadAllSideRoutine.UnloadLotTrackDatas;
|
|
|
- _unloadLotTrackDatasBuffer.AddRange(_unloadAllSideRoutine.UnloadLotTrackDatas);
|
|
|
+ _unloadLotTrackDatas = _unloadSideRoutine.UnloadLotTrackDatas;
|
|
|
+ _unloadLotTrackDatasBuffer.AddRange(_unloadSideRoutine.UnloadLotTrackDatas);
|
|
|
_unloadTimeList.Add(DateTime.Now);
|
|
|
|
|
|
//Header信息
|
|
@@ -608,13 +608,13 @@ namespace CyberX8_RT.Modules.Loader
|
|
|
{
|
|
|
if (Singleton<RouteManager>.Instance.IsAutoRunning)
|
|
|
{
|
|
|
- AlarmList alarmList = new AlarmList(Module.ToString(), ((LOADERSTATE)fsm.State).ToString(), (int)LoaderMSG.UnloadAll,
|
|
|
- _unloadAllSideRoutine.ErrorMsg, _unloadAllSideRoutine.ErrorStep, (int)AlarmType.Error);
|
|
|
+ AlarmList alarmList = new AlarmList(Module.ToString(), ((LOADERSTATE)fsm.State).ToString(), (int)LoaderMSG.UnloadSide,
|
|
|
+ _unloadSideRoutine.ErrorMsg, _unloadSideRoutine.ErrorStep, (int)AlarmType.Error);
|
|
|
AlarmListManager.Instance.AddAlarm(alarmList);
|
|
|
}
|
|
|
PostMsg(LoaderMSG.Error);
|
|
|
- _unloadLotTrackDatas = _unloadAllSideRoutine.UnloadLotTrackDatas;
|
|
|
- _unloadLotTrackDatasBuffer.AddRange(_unloadAllSideRoutine.UnloadLotTrackDatas);
|
|
|
+ _unloadLotTrackDatas = _unloadSideRoutine.UnloadLotTrackDatas;
|
|
|
+ _unloadLotTrackDatasBuffer.AddRange(_unloadSideRoutine.UnloadLotTrackDatas);
|
|
|
////Header信息
|
|
|
WaferHolderInfo info = WaferHolderManager.Instance.GetWaferHolder(Module.ToString());
|
|
|
_headerdata.SequenceRecipe = ((info != null && info.SequenceRecipe != null) ? $"{info.SequenceRecipe.SequenceType}\\" + $"{info.SequenceRecipe.Ppid}.seq.rcp" : "");
|
|
@@ -630,16 +630,16 @@ namespace CyberX8_RT.Modules.Loader
|
|
|
/// </summary>
|
|
|
/// <param name="param"></param>
|
|
|
/// <returns></returns>
|
|
|
- private bool ConfirmUnloadAll(object[] param)
|
|
|
+ private bool ConfirmUnloadSide(object[] param)
|
|
|
{
|
|
|
int stepIdex=(int)param[0];
|
|
|
- bool result = _unloadAllSideRoutine.CheckCompleteCondition(stepIdex);
|
|
|
+ bool result = _unloadSideRoutine.CheckCompleteCondition(stepIdex);
|
|
|
if(!result)
|
|
|
{
|
|
|
if (Singleton<RouteManager>.Instance.IsAutoRunning)
|
|
|
{
|
|
|
- AlarmList alarmList = new AlarmList(Module.ToString(), ((LOADERSTATE)fsm.State).ToString(), (int)LoaderMSG.UnloadAll,
|
|
|
- _unloadAllSideRoutine.ErrorMsg, _unloadAllSideRoutine.ErrorStep, (int)AlarmType.Error);
|
|
|
+ AlarmList alarmList = new AlarmList(Module.ToString(), ((LOADERSTATE)fsm.State).ToString(), (int)LoaderMSG.UnloadSide,
|
|
|
+ _unloadSideRoutine.ErrorMsg, _unloadSideRoutine.ErrorStep, (int)AlarmType.Error);
|
|
|
AlarmListManager.Instance.AddAlarm(alarmList);
|
|
|
}
|
|
|
PostMsg(LoaderMSG.Error);
|
|
@@ -657,18 +657,18 @@ namespace CyberX8_RT.Modules.Loader
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
- #region Load All
|
|
|
+ #region Load Side
|
|
|
/// <summary>
|
|
|
- /// Load All
|
|
|
+ /// Load Side
|
|
|
/// </summary>
|
|
|
/// <param name="param"></param>
|
|
|
/// <returns></returns>
|
|
|
- private bool LoadAll(object param)
|
|
|
+ private bool LoadSide(object param)
|
|
|
{
|
|
|
- bool result= _loadAllSideRoutine.Start(param) == RState.Running;
|
|
|
+ bool result= _loadSideRoutine.Start(param) == RState.Running;
|
|
|
if(result)
|
|
|
{
|
|
|
- _currentRoutine = _loadAllSideRoutine;
|
|
|
+ _currentRoutine = _loadSideRoutine;
|
|
|
//_loadTimeList.Clear();
|
|
|
_flowLotTrackdatas.Clear();
|
|
|
_loadLotTrackDatas.Clear();
|
|
@@ -681,39 +681,39 @@ namespace CyberX8_RT.Modules.Loader
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// Retry LoadAll
|
|
|
+ /// Retry LoadSide
|
|
|
/// </summary>
|
|
|
/// <param name="param"></param>
|
|
|
/// <returns></returns>
|
|
|
- private bool RetryLoadAll(object[] param)
|
|
|
+ private bool RetryLoadSide(object[] param)
|
|
|
{
|
|
|
int stepIndex = (int)param[0];
|
|
|
- bool result = _loadAllSideRoutine.Retry(stepIndex) == RState.Running;
|
|
|
+ bool result = _loadSideRoutine.Retry(stepIndex) == RState.Running;
|
|
|
if (result)
|
|
|
{
|
|
|
_unloadDatasStatus = LotTrackDatasStatus.Complete;
|
|
|
_unloadDatasBufferStatus = LotTrackDatasStatus.Complete;
|
|
|
SetLotTrackDatasStatus(stepIndex);
|
|
|
- _currentRoutine = _loadAllSideRoutine;
|
|
|
+ _currentRoutine = _loadSideRoutine;
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 监控LoadAll
|
|
|
+ /// 监控LoadSide
|
|
|
/// </summary>
|
|
|
/// <param name="param"></param>
|
|
|
/// <returns></returns>
|
|
|
- private bool LoadAllMonitor(object param)
|
|
|
+ private bool LoadSideMonitor(object param)
|
|
|
{
|
|
|
- RState ret = _loadAllSideRoutine.Monitor();
|
|
|
+ RState ret = _loadSideRoutine.Monitor();
|
|
|
if (ret == RState.End)
|
|
|
{
|
|
|
AlarmListManager.Instance.CheckModuleAlamAndRemove(Module.ToString(), LOADERSTATE.Loading.ToString());
|
|
|
|
|
|
- _loadLotTrackDatas = _loadAllSideRoutine.LoadLotTrackDatas;
|
|
|
- _loadTimeList = _loadAllSideRoutine.LoadTimeList;
|
|
|
- _flowLotTrackdatas = _loadAllSideRoutine.FlowLotTrackDatas;
|
|
|
+ _loadLotTrackDatas = _loadSideRoutine.LoadLotTrackDatas;
|
|
|
+ _loadTimeList = _loadSideRoutine.LoadTimeList;
|
|
|
+ _flowLotTrackdatas = _loadSideRoutine.FlowLotTrackDatas;
|
|
|
bool clearFlag = _loadDatasStatus == LotTrackDatasStatus.None && _flowTestDatasStatus == LotTrackDatasStatus.None;
|
|
|
_loaderOperatingWaferInfosList["load"] = GetWaferInfo(clearFlag);
|
|
|
//Header信息
|
|
@@ -730,14 +730,14 @@ namespace CyberX8_RT.Modules.Loader
|
|
|
{
|
|
|
if (Singleton<RouteManager>.Instance.IsAutoRunning)
|
|
|
{
|
|
|
- AlarmList alarmList = new AlarmList(Module.ToString(), ((LOADERSTATE)fsm.State).ToString(), (int)LoaderMSG.LoadAll,
|
|
|
- _loadAllSideRoutine.ErrorMsg, _loadAllSideRoutine.ErrorStep, (int)AlarmType.Error);
|
|
|
+ AlarmList alarmList = new AlarmList(Module.ToString(), ((LOADERSTATE)fsm.State).ToString(), (int)LoaderMSG.LoadSide,
|
|
|
+ _loadSideRoutine.ErrorMsg, _loadSideRoutine.ErrorStep, (int)AlarmType.Error);
|
|
|
AlarmListManager.Instance.AddAlarm(alarmList);
|
|
|
}
|
|
|
PostMsg(LoaderMSG.Error);
|
|
|
- _loadLotTrackDatas = _loadAllSideRoutine.LoadLotTrackDatas;
|
|
|
- _loadTimeList = _loadAllSideRoutine.LoadTimeList;
|
|
|
- _flowLotTrackdatas = _loadAllSideRoutine.FlowLotTrackDatas;
|
|
|
+ _loadLotTrackDatas = _loadSideRoutine.LoadLotTrackDatas;
|
|
|
+ _loadTimeList = _loadSideRoutine.LoadTimeList;
|
|
|
+ _flowLotTrackdatas = _loadSideRoutine.FlowLotTrackDatas;
|
|
|
bool clearFlag = _loadDatasStatus == LotTrackDatasStatus.None && _flowTestDatasStatus == LotTrackDatasStatus.None;
|
|
|
_loaderOperatingWaferInfosList["load"] = GetWaferInfo(clearFlag);
|
|
|
//Header信息
|
|
@@ -751,20 +751,20 @@ namespace CyberX8_RT.Modules.Loader
|
|
|
return false;
|
|
|
}
|
|
|
/// <summary>
|
|
|
- /// 确认UnloadAll是否完成
|
|
|
+ /// 确认UnloadSide是否完成
|
|
|
/// </summary>
|
|
|
/// <param name="param"></param>
|
|
|
/// <returns></returns>
|
|
|
- private bool ConfirmLoadAll(object[] param)
|
|
|
+ private bool ConfirmLoadSide(object[] param)
|
|
|
{
|
|
|
int stepIdex = (int)param[0];
|
|
|
- bool result = _loadAllSideRoutine.CheckCompleteCondition(stepIdex);
|
|
|
+ bool result = _loadSideRoutine.CheckCompleteCondition(stepIdex);
|
|
|
if (!result)
|
|
|
{
|
|
|
if (Singleton<RouteManager>.Instance.IsAutoRunning)
|
|
|
{
|
|
|
- AlarmList alarmList = new AlarmList(Module.ToString(), ((LOADERSTATE)fsm.State).ToString(), (int)LoaderMSG.LoadAll,
|
|
|
- _loadAllSideRoutine.ErrorMsg, _loadAllSideRoutine.ErrorStep, (int)AlarmType.Error);
|
|
|
+ AlarmList alarmList = new AlarmList(Module.ToString(), ((LOADERSTATE)fsm.State).ToString(), (int)LoaderMSG.LoadSide,
|
|
|
+ _loadSideRoutine.ErrorMsg, _loadSideRoutine.ErrorStep, (int)AlarmType.Error);
|
|
|
AlarmListManager.Instance.AddAlarm(alarmList);
|
|
|
}
|
|
|
PostMsg(LoaderMSG.Error);
|
|
@@ -865,11 +865,11 @@ namespace CyberX8_RT.Modules.Loader
|
|
|
{
|
|
|
if(alarmList.ModuleState==LOADERSTATE.Unloading.ToString())
|
|
|
{
|
|
|
- CheckToPostMessage<LOADERSTATE, LoaderMSG>(eEvent.ERR_LOADER, Module.ToString(),(int)LoaderMSG.UnloadAll,alarmList.ModuleStep);
|
|
|
+ CheckToPostMessage<LOADERSTATE, LoaderMSG>(eEvent.ERR_LOADER, Module.ToString(),(int)LoaderMSG.UnloadSide,alarmList.ModuleStep);
|
|
|
}
|
|
|
else if(alarmList.ModuleState==LOADERSTATE.Loading.ToString())
|
|
|
{
|
|
|
- CheckToPostMessage<LOADERSTATE, LoaderMSG>(eEvent.ERR_LOADER, Module.ToString(), (int)LoaderMSG.LoadAll,alarmList.ModuleStep);
|
|
|
+ CheckToPostMessage<LOADERSTATE, LoaderMSG>(eEvent.ERR_LOADER, Module.ToString(), (int)LoaderMSG.LoadSide,alarmList.ModuleStep);
|
|
|
}
|
|
|
else if (alarmList.ModuleState == LOADERSTATE.PrepreForPlacing.ToString())
|
|
|
{
|
|
@@ -975,8 +975,8 @@ namespace CyberX8_RT.Modules.Loader
|
|
|
Error,
|
|
|
ClearError,
|
|
|
PrepareForPlace,
|
|
|
- UnloadAll,
|
|
|
- LoadAll,
|
|
|
+ UnloadSide,
|
|
|
+ LoadSide,
|
|
|
Retry,
|
|
|
ConfirmComplete
|
|
|
}
|