SFC语言概述
- - - - - -
概念
步
过渡
动作块
“飞跃”-过渡到任意步骤
发散与收敛
SFC程序示例
SFC(顺序功能图)代表功能图顺序,并且是IEC 61131-3的语言之一。 SFC使描述系统中过程的顺序变得容易。
SFC基于条件系统将顺序从一个操作转移到另一个操作,从而提供顺序过程控制。 SFC语言由有限数量的基本元素组成,这些基本元素用作构建程序流的完整算法的块。
SFC基本概念
SFC语言使用以下结构元素来创建程序:步骤(和初始步骤),过渡,动作块,跳转以及诸如发散和收敛之类的连接。
调用以SFC语言描述的程序模块后,首先要执行的初始步骤。 当前正在执行的步骤称为活动。 与活动步骤关联的动作在每个控制周期中执行一次。 在运行模式下,活动步骤以浅绿色突出显示。 仅当在这些步骤之间的转换中条件为真时,活动步骤之后的步骤才会变为活动状态。
在每个控制周期中,将执行活动步骤中包含的动作。 接下来,检查转换条件,并可能激活其他步骤,但它们将在下一个循环中执行。
下面介绍SFC图表的每个元素。
步骤
SFC语言最重要的元素是描述单个操作的步骤。 该步骤被描述为内部带有其自己名称的矩形(请参见图7.1)。
![](http://download.kaikong.cn/img/image352.png)图7.1-SFC语言“步骤”的图形表示
每个步骤可以有3个联系人。 在上方和下方连接到过渡,在右侧连接到动作块。 步骤之前有一个过渡,该过渡定义了在程序执行过程中激活该步骤的条件,并在过程图的分支上以水平线的形式显示了名称和条件。 绝对不能将两个步骤直接连接,应该始终用过渡将它们分开(见图7.2)。
![](http://download.kaikong.cn/img/image353.png)图7.2-通过转换“ tr2\_3”连接的步骤“ step2”和“ step3”
任何SFC图表都应包含一个初始步骤(标有双边框的步骤),从此步骤开始图表。
过渡
在步骤之间是所谓的过渡。 转换条件可以是用任何语言描述的逻辑变量或常数,逻辑地址或逻辑表达式。 该条件可以包括一系列以ST表达式形式形成逻辑结果的指令,例如:
(i <= 100)和b
或任何其他语言。
在图7.3提供了一个名为“ transition4”的步骤“ Step3”和“ Step5”之间的转换示例。
![](http://download.kaikong.cn/img/image354.png)图7.3-在具有预定义条件“ transition4”的步骤“ Step3”和“ Step5”之间的转换
在这种情况下,“ transition4”是预定义转换的名称,可以在SFC图表中重复使用它来确定几个步骤之间的转换。 它的代码可以用例如ST语言表示:
=(标志=真实AND级别> 10);
在图7.4显示了正常情况下步骤“ Step6”和“ Step7”之间的转换:
等级> 10
![](http://download.kaikong.cn/img/image355.png)图7.4-在具有预定义条件“ transition4”的步骤“ step6”和“ step7”之间的转换
在图7.5步骤“ Step8”和“ Step9”之间的转换以FBD语言中逻辑表达式“ AND”的值的形式表示:
![](http://download.kaikong.cn/img/image356.png)图7.5-用FBD语言中的“逻辑与”指定的步骤“ step8”和“ step9”之间的转换
该条件不得包含分配,对程序的调用以及功能块的实例。
动作块
每个步骤通常将零个或多个动作组合到一个图上,这通常是在图上。 在图7.6显示了“ evaluateStep”步骤及其相关操作块的示例。
![](http://download.kaikong.cn/img/image357.png)图7.6-步骤“ evaluateStep”和相关的动作块包含3个动作
动作块定义了激活(执行)步骤时必须执行的操作。 没有关联动作块的步骤被标识为等待步骤。 动作块可以包括预定义动作。 为每个预定义的动作分配一个名称(在图7.6中为“ action0”和“ action1”)。 一个动作可以一次在多个步骤中使用。 可以在激活该步骤时连续执行该动作,也可以执行一次。 这由表6中描述的特殊限定符确定。限定符还可以限制一个步骤中每个动作的执行时间。
“飞跃”-过渡到任意步骤
步骤也可以用“跳转”代替。 步骤序列始终与跳转到相同步骤序列的另一个步骤相关。 这意味着它们循环执行。 过渡到任意步骤是与名称以“跳转”标记的步骤的连接。 为了避免相交和向上连接,需要这种过渡。 在图7.7显示了一个包含两个“跳转”的SFC图表。
![](http://download.kaikong.cn/img/image358.png)图7.7-包含“跳转”的SFC图表
在满足条件“ transition4”的情况下,第一个过渡到步骤“ init”,在满足条件“ transition2”的情况下,第二个过渡到步骤“ step1”。
发散与收敛
发散是从一个步骤到多个过渡方向的多重连接。 仅分支之一被激活。 默认情况下,与发散开始时的各种过渡相关的条件不是互斥的。 应该在转换条件中明确指定互斥,以确保在程序执行期间激活一个特定的分支。 SFC图表中分歧的一个示例如图2所示。 7.8并以红色突出显示:
![](http://download.kaikong.cn/img/image359.png)图7.8-SFC图表上的散度
收敛是从多个转换到同一步骤的多重连接。 它通常用于对SFC分支进行分组-源自单个分歧的程序。 SFC图表中收敛的示例如图2所示。 7.9并以红色突出显示:
![](http://download.kaikong.cn/img/image360.png)图7.9-SFC图表上的收敛
并行发散是从一个过渡到多个步骤的多重连接。 它对应于流程操作的并行执行。 SFC图表中并行散度的示例如图2所示。 7.10并以红色突出显示:
![](http://download.kaikong.cn/img/image361.png)图7.10-SFC图表上的平行散度
并行收敛是到相同过渡的多个步骤的组合。 通常用于对已经开始发散的分支进行分组。 SFC图表中并行收敛的示例如图2所示。 7.11并以红色突出显示:
![](http://download.kaikong.cn/img/image362.png)图7.11-SFC图表上的并行收敛
SFC示例程序
在图7.12是包含初始步骤“ initStep”,步骤“ firstStep”和“ secondStep”以及3个转换的SFC图表的示例。
“ startFlag”过渡表示BOOL类型的常规变量,并且完全取决于其值。 “ firstStep”和“ secondStep”之间的转换取决于LD图,其中两个线圈与BOOL变量关联:“ in1”和“ in2”。 仅在“ in1”和“ in2”为TRUE时激活转换。 当变量“值”的值小于-100时,将激活“ secondStep”和initStep上的跳转之间的转换。
在“ firstStep”操作期间,计数变量增加1。在“ secondStep”操作期间,从“ value”变量中减去10。
![](http://download.kaikong.cn/img/image363.png)图7.12-SFC图表
- - - - - -
[< 前页](FBD.html) [回目录](_index.html) [后页 >](ST.html)
![](images~/theme_switcher.png)
- 软件操作手册
- 软件安装与使用
- 开发环境界面
- 程序的主菜单
- 工具栏
- 项目树
- 项目设置面板
- ST和IL语言的的文本编辑器
- 梯形图LD语言编辑器
- 功能块图FBD语言编辑器
- SFC语言编辑器
- 资源编辑面板
- 数据类型编辑面板
- 项目实例面板
- 功能和功能块库
- 调试控制台
- 搜索项目
- 调试面板
- 图形面板用于在调试模式下更改变量的值
- 软件操作
- 快速操作流程
- 项目操作实践
- IO变量挂载
- 应用程序选项
- 程序下载与调试
- Modbus配置使用方法
- 通过U盘更新应用程序
- 串口下载应用程序
- C语言嵌入
- 状态指示
- 重置内部文件存储
- IEC61131编程语言
- LD语言概述
- FBD语言
- SFC语言概述
- ST语言概述
- IL语言
- 函数库和功能块的说明