该功能块在 Execute 输入的上升沿上启动。
此时无需对输入变量进行任何进一步的修改。
按照 IEC 61131-3 标准,如果功能块有任何变量输入缺失(即断开或未连接),则使用上一次调用功能块实例的值。在此情况下,第一次调用时将应用初始配置值。因此,功能块最好始终带有特定于其输入的已知值,这样有助于消除调试程序的麻烦。对于 HSC 和 PTO 功能块,最好只使用一次实例,且该实例最好位于主任务中。
Done、InVelocity 或 InFrequency 输出与 Busy、CommandAborted 和 Error 输出互斥:在一个功能块上,只能有一个输出为 TRUE。如果 Execute 输入为 TRUE,则其中一个输出为 TRUE。
在 Execute 输入的上升沿,会设置 Busy 输出。在功能块执行过程中,此 Busy 输出保持已设置状态,并在某一其他输出(Done、InVelocity、InFrequency、CommandAborted 和 Error)的上升沿复位。
当功能块成功执行完毕时,会设置 Done、InVelocity 或 InFrequency 输出。
当功能块的执行被另一功能块中断时,则改为设置 CommandAborted 输出。
当功能块的执行由于检测到错误而结束时,则会设置 Error 输出,并通过 ErrId 输出给出检测到的错误编号。
Done、InVelocity、InFrequency、Error、ErrID 和 CommandAborted 输出在 Execute 的下降沿复位。如果 Execute 输入在执行完成之前复位,则在执行结束时,这些输出的设置状态将持续一个任务循环。
当功能块的某个实例在完成之前收到新的 Execute 时,则对于以前的操作,功能块不返回任何反馈,例如 Done。
所有功能块都有 2 个输出,可以报告在执行功能块期间检测到的错误。
o检测到错误时,Error = TRUE。
oErrID 在 Error = TRUE 时返回检测到的错误 ID。