当前位置:首页 >> 能源/化工 >>

AB Logix5000处理器 SFC顺序功能图编程应用


AB Logix5000 处理器 SFC 顺序功能图编程应用
江苏华电戚墅堰发电有限公司 贡文明 前言: 本文从应用角度讲述了 Logix5000 系统的 SFC 功能和实际应用方法与技巧,当面对一个 复杂的顺序控制时,采用 SFC 来实现逻辑控制是一个非常好的选择。使用 SFC 来编写顺控程 序速度并不会比使用梯形图快很多, 但调试要比使用梯形图简单和方便许多。 由于

Logix5000 的 SFC 资料全为英文,并且相关的资料非常之少,给初次使用带来了许多不便,使用 SFC 最 重要的是需要了解 SFC 的的工作原理和一些常用的操作命令,如 S,N,P 等在各种 PLC 上他们 均基本一致, 符合国际标准的定义。本文根据个人使用经验对 SFC 各语法定义和功能进行了 详细描述,对 SFC Action 功能采用了 Basic 脚本语言进行了描述。

1.SFC 语言概述 .
IEC61131-3 SFC 语言规定将复杂的程序分割为较小的可管理的单元,并描述在这些单

元之间的控制流。使用 SFC 语言,可以设计顺序和并行过程。执行这些单元的时序取决于静 态条件和动态条件。一步接着一步地处理生产过程的行为特性特别适用于 SFC 语言。SFC 用 步和转换条件构成程序段, 步中通过定义操作实现对流程的操纵。 通过转换实现流程的按顺 序前进。

1.1 步 (Step)
步是控制流程中相对独立的一组操作的集合。 在步中可以定义任意数目的各种类型的操

作,通过操作实现对流程的控制。一个步可以是激活状态或不激活状态。步在紧接在前的转 换条件满足时激活。步在紧接在后的转换条件满足时退出激活状态。 每个 SFC 程序有一个起 始步,该步在第一次执行时默认为激活状态,其余的非起始步默认为不激活状态。步的上面 只能接转换、并行分支或选择聚合。步的下面只能接转换、并行聚合或选择分支。步有两种 类型:起始步和普通步。起始步在程序刚启动时就处于激活状态,然后程序将按照转换条件 的变化按照顺序依次执行。

1.2 转换条件
转换是控制从一个步转移到其他步的条件。 当转换条件满足时, 紧接在前的步从激活态 变成不激活态。 然后紧接在后的步将从不激活态转变成激活态。 只有当所有紧接在前的步的 状态都在激活状态时,转换条件才被测试。转换条件由一个变量或一个表达式来定义。 转换的上面只能接步、选择分支、并行接合;转换的下面只能接步、选择聚合、并行分支、 或跳转分支。

1.3 选择分支
选择分支提供了在 SFC 程序中实现条件控制的控制流程选择执行的方法。在选择分支结 构中只能有一个分支被激活。 分支跳转的优先级从左到右。 选择分支和选择聚合必须一一对 应。选择分支必须结束于同一选择聚合。

1.4 并行分支
并行分支使流程中的几个子流程同时进行。各分支的执行同时进行,不相互影响。只有 当所有的分支的最后一步都激活时,才测试并行聚合紧接的转换的条件是否满足。 并行分支和并行聚合必须一一对应。

1.5 操作(Action) 操作(Action)
操作是对系统变量进行的操纵的描述。 一个步中可以有 0 个或多个操作。 操作有多种类 型,操作类型由操作限定词来描述。操作可以是一个位号变量,也可以是调用一个子程序。 一个操作块包含一个操作连同其执行的条件 (称为动作限定词) 系统对步的激活和解除激活 期间所有步的动作块的执行条件进行监视。

1.6 执行顺序

一个 SFC 结构的网络分为一系列步和转换。 它们要循环地进行求值和执行。 一个步总是 处于激活状态或者不激活状态。 每一次循环对所有转换的求值, 其结果不是 TRUE 就是 FALSE。 待处理循环的活动步清单取决于这些步所依赖的转换的计算值。 在一个 SFC 网络中所有指令的执行依照以下算法进行调度。 1.6.1 激活初始步(仅在第一次调用时) ,否则对其后继转换为 TRUE 的所有步解除激活, 并激活紧接这些转换后的所有步。 1.6.2 检查所有动作控制的输出。若刚检测到一个 TRUE-FALSE 边沿,则最后一次执行所关 联的动作。 1.6.3 执行其动作控制所求值为 TRUE 的所有操作。 1.6.4 对转换进行求值,并从步 1 开始继续循环执行。 在 SFC 网络中没有显性的终点。 如果没有后继的转换, 则程序不会自动地返回到初始步, SFC 程序将停留在最后一个活动步。

2.Logix5000 的 SFC 功能描述 . 功能描述
2.1 步(STEP)在 RsLogix5000 中的属性状态表示如下图所示 中的属性状态表示如下图所示 属性状态表示 )

