副机切割时报数据异常.

master
bestlqiang 4 years ago
parent fc90849764
commit 4017478e3a

@ -1078,6 +1078,7 @@ bool CCommonFlowMgr::MultipleAreaMark(CProduct &Product, bool bSel)
gLogMgr->WriteDebugLog("Fuc---->MultipleAreaMa/rk : bSel = " + Bool2Str(bSel));
//搜集加工数据(这里比较耗费时间)
try
{
gMarkAreaMgr->CollectWorkData(bSel, Product);
@ -1088,7 +1089,12 @@ bool CCommonFlowMgr::MultipleAreaMark(CProduct &Product, bool bSel)
gServer->BroadCast("副机收集数据异常!Exception! ");
return false;
}
gServer->m_bLogicErr = false;
CString str = "READY";
gServer->BroadCast(str);
gLogMgr->WriteDebugLog(str);
if (!gMarkAreaMgr->HasWorkData())
return false;

@ -474,7 +474,10 @@ void CProduct::TheoryDataToRealData(vector<Dbxy> &vec, Dbxy &AreaCenter, Dbxy Cu
if (abs(iter->x)>DataRange||abs(iter->y)>DataRange)
{
CExceptionMsg msg;
msg.SetMsg(CString("标刻数据异常,超出校准范围!"));
CString str;
str.Format("x=%.4f y=%.4f \r\n其中偏移调整: dx=%.4f,dy=%.4f", iter->x, iter->y,CutAdjust.x,CutAdjust.y);
msg.SetMsg(CString("标刻数据异常,超出校准范围!\r\n")+str);
throw msg;
}

@ -146,7 +146,9 @@ void CTrackWorkFlow::ExecuteCurStep()
CatchMark();//抓取定位
break;*/
case _ETrack_Step_Catch_mark_End://等待加工
{
MarkProcess();//计算,收集加工数据(服务端)
}
break;
/*case _ETrack_Step_Mark_End://加工完成
ThrowEdge();//去边框
@ -811,15 +813,12 @@ void CTrackWorkFlow::MarkProcess()
gWorkTime.StartRecordTime();//计时开始
//设置当前的工作步骤
SetCurTrackWorkStep(_ETrack_Step_Marking);
//SetCurTrackWorkStep(_ETrack_Step_Marking);
//XY 组切换
MarkProcessExt();
CString str = "READY";
gServer->BroadCast(str);
gLogMgr->WriteDebugLog(str);
//设置当前的工作步骤
SetCurTrackWorkStep(_ETrack_Step_Marking);
//SetCurTrackWorkStep(_ETrack_Step_Marking);
//数据移动回默认的位置
/* gProgramCutMgr->MoveObjData(Dbxy(0, 0));
gMarkAreaMgr->MoveAllAreaToTargetPt(Dbxy(0, 0));*/

@ -87,8 +87,9 @@ private:
void MoveToWaitPos();
void MoveToPos(ETrackWorkStep WorkStep);
void MarkProcess();
public:
bool MarkProcessExt();
private:
void ReadPlcMsgExt();
void AnalyzeRecvCmd(char *buf,int len);
void ThrowEdge();

@ -202,18 +202,32 @@ void CServerMgr::OnReceive(int nErrorCode)
gServer->m_RcvProduct.m_p11 = dvec[4];
gServer->m_RcvProduct.m_p12 = dvec[5];
//gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Catch_mark_End);
gTrackWorkFlow1.MarkProcessExt();
gTrackWorkFlow1.SetCurTrackWorkStep(_ETrack_Step_Catch_mark_End);
if (!m_bLogicErr )
{
CString str = "EXECMD_OK;";
Send(str, str.GetLength());
gLogMgr->WriteDebugLog("Send: " + str);
}
return CSocket::OnReceive(nErrorCode);
}
if (RcvStr.Find(ACTION_COLLECT) != -1) //收集数据.
{
gServer->m_bLogicErr = true;
gMarkAreaMgr->CollectOrgWorkData(gProgram_SZ_XL->IsbSelMarkMode(), gServer->m_RcvProduct);
gLogMgr->WriteDebugLog(ACTION_COLLECT + "OK");
}
if (RcvStr.Find(ACTION_STARTWORK) != -1) //启动加工
{
if (m_bLogicErr)
return CSocket::OnReceive(nErrorCode);
int sPos = RcvStr.ReverseFind(';');
int ePos = RcvStr.GetLength();
CString Index = RcvStr.Mid(sPos + 1, ePos - sPos - 1);

@ -87,6 +87,7 @@ public:
int m_RcvCurTrackIndex; //接收到的当前加工轨道
int m_curAreaDataCnt = 0; //当前加工区域数据量.
static vector<CServerMgr*> ServerVec;//服务员的容器
bool m_bLogicErr = true;
private:
virtual void OnAccept(int nErrorCode);
virtual void OnClose(int nErrorCode);

Loading…
Cancel
Save