APP下载

盾构监控数据实时报表系统开发

2014-09-06蒲晓波

隧道建设(中英文) 2014年11期
关键词:历史数据插件报表

马 强,蒲晓波

(中铁工程装备集团有限公司,河南 郑州 450016)

盾构监控数据实时报表系统开发

马 强,蒲晓波

(中铁工程装备集团有限公司,河南 郑州 450016)

为解决施工管理人员分析盾构原始历史数据困难问题,设计了一套盾构监控数据实时报表系统,实现在盾构一环掘进完成后,及时分析该环盾构运行参数和统计该环重要材料的消耗。分别从系统总体框架、历史数据分析、关键应用技术等方面对系统进行研究,最终实现从盾构海量历史数据中自动选择、过滤、统计、计算数据,并以环数为单位生成报表文件。系统在中铁系列盾构中的应用证明:施工人员或业主通过报表文件可以方便有效地了解施工状态和设备状态等信息,相较于手动检索原始数据,管理成本大大减少。

盾构监控数据;数据分析;报表系统;插件;SQLite数据库

0 引言

近几年,伴随着国内城市地铁及其他隧道工程的快速发展,盾构得到了广泛使用。盾构均配有数据采集监控系统,可将重要掘进参数存档为历史数据。如何从海量的历史数据中快捷地分析统计盾构掘进工作状态及施工用料消耗情况,是施工管理人员面临的一大难题。通过软件技术在盾构一环掘进完成后,自动将这一环的重要参数获取分析后集中呈现形成报表,同时生成PDF格式文档作为施工资料存入档案,是一种非常有效的方法。目前国内外主要品牌盾构(如海瑞克、砝玛通、上海隧道和铁建重工)都有掘进报表系统。文献[1]和文献[2]介绍了铁建重工开发的系统,其重点在于使用西门子软件WinCC7.0自带的报表功能;文献[3]介绍了海瑞克的系统,其数据采集系统PDV中集成了自主开发的掘进报表;文献[4]提到的报表功能指的是上海隧道开发的系统,其数据采集系统和报表功能是独立开发的。

从目前来看,大多数盾构厂家都是在自己已成熟的数据采集系统基础上为进一步挖掘数据而开发了盾构掘进报表功能,但都无法在不影响数据采集系统的使用上加装或卸除报表功能,也不能在监控系统界面中浏览查看历史报表文件,且环号数据依赖于导向系统。本文以中铁系列盾构数据采集监控系统为基础,分析了中铁盾构数据格式,通过推导盾构相关参数数据计算环号,并采用数据库、软件插件等技术将开发的报表系统以可插拔的形式集成到数据采集监控系统中,既能在监控系统界面中查看,又能自动生成PDF格式文件存档打印,系统运行可靠、安全,且具有独立的自主知识产权。

1 总体方案设计

1.1 系统总体框架设计

考虑到报表系统与盾构上位机数据监控系统有着千丝万缕的联系,二者既相互关联又相对独立。如报表的源数据来自于上位机数据监控系统等,如何既能保证上位机版本不更新且正常稳定运行,又能使报表系统和上位机自动同步运行(报表系统是在中铁系列盾构上位机监控系统的基础上进行开发设计的)是需要解决的问题。综合分析上述情况后,不建议报表系统作为独立程序。本文采用的方式是系统以插件结构作为上位机的一种扩展功能集成在上位机中。插件结构是一种非常灵活的组件式软件体系结构和开发方法,是可独立开发的程序模块,它能够动态地插入到系统中,且可以被自由地删除和替换;因此,它能够提高软件开发的并行性和开发效率,降低设计开发难度,缩短开发周期,增强应用程序的可运行性、可测试性和可维护性[5]。

系统的数据来源于上位机监控系统记录的历史数据,是一种自定义的二进制文件。系统的配置信息采用了SQLite数据库,它是一种开源的、内嵌的关系型数据库,数据库功能全、体积很小,不需要扩展的数据库服务,不需要网络配置和管理,只需引用SQLite的动态链接库DLL文件就和程序部署在一起,适用于中小规模程序[6]。数据分析计算的结果也存储在SQLite数据库中,当在界面查询某环报表时,只需查询数据库数据,无需重复分析计算,方式快捷有效,且不占用计算机资源。系统总体框架见图1。

图1 系统总体框架

1.2 软件开发流程图

