西门子Step7培训教程——第5a章--S7程序结构ppt课件

上传人:m**** 文档编号:579723352 上传时间:2024-08-27 格式:PPT 页数:50 大小:1.29MB
返回 下载 相关 举报
西门子Step7培训教程——第5a章--S7程序结构ppt课件_第1页
第1页 / 共50页
西门子Step7培训教程——第5a章--S7程序结构ppt课件_第2页
第2页 / 共50页
西门子Step7培训教程——第5a章--S7程序结构ppt课件_第3页
第3页 / 共50页
西门子Step7培训教程——第5a章--S7程序结构ppt课件_第4页
第4页 / 共50页
西门子Step7培训教程——第5a章--S7程序结构ppt课件_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《西门子Step7培训教程——第5a章--S7程序结构ppt课件》由会员分享,可在线阅读,更多相关《西门子Step7培训教程——第5a章--S7程序结构ppt课件(50页珍藏版)》请在金锄头文库上搜索。

1、我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物第第5 5章章 S7S7程序结构和程序设计程序结构和程序设计夏日杂诗【清】陈文述水窗低傍画栏开,枕簟萧疏玉漏催。一夜雨声凉到梦,万荷叶上送秋来。讲解人:feilt我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物第第5 5章章 S7S7程序结构与程序设计程序结构与程序设计 5.15.1 S7 CPU S7 CPU中的程序中的程序5.25.2 数据块中的数据存储数据块中的数据存

