S7程序结构与程序设计.ppt

上传人:豆**** 文档编号:56540550 上传时间:2022-11-02 格式:PPT 页数:135 大小:2.54MB
返回 下载 相关 举报
S7程序结构与程序设计.ppt_第1页
第1页 / 共135页
S7程序结构与程序设计.ppt_第2页
第2页 / 共135页
点击查看更多>>
资源描述

《S7程序结构与程序设计.ppt》由会员分享,可在线阅读,更多相关《S7程序结构与程序设计.ppt(135页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Date:2022/11/1 Page:1S7程序结构与程序设计 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望Date:2022/11/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

2、)分部程序设计分部程序设计5.55.5 编辑并调用有参功能(编辑并调用有参功能(FCFC)结构化程序设计结构化程序设计5.65.6 编辑并调用无静态参数的功能块(编辑并调用无静态参数的功能块(FBFB)5.75.7 编辑并调用有静态参数的功能块(编辑并调用有静态参数的功能块(FBFB)5.85.8 使用多重背景使用多重背景结构化程序设计结构化程序设计5.95.9 思考与练习思考与练习返回首页返回首页Date:2022/11/1 Page:35.1 S7 CPU中的程序中的程序 5.1.1 5.1.1 用户程序中的块结构用户程序中的块结构5.1.2 5.1.2 用户程序结构用户程序结构5.1.3

3、 I/O5.1.3 I/O过程映像过程映像5.1.4 5.1.4 程序循环执行程序循环执行返回本章返回本章Date:2022/11/1 Page:45.1.1 5.1.1 用户程序中的块结构用户程序中的块结构 返回本节返回本节Date:2022/11/1 Page:55.1.2 用户程序结构用户程序结构 线性程序(线性编程)线性程序(线性编程)分部式程序(分部编程、分块编程)分部式程序(分部编程、分块编程)结构化程序(结构化编程或模块化编程)结构化程序(结构化编程或模块化编程)返回本节返回本节Date:2022/11/1 Page:61.线性程序(线性编程)线性程序(线性编程)所谓线性程序结构

4、,就是将整个用户程序连续放置在一所谓线性程序结构,就是将整个用户程序连续放置在一个循环程序块(个循环程序块(OB1OB1)中,块中的程序按顺序执行,)中,块中的程序按顺序执行,CPUCPU通过通过反复执行反复执行OB1OB1来实现自动化控制任务。这种结构和来实现自动化控制任务。这种结构和PLCPLC所代替所代替的硬接线继电器控制类似,的硬接线继电器控制类似,CPUCPU逐条地处理指令。事实上所逐条地处理指令。事实上所有的程序都可以用线性结构实现,不过,线性结构有的程序都可以用线性结构实现,不过,线性结构一般适用于相对简单的程序编写。一般适用于相对简单的程序编写。返回上级返回上级Date:202

5、2/11/1 Page:72.2.分部式程序(分部编程、分块编程)分部式程序(分部编程、分块编程)所所谓谓分分部部程程序序,就就是是将将整整个个程程序序按按任任务务分分成成若若干干个个部部分分,并并分分别别放放置置在在不不同同的的功功能能(F F C C)、功功能能块块(F F B B)及及组组织织块块中中,在在 一一 个个 块块 中中 可可 以以 进进 一一 步步 分分 解解 成成 段段。在在 组组 织织 块块 O O B B1 1中中包含按顺序调用其他块的指令,并控制程序执行。包含按顺序调用其他块的指令,并控制程序执行。在在分分部部程程序序中中,既既无无数数据据交交换换,也也不不存存在在重

6、重复复利利用用的的程程序序代代码码。功功能能(F F C C)和和功功能能块块(F FB B)不不传传递递也也不不接接收收参参数数,分分部部程程序序结结构构的的编编程程效效率率比比线线性性程程序序有有所所提提高高,程程序序测测试试也也较较 方方 便便,对对 程程 序序 员员 的的 要要 求求 也也 不不 太太 高高。对对 不不 太太 复复 杂杂 的的控制程序可考虑采用这种程序结构。控制程序可考虑采用这种程序结构。返回上级返回上级Date:2022/11/1 Page:83.3.结构化程序(结构化编程或模块化编程)结构化程序(结构化编程或模块化编程)所所谓谓结结构构化化程程序序,就就是是处处理理

7、复复杂杂自自动动化化控控制制任任务务的的过过程程中中,为为了了使使任任务务更更易易于于控控制制,常常把把过过程程要要求求类类似似或或相相关关的的功功能能进进行行分分类类,分分割割为为可可用用于于几几个个任任务务的的通通用用解解决决方方案案的的小小任任务务,这这些些小小任任务务以以相相应应的的程程序序段段表表示示,称称为为块块(F FC C 或或F FB B)。O O B B1 1通通 过过 调调 用用 这这 些些 程程 序序 块块 来来 完完 成成 整整 个个 自自 动动 化化 控控 制制 任任务。务。结结构构化化程程序序的的特特点点是是每每个个块块(F F C C 或或F FB B)在在 O

8、 OB B1 1中中可可能能会会被被多多次次调调用用,以以完完成成具具有有相相同同过过程程工工艺艺要要求求的的不不同同控控制制对对象象。这这种种结结构构可可简简化化程程序序设设计计过过程程、减减小小代代码码长长度度、提提高高编程效率,比较适合于较复杂自动化控制任务的设计。编程效率,比较适合于较复杂自动化控制任务的设计。返回上级返回上级Date:2022/11/1 Page:95.1.3 I/O5.1.3 I/O过程映像过程映像 返回本节返回本节Date:2022/11/1 Page:105.1.4 5.1.4 程序循环执行程序循环执行 返回本节返回本节Date:2022/11/1 Page:1

9、15.2 5.2 数据块中的数据存储数据块中的数据存储 5.2.1 数据存储区数据存储区5.2.2 数据块数据块5.2.3 数据块的数据结构数据块的数据结构5.2.4 建立数据块建立数据块5.2.5 访问数据块访问数据块返回本章返回本章Date:2022/11/1 Page:125.2.1 5.2.1 数据存储区数据存储区 数数据据以以用用户户程程序序变变量量的的形形式式存存储储,且且具具有有唯唯一一性性。数数据据可可以以存存储储在在输输入入过过程程映映像像存存储储器器(P PI II I)、输输出出过过程程映映像像存存储储器器(P PI I Q Q)、位位存存储储器器(M M)、局局部部数数

10、据据堆堆栈栈(L L堆堆栈栈)及及数数据据块块(D DB B)中中。可可以以采采用用基基本本数数据据类类型型、复复杂杂数数据据类类型或参数类型。型或参数类型。根根据据访访问问方方式式的的不不同同,这这些些数数据据可可以以在在全全局局符符号号表表或或共共享享数数据据块块中中声声明明,称称为为全全局局变变量量;也也可可以以在在 O OB B、F F C C 和和F FB B的的 变变量量声声明明表表中中声声明明,称称为为局局部部变变量量。当当块块被被执执行行时时,变变量量将将固固定定 地地 存存 储储 在在 过过 程程 映映 像像 区区(P P I II I或或P PI IQ Q)、位位 存存 储

11、储 器器 区区(M M)、数据块()、数据块(DBDB)或局部堆栈()或局部堆栈(L L)中。)中。返回本节返回本节Date:2022/11/1 Page:135.2.2 5.2.2 数据块数据块 数据块定义在数据块定义在S7 CPUS7 CPU的存储器中,用户可在存储器中建的存储器中,用户可在存储器中建立一个或多个数据块。每个数据块可大可小,但立一个或多个数据块。每个数据块可大可小,但CPUCPU对数据对数据块数量及数据总量有限制。块数量及数据总量有限制。数数据据块块(D DB B)可可用用来来存存储储用用户户程程序序中中逻逻辑辑块块的的变变量量数数据据(如如:数数值值)。与与临临时时数数据

12、据不不同同,当当逻逻辑辑块块执执行行结结束束或或数据块关闭时,数据块中的数据保持不变。数据块关闭时,数据块中的数据保持不变。用用户户程程序序可可以以位位、字字节节、字字或或双双字字操操作作访访问问数数据据块块中中的数据,可以使用符号或绝对地址。的数据,可以使用符号或绝对地址。返回本节返回本节Date:2022/11/1 Page:141.1.数据块的分类数据块的分类 共共享享数数据据块块 又又称称全全局局数数据据块块。用用于于存存储储全全局局数数据据,所所有有逻逻 辑辑 块块(O OB B、F FC C、F FB B)都都可可以以访访问问共共享享数数据据块块存存储储的的信。信。背背景景数数据据

13、块块 用用 作作“私私有有存存储储器器区区”,即即用用作作功功能能块块(F FB B)的的“存存储储器器”。F FB B的的参参数数和和静静态态变变量量安安排排在在它它的的背背景景数数据据块块中中。背背景景数数据据块块不不是是由由用用户户编编辑辑的的,而而是是由由编编辑辑器器生成的。生成的。用用户户定定义义数数据据块块(D D B B o of f T Ty yp pe e)是是以以 U UD DT T为为模模板板所所生生成成的的数数据据块块。创创建建用用户户定定义义数数据据块块(D D B B o of f T Ty yp pe e)之之前前,必必须须先先 创创 建建 一一 个个 用用 户户

14、 定定 义义 数数 据据 类类 型型,如如 U U D D T T1 1,并并 在在LAD/STL/FBD S7LAD/STL/FBD S7程序编辑器内定义。程序编辑器内定义。返回上级返回上级Date:2022/11/1 Page:152.2.数据块寄存器数据块寄存器 CPU有有两两个个数数据据块块寄寄存存器器:DB和和DI寄寄存存器器。这这样样,可可以以同时打开两个数据块。同时打开两个数据块。Date:2022/11/1 Page:165.2.3 5.2.3 数据块的数据结构数据块的数据结构 在在S ST TE EP P 7 7中中数数据据块块的的数数据据类类型型可可以以采采用用基基本本数数

15、据据类类型、复杂数据类型或用户定义数据类型(型、复杂数据类型或用户定义数据类型(UDTUDT)。)。基本数据类型基本数据类型复杂数据类型复杂数据类型用户定义数据类型用户定义数据类型 返回本节返回本节Date:2022/11/1 Page:17基本数据类型基本数据类型 根根 据据 I IE EC C 1 11 13 31 1-3 3定定义义,长长度度不不超超过过 3 32 2位位,可可利利用用 S ST TE EP P 7 7基基本本指指令令处处理理,能能完完全全装装入入 S S7 7处处理理器器的的累累加加器器中中。基基本本数数据类型包括:据类型包括:位数据类型位数据类型:BOOLBOOL、B

16、YTEBYTE、WORDWORD、DWORDDWORD、CHARCHAR数字数据类型数字数据类型:INTINT、DINTDINT、REALREAL定时器类型定时器类型:S5TIMES5TIME、TIMETIME、DATEDATE、TIME_OF_DAY TIME_OF_DAY 返回上级返回上级Date:2022/11/1 Page:18复杂数据类型复杂数据类型 复复杂杂数数据据类类型型只只能能结结合合共共享享数数据据块块的的变变量量声声明明使使用用。复复杂杂数数据据类类型型可可大大于于 3 32 2位位,用用装装入入指指令令不不能能把把复复杂杂数数据据类类型型完完全全装装入入累累加加器器,一一

17、般般利利用用库库中中的的标标准准块块(“I IE E C C”S S7 7程程序序)处处 理理 复复 杂杂 数数 据据 类类 型型。复复 杂杂 数数 据据 类类 型型 包包 括括:时间时间(DATE_AND_TIMEDATE_AND_TIME)类型)类型矩阵矩阵(ARRAYARRAY)类型)类型结构结构(STRUCTSTRUCT)类型)类型字符串字符串(STRINGSTRING)类型)类型返回上级返回上级Date:2022/11/1 Page:19用户定义数据类型(用户定义数据类型(UDTUDT)STEP 7允允许许利利用用数数据据块块编编辑辑器器,将将基基本本数数据据类类型型和和复复杂杂数数

18、据据类类型型组组合合成成长长度度大大于于 32位位用用户户定定义义数数据据类类型型(UDT:User-Defined dataType)。用用户户定定义义数数据据类类型型不不能能存存储储在在PLC中中,只只能能存存放放在在硬硬盘盘上上的的 UDT块块中中。可可以以用用用用户户定定义义数数据据类类型型作作“模模 板板”建建立立数数据据块块,以以节节省省录录入入时时间间。可可用用于于建建立立 结结 构构 化化 数数 据据 块块、建建 立立 包包 含含 几几 个个 相相 同同 单单 元元 的的矩阵、在带有给定结构的矩阵、在带有给定结构的FC和和FB中建立局部变量。中建立局部变量。返回上级返回上级Da

19、te:2022/11/1 Page:20【5-2-1】创建用户定义数据类型:创建用户定义数据类型:UDT1。创建一个名称为创建一个名称为UDT1UDT1的用户定义数据类型,数据结构如的用户定义数据类型,数据结构如下,则可按以下几个步骤完成。下,则可按以下几个步骤完成。返回上级返回上级Date:2022/11/1 Page:21【5-2-1】创建创建用户定义用户定义数据类型数据类型返回上级返回上级Date:2022/11/1 Page:22【5-2-1】编辑编辑UDT1UDT1返回上级返回上级Date:2022/11/1 Page:235.2.4 5.2.4 建立数据块建立数据块 在在STEP

20、STEP 7 7中中,为为了了避避免免出出现现系系统统错错误误,在在使使用用数数据据块块之之前前,必必须须先先建建立立数数据据块块,并并在在块块中中定定义义变变量量(包包括括变变量量符符号号名名、数数据据类类型型以以及及初初始始值值等等)。数数据据块块中中变变量量的的顺顺序序及及类类型型决决定定了了数数据据块块的的数数据据结结构构,变变量量的的数数量量决决定定了了数数据据块块的的大大小小。数数据据块块建建立立后后,还还必必须须同同程程序序块块一一起起下下载载到到CPUCPU中中,才才能能被被程序块访问。程序块访问。建立数据块建立数据块 定义变量并下载数据块定义变量并下载数据块 返回本节返回本节

21、Date:2022/11/1 Page:24方法方法1 1:用用SIMATIC SIMATIC ManagerManager创建数据块。创建数据块。返回上级返回上级Date:2022/11/1 Page:25方法方法2 2:用用LAD/STL/FBD S7LAD/STL/FBD S7程序编辑器创建数据块。程序编辑器创建数据块。返回上级返回上级Date:2022/11/1 Page:26新新DBDB类型选择窗口类型选择窗口 返回上级返回上级Date:2022/11/1 Page:27编辑数据块(变量定义)编辑数据块(变量定义)变变量量定定义义完完成成后后,应应单单击击保保存存按按钮钮保保存存并并

22、编编译译(测测试试)。如如果果没没有有错错误误则则需需要要单单击击下下载载按按钮钮,像像逻逻辑辑块块一一样样,将将数数据据块块下下载载到到CPUCPU。返回上级返回上级Date:2022/11/1 Page:285.2.5 5.2.5 访问数据块访问数据块 在在用用户户程程序序中中可可能能存存在在多多个个数数据据块块,而而每每个个数数据据块块的的数数据据结结构构并并不不完完全全相相同同,因因此此在在访访问问数数据据块块时时,必必须须指指明明数数据据块块的的编编号号、数数据据类类型型与与位位置置。如如果果访访问问不不存存在在的的数数据据单单元元或或数据块,而且没有编写错误处理数据块,而且没有编写

23、错误处理OBOB块,块,CPUCPU将进入将进入STOPSTOP模式。模式。寻址数据块寻址数据块 访问数据块访问数据块直接访问数据块直接访问数据块 返回本节返回本节Date:2022/11/1 Page:29寻址数据块寻址数据块返回上级返回上级Date:2022/11/1 Page:30访问数据块访问数据块 在在STEP 7STEP 7中可以采用传统访问方式,即先打开后访问;中可以采用传统访问方式,即先打开后访问;也可以采用完全表示的直接访问方式。也可以采用完全表示的直接访问方式。【例【例5-2-25-2-2】打开并访问共享数据块。打开并访问共享数据块。返回上级返回上级Date:2022/11

24、/1 Page:31访问数据块访问数据块 用用指指令令“O O P P N N D D B B.”打打开开共共享享数数据据块块(自自动动关关闭闭之之前前打打开开的的共共享享数数据据块块),如如果果 D DB B已已经经打打开开,则则可可用用装装入入(L L)或或传送(传送(T T)指令访问数据块。)指令访问数据块。【例【例5-2-35-2-3】打开并访问背景数据块。打开并访问背景数据块。返回上级返回上级Date:2022/11/1 Page:32直接访问数据块直接访问数据块 所谓直接访问数据块,就是在指令中同时给出数据块的所谓直接访问数据块,就是在指令中同时给出数据块的编号和数据在数据块中的地

25、址。可以用绝对地址,也可以用编号和数据在数据块中的地址。可以用绝对地址,也可以用符号地址直接访问数据块。符号地址直接访问数据块。用用绝对地址绝对地址直接访问数据块,如:直接访问数据块,如:用用符号地址符号地址直接访问数据块直接访问数据块 ,如:,如:返回上级返回上级Date:2022/11/1 Page:33 功功 能能(F F C C)、功功能能块块(F FB B)和和 组组织织块块(O OB B)统统称称为为逻逻辑辑块块(或或程程序序块块)。功功能能块块(F FB B)有有一一个个数数据据结结构构与与该该功功能能块块的的参参数数完完全全相相同同的的数数据据块块,称称为为背背景景数数据据块块

26、,背背景景数数据据块块依依附附于于功功能能块块,它它随随着着功功能能块块的的调调用用而而打打开开,随随着着功功能能块块的的结结束束而而关关闭闭。存存放放在在背背景景数数据据块块中中的的数数据据在在功功能能块块结结束束时时继继续续保保持持。而而功功能能(F F C C)则则不不需需要要背背景景数数据据块块,功功能能调调用用结结束束后后数数据据不不能能保保持持。组组织织块块(O OB B)是是由由操操作作系系统统直直接接调调用用的的逻逻辑辑块。块。5.3.1 5.3.1 逻辑块(逻辑块(FCFC和和FBFB)的结构)的结构 5.3.1 5.3.1 逻辑块(逻辑块(FCFC和和FBFB)的编程)的编

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

28、声明表,称为每个逻辑块前部都有一个变量声明表,称为局部变量声局部变量声明表明表。1.1.局部变量声明表局部变量声明表 局部数据分为局部数据分为参数参数和和局部变量局部变量两大类,局部变量又包括两大类,局部变量又包括静态变量静态变量和和临时变量临时变量(暂态变量)两种。(暂态变量)两种。返回上级返回上级Date:2022/11/1 Page:36 对于对于功能块功能块(FBFB),操作系统为参数及静态变量分配的),操作系统为参数及静态变量分配的存储空间是背景数据块。这样参数变量在背景数据块中留有存储空间是背景数据块。这样参数变量在背景数据块中留有运行结果备份。在调用运行结果备份。在调用FBFB时

