0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

运动控制器如何快速实现单轴/多轴同步跟随功能?

伺服与运动控制 来源:正运动技术 2023-06-19 11:15 次阅读

本文主要介绍如何使用MOVESYNC指令快速实现单轴/多轴同步跟随功能,适用于XYZ(R)、SCARA、DELTA等常见机械结构,在流水线点胶、流水线产品分拣、流水线产品搬运等场景中广泛应用。

阅读本文,学习同步跟随的原理和实现方法,提高工作效率!

01 同步跟随功能介绍

同步跟随的主要作用是快速控制运动机构,实现产线上产品的同步和跟随,再辅助其他运动指令实现产线产品的抓取、分拣、点胶等功能需求;

同步跟随的功能主要由MOVESYNC指令实现,该指令方便用户通过程序快速实现单轴或多轴同步跟随功能,实现多皮带抓取摆放,属于凸轮指令的一种。

1常用场景为:流水线点胶、流水线产品分拣、流水线产品搬运等。

2常见机械结构:XYZ (R)、SCARA、DELTA等。

wKgaomSPyH-AJ_v4AAS4oKibC7w156.png

02 MOVESYNC指令说明

1、指令介绍

同步跟随是指点的跟随,跟随的是位置,皮带与跟随轴的位置之间由算子去协调位置关系,需要处理的仅仅是第一个跟随时刻的位置。

MOVESYNC指令内重要参数是给出皮带的位置和跟随轴的位置,只需要把跟随点跟随的这个“时刻”静态化处理就行,即可以想象成当皮带上物体到了传感器mark位置时刻皮带停止了。

跟随轴这个时候移动到达产品mark点,这个时刻得到了两组坐标位置:

第一组:皮带的位置syncposition。

第二组:跟随轴的位置pos1,只需要将这两个位置对应填进指令内即可,算子会自动计算规划两者位置,保证两者相对静止。

2、指令函数语法

MOVESYNC(mode,synctime,syncposition,syncaxis,pos1[,pos2, pos3…])

支持单轴或多轴同步跟随。

3、一般使用形式

base(0,1,2) //指定参与同步跟随轴号,这里以0,1,2为例

MOVESYNC (mode,加速时间,syncposition,syncaxis,pos1,pos2, pos3) //加速段

MOVESYNC(mode,同步时间,syncposition,syncaxis,pos1,pos2, pos3) //同步段

MOVESYNC(mode,减速时间,syncposition,syncaxis,pos1,pos2, pos3) //减速段(复位段)

一个完整的跟随过程分为三步,加工头先加速达到与皮带相同的速度,实现了同步运动,在同步段完成加工操作,然后加工头再回到等待位置,等待下一次触发加工。触发条件采用传感器检测来料,记录来料的位置,填入MOVESYNC指令。

4、指令参数说明

(1)mode:模式

加速段和同步段一般使用模式0,一般是在X轴方向跟随,减速段一般使用模式-2(可以强制结束前面的跟随运动)。

模式 描述
-1 同步结束模式,运动到指定的绝对位置,此模式运动如果后面紧接着其它MOVESYNC指令,会被覆盖,此模式下syncaxis无效
-2 强制结束模式,调用时强制停止原来的MOVESYNC,运动到指定结束位置,此模式运动如果后面紧接着其它MOVESYNC指令,会被覆盖,此模式下syncaxis无效
0 BASE第1个轴(x)跟随皮带轴物体
10 BASE第2个轴(y)跟随皮带轴物体
20 BASE第3个轴跟随皮带轴物体

特别说明:当跟随的产线与机台存在夹角时使用模式0,并且加上机台与产线的夹角的弧度值实现跟随偏斜补偿,例:

mode=0+angle,angle:皮带旋转角度,角度=皮带与BASE第1/2轴的正向旋转夹角。例如:

① Mode=PI/4,皮带在45度的方向;

② Mode=PI/2,皮带在y方向;

③ Mode=PI,皮带在x负向;

④ Mode=(PI*1.75),皮带在-45度的方向;

(2)synctime:同步时间,时间单位ms,同步时间一般分为三段

