




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
监督控制与数据采集技术 华东理工大学自动化系王华忠 hzwang Ch6工业控制编程语言标准IEC61131 3 一 IEC61131 3标准的产生与特点 1 传统PLC编程语言的不足 梯形图语言规范不一致程序可复用性差缺乏足够的程序封装能力不支持数据结构程序执行具有局限性难以实现选择或并行等复杂顺控操作传统的梯形图编程在算术运算处理 字符串或文字处理等方面均不能提供强有力的支持 2 IEC61131 3标准的产生 1992年以后 IEC陆续颁布施行可编程序控制器国际标准IEC61131的各个部分 已正式颁布的有 IEC61131 1通用信息 2003年5月出版第二版 IEC61131 2装置要求与测试 2003年2月出版第二版 IEC61131 3编程语言 2003年1月出版第二版 IEC61131 4用户导则 1995 IEC61131 5通信服务规范2000 IEC61131 7模糊控制编程软件工具实施 2000 IEC61131 8IEC61131 3语言的应用和实现导则 2001 中国的工业过程测量和控制标准化委员会按与IEC国际标准等效的原则 组织翻译出版工作 1995年12月29日颁布了PLC的国家标准GB T15969 1 15969 2 15969 3 15969 4 涉及IEC61131的第一 第二 第三和第四部分 GB T15969 5 通信服务规范 在2003年5月颁布出版 GB T15969 8 IEC61131 3语言的实现导则 已于2007年8月实施 IEC61131 3是当今世界第一个为工业自动化控制系统的软件设计提供标准化编程语言的国际标准 此前 国际上没有出现过为制定通用的控制语言而开展的标准化活动 这显然是注意到由于DCS等以数字技术为基础的控制装置在发展进程中过于专有化 给用户带来的大量不便 这一标准为可编程控制器软件技术的发展 乃至整个工业控制软件技术的发展 起了举足轻重的推动作用 可以说 没有编程语言的标准化 便没有今天PLC走向开放式系统的坚实基础 这个标准将现代软件的概念和现代软件工程的机制与传统的PLC编程语言成功地结合 又对当代种类繁多的工业控制器中的编程概念及语言进行了标准化 3 特点 IEC61131 3允许在同一个PLC中使用多种编程语言 允许程序开发人员对每一个特定的任务选择最合适的编程语言 还允许在同一个控制程序中不同的软件模块用不同的编程语言编制 以充分发挥不同编程语言的应用特点 标准中的多语言包容性很好地正视了PLC发展历史中形成的编程语言多样化的现实 为PLC软件技术的进一步发展提供了足够的技术空间和自由度 4 优势 采用现代软件模块化原则 主要内容包括 编程语言支持模块化 将常用的程序功能划分为若干单元 并加以封装 构成编程的基础 模块化时 只设置必要的 尽可能少的输入和输出参数 尽量减少交互作用和内部数据交换 模块化接口之间的交互作用均采用显性定义 将信息隐藏于模块内 对使用者来讲只需了解该模块的外部特性 即功能 输入和输出参数 而无需了解模块内算法的具体实现方法 IEC61131 3支持自顶而下 TopDown 和自底而上 BottomUp 的程序开发方法 自顶而下的开发过程是用户首先进行系统总体设计 将控制任务划分为若干个模块 然后定义变量和进行模块设计 编写各个模块的程序 自底而上的开发过程是用户先从底部开始编程 例如先导出函数和功能块 再按照控制要求编制程序 无论选择何种开发方法 IEC61131 3所创建的开发环境均会在整个编程过程中给予强有力的支持 IEC61131 3所规范的编程系统独立于任一个具体的目标系统 它可以最大限度地在不同的PLC目标系统中运行 这样不仅创造了一种具有良好开放性的氛围 奠定了PLC编程开放性的基础 而且可以有效规避标准与具体目标系统关联而引起的利益纠葛 体现标准的公正性 将现代软件概念浓缩 并加以运用 例如 数据使用DATA TYPE声明机制 功能 函数 使用FUNCTION声明机制 数据和功能的组合使用FUNCTION BLOCK声明机制 完善的数据类型定义和运算限制 软件工程师很早就认识到许多编程的错误往往发生在程序的不同部分 其数据的表达和处理不同 IEC61131 3从源头上注意防止这类低级的错误 虽然采用的方法可能导致效率降低一点 但换来的价值却是程序的可靠性 可读性和可维护性 对程序执行具有完全的控制能力 传统的PLC只能按扫描方式顺序执行程序 对程序执行的其他要求 如由事件驱动某一段程序的执行 程序的并行处理等均无能为力 IEC61131 3允许程序的不同部分 在不同的条件 包括时间条件 下 以不同的比率并行执行 对程序执行具有完全的控制能力 传统的PLC只能按扫描方式顺序执行程序 对程序执行的其他要求 如由事件驱动某一段程序的执行 程序的并行处理等均无能为力 IEC61131 3允许程序的不同部分 在不同的条件 包括时间条件 下 以不同的比率并行执行 结构化编程 对于循环执行的程序 中断执行的程序 初始化执行的程序等可以分开设计 此外 循环执行的程序还可以根据执行的周期分开设计 二 IEC61131 3标准的主要内容 1 概述 IEC61131 3编程语言标准分为两部分 公用元素 编程语言公用元素部分给出软件模型和编程模型 引入配置 资源 任务和存取路径等基本概念 说明各种编程语言中使用的字符集 标识符 关键字等 定义数据的外部表示 数据类型 变量和程序组织单元等 定义顺序功能表图的基本元素等 编程语言部分定义了两大类编程语言 文本化编程语言和图形化编程语言 图6 1IEC61131 3标准的层次与结构 语言元素 表6 1语言元素示例 关键字关键字 keyword 是语言元素特征化的词法单元 关键字是标准标志符 在IEC61131 3标准中 关键字是结构声明和语句的固定符号表示法 其拼写和含义均由IEC61131 3标准明确规定 因此 关键字不能用于用户定义的变量或其他名称 这一点与高级编程语言是一致的 关键字不区分字母的大 小写 例如 关键字 FOR 和 for 是等价的 为了更好地进行区别 关键字通常以大写字母表示 表6 3所示为关键字及其含义 关键字主要包括 基本数据类型的名称 标准功能名 标准功能块名 标准功能的输入参数名 标准功能块的输入和输出参数名 图形编程语言中的EN和ENO变量 指令表语言中的运算符 结构化文本语言中的语言元素 顺序功能图语言中的语言元素 直接量直接量用来表示常数变量的数值 其格式取决于变量的数据类型 直接量有3种基本类型 数字直接量字符串直接量时间直接量标识符标识符 identifier 是字母 数字和下划线字符的组合 其开始必须是字母或下划线字符 并被命名为语言元素 LanguageElement 标识符对字母的大 小写不敏感 所以标识符ABCD和abcD具有相同的意义 标识符用于表示变量 标号 以及功能 功能块 程序组织单元等名称 2 数据类型 IEC61131 3对数据类型进行了定义 从而防止对数据类型的不同设置而发生出错 数据类型的标准化是编程语言开放性的重要标准 在IEC61131 3中定义一般数据类型和非一般数据类型两类 非一般数据类型又可分为基本数据类型和衍生数据类型 基本数据类型有21种 数据类型与它在数据存储器中所占用的数据宽度有关 一般数据类型的数据用前缀 ANY 标识 用于标准函数和标准功能块的输入和输出连接 它采用分级结构 衍生数据类型是由用户定义的数据类型 它建立在基本数据类型的基础上 也称为导出数据类型 这类数据类型所定义的变量是全局变量 它可用与基本数据类型所使用的相同方法对变量进行声明 在IEC61131 3标准中 变量分为单元素变量和多元素变量 3 变量 与数据的外部表示相反 变量提供能够改变其内容的数据对象的识别方法 例如 可改变与PLC输入 输出或存储器有关的数据 变量可以被声明为基本数据类型 一般数据类型和导出数据类型 变量的类型和属性 变量的附加属性 三 程序组织单元 1 程序组织单元及其组成 图6 2程序组织单元 表6 2IEC61131 3标准的3中POU及其含义 图6 3POU元素构成 2 功能 功能是一种可以赋予参数 但没有静态变量的程序组织单元 有些书籍或文献也称功能为函数 当用相同的输入参数调用某一功能时 该功能总能够生成相同的结果作为其功能值 功能有多个输入变量 没有输出变量 但有一个功能值作为该功能的返回值 功能由功能名和一个表达式组成 功能分为标准功能和用户定义功能 衍生功能 IEC61131 3标准定义了8类标准功能 3 功能块 功能块是在执行时能够产生一个或多个值的程序组织单元 功能块实例化是编程人员在功能块说明部分用指定功能块名和相应的功能块类型来建立功能块的过程 每个功能块实例有它的功能块名 内部变量 输出变量及可能的输入变量数据结构 该数据结构的输出变量和必要的内部变量的值能够从这次执行保护到下一次执行 功能块实例的外部只有输入和输出变量是可存取的 功能块内部变量对用户来说是隐藏的 图6 5功能块的图形表示 功能块包括标准功能块 衍生功能块和用户定义功能块 衍生功能块是利用标准功能块创造的新功能块 IEC61131 3允许用户利用已有的功能块和功能生成新的功能块 任意功能块均可采用便于管理且功能更简单的功能和 或功能块进行编程 IEC61131 3中定义了5种标准功能块 功能块段的文字形式可以表示为 FUNCTION BLOCK功能块名功能块声明功能块体END FUNCTION BLOCK 功能和功能块的主要区别在于 相同输入参数调用时 功能总是产生相同的结果 功能值 功能没有 记忆 特性 程序代表PLC用户的最高层 能存取PLC的I O口 并能使它们能为其它程序组织单元所存取 IEC61131 3标准使用变量以存储信息 但是 它们的存储位置不再需要由用户自行定义 而是由编程系统自行进行管理 每个变量具有固定的数据类型 IEC61131 3规定若干数据类型 这些数据类型在位数量和符号的使用方面有所不同 4 程序 程序是程序组织单元之一 它由功能和功能块组成 PROGRAM类型的程序组织单元称为主程序 在一个多CPU的PLC控制系统中 能同时执行多个主程序 这一点体现了程序与功能块的不同 程序以PROGRAM关键字开始 随后是程序名 程序声明和程序体 最后以END PROGRAM关键字结束 与功能或功能块的声明类似 程序声明包括在整个程序声明中所使用变量的声明 四 软件 通信和功能模型 1 软件模型 图6 6IEC61131 3标准的软件模型 软件模型特点 分层结构程序和功能块 组态元素 即配置 资源和任务 全局变量 存取路径和实例特定的初始化从理论上描述了将一个复杂程序如何分解为若干小的不同的可管理部分 并在各分解部分之间有清晰和规范的接口方法 描述一台可编程控制器如何实现多个独立程序的同时装载和运行 如何实现对程序执行的完全控制 主要内容 1 配置 Configuration 语言元素 结构元素位于软件模型的最上层 等同于一个PLC软件或应用程序多台PLC构成的一个控制系统中 每一台PLC的应用程序都是一个独立的配置配置将系统内所有资源结合成组 为资源提供数据交换的手段一个配置可有多个资源 配置中定义该配置的全局变量 资源 存取路径等 它反映PLC的硬件物理结构 为程序与物理I O通道之间提供接口 2 资源 Resource 语言元素 结构元素位于软件模型的第二层 等同于一个CPU为程序和PLC物理输入输出通道提供接口程序只有装入资源才能执行一个资源具有 信号处理功能 人机接口功能 和 传感器和执行器接口功能 资源声明在该资源内的全局变量 任务和程序声明等 3 任务 Task 语言元素 结构元素位于软件模型第三层 规定程序组织单元在运行期的特性控制一系列程序组织单元周期地执行 或者根据一个特定的事件触发来执行任务有任务名和三个输入参数 SIGNAL 事件触发输入端 上升沿触发与任务相关联的程序组织单元执行一次 INTERVAL 周期执行时的时间间隔 该任务的有关程序组织单元按该时间间隔周期执行 PRIORITY 对任务设置的优先级 0表示最高优先级 无优先级执行优先级最高的POU先执行同等优先级的根据等待时间最长的POU先执行优先级执行较低优先级程序组织单元的执行被延缓不能中断具有同样优先级或较高优先级的其他单元的执行 由任务使能的程序组织单元实施的控制遵循下列原则 SIGNAL不为零 表示是事件触发的单任务INTERVAL不为零 SIGNAL为零 该任务结合的程序组织单元周期执行多个任务执行时 PRIORITY数值小的任务先被执行相同优先级的多个任务 等待时间长的程序组织单元先被执行没有任务结合的程序具有最低的优先级 在资源开始执行前执行与任务没有直接结合的功能块实例根据求值次序执行与任务结合的功能块实例的执行与求值规则无关数据同步规则 功能块执行时 来自其他功能块的所有输入采用同样的求值结果 同一功能块的输出送到两个或多个功能块 全部目的功能块与任务有显式或隐式的结合 则目的功能块输入信号在求值时间内 与源功能块有同样的求值结果 4 全局变量 GLOBALVARIABLE 全局变量能用于整个工程项目 可被该工程内所有软件元素存取在配置声明段声明的全局变量能够用于该配置在资源声明段声明的全局变量能够用于该资源在一个系统中不能有相同名称的两个全局变量在程序组织单元中需要对所用的全局变量用外部变量声明全局变量用于与其他网络进行数据交换VAR GLOBAL全局变量声明END VAR 5 存取路径变量 ACCESSVARIABLE 存取路径变量用于将全局变量 直接表示变量和功能块的输入 输出和内部变量联系起来 实现信息的存取它提供在不同配置之间交换数据和信息的方法两种存取方法 读写 READ WRITE 方式和只读 READ ONLY VAR ACCESS存取路径变量名 外部存取的变量 存取路径的数据类型和存取
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论