29、,若没有提供实参,则功能块使时,若没有提供实参,则功能块使用背景数据块中的数值。操作系统在用背景数据块中的数值。操作系统在L L堆栈中给堆栈中给FBFB的临时变的临时变量分配存储空间。量分配存储空间。对于对于功能功能(FCFC),操作系统在),操作系统在L L堆栈中给堆栈中给FCFC的临时变量的临时变量分配存储空间。由于没有背景数据块,因而分配存储空间。由于没有背景数据块,因而FCFC不能使用静态不能使用静态变量。输入、输出、变量。输入、输出、I/OI/O参数以指向实参的指针形式存储在参数以指向实参的指针形式存储在操作系统为参数传递而保留的额外空间中。操作系统为参数传递而保留的额外空间中。对于

30、对于组织块组织块(OBOB)来说,其调用是由操作系统管理的,)来说,其调用是由操作系统管理的,用户不能参与。因此,用户不能参与。因此,OBOB只有定义在只有定义在L L堆栈中的临时变量。堆栈中的临时变量。返回上级返回上级Date:2022/11/1 Page:37 局部变量可以是基本数据类型或复式数据类型,也可以局部变量可以是基本数据类型或复式数据类型,也可以是专门用于参数传递的所谓的是专门用于参数传递的所谓的“参数类型参数类型”。参数类型包括。参数类型包括定时器、计数器、块的地址或指针等。定时器、计数器、块的地址或指针等。2.2.逻辑块局部变量的数据类型逻辑块局部变量的数据类型 返回上级返回

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

