### MOVELINK -- 自动凸轮

类型 | 同步运动指令
描述 | 此指令用于自定义的凸轮运动，该运动带有可设置的加减速阶段。 被连接轴为参考轴，连接轴为跟随轴。 连接轴的距离分成 3 个阶段应用于参考轴的运动，分别是加速部分、匀速部分和减速部分。 在加速和减速阶段为了与速度匹配，link distance（基本轴运动距离）必须是 distance（跟随轴运动距离）的两倍。 请确保指令传递的距离参数*units 是整数个脉冲，否则出现浮点数会导致运动有细微误差。
语法 | MOVELINK (distance, link dist, link acc, link dec, link axis[,link options] [,link pos][,link offpos]) distance：从连接开始到结束，跟随轴移动的距离，此参数可正可负，为正数正方向跟随，为负数负方向跟随，采用 units 单位 link dist：参考轴在连接的整个过程中移动的绝对距离，采用 units 单位 link acc：在跟随轴加速阶段，参考轴移动的绝对距离，采用 units 单位 link dec：在跟随轴减速阶段，参考轴移动的绝对距离，采用 units 单位 注：如果参数 3 和参数 4 的和大于第 2 个参数，他们会被自动按比例减小，使其和值与第 2 个参数值相等 link axis：参考轴的轴号 link options：连接模式选项，不同的二进制位代表不同的意义
模式 | 位 | 描述
1 | 位 0 | 连接精确开始于参考轴上 MARK 事件被触发的时刻
2 | 位 1 | 连接开始于参考轴到达一个绝对位置时(见 link pos 参数描述)
4 | 位 2 | 当此位被设置时，MOVELINK 会自动重复执行并且可以反向(这个模式可以通过设置轴参数 REP_OPTION 的第 1 位为 1 来清除)
8 | 位 3 | 当设置时,采用 S 曲线加减速。20170502 以上固件支持
16 | 位 4 | 从中间某个位置启动，配合掉电中断实现恢复跟随
32 | 位 5 | 只有参考轴为正向运动才连接
256 | 位 8 | 连接精确开始于参考轴上 MARKB 事件被触发的时刻，需要最新固件支持
link pos：当 link options 参数设置为 2 时，该参数表示基本轴在该绝对位置值时，连接开始 link offpos：当 link_options 参数 bit4 置为 1 时，该参数表示主轴已经运行完的相对位置。20170428 以上固件支持
适用控制器 | 通用
例子 | 例一： RAPIDSTOP(2) WAIT IDLE(0) WAIT IDLE(1) BASE(0,1) '轴 0 为跟随轴，轴 1 为参考轴 UNITS=100,100 ATYPE=1,1 DPOS=0,0 SPEED=100,100 ACCEL=2000,2000 DECEL=2000,2000 TRIGGER '自动触发示波器 MOVELINK(100,100,0,0,1) AXIS(0) '不设置加减速阶段时，效果与 CONNECT 相同，区别在不需要考虑 UNITS 的不同，且不会有累积误差。此时运动比例 1:1 MOVE(150) AXIS(1) '轴 1 运动 150，轴 0 跟随轴 1 运动完 100 插补轨迹与速度曲线 DPOS(0)垂直刻度 100，无偏移 DPOS(1)垂直刻度 100，偏移 10 MSPEED(0)垂直刻度 100，无偏移 MSPEED(1)垂直刻度 100，偏移 10 MOVELINK(50,100,0,0,1) 竖直刻度同上 例二：飞剪应用 型材持续运动，工作台先静止；直到型材持续运动了某段距离，工作台开始加速；待工作台速度与型材一致，然后开关 S1 工作刀具下剪，剪切完后刀具回升；工作台开始减速，然后退回起始点。重复过程，剪切得到设定长度的型材。 假设要切的型材长度为 4m，工作台运行距离 1m，轴 1 为基本轴（型材传送），轴 0 为跟随轴（追剪工作台），OUT0 口控制刀具，飞剪部分程序如下： RAPIDSTOP(2) WAIT IDLE(0) WAIT IDLE(1) BASE(0,1) UNITS=10000,10000 ATYPE=1,1 DPOS=0,0 SPEED=1,1 '型材运行速度 1m/s,60m/min ACCEL=2,2 DECEL=2,2 VMOVE(1) AXIS(1) '型材持续运动 TRIGGER '自动触发示波器 WHILE 1 BASE(0) MOVELINK(0,1,0,0,1) AXIS(0) '型材运动 1m 前，工作台静止 MOVELINK(0.4,0.8,0.8,0,1) AXIS(0) '工作台加速阶段 MOVELINK(0.2,0.2,0,0,1) AXIS(0) '速度同步跟随 0.2m MOVE_OP2(0,on,1000) '刀具下剪，1s 后回升(时间要计算好) MOVELINK(0.4,0.8,0,0.8,1) AXIS(0) '工作台减速阶段 MOVELINK(-1,1.2,0.5,0.5,1) AXIS(0) '工作台回到起始点 WEND 运动轨迹和速度曲线： DPOS(0)垂直刻度 1，无偏移 MSPEED(0)垂直刻度 1，无偏移 DPOS(1)垂直刻度 1，无偏移 MSPEED(1)垂直刻度 1，无偏移 一个周期内的运行曲线： 工作台(跟随轴)的运动距离：0.4(加速阶段)+0.2(跟随同步)+0.4(减速阶段)=1m 单位，然后-1m 返回运动。 型材(参考轴)的运动距离：1+0.8+0.2+0.8+1.2=4m 单位，全程匀速。 例三：设置 link options bit3=1 时，从轴追剪轴采用 S 曲线加减速 RAPIDSTOP(2) WAIT IDLE(0) WAIT IDLE(1) DATUM(0) BASE(0,1) UNITS=10000,10000 ATYPE=1,1 DPOS=0,0 SPEED=1,1 ''型材运行速度 1m/s,60m/min ACCEL=2,2 DECEL=2,2 SRAMP=200,200 VMOVE(1) AXIS(1) '型材持续运动 TRIGGER '自动触发示波器 WHILE 1 BASE(0) MOVELINK(0,1,0,0,1,8) AXIS(0) '型材运动 1m 前，工作台静止 MOVELINK(0.4,0.8,0.8,0,1,8) AXIS(0) '工作台加速阶段 MOVELINK(0.2,0.2,0,0,1,8) AXIS(0) '速度同步跟随 0.2m MOVE_OP2(0,on,1000) '刀具下剪，1s 后回升(时间要计算好) MOVELINK(0.4,0.8,0,0.8,1,8) AXIS(0) '工作台减速阶段 MOVELINK(-1,1.2,0.5,0.5,1,8) AXIS(0) '工作台回到起始点 WEND 运动轨迹和速度曲线： DPOS(0)垂直刻度 1，无偏移 MSPEED(0)垂直刻度 1，无偏移 DPOS(1)垂直刻度 1，无偏移 MSPEED(1)垂直刻度 1，无偏移
相关指令 | MOVESLINK ，MOVELINK_MODIFY