BGA焊球高度和直徑測量
工程背景
測量背景
BGA 封裝工藝為製造晶圓積體電路 IC 和 PCB 電路板之間的連線提供更多可能。BGA 工藝有一定的技術要求,必須嚴格且精確控制其生產製作,包括確保 BGA 球數量、尺寸和位置的精確性,從而保證封裝質量。

相機選型
Hypersen-LCF3000
測量項
BGA小球的高度與直徑
檢測要求
測量精度 ≤ 0.01mm 測量重複性 ≤ 0.004mm 測量週期 ≤ 1s
解決方案
使用Vision-Studio軟體,首先獲取BGA球的位置,然後通過迴圈測量的方式,測量BGA球的高度與直徑資訊。執行速度快,精度高,同時流程簡單,模組化,方便搭建。
設計思路

執行效果展示
工程結果展示
高度結果:

直徑結果:

專案流程
一、初始化
- 使用
Lua脚本工具
- 拼接表頭字串,儲存到csv檔案
經驗
.. 用於string型別字串拼接
part1 = "Hello, "
part2 = "world!"
result = part1 .. part2
print(result) # 輸出: Hello, world!
,作為分隔符,分割每個資料項
-- 用于拼接表头的字符串
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個球的資訊寫入檔案中。
-- 用于拼接表头的字符串
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)