EtherCAT控制器在多通道视觉飞拍与多点精准输出上的应用

描述

本文主要介绍正运动技术EtherCAT控制器在多通道视觉飞拍与多点精准输出上的应用,采用高性能ZMC408CE控制器,控制器内部高速FPGA实现硬件位置比较输出、精准输出功能,实现运动控制+多通道视觉飞拍与精准输出功能。

01 硬件介绍

ZMC408CE是正运动推出的一款多轴高性能EtherCAT总线运动控制器,具有EtherCAT、EtherNET、RS232、CAN和U盘等通讯接口,ZMC系列运动控制器可应用于各种需要脱机或联机运行的场合。

FPGA

ZMC408CE支持8轴运动控制,最多可扩展至32轴,支持直线插补、任意圆弧插补、空间圆弧、螺旋插补、电子凸轮、电子齿轮、同步跟随等功能。

ZMC408CE支持8轴运动控制,可采用脉冲轴(带编码器反馈)或EtherCAT总线轴,通用IO包含24个输入口和16个输出口,部分IO为高速IO,EtherCAT最快100us的刷新周期。

ZMC408CE支持8个通道的硬件比较输出、硬件定时器、运动中精准输出,还支持8通道PWM输出,对应的输出口为OUT0-7,支持8个通道同时触发硬件比较输出,用于多通道的视觉飞拍场合等。

ZMC408CE支持PLC、Basic、HMI组态三种编程方式。PC上位机API编程支持C#、C++、LabVIEW、Matlab、Qt、Linux、VB.Net、Python等接口。

ZMC408CE内置高精度PSO位置同步输出功能,在加工圆角与曲线时即使进行有减速调整,在高速加工的场合中也能控制激光输出的等间距输出。

ZMC408CE的PSO功能如何实现视觉飞拍,请参见下文说明和参考例程。

02 视觉飞拍

针对传统的视觉定拍,生产效率不够高问题,在一些应用场合,越来越多的使用视觉飞拍来完成视觉拍照功能。即机构按照既定的轨迹运动,当运行到拍照点时,运动轴不停,瞬间完成飞行抓拍的功能。整个过程中移动机构不停止,从而节省机构运行时间,满足效率,并且能保证运行精度。

(1)在精度保证的同时,可以不减速,v-t图如下。

FPGA

(2)在精度不足的情况下,可以略微降速,分段运行,但速度不降为0,v-t图如下。

FPGA

03 PSO触发飞拍

为保证视觉飞拍的精度,需要在高速运动的场合完成触发拍照,通过控制器的PSO功能可高速连续的触发输出,并使得触发飞拍信号之后,输出口能在一个脉冲内响应。

PSO功能由HW_PSWITCH2硬件比较输出指令实现。

PSO(position synchronized output)即位置同步输出,本质是通过采集实时的编码器反馈位置(无编码器可使用输出的脉冲位置)与比较模式设定的位置进行比较,控制OP高速同步输出信号,PSO示意图如下。

FPGA

PSO一般与激光器(或点胶喷射阀等设备)同步输出信号进行相位同步,在运动轨迹的所有阶段以恒定的空间(或者恒定时间)间隔触发输出开关,包括加速、减速和匀速段,从而实现脉冲能量均匀地作用在被加工物体上。

PSO功能的特点就是能高速且稳定的输出信号,因为输出精度足够高,所以能够在整个运动轨迹中以固定的距离触发输出信号而不用考虑总体速度。

即在直线部分以很快的速度运动,而在圆角部分减速的同时也能保证输出间距恒定,通常圆角加工部分在整个加工过程中占有比较小的部分,这样在保证加工效果的同时,就可以最大限度地提高产能。

FPGA

  ZMC408CE运动控制器的PSO功能能应用在转盘视觉筛选机上,高速控制视觉飞拍筛选,高精度点胶加工,高精度激光加工等应用优势如下:  

(1)可实时控制转盘,记录编码器的反馈位置;

(2)高速输入口接传感器,感应并记录零件来料位置;

(3)PSO硬件位置比较输出可接2-8个相机进行视觉飞拍、检测和测量;

(4)PSO硬件位置比较输出可接吹气口,对视觉的检测结果进行相应筛选分类。

