资源预览内容
第1页 / 共54页
第2页 / 共54页
第3页 / 共54页
第4页 / 共54页
第5页 / 共54页
第6页 / 共54页
第7页 / 共54页
第8页 / 共54页
第9页 / 共54页
第10页 / 共54页
亲,该文档总共54页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第6章工业控制编程语言章工业控制编程语言标准标准IEC6113132024/9/4第6章工业控制编程语言标准IEC611313Ch6 工业控制编程语言标准IEC61131-3第6章工业控制编程语言标准IEC611313一、一、IEC61131-3IEC61131-3标准的产生与特点标准的产生与特点第6章工业控制编程语言标准IEC6113131、传统PLC编程语言的不足梯形图语言规范不一致程序可复用性差 缺乏足够的程序封装能力 不支持数据结构 程序执行具有局限性 难以实现选择或并行等复杂顺控操作 传统的梯形图编程在算术运算处理、字符串或文字处理等方面均不能提供强有力的支持 第6章工业控制编程语言标准IEC6113132、IEC 61131-3标准的产生 1992年以后,IEC陆续颁布施行可编程序控制器国际标准IEC 61131的各个部分。已正式颁布的有:IEC 61131-1 通用信息,2003年5月出版第二版)IEC 61131-2 装置要求与测试,2003年2月出版第二版)IEC 61131-3 编程语言,2003年1月出版第二版) IEC 61131-4 用户导则(1995)IEC 61131-5 通信服务规范2000)IEC 61131-7 模糊控制编程软件工具实施(2000)IEC 61131-8 IEC 61131-3语言的应用和实现导则(2001)第6章工业控制编程语言标准IEC611313 中国的工业过程测量和控制标准化委员会按与IEC国际标准等效的原则,组织翻译出版工作。1995年12月29日颁布了PLC的国家标准GB/T15969.1, 15969.2, 15969.3, 15969.4,涉及IEC 61131的第一、第二、第三和第四部分。GB/T 15969.5通信服务规范在2003年5月颁布出版 , GB/T 15969.8IEC 61131-3语言的实现导则,已于2007年8月实施。第6章工业控制编程语言标准IEC611313IEC61131-3是当今世界第一个为工业自动化控制系统的软件设计提供标准化编程语言的国际标准。此前,国际上没有出现过为制定通用的控制语言而开展的标准化活动。这显然是注意到由于DCS等以数字技术为基础的控制装置在发展进程中过于专有化,给用户带来的大量不便。这一标准为可编程控制器软件技术的发展,乃至整个工业控制软件技术的发展,起了举足轻重的推动作用。可以说,没有编程语言的标准化,便没有今天PLC走向开放式系统的坚实基础。这个标准将现代软件的概念和现代软件工程的机制与传统的PLC编程语言成功地结合,又对当代种类繁多的工业控制器中的编程概念及语言进行了标准化。第6章工业控制编程语言标准IEC6113133、特点 IEC 61131-3允许在同一个PLC中使用多种编程语言,允许程序开发人员对每一个特定的任务选择最合适的编程语言,还允许在同一个控制程序中不同的软件模块用不同的编程语言编制,以充分发挥不同编程语言的应用特点。标准中的多语言包容性很好地正视了PLC发展历史中形成的编程语言多样化的现实,为PLC软件技术的进一步发展提供了足够的技术空间和自由度。 第6章工业控制编程语言标准IEC6113134、优势采用现代软件模块化原则,主要内容包括: u 编程语言支持模块化,将常用的程序功能划分为若干单元,并加以封装,构成编程的基础。u 模块化时,只设置必要的、尽可能少的输入和输出参数,尽量减少交互作用和内部数据交换。u 模块化接口之间的交互作用均采用显性定义。u 将信息隐藏于模块内,对使用者来讲只需了解该模块的外部特性(即功能、输入和输出参数),而无需了解模块内算法的具体实现方法。第6章工业控制编程语言标准IEC611313IEC 61131-3支持自顶而下(Top Down)和自底而上(Bottom Up)的程序开发方法。自顶而下的开发过程是用户首先进行系统总体设计,将控制任务划分为若干个模块,然后定义变量和进行模块设计,编写各个模块的程序;自底而上的开发过程是用户先从底部开始编程,例如先导出函数和功能块,再按照控制要求编制程序。无论选择何种开发方法,IEC 61131-3所创建的开发环境均会在整个编程过程中给予强有力的支持。 第6章工业控制编程语言标准IEC611313IEC 61131-3所规范的编程系统独立于任一个具体的目标系统,它可以最大限度地在不同的PLC目标系统中运行。这样不仅创造了一种具有良好开放性的氛围,奠定了PLC编程开放性的基础,而且可以有效规避标准与具体目标系统关联而引起的利益纠葛,体现标准的公正性。 第6章工业控制编程语言标准IEC611313将现代软件概念浓缩,并加以运用。例如:数据使用DATA_TYPE声明机制;功能(函数)使用FUNCTION声明机制;数据和功能的组合使用FUNCTION _BLOCK声明机制。 完善的数据类型定义和运算限制。软件工程师很早就认识到许多编程的错误往往发生在程序的不同部分,其数据的表达和处理不同。IEC 61131-3从源头上注意防止这类低级的错误,虽然采用的方法可能导致效率降低一点,但换来的价值却是程序的可靠性、可读性和可维护性。 第6章工业控制编程语言标准IEC611313对程序执行具有完全的控制能力。传统的PLC只能按扫描方式顺序执行程序,对程序执行的其他要求,如由事件驱动某一段程序的执行、程序的并行处理等均无能为力。IEC 61131-3允许程序的不同部分、在不同的条件(包括时间条件)下、以不同的比率并行执行 第6章工业控制编程语言标准IEC611313对程序执行具有完全的控制能力。传统的PLC只能按扫描方式顺序执行程序,对程序执行的其他要求,如由事件驱动某一段程序的执行、程序的并行处理等均无能为力。IEC 61131-3允许程序的不同部分、在不同的条件(包括时间条件)下、以不同的比率并行执行。结构化编程。对于循环执行的程序、中断执行的程序、初始化执行的程序等可以分开设计。此外,循环执行的程序还可以根据执行的周期分开设计。 第6章工业控制编程语言标准IEC611313二、二、IEC61131-3IEC61131-3标准的主要内容标准的主要内容第6章工业控制编程语言标准IEC6113131、概述IEC61131-3编程语言标准分为两部分:公用元素、编程语言公用元素部分u给出软件模型和编程模型,引入配置、资源、任务和存取路径等基本概念。u说明各种编程语言中使用的字符集、标识符、关键字等,u定义数据的外部表示、数据类型、变量和程序组织单元等,u定义顺序功能表图的基本元素等。编程语言部分定义了两大类编程语言:文本化编程语言和图形化编程语言第6章工业控制编程语言标准IEC611313图6.1 IEC61131-3标准的层次与结构 第6章工业控制编程语言标准IEC611313语言元素 表6.1 语言元素示例语言元素含 义示 例分界符具有不同含义的专用字符(,),=,+,-,*,$,;,:=,#,空格符关键字标准标识符,作为编程语言中的“字”RETAIN, CONFIGURATION, END_VAR, FUNCTION, PROGRAM直接量用于表示不同数据类型的数值78,4.372E-5,16#a5标识符字母数字字符串,用于用户指定的变量名、标号或POU等MW212,Doutput1,SwitchIn,realyout,P1_V3第6章工业控制编程语言标准IEC611313关键字 关键字(keyword)是语言元素特征化的词法单元。关键字是标准标志符。在IEC61131-3标准中,关键字是结构声明和语句的固定符号表示法,其拼写和含义均由IEC61131-3标准明确规定。因此,关键字不能用于用户定义的变量或其他名称。这一点与高级编程语言是一致的。 关键字不区分字母的大、小写。例如,关键字“FOR”和“for”是等价的。为了更好地进行区别,关键字通常以大写字母表示。表6.3所示为关键字及其含义。 关键字主要包括:基本数据类型的名称、标准功能名、标准功能块名、标准功能的输入参数名、标准功能块的输入和输出参数名、图形编程语言中的EN和ENO变量、指令表语言中的运算符、结构化文本语言中的语言元素、顺序功能图语言中的语言元素。 第6章工业控制编程语言标准IEC611313直接量 直接量用来表示常数变量的数值,其格式取决于变量的数据类型。直接量有3种基本类型: u数字直接量 u字符串直接量 u时间直接量 标识符 标识符(identifier)是字母、数字和下划线字符的组合。其开始必须是字母或下划线字符,并被命名为语言元素(Language Element)。标识符对字母的大、小写不敏感,所以标识符ABCD和abcD具有相同的意义。标识符用于表示变量、标号,以及功能、功能块、程序组织单元等名称。 第6章工业控制编程语言标准IEC6113132、数据类型 IEC 61131-3对数据类型进行了定义,从而防止对数据类型的不同设置而发生出错。数据类型的标准化是编程语言开放性的重要标准。 在IEC 61131-3中定义一般数据类型和非一般数据类型两类。非一般数据类型又可分为基本数据类型和衍生数据类型。基本数据类型有21种。 数据类型与它在数据存储器中所占用的数据宽度有关。第6章工业控制编程语言标准IEC611313 一般数据类型的数据用前缀“ANY”标识,用于标准函数和标准功能块的输入和输出连接。它采用分级结构。 衍生数据类型是由用户定义的数据类型,它建立在基本数据类型的基础上,也称为导出数据类型。这类数据类型所定义的变量是全局变量。它可用与基本数据类型所使用的相同方法对变量进行声明。 在IEC 61131-3标准中,变量分为单元素变量和多元素变量。 第6章工业控制编程语言标准IEC6113133、变量 与数据的外部表示相反,变量提供能够改变其内容的数据对象的识别方法。例如,可改变与PLC输入、输出或存储器有关的数据。变量可以被声明为基本数据类型、一般数据类型和导出数据类型。第6章工业控制编程语言标准IEC611313变量的类型和属性第6章工业控制编程语言标准IEC611313变量的附加属性第6章工业控制编程语言标准IEC611313三、程序组织单元三、程序组织单元第6章工业控制编程语言标准IEC6113131、程序组织单元及其组成图6.2 程序组织单元第6章工业控制编程语言标准IEC611313表6.2 IEC61131-3标准的3中POU及其含义类 型关 键 字含 义ProgramPROGRAM主程序,包括IO的分配、全局变量和存取路径Function BlockFUNCTION_BLOCK带输入和输出变量的块FunctionFUNCTION具有功能值的块,用于扩展PLC的基本预算和操作集第6章工业控制编程语言标准IEC611313图6.3 POU元素构成 第6章工业控制编程语言标准IEC611313第6章工业控制编程语言标准IEC6113132、功能 功能是一种可以赋予参数,但没有静态变量的程序组织单元。有些书籍或文献也称功能为函数。当用相同的输入参数调用某一功能时,该功能总能够生成相同的结果作为其功能值。功能有多个输入变量,没有输出变量,但有一个功能值作为该功能的返回值。功能由功能名和一个表达式组成。 功能分为标准功能和用户定义功能(衍生功能)。 IEC61131-3标准定义了8类标准功能 第6章工业控制编程语言标准IEC6113133、功能块 功能块是在执行时能够产生一个或多个值的程序组织单元。 功能块实例化是编程人员在功能块说明部分用指定功能块名和相应的功能块类型来建立功能块的过程。 每个功能块实例有它的功能块名、内部变量、输出变量及可能的输入变量数据结构。该数据结构的输出变量和必要的内部变量的值能够从这次执行保护到下一次执行。功能块实例的外部只有输入和输出变量是可存取的。功能块内部变量对用户来说是隐藏的。 第6章工业控制编程语言标准IEC611313图6.5 功能块的图形表示第6章工业控制编程语言标准IEC611313 功能块包括标准功能块、衍生功能块和用户定义功能块。衍生功能块是利用标准功能块创造的新功能块。IEC 61131-3允许用户利用已有的功能块和功能生成新的功能块。任意功能块均可采用便于管理且功能更简单的功能和或功能块进行编程。 IEC 61131-3中定义了5种标准功能块。第6章工业控制编程语言标准IEC611313功能块段的文字形式可以表示为:FUNCTION_BLOCK 功能块名 功能块声明 功能块体END_FUNCTION_BLOCK第6章工业控制编程语言标准IEC611313 功能和功能块的主要区别在于,相同输入参数调用时,功能总是产生相同的结果(功能值),功能没有“记忆”特性。程序代表PLC用户的最高层,能存取PLC的IO口,并能使它们能为其它程序组织单元所存取。IEC 61131-3标准使用变量以存储信息。但是,它们的存储位置不再需要由用户自行定义,而是由编程系统自行进行管理,每个变量具有固定的数据类型。IEC 61131-3规定若干数据类型,这些数据类型在位数量和符号的使用方面有所不同。 第6章工业控制编程语言标准IEC6113134、程序 程序是程序组织单元之一,它由功能和功能块组成。PROGRAM类型的程序组织单元称为主程序。在一个多CPU的PLC控制系统中,能同时执行多个主程序,这一点体现了程序与功能块的不同。 程序以PROGRAM关键字开始,随后是程序名、程序声明和程序体,最后以END_PROGRAM关键字结束。与功能或功能块的声明类似,程序声明包括在整个程序声明中所使用变量的声明。 第6章工业控制编程语言标准IEC611313第6章工业控制编程语言标准IEC611313四、软件、通信和功能模型四、软件、通信和功能模型 第6章工业控制编程语言标准IEC6113131、软件模型图6.6 IEC61131-3标准的软件模型 第6章工业控制编程语言标准IEC611313软件模型特点分层结构分层结构程序和功能块;组态元素,即配置、资源和任务;程序和功能块;组态元素,即配置、资源和任务;全局变量;存取路径和实例特定的初始化全局变量;存取路径和实例特定的初始化 从理论上描述了将一个复杂程序如何分解为若干从理论上描述了将一个复杂程序如何分解为若干小的不同的可管理部分,并在各分解部分之间有清小的不同的可管理部分,并在各分解部分之间有清晰和规范的接口方法。晰和规范的接口方法。描述一台可编程控制器如何实现多个独立程序的描述一台可编程控制器如何实现多个独立程序的同时装载和运行,如何实现对程序执行的完全控制同时装载和运行,如何实现对程序执行的完全控制 第6章工业控制编程语言标准IEC611313主要内容(1)配置()配置(Configuration) 语言元素,结构元素 位于软件模型的最上层,等同于一个PLC软件或应用程序多台PLC构成的一个控制系统中,每一台PLC的应用程序都是一个独立的配置 配置将系统内所有资源结合成组,为资源提供数据交换的手段一个配置可有多个资源,配置中定义该配置的全局变量、资源、存取路径等,它反映PLC的硬件物理结构,为程序与物理I/O通道之间提供接口 第6章工业控制编程语言标准IEC611313(2)资源()资源(Resource) 语言元素,结构元素 位于软件模型的第二层 ,等同于一个CPU为程序和PLC物理输入输出通道提供接口 程序只有装入资源才能执行一个资源具有“信号处理功能”、“人机接口功能”和“传感器和执行器接口功能”资源声明在该资源内的全局变量、任务和程序声明等第6章工业控制编程语言标准IEC611313(3)任务()任务(Task) 语言元素,结构元素 位于软件模型第三层 。规定程序组织单元在运行期的特性控制一系列程序组织单元周期地执行,或者根据一个特定的事件触发来执行 任务有任务名和三个输入参数 SIGNAL:事件触发输入端,上升沿触发与任务相关联的程序组织单元执行一次 INTERVAL:周期执行时的时间间隔。该任务的有关程序组织单元按该时间间隔周期执行 PRIORITY:对任务设置的优先级 ,0表示最高优先级 第6章工业控制编程语言标准IEC611313无优先级执行 u优先级最高的POU先执行u同等优先级的根据等待时间最长的POU先执行优先级执行u较低优先级程序组织单元的执行被延缓u不能中断具有同样优先级或较高优先级的其他单元的执行 第6章工业控制编程语言标准IEC611313 由任务使能的程序组织单元实施的控制遵循下列原则:SIGNAL不为零,表示是事件触发的单任务 INTERVAL不为零,SIGNAL为零,该任务结合的程序组织单元周期执行多个任务执行时,PRIORITY数值小的任务先被执行相同优先级的多个任务,等待时间长的程序组织单元先被执行没有任务结合的程序具有最低的优先级,在资源开始执行前执行与任务没有直接结合的功能块实例根据求值次序执行与任务结合的功能块实例的执行与求值规则无关数据同步规则 功能块执行时,来自其他功能块的所有输入采用同样的求值结果 同一功能块的输出送到两个或多个功能块,全部目的功能块与任务有显式或隐式的结合,则目的功能块输入信号在求值时间内,与源功能块有同样的求值结果第6章工业控制编程语言标准IEC611313(4)全局变量)全局变量 (GLOBAL VARIABLE) 全局变量能用于整个工程项目,可被该工程内所有软件元素存取 u在配置声明段声明的全局变量能够用于该配置u在资源声明段声明的全局变量能够用于该资源u在一个系统中不能有相同名称的两个全局变量 u在程序组织单元中需要对所用的全局变量用外部变量声明u全局变量用于与其他网络进行数据交换 VAR_GLOBAL 全局变量声明 END_VAR 第6章工业控制编程语言标准IEC611313(5)存取路径变量)存取路径变量 (ACCESS VARIABLE) 存取路径变量用于将全局变量、直接表示变量和功能块的输入、输出和内部变量联系起来,实现信息的存取它提供在不同配置之间交换数据和信息的方法 两种存取方法:读写(READ_WRITE)方式和只读(READ_ONLY) VAR_ACCESS 存取路径变量名 : 外部存取的变量 : 存取路径的数据类型和存取方式END_VAR第6章工业控制编程语言标准IEC6113132、用户程序结构 传统传统传统传统PLCPLC用户程序结构采用各种功能模块用户程序结构采用各种功能模块用户程序结构采用各种功能模块用户程序结构采用各种功能模块组织块组织块OB功能块功能块FB功能功能FC数据块数据块DB系统功能块系统功能块SFB系统功能系统功能SFC IECIEC标准规定用户程序结构采用程序组织单元标准规定用户程序结构采用程序组织单元标准规定用户程序结构采用程序组织单元标准规定用户程序结构采用程序组织单元程序组织单元程序组织单元Program Organization Unit程序程序Program功能块功能块Function Block函数函数Function标准功能块标准功能块用户功能块用户功能块标准函数标准函数用户函数用户函数程序块程序块PB第6章工业控制编程语言标准IEC611313PLCopen2008.12采用程序组织单元的优点可对每个应用领域设置用户的功能块库,便于工程可对每个应用领域设置用户的功能块库,便于工程可对每个应用领域设置用户的功能块库,便于工程可对每个应用领域设置用户的功能块库,便于工程的应用。的应用。的应用。的应用。 可对功能块进行测试和记录可对功能块进行测试和记录可对功能块进行测试和记录可对功能块进行测试和记录 。能够提供全球范围内的库存取功能。能够提供全球范围内的库存取功能。可改变编程,用于建立功能块网络可改变编程,用于建立功能块网络 。可重复使用,使用的次数无限制。可重复使用,使用的次数无限制。可节省工厂投资成本可节省工厂投资成本第6章工业控制编程语言标准IEC6113133、与传统PLC软件模型比较传统的PLC模型仅包括一个资源,运行一个任务,控制一个程序,且运行于一个封闭系统中。对PLC的使用者来说,除可通过编制程序来控制外,输入采样、输出设置和PLC例行程序均是不可见、不可控的。 而而IEC 61131-3的软件模型从的软件模型从理论上描述了将一个复杂程序理论上描述了将一个复杂程序如何分解为若干小的不同的可如何分解为若干小的不同的可管理部分,并在各分解部分之管理部分,并在各分解部分之间有清晰和规范的接口方法。间有清晰和规范的接口方法。 第6章工业控制编程语言标准IEC6113134、编程语言 为使标准的规定适应宽泛的应用范围,又能被PLC制造厂商乐意接受和支持,IEC 61133-3规定了二大类编程语言:文本化编程语言: u指令清单语言(IL)u结构化文本语言(ST)图形化编程语言: u梯形图语言(LD)u功能块图语言(FBD)第6章工业控制编程语言标准IEC611313图6.7 编程语言示例第6章工业控制编程语言标准IEC611313演讲完毕,谢谢听讲!再见,see you again3rew3rew2024/9/4第6章工业控制编程语言标准IEC611313
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号