From 0e64f2f40b7d7661f95381113e123f46997a52ea Mon Sep 17 00:00:00 2001 From: bestlqiang Date: Tue, 30 Mar 2021 15:02:38 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=89=AF=E6=9C=BA=E4=B8=8D=E8=A7=A3?= =?UTF-8?q?=E6=9E=90Mark=E7=82=B9&=E4=BF=AE=E6=AD=A3=E8=AF=BB=E5=85=A5?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E6=97=B6=E7=9A=84=E9=94=99=E8=AF=AF=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LaiPuLaser/CommonFlowMgr.h | 1 + LaiPuLaser/DlgSW_XL_Flow.cpp | 10 +++++----- LaiPuLaser/DxfReadMgr.cpp | 1 + LaiPuLaser/ObjComponentMgr.cpp | 20 +++++++++++--------- LaiPuLaser/Product.cpp | 8 +++++++- LaiPuLaser/ServerMgr.cpp | 6 +++--- LaiPuLaser/hlp/LaiPuLaser.chm | Bin 11728 -> 11726 bytes 7 files changed, 28 insertions(+), 18 deletions(-) diff --git a/LaiPuLaser/CommonFlowMgr.h b/LaiPuLaser/CommonFlowMgr.h index 2a10796..9c13c5f 100644 --- a/LaiPuLaser/CommonFlowMgr.h +++ b/LaiPuLaser/CommonFlowMgr.h @@ -119,6 +119,7 @@ private: bool m_bUseLaser;//是否开关激光 //振镜校准参数-------------------------------------------------------------- double m_CalibrationPointGap;//打点之间的间隔mm +public: double m_CalibrationRange;//振镜校准范围mm }; diff --git a/LaiPuLaser/DlgSW_XL_Flow.cpp b/LaiPuLaser/DlgSW_XL_Flow.cpp index 5966ee6..c42de68 100644 --- a/LaiPuLaser/DlgSW_XL_Flow.cpp +++ b/LaiPuLaser/DlgSW_XL_Flow.cpp @@ -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;//针对产品的切割偏移 } diff --git a/LaiPuLaser/DxfReadMgr.cpp b/LaiPuLaser/DxfReadMgr.cpp index 63868af..81723c3 100644 --- a/LaiPuLaser/DxfReadMgr.cpp +++ b/LaiPuLaser/DxfReadMgr.cpp @@ -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(); diff --git a/LaiPuLaser/ObjComponentMgr.cpp b/LaiPuLaser/ObjComponentMgr.cpp index 9146079..c89a0e0 100644 --- a/LaiPuLaser/ObjComponentMgr.cpp +++ b/LaiPuLaser/ObjComponentMgr.cpp @@ -1008,19 +1008,21 @@ void CObjComponentMgr::CreatObjByLayerObj() //从obj 中分析出两个定位mark 的位置 void CObjComponentMgr::AnalyseMarkPt() { - vector MarkVec; + return; + //vector MarkVec; //先找出圆形对象 { vector::iterator iter = m_ComponentVec.begin(); vector::iterator iter_end = m_ComponentVec.end(); - for(;iter!=iter_end;iter++) + for(;iter!=iter_end;) { - if((*iter).IsCircle()) - { - MarkVec.push_back(&(*iter)); - } + if ((*iter).IsCircle()) + m_ComponentVec.erase(iter); + else + iter++; } } +/* { bool flg = false; int size = MarkVec.size(); @@ -1035,7 +1037,7 @@ void CObjComponentMgr::AnalyseMarkPt() MarkVec[1]->SetbMarkObj(true); MarkVec[2]->SetbMarkObj(true); } - /* if(size>=3) + / * if(size>=3) { sort(MarkVec.begin(), MarkVec.end(), [](CObjComponent * & a, CObjComponent* & b) {return (a->GetBasePt().y) < (b->GetBasePt().y); }); @@ -1143,13 +1145,13 @@ void CObjComponentMgr::AnalyseMarkPt() MarkVec[Mark3Idx]->NotCollect();//不要收集加工数据 MarkVec[Mark3Idx]->SetbMark1Obj(false); }* / - }*/ + }* / if(!flg) { CMsgBox MsgBox; MsgBox.Show("未发现定位点!"); } - } + }*/ } //获得基准对象的 DbSize CObjComponentMgr::GetBaseSize(int idx) diff --git a/LaiPuLaser/Product.cpp b/LaiPuLaser/Product.cpp index 512da30..006dd2b 100644 --- a/LaiPuLaser/Product.cpp +++ b/LaiPuLaser/Product.cpp @@ -470,7 +470,13 @@ void CProduct::TheoryDataToRealData(vector &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; + msg.SetMsg(CString("标刻数据异常,超出校准范围!")); + throw msg; + } } } diff --git a/LaiPuLaser/ServerMgr.cpp b/LaiPuLaser/ServerMgr.cpp index 6e2cdb6..edfe668 100644 --- a/LaiPuLaser/ServerMgr.cpp +++ b/LaiPuLaser/ServerMgr.cpp @@ -139,7 +139,7 @@ void CServerMgr::OnReceive(int nErrorCode) #ifndef DEBUG_lOCAL CString NetDir = gProgram_SZ_XL->m_NetPath + ":"; //共享盘 #else - CString NetDir = "D:\\紫外切割机\\信利双头(20200519)\\LaiPuLaser\\Debug\\TempMarkData\\";//共享盘 + CString NetDir = "D:\\紫外切割机\\同兴达双头 - 推治具\\LaiPuLaser\\Debug\\TempMarkData";//共享盘 #endif CString NetparfilePath = NetDir + Name + ".par"; CString NetarefilePath = NetDir + Name + ".are"; @@ -149,7 +149,7 @@ void CServerMgr::OnReceive(int nErrorCode) CopyFile(NetarefilePath, NewAreFilePath, false); CopyFile(NetPIfilePath, NewPIFilePath, false); - fileName.MakeLower(); + //fileName.MakeLower(); if (fileName.Find("dxf") != -1) { gServer->m_RcvFileName = NetDir +"\\"+ fileName; @@ -259,7 +259,7 @@ void CServerMgr::OnReceive(int nErrorCode) if (rcvcnt!= arryCnt*(sizeof(int))) { - gLogMgr->WriteDebugLog("接收已选中Obj索引数组错误。"); + gLogMgr->WriteDebugLog("接收已选中Obj索引数组错误."); } int idx; diff --git a/LaiPuLaser/hlp/LaiPuLaser.chm b/LaiPuLaser/hlp/LaiPuLaser.chm index a8ad621537e109111182c06334e308f6bce76df8..ae703e75bfba612e0fda99a935867a9ddb3889c6 100644 GIT binary patch delta 2967 zcmV;I3uyGvTh3b)NmNrt0{{R3U;qFB0RR91|Jus(krY$`&ar9X0RkE`q_cm4r!J~}zdN$V?!(F?K-Q~SS357}uNr{SOB1j0nCXK!qiAm7D z@(C3{C;$LxM9}OF0Nw$-_4hsO-@Kc^^Y9FFC6e$4{6dIC*aO;{e%K9cl#VJFvzT$q z9%@J05JToGov9XL0)>ev-(QIQNEAZf#t8EOe*gdgO^p=*EfCCY)weK`1W`m6JwQUZ zU=t)j^6y9odq4yH67DLe=@gFI=IVI1K<%xcqIGA^+4I)Yi|KrO&GpmSIYv1or$j-srjws&_h9iyI2H+=k(`>w~B_o1Pv}7~W*ClEPfh zf9l0Il~43~Jbrw{TVt?gO<_ysqbbwsr>fjBV?C zztgusOZs%jsh``vk!)XkgZTQ3?EeM!2aW{+@N#x6a=rO3w%hYl#~vBqFAAyaZ!cSq zVH&KWWp{XOmD`)7JiQ9Wy&n?ta{u%uxA%dn+dFO`f|yWms`f|NUwAm)-iPs*f1?7c zxW1&l9&4ETWp&Z~w;4a_s}V50r_{VM7rkcto75#%jX!+XnvxET=lhPEMGpqvkw=H| zq>i6oI-2wU+O~9!JZp8i5H$fn3C+I6Q-h=%d4X`INNUFH9L8!k?heG*8y(MbNY+s- z|5W7^XvYo_trdTlHKahX)*Y%_f9GPOqP0*qVRF}~yr+xf!?`devHjQSH3%#oHtN!$ z)&}u69jR(uVTZ9A2HQK>&-gSRA#%g_Ia*XJs4UTP4YzW@(6KB>;TlKFkH#H)dsyq> zm&4MIfH{NikC{0J@}Qa{lm2eV^}=D)E`D=GLb{|DKk2ga%>uhGZ{N~#7n5DkW`_nLL!GGhbD(z zg~AG=9IqT7gHWk4v6AAZf6MBTccHgocMo_&Q$p~crR>tExR0`2pcZC1wUQ}foDL?` zatraVx&p1xw%p8Xovk*TanAV2T2!1Yid%WlSuZAkfB2d$iLDJJnMkrW`=yDIr6oia z1(KU+1JAT!(V>7OO!UH<4WyZ<5jhP~6Tu@Vjw~ln#0>N$m7@DaWn40xC@jI}BY^JVY-zgT%JQacgr^+yasX&b26&FZ9 z=-P`undw3{q?-nu2*T=w;6hH)DXLz=m8x)Y3Wm7IZBwuvR|=Q7V@lH0B`3-ZiI+jq zr(z!Ad)g9+j2Zc}7(sNaXGF4D~f2ywVrVGWVI{C@wLY=B8 zK&nBYeKM4oN{Ud$8O~1$rM?=6H#aC_D=0$>a8cP43T)+y-C7*_w?QeoiV%O~P}J3u zIDLf$T%i~%)X}IN%D!^kIpncoD~9^IPAM+zB>Dm;sn%j4dW#<+ts~;r$P9TJi4s0S zS`t1?Mgqx9lanVde}xN@zF>m6D&T^VF6O~J7j$4Cin>#$@b|*5RjS24Vc%D!j~~zr z9=Qre8VV}@TeXlOgN7v+UdeFpXxO>d6+1DAt0M8$*tl?P6{`e^lEEn#WXe8rN9pG) zEc06~#Fk;=QDiIW3^-;0%SHe4GmPd!k2z+(%*8qL^!}<9|{gpEaM-7&FE}#tSK#Q zi2CS;BC|#4f20}8%SK2i%}`mkg>0h+Te?Cibws6`ZYXqzV%F1w{j5VVJAJdKCX`yo zaysCIP3xhcJ3O?gD3n@fg1Quk4RoQXI!OZ8eo(19l(pkHuDYS5I#$)$ITWpf!nSyY zb?c$D9nss>7K*KdS^eBX!gWyIow~SjFBEl$5|XhXrs63oQ6T34Y214}nk*K2Qdq zxCRM=e^3cOPzWEu!i75&`x7Y)9zz>`D6j{2IQE8O{A6N3eN!X8j}8d@EIU&{tdsV{ zr$|{T#EPDxv-XM?IYrE>EoR&lV-|>U=%yXBMU7QA{Fo_nth-~#P0?oMAV+VCJFAL3 zz$wWrXm(YnmsxhnD4EJ?pUjGA)pf3&6irL)e{MSz)$8njI~3WA?T$MX-D~ciI~3td z@0~I!%B;cV%1;rq5|u4HMPZcDvdbXMEXrlY8P=VkV7I02yAq1tHoNmmD03U(J-I$e(BkG}qQJYiem@nxhtnOlvUn&3Y{x z+rq3?zp}MUcXlIj=&Ig!tgAK%Zxx5OQ@A!8sP1Bohd8m$!+qGaBEq&W?r#e}$f3pg z+k}LFc2AzDT)u03P<)#Ez>BC|oP1s8L`8+rcE@?6T|Sqw#xokG7q6Dz3%!|rf3R8b zpnUnnQ?9xwi6&h-oJs^Q9P#qL~YM=FqFL%&G4wD_Z|U~(zNYy-Q74DJm~s4LP2wjt5c(>j zw3IKss8VNL9Lp#nzN+IV=SMdz8sqlRpC?vuy%B z0RmJovq2IT4U@tUm;~ZY`OlS0!W!@kAroN@Xf*q=8`vlvRW4>Q zh#THw{kXE^gFNruWusuf9CebR$;pbgmaS6>7N+!)w+DQExsyJ)kkX$zUmk zf4Q91i*GKT==6B}_=&g1V9K1sn9WI3rqfSUxnjnMwygJhiaz~Jnro)#bPdX>{}WCV znjw`gI>*08xH!$>TAV_h&wb<0TKuH4mKmV3x5D%0-K{p4-;J@;XM=W;;#91@7wJE9 zc{$_Uzh^@f3U-DemlX<@%KD>gZ;F|ba7%t-`+%5W8N}1 zGp7EhZ*iCO>5fxBw|-(-zxD_4^%vLw3+xUg3I^ckEm`!MGhTex<*%1LGQM9FQrF*} zwjRS&SVzk4G21)WH&JP>GC5>>W$-M}Pqquy2RjZ9X5*}480?d z4&zB2KfiP}T)4!0)Z0!f5lgWq#JpGaHdFV#_Sx%YBuf;#Mm1h&vH!H zQ6xW<7LOZs z=}>DU_#2MYHL$TmSPi4?9&Bd-9FGt=;rkq|s+Ck0XgP-4IpFA6mLqTtqvc2A4!%9E zb@a>eYRAAFQFq789E5q$%^~V_{x-HAv8m~$18^U53k`9hBQ>W`rX$Fie=&8Axi_}i zQN%~953(4ykf^~h9$#t?qcWPvq56~=ok_Vijl&s?oxAa1jg8oKw5V}~fQIKg)Wu*% znC11mFCaC7))kbkAjAeh4i@wzA#_7ZLYag*2~Z0lm4w_0trB7-)K$o;5LTg)Ly|+2 zL$E?+g;5Sy4v)d8)TmfVfAJG$^+>x=+rYesy`d=~c+gUIY1G?CSuRlvvm9DWH1STC z6Kc8#C|J9~tx&f7%x|TwKAUmU_{dsRoGhAKdCyxfCVzkUnk|XF4J4UJvNrpriBYB{ zL=^>+n`i^iv|-V~fFw-x!kP`FnWzyt4N?=yBPWh5Cr```1gR5|f4V0i6{3>lWJtw} z7N1$So0M34LQ=7y50i-%l=>i8YX2RW)=%p6tR_*p%pl&Yzc+7^2Kf~4*gr86kWxPLgY}? z)slFDg#}!p94pjPsT~Twa@;xOv4Sh6`n*mlF6<=wA}7h#VTy1r>m=UdWL_!;*`y^wG_Rf5dPV3dn8 z%TTc>vX%4>tTP1VLVx)g#B;I795deLf}MGKe+S(v!Ec>YautQS zjlz6Z+Ep9wH4Id0Tyq@M+Za&~^UaWOQG-z%FXUM(R%b~u;M0YEQ%a9EnXH21q;Cq=P3R81_z*{A?VwEhwg|G1qV15?~lRe zbhb!Vn3lH0eRM++f7v8-(hOx~tE87_C@dRN)=`5k-JzH|BGS({l)7U%YiU7_)}fdk zzuMCi3aw)~J#a#*bx_hBo?6rtimfw2eTqW{I#AXfrGaceDAXMa+i@IM-B41UtLkkW ziq^qt>%Kz1bx_=n=pCcOj%QuF3QD`rirqsJ>-s~vK6lsgB^1Gj3SJ`<`1*$;eFm@RPAI)kWnP%~ z`DwfNLeYJU_VVLUz7GoD(-hb5gVOIa;`bhh0)9~bpRB-vD-__TC9n|-JorKpe#{0F zflv=VPzWEne+CJHPzyg$2%o^hhC7t|6EO@RLmz%9um^WI_J(r&XktfwQzx#E5D5D$ zJ5x!llXk_YNLeYxi=HC0_=_1iMa-%(Zrl`O7O1i4rXRCKj#W1dnJId#yX44C5oYBg zOK*xhtCBpxDakBo_Ex8uS@y{|nbK;f%!+8`b*`Nhe^G1fZaWm!3+;Y86xplojyn|H zi|(E~6ya;{y)r4vtiff=Pf@cJmM=U-VVv=@%OK3G3g*=r)}5eax25j85{lk7yYosY za~t7Zxj{F#D4H8gnRAD-+XCm_913nTy?0M2dzY zJCNOtnR475B)o>ia;`C{cl;;U2-OLDb2?V~f5-=0-T?liUbAx(wx+ymYH4elqZWru zYcO-pdMz94!>m?6()CMscO`M?s{VGYt5yhc6^FM|xHcQ8?sAQXIJwTlecZGn;Y0ld|l>5MTO9I$N8jPK9{k^Ga9BBua@5n zf4!M~uvze+eEGyvuevCSCS5w7Kxfb)zRlh9r5uf-nG1R5(5toVsSheUTKqm?qnzuo zij97uMzas&!(RsfqK2z5TUyNQUb5Ogr};foCx^Y5ar|RVqDM85`M+G}Vtkt=*lAIN z4TAKSc9EVUEnl+HP%!GW4E%7Hz9aaBY1HU`6#d zY1>R4C-%le@6y1*-_n3>`LFv1TY$(~hOI8vb{@10@rcG4aS?Gprlq&97f=2&x}xbX zrMc4n%tvpulrO!wRA*fr>nI_i}QAnLq^GOi`o>PFChu9?>{7lmy>WUER&Ee l43m&829umE8W@}l000000001h000000000000000003-irV;=E From 60229b39f1aed623b5a0b39f360d5cb6a14ad8c4 Mon Sep 17 00:00:00 2001 From: bestlqiang Date: Tue, 30 Mar 2021 15:17:26 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=89=93=E6=A0=87=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=B6=85=E8=8C=83=E5=9B=B4=E6=8A=A5=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LaiPuLaser/CommonFlowMgr.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/LaiPuLaser/CommonFlowMgr.cpp b/LaiPuLaser/CommonFlowMgr.cpp index 8be1891..b9a03a2 100644 --- a/LaiPuLaser/CommonFlowMgr.cpp +++ b/LaiPuLaser/CommonFlowMgr.cpp @@ -1075,10 +1075,20 @@ 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; + } + if (!gMarkAreaMgr->HasWorkData()) return false; From fc90849764dabf570b5042e230dee70ad43ac987 Mon Sep 17 00:00:00 2001 From: bestlqiang Date: Tue, 30 Mar 2021 15:45:59 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=B0=86=E5=9C=86=E9=83=BD=E8=AE=BE?= =?UTF-8?q?=E4=B8=BAMark?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LaiPuLaser/ObjComponentMgr.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/LaiPuLaser/ObjComponentMgr.cpp b/LaiPuLaser/ObjComponentMgr.cpp index c89a0e0..8ec3466 100644 --- a/LaiPuLaser/ObjComponentMgr.cpp +++ b/LaiPuLaser/ObjComponentMgr.cpp @@ -1008,18 +1008,16 @@ void CObjComponentMgr::CreatObjByLayerObj() //从obj 中分析出两个定位mark 的位置 void CObjComponentMgr::AnalyseMarkPt() { - return; + //return; //vector MarkVec; //先找出圆形对象 { vector::iterator iter = m_ComponentVec.begin(); vector::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); } } /* From 4017478e3a31eb88adc1317364f1310d46e26089 Mon Sep 17 00:00:00 2001 From: bestlqiang Date: Wed, 28 Apr 2021 10:27:09 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=89=AF=E6=9C=BA=E5=88=87=E5=89=B2?= =?UTF-8?q?=E6=97=B6=E6=8A=A5=E6=95=B0=E6=8D=AE=E5=BC=82=E5=B8=B8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LaiPuLaser/CommonFlowMgr.cpp | 8 +++++++- LaiPuLaser/Product.cpp | 5 ++++- LaiPuLaser/Program_SZ_XL_TrackWorkFlow.cpp | 11 +++++------ LaiPuLaser/Program_SZ_XL_TrackWorkFlow.h | 3 ++- LaiPuLaser/ServerMgr.cpp | 16 +++++++++++++++- LaiPuLaser/ServerMgr.h | 1 + 6 files changed, 34 insertions(+), 10 deletions(-) diff --git a/LaiPuLaser/CommonFlowMgr.cpp b/LaiPuLaser/CommonFlowMgr.cpp index b9a03a2..282b85b 100644 --- a/LaiPuLaser/CommonFlowMgr.cpp +++ b/LaiPuLaser/CommonFlowMgr.cpp @@ -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; diff --git a/LaiPuLaser/Product.cpp b/LaiPuLaser/Product.cpp index 006dd2b..1459d9f 100644 --- a/LaiPuLaser/Product.cpp +++ b/LaiPuLaser/Product.cpp @@ -474,7 +474,10 @@ void CProduct::TheoryDataToRealData(vector &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; } diff --git a/LaiPuLaser/Program_SZ_XL_TrackWorkFlow.cpp b/LaiPuLaser/Program_SZ_XL_TrackWorkFlow.cpp index d729fa0..7cf7172 100644 --- a/LaiPuLaser/Program_SZ_XL_TrackWorkFlow.cpp +++ b/LaiPuLaser/Program_SZ_XL_TrackWorkFlow.cpp @@ -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));*/ diff --git a/LaiPuLaser/Program_SZ_XL_TrackWorkFlow.h b/LaiPuLaser/Program_SZ_XL_TrackWorkFlow.h index 1ffeb82..da28b47 100644 --- a/LaiPuLaser/Program_SZ_XL_TrackWorkFlow.h +++ b/LaiPuLaser/Program_SZ_XL_TrackWorkFlow.h @@ -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(); diff --git a/LaiPuLaser/ServerMgr.cpp b/LaiPuLaser/ServerMgr.cpp index edfe668..698be60 100644 --- a/LaiPuLaser/ServerMgr.cpp +++ b/LaiPuLaser/ServerMgr.cpp @@ -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); diff --git a/LaiPuLaser/ServerMgr.h b/LaiPuLaser/ServerMgr.h index 6a1c999..cdf816a 100644 --- a/LaiPuLaser/ServerMgr.h +++ b/LaiPuLaser/ServerMgr.h @@ -87,6 +87,7 @@ public: int m_RcvCurTrackIndex; //接收到的当前加工轨道 int m_curAreaDataCnt = 0; //当前加工区域数据量. static vector ServerVec;//服务员的容器 + bool m_bLogicErr = true; private: virtual void OnAccept(int nErrorCode); virtual void OnClose(int nErrorCode);