概述
缓冲模式
有些功能块有一个 BufferMode
输入用于控制运动的时间顺序。缓冲模式定义功能块是在非缓冲模式(“中止”,标准行为)下工作,还是在缓冲模式(“缓冲”)下工作。这两种模式之间的区别在于它们开始操作的时间:
“非缓冲模式”:即使中断了另一个运动,运动命令也会立即生效。命令运动的缓冲区将被删除。
“缓冲模式”:移动命令等待,直到当前功能块设置其输出
Done
(或者InPosition
, 或者InVelocity
等)。缓冲模式还用于定义速度曲线在动作过渡时应如何表现。
| 无缓冲的默认模式。功能块立即启动并中止活动运动。命令在轴上立即生效。 |
| 最后一个命令的运动完成后,功能块立即启动。这里不进行混合。新的运动以达到结束条件时前一个运动的速度开始( |
| 最后一个命令的运动完成后,该功能块立即启动。轴在运动之间不会停止,而是以两个运动命令中较低的速度通过第一个运动的终点位置。 |
| 最后一个命令运动完成后,该功能块立即启动。轴在运动之间不会停止,而是以第一个运动命令的速度通过第一个运动的终点位置。 |
| 最后一个命令运动完成后,该功能块立即启动。轴在运动之间不会停止,而是以第二个运动命令的速度通过第一个运动的终点位置。 |
| 最后一个命令运动完成后,该功能块立即启动。轴在运动之间不会停止,而是以两个运动命令中较高的速度通过第一个运动的终点位置。 |
支持的功能块
所有可以指定为缓冲/混合命令的功能块都有以下输入和输出:
BufferMode
输入 (MC_BUFFER_MODE
类型)Active
输出: (BOOL
类型)
当功能块切换到状态时,命令被接受 Busy
在发出新的动作指令之后。
功能块 | 可以定义为缓冲/混合命令 | 可以跟随缓冲/混合命令 | 激活下一个缓冲/混合 FB 的相关信号 |
---|---|---|---|
| 不 | 不 | |
| 不 | 不 | |
| 不 | 不 | |
| 不 | 不 | |
| 是的 | 是的 |
|
| 不 | 是的 ( |
|
| 不 | 不 有关详细信息,请参阅:For more information, see: MC_MoveSuperImposed 和 MC_HaltSuperImposed 的行为 | |
| 是的 | 是的 ( |
|
| 不 | 是的 ( |
|
| 不 | 是的 ( |
|
| 是(只有 | 是的,如果是定期的(仅 |
|
| 不 | 是的 ( |
|
| 是的 ( | 是的 ( |
|
| 不 | 是的 ( |
|
| 是的 ( | 是的 ( |
|
| 不 | 不 | |
| 不 | 不 | |
| 不 | 不 | |
| 不 | 不 当使用缓冲模式命令移动时,不应使用这些功能块 | |
| 不 | 不 | |
| 不 | 不 | |
| 不 | 不 |
注意 MC_GearInPos
和 MC_GearIn
:其他缓冲模式的行为如下 BlendingPrevious
很难建立。主要问题是这些功能块的速度可能随时根据主轴而变化。因为混合效果最好,因为混合速度越早越好,所以只有 BlendingPrevious
受支持。
如果是 BlendingPrevious
主轴的方向也可以随时改变。这意味着,只有在混合完成时,从轴对于 MC_GearInPos 应具有的方向才为人所知。但是,我们需要在混合开始时就确定混合运动的方向。这就是为什么第一个运动既定义了混合速度,又定义了方向,而不管后续运动定义的方向如何 MC_GearIn(Pos)
。