Skip to content

焊點缺陷檢測

工程背景

測量背景

隨著電子產品整合度提高,焊點質量直接影響產品效能與可靠性。為確保產品質量,需精準測量焊點尺寸、形態及電氣效能,及時發現缺陷,最佳化生產工藝,提升產品競爭力。

本地圖片

相機選型

盛相ST081043

測量項

焊點的體積、高度、截面積

檢測要求

測量精度 ≤ 0.05mm 測量重複性 ≤ 0.05mm 測量週期 ≤ 3s

解決方案

使用Vision-Studio軟體,使用焊點檢測整合工具,一鍵測量焊點資訊。執行速度快,精度高,同時流程簡單,模組化,方便搭建。

設計思路

本地圖片

執行效果展示

  • 工程結果展示

    本地圖片

專案流程

一、初始化

  1. 使用Lua脚本工具,生成儲存資料的csv檔案“Test.csv”。
lua
-- 生成保存检测数据的csv文件
-- 生成用于拼接字符串的表头
write = ""

-- 无该文件时,系统自动生成
if FileExists("./Test.csv") == false then
    write = write .. "Time,"
    for i=1,3,1 do
       write = write .. "Circularity" .. i ..",Circumference" .. i ..",Area" .. i ..",FeretX" .. i ..",FeretY" .. i ..",MaxHeight" .. i ..",SurfaceArea" .. i ..",Volume" .. i  ..","
    end
    write = write .. "\n"
end

write = write .. os.date("%Y_%m_%d %H:%M:%S") .. ","

-- 字符串写入文件
WriteToFile("./Test.csv", write)
  1. 使用加载点云工具,載入點雲。

二、預處理

本地圖片

位置調整

  1. 使用3D方形探针工具,得到工件的左側與下側兩條邊。

本地圖片

  1. 使用3D几何交点工具,繫結上一步運算元變數輸出的兩條邊作為輸入幾何,輸出兩直線交點。

  2. 使用3D位置调整工具,繫結上一步運算元輸出輸出的直線交點作為新原點調整點雲XY位置。

平面擬合

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

  2. 使用3D平面工具,繫結上一步運算元輸出的變數區域作為輸入區域,擬合平面並將其設定為零平面。

    本地圖片

三、焊點測量

使用三個焊点检测工具,分別測量三個焊點焊點體積、高度、截面積等資訊。

本地圖片

四、資料儲存

使用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
write = ""
-- 读取数据并拼接到字符串中
write = write .. string.format("%.3f,%.3f,%.3f,%.3f,%.3f,%.3f", 
    spot1.cross_section_circularity[1], 
    spot1.cross_section_circumference[1],
    spot1.cross_section_area[1],
    spot1.height,
    spot1.surface_area,
    spot1.volume)

write = write .. string.format("%.3f,%.3f,%.3f,%.3f,%.3f,%.3f", 
    spot2.cross_section_circularity[1], 
    spot2.cross_section_circumference[1],
    spot2.cross_section_area[1],
    spot2.height,
    spot2.surface_area,
    spot2.volume)

write = write .. string.format("%.3f,%.3f,%.3f,%.3f,%.3f,%.3f", 
    spot3.cross_section_circularity[1], 
    spot3.cross_section_circumference[1],
    spot3.cross_section_area[1],
    spot3.height,
    spot3.surface_area,
    spot3.volume)

write = write .. "\n"

-- 保存数据至csv文件中
WriteToFile("./Test.csv",write)

Vision Studio