鋁殼表面平面度檢測
專案簡介
專案背景
隨著現代製造業的不斷發展,對產品質量的要求也越來越高。鋁殼作為眾多產品的重要組成部分,其表面平面度直接影響到產品的整體效能和外觀質量。因此,對鋁殼表面平面度的準確測量和控制顯得尤為重要。

相機選型
LMI雷射線掃相機 Gocator2430
檢測要求
測量精度 ≤ 0.05mm
測量重複性 ≤ 0.018mm
測量週期 ≤ 200ms
解決方案
Vision-Studio軟體對3D點雲圖直接處理,進行定位後根據圖紙指定區域進行平面擬合,進行平面度測量。
設計思路

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

HMI結果展示:

專案流程
一、初始化
- 選擇
Lua脚本语言工具,全域性變數初始化,建立待接收資料的csv檔案。
經驗
.. 用於string型別字串拼接
part1 = "Hello, "
part2 = "world!"
result = part1 .. part2
print(result) # 輸出: Hello, world!
,作為分隔符,分割每個資料項
-- 生成保存检测数据的csv文件
-- 生成用于拼接字符串的表头
write = ""
-- 字符串写入csv文件中
-- 当无该文件时,系统会自动生成该文件,同时该工具会WARN提示系统内无该文件
if FileExists("./Plane.csv") == false then
write = write .. "Time,"
write = write .. "Plane" .. ","
write = write .. "OK/NG" .. ","
write = write .. "\n"
end
write = write .. os.date("%Y_%m_%d %H:%M:%S") .. ","
-- 字符串写入文件中
WriteToFile("./Plane.csv", write)- 選擇
加载点云工具,獲取點雲。
二、預處理

位置調整
選擇兩次
3D方形探针工具,找到鋁殼的左邊以及下邊直線。選擇
3D几何交点工具,繫結上一步輸出的兩條邊作為輸入幾何,找到兩條邊的交點。

- 選擇
3D位置调整工具,繫結3D几何交点工具找到的交點作為原點,調整x,y的位置。
擬合平面:
- 選擇
3D区域工具,根據圖紙選取鋁殼15塊不同的區域。

- 選擇
3D平面工具,繫結上一步3D区域工具設定的區域作為輸入區域擬合平面,並將擬合出來的平面作為0平面。

三、平面度測量
選擇3D平面度工具,根據圖紙選取21塊不同的平面,通過平面的平均點進行平面測量。

四、資料儲存,結果顯示及判斷
選擇lua脚本语言工具,對結果進行判斷,將結果顯示在IM上,並將測量出來的平面度以及判斷結果存入csv檔案中。設定用於HMI展示的全域性變數。
繫結
3D平面度工具輸出變數平面度值編輯lua指令碼判斷結果並將結果顯示在IM介面
儲存資料到csv檔案,設定平面度值為全域性變數用於HMI繫結資料顯示。
經驗
string.format 用於格式化字串 %.nf表示將浮點數格式化為保留 n 位小數。
pi = 3.14159 str = string.format("Pi is approximately %.3f", pi) print(str) -- 輸出: Pi is approximately 3.141
-- 保存数据至csv文件中
write = ""
-- 结果判断显示
if 0.4<flatness and flatness<0.8 then
DrawText3D(1,"green",50,110,20,16,"OK:" .. string.format("%.3f",flatness))
write = write .. string.format("%.3f,", flatness) .. "OK" .. ","
else
DrawText3D(1,"red",50,110,20,16,"NG:" .. string.format("%.3f",flatness))
write = write .. string.format("%.3f,", flatness) .. "NG" .. ","
end
WriteToFile("./Plane.csv", write .. "\n")
-- 设置用于HMI展示的全局变量
SetFloatVariable("Plane" , math.floor(flatness*1000)/1000)
