西门子300程序结构与程序设计PPT精品文档

上传人:博****1 文档编号:570042534 上传时间:2024-08-01 格式:PPT 页数:135 大小:2.92MB
返回 下载 相关 举报
西门子300程序结构与程序设计PPT精品文档_第1页
第1页 / 共135页
西门子300程序结构与程序设计PPT精品文档_第2页
第2页 / 共135页
西门子300程序结构与程序设计PPT精品文档_第3页
第3页 / 共135页
西门子300程序结构与程序设计PPT精品文档_第4页
第4页 / 共135页
西门子300程序结构与程序设计PPT精品文档_第5页
第5页 / 共135页
点击查看更多>>
资源描述

《西门子300程序结构与程序设计PPT精品文档》由会员分享,可在线阅读,更多相关《西门子300程序结构与程序设计PPT精品文档(135页珍藏版)》请在金锄头文库上搜索。

1、Date: 2024/8/1 Page: 1Date: 2024/8/1 Page: 2第第5 5章章 S7 S7程序结构与程序设计程序结构与程序设计 5.15.1 S7 CPU S7 CPU中的程序中的程序5.25.2 数据块中的数据存储数据块中的数据存储 5.35.3 逻辑块(逻辑块(FCFC和和FBFB)的结构及编程)的结构及编程 5.45.4 编辑并调用无参功能(编辑并调用无参功能(FCFC)分部程序设计分部程序设计5.55.5 编辑并调用有参功能(编辑并调用有参功能(FCFC)结构化程序设计结构化程序设计5.65.6 编辑并调用无静态参数的功能块(编辑并调用无静态参数的功能块(FBF

2、B)5.75.7 编辑并调用有静态参数的功能块(编辑并调用有静态参数的功能块(FBFB)5.85.8 使用多重背景使用多重背景结构化程序设计结构化程序设计5.95.9 思考与练习思考与练习返回首页返回首页Date: 2024/8/1 Page: 35.1 S7 CPU中的程序中的程序 5.1.1 5.1.1 用户程序中的块结构用户程序中的块结构5.1.2 5.1.2 用户程序结构用户程序结构5.1.3 I/O5.1.3 I/O过程映像过程映像5.1.4 5.1.4 程序循环执行程序循环执行返回本章返回本章Date: 2024/8/1 Page: 45.1.1 5.1.1 用户程序中的块结构用户

3、程序中的块结构 返回本节返回本节Date: 2024/8/1 Page: 55.1.2 用户程序结构用户程序结构 线性程序(线性编程)线性程序(线性编程)分部式程序(分部编程、分块编程)分部式程序(分部编程、分块编程) 结构化程序(结构化编程或模块化编程)结构化程序(结构化编程或模块化编程) 返回本节返回本节Date: 2024/8/1 Page: 61. 线性程序(线性编程)线性程序(线性编程) 所谓线性程序结构,就是将整个用户程序连续放置在一所谓线性程序结构,就是将整个用户程序连续放置在一个循环程序块(个循环程序块(OB1OB1)中,块中的程序按顺序执行,)中,块中的程序按顺序执行,CPU

4、CPU通过通过反复执行反复执行OB1OB1来实现自动化控制任务。这种结构和来实现自动化控制任务。这种结构和PLCPLC所代替所代替的硬接线继电器控制类似,的硬接线继电器控制类似,CPUCPU逐条地处理指令。事实上所逐条地处理指令。事实上所有的程序都可以用线性结构实现,不过,线性结构一般适用有的程序都可以用线性结构实现,不过,线性结构一般适用于相对简单的程序编写。于相对简单的程序编写。返回上级返回上级Date: 2024/8/1 Page: 72.2.分部式程序(分部编程、分块编程)分部式程序(分部编程、分块编程) 所所谓谓分分部部程程序序,就就是是将将整整个个程程序序按按任任务务分分成成若若干

5、干个个部部分分,并并分分别别放放置置在在不不同同的的功功能能(F FC C)、功功能能块块(F FB B)及及组组织织块块中中,在在 一一 个个 块块 中中 可可 以以 进进 一一 步步 分分 解解 成成 段段 。 在在 组组 织织 块块O OB B1 1中中包含按顺序调用其他块的指令,并控制程序执行。包含按顺序调用其他块的指令,并控制程序执行。 在在分分部部程程序序中中,既既无无数数据据交交换换,也也不不存存在在重重复复利利用用的的程程序序代代码码。功功能能(F FC C)和和功功能能块块(F FB B)不不传传递递也也不不接接收收参参数数,分分部部程程序序结结构构的的编编程程效效率率比比线

6、线性性程程序序有有所所提提高高,程程序序测测试试也也较较方方便便,对对程程序序员员的的要要求求也也不不太太高高。对对不不太太复复杂杂的的控制程序可考虑采用这种程序结构。控制程序可考虑采用这种程序结构。 返回上级返回上级Date: 2024/8/1 Page: 83. 3. 结构化程序(结构化编程或模块化编程)结构化程序(结构化编程或模块化编程) 所所谓谓结结构构化化程程序序,就就是是处处理理复复杂杂自自动动化化控控制制任任务务的的过过程程中中,为为了了使使任任务务更更易易于于控控制制,常常把把过过程程要要求求类类似似或或相相关关的的功功能能进进行行分分类类,分分割割为为可可用用于于几几个个任任

7、务务的的通通用用解解决决方方案案的的小小任任务务,这这些些小小任任务务以以相相应应的的程程序序段段表表示示,称称为为块块(F FC C或或F FB B)。O OB B1 1通通 过过 调调 用用 这这 些些 程程 序序 块块 来来 完完 成成 整整 个个 自自 动动 化化 控控 制制 任任务。务。 结结构构化化程程序序的的特特点点是是每每个个块块(F FC C或或F FB B)在在O OB B1 1中中可可能能会会被被多多次次调调用用,以以完完成成具具有有相相同同过过程程工工艺艺要要求求的的不不同同控控制制对对象象。这这种种结结构构可可简简化化程程序序设设计计过过程程、减减小小代代码码长长度度

8、、提提高高编程效率,比较适合于较复杂自动化控制任务的设计。编程效率,比较适合于较复杂自动化控制任务的设计。返回上级返回上级Date: 2024/8/1 Page: 95.1.3 I/O5.1.3 I/O过程映像过程映像 返回本节返回本节Date: 2024/8/1 Page: 105.1.4 5.1.4 程序循环执行程序循环执行 返回本节返回本节Date: 2024/8/1 Page: 115.2 5.2 数据块中的数据存储数据块中的数据存储 5.2.1 数据存储区数据存储区5.2.2 数据块数据块5.2.3 数据块的数据结构数据块的数据结构5.2.4 建立数据块建立数据块5.2.5 访问数据

9、块访问数据块返回本章返回本章Date: 2024/8/1 Page: 125.2.1 5.2.1 数据存储区数据存储区 数数据据以以用用户户程程序序变变量量的的形形式式存存储储,且且具具有有唯唯一一性性。数数据据可可以以存存储储在在输输入入过过程程映映像像存存储储器器(P PI II I)、输输出出过过程程映映像像存存储储器器(P PI IQ Q)、位位存存储储器器(M M)、局局部部数数据据堆堆栈栈(L L堆堆栈栈)及及数数据据块块(D DB B)中中。可可以以采采用用基基本本数数据据类类型型、复复杂杂数数据据类类型或参数类型。型或参数类型。 根根据据访访问问方方式式的的不不同同,这这些些数

10、数据据可可以以在在全全局局符符号号表表或或共共享享数数据据块块中中声声明明,称称为为全全局局变变量量;也也可可以以在在O OB B、F FC C和和F FB B的的变变量量声声明明表表中中声声明明,称称为为局局部部变变量量。当当块块被被执执行行时时,变变量量将将固固定定 地地 存存 储储 在在 过过 程程 映映 像像 区区 (P PI II I或或P PI IQ Q) 、 位位 存存 储储 器器 区区(M M)、数据块()、数据块(DBDB)或局部堆栈()或局部堆栈(L L)中。)中。返回本节返回本节Date: 2024/8/1 Page: 135.2.2 5.2.2 数据块数据块 数据块定义

11、在数据块定义在S7 CPUS7 CPU的存储器中,用户可在存储器中建的存储器中,用户可在存储器中建立一个或多个数据块。每个数据块可大可小,但立一个或多个数据块。每个数据块可大可小,但CPUCPU对数据对数据块数量及数据总量有限制。块数量及数据总量有限制。 数数据据块块(D DB B)可可用用来来存存储储用用户户程程序序中中逻逻辑辑块块的的变变量量数数据据(如如:数数值值)。与与临临时时数数据据不不同同,当当逻逻辑辑块块执执行行结结束束或或数据块关闭时,数据块中的数据保持不变。数据块关闭时,数据块中的数据保持不变。 用用户户程程序序可可以以是是位位、字字节节、字字或或双双字字操操作作访访问问数数

12、据据块块中中的数据,可以使用符号或绝对地址。的数据,可以使用符号或绝对地址。 返回本节返回本节Date: 2024/8/1 Page: 141.1.数据块的分类数据块的分类 共共享享数数据据块块又又称称全全局局数数据据块块。用用于于存存储储全全局局数数据据,所所有有逻逻辑辑块块(O OB B、F FC C、F FB B)都都可可以以访访问问共共享享数数据据块块存存储储的的信。信。 背背景景数数据据块块用用作作“私私有有存存储储器器区区”,即即用用作作功功能能块块(F FB B)的的“存存储储器器”。F FB B的的参参数数和和静静态态变变量量安安排排在在它它的的背背景景数数据据块块中中。背背景

13、景数数据据块块不不是是由由用用户户编编辑辑的的,而而是是由由编编辑辑器器生成的。生成的。 用用户户定定义义数数据据块块(D DB B o of f T Ty yp pe e)是是以以U UD DT T为为模模板板所所生生成成的的数数据据块块。创创建建用用户户定定义义数数据据块块(D DB B o of f T Ty yp pe e)之之前前,必必须须先先 创创 建建 一一 个个 用用 户户 定定 义义 数数 据据 类类 型型 , 如如U U D D T T 1 1, 并并 在在LAD/STL/FBD S7LAD/STL/FBD S7程序编辑器内定义。程序编辑器内定义。返回上级返回上级Date:

14、 2024/8/1 Page: 152.2.数据块寄存器数据块寄存器 CPU有有两两个个数数据据块块寄寄存存器器:DB和和DI寄寄存存器器。这这样样,可可以以同时打开两个数据块。同时打开两个数据块。 Date: 2024/8/1 Page: 165.2.3 5.2.3 数据块的数据结构数据块的数据结构 在在S ST TE EP P 7 7中中数数据据块块的的数数据据类类型型可可以以采采用用基基本本数数据据类类型、复杂数据类型或用户定义数据类型(型、复杂数据类型或用户定义数据类型(UDTUDT)。)。基本数据类型基本数据类型复杂数据类型复杂数据类型用户定义数据类型用户定义数据类型 返回本节返回本

15、节Date: 2024/8/1 Page: 17基本数据类型基本数据类型 根根据据I IE EC C1 11 13 31 1- -3 3定定义义,长长度度不不超超过过3 32 2位位,可可利利用用S ST TE EP P 7 7基基本本指指令令处处理理,能能完完全全装装入入S S7 7处处理理器器的的累累加加器器中中。基基本本数数据类型包括:据类型包括:位数据类型位数据类型:BOOLBOOL、BYTEBYTE、WORDWORD、DWORDDWORD、CHARCHAR数字数据类型数字数据类型:INTINT、DINTDINT、REALREAL定时器类型定时器类型:S5TIMES5TIME、TIME

16、TIME、DATEDATE、TIME_OF_DAY TIME_OF_DAY 返回上级返回上级Date: 2024/8/1 Page: 18复杂数据类型复杂数据类型 复复杂杂数数据据类类型型只只能能结结合合共共享享数数据据块块的的变变量量声声明明使使用用。复复杂杂数数据据类类型型可可大大于于3 32 2位位,用用装装入入指指令令不不能能把把复复杂杂数数据据类类型型完完全全装装入入累累加加器器,一一般般利利用用库库中中的的标标准准块块(“I IE EC C”S S7 7程程序序)处处 理理 复复 杂杂 数数 据据 类类 型型 。 复复 杂杂 数数 据据 类类 型型 包包 括括 :时间时间(DATE

17、_AND_TIMEDATE_AND_TIME)类型)类型矩阵矩阵(ARRAYARRAY)类型)类型结构结构(STRUCTSTRUCT)类型)类型字符串字符串(STRINGSTRING)类型)类型返回上级返回上级Date: 2024/8/1 Page: 19用户定义数据类型(用户定义数据类型(UDTUDT) STEP 7允允许许利利用用数数据据块块编编辑辑器器,将将基基本本数数据据类类型型和和复复杂杂数数据据类类型型组组合合成成长长度度大大于于32位位用用户户定定义义数数据据类类型型(UDT:User-Defined dataType)。用用户户定定义义数数据据类类型型不不能能存存储储在在PLC

18、中中,只只能能存存放放在在硬硬盘盘上上的的UDT块块中中。可可以以用用用用户户定定义义数数据据类类型型作作“模模板板”建建立立数数据据块块,以以节节省省录录入入时时间间。可可用用于于建建立立 结结 构构 化化 数数 据据 块块 、 建建 立立 包包 含含 几几 个个 相相 同同 单单 元元 的的矩阵、在带有给定结构的矩阵、在带有给定结构的FC和和FB中建立局部变量。中建立局部变量。 返回上级返回上级Date: 2024/8/1 Page: 20【5-2-1】 创建用户定义数据类型:创建用户定义数据类型:UDT1。 创建一个名称为创建一个名称为UDT1UDT1的用户定义数据类型,数据结构如的用户

19、定义数据类型,数据结构如下,则可按以下几个步骤完成。下,则可按以下几个步骤完成。 返回上级返回上级Date: 2024/8/1 Page: 21【5-2-1】创建创建用户定义用户定义数据类型数据类型返回上级返回上级Date: 2024/8/1 Page: 22【5-2-1】编辑编辑UDT1UDT1返回上级返回上级Date: 2024/8/1 Page: 235.2.4 5.2.4 建立数据块建立数据块 在在STEP STEP 7 7中中,为为了了避避免免出出现现系系统统错错误误,在在使使用用数数据据块块之之前前,必必须须先先建建立立数数据据块块,并并在在块块中中定定义义变变量量(包包括括变变量

20、量符符号号名名、数数据据类类型型以以及及初初始始值值等等)。数数据据块块中中变变量量的的顺顺序序及及类类型型决决定定了了数数据据块块的的数数据据结结构构,变变量量的的数数量量决决定定了了数数据据块块的的大大小小。数数据据块块建建立立后后,还还必必须须同同程程序序块块一一起起下下载载到到CPUCPU中中,才才能能被被程序块访问。程序块访问。建立数据块建立数据块 定义变量并下载数据块定义变量并下载数据块 返回本节返回本节Date: 2024/8/1 Page: 24方法方法1 1:用用SIMATIC SIMATIC ManagerManager创建数据块。创建数据块。 返回上级返回上级Date:

21、2024/8/1 Page: 25方法方法2 2:用用LAD/STL/FBD S7LAD/STL/FBD S7程序编辑器创建数据块。程序编辑器创建数据块。 返回上级返回上级Date: 2024/8/1 Page: 26新新DBDB类型选择窗口类型选择窗口 返回上级返回上级Date: 2024/8/1 Page: 27编辑数据块(变量定义)编辑数据块(变量定义) 变变量量定定义义完完成成后后,应应单单击击保保存存按按钮钮保保存存并并编编译译(测测试试)。如如果果没没有有错错误误则则需需要要单单击击下下载载按按钮钮,像像逻逻辑辑块块一一样样,将将数数据据块块下下载载到到CPUCPU。 返回上级返回

22、上级Date: 2024/8/1 Page: 285.2.5 5.2.5 访问数据块访问数据块 在在用用户户程程序序中中可可能能存存在在多多个个数数据据块块,而而每每个个数数据据块块的的数数据据结结构构并并不不完完全全相相同同,因因此此在在访访问问数数据据块块时时,必必须须指指明明数数据据块块的的编编号号、数数据据类类型型与与位位置置。如如果果访访问问不不存存在在的的数数据据单单元元或或数据块,而且没有编写错误处理数据块,而且没有编写错误处理OBOB块,块,CPUCPU将进入将进入STOPSTOP模式。模式。寻址数据块寻址数据块 访问数据块访问数据块直接访问数据块直接访问数据块 返回本节返回本

23、节Date: 2024/8/1 Page: 29寻址数据块寻址数据块返回上级返回上级Date: 2024/8/1 Page: 30访问数据块访问数据块 在在STEP 7STEP 7中可以采用传统访问方式,即先打开后访问;中可以采用传统访问方式,即先打开后访问;也可以采用完全表示的直接访问方式。也可以采用完全表示的直接访问方式。【例【例5-2-25-2-2】 打开并访问共享数据块。打开并访问共享数据块。 返回上级返回上级Date: 2024/8/1 Page: 31访问数据块访问数据块 用用指指令令“O OP PN N D DB B. . . .”打打开开共共享享数数据据块块(自自动动关关闭闭之

24、之前前打打开开的的共共享享数数据据块块),如如果果D DB B已已经经打打开开,则则可可用用装装入入(L L)或或传送(传送(T T)指令访问数据块。)指令访问数据块。 【例【例5-2-35-2-3】 打开并访问背景数据块。打开并访问背景数据块。 返回上级返回上级Date: 2024/8/1 Page: 32直接访问数据块直接访问数据块 所谓直接访问数据块,就是在指令中同时给出数据块的所谓直接访问数据块,就是在指令中同时给出数据块的编号和数据在数据块中的地址。可以用绝对地址,也可以用编号和数据在数据块中的地址。可以用绝对地址,也可以用符号地址直接访问数据块。符号地址直接访问数据块。 用用绝对地

25、址绝对地址直接访问数据块,如:直接访问数据块,如: 用用符号地址符号地址直接访问数据块直接访问数据块 ,如:,如:返回上级返回上级Date: 2024/8/1 Page: 33 功功能能(F FC C)、功功能能块块(F FB B)和和组组织织块块(O OB B)统统称称为为逻逻辑辑块块(或或程程序序块块)。功功能能块块(F FB B)有有一一个个数数据据结结构构与与该该功功能能块块的的参参数数完完全全相相同同的的数数据据块块,称称为为背背景景数数据据块块,背背景景数数据据块块依依附附于于功功能能块块,它它随随着着功功能能块块的的调调用用而而打打开开,随随着着功功能能块块的的结结束束而而关关闭

26、闭。存存放放在在背背景景数数据据块块中中的的数数据据在在功功能能块块结结束束时时继继续续保保持持。而而功功能能(F FC C)则则不不需需要要背背景景数数据据块块,功功能能调调用用结结束束后后数数据据不不能能保保持持。组组织织块块(O OB B)是是由由操操作作系系统统直直接接调调用用的的逻逻辑辑块。块。 5.3.1 5.3.1 逻辑块(逻辑块(FCFC和和FBFB)的结构)的结构 5.3.1 5.3.1 逻辑块(逻辑块(FCFC和和FBFB)的编程)的编程 5.3 5.3 逻辑块(逻辑块(FCFC和和FBFB)的结构及编程)的结构及编程 返回本章返回本章Date: 2024/8/1 Page

27、: 34 逻辑块(逻辑块(OBOB、FBFB、FCFC)由变量声明表、代码段及其属性)由变量声明表、代码段及其属性等几部分组成。等几部分组成。局部变量声明表(局部数据)局部变量声明表(局部数据) 逻辑块局部变量的数据类型逻辑块局部变量的数据类型 逻辑块的调用过程及内存分配逻辑块的调用过程及内存分配 5.3.1 5.3.1 逻辑块(逻辑块(FCFC和和FBFB)的结构)的结构返回本节返回本节Date: 2024/8/1 Page: 35 每个逻辑块前部都有一个变量声明表,称为每个逻辑块前部都有一个变量声明表,称为局部变量声局部变量声明表明表。1. 1. 局部变量声明表局部变量声明表 局部数据分为

28、局部数据分为参数参数和和局部变量局部变量两大类,局部变量又包括两大类,局部变量又包括静态变量静态变量和和临时变量临时变量(暂态变量)两种。(暂态变量)两种。返回上级返回上级Date: 2024/8/1 Page: 36 对于对于功能块功能块(FBFB),操作系统为参数及静态变量分配的),操作系统为参数及静态变量分配的存储空间是背景数据块。这样参数变量在背景数据块中留有存储空间是背景数据块。这样参数变量在背景数据块中留有运行结果备份。在调用运行结果备份。在调用FBFB时,若没有提供实参,则功能块使时,若没有提供实参,则功能块使用背景数据块中的数值。操作系统在用背景数据块中的数值。操作系统在L L

29、堆栈中给堆栈中给FBFB的临时变的临时变量分配存储空间。量分配存储空间。 对于对于功能功能(FCFC),操作系统在),操作系统在L L堆栈中给堆栈中给FCFC的临时变量的临时变量分配存储空间。由于没有背景数据块,因而分配存储空间。由于没有背景数据块,因而FCFC不能使用静态不能使用静态变量。输入、输出、变量。输入、输出、I/OI/O参数以指向实参的指针形式存储在参数以指向实参的指针形式存储在操作系统为参数传递而保留的额外空间中。操作系统为参数传递而保留的额外空间中。 对于对于组织块组织块(OBOB)来说,其调用是由操作系统管理的,)来说,其调用是由操作系统管理的,用户不能参与。因此,用户不能参

30、与。因此,OBOB只有定义在只有定义在L L堆栈中的临时变量。堆栈中的临时变量。返回上级返回上级Date: 2024/8/1 Page: 37 局部变量可以是基本数据类型或复式数据类型,也可以局部变量可以是基本数据类型或复式数据类型,也可以是专门用于参数传递的所谓的是专门用于参数传递的所谓的“参数类型参数类型”。参数类型包括。参数类型包括定时器、计数器、块的地址或指针等。定时器、计数器、块的地址或指针等。2.2.逻辑块局部变量的数据类型逻辑块局部变量的数据类型 返回上级返回上级Date: 2024/8/1 Page: 38 CPU CPU提供提供块堆栈块堆栈(B B堆栈)来存储与处理被中断块的

31、有关堆栈)来存储与处理被中断块的有关信息。信息。3.3.逻辑块的调用过程及内存分配逻辑块的调用过程及内存分配 返回上级返回上级Date: 2024/8/1 Page: 39 局部数据堆栈局部数据堆栈简称简称L L堆栈堆栈,是,是CPUCPU中单独的存储器区,可中单独的存储器区,可用来存储逻辑块的局部变量(包括用来存储逻辑块的局部变量(包括OBOB的起始信息)、调用功的起始信息)、调用功能(能(FCFC)时要传递的实际参数、梯形图程序中的中间逻辑结)时要传递的实际参数、梯形图程序中的中间逻辑结果等。可以按位、字节、字和双字来存取。果等。可以按位、字节、字和双字来存取。 块堆栈块堆栈简称简称B B

32、堆栈堆栈,是,是CPUCPU系统内存中的一部分,用来存系统内存中的一部分,用来存储被中断的块的类型、编号、优先级和返回地址;中断时打储被中断的块的类型、编号、优先级和返回地址;中断时打开的共享数据块和背景数据块的编号;临时变量的指针(被开的共享数据块和背景数据块的编号;临时变量的指针(被中断块的中断块的L L堆栈地址)。堆栈地址)。 中断堆栈中断堆栈简称简称I I堆栈堆栈,用来存储当前累加器和地址寄存,用来存储当前累加器和地址寄存器的内容、数据块寄存器器的内容、数据块寄存器DBDB和和DIDI的内容、局域数据的指针、的内容、局域数据的指针、状态字、状态字、MCRMCR(主控继电器)寄存器和(主

33、控继电器)寄存器和B B堆栈的指针。堆栈的指针。 用户程序使用的堆栈用户程序使用的堆栈 返回上级返回上级Date: 2024/8/1 Page: 40 当调用功能块(当调用功能块(FBFB)时,会有以下事件发生:)时,会有以下事件发生: 调调用用块块的的地地址址和和返返回回位位置置存存储储在在块块堆堆栈栈中中,调调用用块块的的临临时时变变量量压压入入L L堆堆栈栈;数数据据块块D DB B寄寄存存器器内内容容与与D DI I寄寄存存器器内内容容交交换换;新新的的数数据据块块地地址址装装入入D DI I寄寄存存器器;被被调调用用块块的的实实参参装装入入D DB B和和L L堆堆栈栈上上部部;当当

34、功功能能块块F FB B结结束束时时,先先前前块块的的现现场场信信息息从从块块堆堆栈栈中中弹弹出,临时变量弹出出,临时变量弹出L L堆栈;堆栈;DBDB和和DIDI寄存器内容交换。寄存器内容交换。 当当调调用用功功能能块块(F FB B)时时,S ST TE EP P 7 7并并不不一一定定要要求求给给F FB B形形参参赋赋予予实实参参,除除非非参参数数是是复复式式数数据据类类型型的的I I/ /O O形形参参或或参参数数类类型型形形参参。如如果果没没有有给给F FB B的的形形参参赋赋予予实实参参,则则功功能能块块(F FB B)就就调调用用背背景景数数据据块块内内的的数数值值,该该数数值

35、值是是在在功功能能块块(F FB B)的的变变量量声声明明表表或或背背景景数数据据块块内内为形参所设置初始数值。为形参所设置初始数值。调用功能块(调用功能块(FBFB)时的堆栈操作)时的堆栈操作 返回上级返回上级Date: 2024/8/1 Page: 41 当调用功能(当调用功能(FCFC)时会有以下事件发生:)时会有以下事件发生: 功功能能(F FC C)实实参参的的指指针针存存到到调调用用块块的的L L堆堆栈栈;调调用用块块的的地地址址和和返返回回位位置置存存储储在在块块堆堆栈栈,调调用用块块的的局局部部数数据据压压入入L L堆堆栈栈;功功能能(F FC C)存存储储临临时时变变量量的的

36、L L堆堆栈栈区区被被推推入入L L堆堆栈栈上上部部;当当被被调调用用功功能能(F FC C)结结束束时时,先先前前块块的的信信息息存存储储在在块块堆堆栈栈中,临时变量弹出中,临时变量弹出L L堆栈。堆栈。 因因为为功功能能(F FC C)不不用用背背景景数数据据块块,不不能能分分配配初初始始数数值值给给功能(功能(FCFC)的局部数据,所以必须给功能()的局部数据,所以必须给功能(FCFC)提供实参。)提供实参。 调用功能(调用功能(FCFC)时的堆栈操作)时的堆栈操作 返回上级返回上级Date: 2024/8/1 Page: 42 以以功功能能(FC)调调用用为为例例,L堆堆栈栈操操作示意

37、如图所示。作示意如图所示。 调用功能(调用功能(FCFC)时的堆栈操作)时的堆栈操作 返回上级返回上级Date: 2024/8/1 Page: 43 对逻辑块编程时必须编辑下列三个部分:对逻辑块编程时必须编辑下列三个部分: 变变量量声声明明:分分别别定定义义形形参参、静静态态变变量量和和临临时时变变量量(F FC C块块中中不不包包括括静静态态变变量量);确确定定各各变变量量的的声声明明类类型型(D De ec cl l. .)、变变量量名名(N Na am me e)和和数数据据类类型型(D Da at ta a T Ty yp pe e),还还要要为为变变量量设设置置初初始始值值(I In

38、 ni it ti ia al l V Va al lu ue e)。如如果果需需要要还还可可为为变变量量注注释释(C Co om mm me en nt t)。在在增增量量编编程程模模式式下下,S ST TE EP P 7 7将将自自动动产产生生局局部部变量地址(变量地址(AddressAddress)。)。 代码段代码段:对将要由:对将要由PLCPLC进行处理的块代码进行编程。进行处理的块代码进行编程。 块属性块属性:块属性包含了其它附加的信息,例如由系统输:块属性包含了其它附加的信息,例如由系统输入的时间标志或路径。此外,也可输入相关详细资料。入的时间标志或路径。此外,也可输入相关详细资

39、料。 5.3.2 5.3.2 逻辑块(逻辑块(FCFC和和FBFB)的编程)的编程 返回本节返回本节Date: 2024/8/1 Page: 441.1.临时变量的定义和使用临时变量的定义和使用返回上级返回上级Date: 2024/8/1 Page: 452.2.查看局部数据堆栈的占用查看局部数据堆栈的占用 返回上级返回上级Date: 2024/8/1 Page: 463.3.查看块所需字节数查看块所需字节数 返回上级返回上级Date: 2024/8/1 Page: 474.4.定义形式参数定义形式参数 返回上级返回上级Date: 2024/8/1 Page: 48 编写逻辑块(编写逻辑块(F

40、CFC和和FBFB)程序时,可以用以下两种方式使)程序时,可以用以下两种方式使用局部变量:用局部变量: 使用变量名,此时变量名前加前缀使用变量名,此时变量名前加前缀“#”“#”,以区别于在,以区别于在符号表中定义的符号地址。增量方式下,前缀会自动产生。符号表中定义的符号地址。增量方式下,前缀会自动产生。 直接使用局部变量的地址,这种方式只对背景数据块直接使用局部变量的地址,这种方式只对背景数据块和和L L堆栈有效。堆栈有效。 在调用在调用FBFB块时,要说明其背景数据块。背景数据块应在块时,要说明其背景数据块。背景数据块应在调用前生成,其顺序格式与变量声明表必须保持一致。调用前生成,其顺序格式

41、与变量声明表必须保持一致。5.5.编写控制程序编写控制程序返回上级返回上级Date: 2024/8/1 Page: 49 所谓所谓无参功能无参功能(FCFC),是指在编辑功能(),是指在编辑功能(FCFC)时,在局)时,在局部变量声明表不进行形式参数的定义,在功能(部变量声明表不进行形式参数的定义,在功能(FCFC)中直接)中直接使用绝对地址完成控制程序的编程。这种方式一般应用于分使用绝对地址完成控制程序的编程。这种方式一般应用于分部式结构的程序编写,每个功能(部式结构的程序编写,每个功能(FCFC)实现整个控制任务的)实现整个控制任务的一部分,不重复调用。一部分,不重复调用。5.4.1 5.

