1、S7-300/400PLC的功能与功能块,主讲:王 兵 E_Mail:,1.用户程序中的块结构,FC,FB,FC,SFB,FB,SFC,DB,DB,操作系统,OB,组织块,循环,定时,过程,故障,FB,图例:,OB-组织块,FB-功能块,FC-功能,SFC-系统功能,SFB-系统功能块,FB带背景数据块,最大嵌套深度:,S7-300:8,16(CPU318),S7-400:24,一、S7-300/400中的程序,2. 线性程序(线性编程),所谓线性程序结构,就是将整个用户程序连续放置在一个循环程序块(OB1)中,块中的程序按顺序执行,CPU通过反复执行OB1来实现自动化控制任务。这种结构和PL
2、C所代替的硬接线继电器控制类似,CPU逐条地处理指令。事实上所有的程序都可以用线性结构实现,不过,线性结构 一般适用于相对简单的程序编写。,3.模块化程序,所谓模块程序,就是将整个程序按任务分成若干个部分,并分别放置在不同的功能(FC)、功能块(FB)及组织块中,在一个块中可以进一步分解成段。在组织块OB1中 包含按顺序调用其他块的指令,并控制程序执行。在分部程序中,既无数据交换,也不存在重复利用的程序代码。功能(FC)和功能块(FB)不传递也不接收参数,分部程序结构的编程效率比线性程序有所提高,程序测试也较方便,对程序员的要求也不太高。对不太复杂的 控制程序可考虑采用这种程序结构。,4. 结
3、构化程序,所谓结构化程序,就是处理复杂自动化控制任务的过程中,为了使任务更易于控制,常把过程要求类似或相关的功能进行分类,分割为可用于几个任务的通用解决方案的小任务,这些小任务以相应的程序段表示,称为块(FC或FB)。OB1通过调用这些程序块来完成整个自动化控制任 务。结构化程序的特点是每个块(FC或FB)在OB1中可能会被多次调用,以完成具有相同过程工艺要求的不同控制对象。这种结构可简化程序设计过程、减小代码长度、提高 编程效率,比较适合于较复杂自动化控制任务的设计。,功能块(FB)有一个数据结构与该功能块的参数完全相同的数据块,称为背景数据块,背景数据块依附于功能块,它随着功能块的调用而打
4、开,随着功能块的结束而关闭。存放在背景数据块中的数据在功能块结束时继续保持。而功能(FC)则不需要背景数据块,功能调用结束后数据不能保持。,二、功能(FC)和功能块(FB)说明,每个逻辑块前部都有一个变量声明表,称为局部变量声明表。,1. 局部变量声明表,局部数据分为参数和局部变量两大类,局部变量又包括静态变量和临时变量(暂态变量)两种。,2.定义形式参数,编写逻辑块(FC和FB)程序时,可以用以下两种方式使用局部变量:使用变量名,此时变量名前加前缀“#”,以区别于在符号表中定义的符号地址。增量方式下,前缀会自动产生。直接使用局部变量的地址,这种方式只对背景数据块和L堆栈有效。在调用FB块时,
5、要说明其背景数据块。背景数据块应在调用前生成,其顺序格式与变量声明表必须保持一致。,3.编写控制程序,所谓无参功能(FC),是指在编辑功能(FC)时,在局部变量声明表不进行形式参数的定义,在功能(FC)中直接使用绝对地址完成控制程序的编程。这种方式一般应用于分部式结构的程序编写,每个功能(FC)实现整个控制任务的一部分,不重复调用。,(一)编辑并调用无参功能(FC)模块化程序设计,三、功能(FC),例:正反转编程实例,所谓有参功能(FC),是指编辑功能(FC)时,在局部变量声明表内定义了形式参数,在功能(FC)中使用了虚拟的符号地址完成控制程序的编程,以便在其他块中能重复调 用有参功能(FC)
6、。这种方式一般应用于结构化程序编写。,(二)编辑并调用有参功能(FC)结构化程序设计,例:电机顺序启动编程实例,功能块(FB)在程序的体系结构中位于组织块之下。它包含程序的一部分,这部分程序在OB1中可以多次调用。功能块的所有形参和静态数据都存储在一个单独的、被指定给该功能块的数据块(DB)中,该数据块被称为背景数据块。当调用FB时,该背景数据块会自动打开,实际参数的值被存储在背景数据块中;当块退出时,背景数据块中的数据仍然 保持。,四、功能块(FB),编辑并调用有静态参数的功能块,在编辑功能块(FB)时,如果程序中需要特定数据的参数,可以考虑将该特定数据定义为静态参数,并在FB的声明表内STAT处声明。下面以交通信号灯控制系统的设计为例,介绍如何编辑和调用有静态参数的功能块。,例:电机顺序启动编程实例,(一)编辑并调用无静态参数的功能块,