.
.

符号:

动作包括使用一种有效实现语言的一个或多个语句。您可以将操作分配给步。您可以将动作分配给步骤。

在SFC步中使用的动作必须在工程中创建为POU。

例外:对于IEC动作(将其作为动作关联添加到步中),还可以指定布尔变量而不是动作对象。每次执行“动作”时,这些变量的值都会在FALSETRUE之间切换。

提示!

您必须在父块的范围内定义唯一的步名称。用SFC编写的动作不能包含名称与该动作所分配的步相同的步。

在IEC动作和步动作之间有区别:

.
1.IEC 动作

IEC动作符合IEC1131-3标准。它们根据其限定符执行。

IEC动作执行两次:第一次在激活该步时,第二次在禁用该步时。如果您将多个动作分配给一个步,则动作列表从上到下进行处理。

每个动作框的第一栏中包括限定符,第二栏中包括动作名称,两者均可直接进行编辑。

提示!

如果在不同的SFC块中将相同的全局布尔变量作为IEC动作进行关联,则可能导致不希望的覆盖效果。

与步动作相比,您可以对IEC动作使用不同的限定符。此外,每个IEC动作都带有一个控制标志。这将指示CODESYS在任何时候仅一次执行一个动作,即使该动作同时被另一个步调用也是如此。对于步动作,这不能保证。

通过单击SFC ➔ 插入动作关联,将IEC动作分配给步骤。

.
2.步动作

.您可以使用这些步动作来扩展IEC标准。

  • 进入动作
    在激活步之后且在执行主动作之前,CODESYS执行此动作。
    您可以通过进入动作元素属性(2)从一个步骤中引用一个新动作或在SFC对象下创建的动作。您也可以通过添加进入动作命令向该步添加新动作。在步框的左下角,输入动作用E标记。
  • 主动作
    当步处于激活状态并且任何输入动作均已处理时,CODESYS会执行此动作。但是,与IEC动作相反(请参见上文),这些步动作在禁用该步后不会再次执行。此外,您不能在此处使用限定符。
    您可以通过主动作元素属性(1)将现有动作添加到步。您可以通过单击步元素来创建和添加新动作。一个主要动作在步框的右上角用实心三角形标记。
  • 跳出动作
    释放该步后,CODESYS将一次执行此操作。但是请注意,退出动作不是在同一周期内执行,而是在下一个周期开始时执行。
    您可以通过出口动作元素属性(3)从一个步骤中引用一个新动作或在SFC对象下创建的动作。您也可以通过添加出口动作命令向该步添加新操作。退出动作在步框的右下角标记为X

.另请参阅

.
IEC动作与步动作之间的区别

步动作和带有限定符N的IEC动作之间的主要区别在于,IEC动作始终执行两次:激活步和取消激活步。请参见以下示例:

.

.例如

您已将Action_AS1动作作为步动作(左)和带有限定符N的IEC动作(右)附加到AS1步。因为在每种情况下都会激活两个转换,所以再次到达初始步的时间是两个PLC周期。只要将iCounter计数器变量初始化为0,然后在Action_AS1动作中将其递增即可,这是正确的。  重新激活Init步后,在左侧示例中,iCounter返回值1。在右边的示例中,返回值2,因为由于AS1的停用,IEC动作第二次执行。

另一个不同之处在于,可以将步动作伪嵌入。在这种情况下,只能从相关步调用它们。如果您复制此步,则CODESYS将自动创建新的动作对象,并复制相应的实现代码。您定义是在第一个动作插入到步中时还是在以后的复制时复制元素属性中嵌入步动作。通常,还可以在SFC选项中预设此行为。

最后,对于IEC动作,可以指定布尔变量而不是动作对象。这对于步动作是不可能的。