DALSA
CORECO集团机器视觉软件包在可编程自动分板机上的应用
概要:
本文介绍一款高性能,操作简单的机器视觉可编程自动分板机。机器视觉软件部分采用DALSA
CORECO集团机器视觉软件包,硬件采用西安方诚的高分辨率CCD相机,能够高速高精度进行PCB板的分割,提高生产效率,避免传统的手工操作所带来的一系列问题。
机器视觉软件部分构成:
采用DALSA
CORECO集团机器视觉软件包进行二次开发,VC++
编写。
机器视觉部分硬件构成:
1台西安方诚的高精度黑白相机,型号ID130M,
1280*1024,USB2.0接口;
1个日本COMPUTAR的25MM镜头;
1个自制光源。
软件功能简单说明:
主界面如下图所示,分成切割命令窗口,图像窗口,轨迹模拟窗口,状态显示,控制面板等几个部分。切割命令窗口是用户输入切割命令的地方,切割命令有空命令,快速移动,直线切割,圆心,圆,圆终点,圆弧,圆弧终点,钻孔和延时10种,用户可以根据不同的切割需求进行编程,实现切割。图像窗口显示图像,所起的作用有3个:第一个,用户编程时起辅助作用,用户可以通过相机看到PCB板的位置和特征,而不用看实际的PCB板;第二个,机器视觉校正;第三个,切割时进行监控。
轨迹模拟窗口显示了切割命令执行时的轨迹,实际切割时自动跟踪刀具的位置。
相机调整界面如下图所示,用户可以根据光源,环境,不同的PCB板调整相机参数,使得图像效果最佳,可以调整的参数有曝光时间,亮度,增益等,
使用机器视觉校正功能之前,先要制作模板,界面如下图所示,通常选取PCB板对角的标志点来制作模板,一共需要制作两个,标志点形状通常有圆形,方形,菱形等等,也可以选取PCB板上独一无二的特征,如丝印。
本软件具有刀具补偿功能,补偿方式有不补偿,左补偿,右补偿,前补偿,后补偿,左前补偿,左后补偿,右前补偿,右后补偿,内补偿和外补偿11种,内补偿/外补偿仅对圆心,圆终点,圆弧终点三种命令起作用,刀具补偿后的切割轨迹如下图所示,红色为理论轨迹,白色为实际轨迹,补偿量为当前铣刀半径,十字架为钻孔中心点,
机器视觉校正实现的过程如下:
1.选取PCB板对角的标志点制作两个模板并保存,获取理论标志点中心点;
2.图像采样,显示,匹配,找出实际标志点中心点;
3.实际标志点中心点减去理论标志点中心点,找出偏差值;
4.偏差值转换成机械尺寸;
5.根据偏差值驱动伺服马达进行校正;
本机使用该方法,实际误差在0.01MM之内,完全满足PCB板切割的需要。
加工命令说明如下:
空命令:不执行任何操作;
快速移动:Z轴回到安全高度,快速移动到指定位置;
直线切割:直线切割到指定位置;
圆心:以指定位置为圆心,切割圆;
圆:圆的第二点坐标;
圆终点:圆的第三点坐标,与圆配合使用,切割圆;
圆弧:圆弧的第二点坐标;
圆弧终点:圆弧的第三点坐标,与圆弧配合使用,切割圆弧;
钻孔:Z轴回到安全高度,快速移动到指定位置,在指定位置钻孔;
延时:延时一段时间,单位为毫秒;
不补偿:不执行任何补偿;
左补偿:实际切割轨迹往左移动一个补偿值,补偿量为当前铣刀半径;
右补偿:实际切割轨迹往右移动一个补偿值,补偿量为当前铣刀半径;
前补偿:实际切割轨迹往前移动一个补偿值,补偿量为当前铣刀半径;
后补偿:实际切割轨迹往后移动一个补偿值,补偿量为当前铣刀半径;
左前补偿:实际切割轨迹往左前移动一个补偿值,补偿量为当前铣刀半径;
左后补偿:实际切割轨迹往左后移动一个补偿值,补偿量为当前铣刀半径;
右前补偿:实际切割轨迹往右前移动一个补偿值,补偿量为当前铣刀半径;
右后补偿:实际切割轨迹往右后移动一个补偿值,补偿量为当前铣刀半径;
内补偿:实际切割轨迹往圆/圆弧的内部移动一个补偿值,补偿量为当前铣刀半径,内补偿仅对圆心,圆终点,圆弧终点三种命令起作用;
外补偿:实际切割轨迹往圆/圆弧的外部移动一个补偿值,补偿量为当前铣刀半径,外补偿仅对圆心,圆终点,
圆弧终点三种命令起作用;
加工步骤举例如下:
---------------------------------------------------------------------------------------
编号 命令 X轴坐标(mm) Y轴坐标(mm) Z轴坐标(mm) 速度(脉冲/S) 时间(mS) 补偿
0 快速移动 0.000 0.000 0.000 0 0 不补偿
1 圆弧 200.000 200.000 0.000 0 0 不补偿
2 圆弧终点 0.000 300.000 0.000 0 0 内补偿
3 延时 0.000 0.000 0.000 0 2000 不补偿
4 钻孔 50.000 150.000 0.000 0 0 右前补偿
5 快速移动 0.000 0.000 0.000 0 0 不补偿
6 直线切割 200 200 0.000 0 0 不补偿
7 快速移动 200 300 0.000 0 0 不补偿
8 圆心 200 200 0.000 0 0 内补偿
9 钻孔 200 200 0.000 0 0 不补偿
10 钻孔 450 200 0.000 0 0 右补偿
11 快速移动 400 200 0.000 0 0 不补偿
12 圆 200 200 0.000 0 0 不补偿
13 圆终点 200 300 0.000 0 0 外补偿
14 空命令 0.000 0.000 0.000 0 0 不补偿
15 空命令 0.000 0.000 0.000 0 0 不补偿
--------------------------------------------------------------------------------------------------
用户443576 2013-7-7 19:13