学习型aoi的必要性

学习型aoi的必要性是一个值得探讨的问题,之前有朋友提到aoi设备具有自动学习的功能,所以对于误判降低有比较好的效果,也就是我们常说的aoi统计建模的分析方法:将误判,误报的数据进行修正以达到降低误报的效果,需要做的只是人工确认的工序。那么,学习型aoi的必要性真的有价值吗?又有多少必要性呢?这是小胡这一章要回答的问题。

  对于平常我们所常见的图像对比技术升级版的统计建模的人性化软件设计理念,在实际生产中大批量生产的情况下是没有问题的,而且综合效果也不错,所以在之前的几年时间里,aoi设备得到普及型发展,但是不断追求进度的驱动力,驱使着我们在pcba焊点检测的路上走的更远。能不能不用学习或将误报降低到接近为零?这是对aoi检测技术提出的最高要求,因为目前光学检测技术对于元件变化人性化的自动修正功能还有待改进,举例:一个员工新入职,在告诉他标准后即正常生产。这样的生产效率是每个smt管理者梦寐以求的,相比于aoi设备也是这样,如果在pcb编程过程中已经直接给出标准就不用后续的不断误报,不断修正的过程,当然这是一个理想化的状态。
  与学习型aoi对立的就是分析型aoi就是小胡经常提到的特征矢量分析型aoi的简称,因为矢量分析型aoi人性化的加入了软件自动修正的功能,所以在后续的定位点偏差,FPC变形等问题上,能够根据需要检测的产品特征,自动修正我们所能遇到的在图像对比技术中常见的焊点误报率高的问题,这一点关于《矢量成像–高精度定位技術》章节有详细描述,这里就不重复说明,值得一提的就是矢量分析技术充分运用了不同检测部品有者不同的特征,而特征即轮廓本身所占的面积是像素的无数倍,其中像素是固定的单调的,但是特征本身是比较丰富的,同时矢量分析坐标式数字化的数据相对于图像对比图片类数字数据,分析要简单的多,坐标式数据在分析过程中也比图片数据严谨的多,这就注定了:新生的矢量分析技术带有先天的优势,从数据分析的根源上就是具有优良血统的,如果图像对比要完善对于PFC软板和插件检测低误报率的要求,必然从软件分析根本入手,这就意味着软件程序的底层源程序的改变。到目前为止小胡还没有发现有一家专业开发光学检测技术图像对比方式的公司,会重新编写自己的程序,以满足在aoi检测技术发展过程中生产对于检测技术的要求。
矢量图
矢量图
  综上所诉,图像对比技术的aoi在现在及以前很多年的发展中发挥了不可估量的作用,但是在aoi光学检测技术日益发展的今天,当生产需要对于aoi设备前段学习调试过程提出质疑的时候,学习型aoi的必要性还有多少成长的空间?我们的aoi检测技术是在图像对比的基础上完善,还是推翻老的检测技术对新技术有一个更加全新的认识?

波峰焊检测设备AOI

波峰焊检测设备AOI是公司运用矢量分析技术开发的行业新型AOI检测设备主要运用在DIP插件元件焊接点品质检测,是行业唯一一款专业检测波峰焊焊点品质的AOI检测设备,有效解决了行业传统的AOI设备检测误报率高的问题,详细特点如下:

AOI自动光学检测仪
AOI自动光学检测仪

1.万能mark点,智能定位
万能mark点是指波峰焊检测设备AOI可以任意指定pcb上的特征点为检测定位的mark点达到自动智能定位的效果。
2.300万像素工业相机性价比最优之选
对于贴片元件01005英制检测不良已经能够很好的满足要求,相对于DIP比较简单的插件元件既能很好完成检测效果,又能将检测文件大小降到最低,起到检测速度和检测品质效果双向完美的最佳组合。
3.独立的DIP插件板面板底检测功能
DIP插件板面和板底相对于传统的AOI检测设备来说差别很大,不同于SMT贴装的双面PCB板面和板底几乎没有什么分别。波峰焊检测设备AOI充分运用矢量分析技术精确定位元件位置达到低误报率的AOI行业首创波峰焊检测设备AOI。

AOI设备检测图像的采集和转化

aoi设备检测图像的采集和转化

PCB图像的采集是AOI设备进行检测的关键步骤之一,采集的图像信息将会用在以后的图像处理模块中。

图像的采集设备

图像采集设备,完成的任务是将光信号转化成可以记录的电信号,能完成这类光电转换功能的有CCD(Charge Coupled Device,电荷耦合器件)类器件,CMOS(Complementary Metal-Oxide-Semiconductor,互补金属氧化物半导体)类设备和PSD(Position Sensitive Detector,半导体位置敏感检出器)设备等。我们设备选择CCD作为图像采集设备。

CCD类器件相对于CMOS类器件,具有低噪声和高灵敏度的特点。CCD分为面阵(Area Arrays)型CCD和线阵(Linear Arrays)型CCD,我们采用的是面阵型的。面阵型CCD图像传感器由感光区、信号存储区和输出转移部分组成,感光区能够感受对象物体的光源,并转化成电荷,然后通过移位寄存器输出电信号。因为CCD是面阵型的,所以需要通过水平和垂直两个移位寄存器输出电信号。

输出的电信号就是CCD采集的图像信号。

图像系统及灰度图

普通的图像都是由各种的点构成的,这些点被称为像素(pix),这些点的集合就形成了一整幅图像。对于彩色的图像有RGB、CMY、YUV、YcbCr几个系统。RGB是最常用的彩色系统,计算机系统通常使用RGB系统,是使用红色(RED)、绿色(GREEN)和蓝色(BLUE)三原色彩叠加得到各种颜色,这三种颜色被分为256级(当然还可以分成更多的级别,如512,1024等),经组合可得1600万种颜色。而CMY为减色系统,分别为青色(Cyan)、品红(Magenta)、黄色(Yellow)三种颜色,CMY系统一般用于印刷工业。这两个系统的其对应关系如图所示。

