版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Date: 2022-5-10 Page: 1Date: 2022-5-10 Page: 2第第5 5章章 S7S7程序构造与程序设计程序构造与程序设计 5.1 S7 CPU5.1 S7 CPU中的程序中的程序5.2 5.2 数据块中的数据存储数据块中的数据存储 5.3 5.3 逻辑块逻辑块FCFC和和FBFB的构造及编程的构造及编程 5.4 5.4 编辑并调用无参功能编辑并调用无参功能FCFC分部程序设计分部程序设计5.5 5.5 编辑并调用有参功能编辑并调用有参功能FCFC构造化程序设计构造化程序设计5.6 5.6 编辑并调用无静态参数的功能块编辑并调用无静态参数的功能块FBFB5.7 5
2、.7 编辑并调用有静态参数的功能块编辑并调用有静态参数的功能块FBFB5.8 5.8 运用多重背景运用多重背景构造化程序设计构造化程序设计5.9 5.9 思索与练习思索与练习前往首页前往首页Date: 2022-5-10 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: 2022-5-10 Page: 45.1.1 5.1.1 用户程序中的块构造用户程序中的块
3、构造 前往本节前往本节Date: 2022-5-10 Page: 55.1.2 用户程序构造用户程序构造 线性程序线性编程线性程序线性编程分部式程序分部编程、分块编程分部式程序分部编程、分块编程 构造化程序构造化编程或模块化编程构造化程序构造化编程或模块化编程 前往本节前往本节Date: 2022-5-10 Page: 61. 线性程序线性编程线性程序线性编程 所谓线性程序构造,就是将整个用户程序延续放置在所谓线性程序构造,就是将整个用户程序延续放置在一个循环程序块一个循环程序块OB1OB1中,块中的程序按顺序执行,中,块中的程序按顺序执行,CPUCPU经过反复执行经过反复执行OB1OB1来实
4、现自动化控制义务。这种构造和来实现自动化控制义务。这种构造和PLCPLC所替代的硬接线继电器控制类似,所替代的硬接线继电器控制类似,CPUCPU逐条地处置指令。现逐条地处置指令。现实上一切的程序都可以用线性构造实现,不过,线性构造实上一切的程序都可以用线性构造实现,不过,线性构造普通适用于相对简单的程序编写。普通适用于相对简单的程序编写。前往上级前往上级Date: 2022-5-10 Page: 72.2.分部式程序分部编程、分块编程分部式程序分部编程、分块编程 所谓分部程序,就是将整个程序按义务分成假设干个所谓分部程序,就是将整个程序按义务分成假设干个部分,并分别放置在不同的功能部分,并分别
5、放置在不同的功能FCFC、功能块、功能块FBFB及及组织块中,在一个块中可以进一步分解成段。在组织块组织块中,在一个块中可以进一步分解成段。在组织块OB1OB1中中包含按顺序调用其他块的指令,并控制程序执行。包含按顺序调用其他块的指令,并控制程序执行。 在分部程序中,既无数据交换,也不存在反复利用的在分部程序中,既无数据交换,也不存在反复利用的程序代码。功能程序代码。功能FCFC和功能块和功能块FBFB不传送也不接纳参不传送也不接纳参数,分部程序构造的编程效率比线性程序有所提高,程序数,分部程序构造的编程效率比线性程序有所提高,程序测试也较方便,对程序员的要求也不太高。对不太复杂的测试也较方便
6、,对程序员的要求也不太高。对不太复杂的控 制 程 序 可 思 索 采 用 这 种 程 序 构 造 。控 制 程 序 可 思 索 采 用 这 种 程 序 构 造 。 前往上级前往上级Date: 2022-5-10 Page: 83. 3. 构造化程序构造化编程或模块化编程构造化程序构造化编程或模块化编程 所谓构造化程序,就是处置复杂自动化控制义务的过所谓构造化程序,就是处置复杂自动化控制义务的过程中,为了使义务更易于控制,常把过程要求类似或相关程中,为了使义务更易于控制,常把过程要求类似或相关的功能进展分类,分割为可用于几个义务的通用途理方案的功能进展分类,分割为可用于几个义务的通用途理方案的小
7、义务,这些小义务以相应的程序段表示,称为块的小义务,这些小义务以相应的程序段表示,称为块FCFC或或FBFB。OB1OB1经过调用这些程序块来完成整个自动化控制任经过调用这些程序块来完成整个自动化控制任务。务。 构造化程序的特点是每个块构造化程序的特点是每个块FCFC或或FBFB在在OB1OB1中能够会中能够会被多次调用,以完成具有一样过程工艺要求的不同控制对被多次调用,以完成具有一样过程工艺要求的不同控制对象。这种构造可简化程序设计过程、减小代码长度、提高象。这种构造可简化程序设计过程、减小代码长度、提高编程效率,比较适宜于较复杂自动化控制义务的设计。编程效率,比较适宜于较复杂自动化控制义务
8、的设计。前往上级前往上级Date: 2022-5-10 Page: 95.1.3 I/O5.1.3 I/O过程映像过程映像 前往本节前往本节Date: 2022-5-10 Page: 105.1.4 5.1.4 程序循环执行程序循环执行 前往本节前往本节Date: 2022-5-10 Page: 115.2 5.2 数据块中的数据存储数据块中的数据存储 5.2.1 数据存储区数据存储区5.2.2 数据块数据块5.2.3 数据块的数据构造数据块的数据构造5.2.4 建立数据块建立数据块5.2.5 访问数据块访问数据块前往本章前往本章Date: 2022-5-10 Page: 125.2.1 5.
9、2.1 数据存储区数据存储区 数据以用户程序变量的方式存储,且具有独一性。数数据以用户程序变量的方式存储,且具有独一性。数据可以存储在输入过程映像存储器据可以存储在输入过程映像存储器PIIPII、输出过程映像、输出过程映像存储器存储器PIQPIQ、位存储器、位存储器M M、部分数据堆栈、部分数据堆栈L L堆栈堆栈及数据块及数据块DBDB中。可以采用根本数据类型、复杂数据类中。可以采用根本数据类型、复杂数据类型或参数类型。型或参数类型。 根据访问方式的不同,这些数据可以在全局符号表或根据访问方式的不同,这些数据可以在全局符号表或共享数据块中声明,称为全局变量;也可以在共享数据块中声明,称为全局变
10、量;也可以在OBOB、FCFC和和FBFB的变量声明表中声明,称为部分变量。当块被执行时,变的变量声明表中声明,称为部分变量。当块被执行时,变量将固定地存储在过程映像区量将固定地存储在过程映像区PIIPII或或PIQPIQ、位存储器区、位存储器区 M M 、 数 据 块 、 数 据 块 D BD B 或 部 分 堆 栈 或 部 分 堆 栈 L L 中 。 中 。前往本节前往本节Date: 2022-5-10 Page: 135.2.2 5.2.2 数据块数据块 数据块定义在数据块定义在S7 CPUS7 CPU的存储器中,用户可在存储器中的存储器中,用户可在存储器中建立一个或多个数据块。每个数据
11、块可大可小,但建立一个或多个数据块。每个数据块可大可小,但CPUCPU对数对数据块数量及数据总量有限制。据块数量及数据总量有限制。 数据块数据块DBDB可用来存储用户程序中逻辑块的变量数可用来存储用户程序中逻辑块的变量数据如:数值。与暂时数据不同,当逻辑块执行终了或据如:数值。与暂时数据不同,当逻辑块执行终了或数据块封锁时,数据块中的数据坚持不变。数据块封锁时,数据块中的数据坚持不变。 用户程序可以位、字节、字或双字操作访问数据块中用户程序可以位、字节、字或双字操作访问数据块中的数据,可以运用符号或绝对地址。的数据,可以运用符号或绝对地址。 前往本节前往本节Date: 2022-5-10 Pa
12、ge: 141.1.数据块的分类数据块的分类 共享数据块又称全局数据块。用于存储全局数据,一共享数据块又称全局数据块。用于存储全局数据,一切逻辑块切逻辑块OBOB、FCFC、FBFB都可以访问共享数据块存储的都可以访问共享数据块存储的信。信。 背景数据块用作背景数据块用作“私有存储器区私有存储器区,即用作功能块,即用作功能块FBFB的的“存储器存储器。FBFB的参数和静态变量安排在它的背的参数和静态变量安排在它的背景数据块中。背景数据块不是由用户编辑的,而是由编辑景数据块中。背景数据块不是由用户编辑的,而是由编辑器器生成的。生成的。 用户定义数据块用户定义数据块DB of TypeDB of
13、Type是以是以UDTUDT为模板所生成为模板所生成的数据块。创建用户定义数据块的数据块。创建用户定义数据块DB of TypeDB of Type之前,必之前,必需 先 创 建 一 个 用 户 定 义 数 据 类 型 , 如需 先 创 建 一 个 用 户 定 义 数 据 类 型 , 如 U D T 1U D T 1 , 并 在, 并 在L A D / S T L / F B D S 7L A D / S T L / F B D S 7 程 序 编 辑 器 内 定 义 。程 序 编 辑 器 内 定 义 。前往上级前往上级Date: 2022-5-10 Page: 152.2.数据块存放器数据块
14、存放器 CPU有两个数据块存放器:有两个数据块存放器:DB和和DI存放器。这样,可以存放器。这样,可以同时翻开两个数据块。同时翻开两个数据块。 前往上级前往上级Date: 2022-5-10 Page: 165.2.3 5.2.3 数据块的数据构造数据块的数据构造 在在STEP 7STEP 7中数据块的数据类型可以采用根本数据类中数据块的数据类型可以采用根本数据类型 、 复 杂 数 据 类 型 或 用 户 定 义 数 据 类 型 型 、 复 杂 数 据 类 型 或 用 户 定 义 数 据 类 型 U D TU D T 。 。根本数据类型根本数据类型复杂数据类型复杂数据类型用户定义数据类型用户定
15、义数据类型 前往本节前往本节Date: 2022-5-10 Page: 17根本数据类型根本数据类型 根据根据IEC1131-3IEC1131-3定义,长度不超越定义,长度不超越3232位,可利用位,可利用STEP STEP 7 7根本指令处置,能完全装入根本指令处置,能完全装入S7S7处置器的累加器中。根本数处置器的累加器中。根本数据类型包括:据类型包括:位数据类型:位数据类型:BOOLBOOL、BYTEBYTE、WORDWORD、DWORDDWORD、CHARCHAR数字数据类型:数字数据类型:INTINT、DINTDINT、REALREAL定时器类型:定时器类型:S5TIMES5TIME
16、、TIMETIME、DATEDATE、TIME_OF_DAY TIME_OF_DAY 前往上级前往上级Date: 2022-5-10 Page: 18复杂数据类型复杂数据类型 复杂数据类型只能结合共享数据块的变量声明运复杂数据类型只能结合共享数据块的变量声明运用。复杂数据类型可大于用。复杂数据类型可大于3232位,用装入指令不能把复杂位,用装入指令不能把复杂数据类型完全装入累加器,普通利用库中的规范块数据类型完全装入累加器,普通利用库中的规范块“IECIECS7S7程序处置复杂数据类型。复杂数据类型程序处置复杂数据类型。复杂数据类型包括:包括:时间时间DATE_AND_TIMEDATE_AND
17、_TIME类型类型矩阵矩阵ARRAYARRAY类型类型构造构造STRUCTSTRUCT类型类型字符串字符串STRINGSTRING类型类型前往上级前往上级Date: 2022-5-10 Page: 19用户定义数据类型用户定义数据类型UDTUDT STEP 7STEP 7允许利用数据块编辑器,将根本数据类型允许利用数据块编辑器,将根本数据类型和复杂数据类型组合生长度大于和复杂数据类型组合生长度大于3232位用户定义数据类型位用户定义数据类型UDTUDT:User-Defined dataTypeUser-Defined dataType。用户定义数据类型。用户定义数据类型不能存储在不能存储在P
18、LCPLC中,只能存放在硬盘上的中,只能存放在硬盘上的UDTUDT块中。可以块中。可以用用户定义数据类型作用用户定义数据类型作“模板模板建立数据块,以节省录建立数据块,以节省录入时间。可用于建立构造化数据块、建立包含几个一样入时间。可用于建立构造化数据块、建立包含几个一样单元的单元的矩阵、在带有给定构造的矩阵、在带有给定构造的FCFC和和FBFB中建立部分变量。中建立部分变量。 前往上级前往上级Date: 2022-5-10 Page: 20【5-2-1】 创建用户定义数据类型:创建用户定义数据类型:UDT1。 创建一个称号为创建一个称号为UDT1UDT1的用户定义数据类型,数据构造的用户定义
19、数据类型,数据构造如下,那么可按以下几个步骤完成。如下,那么可按以下几个步骤完成。 前往上级前往上级Date: 2022-5-10 Page: 21【5-2-1】 数据类型属性 对话框 选择插入“数据类型” 点击块文件夹 输入 UDT 的名称 确认 创建创建用户定义用户定义数据类型数据类型前往上级前往上级Date: 2022-5-10 Page: 22【5-2-1】编辑编辑UDT1UDT1 前往上级前往上级Date: 2022-5-10 Page: 235.2.4 5.2.4 建立数据块建立数据块 在在STEP 7STEP 7中,为了防止出现系统错误,在运用数据块中,为了防止出现系统错误,在运
20、用数据块之前,必需先建立数据块,并在块中定义变量包括变量之前,必需先建立数据块,并在块中定义变量包括变量符号名、数据类型以及初始值等。数据块中变量的顺序符号名、数据类型以及初始值等。数据块中变量的顺序及类型决议了数据块的数据构造,变量的数量决议了数据及类型决议了数据块的数据构造,变量的数量决议了数据块的大小。数据块建立后,还必需同程序块一同下载到块的大小。数据块建立后,还必需同程序块一同下载到CPUCPU中,才干被程序块访问。中,才干被程序块访问。建立数据块建立数据块 定义变量并下载数据块定义变量并下载数据块 前往本节前往本节Date: 2022-5-10 Page: 24 数据块属性 对话框
21、 选择 DB 的类型 输入 DB 的名称 选择插入 DB 点 击 块 文 件夹 可选择输入数据块的符号名 My_DB 方法方法1 1:用:用SIMATIC SIMATIC ManagerManager创建数据块。创建数据块。 前往上级前往上级Date: 2022-5-10 Page: 25 选择项目类型 选择S7 项目 选择 “数据块” 类型 输入数据块名称 点击“新建”图标 方法方法2 2:用:用LAD/STL/FBD S7LAD/STL/FBD S7程序编辑器创建数据块。程序编辑器创建数据块。 前往上级前往上级Date: 2022-5-10 Page: 26 创建共享数据块 创建 UDT
22、数据块 创建背景数据块 指定相配套的 UDT 指定相配套的 FB 新新DBDB类型选择窗口类型选择窗口 前往上级前往上级Date: 2022-5-10 Page: 27编辑数据块变量定义编辑数据块变量定义 DB1 原始窗口 在 DB1 内 声明 5 个变量 变量定义完成变量定义完成后,应单击保管按后,应单击保管按钮保管并编译测钮保管并编译测试。假设没有错试。假设没有错误那么需求单击下误那么需求单击下载按钮,像逻辑块载按钮,像逻辑块一样,将数据块下一样,将数据块下载载到到CPUCPU。 前往上级前往上级Date: 2022-5-10 Page: 285.2.5 5.2.5 访问数据块访问数据块
23、在用户程序中能够存在多个数据块,而每个数据块的在用户程序中能够存在多个数据块,而每个数据块的数据构造并不完全一样,因此在访问数据块时,必需指明数据构造并不完全一样,因此在访问数据块时,必需指明数据块的编号、数据类型与位置。假设访问不存在的数据数据块的编号、数据类型与位置。假设访问不存在的数据单元或数据块,而且没有编写错误处置单元或数据块,而且没有编写错误处置OBOB块,块,CPUCPU将进入将进入STOPSTOP方式。方式。寻址数据块寻址数据块 访问数据块访问数据块直接访问数据块直接访问数据块 前往本节前往本节Date: 2022-5-10 Page: 29寻址数据块寻址数据块前往上级前往上级
24、Date: 2022-5-10 Page: 30访问数据块访问数据块 在在STEP 7STEP 7中可以采用传统访问方式,即先翻开后访问;中可以采用传统访问方式,即先翻开后访问;也可以采用完全表示的直接访问方式。也可以采用完全表示的直接访问方式。【例【例5-2-25-2-2】 翻开并访问共享数据块。翻开并访问共享数据块。 前往上级前往上级Date: 2022-5-10 Page: 31访问数据块访问数据块 用指令用指令“OPN DB.OPN DB.翻开共享数据块自动封锁之前翻开共享数据块自动封锁之前翻开的共享数据块,假设翻开的共享数据块,假设DBDB曾经翻开,那么可用装入曾经翻开,那么可用装入
25、L L或或传送传送T T指令访问数据块。指令访问数据块。 【 例【 例 5 - 2 - 35 - 2 - 3 】 翻 开 并 访 问 背 景 数 据 块 。翻 开 并 访 问 背 景 数 据 块 。 前往上级前往上级Date: 2022-5-10 Page: 32直接访问数据块直接访问数据块 所谓直接访问数据块,就是在指令中同时给出数所谓直接访问数据块,就是在指令中同时给出数据块的编号和数据在数据块中的地址。可以用绝对地址,据块的编号和数据在数据块中的地址。可以用绝对地址,也可以用符号地址直接访问数据块。也可以用符号地址直接访问数据块。 用绝对地址直接访问数据块,如:用绝对地址直接访问数据块,
26、如: 用符号地址直接访问数据块用符号地址直接访问数据块 ,如:,如:前往上级前往上级Date: 2022-5-10 Page: 33 功能功能FCFC、功能块、功能块FBFB和组织块和组织块OBOB统称为逻辑统称为逻辑块或程序块。功能块块或程序块。功能块FBFB有一个数据构造与该功能块有一个数据构造与该功能块的参数完全一样的数据块,称为背景数据块,背景数据块依的参数完全一样的数据块,称为背景数据块,背景数据块依靠于功能块,它随着功能块的调用而翻开,随着功能块的终靠于功能块,它随着功能块的调用而翻开,随着功能块的终了而封锁。存放在背景数据块中的数据在功能块终了时继续了而封锁。存放在背景数据块中的
27、数据在功能块终了时继续坚持。而功能坚持。而功能FCFC那么不需求背景数据块,功能调用终了那么不需求背景数据块,功能调用终了后数据不能坚持。组织块后数据不能坚持。组织块OBOB是由操作系统直接调用的逻是由操作系统直接调用的逻辑辑块。块。 5 . 3 . 1 5 . 3 . 1 逻 辑 块 逻 辑 块 F CF C 和和 F BF B 的 构 造 的 构 造 5 . 3 . 1 5 . 3 . 1 逻 辑 块 逻 辑 块 F CF C 和和 F BF B 的 编 程 的 编 程 5.3 5.3 逻辑块逻辑块FCFC和和FBFB的构造及编程的构造及编程 前往本章前往本章Date: 2022-5-10
28、 Page: 34 逻辑块逻辑块OBOB、FBFB、FCFC由变量声明表、代码段及其属性由变量声明表、代码段及其属性等几部分组成。等几部分组成。部分变量声明表部分数据部分变量声明表部分数据 逻辑块部分变量的数据类型逻辑块部分变量的数据类型 逻辑块的调用过程及内存分配逻辑块的调用过程及内存分配 5.3.1 5.3.1 逻辑块逻辑块FCFC和和FBFB的构造的构造前往本节前往本节Date: 2022-5-10 Page: 35 每个逻辑块前部都有一个变量声明表,称为部分变量声每个逻辑块前部都有一个变量声明表,称为部分变量声明表。明表。1. 1. 部分变量声明表部分变量声明表 部分数据分为参数和部分
29、变量两大类,部分变量又包括部分数据分为参数和部分变量两大类,部分变量又包括静态变量和暂时变量暂态变量两种。静态变量和暂时变量暂态变量两种。前往上级前往上级Date: 2022-5-10 Page: 36 对于功能块对于功能块FBFB,操作系统为参数及静态变量分配的,操作系统为参数及静态变量分配的存储空间是背景数据块。这样参数变量在背景数据块中留有存储空间是背景数据块。这样参数变量在背景数据块中留有运转结果备份。在调用运转结果备份。在调用FBFB时,假设没有提供实参,那么功能时,假设没有提供实参,那么功能块运用背景数据块中的数值。操作系统在块运用背景数据块中的数值。操作系统在L L堆栈中给堆栈中
30、给FBFB的暂的暂时变量分配存储空间。时变量分配存储空间。 对于功能对于功能FCFC,操作系统在,操作系统在L L堆栈中给堆栈中给FCFC的暂时变量的暂时变量分配存储空间。由于没有背景数据块,因此分配存储空间。由于没有背景数据块,因此FCFC不能运用静态不能运用静态变量。输入、输出、变量。输入、输出、I/OI/O参数以指向实参的指针方式存储在参数以指向实参的指针方式存储在操作系统为参数传送而保管的额外空间中。操作系统为参数传送而保管的额外空间中。 对于组织块对于组织块OBOB来说,其调用是由操作系统管理的,来说,其调用是由操作系统管理的,用户不能参与。因此,用户不能参与。因此,OBOB只需定义
31、在只需定义在L L堆栈中的暂时变量。堆栈中的暂时变量。前往上级前往上级Date: 2022-5-10 Page: 37 部分变量可以是根本数据类型或复式数据类型,也可以部分变量可以是根本数据类型或复式数据类型,也可以是专门用于参数传送的所谓的是专门用于参数传送的所谓的“参数类型参数类型。参数类型包括。参数类型包括定时器、计数器、块的地址或指针等。定时器、计数器、块的地址或指针等。2.2.逻辑块部分变量的数据类型逻辑块部分变量的数据类型 前往上级前往上级Date: 2022-5-10 Page: 38 CPU CPU提供块堆栈提供块堆栈B B堆栈来存储与处置被中断块的有关堆栈来存储与处置被中断块
32、的有关信息。信息。3.3.逻辑块的调用过程及内存分配逻辑块的调用过程及内存分配 先前块的数据(仍是激活的)DB寄存器(DB和DI)临时数据指针块号返回地址先前块的数据(仍是激活的)DB寄存器(DB和DI)临时数据指针块号返回地址块堆栈(B堆栈)可执行的用户程序逻辑块数据块工作内存仍是激活的先前块的临时数据L堆栈数据块寄存器打开的数据块号当前块的临时数据打开的背景数据块号被中断块的数据DB寄存器(DB和DI)临时数据指针块号返回地址前往上级前往上级Date: 2022-5-10 Page: 39 部分数据堆栈简称部分数据堆栈简称L L堆栈,是堆栈,是CPUCPU中单独的存储器区,可中单独的存储器
33、区,可用来存储逻辑块的部分变量包括用来存储逻辑块的部分变量包括OBOB的起始信息、调用功的起始信息、调用功能能FCFC时要传送的实践参数、梯形图程序中的中间逻辑结时要传送的实践参数、梯形图程序中的中间逻辑结果等。可以按位、字节、字和双字来存取。果等。可以按位、字节、字和双字来存取。 块堆栈简称块堆栈简称B B堆栈,是堆栈,是CPUCPU系统内存中的一部分,用来存系统内存中的一部分,用来存储被中断的块的类型、编号、优先级和前往地址;中断时翻储被中断的块的类型、编号、优先级和前往地址;中断时翻开的共享数据块和背景数据块的编号;暂时变量的指针被开的共享数据块和背景数据块的编号;暂时变量的指针被中断块
34、的中断块的L L堆栈地址。堆栈地址。 中断堆栈简称中断堆栈简称I I堆栈,用来存储当前累加器和地址存放堆栈,用来存储当前累加器和地址存放器的内容、数据块存放器器的内容、数据块存放器DBDB和和DIDI的内容、局域数据的指针、的内容、局域数据的指针、形状字、形状字、MCRMCR主控继电器存放器和主控继电器存放器和B B堆栈的指针。堆栈的指针。 用户程序运用的堆栈用户程序运用的堆栈 前往上级前往上级Date: 2022-5-10 Page: 40 当调用功能块当调用功能块FBFB时,会有以下事件发生:时,会有以下事件发生: 调用块的地址和前往位置存储在块堆栈中,调用块的暂时调用块的地址和前往位置存
35、储在块堆栈中,调用块的暂时变量压入变量压入L L堆栈;堆栈;数据块数据块DBDB存放器内容与存放器内容与DIDI存放器内容交换;存放器内容交换;新的数据块地址装入新的数据块地址装入DIDI存放器;存放器;被调用块的实参装入被调用块的实参装入DBDB和和L L堆栈堆栈上部;上部;当功能块当功能块FBFB终了时,先前块的现场信息从块堆栈中弹终了时,先前块的现场信息从块堆栈中弹出,暂时变量弹出出,暂时变量弹出L L堆栈;堆栈;DBDB和和DIDI存放器内容交换。存放器内容交换。 当调用功能块当调用功能块FBFB时,时,STEP 7STEP 7并不一定要求给并不一定要求给FBFB形参赋予形参赋予实参,
36、除非参数是复式数据类型的实参,除非参数是复式数据类型的I/OI/O形参或参数类型形参。假设形参或参数类型形参。假设没有给没有给FBFB的形参赋予实参,那么功能块的形参赋予实参,那么功能块FBFB就调用背景数据块就调用背景数据块内的数值,该数值是在功能块内的数值,该数值是在功能块FBFB的变量声明表或背景数据块的变量声明表或背景数据块内内为形参所设置初始数值。为形参所设置初始数值。调用功能块调用功能块FBFB时的堆栈操作时的堆栈操作 前往上级前往上级Date: 2022-5-10 Page: 41 当调用功能当调用功能FCFC时会有以下事件发生:时会有以下事件发生: 功能功能FCFC实参的指针存
37、到调用块的实参的指针存到调用块的L L堆栈;调用块的堆栈;调用块的地址和前往位置存储在块堆栈,调用块的部分数据压入地址和前往位置存储在块堆栈,调用块的部分数据压入L L堆堆栈;功能栈;功能FCFC存储暂时变量的存储暂时变量的L L堆栈区被推入堆栈区被推入L L堆栈上部;堆栈上部;当被调用功能当被调用功能FCFC终了时,先前块的信息存储在块堆栈终了时,先前块的信息存储在块堆栈中,暂时变量弹出中,暂时变量弹出L L堆栈。堆栈。 由于功能由于功能FCFC不用背景数据块,不能分配初始数值给不用背景数据块,不能分配初始数值给功能功能FCFC的部分数据,所以必需给功能的部分数据,所以必需给功能FCFC提供
38、实参。提供实参。 调用功能调用功能FCFC时的堆栈操作时的堆栈操作 前往上级前往上级Date: 2022-5-10 Page: 42 以功能以功能FC调用为例,调用为例,L堆栈操堆栈操作 表 示 如 下 图 。作 表 示 如 下 图 。 调用功能调用功能FCFC时的堆栈操作时的堆栈操作 前往上级前往上级Date: 2022-5-10 Page: 43 对逻辑块编程时必需编辑以下三个部分:对逻辑块编程时必需编辑以下三个部分: 变量声明:分别定义形参、静态变量和暂时变量变量声明:分别定义形参、静态变量和暂时变量FCFC块块中不包括静态变量;确定各变量的声明类型中不包括静态变量;确定各变量的声明类型
39、Decl.Decl.、变量名变量名NameName和数据类型和数据类型Data TypeData Type,还要为变量设,还要为变量设置初始值置初始值Initial ValueInitial Value。假设需求还可为变量注释。假设需求还可为变量注释CommentComment。在增量编程方式下,。在增量编程方式下,STEP 7STEP 7将自动产生部分将自动产生部分变量地址变量地址AddressAddress。 代码段:对将要由代码段:对将要由PLCPLC进展处置的块代码进展编程。进展处置的块代码进展编程。 块属性:块属性包含了其它附加的信息,例如由系统输块属性:块属性包含了其它附加的信息,
40、例如由系统输入的时间标志或途径。此外,也可输入相关详细资料。入的时间标志或途径。此外,也可输入相关详细资料。 5.3.2 5.3.2 逻辑块逻辑块FCFC和和FBFB的编程的编程 前往本节前往本节Date: 2022-5-10 Page: 441.1.暂时变量的定义和运用暂时变量的定义和运用前往上级前往上级Date: 2022-5-10 Page: 45 选中 Blocks 执行菜单命令 选择程序结构 查看局部数据的字数 2.2.查看部分数据堆栈的占用查看部分数据堆栈的占用 前往上级前往上级Date: 2022-5-10 Page: 46 选择逻辑块并单击右键 选择对象属性命令 查看块所需字节
41、数 3.3.查看块所需字节数查看块所需字节数 前往上级前往上级Date: 2022-5-10 Page: 47 定义输入参数 定义输出参数 选择参数类型 输入参数名称 从下拉列表中选择数据类型 参数注解 定义输入/输出参数 数据类型下拉列表 4.4.定义方式参数定义方式参数 前往上级前往上级Date: 2022-5-10 Page: 48 编写逻辑块编写逻辑块FCFC和和FBFB程序时,可以用以下两种方式运程序时,可以用以下两种方式运用部分变量:用部分变量: 运用变量名,此时变量名前加前缀运用变量名,此时变量名前加前缀“# #,以区别于,以区别于在符号表中定义的符号地址。增量方式下,前缀会自动
42、产生。在符号表中定义的符号地址。增量方式下,前缀会自动产生。 直接运用部分变量的地址,这种方式只对背景数据块直接运用部分变量的地址,这种方式只对背景数据块和和L L堆栈有效。堆栈有效。 在调用在调用FBFB块时,要阐明其背景数据块。背景数据块应在块时,要阐明其背景数据块。背景数据块应在调用前生成,其顺序格式与变量声明表必需坚持一致。调用前生成,其顺序格式与变量声明表必需坚持一致。5.5.编写控制程序编写控制程序前往上级前往上级Date: 2022-5-10 Page: 49 所谓无参功能所谓无参功能FCFC,是指在编辑功能,是指在编辑功能FCFC时,在部时,在部分变量声明表不进展方式参数的定义
43、,在功能分变量声明表不进展方式参数的定义,在功能FCFC中直接中直接运用绝对地址完成控制程序的编程。这种方式普通运用于分运用绝对地址完成控制程序的编程。这种方式普通运用于分部式构造的程序编写,每个功能部式构造的程序编写,每个功能FCFC实现整个控制义务的实现整个控制义务的一部分,不反复调用。一部分,不反复调用。5.4.1 5.4.1 编辑无参功能编辑无参功能FCFC5.4.2 5.4.2 在在OB1OB1中调用无参功能中调用无参功能FCFC5.4 5.4 编辑并调用无参功能编辑并调用无参功能FCFC分部程序设计分部程序设计 前往本章前往本章Date: 2022-5-10 Page: 50【例【
44、例5-4-15-4-1】 搅拌控制系统程序设计搅拌控制系统程序设计运用开关量。运用开关量。 搅 拌 器 低 液 位 传 感 器 高 液 位 传 感 器 进 料 泵 1 进 料 泵 2 中 液 位 传 感 器 放 料 泵 启 动 停 止 料 A 料 B 料 C 起动 前往本节前往本节Date: 2022-5-10 Page: 51控制阐明控制阐明 如下图为一搅拌控制系统,由如下图为一搅拌控制系统,由3 3个开关量液位传感器,个开关量液位传感器,分别检测液位的高、中和低。现要求对分别检测液位的高、中和低。现要求对A A、B B两种液体原两种液体原料按等比例混合,请编写控制程序。料按等比例混合,请编
45、写控制程序。 要求:按起动按钮后系统自动运转,首先翻开进料泵要求:按起动按钮后系统自动运转,首先翻开进料泵1 1,开场参与液料,开场参与液料AA中液位传感器动作后,那么封锁进料泵中液位传感器动作后,那么封锁进料泵1 1,翻开进料泵,翻开进料泵2 2,开场参与液料,开场参与液料BB高液位传感器动作后,高液位传感器动作后,封锁进料泵封锁进料泵2 2,起动搅拌器,起动搅拌器搅拌搅拌10s10s后,封锁搅拌器,开启后,封锁搅拌器,开启放料泵放料泵当低液位传感器动作后,延时当低液位传感器动作后,延时5s5s后封锁放料泵。按后封锁放料泵。按停顿按钮,系统应立刻停顿运转。停顿按钮,系统应立刻停顿运转。 前往
46、上级前往上级Date: 2022-5-10 Page: 521.1.创建创建S7S7工程工程 按照第按照第3 3章所引见的方法,创建章所引见的方法,创建S7S7工程,并命名为工程,并命名为“无无参参FCFC,工程包含组织块,工程包含组织块OB1OB1和和OB100OB100。2.2.硬件配置硬件配置 在在 “ “无参无参FCFC工程内翻开工程内翻开“SIMATIC 300 StationSIMATIC 300 Station文文件夹,翻开硬件配置窗口,并完成硬件配置。件夹,翻开硬件配置窗口,并完成硬件配置。 5.4.1 5.4.1 编辑无参功能编辑无参功能FCFC 前往本节前往本节Date:
47、2022-5-10 Page: 533.3.编辑符号表编辑符号表 前往上级前往上级Date: 2022-5-10 Page: 54 O B1 主 循 环 O B100:初 始 化 程 序 FC1: 液 料 A 控 制 程 序 FC2: 液 料 B 控 制 程 序 FC3: 搅 拌 器 控 制 程 序 FC4: 出 料 控 制 程 序 操 作 系 统 4.4.规划程序构造规划程序构造 前往上级前往上级Date: 2022-5-10 Page: 555.5.编辑功能编辑功能FC FC 在在“无参无参FCFC工程内选择工程内选择“BlocksBlocks文件夹,然后反复文件夹,然后反复执行菜单命令【
48、执行菜单命令【InsertInsert】【S7 BlockS7 Block】【FunctionFunction】,】,分别创建分别创建4 4个功能个功能FCFC:FC1FC1、FC2FC2、FC3FC3和和FC4FC4。由于在符。由于在符号表内曾经为号表内曾经为FC1FC1FC4FC4定义了符号名,因此在创建定义了符号名,因此在创建FCFC的属性的属性对话对话框内系统会自动添加符号名。框内系统会自动添加符号名。FC1FC1控制程序控制程序FC2FC2控制程序控制程序FC3FC3控制程序控制程序FC4FC4控制程序控制程序OB100OB100控制程序控制程序前往上级前往上级Date: 2022-
49、5-10 Page: 56FC1FC1的控制程序的控制程序FC2FC2的控制程序的控制程序前往上级前往上级Date: 2022-5-10 Page: 57 FC3FC3的控制程序的控制程序前往上级前往上级Date: 2022-5-10 Page: 58 FC4FC4的控制程序的控制程序前往上级前往上级Date: 2022-5-10 Page: 59OB100OB100的控制程序的控制程序前往上级前往上级Date: 2022-5-10 Page: 605.4.2 5.4.2 在在OB1OB1中调用无参功能中调用无参功能FCFC 可调用的功能 FC 在 OB1 内调用FC1FC4 前往本节前往本节
50、Date: 2022-5-10 Page: 61 OB1OB1的控制程序的控制程序前往上级前往上级Date: 2022-5-10 Page: 62 所谓有参功能所谓有参功能FCFC,是指编辑功能,是指编辑功能FCFC时,在部分时,在部分变量声明表内定义了方式参数,在功能变量声明表内定义了方式参数,在功能FCFC中运用了虚拟中运用了虚拟的符号地址完成控制程序的编程,以便在其他块中能反复调的符号地址完成控制程序的编程,以便在其他块中能反复调用有参功能用有参功能FCFC。这种方式普通运用于构造化程序编写。这种方式普通运用于构造化程序编写。 5 . 5 . 1 5 . 5 . 1 编 辑 有 参 功
51、能 编 辑 有 参 功 能 F CF C 5 . 5 . 2 5 . 5 . 2 在在 O B 1O B 1 中 调 用 有 参 功 能 中 调 用 有 参 功 能 F CF C 5.5 5.5 编辑并调用有参功能编辑并调用有参功能FCFC构造化程序设计构造化程序设计 前往本章前往本章Date: 2022-5-10 Page: 63【例【例5-5-15-5-1】 多级分频器控制程序设计。多级分频器控制程序设计。 本例拟在功能本例拟在功能FC1FC1中编写二分频器控制程序,然后在中编写二分频器控制程序,然后在OB1OB1中经过调用中经过调用FC1FC1实现多级分频器的功能。多级分频器的时序实现多
52、级分频器的功能。多级分频器的时序关系如下图。其中关系如下图。其中I0.0I0.0为多级分频器的脉冲输入端;为多级分频器的脉冲输入端;Q4.0Q4.0Q4.3Q4.3分别为分别为2 2、4 4、8 8、1616分频的脉冲输出端;分频的脉冲输出端;Q4.4Q4.4Q4.7Q4.7分别为分别为2 2、4 4、8 8、1616分频指示灯驱动输出端。分频指示灯驱动输出端。I0.0Q4.0/Q4.4/M0.0Q4.1/Q4.5/M0.1Q4.2/Q4.6/M0.2Q4.3/Q4.7/M0.31234567891011121314151617181920212223242526272829303132前往本
53、节前往本节Date: 2022-5-10 Page: 645.5.1 5.5.1 编辑有参功能编辑有参功能FCFC 创建多级分频器的创建多级分频器的S7S7工程工程硬件配置硬件配置编写符号表编写符号表 规划程序构造规划程序构造 创建有参功能创建有参功能FC1 FC1 前往本节前往本节Date: 2022-5-10 Page: 651.1.创建多级分频器的创建多级分频器的S7S7工程工程 运用菜单【运用菜单【FileFile】【“New ProjectNew ProjectWizardWizard】创建】创建多多级分频器的级分频器的S7S7工程,并命名为工程,并命名为“有参有参FCFC。2.2.
54、硬件配置硬件配置 翻开翻开“SIMATIC 300 StationSIMATIC 300 Station文件夹,双击硬件配置文件夹,双击硬件配置图图标翻开硬件配置窗口,并按图所示完成硬件配置。标翻开硬件配置窗口,并按图所示完成硬件配置。前往上级前往上级Date: 2022-5-10 Page: 663. 3. 编写符号表编写符号表 前往上级前往上级Date: 2022-5-10 Page: 674. 4. 规划程序构造规划程序构造 OB1 主循环 调用 FC1:实现 2 分频 调用 FC1: 实现 4 分频 调用 FC1: 实现 8 分频 调用 FC1: 实现 16 分频 操作系统 前往上级前
55、往上级Date: 2022-5-10 Page: 685. 5. 创建有参创建有参FC1 FC1 选择选择“有参有参FCFC工程的工程的“BlocksBlocks文件夹,然后执行菜文件夹,然后执行菜单命令【单命令【InsertInsert】【S7 BlockS7 Block】【FunctionFunction】,在块文】,在块文件夹件夹内 创 建 一 个 功 能 , 并 命 名 为内 创 建 一 个 功 能 , 并 命 名 为 “ F C 1F C 1 。编辑编辑FC1FC1的变量声明表的变量声明表 在在FC1FC1的变量声明表内,声明的变量声明表内,声明4 4个参数,见下表。个参数,见下表。
56、前往上级前往上级Date: 2022-5-10 Page: 69编辑编辑FC1FC1的控制程序的控制程序 二分频器的时序如下图。分析二分频器的时序图可以二分频器的时序如下图。分析二分频器的时序图可以看到,输入信号每出现一个上升沿,输出便改动一次状看到,输入信号每出现一个上升沿,输出便改动一次状态 , 据 此 可 采 用 上 跳 沿 检 测 指 令 实 现 。态 , 据 此 可 采 用 上 跳 沿 检 测 指 令 实 现 。 S_INS_OUTF_P 假设输入信号假设输入信号S_INS_IN出现上升沿,那么对出现上升沿,那么对S_OUTS_OUT取反,然取反,然后将后将S_OUTS_OUT的信号
57、形状送的信号形状送LEDLED显示;否那么,程序直接跳转到显示;否那么,程序直接跳转到LP1LP1,将,将S_OUTS_OUT的信号形状送的信号形状送LEDLED显示。显示。前往上级前往上级Date: 2022-5-10 Page: 70 FC1FC1的控制程序的控制程序前往上级前往上级Date: 2022-5-10 Page: 715.5.2 5.5.2 在在OB1OB1中调用有参功能中调用有参功能FCFC 运运用用绝绝对对地地址址运运用用符符号号地地址址前往本节前往本节Date: 2022-5-10 Page: 72 功能块功能块FBFB在程序的体系构造中位于组织块之下。它在程序的体系构造
58、中位于组织块之下。它包含程序的一部分,这部分程序在包含程序的一部分,这部分程序在OB1OB1中可以多次调用。功中可以多次调用。功能块的一切形参和静态数据都存储在一个单独的、被指定给能块的一切形参和静态数据都存储在一个单独的、被指定给该功能块的数据块该功能块的数据块DBDB中,该数据块被称为背景数据块。中,该数据块被称为背景数据块。当调用当调用FBFB时,该背景数据块会自动翻开,实践参数的值被存时,该背景数据块会自动翻开,实践参数的值被存储在背景数据块中;当块退出时,背景数据块中的数据依然储在背景数据块中;当块退出时,背景数据块中的数据依然坚持。坚持。 5 . 6 . 1 5 . 6 . 1 编
59、 辑 无 静 态 参 数 的 功 能 块 编 辑 无 静 态 参 数 的 功 能 块 F BF B 5.6.2 5.6.2 在在OB1OB1中调用无静态参数的功能块中调用无静态参数的功能块FBFB 5.6 5.6 编辑无静参的功能块编辑无静参的功能块FB FB 前往本章前往本章Date: 2022-5-10 Page: 73【例【例5-6-15-6-1】 水箱水位控制系统程序设计。水箱水位控制系统程序设计。 Y2 Y1 UL1 UH1 Y4 Y3 UL2 UH2 Y6 Y5 UL3 UH3 水箱 1 水箱 2 水箱 3 SB1 SB2 SB3 SB4 SB5 SB6 前往本节前往本节Date:
60、 2022-5-10 Page: 74【例【例5-6-15-6-1】 系统有系统有3 3个贮水箱,每个水箱有个贮水箱,每个水箱有2 2个液位传感器,个液位传感器,UH1UH1,UH2UH2,UH3UH3为高液位传感器,为高液位传感器,“1 1有效;有效;UL1UL1,UL2UL2,UL3UL3为低为低液位传感器,液位传感器,“0 0有效。有效。Y1Y1、Y3Y3、Y5Y5分别为分别为3 3个贮水水箱进个贮水水箱进水电磁阀;水电磁阀;Y2Y2、Y4Y4、Y6Y6分别为分别为3 3个贮水水箱放水电磁阀。个贮水水箱放水电磁阀。SB1SB1、SB3SB3、SB5SB5分别为分别为3 3个贮水水箱放水电
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中职化妆品技术(质量检验技术)试题及答案
- 2025年中职第二学年(建筑工程施工)屋面工程施工试题及答案
- 2025年中职水文与工程地质(水文勘察实操)试题及答案
- 2025年大学语文(技巧应用写作)试题及答案
- 2025年中职(电气技术应用)电气设备安装阶段测试题及答案
- 2025年高职第一学年(电气自动化)专业基础综合测试卷
- 2025年大学本科(航海技术)船舶货运组织试题及答案
- 2025年高职市政工程施工技术(市政施工实务)试题及答案
- 2025年高职建筑工程技术(建筑工程测量)试题及答案
- 2025年中职(航空摄影测量)航空摄影基础试题及答案
- 提优点7 衍生数列问题
- 2025-2030中国制药工业AGV行业市场发展趋势与前景展望战略研究报告
- 工程造价审计服务投标方案(技术方案)
- 工程质量通病防治手册(房建类)
- 采购石粉合同协议
- 驾考试题100道及答案
- 2025潍坊护理职业学院辅导员考试题库
- 麻醉科工作总结
- 弹塑性力学完整版本
- 小学生预防寄生虫
- 洛必 达法则课件
评论
0/150
提交评论