摘要 针对当前控制系统编程语言的流行趋势,从基本编程元素和编程语言两个方面详细介绍了标准IEC61131-3的内容。并且以浙大中自SunyTech工业控制应用软件平台为背景,对标准具体内容的应用作了针对性的阐述,充分展现了IEC61131-3标准在控制系统软件编程中的作用。
  关键词 IEC61131-3;软件模型;编程语言;工控编程软件;PLC;控制系统
1 引言
  IEC(InternationalElectrotechnicalCommission)61131-3是第一个为工业自动化控制系统的软件设计提供标准化编程语言的国际标准。该标准将现代软件的概念和现代软件工程的机制与传统的PLC编程语言成功地结合,又对各种工业控制系统的编程语言、软件设计的概念和软件模型等进行了标准化,适应了当今世界软件、工业控制系统的发展方向,是一种非常先进的设计技术。
2 标准的主要内容[1][2]
  IEC61131-3将标准分为两个部分:公共元素和编程语言。IEC61131-3标准的层次和结构如
图1所示。图1IEC61131-3标准的结构图
  公共元素部分规范了数据类型、变量的定义,给出了软件模型,并引入配置(Configuration)、资源(Resources)、任务(Tasks)和程序(Program)的概念、程序组织单元POU(PorgramOrganizitionUnit)和顺序功能图SFC(SequentialFunctionChart)等。
IEC61131-3标准共规定了4种编程语言,其中两种图形化语言,两种文本化语言。图形化语言有梯形图LD(LadderDiagram),功能块图FBD(FunctionBlockDiagram);文本化语言有指令表IL(InstructionList)和结构文本ST(StructuredText)。
2.1 基本编程概念和公共元素
  1)软件模型
  IEC61131-3标准的软件模型如图2所示。图 2IEC61131-3标准的软件模型图
  该软件模型是一种分层结构,最上层是配置,它定义了单元的结构,专指一个特定类型的控制系统,等同于一个PLC应用系统,包括硬件装置、处理资源、I/O通道的存储地址和系统能力。
  在每一个配置中,有一个或多个“资源”,“资源”不仅为运行程序提供了一个支持系统,而且它反映了PLC的物理结构,在程序和PLC物理I/O通道之间提供了一个接口。
  任务用于规定程序及其功能块的运行期特性。程序或功能块通常保持完全的待用状态,由一个配置后的任务来周期性地执行,或由一个特定的事件触发开始执行程序。
  程序组织单元是标准PLC系统用户程序最小的、独立的软件单元。包括3种统一的基本类型,分别为功能FUN(Function)、功能块FB(FunctionBlock)和程序PROG(Program)。
  其中,功能FUN类型是一些在程序执行过程中的软件元件,这些软件元件对一系列特定的输入值会产生相应的输出结果,如算术功能COS()、SIN()等。IEC61131-3标准预定义了一系列经常使用的标准功能集,其中包括50种功能和12种功能块,它们的名称保留为关键字(详细的标准功能和功能块的描述可参阅IEC61131-3标准)。
  功能块FB类型是该标准中的核心元素,它体现了一种全新的面向对象程序设计理念。功能块类型对应于经典面向对象语言中的类的概念,功能块的实例(Instance)对应于对象的概念。功能块类型具有天然的封装特性,能够把特定的算法封装在某个特定的功能块中,它
把具体的操作和操作数据相分离,也把系统的总体算法组态和单个算法的研制开发过程分开,以增加程序的可重用性和移植性。
程序PROG类型是任务的直接构成基础,PROG类型的程序组织单元可构成系统的主程序,典型的IEC程序由主程序和许多互连的功能和功能块组成,一个程序中的不同部分的执行通过任务来控制。另外,当用户需要自己编写自定义算法块并对其进行重复使用时,就可以利用PROG类型的程序组织单元。
  2)变量和数据类型
  标准中定义了5种不同的变量类型:全局变量、局部变量、输入变量、输出变量、输入输出变量。其中,局部变量只能在程序内部的一部分进行寻址,全局变量能被所有的程序组织单元寻址,输入、输出和输入/输出变量是与程序、功能和功能块密切相关的,它们能在被分配的程序组织单元内通过读或写来改变,而要在程序组织单元外部改变时必须进行定义,且在使用变量时要加以说明。标准为输入、输出和输入/输出变量提供了两种定义形式,直接表达的变量形式和符号变量形式。直接表达变量的定义给出了统一的固定的格式,符号变量的存储位置由预先设置的分配表和符号表决定。定义变量的同时,还定义了
变量的属性和限定符,通过它们使变量具有丰富的特性。
  该标准统一定义了编程中常用的数据类型。一类称作基本数据类型,是一种预定义的、标准化的数据类型。还有一类称作导出数据类型,程序员可以创建“自定义”数据类型,它一般包括枚举类型、数组类型、结构类型等,为面向对象的编程模式提供支持。
另外,标准还规定了编程中常用的标识符、关键字以及注释等一些通用语言单元,以提供用户程序的通用性和移植性。
  3)软件的通讯模式
中国在线编程  IEC61131标准提供了以下的通讯模式:内部变量通讯模式、全局变量通讯模式、调用参数通讯模式、使用存取路径通讯模式以及通讯块通讯模式等。
  前三种模式用于一个配置内的通信,通过内部变量和全局变量的建立可以在一个配置内的程序、功能块和功能之间相互连接形成一个网络,数据信息可以通过这个内部的网络进行通讯。
  存取路径的通讯模式用于各个配置之间的数据交换,也就是要跨越一个PLC系统的范围,它可用于配置和程序层。存取路径可以认为是全局变量的一个扩展,其符号名由固定格式的语言结构定义,这样通过定义的存取路径的符号名,该配置的变量可为其它配置所访问。
  通讯块是用于从发送方向接收方传送数据包的专用功能块,对于标准通讯块,在IEC61131-5标准中专门地作出了定义,这里就不详细介绍。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。