2、储 5.35.3 逻辑块(逻辑块(FCFC和和FBFB)的结构及编程)的结构及编程 5.45.4 编辑并调用无参功能(编辑并调用无参功能(FCFC)分部程序设计分部程序设计5.55.5 编辑并调用有参功能(编辑并调用有参功能(FCFC)结构化程序设计结构化程序设计5.65.6 编辑并调用无静态参数的功能块(编辑并调用无静态参数的功能块(FBFB)5.75.7 编辑并调用有静态参数的功能块(编辑并调用有静态参数的功能块(FBFB)5.85.8 使用多重背景使用多重背景结构化程序设计结构化程序设计我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我

3、的猜测没有错:表里边有一个活的生物5.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 程序循环执行程序循环执行我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物5.1.1 5.1.1 用户程序中的块结构用户程序中的块结构 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边

4、有一个活的生物5.1.2 用户程序结构用户程序结构 线性程序(线性编程)线性程序(线性编程)分部式程序(分部编程、分块编程)分部式程序(分部编程、分块编程) 结构化程序(结构化编程或模块化编程)结构化程序(结构化编程或模块化编程) 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物1. 线性程序(线性编程)线性程序(线性编程) 所谓线性程序结构,就是将整个用户程序连续放置在一所谓线性程序结构,就是将整个用户程序连续放置在一个循环程序块(个循环程序块(OB1OB1)中,块中的程序按顺序执行,)中,块中的程序按顺

5、序执行,CPUCPU通过通过反复执行反复执行OB1OB1来实现自动化控制任务。这种结构和来实现自动化控制任务。这种结构和PLCPLC所代替所代替的硬接线继电器控制类似,的硬接线继电器控制类似,CPUCPU逐条地处理指令。事实上所逐条地处理指令。事实上所有的程序都可以用线性结构实现,不过,线性结构一般适用有的程序都可以用线性结构实现,不过,线性结构一般适用于相对简单的程序编写。于相对简单的程序编写。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2.2.分部式程序(分部编程、分块编程)分部式程序(分部编程、分

6、块编程) 所谓分部程序,就是将整个程序按任务分成若干个部分,所谓分部程序,就是将整个程序按任务分成若干个部分,并分别放置在不同的功能(并分别放置在不同的功能(FCFC)、功能块()、功能块(FBFB)及组织块中,)及组织块中,在一个块中可以进一步分解成段。在组织块在一个块中可以进一步分解成段。在组织块OB1OB1中包含按顺中包含按顺序调用其他块的指令,并控制程序执行。序调用其他块的指令,并控制程序执行。 在分部程序中,既无数据交换,也不存在重复利用的程在分部程序中,既无数据交换,也不存在重复利用的程序代码。功能(序代码。功能(FCFC)和功能块()和功能块(FBFB)不传递也不接收参数,)不传

7、递也不接收参数,分部程序结构的编程效率比线性程序有所提高,程序测试也分部程序结构的编程效率比线性程序有所提高,程序测试也较方便,对程序员的要求也不太高。对不太复杂的控制程序较方便,对程序员的要求也不太高。对不太复杂的控制程序可考虑采用这种程序结构。可考虑采用这种程序结构。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物3. 3. 结构化程序(结构化编程或模块化编程)结构化程序(结构化编程或模块化编程) 所谓结构化程序,就是处理复杂自动化控制任务的过程所谓结构化程序,就是处理复杂自动化控制任务的过程中,为了

8、使任务更易于控制,常把过程要求类似或相关的功中,为了使任务更易于控制,常把过程要求类似或相关的功能进行分类,分割为可用于几个任务的通用解决方案的小任能进行分类,分割为可用于几个任务的通用解决方案的小任务,这些小任务以相应的程序段表示,称为块(务,这些小任务以相应的程序段表示,称为块(FCFC或或FBFB)。)。OB1OB1通过调用这些程序块来完成整个自动化控制任务。通过调用这些程序块来完成整个自动化控制任务。 结构化程序的特点是每个块(结构化程序的特点是每个块(FCFC或或FBFB)在)在OB1OB1中可能会中可能会被多次调用,以完成具有相同过程工艺要求的不同控制对象。被多次调用,以完成具有相

9、同过程工艺要求的不同控制对象。这种结构可简化程序设计过程、减小代码长度、提高编程效这种结构可简化程序设计过程、减小代码长度、提高编程效率,比较适合于较复杂自动化控制任务的设计。率,比较适合于较复杂自动化控制任务的设计。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物5.1.3 I/O5.1.3 I/O过程映像过程映像 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物5.1.4 5.1.4 程序循环执行程序循环执行 我吓了

10、一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物5.2 5.2 数据块中的数据存储数据块中的数据存储 5.2.1 数据存储区数据存储区5.2.2 数据块数据块5.2.3 数据块的数据结构数据块的数据结构5.2.4 建立数据块建立数据块5.2.5 访问数据块访问数据块我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物5.2.1 5.2.1 数据存储区数据存储区 数据以用户程序变量的形式存储,且具有唯一性。数据数据以用户程序变量的形

11、式存储,且具有唯一性。数据可以存储在输入过程映像存储器(可以存储在输入过程映像存储器(PIIPII)、输出过程映像存)、输出过程映像存储器(储器(PIQPIQ)、位存储器()、位存储器(M M)、局部数据堆栈()、局部数据堆栈(L L堆栈)及堆栈)及数据块(数据块(DBDB)中。可以采用基本数据类型、复杂数据类型或)中。可以采用基本数据类型、复杂数据类型或参数类型。参数类型。 根据访问方式的不同,这些数据可以在全局符号表或共根据访问方式的不同,这些数据可以在全局符号表或共享数据块中声明,称为全局变量;也可以在享数据块中声明,称为全局变量;也可以在OBOB、FCFC和和FBFB的变的变量声明表中

12、声明,称为局部变量。当块被执行时,变量将固量声明表中声明,称为局部变量。当块被执行时,变量将固定地存储在过程映像区(定地存储在过程映像区(PIIPII或或PIQPIQ)、位存储器区()、位存储器区(M M)、)、数据块(数据块(DBDB)或局部堆栈()或局部堆栈(L L)中。)中。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物5.2.2 5.2.2 数据块数据块 数据块定义在数据块定义在S7 CPUS7 CPU的存储器中,用户可在存储器中建的存储器中,用户可在存储器中建立一个或多个数据块。每个数据块可大可

13、小,但立一个或多个数据块。每个数据块可大可小,但CPUCPU对数据对数据块数量及数据总量有限制。块数量及数据总量有限制。 数据块(数据块(DBDB)可用来存储用户程序中逻辑块的变量数据)可用来存储用户程序中逻辑块的变量数据(如:数值)。与临时数据不同,当逻辑块执行结束或数据(如:数值)。与临时数据不同,当逻辑块执行结束或数据块关闭时,数据块中的数据保持不变。块关闭时,数据块中的数据保持不变。 用户程序可以位、字节、字或双字操作访问数据块中的用户程序可以位、字节、字或双字操作访问数据块中的数据,可以使用符号或绝对地址。数据,可以使用符号或绝对地址。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么

14、把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物1.1.数据块的分类数据块的分类 共共享享数数据据块块又又称称全全局局数数据据块块。用用于于存存储储全全局局数数据据,所所有有逻逻辑辑块块(O OB B、F FC C、F FB B)都都可可以以访访问问共共享享数数据据块块存存储储的的信信。 背景数据块背景数据块用作用作“私有存储器区私有存储器区”,即用作功能块,即用作功能块(FBFB)的)的“存储器存储器”。FBFB的参数和静态变量安排在它的背景的参数和静态变量安排在它的背景数据块中。背景数据块不是由用户编辑的,而是由编辑器生数据块中。背景数据块不是由用

15、户编辑的,而是由编辑器生成的。成的。 用户定义数据块用户定义数据块(DB of TypeDB of Type)是以)是以UDTUDT为模板所生成为模板所生成的数据块。创建用户定义数据块(的数据块。创建用户定义数据块(DB of TypeDB of Type)之前,必须)之前,必须先创建一个用户定义数据类型,如先创建一个用户定义数据类型,如UDT1UDT1,并在,并在LAD/STL/ FBD LAD/STL/ FBD S7S7程序编辑器内定义。程序编辑器内定义。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物

16、2.2.数据块寄存器数据块寄存器 CPU有有两两个个数数据据块块寄寄存存器器:DB和和DI寄寄存存器器。这这样样,可可以以同时打开两个数据块。同时打开两个数据块。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物5.2.3 5.2.3 数据块的数据结构数据块的数据结构 在在STEP 7STEP 7中数据块的数据类型可以采用基本数据类型、中数据块的数据类型可以采用基本数据类型、复杂数据类型或用户定义数据类型(复杂数据类型或用户定义数据类型(UDTUDT)。)。基本数据类型基本数据类型复杂数据类型复杂数据类型用

17、户定义数据类型用户定义数据类型 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物基本数据类型基本数据类型 根据根据IEC1131-3IEC1131-3定义,长度不超过定义,长度不超过3232位,可利用位,可利用STEP 7STEP 7基本指令处理,能完全装入基本指令处理,能完全装入S7S7处理器的累加器中。基本数据处理器的累加器中。基本数据类型包括:类型包括:位数据类型位数据类型:BOOLBOOL、BYTEBYTE、WORDWORD、DWORDDWORD、CHARCHAR数字数据类型数字数据类型:INTIN

18、T、DINTDINT、REALREAL定时器类型定时器类型:S5TIMES5TIME、TIMETIME、DATEDATE、TIME_OF_DAY TIME_OF_DAY 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物复杂数据类型复杂数据类型 复复杂杂数数据据类类型型只只能能结结合合共共享享数数据据块块的的变变量量声声明明使使用用。复复杂杂数数据据类类型型可可大大于于3 32 2位位,用用装装入入指指令令不不能能把把复复杂杂数数据据类类型型完完全全装装入入累累加加器器,一一般般利利用用库库中中的的标标准准块

19、块(“I IE EC C”S S7 7程程序序)处处 理理 复复 杂杂 数数 据据 类类 型型 。 复复 杂杂 数数 据据 类类 型型 包包 括括 :时间时间(DATE_AND_TIMEDATE_AND_TIME)类型)类型矩阵矩阵(ARRAYARRAY)类型)类型结构结构(STRUCTSTRUCT)类型)类型字符串字符串(STRINGSTRING)类型)类型我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物用户定义数据类型(用户定义数据类型(UDTUDT) STEP 7允许利用数据块编辑器,将基本数据类型和

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

21、部变量。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物【5-2-1】 创建用户定义数据类型:创建用户定义数据类型:UDT1。 创建一个名称为创建一个名称为UDT1UDT1的用户定义数据类型,数据结构如的用户定义数据类型,数据结构如下,则可按以下几个步骤完成。下,则可按以下几个步骤完成。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物【5-2-1】创建创建用户定义用户定义数据类型数据类型我吓了一跳,蝎子是多么丑恶和恐

22、怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物【5-2-1】编辑编辑UDT1UDT1我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物5.2.4 5.2.4 建立数据块建立数据块 在在STEP STEP 7 7中中,为为了了避避免免出出现现系系统统错错误误,在在使使用用数数据据块块之之前前,必必须须先先建建立立数数据据块块,并并在在块块中中定定义义变变量量(包包括括变变量量符符号号名名、数数据据类类型型以以及及初初始始值值等等)。数数据据块块中中变变

23、量量的的顺顺序序及及类类型型决决定定了了数数据据块块的的数数据据结结构构,变变量量的的数数量量决决定定了了数数据据块块的的大大小小。数数据据块块建建立立后后,还还必必须须同同程程序序块块一一起起下下载载到到CPUCPU中中,才才能能被被程序块访问。程序块访问。建立数据块建立数据块 定义变量并下载数据块定义变量并下载数据块 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物方法方法1 1:用用SIMATIC SIMATIC ManagerManager创建数据块。创建数据块。 我吓了一跳,蝎子是多么丑恶和恐怖的

24、东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物方法方法2 2:用用LAD/STL/FBD S7LAD/STL/FBD S7程序编辑器创建数据块。程序编辑器创建数据块。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物新新DBDB类型选择窗口类型选择窗口 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物编辑数据块(变量定义)编辑数据块(变量定义) 变变量量定定义义完完

25、成成后后,应应单单击击保保存存按按钮钮保保存存并并编编译译(测测试试)。如如果果没没有有错错误误则则需需要要单单击击下下载载按按钮钮,像像逻逻辑辑块块一一样样,将将数数据据块块下下载载到到CPUCPU。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物5.2.5 5.2.5 访问数据块访问数据块 在在用用户户程程序序中中可可能能存存在在多多个个数数据据块块,而而每每个个数数据据块块的的数数据据结结构构并并不不完完全全相相同同,因因此此在在访访问问数数据据块块时时,必必须须指指明明数数据据块块的的编编号号、数

26、数据据类类型型与与位位置置。如如果果访访问问不不存存在在的的数数据据单单元元或或数据块,而且没有编写错误处理数据块,而且没有编写错误处理OBOB块,块,CPUCPU将进入将进入STOPSTOP模式。模式。寻址数据块寻址数据块 访问数据块访问数据块直接访问数据块直接访问数据块 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物寻址数据块寻址数据块我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物访问数据块访问数据块 在在STE

27、P 7STEP 7中可以采用传统访问方式,即先打开后访问;中可以采用传统访问方式,即先打开后访问;也可以采用完全表示的直接访问方式。也可以采用完全表示的直接访问方式。【例例5-2-25-2-2】 打开并访问共享数据块。打开并访问共享数据块。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物访问数据块访问数据块 用指令用指令“OPN DB.OPN DB.”打开共享数据块(自动关闭之前打开共享数据块(自动关闭之前打开的共享数据块),如果打开的共享数据块),如果DBDB已经打开,则可用装入(已经打开,则可用装入(

28、L L)或传送(或传送(T T)指令访问数据块。)指令访问数据块。 【例例5-2-35-2-3】 打开并访问背景数据块。打开并访问背景数据块。 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物直接访问数据块直接访问数据块 所谓直接访问数据块,就是在指令中同时给出数据块的所谓直接访问数据块,就是在指令中同时给出数据块的编号和数据在数据块中的地址。可以用绝对地址,也可以用编号和数据在数据块中的地址。可以用绝对地址,也可以用符号地址直接访问数据块。符号地址直接访问数据块。 用用绝对地址绝对地址直接访问数据块,如:

29、直接访问数据块,如: 用用符号地址符号地址直接访问数据块直接访问数据块 ,如:,如:我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 功功能能(F FC C)、功功能能块块(F FB B)和和组组织织块块(O OB B)统统称称为为逻逻辑辑块块(或或程程序序块块)。功功能能块块(F FB B)有有一一个个数数据据结结构构与与该该功功能能块块的的参参数数完完全全相相同同的的数数据据块块,称称为为背背景景数数据据块块,背背景景数数据据块块依依附附于于功功能能块块,它它随随着着功功能能块块的的调调用用而而打打开开

30、,随随着着功功能能块块的的结结束束而而关关闭闭。存存放放在在背背景景数数据据块块中中的的数数据据在在功功能能块块结结束束时时继继续续保保持持。而而功功能能(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)的结构及编程)的结构及编程 我吓了一跳,

31、蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 逻辑块(逻辑块(OBOB、FBFB、FCFC)由变量声明表、代码段及其属性)由变量声明表、代码段及其属性等几部分组成。等几部分组成。局部变量声明表(局部数据)局部变量声明表(局部数据) 逻辑块局部变量的数据类型逻辑块局部变量的数据类型 逻辑块的调用过程及内存分配逻辑块的调用过程及内存分配 5.3.1 5.3.1 逻辑块(逻辑块(FCFC和和FBFB)的结构)的结构我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测

32、没有错:表里边有一个活的生物 每个逻辑块前部都有一个变量声明表,称为每个逻辑块前部都有一个变量声明表,称为局部变量声局部变量声明表明表。1. 1. 局部变量声明表局部变量声明表 局部数据分为局部数据分为参数参数和和局部变量局部变量两大类,局部变量又包括两大类,局部变量又包括静态变量静态变量和和临时变量临时变量(暂态变量)两种。(暂态变量)两种。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 对于对于功能块功能块(FBFB),操作系统为参数及静态变量分配的),操作系统为参数及静态变量分配的存储空间是背景数据

