SFC 元素:动作
符号:
动作包含以某种可用编程语言编写的一条或多条语句。您可以将动作分配给步或转移。
在 SFC 步中调用的动作必须在项目中创建为 POU。

例外:对于作为动作关联添加到步中的 IEC 动作,您可以指定布尔变量来代替动作对象。每次执行该动作时,该变量的值都会在FALSE和TRUE之间切换。
重要
您必须在上级 POU 的范围内唯一地定义步名称。以 SFC 编写的动作不得包含与其所分配到的步同名的步。
动作分为 IEC 动作和步动作。
IEC 动作
IEC 动作是符合 IEC 61131-3 标准的动作。它们根据其限定符执行。
IEC 动作执行两次:一次是在步变为激活时,另一次是在步被停用时。如果您为一个步分配了多个动作,则动作列表将按从上到下的顺序处理。
每个动作框的第一列包含限定符,第二列包含动作名称。两者都可以直接编辑。

重要
如果同一个全局布尔变量在不同的 SFC POU 中作为 IEC 动作进行关联,则可能导致不希望出现的覆盖效果。
与步动作不同,IEC 动作允许您使用不同的限定符。
与步动作的另一个区别是,每个 IEC 动作都带有一个控制标志。这样可以确保该动作在任何给定时刻都只执行一次,即使另一个步同时调用了它。对于步动作,则无法保证这一点。
您可以使用插入关联动作命令为步分配 IEC 动作。
步动作
步动作是可用于扩展 IEC 标准的动作。
入口动作:
该动作在步被激活之后、主动作执行之前执行一次。
您可以使用入口动作元素属性,从单个步中引用一个新动作或已在 SFC 对象下创建的动作 (2)。
您可以使用添加入口动作命令向步添加新动作。入口动作在步框的左下角以
E显示。主动作:
该动作在步被激活且入口动作(如有)已执行之后执行。但是,与 IEC 动作不同,在步被停用时它不会执行第二次。此处也不能使用限定符。
(1) 您可以使用主要激活元素属性向现有步添加动作。
您可以双击步元素来创建并添加新动作。
主动作在步框的右上角以实心三角形显示。
出口动作:
该动作在步被停用之后执行一次。但请注意,该执行不会在同一个周期内进行,而是在下一个周期开始时才进行。
您可以通过元素属性出口动作(3),从步中引用一个新动作或已在 SFC 对象下创建的动作。
您可以使用添加出口动作命令向步添加出口动作。
出口动作在步框的右下角以
X显示。

IEC 动作与步动作之间的区别
带 N 限定符的 IEC 动作与步动作之间的关键区别在于,IEC 动作总是执行两次:一次是在步变为激活时,另一次是在步被停用时。请参见以下示例:

对于步AS1,您已将动作Action_AS1一次作为步动作(左)添加,一次作为带限定符 N 的 IEC 动作添加。由于两种情况下都切换两个转移,因此每种情况下都需要 2 个 PLC 周期才能再次到达初始步。假设计数器变量iCounter初始化为 0,并在动作Action_AS1中递增。重新激活Init步之后,在左侧示例中iCounter的值为 1。而在右侧示例中,其值为 2,因为由于AS1被停用,IEC 动作执行了第二次。
另一个区别是步动作可以被嵌入。在这种情况下,只能从相关的步访问它们。复制该步时,将自动创建新的动作对象,并复制各自的实现代码。您可以在向步中插入第一个动作时,或者之后通过多重复制元素属性,定义步动作是否被嵌入。通常,也可以在 SFC 选项中预设此行为。
对于 IEC 动作,也可以指定布尔变量来代替动作对象。对于步动作,则无法实现这一点。