🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
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)