33、块。这样参数变量在背景数据块中留有存储空间是背景数据块。这样参数变量在背景数据块中留有运行结果备份。在调用运行结果备份。在调用FBFB时,若没有提供实参,则功能块使时,若没有提供实参,则功能块使用背景数据块中的数值。操作系统在用背景数据块中的数值。操作系统在L L堆栈中给堆栈中给FBFB的临时变的临时变量分配存储空间。量分配存储空间。 对于对于功能功能(FCFC),操作系统在),操作系统在L L堆栈中给堆栈中给FCFC的临时变量的临时变量分配存储空间。由于没有背景数据块,因而分配存储空间。由于没有背景数据块,因而FCFC不能使用静态不能使用静态变量。输入、输出、变量。输入、输出、I/OI/O参

34、数以指向实参的指针形式存储在参数以指向实参的指针形式存储在操作系统为参数传递而保留的额外空间中。操作系统为参数传递而保留的额外空间中。 对于对于组织块组织块(OBOB)来说,其调用是由操作系统管理的,)来说,其调用是由操作系统管理的,用户不能参与。因此,用户不能参与。因此,OBOB只有定义在只有定义在L L堆栈中的临时变量。堆栈中的临时变量。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 局部变量可以是基本数据类型或复式数据类型,也可以局部变量可以是基本数据类型或复式数据类型,也可以是专门用于参数传递的所

