冯晋,池寅生,成小英,慈瑞梅
(扬州职业大学,江苏扬州225009)
振镜式激光加工系统一般采用PCI运动控制卡(振镜卡)控制振镜实现对激光光斑轨迹的控制[1]。这种方法成本低且运动控制精确[2-4]。由于振镜式激光加工系统的软件和硬件都往往由设备供应商统一提供,其软件系统不能内嵌用户程序,在焊接、切割等加工方式对设备及工艺方面有特殊要求时,需要用户进行二次开发。我们采用Visual Studio 2008集成开发环境进行用户程序的设计与编制,在对LMC-2型振镜控制卡进行二次开发的过程中解决了“激光加工轨迹预览及监控”问题。
振镜式激光加工中,振镜坐标采用平面直角坐标系,见图1(a)。而计算机屏幕坐标系的坐标原点位于屏幕的左上方,Y轴方向向下,见图1(b)。此外,振镜坐标与屏幕坐标系统的度量单位也不同。振镜坐标需要通过坐标变换才能将图形在屏幕坐标系内正确显示。
本文的开发对象是北京金橙子科技有限公司的LMC-2型打标卡及打标控制软件EzCad—V2。LMC-2型打标卡实际上是一款专用于振镜的运动控制卡,通过发送脉冲控制振镜偏转,从而实现激光光斑的轨迹控制。根据《EzCad 2.0国际版用户手册》的说明,EzCad—V2是专门为激光打标设计的软件系统,主要完成CAD、振镜运动控制及激光器控制等功能。该系统不能加入用户插件,没有轨迹监控功能。用户需通过该公司提供的动态连接库MarkEzd.dll取得对振镜的控制权[5]。通过调用该动态链接库中的相应函数,可以获取轨迹的预览图像和当前振镜坐标。我们解决的问题是如何显示预览图形,用获取的振镜坐标模拟加工轨迹,并使模拟轨迹与预览轨迹重合。
图1 振镜坐标系与屏幕坐标系
用户界面采用PictureBox控件作为图片容器,取名为picView。图片容器的坐标系与屏幕坐标系类似,区别仅在于图片容器坐标系原点位于图片容器的左上角,而不是在屏幕的左上角。将预览图片装入此容器中即可实现在用户程序中激光轨迹的预览。通过LMC-2卡采集数据,获得振镜的实时坐标,以此坐标值画连续直线模拟光斑运动轨迹,从而实现监控功能,流程图见图2。
调用MarkEzd.dll中的图片函数lmc1.Get-Prev Bitmap,得到当前数据库里所有对象的预览图形。EzCad—V2提供的预览图片是边长相等的正方形bmp格式图片,其大小可以由用户指定,这里采用图片容器边长的最小值作为图片的长和高。图片加载程序如下:
图2 轨迹预览及监控流程图
加工轨迹的监控通过调用MarkEzd.dll中的坐标函数lmc1.GetCurCoor得到当前振镜坐标,画直线模拟运动轨迹。加工轨迹的监控的主要难点在于:(1)振镜坐标系与图片容器的屏幕坐标系不同;(2)预览图形原点与图片容器的屏幕坐标系原点不重合;(3)预览图形与模拟轨迹的监控图形不重合。
难点(1)、(2)实质上是振镜坐标系与屏幕坐标系间的坐标系变换问题。具体的变换方法可以借鉴CAD图形变换原理[6]。
难点(3)的原因是屏幕坐标的单位与振镜坐标系的单位不同。屏幕的坐标系基于设备坐标,基本量度单位是设备单位(通常为像素)。振镜坐标系使用毫米作为度量单位。可以通过图形比例变换使预览图形与模拟轨迹的监控图形重合。
2.3.1 坐标系变换
与几何图形在同一坐标系进行图形变换不同,本文讨论的坐标系变换并不改变图形的位置、大小或形状,改变的是坐标系的方向和坐标系原点的位置。在假定图形形状及位置不变的情况下,将振镜坐标系的值换算为屏幕坐标系内的坐标值。图3(a)所示为振镜坐标系,三角形表示实时轨迹图形。将振镜坐标系Y轴反向,得到的坐标系X'O'Y'与屏幕坐标系方向相同,如图3(b)所示。坐标变换公式为:
图3 坐标系变换
其中,x,y为原振镜坐标系内的坐标值,x',y'为Y轴反向后的坐标系X'O'Y'的坐标值。
将坐标系X'O'Y'原点平移到屏幕坐标系原点,得到新坐标系X″O″Y″。显然,坐标系X″O″Y″即屏幕坐标系。坐标系平移公式为:
其中,x″,y″为新坐标系X″O″Y″内的坐标值,Δx,Δy为坐标系X'O'Y'与坐标系X″O″Y″的X轴和Y轴的间距。
2.3.2 比例变换
图4 比例变换
图4中,实线三角形为实时采集振镜坐标而绘制的监控图形;虚线三角形为系统提供的载入图片容器后已缩放的预览图形,即显示图形。为了使这两个图形重合,需要对监控图形进行比例变换。
计算比例变换因子时,还要考虑一个特殊问题——为使图形不至于与用户程序的图片容器边界相交,振镜式激光加工系统为监控图片设置了“留白”边框。“留白”边框是系统计算出实际图形长度范围后,在四周增加的空白边。设W/2,H/2为“留白”边框的单边宽度和单边高度,如图4所示。所以,Wp-W,Hp-H才是监控图形生成的图片的实际宽度和高度。设Wc,Hc为图片容器的宽度和高度,比例变换公式为:
取S=min(Sx,Sy),这样可以保证图形被完整预览。比例变换公式为
2.3.3 振镜式激光加工系统轨迹坐标变换公式
综上所述,振镜式激光加工系统的轨迹坐标变换由两个步骤组成:坐标系变换,完成Y轴反向和坐标原点平移;对监控图形进行比例变换,使监控图形与预览图形重合。
分析表明,监控图形的几何中心始终位于图片容器中心。采用从监控图形中心向图片容器中心平移,借此完成坐标系的平移变换,这样比从振镜坐标系的原点向屏幕坐标系原点平移更加简便。
监控图形几何中心坐标为:
其中,Pcx,Pcy为监控图形的几何中心的坐标值,Xmax,Xmin,Ymax,Ymin分别为监控图形中所有图形实体在X轴和Y轴方向的坐标极值。以上坐标值均在振镜坐标系中获得。
容器几何中心坐标为:
其中,Pc-sx,Pc-sy分别为图片容器几何中心的X轴,Y轴坐标值,Wp,Hp为图片容器的宽度和高度。Pc-sx,Pc-sy在屏幕坐标系中获得。
坐标平移变换公式为:其中,S为比例变换因子,由式(4)得到。
这样就得到实际的轨迹坐标变换公式
其中,XS,YS为轨迹在屏幕坐标系的坐标值;x,y为振镜坐标系内的坐标值。屏幕坐标变换部分的程序如下:
为了避免粘接剂厚度不均匀造成的产品质量下降,以及粘接剂干燥时间过长等问题,某企业生产的油气分离器的上盖和盒体由原先的粘接工艺改为激光焊接工艺。完成此项加工任务的激光加工系统中,图形显示子系统的主要任务是激光光斑的运动轨迹显示与实时监控,光斑运动轨迹在EZCAD—V2软件中完成设定。图5即为我们开发的用户程序界面。在程序中通过调用预览图片即可得到显示预定运动轨迹,如图5(a)所示。激光光斑焊接轨迹由近似于矩形的封闭轮廓、两条开放的线性轮廓和五个用圆形表示的焊点等几何要素组成。启动程序后,采集振镜的实时坐标值,通过前述算法,通过画连续直线段的方法得到激光加工实时轨迹监控图形,如图5(b)所示,粗实线表示激光实时轨迹。需要说明的是,图5(b)是加工过程中的即时截图,此时尚未完成加工。
在图5(a)中可以看出,预览图形在用户程序中正确显示;在图5(b)中可以看出,用粗实线表示的实时监控轨迹与预览图形的相关直线、圆弧等几何要素完全重合。至此,图形显示子系统的设计目标全部实现。
图5 轨迹预览图片及实时轨迹监控图片
通过探索与实践,提出了振镜坐标系与屏幕坐标系统的转换方案,比较完善地解决了振镜式激光加工中图片预览和轨迹实时监控问题。为企业用户提供了直观、便捷的加工过程监测方案。本文所述方法对常用运动控制卡的轨迹预览及实时监控也具有一定价值。
[1]刘捷.激光数控加工专用PCI总线运动控制卡研究[D].武汉:华中科技大学,2004.
[2]吴琳,谭营.运动控制技术发展与展望[J].机床与液压,2007(7):231.
[3]ROWE D M.How Laser Shows Work-Scanning System[EB/OL].[2011-09-30].http://www.laserfx.com/Works/Works3S.html.
[4]罗炳军,陈健.基于运动控制器的开放式运动控制系统研究与应用[J].工业仪表与自动化装置,2006(3):10-12.
[5]钱雪忠.Visual Basic程序设计实用教程[M].北京:机械工业出版社,2004.
[6]N ENGLAND.A Graphics system architecture for interactive application-specific display functions[J].IEEE Computer Graphics and Applications,1986,6(1):60-70.