加速段时间多久代表机台跟随轴加速达到产线速度,并且跟上目标产品,0表示根据运动轴的速度加速度来估计同步时间,可能不准确,一般相对设置长点,确保能实现同步;

同步段时间表示跟随产品运动多长时间,抓取等动作在此期间完成,一般相对设置较长,保证动作完成;

减速段时间表示多久回到指定位置,一般减速段时间和加速段一样,推荐使用-2模式;

(3)syncposition:皮带轴物体被感应到时皮带轴的位置

特别说明:此指令支持皮带轴坐标循环,但是在指令被调用时确保此参数位置和当前皮带轴位置之间没有发生坐标修改或循环操作,因此此指令调用时不要在坐标循环点附近;

(4)syncaxis:皮带轴轴号,-1表示没有皮带轴,可以是电机轴,也可以是编码器

(5)pos1:皮带轴物体被感应到时的BASE第1个轴(一般是跟随轴)的绝对位置

(6)posn:皮带轴物体被感应到时的BASE第n个轴的绝对位置

5、指令使用图解(单轴为例)

movesync指令只需要给出同步跟随触发时的几个轴的位置参数即可,作为启动同步跟随的条件,再加速达到同步之后执行加工。

首先构思搭建一个跟随模型,如下:

wKgZomSPyH-Ab2mxAAPkSnyqXx0109.png

假设当产品到传感器位置时实现跟随;借助传感器的信号实现皮带位置锁存,即当产品到达传感器锁存的位置时,依靠锁存记录下皮带坐标(syncposition参数),此时将跟随轴X轴运行到产品锁存点位置,得到跟随轴X轴位置为(pos1);

这样就得到了MOVESYNC指令里面的坐标位置,即同步时刻皮带的位置(syncposition)、跟随轴的位置(pos1),再根据实际运行情况规划出加速段的时间、同步段的时间和减速段的时间,指令运行即可实现一次同步跟随过程。

03 主代码

下面示例以单轴跟随为例子,辅助以感应器作为位置记录条件。

在没有机台的情况下,可手动给锁存信号,模拟检测到物料,记录同步运动指令要填写的位置信息,在HMI界面上点击启动开始执行同步运动,程序的主要函数调用关系如下图。

wKgZomSPyH-AUIoJAAEZ3Dv9Bek419.png

配置HMI界面便于操作,支持修改轴参数,灵活调整同步跟随各阶段的时间,通过手动运动操作跟随轴到等待触发同步运动的位置,并记录下来跟随轴的当前位置,然后启动皮带轴的运动,在运动中手动给传感器信号,触发同步运动,跟随轴在MOVESYNC指令的控制下完成一次同步跟随动作。

界面显示了皮带轴和跟随轴的位置信息,并且方便配置轴的基础参数,同步运动加速,同步和减速段的时间。

wKgaomSPyH-AMakGAAAooMefQEA196.png

HMI操作步骤:

⊙第一次运行,需要进行对位操作,确认跟随轴的位置,点击产品到位,模拟产品放到了传送带上开始运动,到达锁存位置停止,将跟随轴移动到产品位置处停下。记录下跟随轴此时的坐标,此坐标MOVESYNC指令将会用到。

⊙配置轴号,轴的运动参数,合理设置三段运动的时间。

⊙点击启动,传送带运行,通过模拟信号给来料检测信号,触发锁存得出皮带轴坐标,触发同步跟随开始。

注意:此例程因为用到了硬件锁存功能,需要在控制器平台运行,没有传感器时,可以将OUT口短接到IN口,通过OP指令模拟传感器锁存信号的输入,示例将OUT0接入IN0。

锁存函数:依靠锁存传感器检测来料,触发同步跟随运动,锁存功能记录开始跟随时,锁存皮带轴位置,记录下当前同步轴的位置信息,传入MOVESYNC指令参数。

global sub get_mark_pos(mode) '使用3或者4,其他方式修改等待条件和获取的数据寄存器,reg_pos
    REG_INPUTS(belt_axis) = $0000    '映射皮带锁存输入
    reg_count=0
    DMSET mark_flag(0,100,-1)   '每次开始前清空标志,避免误判
    WHILE1
