IEC 61131-3标准的产生与特点
传统的PLC编程语言的不足
由于PLC的I/O点数可以从十几点到几千甚至上万,因此其应用范围极广泛,大量用于从小型设备到大型系统的控制,是用量最大的一类控制器设备,众多的厂家生产各种类型的PLC产品或为之配套。由于大量的厂商在PLC的生产、开发上各自为战,造成PLC产品从软件到硬件的兼容性很差。在编程语言上,从低端产品到高端产品都支持的就是梯形图,它虽然遵从了广大电气自动化人员的专业习惯,具有易学易用等特点,但也存在许多难以克服的缺点。虽然一些中、高端的PLC还支持其他一些编程语言,但总体上来讲,传统的以梯形图为代表的PLC编程语言存在许多不足之处,主要表现在以下方面。
(1)梯形图语言规范不一致。虽然不同厂商的PLC产品都可采用梯形图编程,但各自的梯形图符号和编程规则均不一致,各自的梯形图指令数量及表达方式相差较大。
(2)程序可复用性差。为了减少重复劳动,现代软件工程特别强调程序的可重复使用性,而传统的梯形图程序很难通过调用子程序实现相同的逻辑算法和策略的重复使用,更不用说同样的功能块在不同的PLC之间使用。
(3)缺乏足够的程序封装能力。一般要求将一个复杂的程序分解为若干个不同功能的程序模块。或者说,人们在编程时希望用不同的功能模块组合成一个复杂的程序,但梯形图编程难以实现程序模块之间具有清晰接口的模块化,也难以对外部隐藏程序模块的内部数据从而实现程序模块的封装。
(4)不支持数据结构。梯形图编程不支持数据结构,无法实现将数据组织成如Pascal、C语言等高级语言中的数据结构那样的数据类型。对于一些复杂控制应用的编程,它几乎无能为力。
(5)程序执行具有局限性。由于传统PLC按扫描方式组织程序的执行,因此整个程序的指令代码完全按顺序逐条执行。这对于要求即时响应的控制应用(如执行事件驱动的程序模块),具有很大的局限性。
(6)对顺序控制功能的编程,只能为每一个顺控状态定义一个状态位,因此难以实现选择或并行等复杂顺控操作。
(7)传统的梯形图编程在算术运算处理、字符串或文字处理等方面均不能提供强有力的支持。
由于传统编程语言的不足,影响了PLC技术的应用和发展,非常有必要制定一个新的控制系统编程语言国际标准。IEC
61131-3标准的产生
IEC英文全称是International Electro-technical Commission,中文名称是国际电工技术委员会。IEC成立于1906年,是世界上最早的国际性电工标准化机构,总部设在瑞士日内瓦,负责有关电工、电子领域的国际标准化工作。IEC 61131-3是IEC 61131国际标准的第三部分,是第一个为工业自动化控制系统的软件设计提供标准化编程语言的国际标准。该标准得到了世界范围的众多厂商的支持,但又独立于任何一家公司。该国际标准的制定,是IEC工作组在合理地吸收、借鉴世界范围的各PLC厂家的技术和编程语言等的基础之上,形成的一套编程语言国际标准。
IEC 61131-3国际标准得到了包括美国A-B公司、德国西门子公司等世界知名大公司在内的众多厂家的共同推动和支持,它极大地提高了工业控制系统的编程软件质量,从而也提高了采用符合该规范的编程软件编写的应用软件的可靠性、可重用性和可读性,提高了应用软件的开发效率。它定义的一系列图形化编程语言和文本编程语言,不仅对系统集成商和系统工程师的编程带来很大的方便,而且对最终用户同样也带来很大的好处。它在技术上的实现是高水平的,有足够的发展空间和变动余地,能很好地适应未来的进一步发展。IEC 61131-3标准最初主要用于可编程序控制器的编程系统,但由于其显著的优点,目前在过程控制、运动控制、基于PC的控制和SCADA系统等领域也得到越来越多的应用。总之,IEC 61131-3国际标准的推出,创造了一个控制系统的软件制造商、硬件制造商、系统集成商和最终用户等多赢的结局。
IEC 61131国际标准包括以下8个部分。
Part 1:综述。
Part 2:硬件。
Part 3:可编程语言。
Part 4:用户导则。
Part 5:通信。
Part 6:现场总线通信。
Part 7:模糊控制编程。
Part 8:编程语言的实施方针。
在这8个部分中,IEC 61131-3是IEC 61131标准中最重要、最具代表性的部分。IEC 61131-3国际标准是下一代PLC的基础。IEC 61131-5是IEC 61131的通信部分,通过IEC 61131-5可实现可编程序控制器与其他工业控制系统,如机器人、数控系统和现场总线等的通信。
IEC 61131-3的制定的背景:PLC在标准的制定过程中正处在其发展和推广应用的鼎盛时期,而编程语言越来越成为其进一步发展和应用的瓶颈之一。另外,PLC编程语言的使用具有一定的地域特性。在北美和日本,普遍运用梯形图语言编程;在欧洲,则使用功能块图和顺序功能图编程;在德国和日本,又常常采用指令表对PLC进行编程。为了扩展PLC的功能,特别是加强它的数据与文字处理及通信能力,许多PLC还允许使用高级语言(如BASIC、C)编程。同时,计算机技术特别是软件工程领域有了许多重要成果。因此,在制定标准时就要做到兼容并蓄,既要考虑历史的传承,又要把现代软件的概念和现代软件工程的机制应用于新标准中。IEC 61131-3规定了两大类编程语言:文本化编程语言和图形化编程语言。前者包括指令表(Instruction List,IL)语言和结构化文本语言(Structured Text,ST),后者包括梯形图语言(Ladder Diagram,LD)和功能块图(Function Block Diagram,FBD)语言。至于顺序功能图(Sequential Function Chart,SFC),该标准未把它单独列为编程语言的一种,而是将它在公用元素中予以规范。这就是说,不论在文本化语言,或者在图形化语言,都可以运用SFC的概念、句法和语法。于是,在现在所使用的编程语言中,可以在梯形图语言中使用SFC,也可以在指令表语言中使用SFC。
自IEC 61131-3正式公布后,它获得了广泛的接受和支持。首先,国际上各大PLC厂商都宣布其产品符合该标准,在推出其编程软件新产品时,遵循该标准的各种规定。其次,许多稍晚推出的DCS产品,或者DCS的更新换代产品,也遵照IEC61131-3的规范,提供DCS的编程语言,而不像以前每个DCS厂商都搞自己的一套编程软件产品。再次,以PC为基础的控制作为一种新兴控制技术正在迅速发展,大多数基于PC的控制软件开发商都按照IEC 61131-3的编程语言标准规范其软件产品的特性。最后,正因为有了IEC 61131-3,才真正出现了一种开放式的可编程控制器的编程软件包,它不具体地依赖于特定的PLC硬件产品,这就为PLC程序在不同机