32、中的中间逻辑结果等。可以按位、字节、字和双字来存取。果等。可以按位、字节、字和双字来存取。块堆栈块堆栈简称简称B B堆栈堆栈,是,是CPUCPU系统内存中的一部分,用来存系统内存中的一部分,用来存储被中断的块的类型、编号、优先级和返回地址;中断时打储被中断的块的类型、编号、优先级和返回地址;中断时打开的共享数据块和背景数据块的编号;临时变量的指针(被开的共享数据块和背景数据块的编号;临时变量的指针(被中断块的中断块的L L堆栈地址)。堆栈地址)。中断堆栈中断堆栈简称简称I I堆栈堆栈,用来存储当前累加器和地址寄存,用来存储当前累加器和地址寄存器的内容、数据块寄存器器的内容、数据块寄存器DBDB

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

34、装装入入 D DI I寄寄存存器器;被被调调用用块块的的实实参参装装入入 D DB B和和L L堆堆 栈栈上上 部部;当当功功能能块块 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

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

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

37、栈操作 返回上级返回上级Date:2022/11/1 Page:42 以以 功功 能能(FC)调调用用为为例例,L堆堆栈栈操操作示意如图所示。作示意如图所示。调用功能(调用功能(FCFC)时的堆栈操作)时的堆栈操作 返回上级返回上级Date:2022/11/1 Page:43 对逻辑块编程时必须编辑下列三个部分:对逻辑块编程时必须编辑下列三个部分:变变量量声声明明:分分别别定定义义形形参参、静静态态变变量量和和临临时时变变量量(F F C C 块块中中不不包包括括静静态态变变量量);确确定定各各变变量量的的声声明明类类型型(D D e ec cl l.)、变变量量名名(N Na am me e

38、)和和数数据据类类型型(D D a at ta a T Ty yp pe e),还还要要为为变变量量设设置置初初始始值值(I In ni it ti ia al l V V a al lu ue e)。如如果果需需要要还还可可为为变变量量注注释释(C Co om m m m e en nt t)。在在增增量量编编程程模模式式下下,S ST TE EP P 7 7将将自自动动产产生生局局部部变量地址(变量地址(AddressAddress)。)。代码段代码段:对将要由:对将要由PLCPLC进行处理的块代码进行编程。进行处理的块代码进行编程。块属性块属性:块属性包含了其它附加的信息,例如由系统输:

