您现在所在的是:

运动控制

回帖:0个,阅读:10 [上一页] [1] [下一页]
83
运动控制小正
文章数:299
年度积分:83
历史总积分:83
注册时间:2022/9/5
发站内信
发表于:2026/1/16 17:41:11
#0楼
运动缓冲原理

在运行运动指令时,控制器提供了一个缓冲区来保存进入运动缓冲的运动缓冲队列。运动指令存到运动缓冲区,在缓冲区里取出指令再执行,省略了程序扫描的时间,大大提升了实时性,同时也使得程序能正常向下扫描,不会堵塞。
ZMotion运动控制器具有多级的运动缓冲,并且遵循先进先出原则。当运动缓冲开启的时候,程序在扫描识别到程序任务的第一条运动指令时,将运动指令分配到指定轴的运动缓冲区,电机开始运动,此时程序继续向下扫描到第二条运动指令时,再往运动缓冲区中存,在不断扫描存入运动指令的同时,从运动缓冲区中依次取出运动指令执行。
运动缓冲原理参考下图:

1.MTYPE,NTYPE分别是当前运行的运动指令类型和MTYPE后面的第一条指令类型。
2.任意一段程序的运动指令都可以进入任意轴的运动缓冲区,由轴号指定。
3.每个轴的运动缓冲区都是独立的,互不干扰。
附件 运动缓冲原理.jpg

如下图:当运动缓冲区还有空间,运动指令就会进入运动缓冲区。然后可以通过MOVE_MARK设置标识,表示下一条要调用的运动指令的MARK标号,这个标号会和运动指令一起写入运动缓冲。等指令执行完成后,则退出运动缓冲区,之前的下一条指令变成正在运动指令,循环往复,直到缓冲区没有指令去执行。

附件 说明.jpg

缓冲多条运动指令时,为了判断当前运动执行到哪一条,提供MOVE_MARK运动标号和MOVE_CURMARK当前运动标号指令。
MOVE_MARK运动标号每扫描一条运动指令+1;

MOVE_CURMARK指令为当前运动的标号,提示当前运动到第几条运动指令,所有运动完成后为-1。

当前运动完成后会自动执行运动缓冲区内的下一条运动。运动指令全部执行完后,运动缓冲区为空,或者使用CANCEL/RAPIDSTOP指令清空运动缓冲区。


扩展说明:

上图中的FORCE_SPEED、ENDMOVE_SPEED和STRATMOVE_SPEED指令属于SP运动指令。
SP指令也属于运动指令,使用SP运动指令(如MOVESP、MOVECIRCSP等直接在运动指令后方加上SP)时,SP速度FORCE_SPEED、ENDMOVE_SPEED和STRATMOVE_SPEED会随SP运动指令写入运动缓存区。
SP运动指令与运动指令的区别:
MOVE(100)的速度是SPEED=100,MOVESP(100)的速度是FORCE_SPEED=200。具体见下图:
附件 SP运动指令与运动指令的区别.jpg
[此贴子已经被作者于2026/1/16 17:41:21编辑过]

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2026 Gkong.com, All Rights Reserved

31.2002