刘 燕,吴忻生,陈 安,胡跃明
(1.华南理工大学 精密电子制造装备教育部工程研究中心,广州 510641;2.广州现代产业技术研究院 精密电子制造技术研发中心,广州 510640)
表面贴装技术SMT(Surface Mount Technology)在集成电路产品的自动化生产过程中得到了广泛应用,而贴片机是 SMT装配线上最关键的设备,贴片机是一个集光、机、电和气、设计制造一体化的先进制造设备[1],贴片机的核心软件直接影响整个系统的可操作性和稳定性,是贴片机能否顺利完成高速度高精度贴装工作的决定性因素。从结构上贴片机主要分为过顶拱架型、转塔型和大规模并行型三种类型,本文在高速高精度全视觉过顶拱架型贴片机(型号BHTP3350)的基础上讨论其系统软件的程序实现技术。
对高速高精度全视觉过顶拱架型贴片机进行系统组成分析,一般可分为四大模块:机械系统、控制系统、视觉系统和软件系统。如图1所示。
图1 贴片机的系统组成
贴片机的贴片流程可以分为三步[2]:1)贴片机系统位置标定、热机、机械参数调整等;2)创建贴装工艺数据,包括PCB板数据、元件数据、喂料器数据、Mark数据、贴装数据等;3)按照贴装工艺数据对PCB板进行自动循环贴装。上板、自动贴装和下板是自动贴装的三个步骤[3],自动贴装的动作按先后顺序依次为:贴装头运动到喂料器取料运动过元件摄像机(视觉系统摄像、检测、计算) 贴装头运动到该元件贴装位置贴片(根据视觉系统的结果调整贴装坐标值) 将不合格元件抛入抛料区 贴装头运动到取料点开始下一轮循环,直到完成所有贴装点的贴装,如图2所示。
图2 贴装流程图
结合图1、图2,贴片机的系统软件可按模块划分中应该包含数据库管理模块、视觉处理软件模块、控制软件模块(包括运动控制和信号控制)。将贴片机的控制系统软件分为两层[4]。软件的底层包括贴片机电气控制系统、PCB数据管理系统、机器视觉系统、运行监测系统;软件的上层为人机交互界面以及协调控制程序设计。贴片机的控制系统软件总体系结构如图3所示。
图3 控制系统软件总体系结构图
全视觉贴片机要完成贴片任务,按照贴装流程图(图2)所示,需要依次完成送入PCB板,视觉定位PCB板Mark点位置,取料,元件视觉检测及纠偏,抛料贴装,送出PCB板。
整个设备共需要控制四个运动轴,分别为控制头部组装件水平面上移动的X和Y轴、控制头部组装件竖直方向贴装高度的Z轴、旋转头部组装件的R轴。设备运动控制结构如图4所示。
图4 设备运动控制结构图
本机采用众为兴数控技术ADT850高性能四轴伺服/步进控制卡[5],日本Panasonic伺服电机和伺服放大器组成运动控制部分。ADT850是基于PCI总线,支持即插即用,所有输入、输出均采用光耦隔离,抗干扰性强。4轴伺服/步进电机控制,既可独立控制,互不影响,脉冲输出可用单脉冲(脉冲+方向)或双脉冲(脉冲+脉冲)方式,频率误差小于0.1%。ADT850运动控制卡所带的PID滤波器, 以及速度/加速度立即控制功能,可提供最佳的运动精度。同时以总线中断处理高速指令, 可处理多组的直线及圆弧补间、可执行双曲面及球面等连续路径运动。此外, 四轴每次运动均可执行2Giga单位的位移,具有各轴高速定位连接,因此具有很好的运动控制特性。
通过运动控制卡提供的WINDOWS平台下开发库,可以直接用QT,C++进行系统运动控制模块开发,将模块嵌入到贴片机系统软件中实现对各种运动状态的控制,包括各个轴的速度控制、点对点的定位、线性和圆弧插补运动、多轴电子齿轮和凸轮运动、多轴连续路径运动等。在系统中需要对各轴运动控制方式进行程序实现,这些运动控制方式包括:所有轴原点复位、恒速运动、给定加速度或速度运动到目标位置、水平X轴和Y轴直线插补,曲线插补运动、垂直Z轴匀加速上下运动等。还包括对各个轴运动的监控报警实现,如运动超限报警、运动失控报警等。因此,多功能贴片机系统是一个非常复杂的运动控制系统,其运动控制流程包括贴片流程中涉及到的运动控制任务及各种运动报警信息。
在QT开发中,把ADT850运动控制卡对于的开发库“850DOSH.LIB”或“850DOSL.LIB”和调用库文件“adt850.H”添加到工程项目中,在运动控制模块的程序文件中添加#include “adt850.h”申明。即可在运动控制程序实现中调用控制函数接口与监控函数接口。在运动控制模块设计时,需要先封住一个面向ADT850的完成基本的运动控制动作接口类class CCtrlCard,其包含六种类型控制接口函数,包括基本参数设置接口、驱动状态,运动参数检查接口、运动参数设定接口、驱动接口及开关量输入输出接口。在程序调用时,直接使用所定义的这些运动方式的名称即可。
贴片机要实现正确贴装操作,首先要有一个PCB板的生产数据。其中包括:PCB板数据,元件数据,喂料器数据,Mark数据,贴装数据等。其中PCB板数据和元件数据用于确定贴装的板及贴装的元件信息,包括个数位置信息等等。喂料器数据通过元件数据来确定,包括其位置信息和吸嘴信息(安装哪一类型的吸嘴以及拾取哪类元件等)。Mark数据通过视觉系统确定;而贴装数据则是根据综合上面几类数据得到的,实施贴装前通过数据优化可以达到最高的贴装效率。可见,贴片机的PCB数据管理模块需要处理的各类信息是互相关联的众多信息。
数据管理主要体现在PCB关系数据库的建设,也就是表和视图的创建。对各种生产数据的编辑处理表现为对相对应的表、视图进行“新建,查找,删除,增加”等。
程序的开发环境为VS2008,对数据库的访问采用ODBC(Open Database Connectivity)方式,采用了QT类库,QT中提供QODBC数据库引擎来访问Access数据库。通过QSqlDatabase类实现建立数据库连接的操作;QSqlRelationalTableModel支持外键,适合处理众多互相关联的表,因此选做数据模型。QT的模型/视图架构是一种支持数据可视化的一种非常灵活的方法,在PCB数据管理中的实现架构如图4所示。
图5 PCB数据的模型/视图架构
PCB板的贴装信息可以由“导入”功能实现,也可以手动添加。
本文设计的数据管理系统具有下列特点:
1)提供CAD/CAM接口[6]PCB数据的生成之前为人工手动逐项输入,效率低且受工人的状态情绪干扰,容易造成数据不够完整准确。在“PCB数据操作”界面中增加“导入”菜单,直接将CAD软件(Protel,Altuim Designer等)生成的PCB文件(.pcb或.xls格式)中的相关数据提取并转换为生产所需要的数据。
2)将贴装数据的编辑与视觉采集集成到一个窗口,根据导入的pcb文件生成贴装板的元件布局图,喂料槽的位置信息也以图像的形式呈现在“贴装信息缩略图中”。可以在此缩略图中选中元件或喂料槽进行信息编辑,同时在视觉采集窗口中实时显示该元件的图像。实现可视化编辑贴装数据操作,提高人机交互的友好性。
贴片机的视觉模块完成的功能主要有:
1)对PCB板定位,包括Mark点定位及元件贴装位置的定位;2)贴装元件的识别检测和角度识别。功能1)在PCB板定位阶段实现,功能2)在元件贴装阶段实现。视觉模块主要由CCD、光源、视频捕捉卡、图像采集卡组成,根据视觉模块的作用,按功能细分模块如下:跟踪示教模块、PCB板Mark点识别及计算模块、元件识别与计算模块。功能模块如图6所示。
图6 视觉系统功能图
视觉子系统相对独立,与系统主控程序通过串口协议进行通讯。根据主控程序命令采取相应的操作,包括参数设置、采集图像、处理图像、结果发送等。视觉模块的核心任务即对待贴装的PCB板和元件进行高速度、高精度检测定位。
PCB板Mark点的定位识别首先需要采集一副图像作为标准Mark点,在后续自动化生产过程中视觉系统通过与数据库中保存的标准Mark点图进行匹配来达到识别和定位。为准确匹配需先进行图像分割,采用全局阈值分割算法,该算法的原理是:采用固定的阈值T(此阈值需经过具体实验得出),将一幅原始灰度图像f(x,y)经以下阈值分割可得到目标图像F(x,y)。
将分割得到的目标图像F(x,y)与标准图进行模板匹配,因Mark点均为规则图像,故在本系统中采取基于图像几何特征的模板匹配。从相似性度量和搜索策略对传统模板匹配算法进行改进,序贯相似性检测算法(SSDA)是比较常用的相似性度量方法,而常用的搜索策略是金字塔分级搜索策略。
SSDA是一种比较快速的模板匹配算法[7],其算法思想如下:
1)定义绝对误差值:
2)取一个不变的阈值Th。
3)在子图 Si,j(m, n )中随机选取像点(m , n ),kn并计算它与模板图像T中对应点的误差值ε (i, i , mk,nk),并把这些误差值累加起来。当累加一定次数后总误差值超过阈值Th时,则停止累加,并记下此时的累加次数r。定义SSDA的检测曲面为
4)对每个子图 Si,j(m, n )进行步骤3)的操作,并计算每次得到的r值,将取值最大的 I (i , j)对应的点 ( i , j)作为匹配点。
同时,实际中对Mark点的定位,由于匹配定位的位置只是在小范围区域内变化,所以并不需要在整幅图像上作匹配运算,可根据实际情况事先选取一定的匹配区域,这样能够大大地减小运算量,提高定位速度。
1)首先,取一个初始阈值T0。
2)在选取的匹配区域内,计算模板图像与子图中每一个对应像素点的误差值,并把这些差值累加起来,记为T1。
3)平移一个像素位置获得新的子图,进行步骤2)的操作,每次比较T1与T0的大小,当T1 4)完成匹配区域内所有子图的运算,可得到最佳匹配点位置。 采用动态阈值的SSDA模板匹配算法,相比固定阈值的SSDA算法可以减少很多非匹配点的计算,从而大大提高了效率。虽然没有在整幅图像作匹配运算,但是SSDA算法仍然需要对匹配区域内所有像素点进行运算,计算量仍然很大,所以这里采用两级金字塔搜索策略,可以大大减少运算量,进一步提高算法执行速度。 根据匹配的Mark点对之间的连线计算出角度偏差来进行PCB板相对机械坐标的偏移。 在对元件的中心定位的操作过程中,元件通常为规则几何形状,因此根据采集的元件图像进行几何运算即可得出其中心坐标,元件角度偏差计算与Mark点角度偏差计算相同,元件中心定位及角度偏差检测效果如图7所示。 多功能贴片机的系统管理软件涉及到能否高效、精确完成贴片任务,通过对其整体结构及运动控制,PCB数据管理和视觉系统的分析和设计,可以知道它是一项非常复杂的软件工程项目。本贴片机基于PC工控机设计管理与控制软件系统,系统由485总线连接的AMAI贴片机配套IO板卡DEB-S500-B[]与DEB-S500-H[]的IO控制子系统,负责对贴片机各个部分传感器信号采集与开关信号的设置。为了保证系统中实时性要求,视觉检测模块中的图像采集卡与图像处理卡采用了公开源代码的实时操作系统UCOS-II进行算法程序设计。系统经初步的整机调试,通过对PCB数据管理、视觉模块的定位与检测精度、贴片速度与轨迹控制精度等技术参数进行测试,可达到预期设计目标。 图7 元件定位及角度计算示例 [1] 鲜飞.贴片机现状及发展趋势[J].电子测试,2008,(9):29-34. [2] 宋福明,张小丽,马如震.SMT2505全视觉多功能贴片机的研制[J].电子工业专用设备,2002,31(4):219-223. [3] 周德俭.表面组装工艺技术[M].北京:国防工业出版社,2006. [4] 魏云峰.贴片机控制系统底层软件模块与上层软件设计[D].苏州:苏州大学. [5] 刘勇等.众为兴ADT-850四轴运动控制卡说明书[M].深圳:众为兴数控有限公司出版,46-108. [6] 刘海明,胡跃明,吴忻生,袁鹏,戚其丰.贴片机设备中CADCAM数据接口的设计和实现[J].广东自动化与信息工程,2003,4:4-6. [7] 李弼程,彭天强,彭波,等.智能图像处理技术[M].北京: 电子工业出版社, 2004.4 结束语