FPGA

通过振动盘将零件输送到高透明玻璃转台,其次通过传感器去感应来料的零件,再通过ZMC408CE的高速锁存输入口记录来料的实际位置,当转盘转动到视觉检测工位时,控制器通过高速输出口触发相机拍照,然后进行图像处理运算,最后根据预设的标准检测条件进行自动检测筛选,并剔除不良品。

FPGA

如需咨询转盘视觉筛选应用,请联系正运动技术相关人员。

04 PSO功能实现指令

触发连续视觉飞拍的命令是HW_PSWITCH2,HW_PSWITCH2主要用于设定触发模式和比较输出的位置,部分模式可搭配HW_TIMER硬件定时器使用,精准控制输出时刻。

1.HW_PSWITCH2--总线硬件位置比较输出 HW_PSWITCH2(1,opnum,opstate,tablestart,tableend[,direction]) 此指令模式很多,适用于不同的场合,支持一维二维三维的比较,本文主要以TABLE比较点的模式1和模式3展开说明,其他模式参见Basic编程手册。

每个轴均有各自的硬件比较输出缓冲区。

读取语法:Buff = HW_PSWITCH2([axisnum])

(1)Mode=1:单轴比较

mode:1-启动比较器 opnum:对应的输出口 opstate:第一个比较点的输出状态 tablestart:第一个比较点绝对坐标所在TABLE编号 tableend:最后一个比较点绝对坐标所在TABLE编号 direction:第一个点判断方向,0坐标负向,1坐标正向,-1不使用方向 此模式较为简单,需要借助TABLE寄存器,把需要比较输出的位置坐标先存储到TABLE寄存器,然后PSO控制OP口每到达一个比较点的位置便反转一次,直到全部坐标点比较完成。示意图如下,P表示比较点,展示六个比较点的OP输出情况。

FPGA

(2)Mode=2清除比较点

HW_PSWITCH2(2)

mode:2-停止并删除没完成的比较点

使用前需要调用此模式,清除可能没有比较完成的数据。使用过程中也可以发送此命令,停止比较。

(3)Mode=3:矢量比较方式

mode:3-启动比较器

opnum:对应的输出口

opstate:第一个比较点的输出状态

tablestart:第一个比较点VECTOR_MOVED所在TABLE编号

tableend:最后一个比较点VECTOR_MOVED坐标所在TABLE编号

说明:比较点写在TABLE中,每到达一个比较矢量位置OP反转一次。

使用矢量距离比较时,与VECTOR_MOVED进行比较,建议连续运动前设置VECTOR_MOVED初始值。

FPGA

2.HW_PS2AXISNUM--设置PS2轴号

HW_PS2AXISNUM(axisnum1)=axisnum2

axisnum1:缓冲轴号

axisnum2:实际操作的轴号

HW指令有单独的缓冲区,此指令用于把没有使用的轴的HW_PSWITCH2缓冲重复利用起来,指向当前运动的主轴,,可以对当前的主轴同时做多个比较。

3.VECTOR_MOVED--当前运动距离

VECTOR_MOVED=VAR

参数:VAR返回轴当前运动的距离,units单位。

对多轴插补是矢量距离,使用之前最好手动清零,使用模式3前注意此指令的初始值设置是否正确。

05 单轴多通道PSO视觉飞拍

单轴多通道PSO视觉飞拍是在单轴运动过程中运动到指定位置触发多个不同相机进行飞拍,触发位置来源可以是自行设定也可以通过传感器锁存抓取。

飞拍需要支持硬件位置比较输出、精准输出功能以及带多个独立HW通道的控制器,ZMC408CE有8个独立的HW通道,可以同时给相机输出信号触发飞拍采集。

FPGA

程序示例:

OUT(0)和OUT(1)同时输出。

 

