水泥生产线数据采集与存储系统的设计与实现
2017-01-13苏中鲜范太华杨春明
苏中鲜,范太华,杨春明,王 磊
(西南科技大学计算机科学与技术学院,四川绵阳 621010)
水泥生产线数据采集与存储系统的设计与实现
苏中鲜,范太华,杨春明,王 磊
(西南科技大学计算机科学与技术学院,四川绵阳 621010)
为了实现水泥厂生产线设备运行状态大量实时数据的存储与分析,目前使用的较多的存储为时序数据库,考虑到成本等因素,选择关系数据库进行实时数据的存储,关系数据库在存储大量工业实时数据时有一些技术难点,针对这些需要解决的问题,提出了中间缓冲和相同数据放弃存储等技术,中间缓存技术很好地解决了大量实时数据在存入关系数据库时的效率问题,相同数据放弃存储则可以很好地压缩数据量,使得整个系统更加轻便和利于后续的分析工作;首先对水泥厂实时数据采集方案设计的过程进行认知和分解,指出关系数据库存储大量实时数据是设计过程中的难点;综上设计了总体模型,采用opc协议与采集服务器进行通信,通过在水泥厂现场部署数据采集客户端运行,效果良好,验证了该设计的有效性。
实时数据;关系数据库;缓冲;OPC协议;水泥厂
0 引言
工业一直是计算机应用的一大战场,主要目的就是实现工业控制,使得工厂的生产和制造过程更加自动化、效率化、精确化,并具有可控性及可视性。随着工业的信息集成系统迅速壮大,将覆盖从现场控制到监控等各个层次和环节,工业控制的核心数据通信在研究中受到越来越多的重视。
在工业控制中存在两类数据通信问题:第一类是控制系统如何与现场设备进行交换,第二类是工业过程管理等高级应用系统如何与计算机控制系统进行实时数据通信,文献[1-3]介绍了工业控制中的数据通信知识。工业中的实时数据一般都是大量和繁杂的,为了保存这些数据以备后用,在开发中用到的方法为采集得到的实时数据存入实时数据库,但这也存在着缺点,最重要的就是实时数据库相对关系数据库过于昂贵,一般的工业实时数据库都在几十万上下,这对于工业控制开发是一笔不小的开支。
本文在开发工业设备运行状态采集客户端中运用关系数据库代替实时数据库进行大量实时数据的存储,为后来开发可视端做好数据采集的准备,通过在水泥厂生产线现场部署采集客户端运行,存储延迟在允许的范围内,其运行效果达到了工业控制级要求。
1 相关技术介绍
1.1 OPC协议介绍
OPC协议在工控软件开发中广泛使用,因此,在水泥生产线上采用OPC技术完成数据采集和存储客户端开发,文献[4-7]详细介绍了OPC协议。
OPC协议的主要作用是在硬件产品与软件产品之间提供一个可以通用的接口,这样在开发对硬件的控制软件时就不必要考虑硬件的本身属性,只需要知道硬件提供的OPC接口,通过这样的一个OPC接口就可以把研究的重心放在程序本身的控制流程中,大大地降低了开发的成本也使得整个行业更加地标准化,这样就可以用通用的开发方式对硬件开发。
OPC Server透过一组一组的接口提供服务,然而在实际的框架上,OPC Server共分为了三层:它们分别是OPCServ-er、OPCGroup和OPCItem,在框架中每一个OPCItem对应到一个实际的硬件装置上的某一个channel或port,每一个OPCGroup则包含了许多的OPCItem,同时并定义这些OPCItem更新的时间、方式,以及提供读取OPCItem值的接口,而每一个OPCServer则包含若干个OPCGroup,同时提供操作这些OPCGroup的接口。如图1为三者的关系。
图1 OPCServer/OPCGroup/OPCItem关系图
1.2 仿真服务器选择
在实际的水泥生产线上,所有的设备运行状态实时数据都由监测设备直接发送给远程服务器,但是这些远程服务器只是记录当时的值而不会存储下来,为了能够存储这些实时数据以备后用,必须通过接口自己开发采集客户端,在开发中由于无法使用生产现场的远程服务器,只能在本地安装模拟服务器,在该客户端开发中使用MatrikonOPC Server,该服务器由水泥厂直接提供,在本地安装即可使用,文献[8-9]介绍了仿真服务器。
MatrikonOPC Server广为使用,主要有如下优势:1)安装组态简单、方便、迅速,统一管理,所有opc server安装及组态界面统一,简单易懂,掌握一种opc server后,基本其它的opc server也就懂了。另外matrikonopc server基本都可以保证现场装置系统不停车的情况下进行在线实施,这样可以缩短项目施工周期;2)特有opc通信安全软件产品,opc数据通信本身没有安全设置,对生产及信息安全是隐患,matrikonopc security gateway可以在现有的任何opc体系中间填补安全漏洞,它提供了opc通信系统对访问权利的可操作性。同时matrikonopc tunneller这一产品成功地消除了dcom设置带来的麻烦,在建立安全opc通信虚拟隧道的同时,大大缩短项目集成调试时间;3)产品可靠性高,所有的matrikonopc产品都是经过了opc基金会测试和认证的软件,确保软件符合opc基金会发布的opc访问规范,在此基础上保证了多个供应商产品之间的互通和友好共存性;4)强大opc技术支持,公司为国内用户提供全方位的技术支持。MatrikonOPC Server界面如图2。
1.3 编程接口与通信方式应用
本文中的设备运行状态采集客户端运用在水泥厂中,水泥生产线也属于工业控制系统,也存在上面的两个数据通信问题,通过对这两个问题的不断研究,目前使用最为广泛的解决方案是采用传统客户机/服务器模型。如图3所示为OPC (OLE for Process Control,过程控制的对象链接与嵌入)模型在水泥厂的应用。
OPC规范设计为硬件和软件的接口标准,可以应用在许多的应用程序中。在水泥厂生产线监控系统中基于OPC接口标准访问的服务器为大型企业的专业服务器,在实验中使用模拟的OPC服务器设计为一个本地仿真服务器,采用的仿真服务器为实验中流行的MatrikonOPC Server,可执行的配置文件为水泥厂直接取得的一条生产线上的关键点信息。一般的OPC服务器配置为直接在服务器中一个点一个点地生成,但是这样的效率比较低,第二种方式就是直接把配置信息写成xml文件然后直接导入到服务器中,这种方式的有点是具有统一的结构和格式,能够实现复杂事务的描述,在应用中方便维护[10]。
图2 仿真服务器Matrikon OPC Server界面
图3 水泥厂OPC模型
把生产线上的监测点信息全部写入“监测点.xml”文件中,其中每个监测点的写法为:<PSTAlias itemPath="Random.Real4"(数据类型)name="I_3500L01"(监测点名称)/>;在MatrikonOPC Server中通过打开“监测点.xml”来实现对服务器端的配置。以上的步骤完成之后就可以采用OPC标准支持的网络通信技术实现网络中任意节点之间的数据传输。
服务器端已经配置好,开始对客户端的设计做工作,在这里采用C#的语言来进行客户端的开发,OPC规范中用于访问服务器对象的外部接口有两种:定制接口和自动化接口,在这里使用定制接口,因为定制接口的效率要高于自动化接口而且OPC服务器也支持定制接口类型,综上设计好的客户端与服务器访问关系如图4。
图4 OPC客户端/服务器关系图
客户端的设计在测试系统中把需要的数据从服务器端采集过来存入本地或者远程数据库中。编程时客户端程序通过接口访问访问OPC服务器对象,利用服务器组件提供的服务器对象接口和组对象接口获取要读取的OPC对象的相关信息,包括值、品质和时间戳,利用这些对象属性、方法和调用时间过程编写应用程序。
在测试系统中采集的信号数量一般都比较少,比如几百个点,上述设计好的数据采集客户端就可以满足,而且稳定性能也不错,然而当把该客户端放入实际的水泥厂监控系统中时,就出现了一些问题,如为获得毫秒级的被测信号数值和获得较高的通信效率,一次采集5 000个点的数据会让客户端在瞬间崩溃,所以在这里我们必须要加入一些中间缓冲技术。
1.4 中间缓冲技术
中间缓冲技术在软件开发中非常重要,也时常使用,是为了协调吞吐速度相差很大的设备之间数据传送而采用的技术,为了缓和采集客户端和数据库之间读取数据速度的不匹配矛盾,提高两者之间的并行性[11]。
中间缓冲技术要达到的目的是减少客户端的压力,使采集客户端的大量精力放在采集数据上,而不是放在把大量的数据直接存入数据库中,在这里选择使用在采集客户端所在硬盘上开辟一个空间,在大量的采集数据到来时,把数据存入开辟的空间中,采用把一个时间的所有采集点名和对应的值写成一行,形式为——时间采集点名:采集点值,采集点名:采集点值,…,这样的形式利于后期读取存入数据库,然后创建一个txt文档直接依次一行一行地把得到的数据写入txt文档中,根据采集5 000个点的数据时,要使得数据缓存时间和存入数据库时间间隔尽量小,通过实验得到取txt文档最大容量为100kb时上述间隔达到要求,故就使用该种方式把采集来的数据存入中间缓冲区,图5为该中间缓存的结构图。
通过以上方式把大量的实时数据存入了开辟空间,当一个100kb的文件存入开辟空间之后要立即读取存入到数据库中,这样就能保证实时数据的存储延迟在可控的范围内。当一个txt文件被读取完之后就立即进行销毁,并回收被用掉的开辟空间,当然销毁的方式有很多种,在开发中采用直接进行删除是一个不错的选择,还可以直接存入到其他地方,这样就算在与数据库通信时发生错误也可以等待通信正常之后存入数据库,而不会让重要的历史数据凭空消失。
1.5 压缩技术
水泥生产线设备运行状态是由许多的监测点来表示,每一个监测点都有特定的含义,如表示温度、压力及转速等,虽然含义有多种多样,但所有数据都可以分为布尔值和模拟量,布尔值是表示设备的开关,如用“1”表示设备的正常运行,用“0”表示设备的停机,模拟量则用double类的数据类型。这些采集得到的数据反应在现场的采集服务器上,由于采集的实时数据量过于庞大于是可以采用相关压缩技术来减少实时数据的存储。
在服务器上得到的数据中模拟量是最多的,5 000个点中大概有98%的点都是模拟量,而这些模拟量在服务器上都是以小数位数许多的double类型返回,所以在采集时可以把得到的double类型数据的小数位数设置为不影响结果的4位,即多于4位的全部删除,这样在大量的实时数据存入关系数据库时可以减少大量的存储量节约存储空间。
通过上面的方法已经对模拟量做出了压缩,接下来对开关量即布尔值进行压缩减少存入数据库的数据量。在一般情况下设备都在正常运行,所以很长一段时间开关量都不会变化,在这样的背景下,如果把所有的相同值都存入数据库显然不合理,所以当取得第一时间的值为“1”时,接下来设备运行正常的时间内都不用存储该开关量,这样时间越长节约的存储空间就越明显。
2 应用程序开发
当基于OPC标准的数据采集客户端开发所用到的接口、数据通信方式以及用于数据存储的数据库接口选定后,依据客户端定制流程进行应用程序开发。在C#环境中,首先需要加载OPC自动化包装DLL,在开发该数据采集客户端时采用广泛使用的opcdaauto.dll,把该DLL导入到C#开发环境中,就能够使用OPC协议开发客户端[12]。
上面的内容完成之后,接下来在开发环境中编写OPC客户端程序,完成各个部分的功能。调用相应的接口,创建对象,添加对象,最为重要的部分为中间缓存技术,最后存入数据库成功后断开连接,清除之前创建的对象。应用程序开发流程如图6所示。
图6 客户端开发流程图
3 OPC客户端实现
配置MatrikonOPC Server,打开该服务器把之前做好的“监测点.xml”导入服务器上,打开数据采集客户端,连接服务器把服务器上的采集点导入采集客户端中,然后设置采集数据的时间间隔,由于数据量巨大,考虑后期数据分析工作把时间间隔设置为1 000 ms,点击采集使数据存入数据库中。
运行起来的客户端界面如图7,把设计好的客户端部署在水泥厂现场,运行得到了良好的效果,满足了企业采集数据的要求以及为后来的监控系统做好了铺垫,最为重要的实时性得到了保障。
4 结束语
完成了水泥厂实时监控系统的基于OPC接口技术数据采集客户端实现。针对实时与大量数据的要求,采用了中间缓存技术,通过实验得到了良好的效果,之后通过部署到水泥厂中实际的运行验证,采集一条生产线的10 000个监测点,采集频率设置为1 000 ms,由于采用了数据压缩技术使得存储的数据量得到了减少,通过观察在设备运行良好情况下一天得到的数据量为3 G左右。运行表明该OPC数据采集客户端开发的有效性和实用性,为之后的数据分析和运用提供基础,进一步研究方向:
1)针对实际要求对一个客户端采集多条生产线进行客户端开发。
2)对采集到的数据进行数据分析,得到相对应的结论和应用。
图7 客户端运行界面图
[1]王丽萍.基OPC标准的数据存取客户端应用开发[J].机床与液压,2015,43(4):171-173.
[2]黄 煜.先进控制系统中数据监控平台的研究与开发[D].北京:北京邮电大学,2015.
[3]黄 维.可编程控制器通信技术的研究与实现[D].吉林:吉林大学,2014.
[4]Cavalieri S,Chiacchio F.Analysis of OPC UA performances[J].Computer Standards&Interfaces,2013.
[5]Enste U,Mahnke W.OPC Unified Architecture [J].Methoden und Anwendungen der Steuerungs-,Regelungsund Informationstechnik,2011,59 (7).
[6]王 杰,高昆仑,王万召.基于OPC通信技术的火电厂DCS后台控制[J].电力自动化设备,2013(04):142-147.
[7]张建平,马 芳,马 利.基于OPC技术的工业现场异构系统集成软件的开发[J].电子技术与软件工程,2014(18):76-77.
[8]王 欢.基于PROFIBUS现场总线的PLC控制系统研究与设计[D].北京:北方工业大学,2007.
[9]孙敬松.基于OPC通信的磨矿控制系统设计与实现[D].北京:华北电力大学,2007.
[10]Li C J,Su H Q.SCADA System of CNC system reliability testing and implement loading conditions[A].The 3rd International Conference on Frontiers of Manufacturing Science and Measuring Technology(ICFMM2013)[C].2013.
[11]肖周芳,赵大伟,张 艳.多缓冲技术在游戏编程中的应用[J].科技信息,2008(29):63-64.
[12]苏 磊,李 茜,汤 伟.OPC数据访问客户端的研究与实现[J].计算机工程,2010(11):80-82.
Design and Implementation of Cement Production Line Data Acquisition and Storage System
Su Zhongxian,Fan Taihua,Yang Chunming,Wang Lei
(College of Computer Science and Technology,Southwest University of Science and Technology,Mianyang 621010,China)
To storage and analyse a large number of real-time data that represent cement production line equipment running status,cu rrently used more stored as a temporal database,considering the factors such as cost,choose a relational database for real-time data storage,a relational database in the storage a large number of industrial real-time data there are some technical difficulties,to solve these problems,put forward the intermediate buffer and give up the same data storage technology,such as the middle cache technology to solve a large number of real-time data in the efficiency problem when deposited in the relational database,the same data not store is a good way to compress the data,make the system more portable and conducive to the analysis of the follow-up work.First on the project of the cement plant real -time data acquisition and decomposition process of cognition,points out that the relational database to store a large number of real-time data is difficult in the process of design.In the design of the overall model,using OPC protocol and acquisition server for communication,through the deployment of data acquisition at the scene of the cement plant client operation,good effect,verify the effectiveness of the proposed design.
real-time data;relational database;buffer;OPC protocol;cement plant
1671-4598(2016)08-0174-04
10.16526/j.cnki.11-4762/tp.2016.08.047
:TP311
:A
2015-12-05;
:2016-01-11。
四川省科技厅项目(2012GZ0112)。
苏中鲜(1990-),男,四川广安人,硕士研究生,主要从事数据挖掘与知识工程、分布式系统与web开发等方向的研究。