SFC元素/工具箱

SFC 编辑器窗口中编程的可视化元素可以通过 SFC 菜单中默认可用的命令。

SFC工具箱现在还没完成。

编辑器中的工作请参见: “SFC编辑器中工作 ”

元素 , 转换, 动作, 分支(选择), 分支(平行), 跳转, 可用,描述如下:

步-转换

步和转换基本是组合插入的,通过命令 “插入前步转移” “插入后步转移”.

步是一个包含自动生成步名的基础框展现的。它和后面的 转换 是通过实现连接的。SFC第一个步, 初始步,它的框是双线的。

转换是通过一个小矩形展现的。 插入之后他又一个默认的名字: Trans<n>, 其中n是一个数字。

步和后面的转换的例子:

初始步和后续转换的例子:

步和转换的名字可以被编辑。

提示!

POU范围内步的名字必须唯一。注意这在SFC动作编程中尤其重要。

注意每个步——通过命令 “初始步” 或激活步 属性 - 都可以 转化初始步 , 这个步,在ILPOU被调用时首先执行。

每个步都是由 步属性定义的。

不同于CoDeSys V2.3,只有一种步,IEC认证步。

插入一个步之后,步激活(运行)后要执行的 动作需关联;参见以下 获取更多信息。

注意以下转换:

转换必须提供一个条件,当它为TRUE时下一步激活的。

所以转换条件必须有值TRUE或FALSE。它可以通过以下两种方式定义:

1直接(“内引情况”):替换默认的转换名,用一个布尔变量,布尔地址,布尔常量或有布尔结果的计算式(如 (i<100) AND b)。不能是具体的程序,功能块或分配!

2. 使用各自的 转换或属性对象 (“多重使用情况”):使用工程中可用的转换或属性对象(, ) 代替默认转换名,(这允许 多重使用 转换;参见下图中的"condition_xy" )。这个对象像一个内引转换,可以包含布尔变量,地址,常量或计算式,同样随意的多重表述代码。

提示!

如果转换产生了多重表述,用户必须分配所要的表达式给转换变量!

转换包含转换和属性对象,是通过矩形右上角的一个小三角指示的。

插图 466: POU树中的转换对象(多重使用)
1 直接输入的转换
2 ST中编程的转换条件
插图 467: 转换例子
插图 468: “多重使用情况”(转换或属性)通过三角指示

不同于 CoDeSys V2.3,转换条件像 方法调用一样处理。它会按照以下输入

语法:

<transition name>:=<transition condition>;

