Skip to main content

隐式变量

每个 SFC 对象都提供隐式变量,用于在运行时监控步和 IEC 动作的状态。这些隐式变量会为每个步和每个 IEC 动作自动声明。

隐式变量是类型的结构实例SFCStepType对于步骤和类型SFCActionType用于操作。变量的名称与其元素的名称相同,例如,变量名称为“step1”,步骤名称为“step1”。结构成员描述步骤或操作的状态,或活动步骤中当前已用时间。

提示

SFC 元素属性,你可以定义是否CODESYS应该为此导出一个符号定义旗帜到符号配置。

步和操作状态

重要

您可以使用上述变量强制步骤的特定状态值以激活该步骤。但请注意,这可能会导致 SFC 状态不稳定。

隐式变量声明的语法:

<step name>:SFCStepType;

_<action name>:SFCActionType;

2. 以下隐式变量可用于步骤或 IEC 操作状态:

<step name>.x

显示当前周期的激活状态

如果<step name>.x = TRUE,则在当前周期内处理该步骤。

<step name>._x

显示下一个周期的激活状态

如果<step name>.x = TRUE<step name>._x = FALSE,则该步骤将在当前周期中处理。这意味着<step name>._x变量在循环开始时被复制<step name>.x

<step name>.t

旗帜t得出自步骤激活以来的当前时间跨度。这仅适用于步骤,无论步骤属性中是否定义了最短时间。

有关详细信息,请参阅:For more information, see: SFC 标志

<step name>._t

仅供内部使用

<POU name>._MetaStep

当激活“MetaStep”功能时,获取有关链接列表中的 ISFC 元素的信息的入口点(见下文)。

IEC行动

_<action name>.x

TRUE当动作正在执行时

_<action name>._x

TRUE当动作处于活动状态时



SFC图中元素的链接列表,隐式变量_MetaStep

重要

“MetaStep”功能会生成大量额外的隐式代码,用于链接元素。请仅在真正需要时启用此功能。

隐式变量_MetaStep标识属于 SFC 图表初始步 (初始步) 的元素。启用“MetaStep”功能后,将创建额外的隐式变量,这些变量代表 SFC 图表中元素的链接列表。从初始步开始,所有转换、步和跳转都通过对其他元素的引用进行链接。ISFCElement对象(来自IecSfc.library,>= V4.4.0.0)。ISFCElement根据接口,链接中总是有一个前任、后继、一个名称和元素数量。根据ISFCElement对象,可以实现具有附加属性的更具体的子接口。

变量<POU name>._MetaStep用作入口点。IQueryInterface函数可用于确定 ISFC 元素链表中的前驱元素和后继元素的信息。

限制:在当前版本的功能中,SFC 程序中的转换名称必须是唯一的。否则,会发出警告,并且不会生成链接列表中的附加数据。

要启用 MetaStep 功能,您需要执行以下步骤:

  1. 项目信息对话,在特性选项卡,设置UseMetaStepsEnabled(BOOL)属性True

  2. 特性对象的对话, SFC 设置选项卡,启用SFCMetaSteps每个需要该功能的 SFC 对象的变量。

访问隐式变量

访问语法

在 POU 中,直接分配隐式变量:

<variable name>:=<step name>.<implicit variable>或者<variable name>:=_<action name>.<implicit variable>

6. 例子

status:=step1._x;



来自另一个名为:  

  • <variable name>:=<POU name>.<step name>.<implicit variable>

  • <variable name>:=<POU name>._<action name><implicit variable>

7. 例子:

status:=SFC_prog.step1._x;



符号生成

在步骤或操作的元素属性中,您可以定义是否CODESYS应该为步骤或操作标志添加符号定义。在特性视图,您需要在象征柱子。