SFC执行顺序

在线模式下,特定动作类型会根据定义的顺序执行,见下表。

以下条款被使用:

元素的执行顺序( CoDeSys V2.3中的处理顺序相对):

1. 重启 IEC动作

所有 IEC 动作 的动作控制标识 重启 不是动作内调用的IEC动作标示!)

 

2. 步出口动作(“步失效”)

所有的步按照顺序图中的顺序(从上到下,从左到右)检查,来决定执行步出口动作 所需的条件是否提供,如果是,那就会执行。出口动作会执行,如果步 失效,即如果它的入口和步动作——如果存在——在上一个周期执行了,且转换到后面步的条件为TRUE。

 

3. 步入口动作Eingangsaktion(“步激活”)

所有的步按照顺序图中的顺序检查,来决定执行 步入口动作所需的条件是否提供,如果是,那就会执行。一个 入口动作(Eingangsaktion) 会被执行,如果后续步的转换条件为TRUE,步会激活。

 

4.超时检查,步活跃动作

对于所有步,以下是按照它们的位置来完成的(从上到下,从左到右):

- (还没完成)如果可实现,过去的时间会复制到步隐含状态变量中 <stepname>.t t

- (还没完成)如果任意超时被检测到,相应的 错误标识 被设置。

- 针对非IEC步,相应的步激活动作 现在被执行

 

5.IEC动作

顺序中使用的 IEC 动作 按照字母顺序执行。这是通过两个列表动作扫描实现的。第一次,所有失效IEC动作在当前周期执行。在第二次,所有激活IEC动作在当前周期执行。

 

6. 转换检查,激活下一步

转换被评价:如果当前周期的步激活,且下面的转换返回TRUE(如果可行,最小活跃时间已经过去),那么下面的步激活

 

提示!

考虑到动作的完成,以下必须注意:

可能发生一个动作在一个周期内执行多次的情况,因为它被关联到多个顺序中。(如:一个SFC可以有两个IEC动作A和B,都在SFC中完成,都调用IEC 步C;那么IEC步A和B在一个周期内都活跃,更进一步,两个动作中IEC动作C激活;那么C会被调用两次。)

如果同一个IEC步同时使用在不同的SFC中,这会导致不想要的影响,因为上述处理顺序。因此,这种情况会出现错误信息。 它可能在处理老版本程序时出现。.

注意使用 隐含变量来控制步和动作的状态,执行表时。