(如 trans1:= a=100")

或直接

<transition condition>;

(如 a=100)

同样参见上图中的例子(condition_xy),“转换例子”

动作

一个动作可以包含一系列用合法编程语言写的指令 。它被分配到一个步,在线模式下它会根据定义的 处理顺序 处理。

SFC步中使用的动作必须在SFC 的POU 中作为合法的POU,工程 ()。

插图 469: POUs树中的动作

提示!

POU父类范围中步名必须唯一。动作不能包含跟它被分配的步相同名字的步。

插图 470: 用ST写的动作例子

有以下类型的动作:

1. IEC认证步动作(“IEC动作”):

这是根据IEC61131-3标准的动作,它会根据它的 资格处理,当步变活跃时及第二次它无效时。分配多个动作到一个步时,动作列表 会从上到下执行。

  • • 不同的资格可以用做IEC的步动作,不同于“正常”步动作。
  • • 更深的不同于“正常”步动作的是,每个IEC步动作通过一个 控制标示提供,它允许确认——即使动作被另一个步调用——一次动作也只会被执行一遍。这在正常步动作中是不被保证的。
  • • 一个IEC步动作是通过 两部分盒子展示的,通过连接线连到步的右侧。左侧展示了动作资格,,右侧是 动作名。两个都可内引编辑。
  • • IEC步动作可以通过命令 “插入前关联动作”来关联。一个步可以关联一个或多个动作。新动作的位置取决于当前光标的位置和命令。动作必须在工程中可用,并且插入唯一动作名(如plc_prg.a1)。
插图 471: IEC认证步动作列表,关联到一步

第一列每个动作盒显示了资格,第二列显示了动作名。

2.IEC——扩展步动作:

这些是IEC标准扩展动作,(在 CoDeSys V3中,以前为 "3S-Smart Software Solutions GmbH 步动作": 动作必须作为对象在SFC对象下可用。动作名必须唯一。

- "步入口" 动作(步激活):

只要步被激活,这些步动作就会被处理,且在“步激活”动作之前。

动作通过步 属性的“步入口”区域的入口关联到步。它通过步左下角的“E”展示。

- "步激活" 动作 (步动作):

这种步动作会在步激活会执行,且在这一步可能的“步入口”执行完之后。 但是,不同于IEC步动作(见上),当它无效时不会被再执行,且它不可分配资格。

动作通过步 属性的“步激活”区域的入口关联到步。它通过步右上角的小三角展示。

- "步出口" 动作 (步无效):

当步无效时它会被执行一遍。但是,执行不会在同一个周期,却在下一步执行周期的开始。

动作通过步 属性的“步入口”区域的入口关联到步。它通过步右下角的“X”展示。

插图 472: IEC——扩展步动作

“步激活”,“步入口”和“步出口”动作是在步属性中定义的。

举例:IEC符合/扩展步动作的不同

步动作和有资格N的IEC动作的主要不同如下:IEC动作至少执行两次:第一次为步激活时,第二次为步无效时。见下例:

动作 Action_AS1关联到步AS1,作为一个步动作(左),作为一个有资格N的IEC动作(右)。两种情况下,两个转换都被使用了,初始步再次到达将会花费两个PLC周期的时间。我们假设,一个变量iCounter在Action_AS1中增加。再次激活步Init之后,左侧例子中的iCounter值为1。右侧值却是2,因为IEC动作——由于AS1的无效,已经执行了两遍。

分支

顺序功能图可以分支,即处理线可以分为两到多条线 ("分支")。 平行分支 会平行处理(同时), 选择分支 根据后续转换条件值执行一个。图中每个分支都会跟水平双线(平行)或单线(分支),并可过同样的线或 跳转终止。

平行分支

插图 473: 平行分支例子

平行分支必须以步开始和结束。平行分支可以包含选择分支或平行分支。

分支区域前后的水平线是 双线的

在线模式处理: 如果后续转换(图例的t2,左侧)为TRRE,第一步中的所有平行分支都会激活(Step11 和 Step21)。特定的分值会平行的处理,这在后续转换t3检测到之前。

平行分支是通过选中步后,命令 “插入右分支 ”插入的。

注意平行分支和选择分支可以通过命令 “平行分支” “选择分支”相互转换。这在编程时会有用。

分支标签会自动添加到水平线后续分支,名为Branch>,其中n是变化的数字,从0开始。这个标签可以在 跳转是定义。

选择分支

插图 474: 选择分支例子

分支前后的水平线是单线

选择分支必须以转换开始和结束。选择分支可以包含平行分支和其它选择分支。

如果选择开始线之后的步激活,那么每个分支转换会从左到右评价。从左侧开始第一个转换的值为TRUE,它会打开,随后的步会被激活。

选择分支是转换被选中时通过命令 “插入右分支 ” 分支实现的。

注意平行分支和选择分支可以通过命令 “平行分支” “选择分支”相互转换。这在编程时会有用。

跳转

插图 475: 跳转例子

跳转是通过一条竖线和水平箭头及跳转目标名展示的。

跳转定义了后续转换为TRUE时将要执行的步。因为处理线不能交叉或往上,跳转就需要了。

除了图最后的跳转,跳转只能用在分支的最后。当最后一个转换被选中时,可以通过 “插入前跳转” 命令插入

跳转的目标可以通过关联的文本字符串给定,可内引编辑。它可以是一个步名或平行分支的标签。

主SFC编辑器视图:

宏的宏编辑器视图:

                      

是通过包含宏名的粗体边框盒展示的。

它包含SFC表的一部分,在住编辑器视图中不是直接可见的。

处理流不会因使用宏而受到影响,它只是“隐藏”程序一部分的方式,如简化显示。

宏是通过命令‘插入宏(后)’插入的。宏名可以内引编辑。

要打开宏编辑器,双击宏或使用命令 “进入宏 ”。你可以像主编辑器视图中一样编辑,并输入SFC表中想要的部分。离开使用 “退出宏 ”

宏编辑器的标题栏显示宏在当前SFC例子中宏的路径: