SFC 标志
SFC 标志是具有预定义名称的隐式创建变量,它们提供用于控制和诊断 SFC 图的功能。借助这些标志,您可以有针对性地触发转移。
例如
检测超时
复位步链
激活点动模式
要访问这些变量,必须声明并启用相应的标志。
名称 | 数据类型 | 描述 |
|---|---|---|
|
|
|
|
| 行为与 与之不同的是,初始化之后,初始步会继续执行。例如,您可以在初始步中立即将 |
|
| 当 SFC 图中发生超时时,变为 如果在第一次超时之后程序中又发生另一次超时,则只有在变量 必须声明 |
|
| 用于有针对性地激活( 如果您声明并激活了该变量(SFC 设置),则还必须将其设置为 前提条件是声明 |
|
| 存储导致 该名称将一直保留,直到使用 前提条件是声明 |
|
| 发生超时时,存储发生了由 前提条件是声明 |
|
| 只要该布尔变量为 前提条件是声明 |
|
| 只要该变量为 |
|
| 当转移切换时,变为 |
|
| 显示当前激活步的名称,与时间检查无关 对于并行分支,始终存储最右侧分支的步的名称。 |
|
|
当您通过设置 |
| 包含一个字符串,其中列出导致 必须启用 为此, 有关分析的高级配置的信息,另请参阅:SFC | |
| 包含一个表,其中列出导致 必须启用 为此, 有关分析的高级配置的信息,另请参阅:SFC |
隐式生成 SFC 标志
当您启用了相应选项时,SFC 标志会被自动声明。您可以在针对单个 POU 的SFC设置属性对话框中,或者在针对项目中所有 SFC POU 的SFC项目设置对话框中设置此选项。
提示
只有在您未启用使用默认值选项时,单个 POU 的 SFC 标志的 SFC 设置才会生效。如果您启用了此选项,则将应用项目设置中定义的设置。
提示
在 SFC 设置对话框中声明的 SFC 标志仅在 SFC POU 的在线视图中可见。
显式生成 SFC 标志
只有在需要从另一个 POU 对标志进行写访问时,才仍需要进行手动声明(如以前在CoDeSys V2.3中所要求的那样)。对此请注意以下事项:
重要
如果标志已在全局变量列表中声明,则必须在 SFC 设置对话框中禁用声明设置。否则,还会隐式创建一个局部 SFC 标志。随后将使用该标志,而不是全局变量。
SFCError 的应用示例
您已创建一个名为sfc1的 SFC POU,其中包含一个步s1。您已在该步的属性中定义了时间限制。
如果步s1的激活持续时间超过其时间属性中定义的限制,则标志SFCError将被置位。应用程序可以评估该标志,以便对超时作出响应。
要允许此访问,您必须在 SFC 设置中启用并声明该标志。如果仅声明该标志,则 SFC 标志会显示在sfc1在线视图的声明部分中,但不会起作用。

现在,您可以在 POU 内(例如在动作中 (2))或从 POU 外部 (1) 访问该 SFC 标志。

SFC POUsfc1的在线视图:

一旦sfc1中发生超时,SFCError就会变为TRUE。
您可以使用Analyzation库中的SFCErrorAnalyzation和SFCErrorAnalyzationTable标志来分析超时的原因。借助这些标志,您可以识别表达式中导致SFCError获得值TRUE的各个组成部分。
访问标志
访问语法
在 POU 内,直接为标志赋值:<variable name> := <sfc flag>
checkerror := SFCError;从另一个 POU 通过名称访问:<variable name> := <pou name>.<sfc flag>
checkerror := SFC_prog.SFCError;
如果需要从另一个 POU 进行写访问,则还必须在 SFC POU 中或在 GVL 中全局地将 SFC 标志显式声明为 VAR_INPUT 变量。
局部声明
PROGRAM SFC_prog
VAR_INPUT
SFCInit : BOOL;
END_VAR或者在全局变量列表中进行全局声明
VAR_GLOBAL
SFCInit : BOOL;
END_VARPROGRAM PLC_PRG
VAR
SetInit : BOOL;
END_VAR
SFC_prog.SFCInit := SetInit; //Write access to SFCInit in SFC_prog