运动控制功能块的一般规则
Micro800 运动配置指令的一般规则遵从 PLCopen 运动控制规范。
规则适用于 | 规则 |
|---|---|
输入参数 | 对于 Execute:这些参数与执行输入的上升沿一起使用。若要修改任何参数,请更改输入参数并再次触发运动。 如果功能块的实例在其完成之前接收到新的 Execute(作为相同实例上的一系列命令),新的 Execute 将被忽略,并且先前发布的指令将继续执行。 对于 Enable:这些参数与启用输入的上升沿一起使用,并能不断修改。 |
缺少输入参数 | 在用户应用程序编译期间将捕获缺少输入情况。没有在控制器级别处理的缺少输入错误。 |
输入超出应用程序限制 | 如果功能块使用会导致违反应用程序限制的参数来命令,则功能块的实例将生成错误。在此情况下,错误输出将被标记为“开启”,并且输出 ErrorID 将指出错误信息。在大部分情况下控制器将保持运行模式,并且运动错误也不会报告为严重的控制器故障。 |
输入的符号规则 | Acceleration、Deceleration 和 Jerk 输入始终为正值。Velocity、Position 和 Distance 输入可以为正值和负值。 |
Position 与 Distance | Position 是在轴坐标系统内定义的一个值。Distance 是与技术单元相关的相对指标。Distance 是两个位置间的差异。 |
Position/Distance 输入 | Micro800 控制器中仅支持线性运动。对于 MC_MoveAbsolute 功能块,Position 输入是要命令到轴中的绝对位置。对于 MC_MoveRelative,距离输入是从当前位置开始的相对位置(将当前轴位置视为 0)。 |
Velocity 输入 | Velocity 可以是带符号的值,也可以使用 Direction 输入定义速度的符号(负速度 x 负方向 = 正速度)。出于兼容性考虑,E 参数“Direction”引用速度输入和输出。 |
Direction 输入 | 对于距离(位置)运动,定义了目标位置(绝对或相对),运动方向唯一。距离移动的方向输入将忽略。 对于速度运动,方向输入值可以是 1(正方向)、0(当前方向)或 -1(负方向)。对于任何其他值,仅考虑符号。例如,-3 表示负方向,+2 表示正方向,等等。 对于速度移动 (MC_MoveVelocity),符号(速度 x 方向)将确定当值不为 0 时的实际运动方向。例如,如果速度 x 方向 = +300,则方向为正。 |
Acceleration、Deceleration 和 Jerk 输入 |
|
输出排斥性 | 对于 Execute:当 Execute 为 TRUE 时,Busy、Done、Error 或 CommandAborted 输出必须也为 TRUE。这些输出互斥:一个功能块上只有一个输出可以为 TRUE。 一次只能设置输出 Active、Error、Done 和 CommandAborted 中的一个。 对于 Enable:Valid 和 Error 输出互斥:一个功能块上只有一个输出可以为 TRUE。 |
输出状态 | 对于 Execute:使用 Execute 指令的下降沿重置 Done、Error、ErrorID 和 CommandAborted 输出。但是,Execute 的下降沿不会停止也不会影响实际功能块的执行。即使在功能块完成之前重置 Execute,相应的输出也会至少设置一次循环。 如果功能块的实例在其完成之前接收到新的 Execute 命令(作为相同实例上的一系列命令),新的 Execute 命令将被忽略,并且先前发布的指令将继续执行。 对于 Enable:使用 Enable 的下降沿重置 Valid、Enabled、Busy、Error 和 ErrorID 输出。 |
Done 输出的行为 | 当命令的操作已成功完成时将设置 Done 输出。 当多个功能块按顺序在同一轴上运行时,以下适用: 如果轴上的一个运动被同一轴上的其他运动中断,而并未达到最终目标,则在第一个功能块上将不会设置 Done。 |
Busy 输出的行为 | 每个功能块可具有 Busy 输出,表示功能块尚未完成(对于使用 Execute 输入的功能块)或并非正在运行,并且需要新的输出值(在 Enable 输入的情况下)。 Busy 会在 Execute 的上升沿进行设置,并在设置 Done、Aborted 或 Error 等输出中的一个时进行重置。至少在 Busy 为 TRUE 之前,应该将此功能块保留在应用程序的活动回路中,因为输出可能会发生变化。 除非不再忙碌,否则带有相同实例的忙碌功能块无法执行。带有不同实例的功能块可以覆盖当前执行的功能块。 |
CommandAborted 输出的行为 | 当命令的运动被其他运动命令中断时,将设置 CommandAborted 输出。 CommandAborted 输出的重置行为与 Done 输出的重置行为类似。当出现 CommandAborted 时,将重置其他输出符号(例如 InVelocity)。 |
输出 Active | 在缓冲的功能块上需要 Active 输出且在功能块控制了所依据轴时进行设置。 对于非缓冲模式,Active 和 Busy 输出可具有相同值。 |
Enable 和 Valid 状态 | Enable 输入与 Valid 输出成对出现。Enable 对层级敏感,而 Valid 将显示功能块上一组有效输出可用。 只要有效输出值可用且 Enable 输入为 TRUE,Valid 输出即为 TRUE。只要输入 Enable 为 TRUE,即可刷新相关输出值。 如果出现功能块错误,输出将无效(将 Valid 设置为 FALSE)。当错误条件消失时,值将重新显示并再次设置 Valid 输出。 |
输出错误处理 | 用于定义错误的输出: 所有块均具有以下两个输出,可用于处理执行期间发生的错误:
Done 和 InVelocity 输出用于成功完成,因此这些输出在逻辑上不包括 Error。 实例错误不会始终导致轴错误(将轴置于“错误停止”状态)。 |
如何重置错误输出:
| |
错误类型:
| |
命名规范 ENUM 类型 | 由于 IEC 标准中对变量名称唯一性的命名限制,因此 ENUM 使用了对 PLCopen 运动控制命名空间的“mc”引用。 因此,我们避免使用 ENUM 类型“正值”和“负值”作为变量的实例与整个其余项目中的名称相冲突,因为它们分别称为 mcPositive 和 mcNegative。 |
提供反馈