Skip to content

BGA球共面度检测

项目简介

项目背景

焊锡球的共面度不良可能导致焊接不良、短路等问题,严重影响产品的性能和寿命,将测量得到的数据进行统计分析,包括最大值、最小值和均值等,以评估焊锡球的共面度是否满足产品要求。

本地图片

相机选型

LMI激光线扫相机 Gocator2520

检测要求

测量精度 ≤ 0.03mm
测量重复性 ≤ 0.02mm
测量周期 ≤ 2s

解决方案

AI-Vision采用集成工具的方法,一个工具直接计算出整体小球的共面度,在大大提升速度的同时简化了工程逻辑。

设计思路

本地图片

执行效果展示

  • 工程结果展示:

    本地图片

  • HMI结果展示:

    本地图片

项目流程

一、初始化

[00] 选择Lua脚本语言工具,创建待接收数据的csv文件。

lua
-- 生成用于拼接的字符串
write = ""

--判断该文件是否存在,若不存在生成该文件,若存在跳过生成
if FileSize("./BGA.csv") <=0 then
    -- “,”表示下一列,“\n”表示换行
   write = write .. "Time," .. "Degree of coexistence" .. "," .. "OK/NG" .. "\n"
end

-- 拼接入当前时间
write = write .. os.date("%Y_%m_%d %H:%M:%S") .. ","

-- 字符串写入csv文件中
-- 当无该文件时,系统会自动生成该文件,同时该工具会WARN提示系统内无该文件
fprint("./BGA.csv" , write)

[01] 选择加载点云工具,获取点云。

二、预处理

  • 图像初定位

    [02-05] 选择3D方形探针工具和3D位置调整工具,通过选取左面的边进行x,y方向位置的调整,再选取上面的边进行y方向位置的调整。

    本地图片

    本地图片

  • 拟合平面

    [6-8] 选择3D区域工具,选取pcb板上面6块突出的柱子为拟合平面的区域。

    本地图片

    [9] 选择3D平面工具,通过存入寄存器中的区域信息来拟合平面,并将拟合出来的平面作为零平面。

    本地图片

  • 再定位

    [10-13] 选择3D方形探针工具,找到上下左右4条边。

    本地图片

    [14-17] 选择3D几何交点工具,找到左上左下右上右下四个顶点。

    [18] 选择多点定位工具工具,输出上下左右四个顶点的中心点,同时调整点云位置

  • 初始化

    [19] 选择3D裁切工具,将点云裁切掉底面到IM1中,便于后续处理。

    本地图片

三、共面度测量

[20] 选择共面度工具,框选出进行测量的区域,进行共面度检测。

本地图片

四、结果判断及保存

[21] 选择lua语言脚本工具,将测量的结果进行判断且显示在图像上,并将判断结果和数据保存在文件中。

lua
-- 获取全局变量
SetVariable('Value',tointeger(1000*GetMeasure(0))/1000)
Result = GetMeasure(0)

-- 进行结果判断
if Result<0.065 or Result>0.075 then
    -- 数据显示
    DrawOverlay(1,0,0,5,20,"red","检测结果:" .. "NG")
    write = string.format("%.3f," , Result) .. "NG" .. "\n"

else
    DrawOverlay(1,0,0,5,20,"green","检测结果:" .. "OK")
    write = string.format("%.3f," , Result) .. "OK" .. "\n"
end

-- 将字符串写入文件中
fprint("./BGA.csv" , write)

AI-Vision,让3D测量更简单