退火线程启动标志,等待退火结束条件增加

main
wyj 3 months ago
parent a2ebce6a25
commit 9eeda9c3e9

@ -126,6 +126,7 @@ CCommonFlowMgr::CCommonFlowMgr(void)
m_bIniPlatACSAlramIOCtrl = true; m_bIniPlatACSAlramIOCtrl = true;
m_bIsManusal_Anneal_Test = false; m_bIsManusal_Anneal_Test = false;
m_bCheckAutoDoorSign=true;//工艺中打开门是否暂停流程 m_bCheckAutoDoorSign=true;//工艺中打开门是否暂停流程
m_WaferAnnealCreateSign = false;
} }
CCommonFlowMgr::~CCommonFlowMgr(void) CCommonFlowMgr::~CCommonFlowMgr(void)
{ {
@ -3360,6 +3361,9 @@ void CCommonFlowMgr::StartWaferAnnealFlowThread()
LogInfo.m_ClassName = "CCommonFlowMgr"; LogInfo.m_ClassName = "CCommonFlowMgr";
LogInfo.m_FuncName = "StartWaferAnnealFlowThread"; LogInfo.m_FuncName = "StartWaferAnnealFlowThread";
gLogMgr->WriteLogInfo(LogInfo); gLogMgr->WriteLogInfo(LogInfo);
//记录当前退火线程启动情况,严重禁止屏蔽
m_WaferAnnealCreateSign = true;
AfxBeginThread(WaferAnnealFlowThread,this); AfxBeginThread(WaferAnnealFlowThread,this);
} }
@ -3477,6 +3481,14 @@ void CCommonFlowMgr::WaferAnnealFlow(CWafer *pWafer,bool bWaitThread,int Progres
//创建退火过程结束后的cmd //创建退火过程结束后的cmd
CreatAnnealFinishCmd(WorkCmdInvoker,pWafer); CreatAnnealFinishCmd(WorkCmdInvoker,pWafer);
} }
//该指令必须在执行最后一个,且不能取消
{
CWorkCmdExcuteAction *pCmd = new CWorkCmdExcuteAction();
pCmd->SetExcuteAction(_ExcuteAction_SetWaferAnnealCreateSign);
pCmd->SetBoolParVal(FALSE);
pCmd->CanNotCancel();//不能取消
WorkCmdInvoker.AddCmd(pCmd);
}
//执行指令 //执行指令
WorkCmdInvoker.ExcuteCmd(true,bWaitThread); WorkCmdInvoker.ExcuteCmd(true,bWaitThread);

@ -208,6 +208,9 @@ public:
bool IsCheckAutoDoorSign() { return m_bCheckAutoDoorSign; }; bool IsCheckAutoDoorSign() { return m_bCheckAutoDoorSign; };
void SetJobStopType(eJobStopType StopType) { m_CurJobStopType = StopType; }; void SetJobStopType(eJobStopType StopType) { m_CurJobStopType = StopType; };
eJobStopType GetJobStopType() { return m_CurJobStopType; }; eJobStopType GetJobStopType() { return m_CurJobStopType; };
bool IsWaferAnnealCreateSign() { return m_WaferAnnealCreateSign; };
void SetWaferAnnealCreateSign(bool bState) { m_WaferAnnealCreateSign = bState; };
private: private:
void CreatSubRecipeAnnealPrepareCmd(CWorkCmdInvoker &CmdInvoker,CWafer *pWafer,int SubRecipeIdx); void CreatSubRecipeAnnealPrepareCmd(CWorkCmdInvoker &CmdInvoker,CWafer *pWafer,int SubRecipeIdx);
void CreatAnnealPrepareCmd(CWorkCmdInvoker &CmdInvoker,CWafer *pWafer); void CreatAnnealPrepareCmd(CWorkCmdInvoker &CmdInvoker,CWafer *pWafer);
@ -288,6 +291,8 @@ private:
bool m_bIsManusal_Anneal_Test;//是否为手动退火测试 bool m_bIsManusal_Anneal_Test;//是否为手动退火测试
eJobStopType m_CurJobStopType;//当前Job停止类型 eJobStopType m_CurJobStopType;//当前Job停止类型
bool m_WaferAnnealCreateSign;//ľąÇ°ÍËťđąęÖž
}; };
extern CCommonFlowMgr *gCommonFlowMgr; extern CCommonFlowMgr *gCommonFlowMgr;

@ -1897,7 +1897,7 @@ void CTransferArmMgr::WaferTransfer_WaitAnnealProccess(CWafer &Wafer)
CWorkCmdInvoker &WorkCmdInvoker = gCmdInvoker_WaferAneal; CWorkCmdInvoker &WorkCmdInvoker = gCmdInvoker_WaferAneal;
while(1) while(1)
{ {
if(!WorkCmdInvoker.IsbExcuting()) if(!WorkCmdInvoker.IsbExcuting() && !gCommonFlowMgr->IsWaferAnnealCreateSign())
{ {
break; break;
} }

@ -483,6 +483,11 @@ bool CWorkCmdExcuteAction::Excute()
case _ExcuteAction_WaferMonitoringEnd: case _ExcuteAction_WaferMonitoringEnd:
gAnnealMonitoringMgr->WaferMonitoringEnd(*pWafer); gAnnealMonitoringMgr->WaferMonitoringEnd(*pWafer);
break; break;
case _ExcuteAction_SetWaferAnnealCreateSign:
{
gCommonFlowMgr->SetWaferAnnealCreateSign(m_ExcuteActionPar.m_BoolParVal);
}
break;
case _ExcuteAction_SetAnnealPercent: case _ExcuteAction_SetAnnealPercent:
gProgramLaserTuiHuo->SetCurAnnealPercent(m_ExcuteActionPar.m_DoubleParVal); gProgramLaserTuiHuo->SetCurAnnealPercent(m_ExcuteActionPar.m_DoubleParVal);
break; break;

@ -90,6 +90,7 @@ enum ExcuteAction
//数据监控相关 //数据监控相关
_ExcuteAction_WaferMonitoringStart,//Wafer 退火记录开始 _ExcuteAction_WaferMonitoringStart,//Wafer 退火记录开始
_ExcuteAction_WaferMonitoringEnd,//Wafer 退火记录结束 _ExcuteAction_WaferMonitoringEnd,//Wafer 退火记录结束
_ExcuteAction_SetWaferAnnealCreateSign,//WaferÍË»ð½áÊø±êÖ¾
_ExcuteAction_CheckRecipeEdiOnAnnealStart,//检查激光功率密度是否满足recipe 的条件(退火开始前) _ExcuteAction_CheckRecipeEdiOnAnnealStart,//检查激光功率密度是否满足recipe 的条件(退火开始前)
_ExcuteAction_StartMonitoringOnAnnealProcess,//启动退火过程中监控 _ExcuteAction_StartMonitoringOnAnnealProcess,//启动退火过程中监控

Loading…
Cancel
Save