图2为报表系统的程序流程图。盾构上位机按一定周期记录监控参数,当系统监测到环号发生变换时(即上一环推进结束、下一环准备开始时),系统获取此时时刻值作为上一环的结束时间和下一环的起始时间,并存储在SQLite数据库中;然后,系统从二进制数据文件中读取上一环工作时间段的历史数据,并从配置信息中读取待处理的参数和处理方法,经过系统运算后再将结果保存到数据库中,同时加载报表模板,按照数据绑定规则将系统运算的数据和报表模板控件逐一对应后生成PDF文件。

图2 系统的程序流程图Fig.2 Flowchart of the system

1.3 开发环境选择

中铁系列盾构数据采集系统的开发环境选择了C#编程语言。C#语言作为目前软件业的主流语言之一,几乎集中了所有关于软件开发和软件工程研究的最新成果,包括面向对象、类型安全、组件技术、自动内存管理、跨平台异常处理、版本控制和代码安全管理[7]。在微软系统中,Visual Studio是一套完整的编程、调试、生成、部署工具平台,集成了Visual C#开发环境C#.Net,能高效、安全、共享式的开发C# 程序[7]。简言之,数据采集系统是在Visual Studio 2010版本中C#.Net环境下开发系统程序的。

2 历史数据格式分析

中铁系列盾构历史数据没有采用通用的数据库存储,而是自定义的一种历史数据存储类型,命名为SD文件[8]。SD文件按照一定的存储机制存储实时数据、开关量数据和环累计数据等[8]。SD文件具体存储了哪些参数数据,在监控系统的配置文件HmiOPCItems.xml中有定义。HmiOPCItems.xml文件部分内容见图3。

图3中,“Comment=‘主油箱油温’”表示该参数的名称;“Archive=‘true’”表示该参数是否保存历史数据,“true”为保存;“DataType=‘R4’”为该参数的数据类型,历史数据的数据类型见表1;“db40_8”为参数在计算机程序中的标签名,因为程序代码不方便处理汉字;“OPCItem”排列的顺序是参数历史数据在SD文件中排列的顺序。对HmiOPCItems.xml文件中定义的、需保存历史数据的参数进行分类,见表2。

图3 HmiOPCItems.xml文件部分内容Fig.3 Part of the HmiOPCItems.xml file

表1历史数据的数据类型
Table 1 Types of historical data

数据类型标识数据类型说明 R4实数U22字节正整数U44字节正整数B4离散型数值(值只有0和1)

表2 历史数据的参数分类Table 2 Classification of parameters of historical data

3 关键技术点的实现

3.1 C#.Net实现软件插件结构

C#提供的反射(Reflection)机制使得程序能够动态地分析程序集,判断一个DLL文件是否满足接口的要求,并动态生成一个插件[9]。C#的接口、抽象类可以用于和插件通信。在设计过程中使用了接口,使得插件的发现(匹配)、载入和通信都非常简单[9]。首先定义插件的接口,接口定义了预期的功能,这些功能并没有描述具体怎么来完成,只是保证支持这些方法的调用;然后插件项目实现这个接口,每个具体的函数必须严格按照接口的定义完成所描述的功能;待编译完成插件项目DLL文件后放在主程序的插件目录中,主程序通过反射实例化这个插件,调用插件的接口方法,就实现了插件功能。插件将源代码从主程序中分离出来,然后通过程序集反射机制载入主程序中,部分代码见图4。

图4 反射机制加载插件部分代码Fig.4 Part of the code of loading plug-in by reflection mechanism

3.2 环数判断

环数的判断有2种方式,一种是直接读取导向系统测量数据,另一种是根据盾构采集数据自行计算得出。由于中铁系列盾构导向系统中未接入监控网络,系统无法从导向系统获取掘进环数信息,需通过对历史数据进行分析,用推进位移、总推力和盾构工作模式按钮状态3个参数来计算判断环数是否加1。只要校准好起始环数,就能获得准确的环数信息。环数判断示意图如图5所示。

在图5中,环起始点“_startOK”往右到环结束点“_endOK”范围内,“_startOK”=true,“_endOK”=false。“_startOK”=true的触发条件如表3所示。环结束点“_endOK”往右到环起始点“_startOK”范围内,“_endOK”=true,“_ startOK” =false。“_endOK”=true的触发条件如表4所示。环数加1的触发条件如表5所示。

图5 环数判断示意图Fig.5 Diagram of judgment on ring numbers

表3 “_startOK”=true的触发条件Table 3 Trigger condition of “_startOK”=true

