Appearance
BGA焊球高度和直径测量
工程背景
测量背景
BGA 封装工艺为制造晶圆集成电路 IC 和 PCB 电路板之间的连接提供更多可能。BGA 工艺有一定的技术要求,必须严格且精确控制其生产制作,包括确保 BGA 球数量、尺寸和位置的精确性,从而保证封装质量。
相机选型
Hypersen-LCF3000
测量项
BGA小球的高度与直径
检测要求
测量精度 ≤ 0.01mm 测量重复性 ≤ 0.004mm 测量周期 ≤ 1s
解决方案
使用AI-Vision软件,首先获取BGA球的位置,然后通过循环测量的方式,测量BGA球的高度与直径信息。运行速度快,精度高,同时流程简单,模块化,方便搭建。
设计思路
执行效果展示
工程结果展示
高度结果:
直径结果:
项目流程
一、初始化
- 使用
Lua脚本
工具
- 拼接表头字符串,保存到csv文件
经验
.. 用于string类型字符串拼接
part1 = "Hello, "
part2 = "world!"
result = part1 .. part2
print(result) # 输出: Hello, world!
,
作为分隔符,分割每个数据项
lua
-- 用于拼接表头的字符串
writeC = ""
writeH = ""
-- 如果文件不存在拼接表头字符串写入文件
if FileExists("./Circle.csv") == false then
writeC = writeC .. "Time,"
for i=1,196,1 do
writeC = writeC .. "R" .. i .. ","
end
end
PrintToFile("./Circle.csv",writeC)
if FileExists("./Height.csv") == false then
writeH = writeH .. "Time,"
for i=1,196,1 do
writeH = writeH .. "H" .. i .. ","
end
end
PrintToFile("./Height.csv",writeH)
- 使用
加载点云
工具,加载点云。
二、预处理
位置调整
使用
3D方形探针
工具,得到工件的左侧与上侧两条边。使用
3D几何交点
工具,绑定上一步算子变量输出的两条边作为输入几何,输出两直线交点。
- 使用
3D位置调整
工具,绑定上一步算子输出输出的直线交点作为新原点调整点云位置。
拟合平面
使用
3D区域
工具,选择拟合平面的区域。使用
3D平面
工具,绑定上一步算子输出的变量区域作为输入区域,拟合平面并将其设置为零平面。
裁切出待测区域
使用3D裁切
工具,将BGA球从IM1截取至IM2中,用于后续高度及直径测量。
复制IM用于不同子程序调用
复制IM2到IM3和IM4,分别用于高度和直径测量。
提示
使用并行调用子程序时,每个子程序需要在不同的IM执行。
三、高度直径测量
使用
3D斑点
工具:找到所有的BGA球的位置信息使用
3D高度
工具,绑定3D斑点
工具输出变量中区域作为输入区域,对所有BGA球进行高度测量。使用
3D圆
工具,绑定3D斑点
工具输出变量中区域作为输入区域,获取BGA球拟合圆信息(圆心,半径,方向向量)。
四、数据保存
使用Lua脚本
工具
绑定全局变量中存储的高度信息及直径信息
编辑lua脚本拼接高度直径信息到字符串
将测量的196个球的信息写入文件中。
lua
-- 用于拼接表头的字符串
writeC = ""
writeH = ""
-- 如果文件不存在拼接表头字符串写入文件
if FileExists("./Circle.csv") == false then
writeC = writeC .. "Time,"
for i=1,196,1 do
writeC = writeC .. "R" .. i .. ","
end
end
PrintToFile("./Circle.csv",writeC)
if FileExists("./Height.csv") == false then
writeH = writeH .. "Time,"
for i=1,196,1 do
writeH = writeH .. "H" .. i .. ","
end
end
PrintToFile("./Height.csv",writeH)