去掉强制等待10秒;不重复发推出完成给下料机

之前功能大致OK,分出改坐标系
bestlqiang 4 years ago
parent f1620152ed
commit 8e93ec1546

@ -431,10 +431,15 @@ void CDlgSW_XL_Flow::OnBnClickedThrowEdgeBtn2()
} }
void CDlgSW_XL_Flow::OnBnClickedUnloadBtn1() void CDlgSW_XL_Flow::OnBnClickedUnloadBtn1()
{ {
if (gTrackWorkFlow1.GetCurTrackWorkStep()==_ETrack_Step_Unload)
gTrackWorkFlow1.KillCurWorkThread();
gProgram_SZ_XL->ManualOperation(_ETrackType_Track_1,_ETrack_Step_Throw_Edge_End); gProgram_SZ_XL->ManualOperation(_ETrackType_Track_1,_ETrack_Step_Throw_Edge_End);
} }
void CDlgSW_XL_Flow::OnBnClickedUnloadBtn2() void CDlgSW_XL_Flow::OnBnClickedUnloadBtn2()
{ {
if (gTrackWorkFlow2.GetCurTrackWorkStep() == _ETrack_Step_Unload)
gTrackWorkFlow2.KillCurWorkThread();
gProgram_SZ_XL->ManualOperation(_ETrackType_Track_2,_ETrack_Step_Throw_Edge_End); gProgram_SZ_XL->ManualOperation(_ETrackType_Track_2,_ETrack_Step_Throw_Edge_End);
} }
void CDlgSW_XL_Flow::OnBnClickedTrack1ProductCarrierOpenClose() void CDlgSW_XL_Flow::OnBnClickedTrack1ProductCarrierOpenClose()

@ -1725,6 +1725,7 @@ bool CProgram_SZ_XL::GetLoadCmdStr(ETrackType TrackType, ETrackWorkStep WorkStep
LogStr = "通知下料机:轨道2推出治具完成"; LogStr = "通知下料机:轨道2推出治具完成";
} }
Ret = true; Ret = true;
gLogMgr->WritePlcTimeLog(LogStr);
} }
if (Ret) if (Ret)
{ {

@ -124,6 +124,14 @@ void CTrackWorkFlow::WorkFlowCtrl()
Sleep(200); Sleep(200);
if (m_CurWorkStep == m_OldWorkStep)//无变化 if (m_CurWorkStep == m_OldWorkStep)//无变化
continue; continue;
//进入下料函数,设置 步骤为_ETrack_Step_Unload时,不执行
if (m_OldWorkStep == _ETrack_Step_Throw_Edge_End&&m_CurWorkStep == _ETrack_Step_Unload)
{
m_OldWorkStep = m_CurWorkStep;//记录当前步骤
continue;
}
if (m_OldWorkStep == _ETrack_Step_Unload)//unload 结束步骤时 if (m_OldWorkStep == _ETrack_Step_Unload)//unload 结束步骤时
{ {
//取消下料请求 //取消下料请求
@ -132,7 +140,7 @@ void CTrackWorkFlow::WorkFlowCtrl()
} }
m_OldWorkStep = m_CurWorkStep;//记录当前步骤 m_OldWorkStep = m_CurWorkStep;//记录当前步骤
//在新线程中执行 //在新线程中执行
AfxBeginThread(ExecuteStepThread, this); m_pthread=AfxBeginThread(ExecuteStepThread, this);
} }
} }
//执行当前步骤 //执行当前步骤
@ -711,10 +719,12 @@ bool CTrackWorkFlow::PushJigOut()
PlcCmd = _ETrack_PlcCmd_Push_Jig_Out; PlcCmd = _ETrack_PlcCmd_Push_Jig_Out;
m_bPushJigOut = false; m_bPushJigOut = false;
SendMsgToPlc(PlcCmd, false); SendMsgToPlc(PlcCmd, false);
//强制等待10秒再检测是否推出完成
/*//强制等待10秒再检测是否推出完成
Sleep(10000); Sleep(10000);
*/
int MaxCheckTimes = 300; int MaxCheckTimes = 150;
int cnt = 0; int cnt = 0;
while ((!m_bPushJigOut) && (cnt < MaxCheckTimes)); while ((!m_bPushJigOut) && (cnt < MaxCheckTimes));
{ {
@ -845,6 +855,13 @@ bool CTrackWorkFlow::IsTrackIdle()
{ {
return (m_CurWorkStep != _ETrack_Step_Catch_mark)&&(m_CurWorkStep != _ETrack_Step_Marking); return (m_CurWorkStep != _ETrack_Step_Catch_mark)&&(m_CurWorkStep != _ETrack_Step_Marking);
} }
void CTrackWorkFlow::KillCurWorkThread()
{
if (m_pthread)
{
TerminateThread(m_pthread->m_hThread, 0);
}
}
//上料 //上料
void CTrackWorkFlow::Load() void CTrackWorkFlow::Load()
{ {

@ -91,6 +91,7 @@ public:
bool GetbCircleStop() { return m_bCircleStop ; }; bool GetbCircleStop() { return m_bCircleStop ; };
BOOL m_bCarrierOpen = true;//当前气缸是否松开 BOOL m_bCarrierOpen = true;//当前气缸是否松开
bool IsTrackIdle();//是否轨道空闲中 bool IsTrackIdle();//是否轨道空闲中
void KillCurWorkThread();
private: private:
void Load(); void Load();
void MoveToWaitPos(); void MoveToWaitPos();
@ -125,7 +126,7 @@ private:
bool m_bLoadProduct;//轨道上是否load 了产品 bool m_bLoadProduct;//轨道上是否load 了产品
int m_CutProductCnt;//切割产品的数量 int m_CutProductCnt;//切割产品的数量
bool m_bCircleStop;//当前循环后停止 bool m_bCircleStop;//当前循环后停止
CWinThread * m_pthread=NULL;
public: public:
atomic_bool m_bPushJigOut = false;//推出指令发出后,是否推出了载具 atomic_bool m_bPushJigOut = false;//推出指令发出后,是否推出了载具
atomic_bool m_bPullJigOut = false;//下料指令发出后,是否拉走了载具 atomic_bool m_bPullJigOut = false;//下料指令发出后,是否拉走了载具

Loading…
Cancel
Save