表4 “_endOK”=true的触发条件Table 4 Trigger condition of “_endOK”=true

表5 环数加1的触发条件Table 5 Trigger condition of number of rings plus 1

以上触发条件中,“_locateLow”,“_locateHigh”,“_thrustRef”的默认值是根据实际情况分析历史数据设定的。从图4、表3—5中得知:当管片拼装模式结束后,盾构启动推进系统进入推进模式,总推力值和推进位移值开始上升;当总推力值大于“_thrustRef”设定值、多组油缸平均推进位移值小于“_locateLow”设定值时,设置环起始点标记“_startOK”为true;随着推进位移值不断上升,当其大于“_locateHigh”设定值时,预示一环马上推进完毕,标记环结束点“_endOK”为true;当盾构推进完毕启动管片拼装系统进入管片模式后,判断标记环结束点“_endOK”为true时,环号值加1,此时盾构进入新的一环工作。

3.3 系统配置信息和计算结果的数据库设计

数据库设计的科学性和合理性对于提高数据库的运行效率和数据库安全至关重要[10]。系统总体设计数据库分为系统参数配置和环报表计算结果2类,在2类数据库中建立相应的表。如环号信息表存储了环号、环起始时间、环终止时间等信息;报表变量配置表存储了哪些参数变量需要做成报表,报表涉及这些变量的哪些统计值,如最大值、最小值、平均值、持续时间等信息;界面控件数据绑定表存储了报表值与报表模板标签的对应关系,保证界面加载数据的正确;报表统计值表存储了报表统计值。报表系统数据库结构如图6所示。

图6 报表系统数据库结构Fig.6 Structure of database of the report system

3.4 PDF文件生成

在C#.Net开发环境中,自带的报表控件ReportViewer主要实现了本系统的界面,而该控件具有导出多种文件格式的功能,包括PDF格式,结合C#.Net中打印控件PrintDialog将PDF打印存档到保存文档。因此,在程序流程中,当一环结束后,ReportViewer控件首先根据数据库表界面控件数据绑定表中的对应关系,将报表计算值填充到报表表格中,同时在内存中生成PDF格式数据传递给PrintDialog打印控件,Print-Dialog将自动完成打印功能,并将报表PDF文件存档。

4 系统界面

报表浏览界面如图7所示,在该界面中选择环号后,点击“查看”,显示该环的起始时间、终止时间和环报表。“修改”可以通过调整一环的起始、终止时间,重新计算该环报表,防止系统自动记录的环时间信息有误,影响报表的结果。“刷新环号”是在报表重新计算修改后界面显示的调整。“计算历史数据环报表”是为了解决在盾构已经运行一段时间后才添加的报表功能补算之前的环报表。“打开报表文件夹”可以打开PDF文件存放处,方便拷取PDF环报表文件。

图7 报表浏览界面Fig.7 Browsing interface of report

5 结论与讨论

通过自主开发软件,掌握了盾构数据监控分析一整套技术,为施工人员快速分析海量盾构数据提供了强有力的帮助。同时,本系统有2大创新亮点:一是采用插件结构,使上位机的功能很方便地增减,而不用去重新编译程序代码;二是在无导向系统数据的情况下,利用记录的盾构参数数据推理计算盾构的当前环数。

尽管利用记录的盾构参数数据可以推理计算盾构的当前环数,但是这个数据和导向系统数据相比有延迟。推算的环数是在推进模式结束后、管片拼装模式开始时变化的,即一环时间为管片拼装模式+推进模式。导向系统环数是在管片拼装模式结束后、推进模式开始前变化的,即一环时间为推进模式+管片拼装模式。2组数据的时间相比,推算的环数时间比导向系统环数时间晚了一个管片拼装模式时间,因此,本系统还有待进一步修改完善。

[1]蔡杰.Wincc V7.0 在盾构机数据采集系统中应用[DB/OL].百度文库,2013-11-12[2014-08-13].http://wenku.baidu.com.(CAI Jie.Application of Wincc V7.0 in data acquisition system of shields [DB/OL].Baidu Library,2013-11-12[2014-08-13].http://wenku.baidu.com.(in Chinese))

[2]王秀,王建新.一种WinCC V7.0的数据报表设计与实现[J].工业控制计算机,2013(4):21-22,25.(WANG Xiu,WANG Jianxin.Realizing data report based on WinCC V7.0 script editor[J].Industrial Control Computer,2013(4):21-22,25.(in Chinese))

