SFC 标志
SFC 标志是隐式生成的具有预定义名称的变量。您可以使用标志来影响 SFC 图表的处理。例如,您可以使用这些标志来显示超时或重置步骤链。此外,您还可以激活点动模式来激活转换。您必须声明并激活这些变量才能访问它们。
SFC 标志
姓名 | 数据类型 | 描述 |
---|---|---|
|
|
|
|
| 行为类似于 然而,CODESYS在初始步骤初始化后继续处理。例如,在初始步骤中,您可以立即重置 |
|
|
|
|
| 专门用于激活( 如果声明并激活此变量(SFC 设置),则必须将其设置为 要求声明 |
|
| 存储导致超时的步骤的名称,该步骤由 该名称将一直保留,直到通过以下方式重置已注册的步骤错误 要求声明 |
|
| 存储发生超时并由其注册的块的名称 要求声明 |
|
| 只要这个布尔变量 要求声明 |
|
| 只要这个变量 |
|
|
|
|
| 显示活动步骤的名称,无论时间监控如何 在并行分支中,始终存储最右侧分支线的步骤名称。 |
|
| 控制 SFC 块的“点动模式” 如果您使用以下方式启用此标志 |
| 包含对总值有贡献的所有变量的字符串
| |
| 表格中包含对总值有贡献的所有变量
|
隐式生成 SFC 标志
CODESYS激活相应选项时,会自动声明 SFC 标志。您可以在SFC 设置每个 POU 的属性对话框的选项卡,或者在证监会项目中每个 SFC POU 的项目设置对话框。
提示
仅当您未选择使用默认值选项。选择此选项时,将应用在项目设置中定义的设置。
提示
在 SFC 设置对话框中声明的 SFC 标志仅在 SFC 块的在线视图中可见。
明确生成 SFC 标志
手动声明,这是必要的CoDeSys V2.3,现在只需要启用来自另一个块的写访问。在这种情况下,您应该注意,当您在全局变量列表中声明该标志时,必须停用其宣布在 SFC 设置对话框中设置。如果不这样做,则会隐式声明本地 SFC 标志,CODESYS代替全局变量。
SFCError 的应用示例
您已创建一个名为sfc1
,其中包含s1
步骤。您已在步骤属性中定义了超时。(请参阅“在线查看sfc1
SFC POU”。)
如果出于任何原因s1
步骤保持活动状态的时间比其时间属性允许的时间(超时)长,那么CODESYS设置SFCError
标志以允许应用程序访问。
要允许访问,必须在 SFC 设置中声明并激活 SFC 标志。如果仅声明了 SFC 标志,则该标志仅显示在sfc1
在声明部分,但是没有任何作用。

现在可以在 POU 内引用 SFC 标志,例如在动作 (2) 中或在块外部 (1)。

SFC 块的在线视图sfc1

SFCError
是TRUE
一旦发生超时sfc2
。
请注意,您可以使用SFCErrorAnalyzation
和SFCErrorAnalyzationTable
标志(Analyzation
库)来确定对值有贡献的表达式的组成部分TRUE
的SFCError
。
访问旗帜
访问语法
您直接在 POU 内分配标志:<variable name>:=<SFC flag>
checkerror:=SFCerror;
来自另一个 POU,其 POU 名称为:<variable name>:=<POU name>.<SFC flag>
checkerror:=SFC_prog.SFCerror;
如果需要从另一个块进行写访问,那么您还必须在 SFC 块中或在 GVL 中全局地将 SFC 标志明确声明为 VAR_INPUT 变量。
本地声明
PROGRAM SFC_prog VAR_INPUT SFCinit:BOOL; END_VAR
全局变量列表中的全局声明
VAR_GLOBAL SFCinit:BOOL; END_VAR
PROGRAM PLC_PRG VAR setinit: BOOL; END_VAR SFC_prog.SFCinit:=setinit; //Write access to SFCinit in SFC_prog