在使用工控软件时,人们经常提到组态一词。与硬件生产相对照,组态与组装类似。如要组装一台计算机,事先提供了各种型号的主板、机箱、电源、CPU、显示器、硬盘及光驱等,我们的工作就是用这些部件拼凑成自己需要的计算机。当然,软件中的组态要比硬件的组装有更大的发挥空间,因为它一般要比硬件中的“部件”更多,而且每个“部件”都很灵活,且软件都有内部属性,通过改变属性即可以改变其规格(如大小、形状、颜色等)。
组态(Configuration)有设置、配置等含义,也就是模块的任意组合。在软件领域内,是指操作人员根据应用对象及控制任务的要求,配置用户应用软件的过程(包括对象的定义、制作和编辑,以及对象状态特征属性参数的设定等),即使用软件工具对计算机及软件的各种资源进行配置,达到让计算机或软件按照预先设置自动执行特定任务、满足使用者要求的目的,也就是把组态软件视为“应用程序生成器”。
组态软件更确切的称呼应该是人机界面(HMI,Human Machine Interface)/控制与数据采集(SCADA,Supervisory Control and Data Acquisition)软件。组态软件最早出现时,实现HMI和控制功能是其主要内涵,即主要解决人机图形界面和计算机数字控制问题。
组态软件是指一些数据采集与过程控制的专用软件,它们是在自动控制系统控制层一级的软件平台和开发环境,使用灵活的组态方式(而不是编程方式)为用户提供良好的用户开发界面和简捷的使用方法,它解决了控制系统通用性问题。其预设置的各种软件模块可以非常容易地实现和完成控制层的各项功能,并能同时支持各种硬件厂家的计算机和I/O产品,与工控计算机和网络系统结合,可向控制层和管理层提供软/硬件的全部接口,进行系统集成。组态软件应该能支持各种工控设备和常见的通信协议,并且通常应提供分布式数据管理和网络功能。对应于原有的HMI概念,组态软件应该是一个使用户能快速建立自己HMI的软件工具或开发环境。
在工业控制中,组态一般是指通过对软件采用非编程的操作方式(主要有参数填写、图形连接和文件生成等)使得软件乃至整个系统具有某种指定的功能。由于用户对计算机控制系统的要求千差万别(包括流程画面、系统结构、报表格式、报警要求等),而开发商又不可能专门为每个用户进行开发,所以只能是事先开发好一套具有一定通用性的软件开发平台,生产(或者选择)若干种规格的硬件模块(如I/O模块、通信模块、现场控制模块),然后根据用户的要求在软件开发平台上进行二次开发,以及进行硬件模块的连接。这种软件的二次开发工作就称为组态。相应的软件开发平台就称为控制组态软件,简称组态软件。“组态”一词既可以用做名词也可以用做动词。计算机控制系统在完成组态之前只是一些硬件和软件的集合体,只有通过组态,才能使其成为一个具体的满足生产过程需要的应用系统。
从应用角度讲,组态软件是完成系统硬件与软件沟通、建立现场与控制层沟通的人机界面软件平台,它主要应用于工业自动化领域,但又不仅仅局限于此。在工业过程控制系统中存在两大类可变因素:一是操作人员需求的变化;二是被控对象状态的变化及被控对象所用硬件的变化。组态软件正是在保持软件平台执行代码不变的基础上,通过改变软件配置信息(包括图形文件、硬件配置文件、实时数据库等)适应两大不同系统对两大因素的要求,构建新的控制系统的平台软件。以这种方式构建系统既提高了系统的成套速度,又保证了系统软件的成熟性和可靠性,使用方便,且便于修改和维护。
目前的组态软件都采用面向对象编程技术,它提供了各种应用程序模板和对象。二次开发人员根据具体系统的需求,建立模块(创建对象),然后定义参数(定义对象的属性),最后生成可供运行的应用程序。具体地说,组态实际上是生成一系列可以直接运行的程序代码。生成的程序代码可以直接运行在用于组态的计算机上,也可以下装(下载)到其他计算机(站)上。组态可以分为离线组态和在线组态两种。所谓离线组态,是指在计算机控制系统运行之前完成组态工作,然后将生成的应用程序安装在相应的计算机中。而在线组态则是指在计算机控制系统运行过程中的组态。
随着计算机软件技术的快速发展及用户对计算机控制系统功能要求的增加,实时数据库、实时控制、SCADA、通信及联网、开放数据接口、对I/O设备的广泛支持已经成为其主要内容,随着计算机控制技术的发展,组态软件将会不断被赋予新的内涵。
在实时工业控制应用系统中,为了实现特定的应用目标,需要进行应用程序的设计和开发。过去由于技术发展水平的限制,没有相应的软件可供使用。应用程序一般都需要应用单位自行开发或委托专业单位开发,这不仅影响了整个工程的进度,而且系统的可靠性和其他性能指标也难以得到保证。为了解决这个问题,不少厂商在发展系统的同时,也致力于控制软件产品的开发。工业控制系统的复杂性对软件产品提出了很高的要求。要想成功开发一个较好的通用控制系统软件产品,需要投入大量的人力物力,并需经实际系统检验,代价是很昂贵的,特别是功能较全、应用领域较广的软件系统,投入的费用更是惊人。从应用程序开发到应用软件产品正式上市,其过程有很多环节。因此,一个成熟的控制软件产品的推出,一般带有如下特点。
(1)在研制单位丰富系统经验的基础上,花费多年努力和代价才得以完成。
(2)产品性能不断完善和提高,以版本更新为实现途径。
(3)产品售价不可能很低,一些国外的著名软件产品更是如此,因此软件费用在整个系统中所占的比例逐年提高。
对于应用系统的使用者而言,虽然购买一个适合自己系统应用的控制软件产品要付出一定的费用,但相对于自己开发所花费的各项费用总和还是比较合算的。况且,一个成熟的控制软件产品一般都已在多个项目中得到了成功应用,各方面的性能指标都在实际运行中得到检验,能保证较好地实现应用单位控制系统的目标,同时整个系统的工程周期也可相应缩短,便于更早地为生产现场服务,并创造出相应的经济效益。因此,近年来有不少应用单位也开始购买现成的控制软件产品来为自己的应用系统服务。
在组态软件出现之前,工控领域的用户通过手工或委托第三方编写HMI应用,开发时间长、效率低、可靠性差,或者购买专用的工控系统,通常是封闭的系统,选择余地小,往往不能满足需求,很难与外界进行数据交互,升级和增加功能都受到严重的限制。组态软件的出现把用户从这些困境中解脱出来,用户可以利用组态软件的功能构建一套最适合自己的应用系统。
采用组态技术构成的计算机控制系统在硬件设计上除采用工业PC外,系统大量采用各种成熟通用的I/O接口设备和现场设备,基本不再需要单独进行具体的电路设计。这不仅节约了硬件开发时间,而且提高了工控系统的可靠性。组态软件实际上是一个专为工控开发的工具软件。它为用户提供了多种通用工具模块,用户不需要掌握太多的编程语言技术(甚至不需要编程技术)就能很好地完成一个复杂工程所要求的所有功能。系统设计人员可以把更多的注意力集中在如何选择最优的控制方法、设计合理的控制系统结构、选择合适的控制算法等这些提高控制品质的关键问题上。另外,从管理的角度来看,用组态软件开发的系统具有与Windows一致的图形化操作界面,非常便于生产的组织与管理。
由于组态软件都是由专门的软件开发人员按照软件工程的规范来开发的,使用前又经过比较长时间的工程运行考验,其质量是有充分保证的。因此,只要开发成本允许,采用组态软件是一种比较稳妥、快速和可靠的办法。
组态软件是标准化、规模化、商品化的通用工业控制开发软件,只需进行标准功能模块的软件组态和简单的编程,就可设计出标准化、专业化、通用性强、可靠性高的上位机人机界面控制程序,且工作量较小,开发调试周期短,对程序设计员要求也较低,因此控制组态软件是性能优良的软件产品,已成为开发上位机控制程序的主流开发工具。
由IPC、通用接口部件和组态软件构成的组态控制系统是计算机控制技术综合发展的结果,是技术成熟化的标志。由于组态技术的介入,计算机控制系统的应用速度大大加快了。
随着社会对计算机控制系统需要的日益增加,组态软件已经形成一个不小的产业。目前市面上已经出现了各种不同类型的组态软件。按照使用对象来分类,可以将组态软件分为两类:一类是专用的组态软件;另一类是通用的组态软件。
专用的组态软件主要是由一些集散控制系统厂商和PLC厂商专门为自己的系统开发的,如Honeywell的组态软件、Foxboro的组态软件、Rockwell公司的RSView、西门子公司的WinCC和GE公司的Cimplicity。
通用的组态软件并不特别针对某一类特定的系统,开发者可以根据需要选择合适的软件和硬件来构成自己的计算机控制系统。如果开发者在选择了通用组态软件后发现其无法驱动自己选择的硬件,则可以提供该硬件的通信协议,请组态软件的开发商来开发相应的驱动程序。
通用组态软件目前发展很快,也是市场潜力很大的产业。国外开发的组态软件有FIX/iFIX、InTouch、Citech、Lookout、TraceMode,以及Wizcon等。国产的组态软件有组态王(Kingview)、MCGS、Synall2000、ControX 2000、Force Control和FameView等。
下面简要介绍几种常用的组态软件。
(1)InTouch。美国Wonderware公司的InTouch堪称组态软件的“鼻祖”,是率先推出的16位Windows环境下的组态软件,在国际上获得较高的市场占有率。InTouch软件的图形功能比较丰富,使用较方便,其I/O硬件驱动丰富,工作稳定,在中国市场普遍受到好评。
(2)iFIX。美国Intellution公司的FIX产品系列较全,包括DOS版、16位Windows版、32位Windows版、OS/2版和其他一些版本,功能较强,是全新模式的组态软件,思想和体系结构都比现有的其他组态软件先进,但实时性仍欠缺,最新推出的iFIX是全新模式的组态软件,思想和体系结构都比较新,提供的功能也较完整。但由于过于“庞大”和“臃肿”,对系统资源耗费巨大,且经常受微软操作系统的影响。
(3)Citech。澳大利亚CIT公司的Citech是组态软件中的后起之秀,在世界范围内扩展很快。Citech产品的控制算法比较好,具有简洁的操作方式,但其操作方式更多的是面向程序员,而不是工控用户。I/O硬件驱动相对较少,但大部分驱动程序可随软件包提供给用户。
(4)WinCC。德国西门子公司的WinCC也属于比较先进的产品之一,功能强大,使用较复杂,新版软件有了很大进步,但在网络结构和数据管理方面要比InTouch和iFIX差。WinCC主要针对西门子硬件设备。因此对使用西门子硬件设备的用户来说,WinCC是不错的选择。若用户选择其他公司的硬件,则需开发相应的I/O驱动程序。
(5)ForceControl。大庆三维公司的 ForceControl(力控)是国内较早出现的组态软件之一,该产品在体系结构上具备了较明显的先进性,最大的特征之一就是其基于真正意义上的分布式实时数据库三层结构,而且实时数据库结构为可组态的活结构,是一个面向方案的HMI/SCADA平台软件。在很多环节的设计上,能从国内用户的角度出发,既注重实用性,又不失大软件的规范。
(6)MCGS。北京昆仑通态公司的MCGS设计思想比较独特,有很多特殊的概念和使用方式,为用户提供了解决实际工程问题的完整方案和开发平台。使用MCGS,用户无须具备计算机编程知识,就可以在短时间内轻而易举地完成一个运行稳定、功能成熟、维护量小,且具备专业水准的计算机监控系统的开发工作。
(7)组态王(Kingview)。组态王是北京亚控科技发展有限公司开发的一个较有影响的组态软件。组态王提供了资源管理器式的操作主界面,并且提供了以汉字作为关键字的脚本语言支持。其界面操作灵活、方便,易学易用,有较强的通信功能,支持的硬件也非常丰富。
(8)WebAccess。webAccess是研华(中国)公司近几年开发的一种面向网络监控的组态软件,是未来组态软件的发展趋势。