功能块接口

<< 点击显示目录 >>

主页  轴控开发使用手册 > ACP10/ARNC0帮助信息 > ACP10_MC运动库 > 概念 > 实施 >

功能块接口

一些输入和输出对于运动功能块和其他单轴功能块也是相同的。这些输入和输出的行为是由PLCopen规定的。

从 "执行 "到 "完成 "的时间可能相当于几个功能块的调用周期时间。而一些功能块在设置 "执行 "或 "启用 "的同一周期内返回 "完成"(或 "错误")。这在这些功能块的描述中会有说明。

mc_move...

成功的命令处理

kommandobearbeitung

图: 用 "Execute "成功执行命令

kommandoerfolgreich_1zyklus

图: 在同一个周期内用 "Execute "成功执行命令

enable_erfolgreich

图: 用 "启用 "成功执行命令

 

命令处理中出现错误

kommandobearbeitungmitfehler

图: 用 "执行 "处理命令时报错

kommandofehler_1zyklus

图: 用 "执行 "处理命令时报错,错误只持续一个周期

enable_fehler

图: 使用 "启用 "处理命令时报错

 

命令处理被另一个功能块中止了

kommandobearbeitungmitfbabbruch

图: 命令处理被另一个功能块中止了

kommandoabbruch_1zyklus

图: 命令处理被另一个功能块中止了一个周期

enable_abbruch

图: 命令处理被另一个有 "启用 "输入的功能块中止了

 

"Execute执行 "和 "Enable启用 "之间的区别

带有 "执行 "输入的功能块,  在 "执行 "输入命令的上升沿有效时 读取其输入参数值并执行其任务一次  。这使得改变一个单轴功能块的速度输入成为可能,例如。新的值在 "执行 "输入的一个新的上升沿被读取。

带有 "Enable "输入的功能块在每次被调用且Enable输入为 TRUE执行其任务 。只要 "Enable "输入为 " TRUE",对输入的更改就会被立即接受 。

"Execute执行 "和 "InitData初始化数据":使用边沿敏感的输入

像 "Execute "和 "InitData "这样的输入是边沿敏感的;在一个上升沿上,会产生一个传输列表并传输给驱动器。

这可能会持续几个触发功能块的调用周期,取决于被改变的参数数量。

在传输过程中多次切换边沿会导致参数被错误地应用。

建议在开始新的修改值传输之前,对相关功能块的输出进行评估。

输入 --> 输出

InitData --> 数据已初始化

执行 --> 完成,有效,等等。

...-->...

只有在相应的功能块做出正确响应或输入保持设置(即1=TRUE)后,才应在输入上设置上升沿。

重要的是,功能块不是循环启动的(第一个周期 "执行"=TRUE,第二个周期 "执行"=FALSE,第三个周期 "执行"=TRUE,等等)。对于参数快速变化的应用,请参阅循环设定点的功能块(例如MC_BR_MoveCyclicXxx)。

确认 "ErrorID "输出的错误

“执行 " 或  "启用 " 输入必须设置为 FALSE ,以确认功能块的 "ErrorID "输出。

输入和输出的一般规则。

一般规则

输出的排他性

只有以下一种输出会被设置。

"Busy忙"

"Done完成"

"Error错误"

"CommandAborted命令被终止"

这些输出将永远不会同时被置位。这些输出中只有一个是 TRUE。只要 "执行 "输入被设置为 TRUE,这些输出中的一个也将被设置。

 

输出状态

这些输出将在 "执行 "输入的下降沿被复位。

"Done完成"

"InGear耦合中"

"InSync同步中"

"InVelocity速度达到"

"InPosition定位到位"

"ErrorID错误代码"

"CommandAborted命令被终止"

如果 "Execute "输入在功能块执行完毕前已经被复位,那么这些输出将至少保持一个周期的置位。

如果一个功能块实例在功能块执行完毕之前收到了 "Execute "输入的一个新的上升沿,那么这个功能块将不会为之前的执行动作返回诸如 "Done "或 "CommandAborted "这样的响应。

 

输入参数

参数在 "执行 "输入的上升沿被传送。改变参数需要向功能块输入提供新的值,并重新启动运动。

 

 

位置与距离

"位置 "是指在一个坐标系中定义的值。

"距离 "是一个相关的测量技术单位。“距离 "的值是两个位置之间的差。

 

 

符号规则

"速度"≙正值

"加速度" ≙ 正值

"减速度" ≙ 正值

"位置" ≙ 正值和负值均可

"距离" ≙ 正值和负值均可

 

错误处理

一个功能块有两个输出,用于指示在功能块执行过程中发生的错误。这些输出被定义如下。

 

"Error错误"

这个输入的上升沿意味着在执行过程中发生了一个错误。

"ErrorID"

错误代码

 

下面这些输出在逻辑上与 "Error "输出无关,意味着功能块已经执行完毕。

"Done完成"

"InVelocity速度达到"

"InPosition定位到位"

"InGear耦合中"

"InSync同步中"

信息:

执行功能块时发生的错误并不总是会导致一个中止轴运动的错误(静止 状态)。

“完成 "的行为

一旦命令被成功执行,这些输出就会被置位。

"Done完成"

"InVelocity速度达到"

"InPosition定位到位"

"InGear耦合中"

"InSync同步中"

如果对同一轴连续调用多个运动功能块,如果一个功能块在到达目标之前被另一个运动功能块中止,将不会设置 "Done "输出。

 

“命令终止 "输出的行为

如果一个正在进行的运动被另一个运动功能块中止,则设置 "CommandAborted "输出。

如果 "CommandAborted "被设置,那么其他输出,如 "InVelocity "将被重置。

 

输入值超过极限值

如果一个功能块被调用,其参数超过了极限值,那么该功能块实例将报告一个错误。

 

“忙 "输出的行为

"busy忙 "输出在 "执行 "输入的上升沿时被置位,如果下列输出之一被置位,则Busy复位。

"完成"

"命令中止"

"错误"

 

对于有 "Enable "输入的功能块,只要功能块需要被调用,"Busy "就一直被设置为TRUE。如果报告了一个错误,那么这个输出也会被重置。

"启用 "输入和 "有效 "或 "状态 "输出

"启用 "输入通常与 "有效 "或 "状态 "输出一起使用。"启用 "输入是对电平敏感的命令。

”有效 "输出表示另一个输出上有一个有效的值。

只要有一个有效的输出值,并且 "Enable "输入也 TRUE"Valid "输出就会保持 TRUE。只要 "Enable "为 TRUE有效的输出值就会被刷新 。

如果一个功能块发生错误,"有效 "输出将被重置,输出值不再有效。

"InitData "输入和 "DataInitialized "输出的行为

如果一个功能块有一个 "InitData "输入,那么当功能块处于活动状态时,输入值也可以被应用。这发生在这个输入的每个上升沿。

该功能块设置 "DataInitialized "输出,表示数值已经成功初始化。各个功能块的文档描述了哪些输入值是以这种方式应用的。

Table: General rules