base(belt_axis)REGIST(mode)axis(belt_axis)
waituntilmark
ifreg_count>=100then'位置数组循环存储值判断
    reg_count = 0
endif
mark_pos(reg_count)=REG_POS
?REG_POS
mark_flag(reg_count)=1
reg_count=reg_count+1
    wend
endsub
同步跟随函数:依靠锁存函数给的参数,设置跟随时间,执行同步跟随动作,分为加速、同步和减速回原位置三个阶段,注意每个阶段的时间规划合理,完成一个跟随步骤之后等待触发下一次跟随。
global sub run_sync()
base(sync_axis)
move_count=0'运动计数清0
TABLE(10)=-1'以table10的值,作为同步结束标志
WHILE1
        if move_count >= 100 then    '循环
            move_count = 0
endif
ifmark_flag(move_count)=1then'判断是否有产品触发
ifabs(sync_star_dis+mark_pos(move_count))>=abs(mpos(belt_axis))then'尚在有效触发距离内,即可以跟随
    '开始跟随
    '第一段:加速段(追赶段)跟随模式看机构具体而定,一般皮带编码器方向与跟随轴运动方向一致就用0反方向就用0+ pi/2
MOVESYNC(0,accel_time,mark_pos(move_count),belt_axis,sync_pos)
'第二段:同步段与加速段唯一不同是时间
MOVESYNC(0,sync_time,mark_pos(move_count),belt_axis,sync_pos)
'此处可以开启线程去操作其他动作
'使用move_task指令操作
'用table10的值来作为其他运动的结束标志,这里使用move_table,是为了使同步完全结束,后面开发时可以将MOVE_TABLE放在其他运动的线程里面使用
MOVE_TABLE(10,10)
elseifabs(sync_star_dis+mark_pos(move_count))< abs(mpos(belt_axis)) then     '超出范围,直接跳过,
                TABLE(10) = 10
                ?"跳过"
                '?abs(sync_star_dis + mark_pos(move_count)) , abs(mpos(belt_axis))
            endif
            '判断结束
            wait UNTIL table(10) = 10
            '第三段:复位段   以当前位置为停止位置,可以添加变量设置待机位。
            MOVESYNC(-1, decel_time, mark_pos(move_count),-1, sync_pos)
            move_table(10,-1)   '结束标志复位
            mark_flag(move_count) = -1     '同步条件标志复位
            move_count = move_count + 1    '计数+ 1
        endif
    wend
endsub

04 运行效果

跟随轴(轴0)跟随皮带(轴2)运动的速度曲线:加速段,同步段,减速回起点。

wKgaomSPyJ-AKpfdAABFliUBHlI869.png

跟随轴(轴0)跟随皮带(轴2)运动的位置曲线。

wKgZomSPyJ-AHDJKAAA2eb8KHZU923.png

本次,正运动技术运动控制器如何快速实现单轴/多轴同步跟随功能?就分享到这里。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 运动控制器
    +关注

    关注

    2

    文章

    401

    浏览量

    24703
  • 流水线
    +关注

    关注

    0

    文章

    120

    浏览量

    25726
  • 指令
    +关注

    关注

    1

    文章

    607

    浏览量

    35693
  • 函数
    +关注

    关注

    3

    文章

    4327

    浏览量

    62569

原文标题:正运动技术运动控制器如何快速实现单轴/多轴同步跟随功能?