39、块属性包含了其它附加的信息,例如由系统输入的时间标志或路径。此外,也可输入相关详细资料。入的时间标志或路径。此外,也可输入相关详细资料。5.3.2 5.3.2 逻辑块(逻辑块(FCFC和和FBFB)的编程)的编程 返回本节返回本节Date:2022/11/1 Page:441.1.临时变量的定义和使用临时变量的定义和使用返回上级返回上级Date:2022/11/1 Page:452.2.查看局部数据堆栈的占用查看局部数据堆栈的占用 返回上级返回上级Date:2022/11/1 Page:463.3.查看块所需字节数查看块所需字节数 返回上级返回上级Date:2022/11/1 Page:474

40、.4.定义形式参数定义形式参数 返回上级返回上级Date:2022/11/1 Page:48 编写逻辑块(编写逻辑块(FCFC和和FBFB)程序时,可以用以下两种方式使)程序时,可以用以下两种方式使用局部变量:用局部变量:使用变量名,此时变量名前加前缀使用变量名,此时变量名前加前缀“#”“#”,以区别于在,以区别于在符号表中定义的符号地址。增量方式下,前缀会自动产生。符号表中定义的符号地址。增量方式下,前缀会自动产生。直接使用局部变量的地址,这种方式只对背景数据块直接使用局部变量的地址,这种方式只对背景数据块和和L L堆栈有效。堆栈有效。在调用在调用FBFB块时,要说明其背景数据块。背景数据块

