### MOVESYNC -- 同步运动

类型 | 运动设置指令
描述 | 同步运动，皮带上物体跟随，此运动非插补运动，不保证运动轨迹为直线。 要求皮带轴与 BASE 跟随轴的长度单位是一样的。 当 BASE 轴完成跟随动作后，此指令结束，结束时如果皮带物体相对感应位置已经运动了一段距离， BASE 轴并不位于 pos 的绝对位置，并且以跟随速度运行中。 MOVESYNC 支持连续使用，会自动保证速度连续，中间可以插入 MOVE_OP 指令，为了避免运动结束时高速跟随中直接停止，最后一条 MOVESYNC 请使用-1 模式。 此指令属于凸轮指令，不支持运动暂停。
语法 | MOVESYNC(mode,synctime,syncposition,syncaxis,pos1[,pos2, pos3…]) mode：模式
模式 | 描述
-1 | 同步结束模式，运动到指定的绝对位置，此模式运动如果后面紧接着其它 MOVESYNC 指令，会被覆盖,此模式下 syncaxis 无效
-2 | 强制结束模式，调用时强制停止原来的 MOVESYNC，运动到指定结束位置，此模式运动如果后面紧接着其它 MOVESYNC 指令，会被覆盖,此模式下 syncaxis 无效
0 | BASE 第 1 个轴（x）跟随皮带轴物体
10 | BASE 第 2 个轴（y）跟随皮带轴物体
20 | BASE 第 3 个轴跟随皮带轴物体
mode=0+angle，angle：皮带旋转角度，角度 = 皮带与 BASE 第 1/2 轴的正向旋转夹角。例如 Mode = PI/4，皮带在 45 度的方向；Mode=PI/2，皮带在 y 方向；Mode=PI，皮带在 x 负向；Mode=(PI*1.75)，皮带在-45 度的方向 synctime：同步时间，ms 单位，本运动在指定时间内完成，完成时 BASE 轴跟上皮带且保持速度一致。0 表示根据运动轴的速度加速度来估计同步时间，可能不准确 syncposition：皮带轴物体被感应到时皮带轴的位置，此指令支持皮带轴坐标循环，但是在指令被调用时确保此参数位置和当前皮带轴位置之间没有发生坐标修改或循环操作，因此此指令调用时不要在坐标循环点附近 syncaxis：皮带轴轴号，-1 表示没有皮带轴，直接运动到 pos1 的位置 pos1：皮带轴物体被感应到时的 BASE 第 1 个轴绝对位置 posn：皮带轴物体被感应到时的 BASE 第 n 个轴绝对位置
适用控制器 | 4 系列 170601 以上固件支持。
例子 | 例一：皮带取料 RAPIDSTOP(2) WAIT IDLE(0) WAIT IDLE(1) BASE(0,1) DPOS=0,0 UNITS=100,100 ATYPE=1,1 SPEED=100,100 ACCEL=1000,1000 DECEL=1000,1000 TRIGGER MOVESYNC(0, 0, 100, 1, 120) '同步到皮带物体上 MOVE_OP(1,1) '下降, 如果 Z 轴下降,可以用 MOVESYNC 运动指令代替 MOVE_OP(0,1) '开吸嘴 MOVESYNC(0, 1000, 100, 1, 120 ) '继续同步 1s MOVE_OP(1,0) '上升 MOVESYNC(-1, 0, 0, -1, 400) '走到放料位置 400 处 MOVE_OP(1,1) '下降 MOVE_OP(0,0) '关吸嘴 MOVE_DELAY(2) '延时 2ms, MOVESYNC 连续运动中不能插入此类语句 MOVE_OP(1,0) '上升 MOVEABS(0) '回到原点 VMOVE(1) AXIS(1) '皮带轴运动 运动轨迹和速度曲线 DPOS(0)垂直刻度 500，无偏移 DPOS(1)垂直刻度 500，无偏移 MSPEED(0)垂直刻度 200，无偏移 MSPEED(1)垂直刻度 200，无偏移 例二：皮带取料，放另外的皮带上 RAPIDSTOP(2) WAIT IDLE(0) WAIT IDLE(1) BASE(0,1,2) DPOS=0,0,0 UNITS=100,100,100 ATYPE=1,1,1 SPEED=1000,100,150 '设置不同速度 ACCEL=1000,1000,1000 DECEL=1000,1000,1000 TRIGGER MOVESYNC(0, 0, 50, 1, 80 ) '同步到皮带物体上 MOVE_OP(0,1) '开吸嘴 MOVE_OP(1,1) '下降,如果 Z 轴下降,可以用 movesync 运动指令代替 MOVESYNC(0, 300, 50, 1, 80 ) '继续同步 2ms MOVE_OP(1,0) '上升 MOVESYNC(0, 0, 100, 2, 150) '走到第二个皮带上对应位置 MOVE_OP(1,1) '下降 MOVE_OP(0,0) '关吸嘴 MOVESYNC(0,300, 100, 2, 150) '同步 2ms MOVE_OP(1,0) '上升 MOVESYNC(-1, 0, 0, -1, 0) '走到停止位置 VMOVE(1) AXIS(1) '皮带轴 1 运动 VMOVE(1) AXIS(2) '皮带轴 2 运动 运动轨迹和速度曲线 DPOS(0)垂直刻度 200，无偏移 DPOS(1)垂直刻度 200，无偏移 MSPEED(0)垂直刻度 200，无偏移 MSPEED(1)垂直刻度 200，偏移-200 DPOS(2)垂直刻度 200，无偏移 MSPEED(2)垂直刻度 200，偏移-200 例三：皮带物体上雕刻 RAPIDSTOP(2) WAIT IDLE(0) WAIT IDLE(1) BASE(0,1,2,6,7) UNITS=100,100,100,100,100 DPOS=0,0,0,0,0 SPEED=100,100,100,100,100 ACCEL=1000,1000,1000,1000,1000 DECEL=1000,1000,1000,1000,1000 TRIGGER ADDAX(6) AXIS(0) '在虚拟轴上雕刻,叠加到实际轴上 ADDAX(7) AXIS(1) BASE(0, 1) MOVESYNC(0, 0, 50, 2, 80 ,100) '同步到皮带物体上 MOVE_TASK(1, task1) '触发叠加轴雕刻 MOVESYNC(0, 1000, 50, 2, 80 ,100) '较长雕刻运动时间 MOVESYNC(-1, 0, 0, -1, 0 ,0) '走到停止位置 VMOVE(1) AXIS(2) '皮带轴运动 END TASK1: DELAY (2) '叠加雕刻过程中绝对运动指令位置会不准,延时避开指令调用 BASE(6, 7) MOVE(100,100) '雕刻，双面划线 WAIT IDLE '等待雕刻结束 BASE(0, 1) MOVESYNC(-2, 0, 0, -1, 0 ,0) '雕刻结束强制走到停止位置 运动轨迹和速度曲线 MSPEED(0)垂直刻度 200，无偏移 MSPEED(1)垂直刻度 200，无偏移 MSPEED(2)垂直刻度 200，无偏移 MSPEED（6）竖直刻度 200，偏移-50 MSPEED（7）竖直刻度 200，偏移-100