IEC61131-3编程语言的现状与发展
2010-08-23王明武张士勇陈应舒
王明武,张士勇,陈应舒
WANG Ming-wu, ZHANG Shi-yong, CHEN Ying-shu
(陕西理工学院 机械工程学院,汉中 723003)
0 引言
IEC61131-3是 IEC61131国际标准的第三部分,是第一个为工业自动化控制系统的软件设计提供标准化编程语言的国际标准。该标准将现代软件的概念和现代软件工程的机制与传统的PLC编程语言成功地结合,又对各种工业控制系统的编程语言、软件设计的概念和软件模型等进行了标准化,适应了当今世界软件、工业控制系统的发展方向,是一种非常先进的设计技术,弥补或克服了传统PLC,DCS等控制系统的弱点。
1 IEC61131-3标准的产生和特点
1.1 产生原因
传统的PLC编程语言和系统的局限性体现在以下几个方面:1)对制造商的依赖性:不同PLC 产品的梯形图符号和编程变化很大,移植性较差。2)数据封装能力有限:很难将复杂的程序分解为几个简单的子程序。3)程序的可重用性较差。4)不支持数据结构。5)仅支持有限的对顺序操作功能的编程。6)程序执行有一定的局限性:程序满足不了实时性或多任务的控制系统要求。7)执行算术操作的局限性较大。
1.2 IEC61131-3 标准的特点
IEC61131-3和传统PLC编程系统相比,它在以下几方面有着突出的特点:1)良好的结构化编程环境:支持进行“自上而下” 或“自下而上”的程序编程。2)极强的数据类型检测功能。3)支持全面的程序执行控制功能:所有任务的扫描方式和速度不一定相同,从而满足灵活的程序执行控制的需要。4)极强的复杂顺序控制功能。5)支持数据结构。6)可灵活地选择编程语言。7)独立于制造商的编程系统:提供了独立于制造商标准的编程语言和程序执行方法。
2 IEC61131标准的主要内容
IEC61131-3 将标准分为两个部分:公共元素和编程语言。公共元素部分规范了数据类型、变量的定义,给出了软件模型、通信模型、程序组织单元,以及顺序功能图等。 IEC61131-3标准规定了两大类编程语言,即文本化编程语言和图形化编程语言。前者包括指令表和结构文本,后者则有梯形图,功能块图。
2.1 软件模型
IEC61131-3软件模型允许将面向实际的应用结构分成各种单元,具体的软件模型如图1所示。图中列出了基本的编程语言元素及其相互关系,包括程序和功能块,以及支持将PLC程序装入PLC系统的配置元素,如配置,资源、任务、全局变量和存取路径等。这种分级调用结构,构成了该标准优越于传统的控制软件的理论基础。IEC61131-3使用配置将PLC系统的所有资源结集成组,并给它们提供数据交换的手段;资源是将任务分配给一个PLC系统的物理资源;任务的目的在于规定程序及其功能块的运行期特性,从而控制一系列程序或功能块周期性地执行程序或由一个的特定的事件触发开始执行程序。程序中的不同部分的执行通过 “任务” 来控制。在配置、系统资源、程序、功能或功能块内,可以声明和使用局部变量、全局变量、直接变量。存取路径提供了不同配置之间交换数据和信息的设备,每一配置内的变量可被其他远程配置存取,配置之间存取数据和信息可通过网络交换数据。
图1 IEC61131-3 软件模型
2.2 IEC61131通讯模型
IEC 61131标准规定了以下五种通讯模型:程序内部通讯、全局变量通讯、调用参数通讯、存取路径通讯以及通信功能块通讯等。 前三种模式用于一个配置内的通信,通过内部变量和全局变量的建立可以在一个配置内的程序、功能块和功能之间相互连接形成一个网络,数据信息可以通过这个内部的网络进行通讯。存取路径通讯模式用于各个配置之间的数据交换,它可用于配置和程序层,供了一种方法用于从远程设备存取特定的变量。IEC 61131-5 部分还定义了一个通讯功能块模式,通讯块是用于从发送方向接收方传送数据包的专用功能块。IEC61131 标准规定的这些通讯模型,不但使得在 IEC编程系统内部的通讯灵活、便捷,而且还有效地支持了IEC编程系统的功能扩展对通讯提出的要求。
3 IEC 61499标准
由于工业通信技术的飞速发展,特别是现场总线和以太网在工业中的实际应用,给工业自动化的体系结构带来了巨大影响。由于IEC61131-3只给出了单一的集中 PLC 系统的配置机制,为了适应分布式结构的软件要求,PLCOpen 组织对IEC61131-3 进行了适当的扩展,制订了IEC 61499《工业过程测量和控制系统用功能块》标准,目的在于对IEC61131-3进行适当的扩展。
图2 IEC 61499 系统模型
依照IEC61499构建的系统从上到下层次结构为系统、设备、资源和功能块,其系统模型如图2所示,包括与被控过程的接口、与通信网络的接口,以及隐含的分布式应用程序。一个实际的控制过程可以分布于几个设备,一个设备可以配置几个程序,程序部件通过通信网络互连交换信息而形成分布式系统。功能块是系统软件封装和重用的基本单元,这些功能块的控制算法依然用IEC61131-3语言来编程。资源是功能块的容器,设备包含单条或多条资源。
4 应用实例——电梯控制系统
在一个IEC 61131-3系统中,应针对具体的实际应用情况来选择最方便和最合适的编程语言进行编程,充分利用编程系统软件的可重用性、可分层性的特点等编写出质量优良的程序。一般来说,编写涉及到多逻辑控制、开关量的应用选择梯形图作为开发语言较合适;对于涉及到多算法的应用,选择结构化文本程序较合适;而对于具有较复杂的顺序逻辑要求的场合,选择顺序功能流程图开发较合适等。
PowerPro软件平台基于Windows环境,采用符合IEC61131-3国际标准的编程软件编写应用程序,具有五种编程语言并且可以相互转化,支持用户自定义函数功能库,大大提高了程序的可重用性,并且具有离线仿真功能,使用户能在程序试运行之前测试逻辑的正确与否极大地方便了程序的调试。笔者利用该软件平台实现了电梯控制系统的设计和仿真。
首先,在软件平台中需确定系统的配置、资源和任务属性,然后把每一个程序与任务关联。本系统任务名是LiftControl,根据电梯需要实现的功能及先后动作顺序把Logic、Simulation和Sequence程序与任务关联起来,以 50ms 固定的时间间隔,执行各个程序。其次,根据控制的要求和编程的需要,选择合适的语言编写各个程序组织单元。Logic程序使用梯形图编程,完成楼层状态的判断;Sequence程序采用顺序功能图编程,采用多个跳步转移的状态流程图模拟电梯运行的方案,状态之间的转移条件则用结构文本编程,该程序完成电梯的呼叫及动作等功能;Simulation程序则用结构化文本进行编程,完成电梯及轿门的位置判断及动作。Sequence程序编程窗口如图3所示。
图3 电梯控制程序
最后,利用视图环境,绘制组态了电梯控制系统的仿真界面,程序名称为Lift_simulation,仿真结果如图4所示。按钮黄色代表层呼叫按钮按下,红色代表没有按下,左侧的竖条代表电梯的当前位置。当电梯停层,轿厢会进行模拟打开。
图4 电梯控制仿真运行
5 结论
IEC 61131-3标准是一个功能强大、设计思想和技术先进的编程系统,该标准并不局限于PLC市场,还适用于运动控制、集散控制系统和现场总线系统等。本文在基于IEC61131-3 标准的PowerPro软件平台上模拟实现了四层电梯的控制系统,较好地仿真了电梯的实际运行过程。通过实践证明,选用IEC61131-3语言进行控制系统编程,可以根据实际需要灵活地选择相应地编程语言,具有程序可靠性和移植性等特点,软件开发效率都将得到大大的提高。
[1]Karl H J,K amp M T.IEC61131-3 工业自动化系统的程序编制[S].中国机电一体化技术应用协会秘书处,译.北京:中国机电一体化技术应用协会,2002.
[2]王永华.现场总线技术及应用教程—从PROFIBUS到AS-i.机械工业出版社[M].北京:机械工业出版社,2007.
[3]周士贵,宋颖超.IEC61131-3工控编程语言国际标准及其应用[J].计算机与信息技术,2004,16(3):78-80.
[4]仲崇权,刘振堃,杨素英,等.基于IEC 61499标准的分布式控制系统设计[J].工业控制计算机,2002,15(11):16-19.
[5]王蔚庭.解析工业编程语言国际标准IEC 61131-3[J].PLC-open专栏,2007,10(2):47-62.