35、谓的是专门用于参数传递的所谓的“参数类型参数类型”。参数类型包括。参数类型包括定时器、计数器、块的地址或指针等。定时器、计数器、块的地址或指针等。2.2.逻辑块局部变量的数据类型逻辑块局部变量的数据类型 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 CPU CPU提供提供块堆栈块堆栈(B B堆栈)来存储与处理被中断块的有关堆栈)来存储与处理被中断块的有关信息。信息。3.3.逻辑块的调用过程及内存分配逻辑块的调用过程及内存分配 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?

36、但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 局部数据堆栈局部数据堆栈简称简称L L堆栈堆栈,是,是CPUCPU中单独的存储器区,可中单独的存储器区,可用来存储逻辑块的局部变量(包括用来存储逻辑块的局部变量(包括OBOB的起始信息)、调用功的起始信息)、调用功能(能(FCFC)时要传递的实际参数、梯形图程序中的中间逻辑结)时要传递的实际参数、梯形图程序中的中间逻辑结果等。可以按位、字节、字和双字来存取。果等。可以按位、字节、字和双字来存取。 块堆栈块堆栈简称简称B B堆栈堆栈,是,是CPUCPU系统内存中的一部分,用来存系统内存中的一部分,用来存储被中断的块的类型、编号、优先级和

