工控编程语言IEC 61131-3的现状和发展


功能块因为其执行效率有必要再提高,或者是在一定的条件下其功能执行的正确性存在问题,需要重新编程,我们只要保持该功能块的外部接口(输入/输出定义)不变,仍可照常使用。同时,许多原创设备制造厂(OEM)将它们的专有控制技术压缩在用户自定义的功能块中,既可以保护知识产权,又可以反复使用,不必一再地为同一个目的而编写和调试程序。
5.标准要求严格的数据类型定义。这意味着,IEC 61131-3编程语言为减少程序开发人员对一个变量做出错误的数据类型定义创造了有效的限制。
软件工程中很早就认识到许多编程的错误往往发生在程序的不同部分其数据的表达和处理不同。IEC 61131-3从源头上注意防止这类低级的错误,虽然采用的方法可能导致效率降低一点,但换来的价值却是程序的可靠性、可读性和可维护性。IEC 61131-3采用以下方法防止这些错误:
★限制函数与功能块之间的互连范围:只允许兼容的数据类型与功能块之间互连。
★限制运算只可对其数据类型已明确定义的变量进行。
★禁止隐含的数据类型变换。比如,实型数不可执行按位运算。若要运算,编程者必须先通过显式变换函数REAL_TO_WORD,把实型数变换为WORD型位串变量。标准中规定了多种标准固定字长的数据类型,包括位串,带符号位和不带符号位的整数型(8位、16位、32位和64位字长)。
6.对程序执行具有完全的控制能力。传统的PLC只能按扫描方式顺序执行程序,对程序执行的多样性要求如由事件驱动某一段程序的执行,程序的并行处理等均无能为力。IEC 61131-3允许程序的不同部分,在不同的条件(包括时间条件)下,以不同的比率并行执行。即允许对一个程序的不同部分规定不同的执行次数、不同的执行时间和并行执行的方式。这意味着,以“任务”控制的方式可让一个程序的不同部分以不同的扫描周期进行扫描。
7.提供灵活的编程语言选择。有三种图形化语言和两种文本化语言可在表达一个控制应用程序的不同部分时,让程序编制人员有很大的自由度去选用他认为合适的语言来设计。换句话说就是,程序的不同部分可用上述五种语言的任意一种来表达。
8.支持数据结构的定义。由于支持数据结构,所以相关的数据元素即便属于不同的数据类型,也可在程序不同的部分传送,就如它们是一个单一的实体。在不同程序组织单元POU之间传送复杂信息,如同传送单一变量一样。这不但改善了程序的可读性,而且保证了相关数据的存取准确无误。
9.完全支持顺序控制的各种描述,再复杂的顺序行为也可轻而易举地用顺序功能图SFC这样的图形化语言加以分解、描述及编程。顺序控制过程的每一步都可用步(steps)、其动作(actions)和转移(transitions between steps)准确描述。
至于IEC 61131-3的缺陷主要是以下两点:
1.IEC 61131-3沿用了直接表示与硬件有关的变量的方法,这就妨碍了均符合标准的PLC系统之间做到真正意义上的程序可移植。由于不同机种有自己的输入、输出的定义(这些均与硬件相关),如果想把一个在某个厂商的PLC中运行得很好的程序原封不动地搬到另一个PLC厂商的机器,必须先从技术文件中找到有关与硬件相关变量的定义,然后再在另一个机型中对此重新定义。至少可以这样说,不存在与硬件相关变量之间的变换。
2.IEC 61131-3只给出一个单一的集中PLC系统的配置机制,这显然不能适应分布式结构的软件要求。由于工业通信技术的飞速发展,特别是现场总线和以太网在工业中的实际应用,给工业自动化的体系结构带来了巨大影响。因此,IEC 61131-3必须适应客观形势的发展,在这方面进行突破。它应该允许功能块不一定集中常驻在单个硬件中,允许分散于不同硬件的功能块,通过通信方式也可以构成一个控制程序。这就是正处于制定中的IEC 61499的主攻方向。
加速IEC 61131-3的推广应用
要全面高水平实施IEC 61131-3还有一个相当艰苦过程。特别是它对控制领域的影响并不限于PLC,它还适用于DCS、PC控制,运动控制,甚至SCADA系统,因此推广应用IEC 61131-3就不是几个人、几个厂商、甚至几个国家的事情,必须有一个不以赢利为目的国际组织进行全面规划,积极推广。值得庆幸的是致力于工业控制编程标准化的国际组织PLCopen,以自己的有效活动表明它足以堪当此重任。
PLCopen目前拥有分布于21个国家的100多个单元会员,下设5个技术委员会[8]:TC1重点在于与IEC合作共同发展、提高和完善IEC61131-3,目前具体工作是发行的第2版修订文本。TC2重点在于定义功能块的程序库,协调功能块的约定。目前正在组织对运动控制的功能块进行定义,创立可重复使用、独立于硬件的运动控制行规(profile)。TC3重点是制定编程语言一致性的测试标准。我们知道,IEC61131-3标准仅给出了一致性的基本规则,并不提供实际编程系统的导则。所以关于编程系统的一致性测试实际上就是检验不同的编程系统是否真正具有开放性的问题。TC4重点是通信,负责制订通信接口及应用交换格式等。TC5则着重于安全软件导则,重点在于如何运用IEC 61508(有关系统安全的功能安全)支持安全编程技术。
一致性的实质在于建立一套测试方法和程序,这样才能推动标准的真正贯彻。PLCopen把一致性划分为3个等级:基本级,可重复使用级,以及全兼容级。符合基本级,可解决小系统的可移植性;符合可重复使用级和全兼容级,可解决功能块程序库的可移植性。目前,指令表(IL)、结构文本(ST)和顺序功能图(SFC)的基本级定义已完成;有关指令表、结构文本和顺序功能图的测试软件已投入使用;有25个编程软件包已通过一致性认证。梯形图(LD)和功能块图(FBD)的基本级一致性定义正在制定中,相应测试软件正在准备中。由于要全部满足IEC 61131-3标准的要求实属不易,所以标准中在许多方面允许部分实现标准,这就给制造厂商相当大的自由度。也正因为如此,如果能在IL、ST、SFC、LD和FBD五个方面均达到可重复使用级,则该编程系统即达到了全兼容级。
IEC 61131-3的修订和发展
IEC 61131-3第二版已于2000年下半年进行了表决,现已公布施行。第二版对第一版作了少许修改,目的主要在于提高程序组织单元(如用IEC 61131-3的编程语言写的程序,函数,功能块)的可读性和有用性。主要改动如下[7]:
(1)将直接量(literal value)的类型作为该量的一部分来表示,以方便该量的应用,达到一目了然的效果。例如用UINT #345表示无符号整型数,正好对应有符号整型数INT #345。
(2)在第1版中,函数(不是功能块)不允许存在由于其执行而产生的副作用。第2版中放松了这一要求,只要在函数的定义中说明所产生的副作用并非有害即可。
(3)对结构化文本(ST)这一种编程语言的句法做了改进,使函数和功能块的多输出连接可以具有一种等效于功能块图(FBD)的多输出连接的灵活性。
(4)第2版中规定了一种新的字符串数据类型WSTRING,以适应在ISO/IEC 10646标准中定义的宽字符(即双字节)的字符串。
计划中的IEC 61131-3的第3次修改版将与IEC 61499相协调,在保持IEC 61131-3原有优点的同时,消除它两个最大的缺陷。智能式传感器和执行器本身就具有执行控制功能的能力,如果IEC 61131-3能支持分布式系统体系结构的编程,那么只要开发出相应的软件工具,就能组成灵活性极强的现场总线控制系统。IEC技术委员会(TC65)启动了IEC 61499 工业过程测量和控制系统用功能块项目,目的之一就在于对IEC 61131-3进行适当的扩展。这主要是:
★给出如何使PLC具有表达61499设备特性的能力。
★引入有关61499如何使61131-3增加附加价值的阐述,而61131-3又如何增加61499的附加价值的阐述。
目前61131-3第三版的修订内容已公布了32项[9],主要有:
在61131-3中增加新的定义“交叉可复用性”(cross-reusability),而不在61131-3中开发COMPLIANCE CLASSES or PROFILE(一致级或行规)。
61499和61131-3形式句法和语法的关系。
用服务接口功能块( SIFB,Service-interface function block)提供对过程数据的存取,取代原来的与硬件相关的语言特性,如I/O地 址的直接表示。
取消VAR_GLOBAL结构,用相应的服务接口功能块代替,以提供对系统的全局变量的存取。
用服务接口功能块替代VAR_ ACCESS结构。
用61499的设备/资源模型取代CONFIGURATION结构。
引入61499的应用模型和在资源上的子部 分的映射。
引入执行控制图编程语言元素。
61499功能块算法采用61131-3语言编程。
设计将现有的61131-3的算法嵌入61499的 分散式功能块的方法。还有一些与61499无直接关系的修改。
IEC 61499—IEC 61131-3的发展和补充
早在1990年初,IEC技术委员会(TC65)还在制定61131-3编程语言的时候就认为,为了细化和发展功能块方法,有必要制定一个功能块应用的公共模型。并将此项目命名为IEC 61499《工业过程测量和控制系统用功能块》,把制定这个标准的工作交给其下属的第六工作组(TC65/WG6)。目的就在于对IEC 61131-3进行适当的扩展。
目前,IEC 61499的前两个部分已作为PAS(公众可利用规范Publicly AvailIable Specification)公布。如果能取得工业界的积极响应和支持,在2003年就可能以正式标准颁布[10]。应注意的是,61499不是一个独立的标准,为实现分布式工业过程测控系统我们至少还需要:
★通信行规 它定义标准的通信功能块及其标准开放性通信的映射服务,就如在现场总线国际标准所规定的那样。
★标准编程语言 诸如IEC 61131-3规范的基本功能块类型中的算法。
★在特定范畴中(如过程控制功能块)应用的标准功能块类型及其导则。
61499-1是针对通过通信网络互连的模块化分布系统的体系结构标准。它定义了为精确描述分布式控制系统的功能块和应用程序的体系结构、模型及其文本语法。其系统模型包括与被控过程(或机械)的接口,与通信网络的接口,以及隐含的分布式应用程序。
61499-2是工程任务支持(Engineering Task Support),进一步描述创建和管理基于功能块概念的工程系统所必须的概念(如资源和设备类型的功能描述方法),分布式工业过程测控系统的规范及软件工具间信息交换方式等,为设计、实现和维护分布式工业过程测控系统提供工程指导。61499-2把可扩展标志语言XML定义为61499的的文件交换格式。这意味着61499功能块设计可以通过因特网传递,并用下一代网页浏览器直接在网页上浏览。这必将给最终用户带来极大的利益。在IEC 61499-1中,规定了系统模型包括与被控过程(或机械)的接口,与通信网络的接口,以及隐含的分布式应用程序(见图4)。


按此在新窗口浏览图片

由图可见,一组互连的设备(仪表,器件等)彼此之间通过一个或多个网络通信,这些网络也可以构成多级递阶的方式进行通信。应用程序可常驻在一个设备中(如应用程序C),也可常驻在多个设备中(如应用程序A和B)。例如,一个应用程序可以包括一个或多个控制回路,其中输入采挥由一个设备执行,控制运算由口力一个设备执行,输出变换由第3个设备完成。
IEC 61499还给出应用程序的模型它由若干个可能分散在多个设备中的功能块互连而成。与集中系统不同的是,分散系统的程序执行不再按扫描方式,或是以多任务多进程的方式进行,它要求在指定数据传输与控制算法之间的关系时具有明确的显性机制。为了满足这个要求,IEC 61499增加了一个显性事件接口,以及执行IEC 61131-3

COPYRIGHT(C) 2011 厦门永宏亚得机电科技有限公司版权所有(闽ICP备05025945号) ALL RIGHTS RESERVED?

电话: 0592-5190891 传真: 0592-5190720 E-Mail: E-mail:yade8895@163.com
地址: 厦门市海沧区兴港六里17号2607室 邮编:361009 联系人:翟先生