基恩士LJ-X系列線雷射
- 1. 基恩士硬體和軟體的調試
-
- 1.1 下載下傳并安裝軟體 LJ-X Navigator 和 LJ-X Observer
- 1.2 将控制器與電腦連接配接,接上24V電源就可以使用了。
- 1.3 通信連接配接
- 1.4 實時設定
- 1.5 批處理之後用Observer打開
- 1.6 軟體中有圖像補正,測量等功能,比較簡單。
- 2. Halcon處理高度圖
-
- 2.1 尋找圓周焊中漏焊的區域
- 2.2 Halcon代碼
- 3. 資源下載下傳位址
1. 基恩士硬體和軟體的調試
1.1 下載下傳并安裝軟體 LJ-X Navigator 和 LJ-X Observer
下載下傳 | 基恩士中國官方網站 (keyence.com.cn)
1.2 将控制器與電腦連接配接,接上24V電源就可以使用了。
1.3 通信連接配接
打開LJ-X Navigator ,選擇設定——PC通信設定,彈出下面對話框:現在的IP位址是192.168.0.1,需要把電腦對應的端口IP設定在同一個字段。
1.4 實時設定
點選實時設定彈出對話框
分三步走:
一. 觸發設定,設定采樣周期,觸發間距,批處理點數;
二. 拍攝設定,測量範圍包括X方向和Z方向,相當于感興趣區域,盡量把輪廓線調整到中間位置。需要注意的是,點選圖像連續更新才會實時采集圖像。
Z方向範圍和曝光模式都會影響采樣頻率,LJ-X的測量速度是60mm/s。這些都設定完成後點選完成。
1.5 批處理之後用Observer打開
1.6 軟體中有圖像補正,測量等功能,比較簡單。
需要注意的是,這個軟體隻能打開.lhix檔案,但是儲存的檔案格式有多種,如果halcon可以處理TIFF檔案,選擇這個格式會儲存兩張圖像,一張是高度圖,而另一張是亮度圖。
2. Halcon處理高度圖
2.1 尋找圓周焊中漏焊的區域
2.2 Halcon代碼
*圓周焊方法1
detect_col:=1068
detect_row:=100
detect_phi:=0
detect_length1:=2
detect_length2:=2
detect_offset:=-96
std1_col:=100
std1_row:=100
std1_phi:=0
std1_length1:=2
std1_length2:=2
std1_offset:=-105
std2_col:=100
std2_row:=100
std2_phi:=0
std2_length1:=2
std2_length2:=2
std2_offset:=-80
set_display_font (3600, 26, 'mono', 'true', 'false')
dev_update_off ()
for Index1 := 1 to 38 by 1
*讀取高度圖
read_image (Image1,'漏焊'+Index1)
*讀取亮度圖
read_image (Image1ngLuminance, '漏焊'+Index1+'_luminance')
*分割電池區域圖像
threshold (Image1, Regions, 2756, 65535)
fill_up (Regions, RegionFillUp)
reduce_domain (Image1, RegionFillUp, ImageReduced)
*得到電池邊緣區域
boundary (RegionFillUp, RegionBorder, 'inner')
*電池區域的最小外接矩形
smallest_rectangle1 (RegionBorder, Row1, Column1, Row2, Column2)
*區域差集得到電池上蓋闆邊緣區域
gen_rectangle1 (Rectangle1, Row1-1, Column1-1, Row1+1, Column2+1)
gen_rectangle1 (Rectangle2, Row2-1, Column1-1, Row2+1, Column2+1)
difference (RegionBorder, Rectangle1, RegionDifference)
difference (RegionDifference, Rectangle2, RegionDifference2)
connection (RegionDifference2, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'column', 'and', 14.4, 500)
*擷取上蓋闆邊緣區域中所有點坐标
get_region_points (SelectedRegions, Rows, Columns)
*對高度圖做一次均值濾波,可以屏蔽
mean_image (Image1, ImageMean, 1, 1)
get_image_size (Image1, Width, Height)
meanDetect:=[]
meanStd1:=[]
meanStd2:=[]
meanDifference:=[]
deviation_detect:=[]
gen_empty_obj (detect_rect) //測量矩形
gen_empty_obj (std1_rect) //基準1矩形
gen_empty_obj (std2_rect) //基準2矩形
for I := 0 to |Columns|-1 by 1
*建立測量矩形
gen_rectangle2 (Rect_dectect, detect_row+I*1,Columns[I]+detect_offset, detect_phi,detect_length1, detect_length2)
*計算測量矩形内所有點平均高度值
intensity (Rect_dectect, ImageMean, Mean_dectect, Deviation1)
*建立基準1矩形
gen_rectangle2 (Rect_std1, std1_row+I*1,Columns[I]+std1_offset, std1_phi,std1_length1, std1_length2)
*計算測量矩形内所有點平均高度值
intensity (Rect_std1, ImageMean, Mean_std1, Deviation2)
*建立基準2矩形
gen_rectangle2 (Rect_std2, std2_row+I*1,Columns[I]+std2_offset, std2_phi,std2_length1, std2_length2)
*計算測量矩形内所有點平均高度值
intensity (Rect_std2, ImageMean, Mean_std2, Deviation2)
*判斷是否漏焊
if ((Mean_std1 + Mean_std2)/2 > Mean_dectect + 20)
concat_obj (Rect_dectect, detect_rect, detect_rect)
concat_obj (Rect_std1, std1_rect, std1_rect)
concat_obj (Rect_std2, std2_rect, std2_rect)
endif
endfor
union1 (detect_rect, RegionUnion)
dilation_rectangle1 (RegionUnion, RegionDilation, 1, 1)
*顯示亮度圖是為了便于觀察
dev_display (Image1ngLuminance)
dev_display (RegionDilation)
dev_set_draw ('fill')
dev_display (RegionDilation)
disp_message (3600, Index1, 'window', 12, 12, 'black', 'true')
stop()
endfor
dev_update_on ()
3. 資源下載下傳位址
包括圖像資源,代碼資源。
https://download.csdn.net/download/weixin_38566632/24413279