[西门子] BECKHOFF TwinCAT Vision视觉&飞拍应用介绍

[复制链接]
查看29703 | 回复0 | 2024-1-18 15:36:07 | 显示全部楼层 |阅读模式
BECKHOFF TwinCAT Vision视觉&飞拍应用介绍

                                                                           

 

传统工业视觉应用介绍

 

在工业控制领域,视觉被广泛应用。例如用来对产品进行定位、外观检测、测量、扫码等等。传统的视觉解决方案中,视觉系统通常是独立于PLC控制系统单独存在的。一般有两种形式:

1、采用智能相机,康耐视、欧姆龙、基恩士都提供这种产品。智能相机集成了相应的视觉功能,只需要进行参数配置,就能实现所需要的功能。相机和PLC之间采用硬接线或通讯的方式来传递拍照命令和视觉处理结果,数据传输需要时间。这种方式实现相对比较容易,但成本比较高。

2、采用工业相机,常见品牌有巴斯勒、海康威视、大华等。采用工业相机需要基于基于OpenCV,Halcon等视觉库自己开发视觉算法,一般采用C#或C++。开发好的算法需要运行在一台独立的PC上,通过通讯的方式来和PLC控制系统传递拍照命令和视觉处理结果,数据传输需要时间。这种方式对开发人员有较高要求,需要专门的视觉工程师进行开发。并且需要额外的工业PC来运行视觉算法,成本也不低。

 

TwinCAT Vision介绍

 

BECKHOFF作为一家一直引领自动化控制技术潮流的技术创新型公司,在2019年推出其最新产品-TwinCAT Vision,完全集成在Twincat软件中的机器视觉软件。其具备如下几个显著特点:

1、很容易和控制系统进行深度集成

Twincat Vision作为一个独立的软内核,和PLC、NC、CNC等内核一起都集成在Twincat3内核中,所以Twincat Vision的算法程序可以和控制程序集成在同一个Twincat程序里,可以采用包括IEC 61131-3普通PLC编程语言,C++或者Matlab进行编程。借助于倍福提供的基于PLC编程语言开发的视觉库,普通PLC工程师就可以轻松实现视觉算法的开发,大大降低了开发难度。

2、完美的数据同步

   视觉算法程序和机器控制程序完美整合在一套程序中,这样视觉和控制系统之间的数据只需要通过对应的变量进行直接访问,不会产生任何延迟和等待。而传统的视觉解决方案中,视觉系统和控制系统需要通讯,这会导致数据传输的延迟,并且时间不确定。这在对生产节拍要求极高的应用场合,会限制机器的产能,是不可接受的。



                           

接下来我们从硬件和软件层面来简单了解Twincat Vision是如何实现的

硬件架构

TwinCAT Vision目前只支持GIGE类型的相机,一个控制器最多带16个GIGE相机。硬件上只需要把集成了Twincat vision功能的倍福控制器通过1G网口和第三方的GIGE相机相连,要求控制器的性能等级在50及以上。假如有多个相机,那么需要在控制器上选多个网卡,或外接交换机。



 

软件架构

Twincat Vision视觉软件包,需要安装在Twincat3.1 4024版本的Twincat 3软件上。安装之后会在Twincat项目中提供一个Tc3_vision库。针对不同的应用需求,需要购买不同软件包。

TF7000 -00XX 必选   GIGE 驱动+2个相机连接

TF7001 00XX 可选     额外两个相机连接

TF7002 00XX 可选     额外4个相机连接

TF7003 00XX 可选     额外8个相机连接

Twincat vision 算法  和相机个数没关系,选一个即可。

TF7100 00XX 必选     基础算法

TF7200 00XX 可选     2D匹配算法函数包

TF7250 00XX 可选     读码算法包

TF7300 00XX 可选     2D测量定位函数包

        在TwinCAT3软件中可以通过System Manager对相机进行硬件组态,校准,模拟等,通过调用视觉库进行程序开发。