RAPIDSTOP(2)
WAIT IDLE(0)
BASE(0)
ATYPE=1          '脉冲轴类型,比较需求位置DPOS
'ATYPE=4          '带编码器的脉冲轴类型,比较编码器的位置MPOS
UNITS=5000
ACCEL=1000
DECEL=1000
SPEED=100
SRAMP=50
DPOS=0
MPOS=0
OP(0,OFF)
OP(1,OFF)
AXIS_ZSET(0)=19       '编码器精准输出
HW_PS2AXISNUM(1)=0    '将轴1缓冲指向轴0,-1取消
HW_PS2AXISNUM(0)=0    '将轴0缓冲指向轴0,-1取消
HW_PSWITCH2(2) AXIS(0)    '清空轴0比较点
HW_PSWITCH2(2) AXIS(1)    '清空轴1比较点
TABLE(0,50,52,75,77,100,102,125,127,150,152,175,177)    '设置比较点的table列表
TABLE(20,50,52,60,62,70,72,80,82,100,101,130,131,140,141)    '设置比较点的table列表
HW_PSWITCH2(1,0,1,0,11,1)  AXIS(0)    '硬件位置比较输出,针对OUT(0)
HW_PSWITCH2(1,1,1,20,33,1) AXIS(1)    '硬件位置比较输出,针对OUT(1)
TRIGGER   '触发示波器
MOVEABS(200)
END

 

示波器波形如图所示:

采样4个通道的波形,依次为轴0的目标位置、轴0的速度、输出口0、输出口1。

输出0跟输出1支持同时进行比较输出,互相不干扰,均参考轴0的位置输出。

FPGA

06 多轴多通道PSO视觉飞拍

多轴多通道PSO视觉飞拍主要应用于多个相机在多轴插补运动时需要多点PSO视觉飞拍的情况。

在项目中常常需要的是在插补直线或插补圆弧轨迹上进行比较输出,这个时候如果将插补轨迹拆分成对应的各个轴坐标数据,运算量会非常大,不符合实际应用。

所有对于多轴位置比较触发飞拍时,我们常常会使用插补运动矢量合成距离来确定整个插补运动坐标位置,在这个坐标上设置比较点位置进行比较。

程序示例:

OUT(0),OUT(1)各自同步轴0,轴1多轴插补的PSO输出。 

 

RAPIDSTOP(2)
WAIT IDLE(0)
WAIT IDLE(1)
BASE(0,1)
ATYPE=1,1
UNITS=1000,1000
ACCEL=1000,1000
DECEL=1000,1000
SPEED=100,100
SRAMP=50,50
MERGE=1        '开启连续插补
DPOS=0,0
MPOS=0,0
OP(0,OFF)
OP(1,OFF)
VECTOR_MOVED=0
AXIS_ZSET(0)=19                      '编码器精准输出
HW_PS2AXISNUM(1)=-1                   '取消设置
HW_PS2AXISNUM(1)=0                    '设置PS2轴号,将轴1缓冲指向轴0
HW_PSWITCH2(2) AXIS(0)          '清空轴0比较点
HW_PSWITCH2(2) AXIS(1)            '清空轴1比较点
TABLE(0,50,52,75,77,100,102,125,127,150,152,175,177)        '设置比较点的table列表
TABLE(20,50,55,80,88,100,102,130,135,160,162,175,180)        '设置比较点的table列表
HW_PSWITCH2(3,0,1,0,11) AXIS(0)     '硬件位置比较输出,针对OUT(0)
HW_PSWITCH2(3,1,1,20,31) AXIS(1)    '硬件位置比较输出,针对OUT(1)
TRIGGER                    '触发示波器
BASE(0,1)                 '两轴插补
MOVEABS(40,40)         '直线插补
MOVECIRCABS(40,-40,40,0,1) '圆弧插补
MOVEABS(0,0)         '直线插补
END
示波器波形如图所示:

采样4个通道的波形,依次为轴0的目标位置,轴1的目标位置、输出口0、输出口1。

输出0跟输出1在不同的位置同时进行比较输出,每到一个比较点位置输出口反转一次,总共比较12次,每次输出脉冲宽度控制在2个脉冲内均支持。

 

YT模式:数据随时间变化。

FPGA

XY模式:两轴合成插补轨迹。

FPGA

XYZ模式:三通道数据合成轨迹,OP(0)随XY轴合成矢量距离变化情况。

FPGA

XYZ模式:三通道数据合成轨迹,OP(1)随XY轴合成矢量距离变化情况。

FPGA

本次,正运动技术运动控制器八通道PSO的视觉飞拍与精准输出,就分享到这里。





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分