




免费预览已结束,剩余128页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章S7系列结构化程序设计 重点与难点S7系列结构化程序的概念 功能块 功能 的编程及调用 数据块与数据结构 基本要求1 理解S7系列结构化程序的概念 2 掌握功能块 功能 的编程及调用 3 熟悉数据块与数据结构 4 熟练进行S7 300的结构化程序设计 本章内容1 S7系列结构化程序设计简介 2 功能块 功能 的编程及调用 3 数据块与数据结构 4 程序设计应用举例 5 S7 PLC模拟软件S7 PLCSIM 4 1结构化编程 STEP7编程语言有以下三种编程方法 1 线性化编程线性化编程就是将用户程序连续放置在一个指令块内 即一个简单的程序块内包含系统的所有指令 2 分部编程分部式编程是把一项控制任务分成若干个独立的块 每个块用于控制一套设备或一系列工作的逻辑指令 而这些块的运行靠组织块OB内指令来调用 3 结构化编程结构化程序把过程要求的类似或相关的功能进行分类 并试图提供可以用于几个任务的通用解决方案 为支持结构化程序设计 STEP7用户程序通常由组织块 OB 功能块 FB 或功能 FC 等三种类型的逻辑块和数据块 DB 组成 STEP7以文件块的形式管理用户编写的程序及程序运行所需的数据 组成结构化的用户程序 这样 PLC的程序组织明确 结构清晰 易于修改 由整个任务分解而产生的单个任务被分配给块 这些块中存储了用于解决这些单个问题所必需的算法和数据 结构化编程具有如下一些优点 1 各单个任务块的创建和测试可以相互独立地进行 2 通过使用参数 可将块设计得十分灵活 比如 可以创建一钻孔循环 其坐标和钻孔深度可以通过参数传递进来 3 块可以根据需要在不同的地方以不同的参数数据记录进行调用 也就是说 这些块能够被再利用 4 在预先设计的库中 能够提供用于特殊任务的 可重用 块 STEP7中的块从其功能 结构及其应用角度来看 是用户程序的一部分 根据内容 可以将STEP7块划分为以下两类 用户块 系统块 表4 1STEP7中的块 1 组织块 OB 图4 1S7 300的程序调用结构 2 功能块 FB 3 功能 FC 4 数据块 DB 5 系统功能 SFC 6 系统功能块 SFB 7 系统数据块 SDB 图4 2OB1调用过程示意图 图4 3STEP7调用过程示意图 4 2功能块 功能 的编程及调用 1 功能 FC 功能 FC 属于用户自己编程的块 功能是 无存储区 的逻辑块 FC的临时变量存储在局域数据堆栈中 当FC执行结束后 这些数据就丢失了 要将这些数据永久存储 功能也可以使用共享数据块 由于FC没有它自己的存储区 所以用户必须为它指定实际参数 不能够为一个FC的局域数据分配初始值 一个FC包含一个程序部分 当FC被不同的逻辑块调用时 这些程序总会被执行 可为以下目的使用功能 1 为调用块返回一个功能值 例如 数学功能 2 要执行一个工艺功能 例如 使用位逻辑操作的单控制功能 形式参数是 实际 参数的虚名称 当该功能调用时 用实际参数替代形式参数 对于FC来说 形式参数总是必须赋给实际参数 例如 将实参 I3 6 赋值给形参 Start 在FC中使用的参数类型中 输入 输出和输入 输出参数存做指针 指向调用FC的逻辑块的实际参数 2 功能块 FB 功能块 FB 属于用户自己编程的块 功能块是具有 存储功能 的块 用数据块作为功能块的存储器 背景数据块 传递给FB的参数和静态变量存在背景数据块中 临时变量存在本地数据堆栈中 当FB执行结束时 存在背景DB中的数据不会丢失 可是 当FB的执行结束时 存在本地数据堆栈中的数据将丢失 FB中所含的程序总是当不同的逻辑块调用该FB时执行 功能块使得对于经常使用的功能 复杂功能的编程变得容易 每次功能块的调用都将赋给一个背景数据块 用于传递参数 在STEP7中 对于FB通常不是必须将实际参数赋值给形参 不过下列情况除外 对以下形参必须赋实参 1 对于复杂数据类型 2 对于所有的参数类型 3 FC和FB输出参数的主要区别在功能块中 当访问参数时使用背景数据块中的实际参数的拷贝参数 当调用FB时 如果没有传送输入参数或没有写输出参数 则背景数据块中将始终使用以前的值 FC没有存储器 与FB对比 不可以选择对FC的形参赋值 当数据块的一个地址或调用块的局部变量作为实际参数时 则将一个复制的实际参数存储到调用块的局部数据区 用它来传送数据 注意 在这种情况下 如果没有向FC的输出参数写入一个数据 则将输出一个随机值 由于作为复制数据所保留的调用块的局部数据区没有赋值到输出参数 所有该区没有写入任何数据 因此将输出存储在该区域的随机值 因为局部数据不能自动地设置为0 功能块 FB 为用户程序块 代表具有存储器的逻辑块 可以由OB FB和FC调用 功能块可以根据需要具有足够多的输入参数 输出参数和输入 输出参数 以及静态和临时变量 与FC不同的是 FB是背景化了的块 也就是说 FB可以由其私有数据区域的数据进行赋值 在其私有数据区域中 FB可以 记住 调用时的过程状态 最简单的形式为 该专用数据区便是FB的自有DB 也就是所谓的背景DB 4 2 1功能块组成功能块由两个主要部分组成 一部分是每个功能块的变量声明表 该表声明此块的局部数据 另一部分是逻辑指令组成的程序 程序要用到变量声明表中给出的局部数据 当调用功能块时 需要提供块执行时要用到的数据或变量 也就是将外部数据传递给功能块 这称为参数传递 参数传递的方式使得功能块具有通用性 它可被其他的块调用 以完成多个类似的控制任务 一个程序由许多部分 子程序 组成 STEP7将这些部分称为逻辑块 并允许块间相互调用 调用过程如图4 4所示 图4 4功能块的调用过程 4 2 2功能块局部变量声明通常 对功能块编程分两步进行 第一步是定义局部变量 填写局部变量表 第二步是编写要执行的程序 并在编程过程中使用定义了的局部变量 数据 定义局部变量包括以下工作内容 1 分别定义形参 静态变量和临时变量 FC块中不包括静态变量 2 确定各变量的声明类型 Decl 变量名 Name 和数据类型 DataType 还要为变量设置初始值 InitialValue 尽管对有些变量初始值不一定有意义 如果需要还可为变量注释 Comment 在增量编程模式下 STEP7将自动产生局部变量地址 Address 写功能块程序时 可以用以下两种方式使用局部变量 1 使用变量名 此时变量名前加前缀 以区别于在符号表中定义的符号地址 增量方式下 前缀会自动产生 2 直接使用局部变量的地址 这种方式只对背景数据块和L堆栈有效 每个逻辑块前部都有一个变量声明表 在变量声明表中定义逻辑块用到的局部数据 局部数据类型如表4 2所示 表4 2局部数据类型 形参 静态变量 临时变量 表4 3变量声明表 表4 4参数类型变量 4 2 3功能块的调用及内存分配CPU提供块堆栈 B堆栈 来存储与处理被中断块的有关信息 当发生块调用或有来自更高优先级的中断时 就有相关的块信息存储在B堆栈里 并影响部分内存和寄存器 图4 5所示为调用块时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通道模拟量模块采集信号 当模块数量较多时 读模拟输入量就很繁琐 下面给出一个通用程序FC100 利用它可以方便地把模拟量读回并顺序存入数据块 因为模入模块的起始地址 通道数 存储数据块号及数据在数据块中的存储起始位置均是可变的 所以可在调用FC100时灵活确定 1 FC100的变量声明表 如表4 6所示 表4 6FC100的变量声明表 2 语句表程序 3 应用举例 4 3数据块与数据结构 除逻辑块外 用户程序还包括数据 这些数据存储过程状态和信号的信息 所存储的数据在用户程序中进行处理 数据块用来存储用户程序的逻辑块的值 与暂时数据不同 当逻辑块执行结束时或数据块关闭时 数据块中的数据不被覆盖 数据块用来保存用户数据 和逻辑块一样 数据块占用用户存储器的空间 数据块包含用户程序中使用的变量数据 如 数值 用户程序以位 字节 字或双字操作访问数据块中的数据 可以使用符号或绝对地址 图4 7数据块 数据块中的数据类型如下 1 基本数据类型 2 复合数据类型 3 数组 4 结构 5 用户定义数据类型 表4 7参数类型变量 表4 8FC100的变量声明表 续表 表4 9FC100的变量声明表 4 3 1数据块数据块定义在S7CPU存储器中 用户可在存储器中建立一个或多个数据块 每个数据块可大可小 但CPU对数据块数量及数据总量有限制 如对于CPU314 用作数据块的存储器最多为8KB 8192Byte 用户定义的数据总量不能超出这个限制 对数据块必须遵循先定义后使用的原则 否则 将造成系统错误 1 定义数据块在编程阶段和运行程序中都能定义数据块 大多数数据块是在编程阶段用STEP7开发软件包定义的 定义内容包括数据块号及块中的变量 包括变量符号名 数据类型以及初始值等 定义完成后 数据块中变量的顺序及类型决定了数据块的数据结构 变量的数量决定了数据块的大小 数据块在使用前 必须作为用户程序的一部分下载到CPU中 2 访问数据块访问时需要明确数据块号和数据块中的数据类型与位置 根据明确数据块号的不同方法 可以用多种方法访问数据块中的数据 一种是直接在访问指令中写明数据块号 例4 1 3 背景数据块和共享数据块背景数据块和共享数据块有不同的用途 任何FB FC或OB均可读写存放在共享数据块中的数据 背景数据块是FB运行时的工作存储区 它存放FB的部分运行变量 调用FB时 必须指定一个相关的背景数据块 作为规则 只有FB才能访问存放在背景数据块中的数据 如果CPU中没有足够的内部存储位来保存所有数据 可将一些指定的数据存储到一个共享数据块中 存储在共享数据块中的数据可以被其他的任意一个块使用 而一个背景数据块被指定给一个特定的功能块 它的数据只在这个功能块中有效 与背景数据块相反 在符号表中共享数据块的数据类型总是绝对地址 对于背景数据块 相应的功能块总是指定的数据类型 下面介绍几个数据块指令 1 打开数据块指令格式 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说明 将instance数据块的长度装到累加器1 6 装instance数据块的数目到累加器1指令格式 LDINO说明 将instance数据块的数目装到累加器1 4 3 2数据块的数据结构STEP7数据块中的数据结构形式比较丰富 数据块中的数据既可以是基本数据类型 又可以是复式数据类型 STEP7允许将基本或复式组合成 用户 自己定义的数据类型 这种类型称为用户数据类型 UDT 用户数据类型必须首先单独建立 并存放在称为UDT的特殊数据块中 建立用户数据类型 是为了将UDT作为一种数据类型使用 以方便定义多个结构相同的构造变量 STEP7数据类型如表4 10所示 表4 10STEP7数据类型 数据类型决定数据的属性 1 基本数据类型 2 复杂数据类型 3 用户定义数据类型 表4 11数据类型变量 表4 12复杂数据类型变量 表4 13复式数据类型 4 4程序设计应用举例 STEP7不仅从不同层次充分支持合理的程序结构设计 而且也简化了结构设计的复杂程度 一个复杂的自动化过程可以被分解并定义为一个或多个项目 PROJECT 图4 8显示了一个样本过程 它分成4个不同的项目 项目间或项目中的各CPU程序之间 能以某种方式连网 实现信息共享 如在S7协议支持下 用MPI网以全局数据通信的方式可方便地建立起联系 实现一个项目中各CPU共享信息 图4 8样本过程的项目划分 典型的情况是一个过程控制任务只有一个项目 该项目下也仅有一个CPU程序 每一个CPU程序又可依据时间特性或事件触发特性的差异分类编入不同的组织块 OB 中 例如 对程序执行中产生的同步错误的响应处理程序编入组织块OB121或OB122中 例4 4 工业搅拌过程示意图如图4 9所示 4 5S7 PLC模拟软件S7 PLCSIM PLC的用户程序设计好后 要用实际的PLC硬件来调试 但以下情况则需要对程序进行仿真调试 程序设计好后 PLC硬件尚未购回 控制设备不在本地 设计者需对程序进行修改和调试 在实际系统中进行某些调试有一定风险 为了解决这些问题 一些PLC生产厂家提供了可代替PLC硬件调试的仿真软件 本文主要介绍西门子公司的S7 PLCSIM仿真软件 1 S7 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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中频炉生产线智能制造解决方案供应合同
- 2025年跨区域铁路货运保险合同中货物损失赔偿细则
- 2025年绿色物流配送中心员工聘用与环保供应链协同管理合同
- 2025年高端家电ODM合作开发与生产管理合同
- 2025年度农村自来水厂生活设施建设合作协议
- 2025年度新型医疗器械全国代理权授权与销售服务合同
- 2025年度离婚子女共同抚养权与监护责任分担协议(定制版)
- 2025年金融科技企业执行总经理职务合同书
- 2025年度高端商场珠宝区品牌合作门头广告设计执行合同
- 2025年新型餐饮连锁品牌网红店铺租赁合同书
- 《中国动漫发展史》课件
- 学校安保合同范本
- 六年级阅读题打印20篇
- 《液压传动》教案(劳动版)
- GB/T 32124-2024磷石膏的处理处置规范
- 集成光电子器件及设计-4集成光有源器件
- 2025届浙江省新英语高三第一学期期末教学质量检测试题含解析
- TCECA-G 0304-2024 数字化碳管理平台 总体框架
- DL∕T 976-2017 带电作业工具、装置和设备预防性试验规程
- 近几年大学英语四级词汇表(完整珍藏版)
- 儿科护理学教学案
评论
0/150
提交评论