运动控制器八通道PSO的视觉飞拍与精准输出
供稿:深圳市正运动技术有限公司
- 关键词:PSO功能,运动控制器,视觉飞拍
- 作者:正运动技术
- 摘要:正运动技术EtherCAT运动控制器多通道PSO在视觉飞拍与精准输出上的应用。
本文主要介绍正运动技术EtherCAT控制器在多通道视觉飞拍与多点精准输出上的应用,采用高性能ZMC408CE控制器,控制器内部高速FPGA实现硬件位置比较输出、精准输出功能,实现运动控制+多通道视觉飞拍与精准输出功能。 ZMC408CE支持8轴运动控制,最多可扩展至32轴,支持直线插补、任意圆弧插补、空间圆弧、螺旋插补、电子凸轮、电子齿轮、同步跟随等功能。 ZMC408CE支持8轴运动控制,可采用脉冲轴(带编码器反馈)或EtherCAT总线轴,通用IO包含24个输入口和16个输出口,部分IO为高速IO,EtherCAT最快100us的刷新周期。 ZMC408CE支持8个通道的硬件比较输出、硬件定时器、运动中精准输出,还支持8通道PWM输出,对应的输出口为OUT0-7,支持8个通道同时触发硬件比较输出,用于多通道的视觉飞拍场合等。 ZMC408CE的PSO功能如何实现视觉飞拍,请参见下文说明和参考例程。 (2)在精度不足的情况下,可以略微降速,分段运行,但速度不降为0,v-t图如下。 PSO功能由HW_PSWITCH2硬件比较输出指令实现。 PSO(position synchronized output)即位置同步输出,本质是通过采集实时的编码器反馈位置(无编码器可使用输出的脉冲位置)与比较模式设定的位置进行比较,控制OP高速同步输出信号,PSO示意图如下。 (2)高速输入口接传感器,感应并记录零件来料位置; (3)PSO硬件位置比较输出可接2-8个相机进行视觉飞拍、检测和测量; (4)PSO硬件位置比较输出可接吹气口,对视觉的检测结果进行相应筛选分类。 如需咨询转盘视觉筛选应用,请联系正运动技术相关人员。 (2)Mode=2:清除比较点 HW_PSWITCH2(2) mode:2-停止并删除没完成的比较点 使用前需要调用此模式,清除可能没有比较完成的数据。使用过程中也可以发送此命令,停止比较。 mode:3-启动比较器 opnum:对应的输出口 opstate:第一个比较点的输出状态 tablestart:第一个比较点VECTOR_MOVED所在TABLE编号 tableend:最后一个比较点VECTOR_MOVED坐标所在TABLE编号 说明:比较点写在TABLE中,每到达一个比较矢量位置OP反转一次。 使用矢量距离比较时,与VECTOR_MOVED进行比较,建议连续运动前设置VECTOR_MOVED初始值。 2.HW_PS2AXISNUM--设置PS2轴号 HW_PS2AXISNUM(axisnum1)=axisnum2 axisnum1:缓冲轴号 axisnum2:实际操作的轴号 HW指令有单独的缓冲区,此指令用于把没有使用的轴的HW_PSWITCH2缓冲重复利用起来,指向当前运动的主轴,,可以对当前的主轴同时做多个比较。 VECTOR_MOVED=VAR 参数:VAR返回轴当前运动的距离,units单位。 示波器波形如图所示:采样4个通道的波形,依次为轴0的目标位置、轴0的速度、输出口0、输出口1。 输出0跟输出1支持同时进行比较输出,互相不干扰,均参考轴0的位置输出。 程序示例:OUT(0),OUT(1)各自同步轴0,轴1多轴插补的PSO输出。 YT模式:数据随时间变化。 本次,正运动技术运动控制器八通道PSO的视觉飞拍与精准输出,就分享到这里。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
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