RGB、CMY关系图
RGB、CMY关系图

从上面的关系图中,可以看到白色为(255,255,255),黑色为(0,0,0),这样从白色到黑色的连线上的点是R=G=B,这些点只有亮度信息,可以成为灰度信号。我们把只含亮度信号,没有色彩信号的图像,成为灰度图,就是我们平时看到黑白照片。

 

AOI设备中使用黑白CCD进行图像采集,得到的就是灰度图。这是因为对PCB上的瑕疵只需黑白信号就能表示,而且黑白CCD的解析度也远较彩色CCD高,同样面积的CCD靶面上,黑白图像的解析度是彩色图像的三倍以上。这样,我们以后提到的任何图像信号都是灰度的黑白图像。

从上述的描述可以得知,对于一个灰度点,可以有三个元素(x,y,D)来表示,其中x和y为该点的平面坐标,D为该点的灰度值,在0到255之间.这样,一幅数字图像是一个二维的阵列,阵列元素值被称为灰度值(亮度值)。对于阵列中的任意一个像素的可以用如下公式表示:

f (x  y)=D(x  y)

x,y表示点的坐标,D表示这一点的灰度值。我们采集的图像通常用这种方式来存储的。

图像的采集

图像的计算方式是以像素(pix)来计算的,pix的换算关系为1mm=48pixes。我们设备采用的CCD摄像头,采集到的一帧(frame)图像的像素为4008pix×2672pix。

这样编程时,对一帧图像的像素可以有这样的定义:
#define XAXIS    4008
#define XAXIS    2672

在设备中工作台上,要完成一次所有PCB板的图像采集,共要采集6帧图像,把这6帧图像检测完成后,即完成一次的PCB的检测流程。

再来看一下,我们从摄像头里,采集到的图像信号是怎样的格式。从摄像头里,读取到的图像结构为C锄eraData幸bu脓,这是一个线性存储的图像单元。我们在一帧图像中座标(x,y)处的像素点的灰度值D,可以用公式来得到:

D=buffer[x+y*XAXIS]

了解图像像素的存储结构后,我们再看一下与图像采集相关的结构。
struct Capture{
int i;//X方向的位移
int j;//Y方向的位移
int rowC;//一幀图像的总的行数
int colC;//一幀图像的总的列数
int bufferNo;//存储图像的缓存编号
CameraData*buffer;//存储图像的结构
};

