《第6章工业控制编程语言标准IEC61131-3课件.pptx》由会员分享,可在线阅读,更多相关《第6章工业控制编程语言标准IEC61131-3课件.pptx(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、监督控制与数据采集技术监督控制与数据采集技术 Ch6 工业控制编程语言标准IEC61131-3一、一、IEC61131-3IEC61131-3标准的产生与特点标准的产生与特点1、传统PLC编程语言的不足梯形图语言规范不一致程序可复用性差 缺乏足够的程序封装能力 不支持数据结构 程序执行具有局限性 难以实现选择或并行等复杂顺控操作 传统的梯形图编程在算术运算处理、字符串或文字处理等方面均不能提供强有力的支持 2、IEC 61131-3标准的产生 1992年以后,IEC陆续颁布施行可编程序控制器国际标准IEC 61131的各个部分。已正式颁布的有:IEC 61131-1 通用信息,2003年5月出
2、版第二版)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)中国的工业过程测量和控制标准化委员会按与IEC国际标准等效的原则,组织翻译出版工作。1995年12月29日颁布了PLC的国家标准GB/T15969.1,15969.2,15969.3,15969.4,涉及IEC 61131的第一、第二、
3、第三和第四部分。GB/T 15969.5通信服务规范在2003年5月颁布出版,GB/T 15969.8IEC 61131-3语言的实现导则,已于2007年8月实施。IEC61131-3是当今世界第一个为工业自动化控制系统的软件设计提供标准化编程语言的国际标准。此前,国际上没有出现过为制定通用的控制语言而开展的标准化活动。这显然是注意到由于DCS等以数字技术为基础的控制装置在发展进程中过于专有化,给用户带来的大量不便。这一标准为可编程控制器软件技术的发展,乃至整个工业控制软件技术的发展,起了举足轻重的推动作用。可以说,没有编程语言的标准化,便没有今天PLC走向开放式系统的坚实基础。这个标准将现代
4、软件的概念和现代软件工程的机制与传统的PLC编程语言成功地结合,又对当代种类繁多的工业控制器中的编程概念及语言进行了标准化。3、特点 IEC 61131-3允许在同一个PLC中使用多种编程语言,允许程序开发人员对每一个特定的任务选择最合适的编程语言,还允许在同一个控制程序中不同的软件模块用不同的编程语言编制,以充分发挥不同编程语言的应用特点。标准中的多语言包容性很好地正视了PLC发展历史中形成的编程语言多样化的现实,为PLC软件技术的进一步发展提供了足够的技术空间和自由度。4、优势采用现代软件模块化原则,主要内容包括:u 编程语言支持模块化,将常用的程序功能划分为若干单元,并加以封装,构成编程
5、的基础。u 模块化时,只设置必要的、尽可能少的输入和输出参数,尽量减少交互作用和内部数据交换。u 模块化接口之间的交互作用均采用显性定义。u 将信息隐藏于模块内,对使用者来讲只需了解该模块的外部特性(即功能、输入和输出参数),而无需了解模块内算法的具体实现方法。IEC 61131-3支持自顶而下(Top Down)和自底而上(Bottom Up)的程序开发方法。自顶而下的开发过程是用户首先进行系统总体设计,将控制任务划分为若干个模块,然后定义变量和进行模块设计,编写各个模块的程序;自底而上的开发过程是用户先从底部开始编程,例如先导出函数和功能块,再按照控制要求编制程序。无论选择何种开发方法,I
6、EC 61131-3所创建的开发环境均会在整个编程过程中给予强有力的支持。IEC 61131-3所规范的编程系统独立于任一个具体的目标系统,它可以最大限度地在不同的PLC目标系统中运行。这样不仅创造了一种具有良好开放性的氛围,奠定了PLC编程开放性的基础,而且可以有效规避标准与具体目标系统关联而引起的利益纠葛,体现标准的公正性。将现代软件概念浓缩,并加以运用。例如:数据使用DATA_TYPE声明机制;功能(函数)使用FUNCTION声明机制;数据和功能的组合使用FUNCTION _BLOCK声明机制。完善的数据类型定义和运算限制。软件工程师很早就认识到许多编程的错误往往发生在程序的不同部分,其
7、数据的表达和处理不同。IEC 61131-3从源头上注意防止这类低级的错误,虽然采用的方法可能导致效率降低一点,但换来的价值却是程序的可靠性、可读性和可维护性。对程序执行具有完全的控制能力。传统的PLC只能按扫描方式顺序执行程序,对程序执行的其他要求,如由事件驱动某一段程序的执行、程序的并行处理等均无能为力。IEC 61131-3允许程序的不同部分、在不同的条件(包括时间条件)下、以不同的比率并行执行 对程序执行具有完全的控制能力。传统的PLC只能按扫描方式顺序执行程序,对程序执行的其他要求,如由事件驱动某一段程序的执行、程序的并行处理等均无能为力。IEC 61131-3允许程序的不同部分、在
8、不同的条件(包括时间条件)下、以不同的比率并行执行。结构化编程。对于循环执行的程序、中断执行的程序、初始化执行的程序等可以分开设计。此外,循环执行的程序还可以根据执行的周期分开设计。二、二、IEC61131-3IEC61131-3标准的主要内容标准的主要内容1、概述IEC61131-3编程语言标准分为两部分:公用元素、编程语言公用元素部分u给出软件模型和编程模型,引入配置、资源、任务和存取路径等基本概念。u说明各种编程语言中使用的字符集、标识符、关键字等,u定义数据的外部表示、数据类型、变量和程序组织单元等,u定义顺序功能表图的基本元素等。编程语言部分定义了两大类编程语言:文本化编程语言和图形
9、化编程语言图6.1 IEC61131-3标准的层次与结构 语言元素 表6.1 语言元素示例语言元素含 义示 例分界符具有不同含义的专用字符(,),=,+,-,*,$,;,:=,#,空格符关键字标准标识符,作为编程语言中的“字”RETAIN,CONFIGURATION,END_VAR,FUNCTION,PROGRAM直接量用于表示不同数据类型的数值78,4.372E-5,16#a5标识符字母数字字符串,用于用户指定的变量名、标号或POU等MW212,Doutput1,SwitchIn,realyout,P1_V3关键字 关键字(keyword)是语言元素特征化的词法单元。关键字是标准标志符。在I
10、EC61131-3标准中,关键字是结构声明和语句的固定符号表示法,其拼写和含义均由IEC61131-3标准明确规定。因此,关键字不能用于用户定义的变量或其他名称。这一点与高级编程语言是一致的。关键字不区分字母的大、小写。例如,关键字“FOR”和“for”是等价的。为了更好地进行区别,关键字通常以大写字母表示。表6.3所示为关键字及其含义。关键字主要包括:基本数据类型的名称、标准功能名、标准功能块名、标准功能的输入参数名、标准功能块的输入和输出参数名、图形编程语言中的EN和ENO变量、指令表语言中的运算符、结构化文本语言中的语言元素、顺序功能图语言中的语言元素。直接量 直接量用来表示常数变量的数
11、值,其格式取决于变量的数据类型。直接量有3种基本类型:u数字直接量 u字符串直接量 u时间直接量 标识符 标识符(identifier)是字母、数字和下划线字符的组合。其开始必须是字母或下划线字符,并被命名为语言元素(Language Element)。标识符对字母的大、小写不敏感,所以标识符ABCD和abcD具有相同的意义。标识符用于表示变量、标号,以及功能、功能块、程序组织单元等名称。2、数据类型 IEC 61131-3对数据类型进行了定义,从而防止对数据类型的不同设置而发生出错。数据类型的标准化是编程语言开放性的重要标准。在IEC 61131-3中定义一般数据类型和非一般数据类型两类。非
12、一般数据类型又可分为基本数据类型和衍生数据类型。基本数据类型有21种。数据类型与它在数据存储器中所占用的数据宽度有关。一般数据类型的数据用前缀“ANY”标识,用于标准函数和标准功能块的输入和输出连接。它采用分级结构。衍生数据类型是由用户定义的数据类型,它建立在基本数据类型的基础上,也称为导出数据类型。这类数据类型所定义的变量是全局变量。它可用与基本数据类型所使用的相同方法对变量进行声明。在IEC 61131-3标准中,变量分为单元素变量和多元素变量。3、变量 与数据的外部表示相反,变量提供能够改变其内容的数据对象的识别方法。例如,可改变与PLC输入、输出或存储器有关的数据。变量可以被声明为基本
13、数据类型、一般数据类型和导出数据类型。变量的类型和属性变量的附加属性三、程序组织单元三、程序组织单元1、程序组织单元及其组成图6.2 程序组织单元表6.2 IEC61131-3标准的3中POU及其含义类 型关 键 字含 义ProgramPROGRAM主程序,包括IO的分配、全局变量和存取路径Function BlockFUNCTION_BLOCK带输入和输出变量的块FunctionFUNCTION具有功能值的块,用于扩展PLC的基本预算和操作集图6.3 POU元素构成 2、功能 功能是一种可以赋予参数,但没有静态变量的程序组织单元。有些书籍或文献也称功能为函数。当用相同的输入参数调用某一功能时
14、,该功能总能够生成相同的结果作为其功能值。功能有多个输入变量,没有输出变量,但有一个功能值作为该功能的返回值。功能由功能名和一个表达式组成。功能分为标准功能和用户定义功能(衍生功能)。IEC61131-3标准定义了8类标准功能 3、功能块 功能块是在执行时能够产生一个或多个值的程序组织单元。功能块实例化是编程人员在功能块说明部分用指定功能块名和相应的功能块类型来建立功能块的过程。每个功能块实例有它的功能块名、内部变量、输出变量及可能的输入变量数据结构。该数据结构的输出变量和必要的内部变量的值能够从这次执行保护到下一次执行。功能块实例的外部只有输入和输出变量是可存取的。功能块内部变量对用户来说是
15、隐藏的。图6.5 功能块的图形表示 功能块包括标准功能块、衍生功能块和用户定义功能块。衍生功能块是利用标准功能块创造的新功能块。IEC 61131-3允许用户利用已有的功能块和功能生成新的功能块。任意功能块均可采用便于管理且功能更简单的功能和或功能块进行编程。IEC 61131-3中定义了5种标准功能块。功能块段的文字形式可以表示为:FUNCTION_BLOCK 功能块名 功能块声明 功能块体END_FUNCTION_BLOCK 功能和功能块的主要区别在于,相同输入参数调用时,功能总是产生相同的结果(功能值),功能没有“记忆”特性。程序代表PLC用户的最高层,能存取PLC的IO口,并能使它们能
16、为其它程序组织单元所存取。IEC 61131-3标准使用变量以存储信息。但是,它们的存储位置不再需要由用户自行定义,而是由编程系统自行进行管理,每个变量具有固定的数据类型。IEC 61131-3规定若干数据类型,这些数据类型在位数量和符号的使用方面有所不同。4、程序 程序是程序组织单元之一,它由功能和功能块组成。PROGRAM类型的程序组织单元称为主程序。在一个多CPU的PLC控制系统中,能同时执行多个主程序,这一点体现了程序与功能块的不同。程序以PROGRAM关键字开始,随后是程序名、程序声明和程序体,最后以END_PROGRAM关键字结束。与功能或功能块的声明类似,程序声明包括在整个程序声
17、明中所使用变量的声明。四、软件、通信和功能模型四、软件、通信和功能模型 1、软件模型图6.6 IEC61131-3标准的软件模型 软件模型特点分层结构分层结构程序和功能块;组态元素,即配置、资源和任务;程序和功能块;组态元素,即配置、资源和任务;全局变量;存取路径和实例特定的初始化全局变量;存取路径和实例特定的初始化 从理论上描述了将一个复杂程序如何分解为若干从理论上描述了将一个复杂程序如何分解为若干小的不同的可管理部分,并在各分解部分之间有清小的不同的可管理部分,并在各分解部分之间有清晰和规范的接口方法。晰和规范的接口方法。描述一台可编程控制器如何实现多个独立程序的描述一台可编程控制器如何实
18、现多个独立程序的同时装载和运行,如何实现对程序执行的完全控制同时装载和运行,如何实现对程序执行的完全控制 主要内容(1)配置()配置(Configuration)语言元素,结构元素 位于软件模型的最上层,等同于一个PLC软件或应用程序多台PLC构成的一个控制系统中,每一台PLC的应用程序都是一个独立的配置 配置将系统内所有资源结合成组,为资源提供数据交换的手段一个配置可有多个资源,配置中定义该配置的全局变量、资源、存取路径等,它反映PLC的硬件物理结构,为程序与物理I/O通道之间提供接口(2)资源()资源(Resource)语言元素,结构元素 位于软件模型的第二层,等同于一个CPU为程序和PL
19、C物理输入输出通道提供接口 程序只有装入资源才能执行一个资源具有“信号处理功能”、“人机接口功能”和“传感器和执行器接口功能”资源声明在该资源内的全局变量、任务和程序声明等(3)任务()任务(Task)语言元素,结构元素 位于软件模型第三层。规定程序组织单元在运行期的特性控制一系列程序组织单元周期地执行,或者根据一个特定的事件触发来执行 任务有任务名和三个输入参数 SIGNAL:事件触发输入端,上升沿触发与任务相关联的程序组织单元执行一次 INTERVAL:周期执行时的时间间隔。该任务的有关程序组织单元按该时间间隔周期执行 PRIORITY:对任务设置的优先级,0表示最高优先级 无优先级执行
20、u优先级最高的POU先执行u同等优先级的根据等待时间最长的POU先执行优先级执行u较低优先级程序组织单元的执行被延缓u不能中断具有同样优先级或较高优先级的其他单元的执行 由任务使能的程序组织单元实施的控制遵循下列原则:SIGNAL不为零,表示是事件触发的单任务 INTERVAL不为零,SIGNAL为零,该任务结合的程序组织单元周期执行多个任务执行时,PRIORITY数值小的任务先被执行相同优先级的多个任务,等待时间长的程序组织单元先被执行没有任务结合的程序具有最低的优先级,在资源开始执行前执行与任务没有直接结合的功能块实例根据求值次序执行与任务结合的功能块实例的执行与求值规则无关数据同步规则
21、功能块执行时,来自其他功能块的所有输入采用同样的求值结果 同一功能块的输出送到两个或多个功能块,全部目的功能块与任务有显式或隐式的结合,则目的功能块输入信号在求值时间内,与源功能块有同样的求值结果(4)全局变量)全局变量(GLOBAL VARIABLE)全局变量能用于整个工程项目,可被该工程内所有软件元素存取 u在配置声明段声明的全局变量能够用于该配置u在资源声明段声明的全局变量能够用于该资源u在一个系统中不能有相同名称的两个全局变量 u在程序组织单元中需要对所用的全局变量用外部变量声明u全局变量用于与其他网络进行数据交换 VAR_GLOBAL 全局变量声明 END_VAR(5)存取路径变量)
22、存取路径变量(ACCESS VARIABLE)存取路径变量用于将全局变量、直接表示变量和功能块的输入、输出和内部变量联系起来,实现信息的存取它提供在不同配置之间交换数据和信息的方法 两种存取方法:读写(READ_WRITE)方式和只读(READ_ONLY)VAR_ACCESS 存取路径变量名:外部存取的变量 :存取路径的数据类型和存取方式END_VAR2、用户程序结构 传统传统传统传统PLCPLC用户程序结构采用各种功能模块用户程序结构采用各种功能模块用户程序结构采用各种功能模块用户程序结构采用各种功能模块组织块组织块OB功能块功能块FB功能功能FC数据块数据块DB系统功能块系统功能块SFB系
23、统功能系统功能SFC IECIEC标准规定用户程序结构采用程序组织单元标准规定用户程序结构采用程序组织单元标准规定用户程序结构采用程序组织单元标准规定用户程序结构采用程序组织单元程序组织单元程序组织单元Program Organization Unit程序程序Program功能块功能块Function Block函数函数Function标准功能块标准功能块用户功能块用户功能块标准函数标准函数用户函数用户函数程序块程序块PBPLCopen2008.12采用程序组织单元的优点可对每个应用领域设置用户的功能块库,便于工程可对每个应用领域设置用户的功能块库,便于工程可对每个应用领域设置用户的功能块库,
24、便于工程可对每个应用领域设置用户的功能块库,便于工程的应用。的应用。的应用。的应用。可对功能块进行测试和记录可对功能块进行测试和记录可对功能块进行测试和记录可对功能块进行测试和记录。能够提供全球范围内的库存取功能。能够提供全球范围内的库存取功能。可改变编程,用于建立功能块网络可改变编程,用于建立功能块网络。可重复使用,使用的次数无限制。可重复使用,使用的次数无限制。可节省工厂投资成本可节省工厂投资成本3、与传统PLC软件模型比较传统的PLC模型仅包括一个资源,运行一个任务,控制一个程序,且运行于一个封闭系统中。对PLC的使用者来说,除可通过编制程序来控制外,输入采样、输出设置和PLC例行程序均
25、是不可见、不可控的。而而IEC 61131-3的软件模型从的软件模型从理论上描述了将一个复杂程序理论上描述了将一个复杂程序如何分解为若干小的不同的可如何分解为若干小的不同的可管理部分,并在各分解部分之管理部分,并在各分解部分之间有清晰和规范的接口方法。间有清晰和规范的接口方法。4、编程语言 为使标准的规定适应宽泛的应用范围,又能被PLC制造厂商乐意接受和支持,IEC 61133-3规定了二大类编程语言:文本化编程语言:u指令清单语言(IL)u结构化文本语言(ST)图形化编程语言:u梯形图语言(LD)u功能块图语言(FBD)图6.7 编程语言示例关于关于SFC在标准的文本中没有把顺序功能在标准的
26、文本中没有把顺序功能图(图(SFC)单独列入编程语言,)单独列入编程语言,而是将它在公用元素中予以规范。而是将它在公用元素中予以规范。这就是说,在文本化语言中,或这就是说,在文本化语言中,或者在图形化语言中,都可运用者在图形化语言中,都可运用SFC的概念、句法和语法。但习的概念、句法和语法。但习惯上也把它叫做另一种编程语言。惯上也把它叫做另一种编程语言。应用程序的设计人员可根据应用应用程序的设计人员可根据应用要求从这些语言中选择使用。这要求从这些语言中选择使用。这四种语言再加上一套顺序功能的四种语言再加上一套顺序功能的文本和图形的通用元素(即文本和图形的通用元素(即SFC),支持现今已被广泛理
27、解),支持现今已被广泛理解和运用的软件设计方法。和运用的软件设计方法。图6.8 SFC示意1、有时候读书是一种巧妙地避开思考的方法。4月-234月-23Tuesday,April 25,20232、阅读一切好书如同和过去最杰出的人谈话。02:04:4602:04:4602:044/25/2023 2:04:46 AM3、越是没有本领的就越加自命不凡。4月-2302:04:4602:04Apr-2325-Apr-234、越是无能的人,越喜欢挑剔别人的错儿。02:04:4602:04:4602:04Tuesday,April 25,20235、知人者智,自知者明。胜人者有力,自胜者强。4月-234
28、月-2302:04:4602:04:46April 25,20236、意志坚强的人能把世界放在手中像泥块一样任意揉捏。25四月20232:04:46上午02:04:464月-237、最具挑战性的挑战莫过于提升自我。四月232:04上午4月-2302:04April 25,20238、业余生活要有意义,不要越轨。2023/4/252:04:4602:04:4625 April 20239、一个人即使已登上顶峰,也仍要自强不息。2:04:46上午2:04上午02:04:464月-2310、你要做多大的事情,就该承受多大的压力。4/25/2023 2:04:46 AM02:04:4625-4月-2311、自己要先看得起自己,别人才会看得起你。4/25/2023 2:04 AM4/25/2023 2:04 AM4月-234月-2312、这一秒不放弃,下一秒就会有希望。25-Apr-2325 April 20234月-2313、无论才能知识多么卓著,如果缺乏热情,则无异纸上画饼充饥,无补于事。Tuesday,April 25,202325-Apr-234月-2314、我只是自己不放过自己而已,现在我不会再逼自己眷恋了。4月-2302:04:4725 April 202302:04谢谢大家谢谢大家