[3]李剑祥.海瑞克盾构机电气控制系统概述[DB/OL].百度文库,2010-07-07[2014-08-13].http://wenku.baidu.com.(LI Jianxiang.Overview of electrical control system of Herrenknecht shield [DB/OL].Baidu Library,2010-07-07[2014-08-13].http://wenku.baidu.com.(in Chinese))

[4]吴兆宇.上海地铁10号盾构监控技术[DB/OL].百度文库,2010-06-28[2014-08-13].http://wenku.baidu.com.(WU Zhaoyu.Monitoring technology for No.10 shield of Shanghai Metro [DB/OL].Baidu Library,2010-06-28[2014-08-13].http://wenku.baidu.com.(in Chinese))

[5]祖兆研.基于插件技术的软件架构设计及应用[D].南京:河海大学计算机与信息学院,2007.(ZU Zhaoyan.Design and application of software structure based on plug-in technology [D].Nanjing: School of Computer and Information,Hohai University,2007.(in Chinese))

[6]Grant Allen,Mike Owens.SQLite权威指南 [M].2版.杨谦,刘义宣,谢志强,译.北京: 电子工业出版社,2012.(Grant Allen,Mike Owens.The directive guide to SQLite [M].The second edition.Translated by YANG Qian,LIU Yixuan,XIE Zhiqiang.Beijing: Publishing House of Electronics Industry,2012.(in Chinese))

[7]李海涛,史爱松,孙更新.C#3.0从基础到项目实战[M].北京:化学工业出版社,2009.(LI Haitao,SHI Aisong,SUN Gengxin.C#3.0: From base to project practice[M].Beijing: Chemical Industry Press,2009.(in Chinese))

[8]谭顺辉,孟祥波,徐受天,等.盾构监控系统人机界面组态开发[J].隧道建设,2014,34(4): 100-106.(TAN Shunhui,MENG Xiangbo,XU Shoutian,et al.Development of HMI configuration of monitoring system of shield machine[J].Tunnel Construction,2014,34(4):100-106.(in Chinese))

[9]申启杰,凌捷.基于C#的插件框架设计和实现[J].计算机应用与软件,2010,27(1): 154-155,170.(SHEN Qijie,LING Jie.Design and implementation of plug-in framework based on C#[J].Computer Applications and Software,2010,27(1): 154-155,170.(in Chinese))

[10]李静燕.数据库设计技巧[J].渭南师范学院学报,2007,22(5):65-67.(LI Jingyan.Design techniques of database[J].Journal of Weinan Teachers University,2007,22(5): 65-67.(in Chinese))

DevelopmentofReal-timeMonitoringDataReportingSystemofShieldMachine

MA Qiang,PU Xiaobo

(ChinaRailwayEngineeringEquipmentGroupCo.,Ltd.,Zhengzhou450016,Henan,China)

A monitoring data reporting system is designed for shield machines so that the tunneling management personnel can analyze the historical data of the shield machines conveniently.In the paper,the monitoring data reporting system is studied in terms of overall structure of the system,historical data analysis and key technology application.For the sake of the monitoring data reporting system mentioned,automatic data selection,automatic data filtering,automatic data statistics,automatic data calculation and automatic ring-based reporting file generation are realized.The data monitoring system has been applied on CREC shields,which demonstrates that the contractor and the client can know the conditions of the tunneling and the shields conveniently by means of the monitoring data reporting system and the management cost has been reduced dramatically.

shield monitoring data; data analysis; report system; plug-in; SQLite database

2014-08-13;

2014-09-04

马强(1987—),男,陕西扶风人,2010年毕业于长安大学,电子信息工程专业,本科,助理工程师,现从事隧道设备自动化和信息化研究与设计工作。

10.3973/j.issn.1672-741X.2014.11.015

U 455

A

1672-741X(2014)11-1107-05

猜你喜欢

历史数据插件报表
基于设备PF性能曲线和设备历史数据实现CBM的一个应用模型探讨
基于故障历史数据和BP神经网络的接地选线方案研究
自编插件完善App Inventor与乐高机器人通信
LabWindows/CVI中Excel报表技术研究
从三大报表读懂养猪人的成绩单
基于Hadoop技术实现银行历史数据线上化研究
用好细节材料 提高课堂实效
基于jQUerY的自定义插件开发
MapWindowGIS插件机制及应用
基于Revit MEP的插件制作探讨