什么是组态软件有哪些特点(深入解析组态软件详情)
组态软件:一般英文简称有三种分别为hmi/mmi/scada,对应全称为human and machine interface/man and machine interface /supervisory control and data acquisition,中文翻译为:人机界面/监视控制和数据采集 软件。目前组态软件的发展迅猛,已经扩展到企业信息管理系统,管理和控制一体化,远程诊断和维护以及在互联网上的一系列的数据整合。
1. 组态软件产生的背景
“组态”的概念是伴随着集散型控制系统(distributed control system简称dcs)的出现才开始被广大的生产过程自动化技术人员所熟知的。在工业控制技术的不断发展和应用过程中,pc(包括工控机)相比以前的专用系统具有的优势日趋明显。这些优势主要体现在:pc技术保持了较快的发展速度,各种相关技术已经成熟;由pc构建的工业控制系统具有相对较低的拥有成本;pc的软件资源和硬件资源丰富,软件之间的互操作性强;基于pc的控制系统易于学习和使用,可以容易地得到技术方面的支持。在pc技术向工业控制领域的渗透中,组态软件占据着非常特殊而且重要的地位。
组态软件是指一些数据采集与过程控制的专用软件,它们是在自动控制系统监控层一级的软件平台和开发环境,使用灵活的组态方式,为用户提供快速构建工业自动控制系统监控功能的、通用层次的软件工具。组态软件应该能支持各种工控设备和常见的通信协议,并且通常应提供分布式数据管理和网络功能。
对应于原有的hmi(人机接口软件,human machine interface)的概念,组态软件应该是一个使用户能快速建立自己的hmi的软件工具,或开发环境。在组态软件出现之前,工控领域的用户通过手工或委托第三方编写hmi应用,开发时间长,效率低,可靠性差;或者购买专用的工控系统,通常是封闭的系统,选择余地小,往往不能满足需求,很难与外界进行数据交互,升级和增加功能都受到严重的限制。组态软件的出现,把用户从这些困境中解脱出来,可以利用组态软件的功能,构建一套最适合自己的应用系统。随着它的快速发展,实时数据库、实时控制、scada、通讯及联网、开放数据接口、对i/o设备的广泛支持已经成为它的主要内容,随着技术的发展,监控组态软件将会不断被赋予新的内容。
2. 组态软件在我国的发展及国内外主要产品介绍
组态软件产品于80年代初出现,并在80年代末期进入我国。但在90年代中期之前,组态软件在我国的应用并不普及。究其原因,大致有以下几点:
①国内用户还缺乏对组态软件的认识,项目中没有组态软件的预算,或宁愿投入人力物力针对具体项目做长周期的繁冗的上位机的编程开发,而不采用组态软件;
②在很长时间里,国内用户的软件意识还不强,面对价格不菲的进口软件(早期的组态软件多为国外厂家开发),很少有用户愿意去购买正版。
③当时国内的工业自动化和信息技术应用的水平还不高,组态软件提供了对大规模应用、大量数据进行采集、监控、处理并可以将处理的结果生成管理所需的数据,这些需求并未完全形成。
图1 组态软件
随着工业控制系统应用的深入,在面临规模更大、控制更复杂的控制系统时,人们逐渐意识到原有的上位机编程的开发方式。对项目来说是费时费力、得不偿失的,同时,mis(管理信息系统,management information system)和cims(计算机集成制造系统,computer integrated manufacturing system)的大量应用,要求工业现场为企业的生产、经营、决策提供更详细和深入的数据,以便优化企业生产经营中的各个环节。因此,在1995年以后,组态软件在国内的应用逐渐得到了普及。下面就对几种组态软件分别进行介绍。
①intouch:wonderware的intouch软件是最早进入我国的组态软件。在80年代末、90年代初,基于windows3.1的intouch软件曾让我们耳目一新,并且intouch提供了丰富的图库。但是,早期的intouch软件采用dde方式与驱动程序通信,性能较差,最新的intouch7.0版已经完全基于32位的windows平台,并且提供了opc支持。
②fix:intellution公司以fix组态软件起家,1995年被爱默生收购,现在是爱默生集团的全资子公司,fix6.x软件提供工控人员熟悉的概念和操作界面,并提供完备的驱动程序(需单独购买)。intellution将自己最新的产品系列命名为ifix,在ifix中,intellution提供了强大的组态功能,但新版本与以往的6.x版本并不完全兼容。原有的script语言改为vba(visual basic for application),并且在内部集成了微软的vba开发环境。遗憾的是,intellution并没有提供6.1版脚本语言到vba的转换工具。在ifix中,intellution的产品与microsoft的操作系统、网络进行了紧密的集成。intellution也是opc(ole for process control)组织的发起成员之一。ifix的opc组件和驱动程序同样需要单独购买。
③citech:cit公司的citech也是较早进入中国市场的产品。citech具有简洁的操作方式,但其操作方式更多的是面向程序员,而不是工控用户。citech提供了类似c语言的脚本语言进行二次开发,但与ifix不同的是,citech的脚本语言并非是面向对象的,而是类似于c语言,这无疑为用户进行二次开发增加了难度。
④wincc:simens的wincc也是一套完备的组态开发环境,simens提供类c语言的脚本,包括一个调试环境。wincc内嵌opc支持,并可对分布式系统进行组态。但wincc的结构较复杂,用户最好经过simens的培训以掌握wincc的应用。
⑤forcecontrol(力控):北京三维力控科技有限公司的forcecontrol(力控)从时间概念上来说,力控也是国内较早就已经出现的组态软件之一。只是因为早期力控一直没有作为正式商品广泛推广,所以并不为大多数人所知。大约在93年左右,力控就已形成了第一个版本,只是那时还是一个基于dos和vms的版本。后来随着windows3.1的流行,又开发出了16位windows版的力控。但直至windows95版本的力控诞生之前,他主要用于公司内部的一些项目。32位下的1.0版的力控,在体系结构上就已经具备了较为明显的先进性,其最大的特征之一就是其基于真正意义的分布式实时数据库的三层结构,而且其实时数据库结构可为可组态的活结构。在1999~2000年期间,力控得到了长足的发展,最新推出的2.0版在功能的丰富特性、易用性、开放性和i/o驱动数量,都得到了很大的提高。在很多环节的设计上,力控都能从国内用户的角度出发,即注重实用性,又不失大软件的规范。另外,公司在产品的培训、用户技术支持等方面投入了较大人力,相信在较短时间内,力控软件产品将在工控软件界形成巨大的冲击。
其他常见的组态软件还有ge的cimplicity,rockwell的rsview,ni的lookout,pcsoft的wizcon以及国内一些组态软件通态软件公司的mcgs,也都各有特色。
图2
3. 组态软件的功能特点发展方向
目前看到的所有组态软件都能完成类似的功能:比如,几乎所有运行于32位windows平台的组态软件都采用类似资源浏览器的窗口结构,并且对工业控制系统中的各种资源(设备、标签量、画面等)进行配置和编辑;都提供多种数据驱动程序;都使用脚本语言提供二次开发的功能,等等。但是,从技术上说,各种组态软件提供实现这些功能的方法却各不相同。从这些不同之处,以及pc技术发展的趋势,可以看出组态软件未来发展的方向。
3.1数据采集的方式
大多数组态软件提供多种数据采集程序,用户可以进行配置。然而,在这种情况下,驱动程序只能由组态软件开发商提供,或者由用户按照某种组态软件的接口规范编写,这为用户提出了过高的要求。由opc基金组织提出的opc规范基于微软的ole/dcom技术,提供了在分布式系统下,软件组件交互和共享数据的完整的解决方案。在支持opc的系统中,数据的提供者作为服务器(server),数据请求者作为客户(client),服务器和客户之间通过dcom接口进行通信,而无需知道对方内部实现的细节。由于com技术是在二进制代码级实现的,所以服务器和客户可以由不同的厂商提供。在实际应用中,作为服务器的数据采集程序往往由硬件设备制造商随硬件提供,可以发挥硬件的全部效能,而作为客户的组态软件可以通过opc与各厂家的驱动程序无缝连接,故从根本上解决了以前采用专用格式驱动程序总是滞后于硬件更新的问题。同时,组态软件同样可以作为服务器为其他的应用系统(如mis等)提供数据。opc现在已经得到了包括interllution、simens、ge、abb等国外知名厂商的支持。随着支持opc的组态软件和硬件设备的普及,使用opc进行数据采集必将成为组态中更合理的选择。
3.2脚本的功能
脚本语言是扩充组态系统功能的重要手段。因此,大多数组态软件提供了脚本语言的支持。具体的实现方式可分为三种:一是内置的类c/basic语言;二是采用微软的vba的编程语言;三是有少数组态软件采用面向对象的脚本语言。类c/basic语言要求用户使用类似高级语言的语句书写脚本,使用系统提供的函数调用组合完成各种系统功能。应该指明的是,多数采用这种方式的国内组态软件,对脚本的支持并不完善,许多组态软件只提供if…then…else的语句结构,不提供循环控制语句,为书写脚本程序带来了一定的困难。微软的vba是一种相对完备的开发环境,采用vba的组态软件通常使用微软的vba环境和组件技术,把组态系统中的对象以组件方式实现,使用vba的程序对这些对象进行访问。由于visualbasic是解释执行的,所以vba程序的一些语法错误可能到执行时才能发现。而面向对象的脚本语言提供了对象访问机制,对系统中的对象可以通过其属性和方法进行访问,比较容易学习、掌握和扩展,但实现比较复杂。
3.3组态环境的可扩展性
可扩展性为用户提供了在不改变原有系统的情况下,向系统内增加新功能的能力,这种增加的功能可能来自于组态软件开发商、第三方软件提供商或用户自身。增加功能最常用的手段是activex组件的应用,目前还只有少数组态软件能提供完备的activex组件引入功能及实现引入对象在脚本语言中的访问。
3.4组态软件的开放性
随着管理信息系统和计算机集成制造系统的普及,生产现场数据的应用已经不仅仅局限于数据采集和监控。在生产制造过程中,需要现场的大量数据进行流程分析和过程控制,以实现对生产流程的调整和优化。现有的组态软件对大部分这些方面需求还只能以报表的形式提供,或者通过odbc将数据导出到外部数据库,以供其他的业务系统调用,在绝大多数情况下,仍然需要进行再开发才能实现。随着生产决策活动对信息需求的增加,可以预见,组态软件与管理信息系统或领导信息系统的集成必将更加紧密,并很可能以实现数据分析与决策功能的模块形式在组态软件中出现。
3.5对internet的支持程度
现代企业的生产已经趋向国际化、分布式的生产方式。internet将是实现分布式生产的基础。组态软件能否从原有的局域网运行方式跨越到支持internet,是摆在所有组态软件开发商面前的一个重要课题。限于国内目前的网络基础设施和工业控制应用的程度,笔者认为,在较长时间内,以浏览器方式通过internet对工业现场的监控,将会在大部分应用中停留于监视阶段,而实际控制功能的完成应该通过更稳定的技术,如专用的远程客户端、由专业开发商提供的activex控件或java技术实现。
3.6组态软件的控制功能
随着以工业pc为核心的自动控制集成系统技术的日趋完善和工程技术人员的使用组态软件水平的不断提高,用户对组态软件的要求已不像过去那样主要侧重于画面,而是要考虑一些实质性的应用功能,如软件plc,先进过程控制策略等。
软plc产品是基于pc机开放结构的控制装置,它具有硬plc在功能、可靠性、速度、故障查找等方面的特点,利用软件技术可将标准的工业pc转换成全功能的plc过程控制器。软plc综合了计算机和plc的开关量控制、模拟量控制、数学运算、数值处理、通信网络等功能,通过一个多任务控制内核,提供了强大的指令集、快速而准确的扫描周期、可靠的操作和可连接各种i/o系统及网络的开放式结构。所以可以这样说,软plc提供了与硬plc同样的功能,而同时具备了pc环境的各种优点。目前,国际上影响比较大的产品有:法国cj international公司的isagraf软件包、pcsoft international公司的winplc、美国wizdom control intellution公司的paradym-31、美国moore process automation solutions公司processsuite、美国wonder ware controls公司的incontrol、softplc公司的softplc等。国内推出软plc产品的组态软件还不见有,国内组态软件要想全面超过国外的竞争对手,就必须搞创新,推出类似功能的产品。
随着企业提出的高柔性、高效益的要求,以经典控制理论为基础的控制方案已经不能适应,以多变量预测控制为代表的先进控制策略的提出和成功应用之后,先进过程控制受到了过程工业界的普遍关注。先进过程控制(advanced process control,apc)是指一类在动态环境中,基于模型、充分借助计算机能力,为工厂获得最大理论而实施的运行和控制策略。先进控制策略主要有:双重控制及阀位控制、纯滞后补偿控制、解耦控制、自适应控制、差拍控制、状态反馈控制、多变量预测控制、推理控制及软测量技术、智能控制(专家控制、模糊控制和神经网络控制)等,尤其智能控制已成为开发和应用的热点。目前,国内许多大企业纷纷投资,在装置自动化系统中实施先进控制。国外许多控制软件公司和dcs厂商都在竞相开发先进控制和优化控制的工程软件包。据资料报道,一个乙烯装置投资163万美元实施先进控制,完成后预期可获得效益600万美元/年。从上可以看出能嵌入先进控制和优化控制策略的组态软件必将受到用户的极大欢迎。
4.结束语
用户的需求促使技术不断进步,在组态软件上这种趋势体现得尤为明显。未来的组态软件将是提供更加强大的分布式环境下的组态功能、全面支持activex、扩展能力强、支持opc等工业标准、控制功能强、并能通过internet进行访问的开放式系统。
hmi是human machine interface的简称。
hmi其实广义的解释就是“使用者与机器间沟通、传达及接收信息的一个接口”。
举个例子来说,在一座工厂里头,我们要搜集工厂各个区域的温度、湿度以及工厂中机器的状态
等等的信息透过一台 监视并记录这些参数,并在一些意外状况发生的时候能够加以处理。
这便是一个很典型的scada/hmi的运用,一般而言,hmi系统必须有几项基本的能力:
实时的资料趋势显示——把撷取的资料立即显示在屏幕上。
自动记录资料——自动将资料储存至数据库中,以便日后查看。
历史资料趋势显示——把数据库中的资料作可视化的呈现。
报表的产生与打印——能把资料转换成报表的格式,并能够打印出来。
图形接口控制——操作者能够透过图形接口直接控制机台等装置。
警报的产生与记录——使用者可以定义一些警报产生的条件,
比方说温度过度或压力超过临界值,在这样的条件下系统会产生警报,通知作业员处理。