MC_MoveVelocity

这个功能块位于函数库 SM3_Basic.library。用于对驱动器进行一个非停止的恒定速度的控制。

 

类型

初始值

描述

VAR_IN_OUT

     

Axis

AXIS_REF

 

映射到轴,参阅 AXIS_REF_SM3

VAR_INPUT

     

Execute

BOOL

FALSE

此输入的上升沿将启动功能块的处理

Velocity

LREAL

0

不同于持续运动的最大速度值 (不是必须到达的) [u/s]

Acceleration

LREAL

0

加速度的值 (通常为正值) (增加运动控制器能量) [u/s2]

Deceleration

LREAL

0

加速度的值 (通常为正值) (减少运动控制器能量) [u/s2]

Direction

MC_Direction

current

枚举类型,参阅 MC_Direction;可能的值:possible values: positive, negative, current, not applicable!: shortest, fastest

VAR_OUTPUT

     

InVelocity

BOOL

FALSE

TRUE,如果命令速度值第一次达到

Busy

BOOL

FALSE

TRUE,如果功能块的处理没有完成

CommandAborted

BOOL

FALSE

TRUE,如果命令被另一个命令中断

Error

BOOL

FALSE

功能块内部发生错误信号

ErrorID

SMC_ERROR

0

错误ID,参阅 SMC_Error

要停止驱动器,此功能块必须被另一个功能块通过命令进行中断。

信号 “InVelocity” 必须被复位,如果块被另一个块中断或者接收到 “Execute”的下降沿。

与功能块 MC_MoveSuperimposed结合,输出 “InVelocity” 在第一次到达命令指定的速度之后将会一直保持为 TRUE 的状态。

示例:

以下表格中显示了两个连接的功能块 MC_MoveVelocity实例,名为 "First " 和 "Second":

时序图的左边描述了实例 "Second" 在实例 "First"之后进行调用的情况。当第一个实例到达命令速度值 3000,输出 First.InVelocity 以及信号 Next 将会导致实例 "Second" 移动到位置 2000。

时序图的左边描述了实例 "Second" 启动是在第一个实例 "First "的输出没有被置为 TRUE 的情况下进行执行的。尽快第一个功能块仍在加速到达速度值 3000,那么他也将会被信号Test中断并启动第二个功能块的处理。现在,第二个功能块的作用是将速度值减为 2000。

插图 124: MC_MoveVelocity 的时序图