Appearance
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)