文章出处:【微信号:伺服与运动控制,微信公众号:伺服与运动控制】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    运动技术运动控制器如何快速实现/同步跟随功能

    运动MOVESYNC指令实现同步跟随功能
    的头像 发表于 05-31 09:52 930次阅读
    正<b class='flag-5'>运动</b>技术<b class='flag-5'>运动</b><b class='flag-5'>控制器</b>如何<b class='flag-5'>快速</b><b class='flag-5'>实现</b><b class='flag-5'>单</b><b class='flag-5'>轴</b>/<b class='flag-5'>多</b><b class='flag-5'>轴</b><b class='flag-5'>同步</b><b class='flag-5'>跟随</b><b class='flag-5'>功能</b>?

    伺服控制同步精密运动

    这些方案来制造产品。图1. 自动化机器控制系统 在伺服控制系统中实现同步精密
    发表于 01-25 16:48

    通过实时网络实现运动控制同步

    的电压指令(v*)和运动控制器的工厂反馈(i, ω, θ)。这种控制拓扑由功能强大的多核PLC和实时网络实现,具有诸多优势。首先,该架构具有
    发表于 03-30 09:38

    如何通过实时网络实现运动同步控制

    实时确定性以太网协议(例如EtherCAT)已经能够支持运动控制系统的同步运行。1 该同步
    发表于 09-11 11:51

    高性能运动控制器DMC2410功能简介

    功能简介高性能运动控制器DMC2410是一款基于PCI总线的高性能运动
    发表于 09-01 06:26

    运动控制器持续运动设置

    运动控制器有专用的持续运动控制指令,运动控制器持续发脉冲,
    发表于 02-17 14:03

    运动控制器在转台控制系统中的应用

    提出了一种基于运动控制器的转台控制系统的组成方案.给出了转台的基本组成, 介绍了
    发表于 09-23 11:58 25次下载

    基于DSP的运动控制器的研究与设计

    基于DSP的运动控制器的研究与设计。
    发表于 03-29 14:11 7次下载

    PLCopen运动功能块研究

    针对PLCopen及主/从结构功能块无法实现复杂多维
    发表于 03-12 15:32 4次下载
    PLCopen<b class='flag-5'>轴</b>组<b class='flag-5'>运动</b><b class='flag-5'>功能</b>块研究

    步进电机插补控制器步进电机运动控制控制方法pdf资料分享

    步进电机插补控制器步进电机运动控制
    发表于 04-11 10:24 29次下载

    运动控制同步通过实时网络实现

    实时确定性以太网协议(例如EtherCAT)已经能够支持运动控制系统的同步运行。1 该同步
    的头像 发表于 04-16 16:04 5977次阅读
    <b class='flag-5'>多</b><b class='flag-5'>轴</b><b class='flag-5'>运动</b><b class='flag-5'>控制</b>的<b class='flag-5'>同步</b>通过实时网络<b class='flag-5'>实现</b>

    GTN系列网络运动控制器的数据手册免费下载

    GTN系列网络运动控制器是一款网络型、模块化的插卡式运动控制器
    发表于 08-19 08:00 1次下载
    GTN系列<b class='flag-5'>多</b><b class='flag-5'>轴</b>网络<b class='flag-5'>运动</b><b class='flag-5'>控制器</b>的数据手册免费下载

    通过实时网络实现运动控制同步

    作者:Jens Sorensen, Dara O’Sullivan, 和 Christian Aaen 摘要 实时确定性以太网协议(例如EtherCAT)已经能够支持运动控制系统的
    发表于 02-03 07:28 1次下载
    通过实时网络<b class='flag-5'>实现</b><b class='flag-5'>多</b><b class='flag-5'>轴</b><b class='flag-5'>运动</b><b class='flag-5'>控制</b>的<b class='flag-5'>同步</b>

    基于运动控制芯片MCX314As的运动控制器的设计

    以 TMS320LF2407A 和 MCX314As 运动控制芯片为核心硬件, 自主研发了基于 TMS320LF2407A 和 MCX314As 的
    发表于 05-19 15:17 24次下载

    全国产EtherCAT运动控制边缘控制器(四):参数配置与运动PC上位机C++控制

    全国产EtherCAT运动控制边缘控制器参数设置与
    的头像 发表于 09-27 15:42 698次阅读
    全国产EtherCAT<b class='flag-5'>运动</b><b class='flag-5'>控制</b>边缘<b class='flag-5'>控制器</b>(四):<b class='flag-5'>轴</b>参数配置与<b class='flag-5'>单</b><b class='flag-5'>轴</b><b class='flag-5'>运动</b>PC上位机C++<b class='flag-5'>控制</b>