42、4.1 编辑无参功能(编辑无参功能(FCFC)5.4.2 5.4.2 在在OB1OB1中调用无参功能(中调用无参功能(FCFC)5.4 5.4 编辑并调用无参功能(编辑并调用无参功能(FCFC)分部程序设计分部程序设计 返回本章返回本章Date: 2024/8/1 Page: 50【例【例5-4-15-4-1】 搅拌控制系统程序设计搅拌控制系统程序设计使用开关量。使用开关量。 返回本节返回本节Date: 2024/8/1 Page: 51控制说明控制说明 如如图图所所示示为为一一搅搅拌拌控控制制系系统统,由由3 3个个开开关关量量液液位位传传感感器器,分分别别检检测测液液位位的的高高、中中和和

43、低低。现现要要求求对对A A、B B两两种种液液体体原原料按等比例混合,请编写控制程序。料按等比例混合,请编写控制程序。 要要求求:按按起起动动按按钮钮后后系系统统自自动动运运行行,首首先先打打开开进进料料泵泵1 1,开开始始加加入入液液料料A A中中液液位位传传感感器器动动作作后后,则则关关闭闭进进料料泵泵1 1,打打开开进进料料泵泵2 2,开开始始加加入入液液料料B B高高液液位位传传感感器器动动作作后后,关关闭闭进进料料泵泵2 2,起起动动搅搅拌拌器器搅搅拌拌1 10 0s s后后,关关闭闭搅搅拌拌器器,开开启启放放料料泵泵当当低低液液位位传传感感器器动动作作后后,延延时时5 5s s后

44、后关关闭闭放放料料泵泵。按按停止按钮,系统应立即停止运行。停止按钮,系统应立即停止运行。 返回上级返回上级Date: 2024/8/1 Page: 521.1.创建创建S7S7项目项目 按照第按照第3 3章所介绍的方法,创建章所介绍的方法,创建S7S7项目,并命名为项目,并命名为“无参无参FC”FC”,项目包含组织块,项目包含组织块OB1OB1和和OB100OB100。2.2.硬件配置硬件配置 在在 “ “无参无参FC”FC”项目内打开项目内打开“SIMATIC 300 Station”“SIMATIC 300 Station”文文件夹,打开硬件配置窗口,并完成硬件配置。件夹,打开硬件配置窗口

45、,并完成硬件配置。 5.4.1 5.4.1 编辑无参功能(编辑无参功能(FCFC) 返回本节返回本节Date: 2024/8/1 Page: 533.3.编辑符号表编辑符号表 返回上级返回上级Date: 2024/8/1 Page: 544.4.规划程序结构规划程序结构 返回上级返回上级Date: 2024/8/1 Page: 555.5.编辑功能(编辑功能(FC FC ) 在在“无无参参F FC C”项项目目内内选选择择“B Bl lo oc ck ks s”文文件件夹夹,然然后后反反复复执执行行菜菜单单命命令令【I In ns se er rt t】【S S7 7 B Bl lo oc c

46、k k】【F Fu un nc ct ti io on n】,分分别别创创建建4 4个个功功能能(F FC C):F FC C1 1、F FC C2 2、F FC C3 3和和F FC C4 4。由由于于在在符符号号表表内内已已经经为为F FC C1 1F FC C4 4定定义义了了符符号号名名,因因此此在在创创建建F FC C的的属属性性对对话话框内系统会自动添加符号名。框内系统会自动添加符号名。FC1FC1控制程序控制程序FC2FC2控制程序控制程序FC3FC3控制程序控制程序FC4FC4控制程序控制程序OB100OB100控制程序控制程序返回上级返回上级Date: 2024/8/1 Pa

47、ge: 56FC1FC1的控制程序的控制程序FC2FC2的控制程序的控制程序返回上级返回上级Date: 2024/8/1 Page: 57FC3FC3的控制程序的控制程序返回上级返回上级Date: 2024/8/1 Page: 58FC4FC4的控制程序的控制程序返回上级返回上级Date: 2024/8/1 Page: 59OB100OB100的控制程序的控制程序返回上级返回上级Date: 2024/8/1 Page: 605.4.2 5.4.2 在在OB1OB1中调用无参功能(中调用无参功能(FCFC) 返回本节返回本节Date: 2024/8/1 Page: 61OB1OB1的控制程序的控

48、制程序返回上级返回上级Date: 2024/8/1 Page: 62 所所谓谓有有参参功功能能(F FC C),是是指指编编辑辑功功能能(F FC C)时时,在在局局部部变变量量声声明明表表内内定定义义了了形形式式参参数数,在在功功能能(F FC C)中中使使用用了了虚虚拟拟的的符符号号地地址址完完成成控控制制程程序序的的编编程程,以以便便在在其其他他块块中中能能重重复复调调用有参功能(用有参功能(FCFC)。这种方式一般应用于结构化程序编写。)。这种方式一般应用于结构化程序编写。5.5.1 5.5.1 编辑有参功能(编辑有参功能(FCFC) 5.5.2 5.5.2 在在OB1OB1中调用有参

49、功能(中调用有参功能(FCFC)5.5 5.5 编辑并调用有参功能(编辑并调用有参功能(FCFC)结构化程序设计结构化程序设计 返回本章返回本章Date: 2024/8/1 Page: 63【例【例5-5-15-5-1】 多级分频器控制程序设计。多级分频器控制程序设计。 本本例例拟拟在在功功能能F FC C1 1中中编编写写二二分分频频器器控控制制程程序序,然然后后在在O OB B1 1中中通通过过调调用用F FC C1 1实实现现多多级级分分频频器器的的功功能能。多多级级分分频频器器的的时时序序关关系系如如图图所所示示。其其中中I I0 0. .0 0为为多多级级分分频频器器的的脉脉冲冲输输

50、入入端端;Q Q4 4. .0 0Q Q4 4. .3 3分分 别别 为为2 2、4 4、8 8、1 16 6分分 频频 的的 脉脉 冲冲 输输 出出 端端 ;Q Q4 4. .4 4Q4.7Q4.7分别为分别为2 2、4 4、8 8、1616分频指示灯驱动输出端。分频指示灯驱动输出端。返回本节返回本节Date: 2024/8/1 Page: 645.5.1 5.5.1 编辑有参功能(编辑有参功能(FCFC) 创建多级分频器的创建多级分频器的S7S7项目项目硬件配置硬件配置编写符号表编写符号表 规划程序结构规划程序结构 创建有参功能创建有参功能FC1 FC1 返回本节返回本节Date: 202

51、4/8/1 Page: 651.1.创建多级分频器的创建多级分频器的S7S7项目项目 使使用用菜菜单单【F Fi il le e】【“N Ne ew w P Pr ro oj je ec ct t”W Wi iz za ar rd d】创创建建多多级分频器的级分频器的S7S7项目,并命名为项目,并命名为“有参有参FCFC”。2.2.硬件配置硬件配置 打打开开“S SI IM MA AT TI IC C 3 30 00 0 S St ta at ti io on n”文文件件夹夹,双双击击硬硬件件配配置置图图标打开硬件配置窗口,并按图所示完成标打开硬件配置窗口,并按图所示完成硬件配置硬件配置。返

52、回上级返回上级Date: 2024/8/1 Page: 663. 3. 编写符号表编写符号表 返回上级返回上级Date: 2024/8/1 Page: 674. 4. 规划程序结构规划程序结构 返回上级返回上级Date: 2024/8/1 Page: 685. 5. 创建有参创建有参FC1 FC1 选选择择“有有参参F FC C”项项目目的的“B Bl lo oc ck ks s”文文件件夹夹,然然后后执执行行菜菜单单命命令令【I In ns se er rt t】【S S7 7 B Bl lo oc ck k】【F Fu un nc ct ti io on n】,在在块块文文件件夹夹内创建一

53、个功能,并命名为内创建一个功能,并命名为“FC1”“FC1”。编辑编辑FC1FC1的变量声明表的变量声明表 在在FC1FC1的变量声明表内,声明的变量声明表内,声明4 4个参数,见下表。个参数,见下表。返回上级返回上级Date: 2024/8/1 Page: 69编辑编辑FC1FC1的控制程序的控制程序 二二分分频频器器的的时时序序如如图图所所示示。分分析析二二分分频频器器的的时时序序图图可可以以看看到到,输输入入信信号号每每出出现现一一个个上上升升沿沿,输输出出便便改改变变一一次次状状态,据此可采用上跳沿检测指令实现。态,据此可采用上跳沿检测指令实现。 如如果果输输入入信信号号S_INS_I

54、N出出现现上上升升沿沿,则则对对S_OUTS_OUT取取反反,然然后后将将S_OUTS_OUT的的信信号号状状态态送送LEDLED显显示示;否否则则,程程序序直直接接跳跳转转到到LP1LP1,将将S_OUTS_OUT的信号状态送的信号状态送LEDLED显示。显示。返回上级返回上级Date: 2024/8/1 Page: 70FC1FC1的控制程序的控制程序返回上级返回上级Date: 2024/8/1 Page: 715.5.2 5.5.2 在在OB1OB1中调用有参功能(中调用有参功能(FCFC) 使使用用绝绝对对地地址址使使用用符符号号地地址址返回本节返回本节Date: 2024/8/1 P

55、age: 72 功功能能块块(F FB B)在在程程序序的的体体系系结结构构中中位位于于组组织织块块之之下下。它它包包含含程程序序的的一一部部分分,这这部部分分程程序序在在O OB B1 1中中可可以以多多次次调调用用。功功能能块块的的所所有有形形参参和和静静态态数数据据都都存存储储在在一一个个单单独独的的、被被指指定定给给该该功功能能块块的的数数据据块块(D DB B)中中,该该数数据据块块被被称称为为背背景景数数据据块块。当当调调用用F FB B时时,该该背背景景数数据据块块会会自自动动打打开开,实实际际参参数数的的值值被被存存储储在在背背景景数数据据块块中中;当当块块退退出出时时,背背景

56、景数数据据块块中中的的数数据据仍仍然然保持。保持。 5.6.1 5.6.1 编辑无静态参数的功能块(编辑无静态参数的功能块(FBFB)5.6.2 5.6.2 在在OB1OB1中调用无静态参数的功能块(中调用无静态参数的功能块(FBFB) 5.6 5.6 编辑无静参的功能块(编辑无静参的功能块(FB FB )返回本章返回本章Date: 2024/8/1 Page: 73【例【例5-6-15-6-1】 水箱水位控制系统程序设计。水箱水位控制系统程序设计。返回本节返回本节Date: 2024/8/1 Page: 74【例【例5-6-15-6-1】 系系统统有有3 3个个贮贮水水箱箱,每每个个水水箱箱

57、有有2 2个个液液位位传传感感器器,U UH H1 1,U UH H2 2,U UH H3 3为为高高液液位位传传感感器器,“1 1”有有效效;U UL L1 1,U UL L2 2,U UL L3 3为为低低液液位位传传感感器器,“0 0”有有效效。Y Y1 1、Y Y3 3、Y Y5 5分分别别为为3 3个个贮贮水水水水箱箱进进水水电电磁磁阀阀;Y Y2 2、Y Y4 4、Y Y6 6分分别别为为3 3个个贮贮水水水水箱箱放放水水电电磁磁阀阀。S SB B1 1、S SB B3 3、S SB B5 5分分别别为为3 3个个贮贮水水水水箱箱放放水水电电磁磁阀阀手手动动开开启启按按钮钮;S S

58、B B2 2、S SB B4 4、S SB B6 6分分 别别 为为3 3个个贮贮水水箱箱放放水水电电磁磁阀阀手手动动关关闭闭按按钮钮。 控控制制要要求求:S SB B1 1、S SB B3 3、S SB B5 5在在P PL LC C外外部部操操作作设设定定,通通过过人人为为的的方方式式,按按随随机机的的顺顺序序将将水水箱箱放放空空。只只要要检检测测到到水水箱箱“空空”的的信信号号,系系统统就就自自动动地地向向水水箱箱注注水水,直直到到检检测测到到水水箱箱“满满”信信号号为为止止。水水箱箱注注水水的的顺顺序序要要与与水水箱箱放放空空的的顺顺序序相相同同,每每次次只只能对一个水箱进行注水操作。

59、能对一个水箱进行注水操作。 返回上级返回上级Date: 2024/8/1 Page: 755.6.1 5.6.1 编辑无静态参数的功能块(编辑无静态参数的功能块(FBFB) 创建创建S7S7项目项目硬件配置硬件配置编写符号表编写符号表 规划程序结构规划程序结构 编辑功能块(编辑功能块(FBFB) 建立背景数据块(建立背景数据块(DIDI) 编辑启动组织块编辑启动组织块OB100 OB100 返回本节返回本节Date: 2024/8/1 Page: 761.1.创建创建S7S7项目项目 使使用用菜菜单单【F Fi il le e】【“N Ne ew w P Pr ro oj je ec ct t

60、”W Wi iz za ar rd d】创创建建水水箱箱水水位位控控制制系系统统的的S S7 7项项目目,并并命命名名为为“无无静静参参F FB B”。项项目目包包含含组织块组织块OB1OB1和和OB100OB100。2.2.硬件配置硬件配置 在在“无静参无静参FB”FB”项目内打开项目内打开“SIMATIC 300 Station”“SIMATIC 300 Station”文文件夹,打开硬件配置窗口,并按图所示完成件夹,打开硬件配置窗口,并按图所示完成硬件配置硬件配置。 返回上级返回上级Date: 2024/8/1 Page: 773.3.编写符号表编写符号表返回上级返回上级Date: 20

61、24/8/1 Page: 784.4.规划程序结构规划程序结构返回上级返回上级Date: 2024/8/1 Page: 795.5.编辑功能(编辑功能(FB1FB1) 在在“无无静静参参F FB B”项项目目内内选选择择“B Bl lo oc ck ks s”文文件件夹夹,执执行行菜菜单单命命令令【I In ns se er rt t】【S S7 7 B Bl lo oc ck k】【F Fu un nc ct ti io on n B Bl lo oc ck k】,创创建建功功能能块块F FB B1 1。由由于于在在符符号号表表内内已已经经为为F FB B1 1定定义义了了符符号号名名,因因

62、此此在在FB1FB1的属性对话框内系统会自动添加符号名的属性对话框内系统会自动添加符号名“水箱控制水箱控制”。定义局部变量声明表定义局部变量声明表编写程序代码编写程序代码返回上级返回上级Date: 2024/8/1 Page: 80定义局部变量声明表定义局部变量声明表 与功能(与功能(FCFC)不同,在功能块()不同,在功能块(FBFB)参数表内还有扩)参数表内还有扩展地址(展地址(Exclusion addressExclusion address)和结束地址()和结束地址(Termination Termination addressaddress)选项。)选项。 返回上级返回上级Date

63、: 2024/8/1 Page: 81编写程序代码编写程序代码返回上级返回上级Date: 2024/8/1 Page: 826.6.建立背景数据块建立背景数据块DB1DB1、DB2DB2、DB3DB3返回上级返回上级Date: 2024/8/1 Page: 837.7.编辑启动组织块编辑启动组织块OB100OB100返回上级返回上级Date: 2024/8/1 Page: 845.6.2 在在OB1中调用无静态参数的功能块(中调用无静态参数的功能块(FB) 返回本节返回本节Date: 2024/8/1 Page: 85OB1OB1控制程序控制程序返回上级返回上级Date: 2024/8/1 P

64、age: 86【例【例5-6-25-6-2】 搅拌控制系统程序设计搅拌控制系统程序设计使用模拟量。使用模拟量。 返回上级返回上级Date: 2024/8/1 Page: 87 上图所示为一上图所示为一搅拌控制系统搅拌控制系统,由一个模拟量液位传感器,由一个模拟量液位传感器- -变送器来检测液位的高低,并进行液位显示。现要求对变送器来检测液位的高低,并进行液位显示。现要求对A A、B B两种液体原料按等比例混合,请编写控制程序,控制要求如两种液体原料按等比例混合,请编写控制程序,控制要求如下:下: 按起动按钮后系统自动运行,首先打开进料泵按起动按钮后系统自动运行,首先打开进料泵1 1,开始加,开

65、始加入液料入液料AA当液位达到当液位达到50%50%后,则关闭进料泵后,则关闭进料泵1 1,打开进料泵,打开进料泵2 2,开始加入液料,开始加入液料BB当液位达到当液位达到100%100%后,则关闭进料泵后,则关闭进料泵2 2,起,起动搅拌器动搅拌器搅拌搅拌10s10s后,关闭搅拌器,开启放料泵后,关闭搅拌器,开启放料泵当液料放当液料放空后,延时空后,延时5s5s后关闭放料泵。按停止按钮,系统应立即停止后关闭放料泵。按停止按钮,系统应立即停止运行。运行。 返回上级返回上级Date: 2024/8/1 Page: 881.1.创建创建S7S7项目项目 使使用用菜菜单单【F Fi il le e】

66、【“N Ne ew w P Pr ro oj je ec ct t”W Wi iz za ar rd d】创创建建搅搅拌控制系统的拌控制系统的S7S7项目,并命名为项目,并命名为“FCFC与与FBFB”。2.2.硬件配置硬件配置 在在“F FC C与与F FB B”项项目目内内打打开开“S SI IM MA AT TI IC C 3 30 00 0 S St ta at ti io on n”文文件件夹,打开硬件配置窗口,并按图下完成硬件配置。夹,打开硬件配置窗口,并按图下完成硬件配置。返回上级返回上级Date: 2024/8/1 Page: 89 修修改改模模块块的的模模拟拟量量输输入入通通

67、道道和和输输出出通通道道的的起起始始地地址址均均为为2 25 56 6。返回上级返回上级Date: 2024/8/1 Page: 903.3.编辑符号表编辑符号表返回上级返回上级Date: 2024/8/1 Page: 914.4.规划程序结构规划程序结构 O OB B1 1为为主主循循环环组组织织块块;O OB B1 10 00 0为为启启动动组组织织块块;F FC C1 1实实现现搅搅拌拌控控制制;F FC C2 2实实现现放放料料控控制制;F FB B1 1通通过过调调用用D DB B1 1和和D DB B2 2实实现现液液料料A A和和液液料料B B的的进进料料控控制制;D DB B1

68、 1和和D DB B2 2为为液液料料A A和和液液料料B B进进料料控控制制的的背背景景数数据据块块,在在调调用用F FB B1 1时时为为F FB B1 1提提供供实实际际参参数数,并并保保存存过过程程结结果。果。 返回上级返回上级Date: 2024/8/1 Page: 925.5.创建无参功能(创建无参功能(FC1FC1、FC2FC2)(1/2)(1/2)FC1FC1控制程序控制程序返回上级返回上级Date: 2024/8/1 Page: 935.5.创建无参功能(创建无参功能(FC1FC1、FC2FC2)(2/2)(2/2)FC2FC2控制程序控制程序返回上级返回上级Date: 20

69、24/8/1 Page: 946.6.创建无静态参数的功能块(创建无静态参数的功能块(FB1 )定义定义FB1FB1的局部变量声明表的局部变量声明表编写编写FB1FB1控制程序控制程序返回上级返回上级Date: 2024/8/1 Page: 957.7.建立背景数据块(建立背景数据块(DB1、DB2) 在在“F FC C与与F FB B”项项目目内内选选择择“B Bl lo oc ck ks s”文文件件夹夹,执执行行菜菜单单命命令令【I In ns se er rt t】【S S7 7 B Bl lo oc ck k】【D Da at ta a B Bl lo oc ck k】,创创建建与与

70、F FB B1 1相相关关联联的的背背景景数数据据块块D DB B1 1和和D DB B2 2。S ST TE EP P 7 7自自动动为为D DB B1 1和和D DB B2 2构构建建了与了与FB1FB1完全相同的数据结构,如下图所示。完全相同的数据结构,如下图所示。 返回上级返回上级Date: 2024/8/1 Page: 968.8.在在OB1OB1中调用中调用FC1FC1、FC2FC2和和FB1 FB1 OB1OB1的控制程序的控制程序返回上级返回上级Date: 2024/8/1 Page: 97OB1OB1的控制程序的控制程序返回上级返回上级Date: 2024/8/1 Page:

71、 98OB1OB1的控制程序的控制程序返回上级返回上级Date: 2024/8/1 Page: 999.9.编写启动组织块编写启动组织块OB100OB100的控制程序的控制程序返回上级返回上级Date: 2024/8/1 Page: 1005.7 5.7 编辑并调用有静态参数的功能块编辑并调用有静态参数的功能块 在编辑功能块(在编辑功能块(FBFB)时,如果程序中需要特定数据的参)时,如果程序中需要特定数据的参数,可以考虑将该特定数据定义为数,可以考虑将该特定数据定义为静态参数静态参数,并在,并在FBFB的声明的声明表内表内STATSTAT处声明。处声明。 下面以交通信号灯控制系统的设计为例,

72、介绍如何编辑下面以交通信号灯控制系统的设计为例,介绍如何编辑和调用有静态参数的功能块。和调用有静态参数的功能块。5.7.1 5.7.1 编辑有静态参数的功能块(编辑有静态参数的功能块(FBFB)5.7.2 5.7.2 在在OB1OB1中调用有静态参数的功能块(中调用有静态参数的功能块(FBFB)返回本章返回本章Date: 2024/8/1 Page: 101【例【例5-7-15-7-1】 交通信号灯控制系统程序设计。交通信号灯控制系统程序设计。 返回本节返回本节Date: 2024/8/1 Page: 102 上图所示为双干道交通信号灯设置示意图。信号灯的动上图所示为双干道交通信号灯设置示意图

73、。信号灯的动作受开关总体控制,按一下起动按钮,信号灯系统开始工作,作受开关总体控制,按一下起动按钮,信号灯系统开始工作,并周而复始地循环动作;按一下停止按钮,所有信号灯都熄并周而复始地循环动作;按一下停止按钮,所有信号灯都熄灭。信号灯控制的具体要求见下表,试编写信号灯控制程序。灭。信号灯控制的具体要求见下表,试编写信号灯控制程序。返回上级返回上级Date: 2024/8/1 Page: 103 根据十字路口交通信号灯的控制要求,可画出信号灯的根据十字路口交通信号灯的控制要求,可画出信号灯的控制时序图控制时序图。 返回上级返回上级Date: 2024/8/1 Page: 1045.7.1 5.7

74、.1 编辑有静态参数的功能块(编辑有静态参数的功能块(FBFB) 创建创建S7项目项目 硬件配置硬件配置 编写符号表编写符号表 规划程序结构规划程序结构 编辑功能块(编辑功能块(FB) 建立背景数据块(建立背景数据块(DI) 编辑启动组织块编辑启动组织块OB100 返回本节返回本节Date: 2024/8/1 Page: 1051.1.创建创建S7S7项目项目 使使用用菜菜单单【F Fi il le e】【“N Ne ew w P Pr ro oj je ec ct t”W Wi iz za ar rd d】创创建建交交通通信信号号灯灯控控制制系系统统的的S S7 7项项目目,并并命命名名为为

75、“有有静静参参F FB B”。项项目目包包含组织块含组织块OB1OB1和和OB100OB100。2.2.硬件配置硬件配置 在在“有静参有静参FB”FB”项目内打开项目内打开“SIMATIC 300 “SIMATIC 300 Station”Station”文件夹,打开硬件配置窗口,并按下图所示完文件夹,打开硬件配置窗口,并按下图所示完成硬件配置。成硬件配置。返回上级返回上级Date: 2024/8/1 Page: 1063.3.编写符号表编写符号表返回上级返回上级Date: 2024/8/1 Page: 1074.4.规划程序结构规划程序结构O OB B1 1为为主主循循环环组组织织块块、O

76、OB B1 10 00 0初初始始化化程程序序、F FB B1 1为为单单向向红红绿绿灯灯控控制制 程程 序序 、D DB B1 1为为 东东 西西 数数 据据 块块 、D D B B 2 2为为 南南 北北 数数 据据 块块 。 返回上级返回上级Date: 2024/8/1 Page: 1085.5.编辑功能块(编辑功能块(FBFB)定义局部变量声明表定义局部变量声明表 返回上级返回上级Date: 2024/8/1 Page: 109编写程序代码编写程序代码 返回上级返回上级Date: 2024/8/1 Page: 1106. 建立背景数据块(建立背景数据块(DI) 由于在创建由于在创建DB

77、1DB1和和DB2DB2之前,已经完成了之前,已经完成了FB1FB1的变量声明,的变量声明,建立了相应的数据结构,所以在创建与建立了相应的数据结构,所以在创建与FB1FB1相关联的相关联的DB1DB1和和DB2DB2时,时,STEP 7STEP 7自动完成了数据块的数据结构。自动完成了数据块的数据结构。 返回上级返回上级Date: 2024/8/1 Page: 1117.7.编辑启动组织块编辑启动组织块OB100 OB100 返回上级返回上级Date: 2024/8/1 Page: 1125.7.2 5.7.2 在在OB1OB1中调用有静态参数的功能块(中调用有静态参数的功能块(FBFB) 返

78、回本节返回本节Date: 2024/8/1 Page: 1135.8 使用多重背景使用多重背景结构化程序设计结构化程序设计 使使用用多多重重背背景景可可以以有有效效地地减减少少数数据据块块的的数数量量,其其编编程程思思想想是是创创建建一一个个比比F FB B1 1级级别别更更高高的的功功能能块块,如如F FB B1 10 0,将将未未作作任任何何修修改改的的F FB B1 1作作为为一一个个“局局部部背背景景”,在在F FB B1 10 0中中调调用用。对对于于F FB B1 1的每一个调用,都将数据存储在的每一个调用,都将数据存储在FB10FB10的背景数据块的背景数据块DB10DB10中。

79、中。5.8.1 5.8.1 创建多重背景的创建多重背景的S7S7项目项目5.8.2 5.8.2 编辑功能(编辑功能(FCFC)5.8.3 5.8.3 编辑共享数据块编辑共享数据块 5.8.4 5.8.4 编辑功能块(编辑功能块(FBFB)5.8.5 5.8.5 生成多重背景数据块生成多重背景数据块DB10DB105.8.6 5.8.6 在在OB1OB1中调用功能中调用功能(FC)(FC)及上层功能块及上层功能块(FB)(FB)返回本章返回本章Date: 2024/8/1 Page: 1145.8.1 5.8.1 创建多重背景的创建多重背景的S7S7项目项目【例【例5-8-15-8-1】 发动机

80、组控制系统设计发动机组控制系统设计使用多重背景。使用多重背景。 设设某某发发动动机机组组由由1 1台台汽汽油油发发动动机机和和1 1台台柴柴油油发发动动机机组组成成,现现要要求求用用P PL LC C控控制制发发动动机机组组,使使各各台台发发动动机机的的转转速速稳稳定定在在设设定定的的速速度度上上,并并控控制制散散热热风风扇扇的的起起动动和和延延时时关关闭闭。每每台台发发动动机均设置一个起动按钮和一个停止按钮。机均设置一个起动按钮和一个停止按钮。创建创建S7S7项目项目硬件配置硬件配置编写符号表编写符号表 规划程序结构规划程序结构 返回本节返回本节Date: 2024/8/1 Page: 11

81、51. 1. 创建创建S7S7项目项目 使用菜单【使用菜单【FileFile】【“New Project”Wizard“New Project”Wizard】创建】创建发动机组控制系统的发动机组控制系统的S7S7项目,并命名为项目,并命名为“多重背景多重背景”。CPUCPU选择选择CPU 315-2DPCPU 315-2DP,项目包含组织块,项目包含组织块OB1OB1。2. 2. 硬件配置硬件配置 在在“多多重重背背景景”项项目目内内打打开开“S SI IM MA AT TI IC C 3 30 00 0 S St ta at ti io on n”文文件件夹夹,打打开开硬硬件件配配置置窗窗口

82、口,并并按按下下图图所所示示完完成成硬硬件件配配置置。返回上级返回上级Date: 2024/8/1 Page: 1163.3.编辑符号表编辑符号表返回上级返回上级Date: 2024/8/1 Page: 1174.4.规划程序结构规划程序结构 F FB B1 10 0为为上上层层功功能能块块,它它把把F FB B1 1作作为为其其“局局部部实实例例”,通通过过二二次次调调用用本本地地实实例例,分分别别实实现现对对汽汽油油机机和和柴柴油油机机的的控控制制。这这种种调调用用不不占占用用数数据据块块D DB B1 1和和D DB B2 2,它它将将每每次次调调用用(对对于于每每个个调调用用实实例例)

83、的的数数据据存存储储到到体体系系的的上上层层功功能能块块F FB B1 10 0的的 背背 景景 数数 据据 块块D D B B 1 1 0 0中。中。 返回上级返回上级Date: 2024/8/1 Page: 1185.8.2 5.8.2 编辑功能(编辑功能(FCFC) 1.1.定义局部变量声明表定义局部变量声明表 F FC C1 1用用来来实实现现发发动动机机(汽汽油油机机或或柴柴油油机机)的的风风扇扇控控制制,按按照照控控制制要要求求,当当发发动动机机起起动动时时,风风扇扇应应立立即即起起动动;当当发发动动机机停停机机后后,风风扇扇应应延延时时关关闭闭。因因此此F FC C1 1需需要要

84、一一个个发发动动机机起起动动信号、一个风扇控制信号和一个延时定时器。信号、一个风扇控制信号和一个延时定时器。 返回本节返回本节Date: 2024/8/1 Page: 1192.2.编辑编辑FC1FC1的控制程序的控制程序 F FC C1 1所所实实现现的的控控制制要要求求:发发动动机机起起动动时时风风扇扇起起动动,当当发发动动机机再再次次关关闭闭后后,风风扇扇继继续续运运行行4 4s s,然然后后停停止止。定定时时器器采采用用断电延时定时器,控制程序如下图所示。断电延时定时器,控制程序如下图所示。 返回上级返回上级Date: 2024/8/1 Page: 1205.8.3 5.8.3 编辑共

85、享数据块编辑共享数据块 共共享享数数据据块块D DB B3 3可可为为F FB B1 10 0保保存存发发动动机机(汽汽油油机机和和柴柴油油机机)的的实实际际转转速速,当当发发动动机机转转速速都都达达到到预预设设速速度度时时,还还可可以以保存该状态的标志数据。保存该状态的标志数据。 返回本节返回本节Date: 2024/8/1 Page: 1215.8.4 5.8.4 编辑功能块(编辑功能块(FBFB) 在在该该系系统统的的程程序序结结构构内内,有有2 2个个功功能能块块:F FB B1 1和和F FB B1 10 0。F FB B1 1为为底底层层功功能能块块,所所以以应应首首先先创创建建并

86、并编编辑辑;F FB B1 10 0为为上上层层功功能块,可以调用能块,可以调用FB1FB1。编辑底层功能块编辑底层功能块FB1 编辑上层功能块编辑上层功能块FB10返回本节返回本节Date: 2024/8/1 Page: 1221.1.编辑底层功能块编辑底层功能块FB1 FB1 在在“多多重重背背景景”项项目目内内创创建建F FB B1 1,符符号号名名“E En ng gi in ne e”。定义功能块定义功能块FB1的变量声明表的变量声明表 返回上级返回上级Date: 2024/8/1 Page: 123编写功能块编写功能块FB1的控制程序的控制程序 FB1 FB1主要实现发动机的起停控

87、制及速度监视功能,其控主要实现发动机的起停控制及速度监视功能,其控制程序如下图所示。制程序如下图所示。 返回上级返回上级Date: 2024/8/1 Page: 1242. 编辑上层功能块编辑上层功能块FB10 在在“多重背景多重背景”项目内创建项目内创建FB10FB10,符号名,符号名“Engines”“Engines”。在在FB10FB10的属性对话框内激活的属性对话框内激活“Multi-instance capable”“Multi-instance capable”选选项。项。返回上级返回上级Date: 2024/8/1 Page: 125定义功能块定义功能块FB10FB10的变量声明

88、表的变量声明表 要将要将FB1FB1作为作为FB10FB10的一个的一个“局部背景局部背景”调用,需要在调用,需要在FB10FB10的变量声明表中为的变量声明表中为FB1FB1的调用声明不同名称的静态变量,数据的调用声明不同名称的静态变量,数据类型为类型为FB1FB1(或使用符号名(或使用符号名“Engine”“Engine”)。)。 返回上级返回上级Date: 2024/8/1 Page: 126编写功能块编写功能块FB10FB10的控制程序的控制程序 在在变变量量声声明明表表内内完完成成F FB B1 1类类型型的的局局部部实实例例:“P Pe et tr ro ol l_ _E En n

89、g gi in ne e”和和“D Di ie es se el l_ _E En ng gi in ne e”的的声声明明以以后后,在在程程序序元元素素目目 录录 的的“M Mu ul lt ti ip pl le e I In ns st ta an nc ce es s”目目录录中中就就会会出出现现所所声声明明的的多多重重实实例例 , 如如 图图 所所 示示 。 接接下下来来可可在在F FB B1 10 0的的代代码码区区,调调 用用F F B B 1 1的的 “ 局局 部部实例实例”。 返回上级返回上级Date: 2024/8/1 Page: 127编写功能块编写功能块FB10FB10

90、的控制程序的控制程序 调调用用F FB B1 1局局部部实实例例时时,不不再再使使用用独独立立的的背背景景数数据据块块,F FB B1 1的的实实例例数数据据位位于于F FB B1 10 0的的实实例例数数据据块块D DB B1 10 0中中。发发动动机机的的实实际际转转速速可可直直接接从从共共享享数数据据块块 中中 得得 到到 , 如如D DB B3 3. .D DB BW W2 2 ( 符符 号号 地地 址址 为为 ,S_Data.PE_Actual_SpeedS_Data.PE_Actual_Speed)。)。 返回上级返回上级Date: 2024/8/1 Page: 1285.8.5

91、5.8.5 生成多重背景数据块生成多重背景数据块DB10 DB10 在在“多多重重背背景景”项项目目内内创创建建一一个个与与F FB B1 10 0相相关关联联的的多多重重背背景数据块景数据块DB10DB10,符号名,符号名“Engine_Data”“Engine_Data”。 返回本节返回本节Date: 2024/8/1 Page: 1295.8.6 5.8.6 在在OB1OB1中调用功能中调用功能(FC)(FC)及上层功能块及上层功能块(FB)(FB)返回本节返回本节Date: 2024/8/1 Page: 1305.9 5.9 思考与练习思考与练习 一、思考题一、思考题 1. STEP

92、7 1. STEP 7中有哪些逻辑块?中有哪些逻辑块? 2. 2. 功能功能FCFC和功能块和功能块FBFB有何区别?有何区别? 3. 3. 系统功能系统功能SFCSFC和系统功能块有何区别?和系统功能块有何区别? 4. 4. 共享数据块和背景数据块有何区别?共享数据块和背景数据块有何区别? 5. 5. 什么是符号地址?采用符号地址有哪些好处?什么是符号地址?采用符号地址有哪些好处? 6. 6. 组织块可否调用其他组织块?组织块可否调用其他组织块? 7. B 7. B堆栈与堆栈与L L堆栈有何不同?堆栈有何不同? 8. 8. 在变量声明表内,所声明的静态变量和临时变量有何在变量声明表内,所声明

93、的静态变量和临时变量有何区别?区别?返回本章返回本章Date: 2024/8/1 Page: 131二、编程题二、编程题 1 1. . 用用I I0 0. .0 0控控制制接接在在Q Q4 4. .0 0Q Q4 4. .7 7上上的的8 8个个彩彩灯灯循循环环移移位位,用用T T3 37 7定定时时,每每0 0. .5 5 s s移移1 1位位,首首次次扫扫描描时时给给Q Q4 4. .0 0Q Q4 4. .7 7置置 初初值,用值,用I0.1I0.1控制彩灯移位的方向,试设计语句表程序。控制彩灯移位的方向,试设计语句表程序。 2. 2. 有一工业用洗衣机,控制要求如下:有一工业用洗衣机,

94、控制要求如下: 按按起起动动按按钮钮后后给给水水阀阀就就开开始始给给水水当当水水满满传传感感器器动动作作时时就就停停止止给给水水波波轮轮正正转转5 5s s,再再反反转转5 5s s,然然后后再再正正转转5 5s s如如此此反反复复转转 动动5 5分分 钟钟出出 水水 阀阀 开开 始始 出出 水水出出 水水1 10 0s s后后 停停 止止 出出 水水 ,同时声光报警器报警,叫工作人员来取衣服。同时声光报警器报警,叫工作人员来取衣服。 按停止按钮声光报警器停止,并结束工作过程。按停止按钮声光报警器停止,并结束工作过程。 要求要求:分配:分配I/OI/O口,设计梯形图。口,设计梯形图。返回本节返

95、回本节Date: 2024/8/1 Page: 132 3. 3. 车辆出入库管理。车辆出入库管理。 如图如图5-765-76所示为车辆入库管理设备布置图,编制一个用所示为车辆入库管理设备布置图,编制一个用PLCPLC控制的车辆控制的车辆出入库管理梯形图控制程序,控制要求如下:出入库管理梯形图控制程序,控制要求如下: 入入库库车车辆辆前前进进时时,经经过过1 1# #传传感感器器2 2# #传传感感器器后后计计数数器器加加1 1,后后退退时时经经过过2 2# #传传感感器器1 1# #传传感感器器后后计计数数器器减减1 1,单单经经过过一一个个传传感感器器则则计计数数器器不不动动。 出库车辆前

96、进时经过出库车辆前进时经过2#2#传感器传感器1#1#传感器后计数器减传感器后计数器减1 1,后退时经过,后退时经过1#1#传感器传感器2#2#传感器后计数器加传感器后计数器加1 1,单经过一个传感器则计数器不动作。,单经过一个传感器则计数器不动作。 设计一个设计一个由两位数码管由两位数码管及相应的辅助及相应的辅助元件组成的显元件组成的显示电路,显示示电路,显示车库内车辆的车库内车辆的实际数量。实际数量。图图5-76 5-76 车辆入库管理车辆入库管理返回本节返回本节Date: 2024/8/1 Page: 133 4. 4.液体自动混合箱如液体自动混合箱如图图5-775-77所示,设计要求如

97、下:所示,设计要求如下: 按按下下起起动动按按钮钮S SB B1 1,电电磁磁阀阀K K1 1打打开开,液液体体A A流流入入箱箱中中,当当液液面面到到达达L L2 2处处时时,K K1 1阀阀关关闭闭,同同时时K K2 2阀阀打打开开,液液体体B B流流入入箱箱中中,当当液液面面到到达达L L1 1处处时时,Y Y2 2阀阀关关闭闭,停停止止供供液液,电电炉炉H H开开始始加加热热,当当液液体体到到达达指指定定温温度度时时,温温度度传传感感器器T T动动作作,电电炉炉停停止止加加热热, ,搅搅拌拌机机M M开开始始搅搅拌拌液液体体,5 5分分钟钟后后停停止止搅搅拌拌,K K3 3阀阀打打开开

98、,将将加加热热并并混混合合好好的的液液体体放放出出,当当液液面面底底于于L L3 3时时,再再经经过过1 10 0s s,K K3 3阀阀 关关图图5-77 5-77 液体自动混合箱液体自动混合箱 闭闭,此此时时箱箱内内液液体体已已放放空空。此此时时,电电磁磁阀阀K K1 1打打开开,液液体体A A流流入入箱箱中中,开开始始下下一一周周期期循循环环。按按下下停停止止按按钮钮S SB B2 2,系系统统停停止止操操作作(停停在在初初始始状状 态态 上上 ) 。 返回本节返回本节Date: 2024/8/1 Page: 134 5.5.如如图图5-785-78所所示示为为精精密密滚滚柱柱直直径径筛

99、筛选选系系统统,当当被被测测滚滚柱柱落落下下后后,由由气气缸缸推推秆秆推推到到限限位位挡挡板板位位置置,然然后后钨钨钢钢测测头头开开始始测测试试滚滚柱柱直直径径,并并将将测测量量值值送送相相敏敏检检波波放放大大器器处处理理,再再送送电电压压放放大大器器放放大大,最最后后将将与与直直径径成成正正比比的的电电压压值值送送PLCPLC模模拟拟量量输输入入模模块块,经经PLCPLC判判断断后后,根根据据直径大小来决定具体打开哪一个翻版,然后由电磁机构将限位直径大小来决定具体打开哪一个翻版,然后由电磁机构将限位图图5-78 5-78 滚柱直径筛选滚柱直径筛选系统系统 挡挡板板抽抽离离,滚滚柱柱自自然然落

100、落入入相相应应的的容容器器中中。试试设设计计P PL LC C控控制制程程序序,实实现现对对滚滚柱的筛选。柱的筛选。返回本节返回本节Date: 2024/8/1 Page: 1355. 5. 有一工业用洗衣机,控制要求如下:有一工业用洗衣机,控制要求如下: 按起动按钮后给水阀就开始给水按起动按钮后给水阀就开始给水当水满传感器动作时就停止给水当水满传感器动作时就停止给水波轮正转波轮正转5s5s,再反转,再反转5s5s,然后再正转,然后再正转5s5s如此反复转动如此反复转动5 5分钟分钟出水阀开始出水阀开始出水出水出水出水10s10s后停止出水,同时声光报警器报警,叫工作人员来取衣服。后停止出水,

101、同时声光报警器报警,叫工作人员来取衣服。 按停止按钮声光报警器停止,并结束整个工作过程。按停止按钮声光报警器停止,并结束整个工作过程。 要求:分配要求:分配I/OI/O口,设计梯形图。口,设计梯形图。 6. 6. 使用传送机,将大、小球分类后分别传送的系统。使用传送机,将大、小球分类后分别传送的系统。 左上为原点,按起动按钮左上为原点,按起动按钮SB1SB1后,其动作顺序为:下降后,其动作顺序为:下降吸球(延时吸球(延时1s1s)上升)上升右行右行下降下降放球(延时放球(延时1s1s)上升上升左行。左行。 其中:其中:LS1LS1左限位;左限位;LS3LS3上限位;上限位;LS4LS4小球右限位;小球右限位;LS5LS5大球右限位;大球右限位;LS2LS2大球下限位;大球下限位;LS0LS0小球下限位。小球下限位。 机械壁下降时,吸住大球,则下限位机械壁下降时,吸住大球,则下限位LS2LS2接通,然后将大球放到大球容接通,然后将大球放到大球容器中。若吸住小球,则下限位器中。若吸住小球,则下限位LS0LS0接通,然后将小球放到小球容器中。接通,然后将小球放到小球容器中。 试分配试分配I/OI/O,设计画梯形图。,设计画梯形图。返回本节返回本节

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号