版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、,第4章S7系列结构化程序设计,重点与难点S7系列结构化程序的概念、功能块(功能)的编程及调用、数据块与数据结构。,基本要求1理解S7系列结构化程序的概念;2掌握功能块(功能)的编程及调用;3熟悉数据块与数据结构;4熟练进行S7-300的结构化程序设计。,本章内容1S7系列结构化程序设计简介;2功能块(功能)的编程及调用;3数据块与数据结构;4程序设计应用举例;5S7-PLC模拟软件S7-PLCSIM。,4.1结构化编程,STEP7编程语言有以下三种编程方法。,1线性化编程线性化编程就是将用户程序连续放置在一个指令块内,即一个简单的程序块内包含系统的所有指令。,2分部编程分部式编程是把一项控制
2、任务分成若干个独立的块,每个块用于控制一套设备或一系列工作的逻辑指令,而这些块的运行靠组织块OB内指令来调用。,3结构化编程结构化程序把过程要求的类似或相关的功能进行分类,并试图提供可以用于几个任务的通用解决方案。,为支持结构化程序设计,STEP7用户程序通常由组织块(OB)、功能块(FB)或功能(FC)等三种类型的逻辑块和数据块(DB)组成。,STEP7以文件块的形式管理用户编写的程序及程序运行所需的数据,组成结构化的用户程序。这样,PLC的程序组织明确,结构清晰,易于修改。,由整个任务分解而产生的单个任务被分配给块,这些块中存储了用于解决这些单个问题所必需的算法和数据。,结构化编程具有如下
3、一些优点。(1)各单个任务块的创建和测试可以相互独立地进行。,(2)通过使用参数,可将块设计得十分灵活。比如,可以创建一钻孔循环,其坐标和钻孔深度可以通过参数传递进来。,(3)块可以根据需要在不同的地方以不同的参数数据记录进行调用,也就是说,这些块能够被再利用。(4)在预先设计的库中,能够提供用于特殊任务的“可重用”块。,STEP7中的块从其功能、结构及其应用角度来看,是用户程序的一部分。根据内容,可以将STEP7块划分为以下两类。,用户块系统块,表4-1STEP7中的块,(1)组织块(OB),图4-1S7-300的程序调用结构,(2)功能块(FB)(3)功能(FC)(4)数据块(DB),(5
4、)系统功能(SFC)(6)系统功能块(SFB)(7)系统数据块(SDB),图4-2OB1调用过程示意图,图4-3STEP7调用过程示意图,4.2功能块(功能)的编程及调用,1功能(FC)功能(FC)属于用户自己编程的块。功能是“无存储区”的逻辑块。FC的临时变量存储在局域数据堆栈中。,当FC执行结束后,这些数据就丢失了。要将这些数据永久存储,功能也可以使用共享数据块。由于FC没有它自己的存储区,所以用户必须为它指定实际参数。不能够为一个FC的局域数据分配初始值。,一个FC包含一个程序部分,当FC被不同的逻辑块调用时,这些程序总会被执行。可为以下目的使用功能。,(1)为调用块返回一个功能值(例如
5、:数学功能)。(2)要执行一个工艺功能(例如:使用位逻辑操作的单控制功能)。,形式参数是“实际”参数的虚名称。当该功能调用时,用实际参数替代形式参数。对于FC来说,形式参数总是必须赋给实际参数(例如:将实参“I3.6”赋值给形参“Start”)。,在FC中使用的参数类型中,输入、输出和输入/输出参数存做指针,指向调用FC的逻辑块的实际参数。,2功能块(FB)功能块(FB)属于用户自己编程的块。功能块是具有“存储功能”的块。用数据块作为功能块的存储器(背景数据块)。,传递给FB的参数和静态变量存在背景数据块中。临时变量存在本地数据堆栈中。当FB执行结束时,存在背景DB中的数据不会丢失。,可是,当
6、FB的执行结束时、存在本地数据堆栈中的数据将丢失。FB中所含的程序总是当不同的逻辑块调用该FB时执行。功能块使得对于经常使用的功能、复杂功能的编程变得容易。,每次功能块的调用都将赋给一个背景数据块,用于传递参数。,在STEP7中,对于FB通常不是必须将实际参数赋值给形参。不过下列情况除外,对以下形参必须赋实参。,(1)对于复杂数据类型(2)对于所有的参数类型,3FC和FB输出参数的主要区别在功能块中,当访问参数时使用背景数据块中的实际参数的拷贝参数。当调用FB时,如果没有传送输入参数或没有写输出参数,则背景数据块中将始终使用以前的值。,FC没有存储器,与FB对比,不可以选择对FC的形参赋值。当
7、数据块的一个地址或调用块的局部变量作为实际参数时,则将一个复制的实际参数存储到调用块的局部数据区,用它来传送数据。,注意,在这种情况下,如果没有向FC的输出参数写入一个数据,则将输出一个随机值。,由于作为复制数据所保留的调用块的局部数据区没有赋值到输出参数,所有该区没有写入任何数据。因此将输出存储在该区域的随机值,因为局部数据不能自动地设置为0。,功能块(FB)为用户程序块,代表具有存储器的逻辑块。可以由OB,FB和FC调用。功能块可以根据需要具有足够多的输入参数、输出参数和输入/输出参数,以及静态和临时变量。,与FC不同的是,FB是背景化了的块,也就是说,FB可以由其私有数据区域的数据进行赋
8、值,在其私有数据区域中,FB可以“记住”调用时的过程状态。最简单的形式为:该专用数据区便是FB的自有DB,也就是所谓的背景DB。,4.2.1功能块组成功能块由两个主要部分组成:一部分是每个功能块的变量声明表,该表声明此块的局部数据;另一部分是逻辑指令组成的程序,程序要用到变量声明表中给出的局部数据。,当调用功能块时,需要提供块执行时要用到的数据或变量,也就是将外部数据传递给功能块,这称为参数传递。,参数传递的方式使得功能块具有通用性,它可被其他的块调用,以完成多个类似的控制任务。,一个程序由许多部分(子程序)组成,STEP7将这些部分称为逻辑块,并允许块间相互调用。调用过程如图4-4所示。,图
9、4-4功能块的调用过程,4.2.2功能块局部变量声明通常,对功能块编程分两步进行:第一步是定义局部变量(填写局部变量表);第二步是编写要执行的程序,并在编程过程中使用定义了的局部变量(数据)。,定义局部变量包括以下工作内容。(1)分别定义形参、静态变量和临时变量(FC块中不包括静态变量)。,(2)确定各变量的声明类型(Decl.)、变量名(Name)和数据类型(DataType),还要为变量设置初始值(InitialValue)(尽管对有些变量初始值不一定有意义)。如果需要还可为变量注释(Comment)。在增量编程模式下,STEP7将自动产生局部变量地址(Address)。,写功能块程序时,
10、可以用以下两种方式使用局部变量。,(1)使用变量名,此时变量名前加前缀“#”,以区别于在符号表中定义的符号地址。增量方式下,前缀会自动产生。(2)直接使用局部变量的地址,这种方式只对背景数据块和L堆栈有效。,每个逻辑块前部都有一个变量声明表,在变量声明表中定义逻辑块用到的局部数据。局部数据类型如表4-2所示。,表4-2局部数据类型,形参静态变量临时变量,表4-3变量声明表,表4-4参数类型变量,4.2.3功能块的调用及内存分配CPU提供块堆栈(B堆栈)来存储与处理被中断块的有关信息。,当发生块调用或有来自更高优先级的中断时,就有相关的块信息存储在B堆栈里,并影响部分内存和寄存器。图4-5所示为
11、调用块时B堆栈与L堆栈的变化。图4-6所示为关于STEP7的块调用情况。,图4-5堆栈与L堆栈,图4-6调用指令对CPU内存的影响,(1)B堆栈与L堆栈(2)调用功能块FB(3)调用功能(FC),4.2.4功能块(功能)的编程举例1二分频器假设FC10是二分频器产生程序,功能是对不同的输入位进行二分频处理。,以下给出了FC10的变量声明表和语句表程序。在程序中使用了跳变沿检测指令。(1)FC10的变量声明表,表4-5FC10的变量声明表,(2)语句表程序,2读模拟输入量程序一些S7-300的应用系统中,使用8通道模拟量模块采集信号,当模块数量较多时,读模拟输入量就很繁琐。,下面给出一个通用程序
12、FC100,利用它可以方便地把模拟量读回并顺序存入数据块,因为模入模块的起始地址、通道数、存储数据块号及数据在数据块中的存储起始位置均是可变的,所以可在调用FC100时灵活确定。,(1)FC100的变量声明表(如表4-6所示),表4-6FC100的变量声明表,(2)语句表程序,3应用举例,4.3数据块与数据结构,除逻辑块外,用户程序还包括数据,这些数据存储过程状态和信号的信息,所存储的数据在用户程序中进行处理。数据块用来存储用户程序的逻辑块的值。,与暂时数据不同,当逻辑块执行结束时或数据块关闭时,数据块中的数据不被覆盖。,数据块用来保存用户数据。和逻辑块一样,数据块占用用户存储器的空间。数据块
13、包含用户程序中使用的变量数据(如:数值)。用户程序以位、字节、字或双字操作访问数据块中的数据,可以使用符号或绝对地址。,图4-7数据块,数据块中的数据类型如下。(1)基本数据类型(2)复合数据类型(3)数组(4)结构(5)用户定义数据类型,表4-7参数类型变量,表4-8FC100的变量声明表,续表,表4-9FC100的变量声明表,4.3.1数据块数据块定义在S7CPU存储器中,用户可在存储器中建立一个或多个数据块。,每个数据块可大可小,但CPU对数据块数量及数据总量有限制,如对于CPU314,用作数据块的存储器最多为8KB(8192Byte),用户定义的数据总量不能超出这个限制。对数据块必须遵
14、循先定义后使用的原则,否则,将造成系统错误。,1定义数据块在编程阶段和运行程序中都能定义数据块。大多数数据块是在编程阶段用STEP7开发软件包定义的。,定义内容包括数据块号及块中的变量(包括变量符号名、数据类型以及初始值等),定义完成后,数据块中变量的顺序及类型决定了数据块的数据结构,变量的数量决定了数据块的大小。数据块在使用前,必须作为用户程序的一部分下载到CPU中。,2访问数据块访问时需要明确数据块号和数据块中的数据类型与位置。根据明确数据块号的不同方法,可以用多种方法访问数据块中的数据。,一种是直接在访问指令中写明数据块号。【例4-1】,3背景数据块和共享数据块背景数据块和共享数据块有不
15、同的用途。任何FB、FC或OB均可读写存放在共享数据块中的数据。背景数据块是FB运行时的工作存储区,它存放FB的部分运行变量。,调用FB时,必须指定一个相关的背景数据块。作为规则,只有FB才能访问存放在背景数据块中的数据。如果CPU中没有足够的内部存储位来保存所有数据,可将一些指定的数据存储到一个共享数据块中。,存储在共享数据块中的数据可以被其他的任意一个块使用。而一个背景数据块被指定给一个特定的功能块,它的数据只在这个功能块中有效。,与背景数据块相反,在符号表中共享数据块的数据类型总是绝对地址。对于背景数据块,相应的功能块总是指定的数据类型。,下面介绍几个数据块指令。(1)打开数据块指令格式
16、:OPN说明:打开一个数据块作为shared数据块(DB)或者作为instance数据块(DI)。可以同时打开一个shared数据块和一个instance数据块。【例4-3】,(2)交换shared数据块和instance数据块指令格式:CDB说明:交换shared数据块和instance数据块。,(3)装shared数据块的长度到累加器1指令格式:LDBLG说明:将shared数据块的长度装到累加器1。,(4)装shared数据块的数目到累加器1指令格式:LDBNO说明:将shared数据块的数目装到累加器1。,(5)装instance数据块的长度到累加器1指令格式:LDILG说明:将ins
17、tance数据块的长度装到累加器1。,(6)装instance数据块的数目到累加器1指令格式:LDINO说明:将instance数据块的数目装到累加器1。,4.3.2数据块的数据结构STEP7数据块中的数据结构形式比较丰富,数据块中的数据既可以是基本数据类型,又可以是复式数据类型。,STEP7允许将基本或复式组合成“用户”自己定义的数据类型,这种类型称为用户数据类型(UDT)。,用户数据类型必须首先单独建立,并存放在称为UDT的特殊数据块中。建立用户数据类型,是为了将UDT作为一种数据类型使用,以方便定义多个结构相同的构造变量。STEP7数据类型如表4-10所示。,表4-10STEP7数据类型
18、,数据类型决定数据的属性。(1)基本数据类型(2)复杂数据类型(3)用户定义数据类型,表4-11数据类型变量,表4-12复杂数据类型变量,表4-13复式数据类型,4.4程序设计应用举例,STEP7不仅从不同层次充分支持合理的程序结构设计,而且也简化了结构设计的复杂程度。,一个复杂的自动化过程可以被分解并定义为一个或多个项目(PROJECT),图4-8显示了一个样本过程,它分成4个不同的项目。,项目间或项目中的各CPU程序之间,能以某种方式连网,实现信息共享。如在S7协议支持下,用MPI网以全局数据通信的方式可方便地建立起联系,实现一个项目中各CPU共享信息。,图4-8样本过程的项目划分,典型的
19、情况是一个过程控制任务只有一个项目,该项目下也仅有一个CPU程序,每一个CPU程序又可依据时间特性或事件触发特性的差异分类编入不同的组织块(OB)中。,例如,对程序执行中产生的同步错误的响应处理程序编入组织块OB121或OB122中。【例4-4】工业搅拌过程示意图如图4-9所示。,4.5S7-PLC模拟软件S7-PLCSIM,PLC的用户程序设计好后,要用实际的PLC硬件来调试。,但以下情况则需要对程序进行仿真调试:程序设计好后,PLC硬件尚未购回;控制设备不在本地,设计者需对程序进行修改和调试;在实际系统中进行某些调试有一定风险。,为了解决这些问题,一些PLC生产厂家提供了可代替PLC硬件调试的仿真软件,本文主要介绍西门子公司的S7-PLCSIM仿真软件。,1S7-PLCSIM的主要功能(1)可对S7-300和S7-400PLC的用户程序进行离线仿真与调试,可访问模拟PLC的I/O存储器、累加器和寄存器。,(2)可实现定时器和计数器的监视和修改,通过程序使定时器自动运行或手动复位。,(3)仿真软件还可模拟对位存储器、外围输入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中小企业数字化转型项目分析方案
- 小学音乐教资面试全真模拟题库及答案
- 统编版语文八年级上册第五单元练习题(含答案)
- T-ZZB 3561-2023 家用和类似用途的不带和带过电流保护的F型和B型剩余电流动作断路器
- 吉林榆树市部分学校2026-2027学年度上学期收心考试八年级生物(含解析)
- 第3课 太平天国运动 课件
- 智能土壤检测新方案
- 混凝土路面施工安全技术交底
- 2026年金融学考试题目及答案
- 2026公共营养师试卷附答案
- 2025贵州中考文综试卷及答案
- 米厂加工建筑施工方案
- 钢结构梁制作工艺流程说明
- 2025贵州铁路投资集团有限责任公司招聘情况笔试备考试题及答案
- 宗教事务条例解读课件
- 陆上石油天然气开采(主要负责人)新版题库及答案
- 安全生产gmp培训试题及答案
- 国际贸易出口业务成交证明书(8篇)
- T/CSMT-YB 008-2024智能功率变送器校准规范
- 2025陕西农业发展集团招聘200人笔试参考题库附带答案详解
- 2025年全国硕士研究生考试(心理学312)真题及答案
评论
0/150
提交评论