Skip to content

焊錫球體積高度測量

工程背景

測量背景

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

本地圖片

相機選型

盛相科技 SS081017

測量項

1.焊錫球高度

2.焊錫球體積

檢測要求

測量精度 ≤ 0.02mm

測量重複性 ≤ 0.015mm

測量週期 ≤ 600ms

解決方案

Vision-Studio使用裁切工具,將焊錫球裁切出來,然後使用Blob工具,找到每個焊錫球的位置,使用高度工具與體積工具一鍵測量。

設計思路

本地圖片

執行效果展示

  • 工程結果展示

    • 體積測量結果

    本地圖片

    • 高度測量結果

    本地圖片

專案流程

一、初始化

  1. 使用lua脚本工具,初始化用於儲存資料的csv檔案。

經驗

.. 用於string型別字串拼接

part1 = "Hello, "
part2 = "world!"
result = part1 .. part2
print(result) # 輸出: Hello, world!

,作為分隔符,分割每個資料項

lua
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)
  1. 使用加载点云工具,載入需要處理的點雲圖。

本地圖片

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

二、預處理

本地圖片

位置調整

  1. 使用3D方形探针工具,輸出工件的兩條邊。

    本地圖片

  2. 使用3D几何交点工具,輸出兩直線交點。

  3. 使用3D位置调整工具,根據輸出的直線交點調整點雲位置。

擬合平面

  1. 使用3D区域工具,選擇擬合平面的區域。

    本地圖片

  2. 使用3D平面工具,根據上個工具選擇的區域,擬合平面並將其設定為零平面。

    本地圖片

裁切待測區域

  1. 使用3D裁切工具,裁切出焊點區域

  2. 使用3D裁切工具,選擇反轉裁切,裁切掉不需要測量的區域,留下焊點。

  3. 使用3D裁切工具,複製IM2到IM3及IM4,用於體積高度測量。

本地圖片

三、體積高度測量

本地圖片

  1. 使用3D斑点工具,輸出每個焊點的位置資訊。

    本地圖片

  2. 使用3D体积工具,繫結3D斑點工具輸出變數blob_center_points(包括所有焊點位置資訊)作為輸入區域,測量所有焊點體積。

  3. 使用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

lua
-- 拼接字符串初始化
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)

經驗提煉

核心步驟:

  1. 3D斑點獲取待測位置資訊

  2. 批次測量體積高度

Vision Studio