步变量是一个结构体,结构类型如下: x :激活指示,活动步的 x 为 1 (True) dn:完成指示,步完成后为 1(True) t :步运行的时间,单位 ms(在 LOGIX5000 系统中所有的时间单位均为 ms) 2.2 RSLOGIX5000 提供以下几个符合 IEC1131-3 标准的限定词 即 Action 类型 标准的限定词,即 2.2.1 N:操作在步的整个激活期间激活,随着步退出激活状态恢复成不激活状态。 :操作在步的整个激活期间激活,随着步退出激活状态恢复成不激活状态。 在步的整个激活期间激活 它在步激活期间执行,我通常用它来指示画面步运行时间 其工作原理用 Basic 语言描述如下: if (step.x) then //执行你的代码 end_if; 2.2.2 S:操作在步激活后将一直保持激活,与步的失去激活无关。 :操作在步激活后将一直保持激活,与步的失去激活无关。 在步激活后将一直保持激活 用 Basic 语言描述就如下: if (step.x or step.dn) //执行你的代码 end_if; 当然你如果仅仅需要在步活动期间执行就可以在 S 命令里面输入 if (step.x) then //执行你的代码 end_if; 如果仅仅需要在步完成以后执行就可以在 S 命令里面输入 if (step.DN) then //执行你的代码 end_if; 由于 SFC 逻辑同样是循环扫描原理工作,代码会一直反复执行。 2.2.3 R:操作在步激活后将一直保持在不激活状态。 :操作在步激活后将一直保持在不激活状态。 在步激活后将一直保持在不激活状态 此操作的作用是用于在当前步停止其它正在执行的操作, 如某步有个 S 操作, 由于步 退出后该操作仍然继续在执行,如果要让它停止执行,就可以使用 R 操作。 2.2.4 L:操作在步激活后在限定的时间内保持激活,超出时间恢复成不激活状态,若在此 :操作在步激活后在限定的时间内保持激活,超出时间恢复成不激活状态, 在步激活后在限定的时间内保持激活 then

期间步失去激活,则该动作也变为不激活状态。 期间步失去激活,则该动作也变为不激活状态。

该操作需要设置一个限制时间,单位为 ms。 该功能的 Basic 语言描述如下: If (step.x and step.t<settime) then //工作代码 end_if; 2.2.5 D:操作在步激活后经过限定的时间后,变为激活状态,随着步变成不激活状态,操 :操作在步激活后经过限定的时间后,变为激活状态,随着步变成不激活状态, 在步激活后经过限定的时间后

作恢复成不激活。 作恢复成不激活。 该操作需要设置一个限制时间,单位为 ms,如果在限定的时间内步已经变成不激活 状态,则操作无效。 该功能的 Basic 语言描述如下: If (step.x and step.t>settime) then //工作代码 end_if; 2.2.6 P:操作在步激活后只激活执行一次,失去激活后执行一次,然后恢复成不激活状态。 :操作在步激活后只激活执行一次 失去激活后执行一次 然后恢复成不激活状态。 在步激活后只激活执行一次 失去激活后执行一次, 在步的状态发生变化后执行一。 2.2.7 P0:操作在步从激活变成不激活的一个程序扫描周期激活,然后恢复成不激活状态。 :操作在步从激活变成不激活的一个程序扫描周期激活,然后恢复成不激活状态。 在步从激活变成不激活的一个程序扫描周期激活 2.2.8 态。 很有用,经常被用来产生设备控制命令脉冲 通常可以用来发送设备控制命令的脉冲 该功能的 Basic 语言描述如下: if (step.x and step.t=0) then //你的代码 end_if; 在 N,S,L 操作的命令内输入上面的程序可以实现 P1 相同的功能。 , , 2.2.9 DS:操作在步激活后维持限定的时间后,变为激活状态,并一直维持。 :操作在步激活后维持限定的时间后,变为激活状态,并一直维持。 在步激活后维持限定的时间后 P1:操作在步从不激活变成激活的一个程序扫描周期内激活,然后恢复成不激活状 :操作在步从不激活变成激活的一个程序扫描周期内激活, 在步从不激活变成激活的一个程序扫描周期内激活

如果步在维持限定时间内变成不激活,则操作不激活。 该功能的 Basic 语言描述如下: If (step.x and step.t>settime) then Start = true

