离线编程软件的设计与开发
摘要SMT设备要达到最大的产量,必须要考虑生产线的效率。点胶机是SMT生产线中的重要设备,因此提高点胶机的生产效率具有十分重要的意义。本文以CAMALOT 5000系统为例,介绍了点胶机离线编程软件的设计与开发中的思想、方法和经验,本文着重探讨了坐标数据的处理和转换,同时针对基于点胶系统优化的TSP问题进行了分析和研究,对程序优化进行了系统分析设计,并编程实现了基本方案。最后在CAMALOT 5000系统上使用本解决方案,大幅度提高了生产效率,证明了本解决方案的优越性和高效性,也为其他SMT设备的离线编程软件的设计提供了一种可参考的思路。
关键词:离线编程;优化;点胶机;旅行商问题
Abstract: To achieve maximum output from SMT equipment, equipment efficiency should be take into account. Dispensing system is a important equipment in SMT line, so it is important to improve the dispensing system''s efficiency. Take CAMALOT 5000 for example, this paper introduces thought, method, experience of designing and developing optimization software for dispensing system, especially X-Y data''s processing and conversion, analyse and research is given about TSP bade on SMT optimization. System analysis design scheme is provided and realized by programming. Finally, this solve scheme is applied to CAMALOT 5000 system, it has greatly improved the produce efficiency, and proved superiority and efficiency of scheme. At the same time, it may provide a referable way of design of off-line programming software for other SMT equipment.
Key words: Off-line programming ; Optimization; Dispensing system; TSP
点胶机是SMT混装生产工艺流程中经常用到的设备之一。使用贴片胶的典型焊接过程包括点胶贴片固化翻面插件波峰焊接五个步骤。点胶是整个流程的第一步,其生产效率的高低将会左右着整条线的产量,因而要提高点胶机的生产效率,避免成为瓶颈,这就是我们研究点胶机离线编程软件的意义所在。
设备介绍
为了满足SMT混装生产的要求,我公司于今年5月引进一台CAMALOT 5000点胶机,CAMALOT 5000属联线液体点胶系统,可应用于表面贴装技术 (SMT)。这些系统在业界应用极为广泛,其特点是可靠、耐用、新颖、适应性强,可以处理各种电路板和基板。5000 平台在全部三个轴上均采用了滚珠丝杠和伺服电动机(带有闭环编码器),可以确保用户能够流畅、精准、正确地点胶。为了便于您操作,它们还提供了易用的增强型图形用户界面。这些点胶机专为电路板方面的应用而设计,它们使用一种特殊的传送系统,可容纳面积达19" x 19" (483mm x 483mm)的电路板,每小时点胶数最多达 25,000点,但这需要在一种理想的情况下实现,本文将在后面探讨程序如何优化以使设备接近这种理想工作状态。
其工作过程包括以下几步:
1)PCB(印制电路板)由进口传送带被装载到X-Y工作台上。
2)视觉系统读取PCB基准点,并将PCB定位。
3) 点胶头依次将胶水点到PCB上指定位置上直至所有位置全部点完。
4) PCB由出口传送带卸载。
设备的不足及解决
2.1 设备的不足之处
作为点胶设备的第一品牌,CAMALOT 5000优点很多,但也有它的不足之处,主要体现在以下几个方面:
1)软件没有导入CAD数据的功能。一般通过利用机器的人工示教方式,移动摄像头在电路板上找出所有胶点的坐标位置,但这种方式会占用设备的生产时间,而且采用人工示教方式找点对于普通的一块有几百个贴片元件的电路板来讲是一件费时费力而又极易出现差错的工作。同时由于人为的必然误差,元件位置偏差等原因导致的修复及返工的成本上升。
2)某一胶点位置的查找不方便。机器软件坐标数据中没有元件位号(如C1),仅有X坐标和Y坐标,这样在对某一胶点调整时将无从判断其具体位置,只能一个个通过移动摄像头在电路板上查找需调整胶点的坐标位置,相当麻烦。
3)程序优化有瑕疵。只依据最短路径优化而不考虑胶量大小的影响,这样有可能比较大的胶量会对后面比较小的胶量造成不良影响。
2.2 解决办法
针对上述不足,我着手编写了CAMALOT点胶机离线编程软件(CAMALOT Programming System,简称CPS)来解决这些问题。CPS采用VB6.0开发,具有典型的WINDOWS风格,界面简洁,操作简便,具有以下特点:
1)可快速将CAD数据转换为点胶程序,只需几秒钟时间,大幅度提高编程效率。
2)处理的数据中包含元件位号,可以很方便的查找及修改某一胶点数据,包括坐标位置和胶量大小。
3)有程序优化功能,除了依据最短路径法,还依据胶量大小排序,胶量小的排在前面,胶量大的排在后面。
4) 可对坐标数据格式进行自动处理,只保留小数点后2位。
软件开发思路及过程
CPS主要包含两方面的功能:CAD数据的转换和程序编辑;程序优化。下面本文将围绕这两个方面逐一介绍。
3.1 CAMALOT 5000点胶程序格式分析
现在SMT设备的程序一般都是文本格式,用记事本可以打开,CAMALOT 5000也不例外,图1所示的是CAMALOT 5000程序的文本格式。可以将点胶程序大致划分为两个数据段:第一个是程序控制语句段,主要是一些点胶时的机器参数设置,针对所有的点胶程序都是通用的;第二个是点胶数据段,包括点胶程序名,从图1可以看出该程序名为TEST.CAM,坐标数据的前两行为MARK坐标数据,从第三行开始是胶点坐标数据,包括X坐标,Y坐标,S列为胶量控制参数,参数值为1到4,我们定义4为标准胶量,数值越小,胶量越大。
3.2 将坐标数据转换为CAMALOT程序文本格式
由于程序控制语句段为通用字段,所以我们在坐标数据转换过程中根本不用考虑,只需在导出CAMALOT程序时直接添加在程序字段的最前面就可以了。我们考虑的重点就是如何将CAD坐标数据转换为CAMALOT点胶数据格式。为了简化起见,我们首先用EXCEL对CAD坐标数据进行处理,只保留X坐标和Y坐标,并另存为CSV格式(逗号分割)。CAD数据的转换包括两个过程:坐标数据的读取和数据格式的转换。下面将分别进行介绍:
3.2.1 坐标数据的读取
采用VB6编写读取文本数据的代码,首先介绍几个个非常有用的函数:
1)InStr(string1,string2)。返回string2在string1字符串中最先出现的位置。例如InStr("30.56", ".")返回3。
2)Len(string)。返回string字符串包含的字符数。
3)Left(string, length)。返回字符串string中从左边算起指定length长度的字符。例如Left("30.56",2)返回"30"。
4)Right(string, length)。返回字符串string中从右边算起指定length长度的字符。例如Left("30.56",2)返回"56"。
下面我们编写一段代码来读取一行坐标数据:
Dim tabPos As Integer
Dim x As Variant
Dim y As Variant
Dim strRow As Variant
strRow = "20.8666,30.8666" ''设定strRow为待读取的一行坐标数据
tabPos = InStr(strRow, ",") ''定出逗号位置
x = Left(strRow, tabPos - 1) ''取出X坐标数据
tabPos = InStr(x, ".") ''定义X坐标数据小数点位置
X= Left(x,tabPos 2)''X坐标数据只保留小数点后两位
StrRow = Right(strRow,Len(strRow)-Len(x)-1)''去掉已读取的X坐标数据部分
tabPos = InStr(strRow, ".") ''定义Y坐标数据小数点位置
Y = Left(strRow, tabPos 2) ''Y坐标数据只保留小数点后两位
最后的运算结果就是x为20.86,y为30.86。
3.2.2 数据格式的转换
在这里我们编写一段代码来将前面读取的x和y坐标转换camalot的mark坐标格式:
Open "d:\camalot\test.txt" For Output As #1
str = " " & 1 & "; REFPT; " & x & "; " & y& ";"
Print #1, str
最后的执行结果就是在d盘的camalot目录下生成了一个test.txt的文本文件,该文本文件包含这样的内容:“1; REFPT ; 20.86; 30.86;”,这样也就将x和y坐标转换camalot的mark坐标格式。
3.3 点胶机程序的优化
我们仔细观察点胶机的工作过程,就会发现胶机的点胶速度还是很快的,它的大部分时间都花在点胶头的移动上了。我们要考虑的主要因素就成了如何尽量减少点胶头的移动距离问题,即寻求最短路径的问题。假设总共有PCB板上有n个需要点胶位置,从一个特定的起始点出发,如何才能寻找一条最优的路径,使得其能遍历所有的点而运动的总距离最短。数学描述如下:
假设{1,2,3,…,i…,n}为一系列要遍历的点,其坐标位置分别为{(X1,Y1),(X2,Y2),…,(Xi,Yi),…,(Xn,Yn)},我们的目标是寻求一个序列{(i1,i2,…,in)}使得:
1) 每个点在序列中仅出现一次;
2) 满足ikik 1(1≤k≤n)两点间距离最小。
我们称这个问题是电路板问题,这个问题实质上就是一个典型的旅行商问题(Traveling Salesman Pro-blem,简称TSP)。TSP是一个图论的经典问题,就是说有一个旅行售货商要从他所在的村子出发,到周围的几个村子售货,每个村子去一次,最后回到出发点,求他的一条最短路径。作为图论的经典问题,TSP问题一直是一个在工程规划、地理信息系统、军事等领域应用十分广泛的问题,对该问题的研究有着重要的理论和应用价值。下面从以TPS问题为基础介绍一种点胶程序优化算法:
1) 确定初始出发位置,我们设定离坐标原点最近距离的胶点为初始点。
2) 依据胶量的大小,先从胶量小的胶点开始,在所有还没有放置到PCB上的胶点位置中,寻找一个距离上一个胶点位置最近的胶点,以此作为下一个要放置的胶点,同时将此胶点从未放置胶点序列中除去;
3) 重复步骤2)直至所有胶点都被放置完毕。
3.4 工程实际应用
应用本文中介绍的方法于实际,产生出了良好的效果。依据上述介绍的优化算法编写的CPS优化软件,已经运用于实际生产过程中,该软件的程序界面如图2所示。
该软件采用典型windows风格界面,操作简单。具有对每一元件项进行修改、增加、删除、替换、浏览等功能,并且该软件所处理文件数据格式与CAMALOT 5000程序格式一致,其优化处理后的点胶程序可直接拿到CAMALOT 5000上运行,从而可以实现离线编程,极大提高程序编制效率及可靠性,减轻编程人员负担。 点胶设备的应用简介
半导体产品
LSI、IC、一般逻辑电路IC、混合电路IC、晶体管、二极管等
光学产品
照相机、天文望远镜、眼镜、其它
电子、机械部件
印制电路板、电解电容器、可变电阻、水晶振荡器、传感器、LED、LCD、磁头、继电器、插接件、微型马达、变压器、线圈等
一般家电产品
音响、扬声器、电视机、收音机、电冰箱、洗衣机等
精密仪器、电子产品
DVD、VTR、摄像机、钟表、电脑、文字处理机、打印机、复印机、电子计算器、液晶电视、 医疗器械等
办公用品、一般生活用品
钢笔、玩具、渔具、乐器、磁带、体育用品、家具、管材、电池等
大型设备
摩托车、汽车、轮船、飞机等
其它
食品、化妆品、药品等
结束语
通过对设备程序的优化,可以在一定程度上减少机器的生产周期时间,但对于生产效率的提高来说,这仅仅是其中的一部分,更多的时候要依靠科学的管理,优秀的操作工,良好的设备维护与保养来实现,这些更是应该引起我们注意的地方。