基于MATLAB的SMT贴片工艺SPC分析与设计系统研究

摘要:

随着表面组装技术(SMT)的飞速发展,SMT技术已经在电子设备生产行业得到广泛应用。产品质量的控制成为了竞争取胜的关键,SMT产品组装故障多来源于组装过程各工序。贴片是SMT组装工序中的关键工序,本文主要以贴片工艺为主要对象,通过MATLAB和VB平台,编写程序实现了常用统计控制图功能模块,建立了SMT贴片工艺的统计过程控制和分析系统。

关键词:统计过程控制  贴片工艺  控制图  MATLAB

Abstract:With the rapid development of Surface Mount Technology (SMT), SMT is widely applied in the electronic device fabrication area. Product quality control becomes the key in order to win in the competition. Assembly malfunctions of SMT product come from every procedure of assembly line primarily. Placement is a SMT construction the key work preface within the work preface, in the article main with placement process for main object, pass the terrace of MATLAB and VB, weave to write the procedure realization in common use statistics to control the diagram function mold piece, and build up the SMT placement process application covariance process control and analytical system.
Key words:SPC  Placement  Control chart  MATLAB

前言
近年来,随着电子组装行业生产设备的自动化水平不断提高,贴片机、回流炉等都具备了自监控的能力,能够通过设备的传感装置和自动化软件直接采集出以往较难通过人为采集获得的数据,如贴片的抛料率、回流炉各区的温度和气流等[1]。此时这些现场数据作为工艺过程分析的来源,具有海量、非集成却又实时的特征。因此在此基础上的工艺过程控制需求重心已经由原来的对现场状况事后分析、每月汇总、并事后改善,转变为希望能够实时控制、发现过程异常趋势并立即纠正、监督改善结果并做出持续改进,并要求使用软件技术,将这些工艺过程信息实时汇总并提供工艺过程分析预测的结果,以供现场纠正和持续改进所用。对贴片过程中贴片率的监控等都属于统计过程控制(Statistics Process Control,SPC)系统在表面组装技术(Surface Mount Technology,SMT)组装过程中比较典型的实时监控应用[2]。

使用SPC工具对贴装过程中贴装率的监控,能够实时发现贴装率异常波动,而这些异常状况的背后,往往隐藏着喂料器中错误装上的原材料、贴装头或者其他设备传动装置的磨损,真空装置异常等信息,正是可能引起重大产品品质问题的元凶[3]。以贴装工序的原材料上料为例,由于贴装工序操作的电子元器件体积一般比较微小并且外观相似,通常的肉眼识别物料编号与料品规格等信息容易出错,一旦装载的原材料发生错误,则可能出现的就是批次性贴装错误,从而导致花费在重工与返修上的成本急剧上升并可能影响交货周期。因此在贴装工序中对贴片率这样的工艺过程数据进行实时监控,能够有效的帮助制造现场管理者实时侦测过程的异常波动趋势从而迅速做出反应,防止问题的恶化。

1 SMT贴片工艺SPC分析方案设计
1.1 数据的采集
关键参数一:停机率
停机率可以用来衡量机器的老化程度,从贴片机买进之日起,我们就应该记录它的停机时间,以停机率作为贴片机的一个重要性能参数,从而确定贴片机的可靠性,具体方法为记录在贴片机的工作期间,停机时间占总时间的百分率。我们以120个小时为一个时间点作一次统计,如1月1日至1月5日,机器运行时间为120小时,停机时间为5.8小时,其中包含换型号,换线,故障修理等,停机率为5.8/120×100%=4.83%,表1为停机率采集数据表:


关键参数二:抛料率
所谓抛料就是指贴片机在生产过种中,吸到料之后不贴,而是将料拋到拋料盒里或其他地方,或者是没有吸到料而执行以上的一个抛料动作。抛料造成材料的损耗,延长了生产时间,降低了生产效率,提高了生产成本,为了优化生产效率,降低成本,必须解决抛料率的问题。表2为是抛料率采集数据表。
关键参数三:贴装精度
贴装精度:描述元器件相对于PCB上的标定位置的贴装偏差大小,被定义为贴装机贴装表面组装元器件时,元器件焊端和引脚偏离目标位置最大值的综合位置误差。贴装精度由两种误差组成,即平移误差和旋转误差。在同一个型号的n块PCB板中,我们在每块板的几个不同位置,测得贴装在此位置上的PLCC的平移误差与旋转误差,作为监测贴片工艺性能的一个参数,然后计算出总误差。表3为贴装精度采集统计数据:
1.2 分析工具
贴片机所选监测的参数如停机率、误差均属于计量型数据,抛料率属于计数型数据,因此,按照控制图的选用原则,选用Xbar-R图和P图来进行受控分析。同时结合直方图、过程能力分析等控制图等方法来对整个工艺的过程进行监控和分析。

