编程可以分为三大部分:运动控制器的编程;视觉传感器编程;人机界面编程。
介绍运动控制器编程。在没有机器视觉的自动锁螺丝机上,主要就是运动控制器的编程。根据使用的运动控制器的不同而不同。
其主要包括如下部分:
上电初始化程序。将内部存储用的临时变量初始化。并检查IO口。
回原点程序。将运动机构回归到原点,通常结合极限限位开关或原点限位开关。开始以最大速度运行到极限位置,然后回退一定距离,再以比较慢的速度触碰限位开关。
螺丝孔位置设定程序。可以将螺丝孔的位置保存在运动控制器内,这通常是需要和人机界面程序配合的。
螺丝孔位置更新程序。更新已经保存的螺丝孔位置。
螺丝孔位置删除程序。删除已经保存的螺丝孔位置。
定位程序。在使用了机器视觉的自动琐螺丝机上,主程序运行前,需要先确定工件的位置和姿态,并重新计算各个螺丝孔的位置。
主程序。当工件进入放入工作区,检测传感器检测到,或人工触发,平台将顺序运动到已经保存的螺丝孔位置,并将螺丝锁入。
视觉传感器编程。对工件上定位的特征进行调整,在编程前,需要调整确认镜头的焦距,以及相机在Z轴的工作位上。
打开视觉传感器的实时查看功能,调整光源的亮度,传感器的曝光参数以及对比度等,以便得到清晰的图像。
传感器运动到工件上的定位特征位置上方,调整特征检测参数,使得能正确获取到特征的坐标位置。
对传感器进行标定,用以确定像素到实际尺寸的转换关系。
保存特征位置在锁螺丝机和传感器的不同位置信息。
人机界面编程。利用运动控制器或视觉传感器提供的接口,在手柄或视觉传感器的人机界面上将可以调整的部分以直观的方式提供给用户。
在使用手柄的锁螺丝机上,人机界面主要在使用了嵌入式系统的手柄界面中,其使用的是诸如QT,WinCE,WxWidgets等。其屏幕尺寸小,CPU的资源有限。
在使用了工控机的自动锁螺丝机,人机界面程序是在windows下的,其可用资源较多,通常使用MFC库,GTK库,Windows Forms,WTL,WxWidgets,QT等。
优微视机器视觉传感器,提供了另外一种基于Web的UI界面程序,其编程技术主要是基于Html5和javascript技术。对于了解前端编程的程序员来说,编程相当容易。
其人机界面程序包括的功能如下。
权限管理模块
运动检测模块
IO检测模块
数据录入模块
标定模块
系统参数设置
当需要更改系统默认的程序的时候,可以使用优微视技术提供的IDE进行程序的修改,比如修改PLC的通信方式等。
优微视视觉传感器,可以进行两种方式的编程:
Tip
| javascript编程的内容,请参考《优微视视觉传感器javascript 编程指南》 |
下面提供的javascript程序,是一个使用了优微视机器视觉传感器的自动锁螺丝机的控制程序。
其使用_http函数提供接口,使用main函数作为触发响应函数,使用calibrate函数作为标定函数。
视觉传感器编程优微视传感器的程序参数保存在变量算子math_variables中,
其中与设置相关的变量保存在math_varibles_1中;
而螺丝孔的坐标信息保存在了math_variables_2中;
与mark特征相关的参数保存在相应的算子中,比如检测圆形的算子locate_circles_1中;
与串口通信相关的参数保存在了serial中。
需要实现的接口部分如下:
运动控制接口 /usr/motor
GCode测试接口 /usr/gcode
获取运动机构位置接口 /usr/reqloc
增加螺丝孔位置接口 /usr/addloc
更新螺丝孔位置接口 /usr/addloc
删除螺丝孔位置接口 /usr/updateloc
修改相机坐标接口 /usr/delloc
修改机械手坐标接口 /usr/camloc
光源控制接口 /usr/robotloc
标定接口 /usr/light