37、返回地址;中断时打储被中断的块的类型、编号、优先级和返回地址;中断时打开的共享数据块和背景数据块的编号;临时变量的指针(被开的共享数据块和背景数据块的编号;临时变量的指针(被中断块的中断块的L L堆栈地址)。堆栈地址)。 中断堆栈中断堆栈简称简称I I堆栈堆栈,用来存储当前累加器和地址寄存,用来存储当前累加器和地址寄存器的内容、数据块寄存器器的内容、数据块寄存器DBDB和和DIDI的内容、局域数据的指针、的内容、局域数据的指针、状态字、状态字、MCRMCR(主控继电器)寄存器和(主控继电器)寄存器和B B堆栈的指针。堆栈的指针。 用户程序使用的堆栈用户程序使用的堆栈 我吓了一跳,蝎子是多么丑恶

38、和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 当调用功能块(当调用功能块(FBFB)时,会有以下事件发生:)时,会有以下事件发生: 调用块的地址和返回位置存储在块堆栈中,调用块的临时调用块的地址和返回位置存储在块堆栈中,调用块的临时变量压入变量压入L L堆栈;堆栈;数据块数据块DBDB寄存器内容与寄存器内容与DIDI寄存器内容交换;寄存器内容交换;新的数据块地址装入新的数据块地址装入DIDI寄存器;寄存器;被调用块的实参装入被调用块的实参装入DBDB和和L L堆栈堆栈上部;上部;当功能块当功能块FBFB结束时,先前块的现场信息从

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

