本专题将道德从技术上分析实时信息系统的构建,即介绍从实时数据库到实时信息系统的开发过程,随后还将介绍实时信息系统与其他系统的集成及应用情况。在实时数据库的平台上开发实时信息系统我们称为实时信息系统的构建,与一般的信息系统开发不同的是,由于实时信息系统的实时信息要从企业的生产现场自动采集得来,所以实时信息系统的开发不只是纯软件的工作,还有生产现场数据实时采集、数据网络实时通信等大量现场工作。这里重点将讨论实时数据库与现场的关系。
从20世纪70年代开始,国内大量引进DCS技术和产品,随着DCS系统的大量应用,企业的生产规模越来越大,企业的管理层就有了生产数据集中的需求,即对实时信息系统的需求。90年代初,在引进国外实时数据库的同时,国内已经有不少单位开始研究实时数据库的理论并付诸实践。10多年过去了,据笔者不完全了解,国内实时数据库和实时信息系统的应用有了较大发展。但是由于从实时数据库到实时信息系统的构建有相当的技术难度,而且运行和维护好一个实时信息系统决非易事,真正成功的高水平实例不多。因为要构建好并且应用好一个高水平的实时信息系统,其难度不亚于构建一个高水平的ERP系统。
目前在理论上对实时数据、实时数据库、实时数据库的结构等基本方面还没有统一的定义和处理方法,实时数据库要达到关系数据库那样理论和系统的统一尚需时日。不同开发商的实时数据库系统对于实时数据的定义、理解和处理不尽一致,对于实时数据库的功能和性能的要求也不尽一致,实时数据库能达到的实际性能与功能也是参差不齐,对实时数据库的访问也没有类似SQL语言那样的标准。
实时数据与实时数据库
在流程型工业中实时数据原本是指存在于生产现场的生产参数如温度、流量、压力、物(液)位等,在现代化生产中这些实时数据已经被变送器采集并转换为数字量而存于DCS或SCADA系统的局部实时数据库中,本文的实时数据将从这个基础讨论起。按数据的类型分,实时数据可分为模拟量、累计量和开关量。模拟量可以是温度、压力、瞬时流量、物位、产品度量、产品质量等,模拟量的特点是仅与时刻有关; 累计量可以是累计流量、产品产量、原料消耗量、库(罐)存量等,累计量的特点是不但与时刻有关而且与时间段的起始与结束时刻有关; 开关量如电力开关的位置、阀门的开闭、设备的在线与备用、生产控制中的操作条件等,开关量的特点是二位式数据。实时数据的最大特点是时效性,实时数据在模拟系统中仅仅在某一时刻有效,在数字系统(目前都是数字系统)中由于实时数据存在时间上非连续的模数转换,实时数据只在本采样周期内有效,过了有效期的数据便失效。
实时数据库即存储实时数据的数据库。由于实时数据的时效性,实时数据库中存储的实时数据应该能尽量跟上现场实时数据的变化,否则实时数据库中存储的是无效数据。事实上,数字系统不可能像模拟系统那样几乎没有滞后地跟随现场的变化,数字系统的滞后主要取决于DCS(或SCADA系统)的数据采集的采集周期,数据采集周期的选择又与数据载体参数的变化速率(载体的时间常数)有关。一般的数据采样周期数量级在0.1秒至1秒左右,用于闭环控制的采集周期可能小些,仅用于测量的采集周期可能大些。从方便观察的角度说,数据的变化周期又不可太快,在DCS或SCADA系统的人机画面上,实时数据的刷新周期在1~2秒。如果实时数据库能以2秒的周期跟上实时数据的变化,则用于流程型工业的企业级实时数据库的实时性能就可以得到保证。而据不完全统计: 国内已经在现场运行的实时数据库系统包括使用进口实时数据库的系统只有个别系统能达到这一指标,其中原因下文将做分析。
实时数据库之与非实时数据库的根本区别在于实时数据库能“实时”地跟随生产现场的变化。为了能够跟上实时数据的变化,实时数据库通常会在物理上定义一个常驻计算机内存区的数据结构,这样存放其中的实时数据能快速数据刷新,而且计算机开销极小。剩下的重要问题就是将实时数据以尽快的速度和最小的周期送往实时数据库以刷新旧的实时数据,这可能是构建优良性能的实时信息系统的技术难点。
实时数据库的一个重要功能是对实时数据的数据处理,包括对数据合理性的判断、数据滤波、对累计量的处理如流量积分,消耗量和产量的计算等。数据处理是计算机的“强项”,该功能将不是本文讨论的重点。
相对于磁存储介质(磁盘),计算机内存的容量是有限的,因而作为实时数据库的核心,它能存储的实时数据也是有限的。另一方面实时数据必须定期存入磁盘保存,以备后用。存入磁盘的数据我们称为历史数据,历史数据已是属于非实时数据的范畴了。但由于历史数据真实地记录了过去某一时刻或时段的生产数据,也是实时数据库的重要组成部分。早期的实时数据库使用封闭的文件系统,目前先进的实时数据库系统直接使用开放的关系数据库如Oracle或SQL Server等存储历史数据,这样实时数据库就可以直接融入上层应用信息系统。
实时数据库的结构
目前国内外的实时数据库产品对实时数据和实时数据库本身的结构基本上没有太多的考虑,有的实时数据库系统是从DCS系统或SCADA系统改造而来,有的实时数据库系统是从实时仿真系统改造而来,它们的实时数据库或多或少带有原来系统的烙印,尤其是引进的实时数据库,其结构并不完全符合中国流程企业的实时数据的实际情况,如不适应中国流程企业中的实际组织结构。
如前所述,国内流程企业中生产数据的实际结构是很复杂的,生产装置的数据、分析实验室的数据、储运系统的数据、动力系统的数据、电力系统的数据等。要将一个企业的生产实时数据映射到实时数据库,只是简单地用一个位号,即使用一维数据结构的数据库恐怕是难以胜任的。要方便地存储、刷新和检索实时数据,实时数据库的结构应该是适应国内流程企业实际情况的多维结构。我们提出多维实时数据库的概念,并且在实践中使用于证明是可行和正确的。多维实时数据库不但符合中国企业的实际情况,也为分布式实时数据库系统、多级实时数据库系统的发展展示了前景(下文中要介绍的NSIS实时数据库系统就是多维实时数据库的成功范例)。
构建实时信息系统
构建实时信息系统,首先要有实时数据库平台。目前常见的有国外引进的OSI 公司的PI、Aspen公司的Infoplus及Honeywell 公司的Uniformance(Phd),国内有双硕公司的NSIS及浙大中控的ESP-iSYS等实时数据库等平台。与构建一般的信息系统类似,有一个好的关系数据库,还要有一个好的二次开发才能构建一个好的信息系统。
实时信息系统除了实时数据库外,还必须有配套的系统,如“数据采集子系统”、“图形组态子系统”、“实时数据检索子系统”、“客户端实时界面子系统”等,才能构成一个完整的实时信息系统。其中最重要的子系统是数据采集子系统,这是本文要重点讨论的构建实时信息系统的特点和难点。数据采集子系统的两大任务是实时数据的自动采集和实时数据的实时传送。
1.实时数据自动采集
实时数据自动采集是实时数据库系统在数据来源方面区别于其他信息系统的根本所在(一般信息系统的数据来源主要是人工录入或其他数据库),它正是构建实时数据库系统的重点与难点。其困难在于流程工业企业的现场非常复杂。
流程工业企业的生产控制层有多种生产装置,各有或共有DCS控制系统,DCS控制系统又有各种厂家、不同型号、不同操作系统。要从DCS获取数据,DCS系统必须开放,好在目前新型的DCS都是开放的,而且开放标准逐渐统一为OPC 基金会制订的OPC (OLE for Process Control)标准。以横河CS系列为例,其OPC接口能以1000ms的刷新周期和500数据/秒的通过量提供实时数据,这一指标完全可满足大部分实时信息系统的要求。但是目前流程工业企业运行的其他实时监控系统并不都具有OPC开放接口的。流程工业企业还有储运系统,以石化企业为例,企业有数以百计的物料罐(油罐),罐中的储量是相当重要的数据。现代大型企业的物料罐一般都安装了物位仪以及配套的SCADA系统,用以测量物位并以此计算储量。由于物位仪来自不同厂家、不同型号,因而从物位仪中读取实时数据是一件烦杂的工作。要从现场读取数据,工程师们必须了解各种DCS、了解现场各种设备,从软件编程语言上至少必须精通微软的VC++、VB以及Unix C++,甚至汇编; 在编程接口方面必须精通OLE、OPC、DDE及各种API软件接口。只有使用上述方法,具体说,就是只有从DCS系统或SCADA系统的实时数据库的缓冲区内存中,才能读取当前最新版本的实时数据。如果DCS没有实时接口或由于其他原因无法使用实时接口,被迫从DCS系统的历史数据库中读取数据,这样的数据实时性就较差了,严格说只能称为历史数据。
2.网络实时通信协议
目前众多的网络通信标准如Web、HTTP、FTP等协议均为TCP/IP的应用层协议,ODBC(Open Data Base Connection)协议是用于不同关系数据库的通信协议,由于它们都不是实时通信协议,因而它们都不适用于网络实时通信。构建实时数据库系统首先需要一个规范和高效的网络实时通信协议用以完成实时数据库的刷新和实时数据库的实时检索。网络实时通信是实时数据库的命脉,对于实时数据库起着关键的作用。网络实时通信要在数毫秒内将数百字节的数据从一个计算机的内存送至另一个计算机的内存,这种网络实时通信在10M的以太网上通过TCP/IP协议是不难实现的,关键是要制定网络实时通信协议。由于国际上没有通用的适合实时数据库的网络实时通信协议,为了构建自己的实时数据库,国家电网公司电力自动化研究所通过多年的研究与工程实践,制定了一套可行和高效的网络实时通信协议——NSIS协议。
NSIS协议是为NSIS实时数据库制定的一套基于TCP/IP会话层上的表示层和应用层协议,NSIS协议仅与TCP/IP协议有关,因而可以跨操作系统运行。
3.实时数据的实时传送
采集到实时数据还必须将实时数据实时地送往实时数据库,实时数据的实时传送是构建实时数据库的另一项关键技术,它涉及到使用的硬件通道和上面提到的网络实时通信协议。使用什么硬件通道取决于现场的设备,使用各种可行的方法进行实时数据的实时传送。工程师们必须精通RS485、RS232、TCP/IP等设备和虚拟设备的计算机实时通信技术。
实时数据的传送最好是数据编组传送,所谓编组即几十或几百个数据编成一组,即编成一个通信报文一次完成,以避免一个一个的传送,数据的格式尽量采用二进制以提高数据的精度与传送效率。所用通信协议尽量使用底层协议,所谓底层协议即指进程间内存到内存的通信,例如上面提到的基于TCP/IP的会话层协议的NSIS协议。目前企业网的速度多在1000M至少也是100M,经测试,一个2K字节长的报文的传送在10M的以太网上数毫秒就完成了,中间不需要任何中转计算机通信服务器。顺便指出,使用基于文件的上层协议,如文件到文件、文件到内存以及内存到文件的通信,都不适合于实时系统的通信。
4.实时数据向DCS系统回送
如果DCS、实时数据库、实时优化系统形成一个闭环系统,就存在实时数据向DCS系统回送的问题,另外从实验室来的质量数据也有回送的需求。这从技术上说与从DCS取数据是一样的,OLE/COM/OPC、DDE等技术本来就是双向的。只是数据的回送一定要小心,避免出错,这种错误有时是灾难性的。
5.DCS系统的安全问题
在应用DCS系统的数据采集接口时,DCS系统的安全是构建实时数据库系统首先考虑的问题。DCS系统的安全主要有两个方面: 运行于DCS系统内的数据采集程序不管是作为Server还是作为Client,其开销即占用DCS计算机系统的资源要尽量小; 另一个是DCS的联网必须将计算机病毒绝对排除在外,否则会带来不堪设想的后果。以前常采用以太网卡和TCP/IP协议与DCS工程师站或操作站直接联网,现在这样做可能就不行了,一种方案是用其他协议如TCP/IP协议转换为RS232协议与DCS工程师站或操作站间接联网。根据计算机技术的发展或计算机技术出现的情况,及时调整DCS联网方案是构建实时数据库系统的工程师必须要考虑的问题。
6.实时信息系统的架构
实时信息系统当然是C/S结构的,在网络实时通信协议的支持下,Server端与Client端交换实时信息。实时数据库具有实时检索功能,根据客户端的需求向客户端提供实时数据,这种实时检索也在数毫秒完成。实时流程图是实时信息系统的典型用户界面,图中的数据应该与DCS系统同步刷新; 实时过程动态曲线是实时信息系统的又一重要界面,它可以实时动态地将对象的变化表现出来; 实时信息系统也有非实时的功能,如查询历史数据、描绘对象的静态变化趋势等。
由于目前用户对B/S系统情有独钟,使用IE浏览器希望能看到他们所希望看到的一切。但是众所周知,IE浏览器执行HTTP协议,用于实时系统有两大缺陷: 实时性和作图(不是贴图)功能较差。要使网页也具备实时功能,方法之一是使用微软ActiveX技术,将原有Client端的实时功能及作图功能集成到实时控件中,再由IE浏览器从Web服务器自动下载实时控件,以构成实时网页。目前该项领先技术已在中国石油抚顺石油化工公司现场运行,并且已经被集成到抚顺石油化工公司的OA系统。如果授权,从互联网国内任何地方,使用IE浏览器可以直接登录抚顺石油化工公司实时数据库,可以看到与生产现场同步变化的画面。
7.其他问题
实时数据库的功能是将企业的实时数据集中,如果现场的数据不准甚至没有,再好的实时数据库系统也无能为力。不幸的是现场的数据不准或根本没有,正是国内流程工业企业碰到的共同问题,其中最大的问题在于计量不准。计量问题不解决,实时数据库和所有企业的上层应用包括MES和ERP都将不是完美的系统。
综上所述,构建一个性能优良的实时信息系统,除了选择优秀的实时数据库软件平台以外,还要选择一个优秀二次开发的工程技术队伍,这个队伍能够使用DCS的开放接口,由实时数据采集程序得到最新版本的实时数据。同时建立DCS到实时数据库核心内存的高速数据通道。作为商业化的实时数据库软件平台,其实时数据库的实时通信协议应该开放,而且尽量使用网络低层协议,以提高系统的实时性能。实时数据库能否达到预想的品质和效果是综合实力的结果。实时数据库软件平台、二次开发和现场三方,其中任一方出了问题或质量不高,其他环节水平再高也是无济于事的。
本专题将首先从技术上分析实时信息系统的构建,即介绍从实时数据库到实时信息系统的开发过程,随后还将介绍实时信息系统与其他系统的集成及应用情况。
链接
1. SCADA SCADA(Supervisory Control And Data Acquisition,数据采集与监视控制系统)是以计算机为基础的生产过程控制与调度自动化系统。它对现场的运行设备进行监视和控制,以实现数据采集、设备控制、测量、参数调节以及各类信号报警等各项功能。SCADA系统的应用领域很广,它可以应用于电力、石油、化工等领域的数据采集与监视控制以及过程控制等诸多领域。
2. DCS DCS是分布式控制系统的英文缩写(Distributed Control System),在国内又称之为集散控制系统。DCS是计算机技术、控制技术和网络技术高度结合的产物。DCS通常用若干个控制器对一个生产过程中的众多控制点进行控制和PID闭环调节,各控制器间通过网络连接并可进行数据交换。
3. PLC PLC(Program Logic Control ,可编程逻辑控制器)的前身是继电器顺序控制器,随着电子技术和计算机技术的发展,引入了微计算机技术,所处理的对象从开关量到模拟量。高级的PLC还有PID闭环调节功能,并且配有人机对话界面,PLC的功能正在逐渐向DCS靠拢。PLC在机械制造业中使用较多。
4. OPC OPC是OLE for Process Control的缩写,它是微软公司的对象链接和嵌入技术在过程控制方面的应用。OPC基金会制定了OPC标准,OPC以OLE/COM/DCOM技术为基础,采用客户/服务器模式,为工业自动化软件面向对象的开发提供了统一的标准,这个标准定义了应用Microsoft操作系统在基于PC的客户机之间交换自动化实时数据的方法。生产现场的DCS、 PLC等设备采用OPC标准以后,为上层应用系统获取现场实时数据提供了方便而统一的接口。