The value of Zmotion is to bring customers more success!
常用场景为: 流水线点胶、流水线产品分拣、流水线产品搬运等。
常见机械结构: XYZ (R)、SCARA、DELTA等。
1、指令介绍
同步跟随是指点的跟随,跟随的是位置,皮带与跟随轴的位置之间由算子去协调位置关系,需要处理的仅仅是第一个跟随时刻的位置。
MOVESYNC指令内重要参数是给出皮带的位置和跟随轴的位置,只需要把跟随点跟随的这个“时刻”静态化处理就行,即可以想象成当皮带上物体到了传感器mark位置时刻皮带停止了。
跟随轴这个时候移动到达产品mark点,这个时刻得到了两组坐标位置:
支持单轴或多轴同步跟随。
(3)syncposition:皮带轴物体被感应到时皮带轴的位置
(4)syncaxis:皮带轴轴号,-1表示没有皮带轴,可以是电机轴,也可以是编码器
(5)pos1:皮带轴物体被感应到时的BASE第1个轴(一般是跟随轴)的绝对位置
(6)posn:皮带轴物体被感应到时的BASE第n个轴的绝对位置
5、指令使用图解(单轴为例)
假设当产品到传感器位置时实现跟随;借助传感器的信号实现皮带位置锁存,即当产品到达传感器锁存的位置时,依靠锁存记录下皮带坐标(syncposition参数),此时将跟随轴X轴运行到产品锁存点位置,得到跟随轴X轴位置为(pos1);
下面示例以单轴跟随为例子,辅助以感应器作为位置记录条件。
⊙ 第一次运行,需要进行对位操作,确认跟随轴的位置,点击产品到位,模拟产品放到了传送带上开始运动,到达锁存位置停止,将跟随轴移动到产品位置处停下。记录下跟随轴此时的坐标,此坐标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) '每次开始前清空标志,避免误判 WHILE 1 base(belt_axis)REGIST(mode)axis(belt_axis) wait until mark if reg_count >= 100 then '位置数组循环存储值判断 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 '以table 10 的值,作为同步结束标志 WHILE 1 if move_count >= 100 then '循环 move_count = 0 endif if mark_flag(move_count) = 1 then '判断是否有产品触发 if abs(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 指令操作 '用table 10 的值来作为其他运动的结束标志,这里使用move_table,是为了使同步完全结束,后面开发时可以将MOVE_TABLE放在其他运动的线程里面使用 MOVE_TABLE(10,10) elseif abs(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
本次,正运动技术运动控制器 如何快速实现单轴/多轴同步跟随功能? 就分享到这里 。
更多精彩内容请关注“ 正运动小助手 ”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师:400-089-8936。
正运动技术专注于运动控制技术研究和通用运动控制软硬件产品的研发,是国家级高新技术企业。正运动技术汇集了来自华为、中兴等公司的优秀人才,在坚持自主创新的同时,积极联合各大高校协同运动控制基础技术的研究,是国内工控领域发展最快的企业之一,也是国内少有、完整掌握运动控制核心技术和实时工控软件平台技术的企业。主要业务有:运动控制卡_运动控制器_EtherCAT运动控制卡_EtherCAT控制器_运动控制系统_视觉控制器__运动控制PLC_运动控制_机器人控制器_视觉定位_XPCIe/XPCI系列运动控制卡等等。