end_if; if (start) then //工作代码 end_if; 2.2.10 SD:操作在步激活后经过限定时间后,变为激活状态,并一直维持,与步的失去激 :操作在步激活后经过限定时间后,变为激活状态,并一直维持, 在步激活后经过限定时间后 活无关。 活无关。 If step.x then start=true 该功能的 Basic 语言描述如下: If (start and step.t > settime) then //工作代码 end_if; 2.2.11 SL:操作在步激活后在限定的时间内保持激活,超出时间恢复成不激活状态,与步 :操作在步激活后在限定的时间内保持激活,超出时间恢复成不激活状态, 在步激活后在限定的时间内保持激活 的失去激活无关。 的失去激活无关。 该功能的 Basic 语言描述如下: If step.x then start=true If (start and step.t < settime) then //工作代码 end_if; 2.3 RsLogix5000 中的步类型 中的步类型 2.3.1 初始步 初始步时每个 SFC 逻辑必须的第一个步。 通常在初始中执行顺序流程的初始化操作。 初始步一但被执行,该 SFC 逻辑便处于扫 描执行状态。 2.3.2 工作步 除初始步时以外的步均为工作步。 2.3.3 结束标志 结束标志 作为 SFC 逻辑的运行结束标志。 无任何操作功能,处理器执行到该位置 停止该 SFC 功能块的继续执行。

2.4 RsLogix5000 SFC 逻辑控制方法

2.4.1 扫描调用 采用 JSR 功能块调用 SFC 子程序。 2.4.2 重头开始运行 使用 SFR 功能块停止当前任何执行工作,初始化 SFC 子程序,从初始步开始执行。 2.4.3 暂停运行 使用 SFP 的 PAUSE 功能暂停 SFC 子程序运行 2.4.4 恢复运行 使用 SFP 的 Execute(Continue)恢复暂停的 SFC 子程序继续运行

3.SFC 使用心得 .
SFC 一般需要梯形图或 FDB 逻辑的配合才能完成整个控制功能,通常使用梯形图实现 设备控制操作等逻辑处理功能,使用 SFC 实现顺序控制功能,SFC 最适合用来设计流程处理 类逻辑(如化水程控系统中的反洗、再生等过程) 。 在处理复杂流程的时候,适当的分解复杂的操作步可以为调试工作减少时间。

在可能需要进行修改的逻辑步附件添加若干空步可以为调试修改逻辑带来明显的好处。 SFC 并非万能,某些时候使用梯形图或许更简单更方便。

参考资料:Rockwell《SFC and ST Programming Languages》 《Logix5000 Controllers Common Procedures》 《Logix5000 Controllers General Instructions Reference Manual》


相关文章:
SFC顺序功能图教程
SFC顺序功能图教程_IT/计算机_专业资料。PLC 顺控指令 SFC 的编程方法顺序功能图(Sequeential Function Chart)是一种新颖的、按照工艺流程图 进行编程的图形编程...
第一章_SFC顺序功能图教程
第一章_SFC顺序功能图教程_计算机硬件及网络_IT/计算机_专业资料。三菱plc编程PLC 顺控指令 SFC 的编程方法顺序功能图(Sequeential Function Chart)是一种新颖的、...
顺序功能图,三种编程方式
顺序功能图,三种编程方式_计算机软件及应用_IT/计算机_专业资料。3.1PLC梯形图的...顺序功 能图( Sequential Function Chart简称SFC)是描述控制系统的控制过程、功能...
应用三菱GX+Developer编程软件编写SFC顺序...
应用三菱 GX Developer 编程软件编写 SFC 顺序功能图的方法 孙友 顺序功能图( ...要对三菱系列的 CPU 和 PLC 进行选择, 以符合对应系列的编程代码,否则容易出错...
PLC SFC功能
PLC SFC功能_信息与通信_工程科技_专业资料。PLC SFC功能PL SFC编程方法顺序功能图(Sequeential Function Chart)是一种新颖的、按照工艺流程图 进行编程的图形...
第一章 SFC顺序功能图教程
PLC 顺控指令 SFC 的编程方法顺序功能图(Sequeential Function Chart)是一种新颖的、按照工艺流程图进行编程的 图形编程语言。这是一种 IEC 标准推荐的首选编程语...
AB Logix5000软件安装步骤
AB Logix5000软件安装步骤_计算机硬件及网络_IT/计算机_专业资料。AB Logix5000 软件安装步骤安装软件步骤: 1、windows2000 安装。 2、应用软件的安装。 系统软件...
几种基于顺序功能图的编程方法的比较
对几种基于顺序功能图(sfc)的 编程方法进行比较,并...对每个工步的功能分别处理后再将它们依顺序连接, ...变频器、可编程序控制器及触摸屏综合应用技术 . ...
ab logix5000实例.rar
AB_Logix5000处理器_顺序控... 9页 5财富值 logix5000入门 111页 2财富值 ...8 3. 并行编程,减少工程实施时间。 4. 别名,趋势图方便系统调试。 9 分享...
SFC绘制方法_图文
SFC绘制方法_工学_高等教育_教育专区。关于我 应用三菱 GX Developer 编程软件编写 SFC 顺序功能图的方法在这里 输入标题 PLC 知识 2010-08-21 16:21:01 阅读...
更多相关标签:
logix5000 sfc编程 | logix5000处理器加密 | logix5000编程手册 | logix5000编程软件 | logix5000 v20.01授权 | logix5000 | logix500编程手册 | logix5000软件下载 |