在CCD移动和拍摄时,首先要检查CCD的帧存储器里是否有图像信号可以读取,用布尔值fcancapture来检查是否有扫描到的图像信号,如果有则把图像的基本信息放入Capture的结构之中。
if (fcancapture){//检查是否有图像帧
num=getAvailFrame();//取可用的像素帧数
if (mum!=0){
Capture cp;//定义Capture类结构cp,并开始给cp的结构赋值
cp.buffer=buff[num-1];
cp.bufferNo=num;
cp.i=si;
cp.j=sj;
cp.colC=columnCount;
cp.rowC=rowCount;
cap[num]=cp;
int pxdst=pxd_goSnap(1,num);//取移动状态
Sleep(170);//延时等待CCD曝光
fcanmoveall=true;//恢复移动
fcancapture=false;//停止捕捉下一幀

采集后得到一帧完整的PCB图像(4008pix×2672pix)

aoi设备检测图像的采集和转化小结

AOI设备的图像采集过程,可以分为硬件的马达驱动开发,和图像读取的两个部分;这一章是上一个AOI设备马达控制的后续展开内容。

图像读取就是从CCD中采集出图像的灰度信号值,并最终被存储在CameraData*buffer的缓冲区内。对于一次采集,我们在工作台上要采集6帧图像,为此系统建立一个结构Capture来控制图像信号的读取,该结构会控制帧图像在工作台上的位置,以及行列信号值。

我们将马达的驱动和信号的读取,这两部分肯机地结合起来,就完成了AOI设备的图像采集模块的设计,并实现了该模块的功能。

更多内容请浏览 http://www.aoiii.com/aoi-principle/aoi-shebei-mada-kongzhi.html  AOI设备马达的控制

AOI设备马达的控制

AOI设备的图像采集过程,可以分为硬件的马达驱动丌发,和图像读取的两个部分.因为设备的X向、X向采用了不同的马达驱动方式,X向采用的滚珠丝杠导轨结构的马达,用RS232端口直接驱动;Y向是普通的步进马达,用ADLink8134接口卡进行驱动。这些驱动都有API的函数提供,完成对马达的控制。

对AOI设备的马达控制,也是aoi设备研究中的关键步骤。

工作台的控制马达

从生产效率的角度来讲,一个工作台会放置好几块的PCB板(拼板)或电脑主板等大板。在进行图像采集时,不可能一次采集齐全部要测的PCB板的图像,所以需要移动几次工作台或CCD摄像头,几次才能完成一次的检测过程。

我们这个AOI设备在采集图像中,共有两个马达束驱动,一个是用来移动CCD摄像头的马达,称为x向马达;另一个工作台上,用来移动PCB板的驱动马达,称为Y向马达。

我们设备中使川的这两个马达是不同类型的马达。

x向的ccD移动的驱动马达使用滚珠丝杠导轨的结构,这种马达可以无间隙的轻快运动,很容易获得很高的行走精度。x向马达的驱动,用电脑的RS232端口进行驱动控制,由于滚珠丝杠的移动的螺距可以选择,这样对步进的距离可以直接用单位距离来表示。

工作台上的马达是步进马达,用于控制工作台往Y向的移动。设备对步进马达的驱动,使用电脑内置的ADLink8134的设备卡,马达上的Motion Card联接并控制。由于步进马达是使用输出脉冲进行进动驱动的,所以驱动时需要将移动数折算成脉冲数进行驱动。

马达的驱动程序

我们可以将PCB一次检测的过程,以及马达移动过程,如图一样。图中①、②、 ③、④等为马达停下进行图像采集的点。

CCD位置移动示意图
CCD位置移动示意图

因为一共有X、Y方向两个不同的马达进行驱动,且马达的驱动方法完全不同,故分开讨论。

X方向的马达驱动

X方向的马达和CCD摄像头是一体化的在一起的,其驱动软件库,由厂商一起提供,共为两个封装的库文件,提供了一系列函数和参数。其中的一些主要的马达参数代码定义如下:

HANDLE handle;

char mov[OCOUNT];

char res[ICOUNT];

其中,handle为设备句柄,mov[ ]为从电脑到端口的传输的字符串,res[ ]为从端口到电脑传输的字符串。

X方向的马达使用RS232来驱动,则需要初始化RS232端口,这在构造函数中完成。RS232端口的初始化程序如下代码:

CamControl(){

memset(protocol,0,sizeof(protocol));

memset(prot,0,sizeof(prot));

memset(defaultAxisPattern,0,sizeof(defaultAxisPattern));

memset(defaultAxisNo,0,sizeof(defaultAxisNo));

strcpy(protocol,”9600,n,8,1″);

strcpy(prot,”COM1:”);

strcpy(defaultAxisPattern,”01″);

strcpy(defaultAxisNo,”0″);

defaultAxisNumber=0;

handle=NULL;

initpos=100;

}

这样,对RS232的最基本的参数都已经完成了初始化配置。同时,在以后的每一次对RS232端口进行操作时都要事先打开端口,RS232端口的打开函数代码:

openPor(){

COMMTIMEOUTS gTimeoutsDefault={0,0,100,0,100};

//端口的输出时间的实例化,设置端口的读写速度都为100Kb。

handle=::CreateFile(port,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,NULL,NULL);

//打开端口,并设置参数为可读,写,保持开放

DCB dcb;

//dcb设备的实例化

……//其他的DCB的参数的初始化

}

马达驱动完后,RS232端口的关闭函数的代码:

closePort(){

if(handle!=NULL)

CloseHandle(handle);

handle=NULL;

}

电脑对CCD以及马达的驱动,是通过两个字符串操作指令来完成:strcpy()和strcat()。我们通过向端口输出字符串,来达到控制CCD和马达的各项动作。

比如马达和CCD驱动的端口初始化函数代码:

initComm(){

strcpy(mov,”?99ISV”);

strcat(mov,”@@\r\n”);

}

其中字符串”?99ISV”就是专有指令,表示初始化。其它还有一些字符串指令如:”?99PMV”表示移动,”?99TST”表示测试,”?99HOM”表示马达归位等等。而显然字符串”@@\r\n”表示指令结束。这个方法类似MODEM的AT指令,可以向RS232口传输串行的字符串来完成控制工作。

这样,对于马达的驱动位置控制的函数,如代码

moveCameraPoint(const*axisPattern,int point){

……

strcpy(mov,”!99PMV”);//位移指令

attachAxis(mov,axisPattem);//选择坐标系

strcat(mov,”00000800″);//设定为使用普通的速度和电压

int space=4-strlen(buffer);//

for(int i=0;i<space;i++)

strcat(mov,”0″);

strcat(mov,buffer);//移到位置

strcat(mov,”@@\r\n”);

}

这样,移到图位置①,即回到原点的函数表达为:

moveCameraPoint(NULL,1);

移到图位置④,即X方向向前移动一个位置的函数表达为:

moveCameraPoint(NULL,si+1);

余者,以此类推。

Y方向的马达驱动

Y方向的马达在工作台上面,是一般的步进马达(现在大部分aoi设备供应商改用伺服马达)。同样的,也有厂商提供的库函数,可以提供开发。

在使用前,先要初始化,在构造函数中载入配置文件8134.cfg,加载步进马达配置文件的函数代码:

MotionControl(){

char SysDir[255]

::GetSystemDirectory(SysDir,1024);

strcat(SysDir,”\\8134.cfg”);

memset(configName,0,sizeof(configName));

strcat(configName,SysDir);

}

使用的马达的位移函数定义为:

moveConsant(int axisNo,double strVel,double maxVel,double tAcc){

_8134_tv_move(axisNo,strVel,maxVel,tAcc)

}

其中,_8134_tv_move()为厂商提供的API函数。在实际的工作台移动时,这样使用函数为:

moveConsant(0,speed,0.1);

其中,从位置从①到②的方向时,speed=-150000;而从位置④到⑤的方向时,speed=150000。

马达驱动对采集的影响

马达的驱动似乎仅仅是机械方面的问题,其实在高速运转的流水线上,马达的使用对图像以后的采集和处理的影响很大,马达移动带来的惯性会影响到采集的精度。我们要让马达的移动速度和采集图像的清晰度之间达到一种最佳的平衡。

我们的设备在工业化实测中发现,x方向的滚珠丝杠导轨结构的马达的性能要好于Y方向的步进马达。这主要是X向马达的定位精度高,停止时惯性较小,这样在图像采集时,采集的图像的边缘清晰,容易判别。Y向马达在研制初期,出现过马达未完全停止,造成采集的图像边缘不明晰,而无法检测的情况。我们后来通过改用阻尼系数更高的传动皮带材料,来改善了这一故障。但如果全用高精度马达,则会增加设备的制造成本。

更多内容请浏览 http://www.aoiii.com/aoi-principle/aoi-mo-kuai-she-ji.html AOI设备的模块设计

 

AOI设备的模块设计

为了能够将AOI设备的功能描述功能加以实现,我们需要将AOI设备进行分解,并以各独立模块进行设计和实现。在进行设计之前,我们先看一下设备的工作流程。

AOI设备的工作流程

AOI的检测的流程,可以分成建模和检测两个过程,图将这两个流程全部串接在一起,是一个AOI设备检测的完整的流程图。

AOI检查流程图
AOI检查流程图

上述流程包含了AOI检测可能有的所有的工作,为了能够完成这些工作,我们可以把检测分成不同模块进行设计和编程。有了这些模块的划分,就可以有条理的,以模块为单位的,独立地完成整个AOI设备的功能要求。

检测的模块分析

从AOI检测的流程中,我们可以看到检测过程有多种的检测任务组成,为了设计完成AOI设备的整体功能,可以分成多个模块加以编程实现。

AOI设备的模块划分:检测开始->图像采集模块->图像配准模块->特征提取和瑕疵查找模块->检查结束

图像采集模块

图像采集模块用于CCD摄像头图像的获取,即将PCB板放置在工作台上,通过工作台下的马达,和摄像头上的马达的位置调节,将待测PCB板移动到合适位置,进行CCD摄像,并采集摄取的图像信息。

在此模块,我们需要完成的工作有两个:

1.针对工作台下的马达,和CCD摄像头上的马达移动的驱动程序设计,最终完成X和Y向的平移。

2.在合适的位置,进行摄像,系统读取CCD摄入的图像信息。

图像配准模块

图像配准是进行检测的一个很关键的步骤,它的作用是建立起PCB模板图像和待测板图像之间的位置联系。

由于模板和待测的放置是在不同的时间放置,也可能有不同的工作人员放置,其放置的位置的肯定有位移,配准就是要找出这些位移值。将待测图像的数据经过位移纠正后,和模板的进行比对找瑕疵。

完成配准需要的工作有:

1.寻找图像的边缘点,并从中找出边缘线。

2.在边缘线里找出配准用的锚线(Anchor Line)。

3.利用锚线,采用配准算法,找出待测PCB板图像和模板图像之间位移值。

4.其中第1、2步在建模的过程中实现,第3步在待测板进行检测的过程中实现。

特征提取和瑕疵查找模块

特征提取和瑕疵查找,是设备最终进行检测的步骤。该模块包括对PCB图像中要进行检测的部分进行特征提取,而后通过特征比对,在待测板中查找存在的瑕疵。因为我们要检测的对象是PAD和BGA二种,所以必须对这二种对象分别进行处理。

针对PAD的处理步骤为:

1.取边缘点,进行矩形边缘检测,是矩形的判断为PAD。

2.取PAD的边界点为特征值,储存在文本文件内。

3.在待测PCB板上取特征值,进行配准处理。

4.在PCB中,使用瑕疵检测算法找出瑕疵,并标记。

针对BGA的处理步骤为:

1.取边缘点,进行圆形边缘检测,是圆形的判断为BGA。

2.取PAD的圆心和半径值为特征值,储存在文本文件内。

3.在待测PCB板上取特征值,进行配准处理。

4.在PCB中,使用瑕疵检测算法找出瑕疵,并标记。

在其中第l、2步在建模的过程中实现,第3、4步在待测板进行检测的过程中实现。

模块分析总结

本系统开发的各模块和检测过程的关系,如表表示。

各模块的总结

采集模块 配准模块 PAD处理模块 BGA处理模块
建模

过程

1.马达驱动 1.取边缘线 1.判断PAD. 1.判断BGA
2.CCD图像读取 2.取锚线 2.取PAD特征

函数

2.取BGA特征

函数

检测

过程

1.马达驱动 3.求模板和待测

图像之间位移

3.PAD配准 3.BGA配准
2.CCD图像读取 4.瑕疵检测 4.瑕疵检测

下一步的工作,就是通过编程完成各部分模块的功能。

程序设计的一些原则

实现AOI系统各部分的功能,需要通过编程加以实现,我们采用的开发平台为VC++6.0

而在实际的设计过程中,为了满足设计的指标,我们的程序设计必须遵守下面一些设计的原则:

1.无外部数据库,因为在检测过程中调用外部数据库将会大大地降低检测的速度,也会极大地消耗系统资源。

2.对于要有存储的各类特征值,系统定义了不同的结构加以存储。如印制板上的边缘线定义了Line的结构;焊盘PAD建模时定义了一个RecPad的结构;而对于BGA也自定义了一个BGA的结构来存储。

3.采用简单的外部文件,存储建模时生成的一些基本信息,如边缘线、锚线、PAD、BGA等。我们生成的文件为TXT格式的文件,格式简单而易于操作。

4.采用比对的方式进行AOI的检测,即将合格的同类样品和待测设备进行比较,并识别出待测样品是否有瑕疵。

5.区分处理图像的运算复杂度。将所有耗时较长的图像处理过程集中到建模的过程中,而检测时则尽量使用较为简单的图像处理算法。

6.对模板图像和待测图像之间的配准算法有严格的要求,要求简单实用,且误差率低。

更多内容请浏览:http://www.aoiii.com/aoi-principle/aoi-gong-neng-she-ji.html aoi设备的功能设计和设计指标

AOI设备的功能设计及设计指标

AOI是基于视觉,也是基于自动控制技术和计算机图像分析技术的光学检测系统,这样可以使用软件编程方式完成AOI的功能设计。

AOI设备的功能和设备的使用环境,设备检测的对象密切相关。在设计AOI设备的功能的时候,必须考虑这些因素。

AOI设备的应用环境

目前,PCB生产厂家生产完成的pcb板,早已经从传统的低频率的模拟电路印制扳,过渡到高频率的数字电路印制板,而其中的SMT即表面贴装技术(Surface Mounting Technology)在现在的数字电路印制板生产中的使用是最为广泛的。

在SMT生产全过程中,AOI设备对PCB板的检测,可以在多个生产环节里使用。从图中,我们看一下AOI在SMT生产各环节的作用,不同的检测点要选择不同的AOI设备,其目的是要追求最大的生产性价比。

aoi工作环境
aoi工作环境

 

 

从上图中可以看到,在SMT生产过程中,至少可以有四个环节使用到AOI设备用于检测,它们是:PCB的裸板检测,锡膏印刷后的检测,元器件放置后的检测,回流焊接后的检测。在四种检测的功能分别是:

1.PCB裸板检测:用于检测PCB生产过程中,由于基板制作、覆铜、蚀刻等产生的缺陷和瑕疵,其中最主要的瑕疵来自蚀刻,主要是检查其多余的和缺少的部分。AOI在这里一般可以发现大多数问题,存在少量漏检;主要影响其可靠性的是误检问题,PCB加工过程中灰尘、沾污和一部分材料反射差会造成误检。解决的办法是,在AOI检测后,进行人工验证。

2.锡膏印刷后的检测:锡膏印刷是SMT初始环节,也是大部分缺陷位置所在。缺陷主要表现在焊盘上焊膏不足或过多;大焊盘中间部分焊膏刮擦,小焊盘边缘部分焊膏拉尖;印刷偏移,桥连,及沾污等。

3.元器件放置后的检测:元器件贴装环节对设备精度要求很高,常出现的缺陷有漏贴、错贴、偏移歪斜、极性相反等。AOI检测可以检查出上述缺陷,同时还可以在此检查连接密间距和BGA元件上的焊盘焊膏。由于这个环节是可预防缺陷的最后的一个环节了,这是可改正的最后的一个检测环节。

4.回流焊接后的检测:在回流焊后,因为缺陷已经被固定,所以这里的检测是用于发现问题。这里AOI设备可以检测元件的缺失、偏移和歪斜情况,以及所有极性方面的缺陷,还一定要对焊点的正确性以及焊膏不足、焊接短路和硗脚等缺陷进项检测。这是所有生产检测的最后一个环节,可以发现所有的装配错误,提供生产的高度安全性。上面列举了AOI设备可能的四种应用场合,在这些的场合中AOI设备的设计和功能都是不同的。比如后2个环节的AOI设备的处理是3D的采集和图形处理系统;锡膏印刷后的检测,可能是3D,也可以是2D的;而PCB裸板的检测必定是2D的采集和图形处理。

本文涉及的AOI设备是用于PCB裸板的检测,即上图中的第一个环节中使用的AOI设备。它的作用是针对PCB生产过程中,由于基板制作、覆铜和蚀刻等环节产生的缺陷和瑕疵。其实,该AOI设备一般不会用在SMT生产厂家,而是用在PCB板生产厂家,它是PCB厂家用于保证质量的最后保证。我们的设备正是针对PCB板生产厂家的。

AOI设备的检测对象

已经了解到本文涉及的AOI设备是用于PCB生产厂家出厂莳的最后检测,在这样一个环节,AOI设备需要检测三类瑕疵,如下图所示。根据Moganti归类法,图中的三种瑕疵相当于Moganti归类法的第二类瑕疵:针孔(Pin Hole)和第五类瑕疵:缺口(Mousebite).

pcb瑕疵点示意图
pcb瑕疵点示意图

把这二类瑕疵扩展为三种瑕疵,是因为在以后的图像识别和处理中,它们可能会涉及小同的算法和处理逻辑。这样,我们就详细地分析图中出现瑕疵的情况。

l.左图是一个导电的触点,它可以是一个过孔(Routing Via)或是球栅阵列(BGA,Ball Girl Array)的一个点。如是过孔Via的瑕疵,那可能是孔化上锡的工艺问题,在两层板之间电信号传导可能会不通;如是球栅阵列BGA的瑕疵,那因为BGA是通过机械电接触导通,显然就会无法电接触了。我们将此类瑕疵归于BGA类的针孔(Pin Hole)瑕疵。

2.中间图是可以插入标准插槽的标准连接部件~金手指(Connecting Finger)上的一个电触片(Pin),这类瑕疵会造成插入插槽后的接触不良。因为现在大多数的金手指的Pin脚已经不采用黄金为材料,而专用锡材料。如有疵点无疑会造成Pin脚容易磨损,不利于经常插拔。我们将此类瑕疵归于PAD类的缺口(Nick)瑕疵。

3.右图是一个普通的SMT焊盘(PAD),一般用于焊接表面贴装元器件SMD(Surface Mounting Device)如片状电阻、电容等,如有疵点,则在焊接时会造成如无法上锡,或焊接后的假焊的问题。我们将此类瑕疵归于PAD类的针孔(Pin Hole)瑕疵。

由此,我们的检测主要是在两类BPC中的结构上进行,即PAD和BGA。而检测的瑕疵也就是出现在PAD和BGA上的针孔(Pin Hole)和缺口(Nick)瑕疵。

AOI设备的设计指标

AOI设备的要完成的设计指标比较简单,主要有三个:

1.缺陷检出率:≥95%

2.误报率:≤10%

3.一帧图像(4008pix*2672pix)的检测速度:≤1秒

简单概括就是:高速、高检出率和低误报率。

更多内容请浏览:http://www.aoiii.com/aoi-principle/pcb-jian-ce-ji-shu.html pcb主要检测技术介绍

PCB主要检测技术介绍

为了保证PCB板的生产质量,与印制板生产厂家和使用PCB板的厂家采用了多种的检测方法,每种检测方法都会针对不同的PCB板的瑕疵。

PCB检测大致总体上可分为电气测试法(Electrical Test)和视觉测试法(Vision Inspection)两大类。电气测试通常采用惠斯电桥测量各测试点间的阻抗特性的方法,来检测所有通导性(即开路和短路)。视觉测试通过视觉检查电子元器件的特征以及印刷线路的特征找出缺陷。电气测试在寻找短路或断路瑕疵时比较准确,视觉测试可以更容易侦测到导体间不正确空隙的问题,并且视觉检测一般在生产过程的早期阶段进行,尽量找出缺陷并进行返修,以保证最高的产品合格率。

当前常用检测方法如下:

1.人工目测:

使用放大镜或校准的显微镜,利用操作人员视觉检查来确定电路板合不合格,并确定什么时候需进行校正操作,它是最传统、最主要的检测方法。它的主要优点是低的预先成本和没有测试夹具,而它的主要缺点是人的主观误差、长期成本较高、不连续的缺陷发觉、数据收集困难等。目前由于PCB的产量增加,PCB上导线间距与元件体积的缩小,这个方法变得越来越不可行。

2.在线测试(ICT,In Ciruit Testing)

ICT通过对电性能的检测找出制造缺陷以及测试模拟、数字和混合信号的元件,以保证它们符合规格,己有针床式测试仪(Bed of Nails Tester)和飞针测试仪(Flying Probe Tester)等几种测试方法。ICT的主要优点是每个板的测试成本低、数字与功能测试能力强、快速和彻底的短路与开路测试、编程固件、缺陷覆盖率高和易于编程等。主要缺点是,需要测试夹具、编程与调试时间、制作夹具的成本较高,使用难度大等问题。

3.功能测试(Functional Testing)

功能系统测试是在生产线的中间阶段和末端利用专门的测试设备,对电路板的功能模块进行全面的测试,用以确认电路板的好坏。功能测试可以说是最早的自动测试原理,它基于特定板或特定单元,可用各种设备来完成。有最终产品测试(Final Product Test)、最新实体模型(Hot Mock-up)和“堆砌式’’测试(‘Rack and Stack’ Test)等类型。功能测试通常不提供用于过程改进的脚级和元件级诊断等深层数据,而且需要专门设备及专门设计的测试流程,编写功能测试程序复杂,因此不适用于大多数电路板生产线。

AOI自动光学检测仪
AOI自动光学检测仪

4.自动光学检测

也称为自动视觉检测,是基于光学原理,综合采用图像分析、计算机和自动控制等多种技术,对生产中遇到的缺陷进行检测和处理,是较新的确认制造缺陷的方法。AOI通常在回流前后、电气测试之前使用,提高电气处理或功能测试阶段的合格率,此时纠正缺陷的成本远远低于最终测试之后进行的成本,常达到十几倍。

5.自动X光检查(AXL,Automatic X-ray Inspection)

AXI利用不同物质对X光的吸收率的不同,透视需要检测的部位,发现缺陷。主要用于检测超细间距和超高密度电路板以及装配工艺过程中产生的桥接、丢片、对准不良等缺陷,还可利用其层析成像技术检测IC芯片内部缺陷。它是现时测试球栅阵列(BGA,Ball Grid Array)焊接质量和被遮挡的锡球的唯一方法。在最新的用于线路板组装的AXI系统中,如Feinfocus,Phoenix Xray等公司的最新产品,不仅可以进行2D的透视检测,通过样品倾斜,“侧视”的X光甚至可以给出3D的检测信息。

它的主要优点是能够检测BGA焊接质量和嵌人式元件、无夹具成本;主要缺点是速度慢、高失效率、检测返工焊点困难、高成本、和长的程序开发时间,这是较新的检测方法,还有待于进一步研究。

6.激光检测系统

它是PCB测试技术的最新发展。它利用激光束扫描印制板,收集所有测量数据,并将实际测量值与预置的合格极限值进行比较。这种技术己经在光板上得到证实,正考虑用于装配板测试,速度己足够用于批量生产线。快速输出、不要求夹具和视觉非遮盖访问是其主要优点;初始成本高、维护和使用问题多是其主要缺点。

从上面的6种目前常用的PCB检测手段,可以发现AOI自动光学检测设备和任何基于视觉的检测系统一样,只能检测用视觉可以看出的故障,对于短路和断路之类的瑕疵,只能用电气测试法来加以解决。相对人的肉眼这种原始的视觉检测手段,AOI是自动化的检测手段,其检测的效率高许多,和可靠性也稳定得多。

更多内容请浏览: http://www.aoiii.com/aoi-principle/aoi-pcb-xiaci.html AOI设备系统设计之PCB的瑕疵

AOI设备系统设计之PCB的瑕疵

缺陷板示意图
缺陷板示意图

AOI设备是专用于检查印刷电路板(PCB)瑕疵的设备,在设计AOI检测设备之前,必须了解印刷电路板上存在的主要瑕疵,以及各种针对印刷电路板的主要检测技术。基于对要检测瑕疵的特征分析,完成了AOI设备的系统设计,并解构其模块构成,提出设计指标和编程原则。

PCB上的瑕疵,是PCB板生产厂商,以及使用PCB板的厂商肯定会遇到的问题,这些瑕疵的被检出得越早,就越能保证最终产品的质量。

PCB的瑕疵分析

印刷电路板品质的好坏,主要表现在PCB板上每根线条,每个焊盘和过孔品质的好坏。根据密苏里大学的Madhav Moganti和Fikret Ercal等的论文归纳了14种PCB方面的瑕疵。同时,Moganti在论文中还给出了这14种瑕疵在具体印制板中可能出现的情况,如图列举的瑕疵。

图中显示的14种瑕疵,参考我国习惯的PCB板瑕疵的常规命名法,可以按下表的方式来表示。

编号

瑕疵名称 编号 瑕疵名称

1

Breakout 孔位偏移 8 Short 短路

2

Pin Hole 针孔 9 Wrong Size Hole 孔径不合

3

Open Circuit 开路 10 Conductors too close 孔距不足
4 Underetch 蚀刻不足 11 Spurious Copper

铜渣

5 Mousebite 缺口 12 Excessive Short 重复短路
6 Missing Conductor 电路漏印 13 Missing Hole 缺孔
7 Spur 毛刺 14 Overetch 蚀刻过量

 

同时,Moganti对产生瑕疵的方式也进行了归纳,可以分为五种情况:

1.在印制过程中热扩散的非规则性,和有缺陷的蚀刻;

2.印制板基板上有灰尘,在电解液里有气泡;

3.电解液腐蚀印制板时间设置错误;

4.机械性的图形重合不良:

5.PCB板扭曲造成的变形等。

我们分析一下这十四种的瑕疵,可以看出,常见的瑕疵除了断路、短路、电路漏印、缺孔等功能性瑕疵外、也有毛刺、缺口、针孔、孔位偏移、铜渣、孔径不合、间距不足等外观性瑕疵。

同时Moganti的分类方法也存在一定的重复性,如重复短路其实可以归入短路一类;而蚀刻不足和蚀刻过量是反映了工艺过程中的缺陷,它们产生的瑕疵有多种表现形式,如针孔、缺口,断路、部分断口是蚀刻过量的表现,而毛刺则是蚀刻不足的一种形式。研究表明开路、短路、蚀刻过量以及蚀刻不足是一些比较常见的电路板缺陷,电路板的检测也主要针对这些缺陷。

我们项目所研制的设备是用于PCB生产厂家的自动检测而使用的,所以我们接触到检测对象都以PCB裸板为主,旨在对某些常见的瑕疵进行检测和识别方法的研究。

更多内容请浏览: 矢量成像 – 高精度定位技術

矢量成像 – 高精度定位技術

特征矢量分析法,是AOI设备检测算法中的一种;在目前的在线aoi设备中,大行其道;究其原因是,高精度定位技术在其中起了关键性作用。

AOI设备矢量成像技术采用合成图像作为示教参考模型,以确保不产生错误。矢量成像不需要像素分析,它靠是定义元件形状交点矢量,矢量由方向和倾斜度确定,在矢量成像技术里一个正方形相当于四条线段,一个足球则相当于两个弧形。

由于矢量成像技术用到是几何信息,所以元件是否旋转、得到图形与参考模型大小是否一致都没有影响,而且也和产品颜色、光照和背景等变化无关。 这种方式比传统检测方法准确10倍以上,如角度测量值可达±0.02°精度范围 由于它能适应多种不同角度、大小和外观,所以光学设备设置更加简单,即使由于相机移动和光源变化导致焦点和照度改变也能保持同样精度 在基板对位方面,传统AOI系统对同一元件通常需要多个图像,而矢量成像技术一次测量就能完成, 所以不用跑几十块板来微调。

矢量成像图
矢量成像图

下面小胡举例来为您说明:右图是我们从在线aoi设备的软件中截取的一个画面,来说明我们的矢量成像技术是怎么工作的;图左边体现的是软件矢量成像得到的图像参数,现在定位的是一个元件,通过X坐标值,Y坐标值,以及角度,定位一个元件的空间位置。同时将图像矢量化,中间部分是放大的矢量成像中的图形;而右边部分是矢量数字化得到的图形,最右边的一条线没有凸显出来,是我们同过改变光源亮度,得到的一个比较具有代表性的图形,因为光线不足,矢量成像的过程中没有提取出来,而我们需要检测的焊点部分,已经清晰的展现出两个半椭圆的图形,后续的检测。我们可以改变机器的不同部分来实现我们对检测的不同要求。

更多内容请浏览: http://www.aoiii.com/aoi-principle/aoi-vector-analysis-and-image-based-comparison-of-contrast-based-aoi.html  矢量分析型AOI和图像对比型AOI的比较

矢量分析型aoi和图像对比型AOI的比较(在线aoi,离线aoi光学检测仪的不同)

一直以来,AOI设备在图像提取后数字处理过程中通常用到的软件分析技术有:模板比较、边缘检查、灰度模型、特征提取、固态建模、矢量分析、图形配对和傅里叶氏分析等;主要硬件有:摄像机、丝杆或传送带、伺服马达或步进马达和彩色光源或黑白光源。工作原理为摄像机获得一块板的照明图像并数字化,然后通过软件与已经定义为“好”的图像进行分析、比较而实现其检测功能的。然而每种软件和处理方法都存在着其本身的优势和缺陷,因此在实际应用中都不够理想和完美。其中图像比对(统计建模)和矢量分析在目前流行的AOI光学检测仪中用的比较普遍.那么有朋友会问哪一种技术的aoi设备会好一些呢?这就需要我们搞清楚这两种技术在图像数字化过程中所产生的结果是怎样的.认识他们的特色和差异,有助于创建、输入、输出编辑和应用数字图像。

统计建模过程中图像数字化产生的图叫位图,也叫点阵图,栅格图像,像素图,简单的说,就是最小单位由像素构成的图;位图就是由像素阵列的方式排列来实现其显示效果的,每个像素都有自己的颜色信息.在对位图图像进行编辑操作的时候,可操作的对象是每个像素,我们可以改变图像的色相、饱和度、明度,从而改变图像的显示效果。简单说位图是以无数的色彩点组成的图案,当你逐渐放大时你会看到一块一块的像素色块,效果会失真.点阵图像是与分辨率有关的,即在一定面积的图像上包含有固定数量的像素。因此,如果在屏幕上以较大的倍数放大显示图像,或以过低的分辨率打印,位图图像会出现锯齿边缘。在下图中,您可以清楚地看到将图像放大后的效果。

现在就以下面的照片为例,如果我们把照片扫描成为文件并存盘,一般我们可以这样描述这样的照片文件:分辨率多少乘多少,是多少色等等。这样的文件可以用PhotoShop、CorelPaint等软件来浏览和处理。通过这些软件,我们可以把图形的局部一直放大,到最后一定可以看见一个一个象马赛克一样的色块,这就是图形中的最小元素—-像素点。到这里,我们再继续放大图象,将看见马赛克继续变大,直到一个像素占据了整个窗口,窗口就变成单一的颜色。这说明这种图形不能无限放大。

点阵图的文件类型很多,如*.bmp、*.pcx、*.gif、*.jpg、*.tif、photoshop的*.pcd、kodak photo CD的*.psd、corel photo paint的*.cpt等。同样的图形,存盘成以上几种文件时文件的字节数会有一些差别,尤其是jpg格式,它的大小只有同样的bmp格式的1/20到1/35,这是因为它们的点矩阵经过了复杂的压缩算法的缘故。

如果你把一组这样的文件存盘,你一定能发现有这样的规律:

1.图形面积越大,文件的字节数越多
2.文件的色彩越丰富,文件的字节数越多

这些特征是所有点阵图共有的。这种图形表达方式很象我们在初中数学课在坐标纸上逐点描绘函数图形,虽然我们可以逐点把图形描绘的很漂亮,但用放大镜看这个函数图形的局部时,就是一个个粗糙的点。编辑这样的图形的软件也叫点阵图形编辑器。如:PhotoShop、PhotoStyle、画笔等等。

点阵图与矢量图的两个文件的区别(请注意细节部分)点阵图与矢量图的两个文件的区别(请注意细节部分)

矢量图像,也叫向量图,在数学上定义为一系列由线连接的点。像Adobe Illustrator、CorelDraw、CAD等软件是以矢量图形为基础进行创作的。矢量文件中的图形元素称为对象。每个对象都是一个自成一体的实体,它具有颜色、形状、轮廓、大小和屏幕位置等属性。既然每个对象都是一个自成一体的实体,就可以在维持它原有清晰度和弯曲度的同时,多次移动和改变它的属性,而不会影响图例中的其它对象。这些特征使基于矢量的程序特别适用于图例和三维建模,因为它们通常要求能创建和操作单个对象。基于矢量的绘图同分辨率无关。这意味着它们可以按最高分辨率显示到输出设备上。

矢量图形与分辨率无关,可以将它缩放到任意大小和以任意分辨率在输出设备上打印出来,都不会影响清晰度。因此,矢量图形是文字(尤其是小字)和线条图形(比如徽标)的最佳选择。

有一些图形(如工程图、白描图、卡通漫画等),它们主要由线条和色块组成,这些图形可以分解为单个的线条、文字、圆、矩形、多边形等单个的图形元素。再用一个代数式来表达每个被分解出来的元素。例如:一个圆我们可以表示成圆心在(x1,y1),半径为r的图形;一个矩形可以通过指定左上角的坐标(x1,y1)和右下角的坐标(x2,y2)的四边形来表示;线条可以用一个端点的坐标(x1,y1)和另一个端点的坐标(x2,y2)的连线来表示。当然我们还可以为每种元素再加上一些属性,如边框线的宽度、边框线是实线还是虚线、中间填充什么颜色等等。然后把这些元素的代数式和它们的属性作为文件存盘,就生成了所谓的矢量图(也叫向量图)。

矢量图形格式也很多,如Adobe Illustrator的*.AI、*.EPS和SVG、AutoCAD的*.dwg和dxf、Corel DRAW的*.cdr、windows标准图元文件*.wmf和增强型图元文件*.emf等等。当需要打开这种图形文件时,程序根据每个元素的代数式计算出这个元素的图形,并显示出来。就好象我们写出一个函数式,通过计算也能得出函数图形一样。编辑这样的图形的软件也叫矢量图形编辑器。如:AutoCAD、CorelDraw、Illustrator、Freehand等。

这样的矢量图形文件也有共同的规律:

1.你可以无限放大图形中的细节,不用担心会造成失真和色块。

2.一般的线条的图形和卡通图形,存成矢量图文件就比存成点阵图文件要小很多。

3.存盘后文件的大小与图形中元素的个数和每个元素的复杂程度成正比。而与图形面积和色彩的丰富程度无关。(元素的复杂程度指的是这个元素的结构复杂度,如五角星就比矩形复杂、一个任意曲线就比一个直线段复杂)

4.通过软件,矢量图可以轻松地转化为点阵图,而点阵图转化为矢量图就需要经过复杂而庞大的数据处理,而且生成的矢量图的质量绝对不能和原来的图形比拟。

位图图像和矢量图形没有好坏之分,只是用途不同而已。因此,整合位图图像和矢量图形的优点,才是处理数字图像的最佳方式。

在我们的AOI光学检测仪器的技术分布中你会发现,离线的aoi基本上都是用的图像对比或叫做统计建模的技术.而在线aoi清一色的强调自己用的是特征矢量分析方法.就是因为在品质要求越来越高.元件要求越来越小的今天.特别是0201元件或是更小的01005元件在现实生产中的实际运用.图像对比的放大失真特点已经不能满足pcb检验中高品质的运用要求.因而迫使AOI设备生产商开发出更适合生产需要的AOI产品,而具有不失真特点的矢量图是首选,自然而然的具有矢量分析的在线式aoi光学检测仪应运而生.为了确保在线AOI设备的品质,我们开发的设备在客户工厂试用超过一年,有兴趣的朋友如果有时间,我们可以带您到我们的客户处参观考察.

更多内容请浏览 http://www.aoiii.com/aoi-principle AOI原理