BECKHOFF飞拍应用介绍

 

在大多数场合,只能当被检测工件和相机都处于静止状态下才能进行拍照,拍照完成后,再移动工件或相机,进行下一个工件的检测。移动到位后,物体可能会晃动,需要等待物体静止后才能进行再次拍照。这些都会限制设备工作的节拍。假如能实现运动过程中进行拍照,将会极大提高工作效率。接下来,我们介绍如何使用倍福控制系统实现飞拍应用。

飞拍对控制系统的核心要求是在高速运动过程中,在单个或多个设定位置,进行单次或多次连续精确触发相机拍照。不同的应用场合,可能是工件在移动,或者是相机在移动。通常相机采用硬件外触发方式。视觉系统可以是倍福的或者是第三方的视觉系统。

本次测试采用的是倍福的TwincatVision视觉系统。伺服电机带着被测试的电路板高速运动,需要在指定位置触发相机拍照,计算出电路板上特征点的坐标数据和电路板的旋转角度。此次采用指定区域的圆的圆心作为特征点。需要EL2262 XFC超采样数字量输出模块、TC2_MC2_XFC软件包、TF7000相机驱动连接包、TF7100基础视觉算法包和TF7200 2D匹配算法函数包(用于计算偏转角度)。







EL2262可以实现最小1μs的ON/OFF数字量开关时间。

 TC2_MC2_XFC软件包,提供如下功能块:



数字凸轮开关功能,当追踪到指定的编码器移动到设定位置,输出开关信号和精确的开关时间。可以追踪多个位置。



XFC_EL2262,根据数字凸轮开关功能的输出结果,精确控制EL2262模块的输出。

 

EL2262硬件组态及连接



飞拍触发程序:

变量及功能块定义:

       CamSwitchArray   : ARRAY[1..20] OF MC_CamSwitch;//指定飞拍触发的位置,可以多点

       fbdigitalCam:MC_DigitalCamSwitch;//数字凸轮开关功能

       fbXFC_EL2262                    :  XFC_EL2262;//XFC_EL2262输出功能

指定触发位置和编码器编号

CamSwitchArray[1].FirstOnPosition:=64;//指定相机拍照触发打开位置

CamSwitchArray[1].LastOnPosition  :=65;//相机触发关闭位置

SwitchOption.EncoderIndex:=0;//追踪的编码器编号。可以是编码器或者是伺服轴的反馈

SwitchOption.UseAcceleration:=FALSE;

TrackOption.ModuloFactor:=360;

TrackOption.ModuloPositions:=FALSE;

switches.NumberOfSwitches:=1;

switches.pSwitches:=ADR(CamSwitchArray);

switches.SizeOfSwitches:=SIZEOF(CamSwitchArray);

功能块调用,并且使能之后,会自动追踪轴的位置。当到达设定位置会自动控制EL2262输出精确脉冲信号,触发相机拍照。



TwincatVision组态和程序

 

       飞拍触发拍照之后,获取图像,然后抓取图像中指定区域,获取指定区域中的圆形轮廓,再计算出圆心。通过比较多次抓拍的圆心坐标,来确认飞拍的重复定位精度。经过多次重复测试速度在1.5m/s  ,圆形的坐标值重复精度在一个像素以内。



在Twincat Vision中对相机进行组态,配置成外触发模式,曝光时间50μs.把EL2262的通道1的输出线接入到相机的中。

主要代码如下:





ipImageResDisp



ipImageInDisp



ipImageWorkDisp



测试视频:



video: https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_1110457293780467712

 (本次飞拍测试视觉算法程序由视觉产品经理梁霄编写,苏州办共同测试)

 

 

关注本公众号和个人微信CloudKuang,了解更多应用案例。倍福产品使用问题或工控应用解决方案欢迎交流探讨。



 

 

 

 

 

 

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则