隐式变量
每个 SFC 对象都提供隐式变量,供您在运行时监视步和 IEC 动作的状态。这些隐式变量会为每个步和每个 IEC 动作自动声明。
隐式变量是结构实例,对于步,其类型为SFCStepType;对于动作,其类型为SFCActionType。变量名称与相关元素的名称相对应,例如,对于步名称为step1的步,变量名称为step1。结构组件提供有关步或动作当前状态的信息,以及在激活步期间已经过的时间。
步和动作的状态
重要
您可以使用上述变量为某个步强制指定特定的状态值,以激活该步。但请注意,这可能导致 SFC 图处于不一致或不受控制的状态。
隐式变量声明的语法:
<step name> : SFCStepType;
_<action name> : SFCActionType;TRUE步 | |
|---|---|
| 显示当前周期中的步状态。 当 |
| 显示下一个周期的步状态。 如果 |
| 提供自步被激活以来已经过的时间段的变量。 此信息仅适用于步。无论步属性中是否定义了最短时间,都会记录该时间。 有关更多信息,请参阅:SFC 标志 |
| 仅供内部使用的变量。 |
| 启用 |
IEC 动作 | |
|---|---|
| 显示当前周期中的动作状态。
|
|
|
隐式变量:_MetaStep
用于 SFC POU 中所编程元素的链表的变量
重要
_MetaStep功能会生成大量额外的隐式代码,用于实现元素的链接。请仅在确实需要时才启用该功能。
隐式变量_MetaStep标识属于 SFC 图初始步的元素。启用_MetaStep功能后,将创建额外的隐式变量,从而形成 SFC 图中元素的链表。从初始步开始,所有转移、步和跳转都通过对其他ISFCElement对象(来自IecSfc.library,>= V4.4.0.0)的引用进行链接。
根据接口的不同,每个ISFCElement都具有以下内容
前驱
后继
名称
链中元素的数量
根据ISFCElement对象的类型,可能会实现具有附加属性的更具体的子接口。
变量<pou name>._MetaStep用作入口点。IQueryInterface函数可用于确定ISFC元素链表中前驱元素和后继元素的信息。
限制:在该功能的当前版本中,SFC 程序中转移的名称必须唯一。否则,将发出警告,并且不会生成链表中的附加数据。
要启用_MetaStep功能,您需要执行以下步骤:
在项目信息对话框的属性选项卡上,将布尔属性
UseMetaStepsEnabled设置为TRUE。对于需要该功能的每个 SFC 对象,在各自属性对话框的SFC设置选项卡上启用
SFCMetaSteps变量的使用。
访问隐式变量
访问语法
在 POU 内,直接为隐式变量赋值:
<variable name>:=<step name>.<implicit variable>或<variable name>:=_<action name>.<implicit variable>
status := step1._x;
来自另一个带有实例路径的 POU:
<variable name> := <pou name>.<step name>.<implicit variable><variable name> := <pou name>._<action name>.<implicit variable>
status := SFC_prog.step1._x;
符号生成
在步或动作的属性中,您可以指定是否为相应的步标志或动作标志添加符号定义。为此,请在属性视图的符号列中启用所需的访问权限。