合并代码

master
bestlqiang 4 years ago
commit 45b17460db

@ -1075,10 +1075,26 @@ void CCommonFlowMgr::MoveToFirstArea()
//大幅面拼接打标(平台移动,振镜拼接,数据为obj 对象) (bSel ==true 的时候为选择打标)
bool CCommonFlowMgr::MultipleAreaMark(CProduct &Product, bool bSel)
{
gLogMgr->WriteDebugLog("Fuc---->MultipleAreaMark : bSel = " + Bool2Str(bSel));
gLogMgr->WriteDebugLog("Fuc---->MultipleAreaMa/rk : bSel = " + Bool2Str(bSel));
//搜集加工数据(这里比较耗费时间)
gMarkAreaMgr->CollectWorkData(bSel, Product);
try
{
gMarkAreaMgr->CollectWorkData(bSel, Product);
}
catch (CExceptionMsg msg)
{
AfxMessageBox(msg.GetMsgStr());
gServer->BroadCast("副机收集数据异常!Exception! ");
return false;
}
gServer->m_bLogicErr = false;
CString str = "READY";
gServer->BroadCast(str);
gLogMgr->WriteDebugLog(str);
if (!gMarkAreaMgr->HasWorkData())
return false;

@ -119,6 +119,7 @@ private:
bool m_bUseLaser;//是否开关激光
//振镜校准参数--------------------------------------------------------------
double m_CalibrationPointGap;//打点之间的间隔mm
public:
double m_CalibrationRange;//振镜校准范围mm
};

@ -474,10 +474,10 @@ void CDlgSW_XL_Flow::UpdateCutPar()
m_MarkAreaCutCount = gCommonFlowMgr->GetAreaCycleCnt();//循环次数
m_Jig2PrtOft_x = gCommonFlowMgr->m_Jig2PrtOft.x;//针对产品的切割偏移
m_Jig2PrtOft_x = gCommonFlowMgr->m_Jig2PrtOft.x;//针对产品的切割偏移
m_Jig2PrtOft_y = gCommonFlowMgr->m_Jig2PrtOft.y;//针对产品的切割偏移
m_Jig2PrtOft_x = gCommonFlowMgr->m_Jig4PrtOft.x;//针对产品的切割偏移
m_Jig2PrtOft_x = gCommonFlowMgr->m_Jig4PrtOft.x;//针对产品的切割偏移
m_Jig4PrtOft_x = gCommonFlowMgr->m_Jig4PrtOft.x;//针对产品的切割偏移
m_Jig4PrtOft_y = gCommonFlowMgr->m_Jig4PrtOft.y;//针对产品的切割偏移
{
CString path;
@ -489,10 +489,10 @@ void CDlgSW_XL_Flow::UpdateCutPar()
ar + m_Jig4PrtOft_y;
gCommonFlowMgr->m_Jig2PrtOft.x= m_Jig2PrtOft_x;//针对产品的切割偏移
gCommonFlowMgr->m_Jig2PrtOft.x = m_Jig2PrtOft_y;//针对产品的切割偏移
gCommonFlowMgr->m_Jig2PrtOft.y = m_Jig2PrtOft_y;//针对产品的切割偏移
gCommonFlowMgr->m_Jig4PrtOft.x = m_Jig4PrtOft_x;//针对产品的切割偏移
gCommonFlowMgr->m_Jig4PrtOft.x = m_Jig4PrtOft_y;//针对产品的切割偏移
gCommonFlowMgr->m_Jig4PrtOft.y = m_Jig4PrtOft_y;//针对产品的切割偏移
}

@ -382,6 +382,7 @@ bool CDxfReadMgr::OpenDxfFileDlg(double Angle)
if (!fp)
{
gLogMgr->WriteDebugLog("Func : ReadDxfFile ---->Dxf File Open Error!");
//"D:\紫外切割机\同兴达双头-推治具\LaiPuLaser\Debug\TempMarkData\D287.dxf"
return false;
}
m_LINE.Empty();

@ -1008,18 +1008,16 @@ void CObjComponentMgr::CreatObjByLayerObj()
//从obj 中分析出两个定位mark 的位置
void CObjComponentMgr::AnalyseMarkPt()
{
return;
//return;
//vector<CObjComponent*> MarkVec;
//先找出圆形对象
{
vector<CObjComponent>::iterator iter = m_ComponentVec.begin();
vector<CObjComponent>::iterator iter_end = m_ComponentVec.end();
for(;iter!=iter_end;)
for(;iter!=iter_end;iter++)
{
if ((*iter).IsCircle())
m_ComponentVec.erase(iter);
else
iter++;
if ((*iter).IsCircle())
iter->SetbMarkObj(true);
}
}
/*

@ -470,7 +470,16 @@ void CProduct::TheoryDataToRealData(vector<Dbxy> &vec, Dbxy &AreaCenter, Dbxy Cu
(*iter).y += CutAdjust.y;
}
auto DataRange = gCommonFlowMgr->m_CalibrationRange / 2;
if (abs(iter->x)>DataRange||abs(iter->y)>DataRange)
{
CExceptionMsg msg;
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);
@ -259,7 +273,7 @@ void CServerMgr::OnReceive(int nErrorCode)
if (rcvcnt!= arryCnt*(sizeof(int)))
{
gLogMgr->WriteDebugLog("接收已选中Obj索引数组错误");
gLogMgr->WriteDebugLog("接收已选中Obj索引数组错误.");
}
int idx;

@ -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);

Binary file not shown.
Loading…
Cancel
Save