40、内)的变量声明表或背景数据块内为形参所设置初始数值。为形参所设置初始数值。调用功能块(调用功能块(FBFB)时的堆栈操作)时的堆栈操作 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 当调用功能(当调用功能(FCFC)时会有以下事件发生:)时会有以下事件发生: 功能(功能(FCFC)实参的指针存到调用块的)实参的指针存到调用块的L L堆栈;调用块的堆栈;调用块的地址和返回位置存储在块堆栈,调用块的局部数据压入地址和返回位置存储在块堆栈,调用块的局部数据压入L L堆堆栈;功能(栈;功能(FCFC)存储临时变

41、量的)存储临时变量的L L堆栈区被推入堆栈区被推入L L堆栈上部;堆栈上部;当被调用功能(当被调用功能(FCFC)结束时,先前块的信息存储在块堆栈中,)结束时,先前块的信息存储在块堆栈中,临时变量弹出临时变量弹出L L堆栈。堆栈。 因为功能(因为功能(FCFC)不用背景数据块,不能分配初始数值给)不用背景数据块,不能分配初始数值给功能(功能(FCFC)的局部数据,所以必须给功能()的局部数据,所以必须给功能(FCFC)提供实参。)提供实参。 调用功能(调用功能(FCFC)时的堆栈操作)时的堆栈操作 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,

42、证实我的猜测没有错:表里边有一个活的生物 以功能(以功能(FC)调用为例,)调用为例,L堆栈操作示意如图所示。堆栈操作示意如图所示。 调用功能(调用功能(FCFC)时的堆栈操作)时的堆栈操作 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 对逻辑块编程时必须编辑下列三个部分:对逻辑块编程时必须编辑下列三个部分: 变量声明变量声明:分别定义形参、静态变量和临时变量(:分别定义形参、静态变量和临时变量(FCFC块块中不包括静态变量);确定各变量的声明类型(中不包括静态变量);确定各变量的声明类型(Decl.D

43、ecl.)、)、变量名(变量名(NameName)和数据类型()和数据类型(Data TypeData Type),还要为变量设),还要为变量设置初始值(置初始值(Initial ValueInitial Value)。如果需要还可为变量注释)。如果需要还可为变量注释(CommentComment)。在增量编程模式下,)。在增量编程模式下,STEP 7STEP 7将自动产生局部将自动产生局部变量地址(变量地址(AddressAddress)。)。 代码段代码段:对将要由:对将要由PLCPLC进行处理的块代码进行编程。进行处理的块代码进行编程。 块属性块属性:块属性包含了其它附加的信息,例如由系

44、统输:块属性包含了其它附加的信息,例如由系统输入的时间标志或路径。此外,也可输入相关详细资料。入的时间标志或路径。此外,也可输入相关详细资料。 5.3.2 5.3.2 逻辑块(逻辑块(FCFC和和FBFB)的编程)的编程 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物1.1.临时变量的定义和使用临时变量的定义和使用我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2.2.查看局部数据堆栈的占用查看局部数据堆栈的占用 我吓

45、了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物3.3.查看块所需字节数查看块所需字节数 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物4.4.定义形式参数定义形式参数 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 编写逻辑块(编写逻辑块(FCFC和和FBFB)程序时,可以用以下两种方式使)程序时,可以用以下两种方式使用局部变量:用

46、局部变量: 使用变量名,此时变量名前加前缀使用变量名,此时变量名前加前缀“# #”,以区别于在,以区别于在符号表中定义的符号地址。增量方式下,前缀会自动产生。符号表中定义的符号地址。增量方式下,前缀会自动产生。 直接使用局部变量的地址,这种方式只对背景数据块直接使用局部变量的地址,这种方式只对背景数据块和和L L堆栈有效。堆栈有效。 在调用在调用FBFB块时,要说明其背景数据块。背景数据块应在块时,要说明其背景数据块。背景数据块应在调用前生成,其顺序格式与变量声明表必须保持一致。调用前生成,其顺序格式与变量声明表必须保持一致。5.5.编写控制程序编写控制程序我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物思考v1、S7 CPU中的程序结构?v2、数据块中的数据存储 形式?v3、逻辑块(FC和FB)的结构及编程 方式?我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物

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

最新文档


当前位置:首页 > 办公文档 > 教学/培训

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