焊錫球體積高度測量
工程背景
測量背景
鑑於焊錫球在晶片封裝中的關鍵作用,其高度、圓度等引數直接影響產品質量。為確保穩定性和可靠性,需高精度測量技術應對反光、精度等挑戰,實現全檢要求,提升產品質量與生產效率。

相機選型
盛相科技 SS081017
測量項
1.焊錫球高度
2.焊錫球體積
檢測要求
測量精度 ≤ 0.02mm
測量重複性 ≤ 0.015mm
測量週期 ≤ 600ms
解決方案
Vision-Studio使用裁切工具,將焊錫球裁切出來,然後使用Blob工具,找到每個焊錫球的位置,使用高度工具與體積工具一鍵測量。
設計思路

執行效果展示
工程結果展示
- 體積測量結果

- 高度測量結果

專案流程
一、初始化
- 使用
lua脚本工具,初始化用於儲存資料的csv檔案。
經驗
.. 用於string型別字串拼接
part1 = "Hello, "
part2 = "world!"
result = part1 .. part2
print(result) # 輸出: Hello, world!
,作為分隔符,分割每個資料項
writeV = ""
writeH = ""
if FileExists("./Volumn.csv") == false then
writeV = writeV .. "Time,"
for i=1,78,1 do
writeV = writeV .. "Volume" .. i .. ","
end
end
PrintToFile("./Volumn.csv",writeV)
if FileExists("./Height.csv") == false then
writeH = writeH .. "Time,"
for i=1,78,1 do
writeH = writeH .. "Height" .. i .. ","
end
end
PrintToFile("./Height.csv",writeV)- 使用
加载点云工具,載入需要處理的點雲圖。

- 使用
3D裁切工具,將IM1中的點雲複製到IM1中,方便後續處理。
二、預處理

位置調整
使用
3D方形探针工具,輸出工件的兩條邊。
使用
3D几何交点工具,輸出兩直線交點。使用
3D位置调整工具,根據輸出的直線交點調整點雲位置。
擬合平面
使用
3D区域工具,選擇擬合平面的區域。
使用
3D平面工具,根據上個工具選擇的區域,擬合平面並將其設定為零平面。
裁切待測區域
使用
3D裁切工具,裁切出焊點區域使用
3D裁切工具,選擇反轉裁切,裁切掉不需要測量的區域,留下焊點。使用
3D裁切工具,複製IM2到IM3及IM4,用於體積高度測量。

三、體積高度測量

使用
3D斑点工具,輸出每個焊點的位置資訊。
使用
3D体积工具,繫結3D斑點工具輸出變數blob_center_points(包括所有焊點位置資訊)作為輸入區域,測量所有焊點體積。使用
3D高度工具,繫結3D斑點工具輸出變數blob_center_points(包括所有焊點位置資訊),測量所有焊點高度。
四、資料儲存
使用lua脚本工具,儲存資料到csv檔案
經驗
string.format 用於格式化字串 %.nf表示將浮點數格式化為保留 n 位小數。
pi = 3.14159 str = string.format("Pi is approximately %.3f", pi) print(str) -- 輸出: Pi is approximately 3.141
-- 拼接字符串初始化
writeV = ""
writeH = ""
-- 拼接时间(第一列)
writeV = writeV .. os.date("%Y_%m_%d %H:%M:%S") .. ","
writeH = writeH .. os.date("%Y_%m_%d %H:%M:%S") .. ","
-- 拼接体积及高度值(2-79列)
for i= 1,78,1 do
writeV = writeV .. string.format("%.3f,",Volume[i])
writeH = writeH .. string.format("%.3f,",Height[i])
end
-- 写入文件
WriteLineToFile("./Volumn.csv",writeV)
WriteLineToFile("./Height.csv",writeH)經驗提煉
核心步驟:
3D斑點獲取待測位置資訊
批次測量體積高度
