符号:
动作包括使用一种有效实现语言的一个或多个语句。您可以将操作分配给步。您可以将动作分配给步骤。
在SFC步中使用的动作必须在工程中创建为POU。
例外:对于IEC动作(将其作为动作关联添加到步中),还可以指定布尔变量而不是动作对象。每次执行“动作”时,这些变量的值都会在FALSE和TRUE之间切换。
您必须在父块的范围内定义唯一的步名称。用SFC编写的动作不能包含名称与该动作所分配的步相同的步。 |
在IEC动作和步动作之间有区别:
IEC动作符合IEC1131-3标准。它们根据其限定符执行。
IEC动作执行两次:第一次在激活该步时,第二次在禁用该步时。如果您将多个动作分配给一个步,则动作列表从上到下进行处理。
每个动作框的第一栏中包括限定符,第二栏中包括动作名称,两者均可直接进行编辑。
如果在不同的SFC块中将相同的全局布尔变量作为IEC动作进行关联,则可能导致不希望的覆盖效果。 |
与步动作相比,您可以对IEC动作使用不同的限定符。此外,每个IEC动作都带有一个控制标志。这将指示CODESYS在任何时候仅一次执行一个动作,即使该动作同时被另一个步调用也是如此。对于步动作,这不能保证。
通过单击
,将IEC动作分配给步骤。.另请参阅
.您可以使用这些步动作来扩展IEC标准。
步动作和带有限定符N的IEC动作之间的主要区别在于,IEC动作始终执行两次:激活步和取消激活步。请参见以下示例:
.例如
您已将Action_AS1动作作为步动作(左)和带有限定符N的IEC动作(右)附加到AS1步。因为在每种情况下都会激活两个转换,所以再次到达初始步的时间是两个PLC周期。只要将iCounter计数器变量初始化为0,然后在Action_AS1动作中将其递增即可,这是正确的。 重新激活Init步后,在左侧示例中,iCounter返回值1。在右边的示例中,返回值2,因为由于AS1的停用,IEC动作第二次执行。
另一个不同之处在于,可以将步动作伪嵌入。在这种情况下,只能从相关步调用它们。如果您复制此步,则CODESYS将自动创建新的动作对象,并复制相应的实现代码。您定义是在第一个动作插入到步中时还是在以后的复制时复制元素属性中嵌入步动作。通常,还可以在SFC选项中预设此行为。
最后,对于IEC动作,可以指定布尔变量而不是动作对象。这对于步动作是不可能的。