有关管理和运动功能块管理的一般信息

输入变量的管理

该功能块在 Execute 输入的上升沿上启动。

此时无需对输入变量进行任何进一步的修改。

按照 IEC 61131-3 标准,如果功能块有任何变量输入缺失(即断开或未连接),则使用上一次调用功能块实例的值。在此情况下,第一次调用时将应用初始配置值。因此,功能块最好始终带有特定于其输入的已知值,这样有助于消除调试程序的麻烦。对于 HSC 和 PTO 功能块,最好只使用一次实例,且该实例最好位于主任务中。

输出变量的管理

DoneInVelocity 或 InFrequency 输出与 BusyCommandAborted 和 Error 输出互斥:在一个功能块上,只能有一个输出为 TRUE。如果 Execute 输入为 TRUE,则其中一个输出为 TRUE。

Execute 输入的上升沿,会设置 Busy 输出。在功能块执行过程中,此 Busy 输出保持已设置状态,并在某一其他输出(DoneInVelocityInFrequencyCommandAborted 和 Error)的上升沿复位。

当功能块成功执行完毕时,会设置 DoneInVelocity 或 InFrequency 输出。

当功能块的执行被另一功能块中断时,则改为设置 CommandAborted 输出。

当功能块的执行由于检测到错误而结束时,则会设置 Error 输出,并通过 ErrId 输出给出检测到的错误编号。

DoneInVelocityInFrequencyErrorErrID 和 CommandAborted 输出在 Execute 的下降沿复位。如果 Execute 输入在执行完成之前复位,则在执行结束时,这些输出的设置状态将持续一个任务循环。

当功能块的某个实例在完成之前收到新的 Execute 时,则对于以前的操作,功能块不返回任何反馈,例如 Done

处理检测到的错误

所有功能块都有 2 个输出,可以报告在执行功能块期间检测到的错误。

o检测到错误时,Error = TRUE

oErrID 在 Error = TRUE 时返回检测到的错误 ID