基恩士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:=-96std1_col:=100
std1_row:=100
std1_phi:=0
std1_length1:=2
std1_length2:=2
std1_offset:=-105std2_col:=100
std2_row:=100
std2_phi:=0
std2_length1:=2
std2_length2:=2
std2_offset:=-80set_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 endforunion1 (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()
endfordev_update_on ()
3. 资源下载地址
包括图像资源,代码资源。
https://download.csdn.net/download/weixin_38566632/24413279