2 基于MATLAB的控制图编程[4][5][6]
以停机率和抛料为例,编程实现控制图的绘制,首先把采集到的停机率的数据制作成.dat的格式,存进MATLAB的当前文件夹里或者是其它的存储路径里。由于MATLAB具有较强大的统计分析及绘图功能,本文仅以XbarR为例来说明。
XbarR控制图可以使用MATLAB统计工具箱里的均值管理图函数xbarplot来编程实现,xbarplot(DATA)给出了DATA数据的均值管理图,DATA中的每行数据为按时间顺序给出的观测值,xbarplot(DATA,conf)可用conf给出自定的置信区间管理限,这里采用6西格玛标准,所以conf=0.997,xbarplot (DATA,conf,specs)可用两个矢量元素specs限制所绘曲线的界限。先用load函数,把数据读进Workspace(工作间),specs用上面说到的mean和std函数求出均值和标准差,后设置上下3西格玛的标准限。用xlabel,ylabel,title等函数对图形X轴,Y轴和图名进行命名。经过运行,所得图形如图1所示。

同理,可以绘制出Range图、Schart图、直方图、点图、正态分布检验图等,在此不再赘述,绘制图形如图2-图9所示。

3、分析
控制图模型能够解决的贴片工艺故障问题分析如下:
(1)以停机率的数据为例,结合开发的软件模块,绘制出Xbar图和R图。从XbarR图可以看出一下几点:
① 过程中心线与规格中心线基本接近,可以确认过程没有问题;
② 从Xbar图上看到前面11点相对稳定性都还不错,没有较大变化,但是到第13点出现了连续四点下降,表示在这段时间内,品质中心有少许偏移,但从整体上分析,有上有下,这时只要在以后注意到这个趋势,必要时要采取措施预防,使后面的点往上调,但到了19和20点发现调动过多,又必须往回调,其它的都比较平稳,所以从Xbar图上看,品质基本都在控制范围内变动。
③从R图上看到,前面连续5点互着一升一降,组距变化又有加大的迹象,到第6点就达到了1点多,因此第6组时变异比较大,这就是后面可能出问题的前兆,必须使其降低,采取措施后,第7点有了很大的回降,但立即在后面的几点又开始上升。再从后面的情况来看,发现其组距差异较大,品质的不稳定性大,但都没有很接近控制限,所以在后面的点中要严密监控,如再出现问题,则可以说明此机器存在周期性变化或机器较为老化,不稳定性很高,如若不加强监控,品质可能很快就会出问题。
因此总结下来说明,此段时间品质算一般,虽然也处于统计控制状态,但其问题点主要是过程差异性较大,为系统问题,对于过程能力要求很高的企业,需要采用系统方法来共同解决,因此改善相对不是很容易。
(2)再从XbarS图来进一步分析如下;
从XbarS图上来分析,对照过程处于统计控制状态的判定准则和控制图异常判定准则。前几个点,除在第7点出现了很小的差异,前面的第1、3、4、5点就出现了较大的差异,因此可以说前面几点就是存在隐患的,在后续的点中都还有体现。
(3)目前很多公司都开始导入了6δ管理,指数加权移动平均控制图(EWMA)非常适合用于6δ管理这种高质量的过程控制,它在监测过程均值对于目标值的漂移方面较为敏感,在我们用常规控制图判断过程是否处于受控状态时,可以进一步用指数加权移动平均控制图(EWMA)来监测过程位置的变化。相比Xbar-R图来说,指数加权移动平均控制图(EWMA)对过程中心的小偏移十分敏感。
(4)我们运用直方图和正态检验图来检测所监控数据是否具有服从正态分布。从直方图上分析,可以看出,虽然存在少许偏离,但是还是可以接受的,目前我们所监控的数据是服从正态分布的。
(5)从抛料的P图上可以看到,总抛料率还是控制在1.5×10-3以下。是处于统计控制状态和满足质量要求的,但是我们还发现点的波动较大,出现在控制限附近的点较多,当要求的工艺水平很高时需要改进,采取措施消除降低质量的异常原因,可能是由于由新工人上岗,技术熟练程度不足等多方面原因,找到原因进行改进使过程处于稳定状态后再重新收集数据,计算中心线和控制界限绘制分析用控制图,直至过程满足规定要求,方可将分析用控制图转化为控制用控制图。
(6)通过对抛料的U图分析可以看出,抛料过程是处于受控状态的,此时过程的平均单位缺陷数为0.000835 ,满足质量要求,可以将分析用控制图转为控制用控制图,并监控过程,在后面的生产中要及时修正控制图。
抛料率、误差参数的统计过程控制可以参考停机率工艺参数控制及方法。
同时,在进行分析时还需涉及工序过程能力指数的分析,限于篇幅,将另撰文论述。

