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.对模板图像和待测图像之间的配准算法有严格的要求,要求简单实用,且误差率低。

发表评论