西门子plc中OB、FC、FB、SFC、SFB的区别

来源:电工天下时间:2015-11-03 19:49:24 作者:老电工手机版>>

西门子plc中OB、FC、FB、SFC、SFB的区别

S7-300/400plc程序采用结构化程序,把程序分成多个模块,各模块完成相应的功能。结合起来就能实现一个复杂的控制系统。就像高级语言一样,用子程序实现特定的功能,再通过主程序调用各子程序,从而能实现复杂的程序。

在S7-300/400PLC中写在OB1模块里和程序就是主程序,子程序写在功能(FC),功能块(FB)。

FC运行是产生临时变量执行结束后数据就丢失-----不具有储存功能

FB运行时需要调用各种参数,于是就产生了背景数据块DB。例如用FB41来作PID控制,则它的PID控制参数就要存在DB里面。FB具有储存功能

系统功能块(SFB)和系统功能(SFC)也是相当于子程序,只不过SFB和SFC是集成在S7 CPU中的功能块,用户能直接调用不需自已写程序。

SFC与FC不具有储存功能,FB和SFB具有储存功能。

OB模块相当于子程序,负责调用其他模块。如果程序简单只需要OB就可以实现。

用西门子plc编程时,可以用到功能块FB和功能FC(FB、FC都是组织块)资料上说FB与FC都可以作为用户编写的子程序,但是我不明白这两个组织块之间到底有什么区别阿?在应用上到底有什么不同之处吗?
FB--功能块,带背景数据块
FC--功能,相当于函数
主要区别是:FC使用的是共享数据块,FB使用的是背景数据块

例子,如果您要对3个参数相同的电机进行控制,那么只需要使用FB编程外加3个背景数据块就可以了,但是,如果您使用FC,那么您需要不断的修改共享数据块,否则会导致数据丢失。FB确保了3个电机的参数互不干扰。

FB,FC本质都是一样的,都相当于子程序,可以被其他程序调用(也可以调用其他子程序)。他们的最大区别是,FB与DB配合使用,DB中保存着FB使用的数据,即使FB退出后也会一直保留。FC就没有一个永久的数据块来存放数据,只在运行期间会被分配一个临时的数据区。

在实际编程中,是使用FB还是FC,要看实际的需要决定。

FB与FC没有太大的差别,FB带有背景数据块,而FC没有。所以FB带上不同的数据块,就可以带上不同的参数值。这样就可以用同一FB和不同的背景数据块,被多个对象调用。

FC和FB像C中的函数,只不过FB可以生成静态变量,在下次函数调用时数据可以保留,而FC的变量只在调用期内有效,下次调用又重新更换。

这是一般的理解;FB需要背景数据块,而FC是没有的;参数的传递方式不同,FB的输入输出对应着背景数据块地址,而FC的输入输出是没有实际地址对应的,只有的程序调用时,才会和实际的地址产生对应关系。FB参数传递的是数据,FC参数传递的是数据的地址。

FB(功能块)的处理方式是围绕着数据块处理数据,他的入口参数和出口参数都是数据块里的数据,以及STAT的数据都是数据块里,入口参数和出口参数、STAT可以认为是静态数据,这些数据不会因为函数消失而逝去,他会一直保存在数据块里。

FB里的变量与他的背景数据块是一一对应的,而他的对应并不是一层不变的。更确切的说,FB里的变量在调用时将根据AR2的值当作偏移量与背景数据块是一一对应。如果一个FB功能块里没有入口参数、出口参数及STAT数据,他将不需要背景数据块,这时的FB和没有入口出口参数的FC就没有什么区别了,就只能使用临时变量和全局变量了。

FB的背景数据块必须由FB生成、FB里的第一个变量对应着背景数据块的第一个变量,还有就是由FB生成的数据块只能作为FB的背景数据块使用。其实这些理解是错误的,FB的背景数据块不一定是通过FB生成的,可以像生成共享数据块一样生成FB的背景数据块,换句话说,普通的数据块也可以作为FB的背景数据块,不过这种做法是有一定前提的,就是这个数据块的字节数必须大于等于FB所需的字节数,如果小于FB所需的字节数时,FB访问到超出背景数据块的变量时就会找不到变量的地址,肯定会出错了。FB里的第一个变量对应可以对应数据块字节数减去FB所需背景数据块字节数里的任意位置的变量,我觉得这个比较好理解,在多重背景里不就是这样吗。

相关文章
  • 西门子plc上升沿与下降沿的作用及编程方法

    西门子plc上升沿与下降沿的作用及编程方法

    西门子plc上升沿与下降沿的作用及编程方法,西门子plc上升沿与下降沿的作用及编程方法,以及上升沿和下降沿的主要作用说明。

    时间:2022-09-20 19:49:42

  • 西门子s7-200系列plc顺序控制指令的功能详解

    西门子s7-200系列plc顺序控制指令的功能详解

    西门子s7-200系列plc顺序控制指令的功能,每一个scr程序段一般有三种功能,驱动处理,指定转移条件和目标,转移源自动复位功能,顺序控制指令的应用说明。

    时间:2022-09-20 19:49:31

  • 西门子plc S7200多个寄存器累加程序

    <p><strong>西门子plc中wincc编程注意事项</strong></p> <p>1、项目程序命名为“项目名称_日期”(修改程序太多,容易记混)。</p> <p>2、改动程序时一定要有原程序的备份(组态硬件

    西门子plc S7200多个寄存器的累加程序,计算CS校验码,如何实现多个寄存器的累加,多个寄存器的地址是连续的,可用指针指令进行累加。

    时间:2022-09-18 14:31:47

  • 西门子plc顺序功能图分类与结构类型图解

    西门子plc顺序功能图分类与结构类型图解

    西门子plc顺序功能图的分类,包括单序列,选择分支与合并,并行分支,跳转与循环等,单序列由一系列相继激活的步组成,是最简单的一种顺序功能图。

    时间:2022-09-18 14:31:06

  • 西门子plc数学运算指令的分类

    西门子plc数学运算指令的分类

    西门子plc数学运算指令的分类,数学运算指令是对存储器数据进行的四则运算、函数运算处理,一般以字或双字的形式进行,数据可以是整数、浮点数。

    时间:2022-09-18 14:29:56

  • 西门子plc触点并联指令的用法

    西门子plc触点并联指令的用法

    西门子plc触点并联指令的用法,触点并联指令为O(Or)、ON(Or Not),有关plc触点并联指令的梯形图与语句表的实例,plc触点并联指令的使用说明。

    时间:2022-09-18 14:29:34

  • plc流量累积计算程序实例

    plc流量累积计算程序实例

    plc流量累积计算程序实例,plc计算流量累积的方法,plc在流量显示和累积计量上的应用,西门子plc中如何解决流量累积问题的方法,一起来了解下。

    时间:2022-09-18 14:29:15

  • profibus dp与pa有什么区别

    profibus dp与pa有什么区别

    在profibus中dp与pa的区别有哪些,参考如下:dp/pa:通信速率:一个是高度,一个是低速;dp:设备一级的,高速数据传输;profibus dp和pa的差别在物理层,二者都从现场设备存取相同的数据。

    时间:2022-04-28 18:31:12

推荐文章

Copyright © 2015 - 2022 dgjs123.com All Rights Reserved

电工天下 版权所有