4、VB与MATLAB接口编程的实现
4.1  本次设计的接口编程步骤
(1)以函数的形式编写停机率、抛料、误差的各个功能模块的M文件;
(2)MATALB工作环境中执行com-tool,进入MATLAB COM Builder界面;
(3)新建一个工程,编辑工程名与类名;
(4)载入M文件,编译即生成M文件所对应的停机率、抛料、误差的COM组件;
(5)在VB编程环境中载入COM组件,并调用接口函数即可实现功能。
4.2  VB主程序设计步骤
(1)载入COM组件。在VB集成开发环境中选择工程-引用菜单项。在弹出对话框中选择tingjilv 1.0 Type Library组件;
(2)在工程部件中加入一个弹出对话框的部件,当程序运行时将弹出“您将要查看的为停机率的控制图”的对话框,使我们在查看之前得知要查看的是什么;    
(3)在工具-菜单编辑器中编辑菜单并设置快捷键和加入相应的代码;
(4)在对应的属性栏中设置各控件的属性,如控件名,类型;
(5)在通用声明栏中声明组件:Private Matlab As tingjilv.ting-jilvclass;
(6)在Form_Load()模块中为Matlab指定tingjilv组件:Set Matlab =New tingjilv.tingjilvclass;
(7)在Command1_Click()模块中调用接口函数:Call Matlab.xbar使在MATLAB里绘制的xbar图象在VB界面中显示,其它的图形调用与之类似,在此不一一列出;
(8)用Shell语句直接调出Windows 的记事本,在Comman-d11_Click()模块中加入打开文本文件的代码:Shell“NotePad.EXE e:\kekao-xing.txt” 路径为文本文件所在位置;
(9)用定长的String变量获取文本内容。由于定长String变量支持的下界为65400,所以在打开超过32K字节的文件时超出部分的字节将无法获取。在Command12_Click()模块中Dim m As String*65400声明定长String变量,Open“e:\kekaoxing.txt”For Binary As#1,用二进制打开文件,Get #1,m,用Get语句从文件中获取字节;
(10)用Text1.Text ="" 语句清空文本框,Unload Form1语句退出;
(11)为了达到能与Minitab所绘制的控制图做对比,用Command15_ Click()模块读入图象:Image1.Pic-ture=LoadPicture(“E:\minitab 图\停机率Xbar控制图.jpg”);
(12)编译,执行,点击:文件生成停机率.exe,即可生成一个独立的软件。

5、软件实现SMT贴片工艺SPC分析的模型和界面
5.1  MATLAB软件模块和GUI界面的制作[7][8]
通过对所采集的停机率和误差的数据的分析,它们都属于计量型数据,在MATLAB中设计的软件模块包括:Xbar图,R图,ewma图,Schart图, BOX图,直方图,正态分布密度曲线,点图,计算工序能力指数,工序能力图,Cp插值拟合判定。从抛料的数据来看,它属于计量型数据,故分别设计识别错误,拾取错误,总抛料数的P图和U图,直方图,过程能力图及计算过程能力指数,Cp插值拟合判定的模块。
MATLAB的主界面中点击FileNew-GUI,设置好保存的地址后点击OK即创建了一个新的GUI界面。在界面中添加不同的控件并在Callback中添加相应的程序段。在本次设计中,作者根据数据的特征并结合实际情况,把左边大部分区域设计为的是图形显示区域,右边分别是数据来源区,控制图绘制区,过程能力分析区三大部分。在图形显示区下方加入了过程能力分析的对照表,当用插值拟合判定图得到当前的过程能力值时,就方便地得知过程能力的状态。设计结果如图10-12所示:

6 结论
本文基于统计过程控制的基础理论和常用控制图原理及典型应用,提出和建立了SMT贴片工艺统计过程控制的方案和模型,并对MATLAB和VB的编程实现与界面设计作了深入的研究。最后基于MATLAB和VB知识,软件实现了SMT贴片工艺统计过程控制模型。本文设计成果如下:
(1)提出和建立了SMT贴片工艺SPC分析的控制方案;
(2)在MATLAB的平台下,设计和实现了各个控制图的模块并生成GUI界面,能够完成的主要功能包括利用各种质量控制与分析工具(控制图)对采集到的数据进行统计计算和分析判断,生成相应的控制图;
(3)基于MATLAB下的COM组件与VB开发平台,开发了SMT贴片工艺统计过程控制系统软件,实现了VB与MATLAB接口混合编程,设计和完成了一个可独立运行的针对SMT贴片工艺的软件。
SMT贴片工艺SPC控制模型实现了用统计的方法来对生产过程进行控制,这是一种事前控制的方法,相比一般的事后控制,可以更有效的减少损失,降低故障率,更为企业降低了成本。因此,对SMT生产工艺建立统计过程控制体系,对提高SMT产品的质量具有较好的促进意义。

参考资料:

1]吕淑珍.统计过程控制在SMT中的应用[J].北京:电子工艺技术,1998:22-105.
[2]周德俭,吴兆华,李春泉.SMT组装系统[M].北京:国防工业出版社,2002:165-176.
[3]周德俭,吴兆华.表面组装工艺技术[M].北京:国防工业出版社,2002:83-134.
[4]王淑君.常规控制图与累计和控制图[M].北京:国防工业出版社,1989:6-146.
[5]彭晓楠.SMT产品组装质量的SPC控制技术研究[D]. 桂林电子科技大学,2004
[6]官生平.SPC统计制程管制[M].厦门:厦门大学出版社,2004:33-64.
[7]李涛,贺勇军,刘志俭.MATLAB工具箱应用指南[M].北京:电子工业出版社,2000:41-95.
[8]苏金明,黄国明,刘波.MATLAB与外部程序接口[M].北京:电子工业出版社,2004:72-76