41、应在块时,要说明其背景数据块。背景数据块应在调用前生成,其顺序格式与变量声明表必须保持一致。调用前生成,其顺序格式与变量声明表必须保持一致。5.5.编写控制程序编写控制程序返回上级返回上级Date:2022/11/1 Page:49 所谓所谓无参功能无参功能(FCFC),是指在编辑功能(),是指在编辑功能(FCFC)时,在局)时,在局部变量声明表不进行形式参数的定义,在功能(部变量声明表不进行形式参数的定义,在功能(FCFC)中直接)中直接使用绝对地址完成控制程序的编程。这种方式一般应用于分使用绝对地址完成控制程序的编程。这种方式一般应用于分部式结构的程序编写,每个功能(部式结构的程序编写,每

42、个功能(FCFC)实现整个控制任务的)实现整个控制任务的一部分,不重复调用。一部分,不重复调用。5.4.1 5.4.1 编辑无参功能(编辑无参功能(FCFC)5.4.2 5.4.2 在在OB1OB1中调用无参功能(中调用无参功能(FCFC)5.4 5.4 编辑并调用无参功能(编辑并调用无参功能(FCFC)分部程序设计分部程序设计 返回本章返回本章Date:2022/11/1 Page:50【例【例5-4-15-4-1】搅拌控制系统程序设计搅拌控制系统程序设计使用开关量。使用开关量。返回本节返回本节Date:2022/11/1 Page:51控制说明控制说明 如如图图所所示示为为一一搅搅拌拌控控

43、制制系系统统,由由 3 3个个开开关关量量液液位位传传感感器器,分分别别检检测测液液位位的的高高、中中和和低低。现现要要求求对对 A A、B B两两种种液液体体原原料按等比例混合,请编写控制程序。料按等比例混合,请编写控制程序。要要求求:按按起起动动按按钮钮后后系系统统自自动动运运行行,首首先先打打开开进进料料泵泵 1 1,开开始始加加入入液液料料 A A中中液液位位传传感感器器动动作作后后,则则关关闭闭进进料料泵泵 1 1,打打开开进进料料泵泵 2 2,开开始始加加入入液液料料 B B高高液液位位传传感感器器动动作作后后,关关闭闭进进料料泵泵 2 2,起起动动搅搅拌拌器器 搅搅 拌拌 1 1

44、0 0s s后后,关关闭闭搅搅拌拌器器,开开启启放放料料泵泵当当低低液液位位传传感感器器动动作作后后,延延时时 5 5 s s后后关关闭闭放放料料泵泵。按按停止按钮,系统应立即停止运行。停止按钮,系统应立即停止运行。返回上级返回上级Date:2022/11/1 Page:521.1.创建创建S7S7项目项目 按照第按照第3 3章所介绍的方法,创建章所介绍的方法,创建S7S7项目,并命名为项目,并命名为“无参无参FC”FC”,项目包含组织块,项目包含组织块OB1OB1和和OB100OB100。2.2.硬件配置硬件配置 在在“无参无参FC”FC”项目内打开项目内打开“SIMATIC 300 Sta

45、tion”“SIMATIC 300 Station”文文件夹,打开硬件配置窗口,并完成硬件配置。件夹,打开硬件配置窗口,并完成硬件配置。5.4.1 5.4.1 编辑无参功能(编辑无参功能(FCFC)返回本节返回本节Date:2022/11/1 Page:533.3.编辑符号表编辑符号表 返回上级返回上级Date:2022/11/1 Page:544.4.规划程序结构规划程序结构 返回上级返回上级Date:2022/11/1 Page:555.5.编辑功能(编辑功能(FC FC)在在“无无 参参 F F C C”项项目目内内选选择择“B B l lo oc ck k s s”文文件件夹夹,然然后

46、后反反复复执执行行菜菜单单命命令令【I In ns se er rt t】【S S7 7 B B l lo oc ck k】【F Fu un nc ct ti io on n】,分分别别创创建建 4 4个个功功能能(F F C 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 F C C 的的属属性性对对话话框内系统会自动添加符号名。框内系统会自动添加符号名。FC1FC1控制程序控制程序FC2FC2控制程序控制程序FC3FC3控

47、制程序控制程序FC4FC4控制程序控制程序OB100OB100控制程序控制程序返回上级返回上级Date:2022/11/1 Page:56FC1FC1的控制程序的控制程序FC2FC2的控制程序的控制程序返回上级返回上级Date:2022/11/1 Page:57FC3FC3的控制程序的控制程序返回上级返回上级Date:2022/11/1 Page:58FC4FC4的控制程序的控制程序返回上级返回上级Date:2022/11/1 Page:59OB100OB100的控制程序的控制程序返回上级返回上级Date:2022/11/1 Page:605.4.2 5.4.2 在在OB1OB1中调用无参功能

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

49、构化程序编写。5.5.1 5.5.1 编辑有参功能(编辑有参功能(FCFC)5.5.2 5.5.2 在在OB1OB1中调用有参功能(中调用有参功能(FCFC)5.5 5.5 编辑并调用有参功能(编辑并调用有参功能(FCFC)结构化程序设计结构化程序设计 返回本章返回本章Date:2022/11/1 Page:63【例【例5-5-15-5-1】多级分频器控制程序设计。多级分频器控制程序设计。本本例例拟拟在在功功能能 F FC C1 1中中编编写写二二分分频频器器控控制制程程序序,然然后后在在 O OB B1 1中中通通过过调调用用 F FC C1 1实实现现多多级级分分频频器器的的功功能能。多多

50、级级分分频频器器的的时时序序关关系系如如图图所所示示。其其中中 I I0 0.0 0为为多多级级分分频频器器的的脉脉冲冲输输入入端端;Q Q 4 4.0 0Q Q 4 4.3 3分分 别别 为为 2 2、4 4、8 8、1 16 6分分 频频 的的 脉脉 冲冲 输输 出出 端端;Q Q 4 4.4 4Q4.7Q4.7分别为分别为2 2、4 4、8 8、1616分频指示灯驱动输出端。分频指示灯驱动输出端。返回本节返回本节Date:2022/11/1 Page:645.5.1 5.5.1 编辑有参功能(编辑有参功能(FCFC)创建多级分频器的创建多级分频器的S7S7项目项目硬件配置硬件配置编写符号

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com