5IEC 61131-3标准可保证复用功能的完全实现
传统PLC没有提供要重复应用功能的有效编程方法。IEC标准采用用户功能块和函数实现重复应用功能。为使标准的规定适应宽泛的应用范围,又能被PLC制造厂商乐意接受和支持,IEC 61133-3规定了二大类编程语言,即文本化编程语言(包括指令清单语言IL和结构化文本语言ST)和图形化编程语言(包括梯形图语言LD、功能块图语言FBD和顺序功能图语言SFT)。
这5种编程语言都有其实际应用背景,除了结构文本语言是专为制定IEC 61131-3标准而创造的外,其它4种都为PLC的编程使用了许多年。 标准允许在同一个PLC中使用多种编程语言。 允许程序开发人员对每一个特定的任务选择最合适的编程语言进行开发。允许在同一个控制程序中其不同的软件模块使不同的编程语言编制。这些规定妥善继承了PLC发展历史中形成的编程语言多样化的现实,又为PLC软件技术的进一步发展提供了足够的空间。 应用程序的设计人员可根据应用要求从这些语言中选择使用,足以支持现今已被广泛理解和运用的软件设计方法。.
梯形图(LD)语言将并行动作的机电元件(诸如继电器触点和线圈、定时器、计数器等)构成的网络模型化;常用于电气控制中逻辑控制的表达。功能块图(FBD)语言将并行动作的电子元件(诸如加法器、乘法器、移位寄存器、逻辑运算门等)的网络模型化;常用于PLC、DCS的控制算法组态。结构化文本(ST)语言将典型的信息处理任务(如在通用的高级语言Pascal中的使用数值算法)予以模型化;常用于信息处理、复杂算法的表达。指令表(IL)语言把用汇编语言对控制系统进行低级编程予以模型化;常用于PLC程序库中软件模块中,因为其执行性能优于用其他语言编写的程序。在标准的文本中没有把顺序功能图(SFC)单独列入编程语言,而是将它在公用元素中。这就是说,在文本化语言中,或者在图形化语言中,都可运用SFC的概念、句法和语法。但习惯上也把它叫做另一种编程语言。顺序功能图(SFCs)将时间驱动和事件驱动的顺序控制设备和算法模型化;它特别适合于表达顺序控制的流程,特别是复杂的流程。
在标准中并没有规定在PLC软件开发生命周期的哪个阶段一定要使用那种语言。于是,我们必须自行去了解在这5种语言中哪一种最适合于支持软件开发的初始关键阶段,而哪些语言适用于写程序代码的阶段。
我们推荐采用SFC作为设计系统控制的主要工具,而其他的语言则用在控制软件代码开发阶段。理由如次: 表达控制要求的能力强;图形的形式方法;支持初步设计;支持详细设计;支持软件的分段执行。
图10 在程序开发诸阶段中5种编程语言的作用
SFC是一种按照自动控制的要求,对Petre网方法加以适当简化和改进的程序设计法。它数学基础严格,严密精确;但又简单易学。描述元素只有3种,即:步(step)、转换(transition)和有向连线(oriented line)。描述方法直观,十分便于程序设计人员和其他专业人员在设计阶段进行沟通和交流。它特别便于用户直接按工艺流程编制控制程序,不同的编程人员编的程序差异很少,提高了编程的正确性和程序的可读性;用SFC表达控制内容时,实际工序与程序一一对应,一目了然,在控制工序发生异常时容易确认问题的所在,因而修改与维护均很方便。
在设计的初始阶段,当许多方面尚未清晰,或者设计人员还未了解之前,仍可以用SFC的图形形式方法进行系统行为的形式表达,因此可以说SFC在初步设计阶段就是一种有价值的工具。运用SFC能够避免在用自然语言描述系统规范时可能出现的模糊不清,这样就可以大大减少客户、设计者和编程人员之间的相互不理解的次数。在设计的早期阶段运用SFC得出的方案,可以在取得新的信息之后逐渐深化,由概略进一步细化,尤其是与状态步关联的动作块可进一步细化,使之成为新的嵌套的SFC方案。依照此方法一步步地深入,直到得到所希望的详细深度。不论是在初步设计阶段还是在详细设计阶段,这种在语义和语法上的连贯性,对编程人员来讲,采用SFC语言是很顺手的。运用SFC语言在处理控制软件按不同的扫描执行周期分割为多个程序段较为简便,这为减少最大的扫描时间提供了先决条件。应该指出,在运用SFC语言表达程序段的分割时均是显性的,按执行条件是否满足来启动不同程序段的执行顺序,而执行条件都是显性条件,不存在隐含条件。
概括起来说,SFC具有结构化的属性:其自顶向下的设计方法,以及可将步用作宏步,十分便于在初步设计时作为结构化的工具;进入详细设计阶段,再根据已明确的控制步骤和要求细节,将宏步扩展为每个具体的步,列出转换条件和与每一步相关联的动作,控制程序就在这样有条不紊的氛围中完成。在PLC软件开发生命周期的初始关键阶段,SFC最适合于按软件工程的方法进行开发,而其它4种语言,还有SFC语言本身,都适用于写程序代码的阶段。如何应用,则视具体情况而定。如果遇到相当复杂的控制问题,我们可以借助于有限状态自动机的方法,画出状态图,只要掌握了状态图与SFC语义的不同,由状态图转换为SFC程序也是相当便捷的。
遗憾的是,截至目前为止在编制PLC程序时,编程人员如果用到SFC,也只不过把它仅仅作为一种编制顺控程序的工具,就是在讲解IEC 61131-3编程语言国际标准的时侯,也没有突出SFC的结构化特性,使人们普遍对它的了解停留在表面。
7结束语
由以上描述和分析,我们清晰的认识到IEC61131-3标准通过软件模型表现了配置、资源、任务、程序组织单元的结构层次;又通过创建结构文本化语言ST,为程序组织单元的程序结构化实现,提供了文本化语言;另外还特别推荐发挥顺序功能图语言的强大功能,让它既可以为程序组织单元的结构化程序实现,提供了图形化语言;又可以为整个程序设计的各个阶段提供了实现结构化设计的工具。
在IEC 61131-3的基础上,一些开放式的编程平台如:加拿大ICS Triplex公司的IsaGraf(现被Rockwell收购)、德国KW公司的MULTIPROG、法国Copalp with Straton、 德国3S公司的CoDeSys 和奥地利Logicals, 都有很好的市场。其中以德国的KW、3S在我国最活跃。
这些编程软件平台不具体地依赖于特定的硬件产品。为数众多的PLC、DCS和SCADA生产厂商(包括像横河电机、欧姆龙、三菱电机、ABB等)都在这些商品化的基本编程软件系统的基础上,进行二次开发,并据此再将其高附加值的诀窍和控制算法封装在其中。它们都有专业团队提供很好的支持服务;还不断根据相关标准和规范推出新的扩展功能。如PLCopen的运动控制功能块库、功能安全规范、OPC信息模型等等。
我国工业自动化设备厂商贯彻IEC 61131-3标准,也采取了积极的态度。国内目前有20家PLC制造厂,许多都引进了基于IEC 61131-3的编程平台(如KW公司的MultiProg,3S的CodeSys),或自行开发了基于IEC 61131-3的编程平台(如浙江优稳和中自的Sunny)。还有一些大学和公司也开发了一些自用的基于IEC的编程软件。不过我国还没有出现商业化的IEC 611321-3的编程软件平台。近些年来,在机电设备的嵌入式控制器中采用基于国际标准的编程平台表现出日趋增长的趋向。例如,三一重工的工程机械和南车集团的高速列车的控制器都选用了KW的编程平台。
作者简介
彭瑜 男 教授级高工,中国自动化学会理事,中国自动化学会仪表和装置专业委员会常务委员,中国自动化学会专家咨询委员会委员,中国仪器仪表学会专家委员会委员,PLCopen中国组织主席。
参考文献
[1]彭瑜,何衍庆.IEC 61131-3编程语言及应用基础[M].北京:机械工业出版社,2009.
[2]R.W.Lewis Programming industrial control systems using IEC 61131-3,Revised edition The Institution of Electrical Engineers, London, United Kingdom 1998.
[3]Flavio Bonfatti, Paola Daniela Monari, Unbetto Sampieri IEC 61131-3 Programming Methodology Pubrished by ICS Triplex, Canada 2003.
共0条 [查看全部] 网友评论