搜索
您的当前位置:首页正文

一种激光打标机绘制PLT图形的实现方法

来源:小奈知识网
维普资讯 http://www.cqvip.com 2002年3门 襄樊学院学报 Journal of Xiangfan Universit) Mar.:2002 VOJ.23 NO.2 第23卷第2期 种激光打标机绘制PLT图形的实现方法 周明刚 ,陈琳 (1.襄樊学院电气信息工程系,湖北襄樊441053; 2.华中师范大学电子与计算机研究所,湖北武汉430079) 摘要:激光打朽湘.是一种工业用的激光标记设备,主要用来在产品或工件表面上用高能量的 激光烧蚀出标记在激光打标控制系统中,利用直线插补算法的原理对PLT图形进行处理和绘制, 实现简单,控制方倪 关键词:插补算法 PLT图形;激光打标 中图分类号:TP334.8—40.24 文献标识码:A 文章编号:1 009-2854(2002)02-0065-05 绘制图形的输出设备通常有两类,一是显示器,二是绘图仪或打印机本文 寸论的激光打标机是一种 工业用的激光打标设备,主要用来在扳手、轴承、标牌或其他工件表面上用激光烧蚀出标记它与微机之间 通过一块接口电路板相连,主要由驱动电路和激光头两部分细成接口电路中,端DB的高四位和低四位分别 用于控制激光头中X轴和Y轴方向步进电机的移动,端DA用于控制激光口的开关.在为楚天激光集团公司设 计的激光打标控制系统中,我们成功地使用了直线的逐点比较插补生成算法(简称直线插补算法)对PLT图 形进行处理和绘制,这种算法实现简单,控制方便. 1直线插补算法 所谓直线插补算法就是执行机构每走一步,都要和给定轨迹匕的坐标值进行一次 匕较,看当前位置是在 给定点的上方还是下方,从而确定下一步的进给方向.若取起始点为坐标原点,则直线插补计算公式及进给 方向如附表所示: 附表直线插补计算公式及进给方向表㈨ J h11>=O Fm<O 直线坐标 L1 L4 进给方向 +X 偏差计算 Fm+1=Fm.Y2 直线坐标 L1 L2 L3 L4 进给方向 +Y 一Y 偏差计算 Fm+1=Fm+X2 L2 L3 X 四个象限的终点坐标值均取其数字的绝对值,表中Fm表示当前点的偏差,Fm+l表示进给后到达的点的 偏差,L1、L2、L3、L4表示当前点所在的象限,+X,一X,+Y,.Y分别表示进给方向,起始点的坐标为(X1, Y1).(X2,Y2)为结束点的坐标. 算法的思想用流程图描述如下: 收稿日期:20014)6-26 作者简介:周明刚(1969.),男,湖北荆州人,襄樊学院电气信息工程系讲师 疆徊鹰l —疆目 维普资讯 http://www.cqvip.com 用明刚,陈琳:一种激光打标机绘制PLT图形的实现方法 附图直线插补算法流程图 2 PLT图形的格式 PLT) ̄SC II码形式的矢量图形文件,除文件头和尾外,其内容主要是一些点的坐标和起落笔的标 忠.例如:……PA1453,2556:PD;PAl850,1503;PU;PA8500,6020;……;PU:PA3080,3551;…… 前后分别是文件头和文件尾,PA表示后面跟的是以逗号分隔的点的X、Y坐标;PD表示落笔,以它前后两点 为端点画—条直线;PU表示起笔,直接将笔移动到后面的点上而不用画线I21.如点(1453,2556)到点(1 850, 1503)应画—条直线,而点(1850,1503)到点(8500,6020)直接将笔移动到后面的点上,不需要画出其 姚 3实现方法 在实现过程中,我们选择VC++作为开发工具,它不仅使得开发过程方便快捷,而且也很容易实现对端 口的控制操作.实现过程中的几个主要函数分别如下: 3.1插补算法实现的直线绘制函数及图形绘制函数 由于PLT图形文件是由一段段的直线构成的,因此,我们用直线插补算法编写了—个画直线的函数:void CLaserCtrl::linel(int x.1,int yl,int x2,int y2).在此基础上,我们构造了画—个PLT图形文件的函数,其代码如下: void CLaserCtrl::draw01 1 { int i: ‘ for(i=l;i<poinmum—l;i++)∥去掉首尾两(0,0)点 { 维普资讯 http://www.cqvip.com 第23卷第2期 襄樊学院学报 2002年第2期 if((oldlaser---O)&&d:curlase[ ̄1))∥如果当前点出光标志为l //且上一点的出光标志为0 laserdelay();// ̄,lJ重新出光时,需要延迟 if(breakflags:false)∥检查中断标志 line 1(curx,cury, 】.)(,p【i】.y); else break; if((i:1)&&(ifrstdelayflags ̄true)1 ifmtdelay0;∥首点延迟 oldlaser=curlaser; curlaser=p[i].1aser; curx=p[i].x;cury=p[i].y; 3.2在指定位置绘制字符图形的函数 在draw()函数的基础上,我们编TvoidCLaserCtrl::display(intx0,intyo,charcode) ̄数,用来绘制一个 图形文件在调用 ̄aw0'm数之前,需要调用fetch0函数对指定的文件进行处理,还需要进行诸如坐标平移, 图形缩放、旋转等操作. 3.3 PLT文件的处理函数 fetchO函数主要用来对PLT文件进行处理,并将各点的坐标保存到数组中.其实现如下: int CLaserCtrl::fetch(const char filename) { int ij,n,m,ld,lsera; chartx[10],ty[10]; char b,b1,b2,b3; FILE fp; i(f(fp=fopen(iflename,"r+b”) ̄NULL){ MessageBox(NULL,"打开文件错”,…’,MBOK); return 0; 1 fseek(fp,44L,SEEK_SET); p[0】.x=0;p[0】.y--0;p[0].1sera=O;j=l; for(i=l;i<N;i++){ n=0;m=0;b=getc(fp); if(feof(fp)){ fclose(fp); break; ) switch(b){ case’P'://如果遇到P字符 bI=getc(fp);// ̄,Jl取下一字符 switch(b 1){ ’ case~A://若为PA,则取出紧跟的坐标值 ld=ffell(fp); do{b2= etc(币); n--n+1;}while(b2 1=',’);//n表示到’,’的字符个数 fseek(fp,ld,SEEI(__SET); fread(tx,l,I1一l,币); 67 维普资讯 http://www.cqvip.com I…圳,陈琳:一种激光打标机绘制PLT图形的实现方法 p卟x=atoi(tx); strcpy(tx.” ”); do{b3=getc(fp): m=m+l; }while(b3 1=’;。); fseek(fp,Id+n,SEEKSET); fread(ty,1,m一2,fp); p卟y=atoi(ty); s ̄cpy(ty,” ”); 。 j--j+1: break; case JLUJt=∥若为PU则表示抬笔,应置出光标志为不出光 lser=O;a pD—l】.1sera=lsera; break; case—D:∥若为pD ̄IJ表示落笔,应置出光标志为出光 lsera=l; p【j—l】.1sera=lser;a break; }; pD].1sera=p[j—l】.1ser;a break; case’’://其他字符不作处理 break; break; break; case’;’: case’S。: default:break; }} poinmum=j;//得到坐标点的个数 fclose(fp); retum 1: 4提高控制精度的几项措施 4.1 Y轴上直线的绘制 若打标文件里有平行于Y轴的直线存在,采用直线插补算法,激光头最后则会在x轴方向上不能回到坐 标原点,当进行连续打标时,就可能会出现图形的偏移.为了在每次打完一个文件,使激光头能精确地回到 坐标原点,Y轴方向的直线就必须特殊处理我们采用的方案是控制电机只朝Y方向移动,不用直线插补算法. 以下这段程序包含在line l 0的末尾 ifxl—x2、 {n=labs(y I—y2); tag---(yl—y2)>O?-I:l; while(n>0) { 、 68 他 囊 维普资讯 http://www.cqvip.com 第23卷第2期 亵樊学院学报 2002年第2期 movey(tag); n一; , } } 4.2延迟时间的设置 由于激光需要—段时问的振荡,达到一定的强度后才能在工件表面刻划出痕迹,故关闭激光后重新出光 时需要有一段延迟才不会出现字符笔划残缺的现象另外,因为PC机的指令执行时间远远小于电机移动时 间,如果不延迟或延迟的时问太短,则指令执行完时可能电机还没有移动到指定位置,容易导致控制不精确, 以及激光头不能精确回到原点;如果延迟的时间太长则电机等待,单位时问内电机移动的步数减少,速度减 慢.经过多次试验和延迟参数的对比,我们取得了较好的效果. 5结束语 用该方法实现的激光打标控制系统经过用户的使用,证明是可行的.用户反映,使用该系统打标无笔划 残缺、控制精确、打标速度快,完全达到了用户的要求. 参考文献: 【l】唐泽圣,周嘉玉,等.计算机图形学基础【M】.北京:北京清华大学出版社,1995.54-57. 【2】王彤.矢量汉字读取的算法及汉字输出的实现方法【J】l电子&电脑.1995.10,55-57. 【3】涂时亮,张友银【4】邱红兵,韩峰单片微机控制技术【M】.上海:复旦大学出版社,1994.212—220. Visual C++在异步串行通信控制中的应)T]IJI.计算机自动测量与控制..1999.(4):47-49 、 A Scheme on Drawing PLT Graphic File in Laser-Mark ZHOU Ming-gang。CHEN Lin (1.Department ofelectrical&informational engineering,Xiangfan University,Xiangfan 441053,China;) 2.Institute of Electron&Computer.Central China Normal Universiy,Wuhan t430079,China) Abstract:Laser-Mark is a kind of industrial device which use laser to mark on product In the control system of Laser-mark,usingthe principle oflinear interpolation draws PLT graphic file,and the scheme is simple nd aconvenient. Key words:Linear-interpolation;PLT-graph;Laser-mark 69 

因篇幅问题不能全部显示,请点此查看更多更全内容

Top