• 官方微信

    CA800二维码微平台 大视野

  • 工控头条

    CA800二维码工控头条App

当前位置:自动化网>自动化文库>技术前沿>基于PostgreSQL数据库的空调性能测试 数据管理系统

基于PostgreSQL数据库的空调性能测试 数据管理系统

发布时间:2014-06-18 来源:《自动化技术与应用》2013年 第7期 类型:技术前沿 人浏览
分享到:
关键字:

PostgreSQL;数据库;空调;性能测试;管理系统

导读:

系统有效的解决了当前国内制冷空调行业实验室测试数据分散、难以维护、无法有效利用的缺点。

夏 玲,钱雪峰,戴 琳,吴庆,余俊杰
(合肥通用机械研究院,安徽 合肥 230088)


摘  要:本文介绍了一套基于PostgreSQL数据库的空调性能测试数据管理系统的设计开发与实际应用。本系统有效的解决了当前国内制冷空调行业实验室测试数据分散、难以维护、无法有效利用的缺点。为空调生产厂家的设计开发人员提供了高效准确的数据查询与分析途径,有效的提高了设计开发效率。
关键词:PostgreSQL;数据库;空调;性能测试;管理系统

中图分类号:TP311.1    文献标识码:A    文章编号:1003-7241(2013)07-0022-04


1  引言
随着科学技术的发展,制冷空调产品日新月异,各大空调生产厂家之间的竞争也随之日益激烈,对各种空调性能指标的测试及后续的分析优化成为了各大厂家研发团队的首要任务[1]。然而长期以来,即使在同一个厂家内部,其不同产品及部件的性能测试都处于一种分散而独立的运行模式下。重要的测试报告或有留存,普通的测试数据常常过不了多久就由于管理不善而丢失或遗忘,在需要的时候才追悔莫及,将测试数据分门别类上传至数据管理服务器进行统一维护成为了最好且唯一的选择。然而由于各实验室的数据格式不统一、数据服务器维护困难等多种原因[2],这种数据管理系统实际上鲜有实现。笔者所在的单位长期以来从事各种制冷产品测试系统的研发,在各大空调生产厂家均形成了较大规模的实验室集群,并在此过程中真正实现了这样一套空调产品性能测试数据管理系统,为这些厂家的设计开发人员提供了高效准确的数据查询与分析途径,有效的提高了其设计与开发效率。


2  PostgreSQL数据库及软件开发环境
PostgreSQL起源于1985年加州伯克利大学的Ingress项目,在学术界流行多年后,PostgreSQL成为了开源项目,并几乎支持所有类型的数据库客户端接口。PostgreSQL采用的是比较经典的C/S(client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式[3],这种模式较为适用于多个实验室同时进行测试的使用环境。并且由于其开源特性,可以为各大空调生产厂家节约大量采购数据库软件的成本。
空调性能测试数据管理系统的主要开发工具为C++Builder6.0企业版。与其他开发工具相比,C++Builder编译出来的代码更为高效而简洁,并且不需要其他运行库的支持,可以作为绿色软件独立运行,更为便于管理和维护。C++Builder通过ZeosDBO数据库访问控件与PostgreSQL进行连接,在进行空调性能测试的同时,实时将测试数据上传至PostgreSQL服务器,然后由远端的研发人员进行实时的监控以及历史数据的查询分析。


3  数据管理系统功能及数据库结构
数据管理系统主要功能如图1所示:

“正在进行的测试”:为当前正在进行的测试,实验室允许同时进行多个测试,在测试过程当中需要各实验室测试电脑通过以太网将测试数据以及现场对于测点名称的修改实时上传至服务器,并通过客户端工具实时反映给远端的研发人员。
“已经结束的测试”:为所有曾经进行而已经结束的测试,其中包括“已经保存的测试”,但其测试开始时间和结束时间不同。“已经结束的测试”开始时间为进入测试的时间,结束时间为退出测试的时间。而“已经保存的测试”开始时间和结束时间为所存报告的时间范围。
“已经保存的测试”:为所有曾经进行而已经保存测试报告的测试。
为了实现上述目标,在PostgreSQL数据库中需要进行相应的存储结构设计,将每个实验室的数据归纳为3个主要数据表:“测点历史数据”、“测试列表”、“报告列表”,以及一些辅助的索引表。数据管理系统所需要的所有功能均可以通过这些表的组合查询所获得。
表1为“报告列表”的存储结构设计示例:


表1  报告列表的存储结构示例

其中"报告内容"将实际的测试报告文件以bytea数据类型存储于数据库中。bytea为PostgreSQL中存储二进制数据的数据类型[4],也指二进制大对象BLOB(Binary Large Objects)。在客户端中可以将bytea数据类型还原为文件,并通过报告预览及打印工具进行查看分析。


4  部分关键技术的实现
为了实现数据实时上传的高效可靠,PostgreSQL数据库中设计使用了多个存储结构。存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,可很大程度上提高数据库执行速度。
针对表1所示的报告列表的存储结构伪代码如下所示:
create or replace function SaveReportInDB(TableName varchar,……) returns void as $$
declare
mySql varchar;
myRecord RECORD;
begin
  mySql = 'select * from ' || TableName || ' where Reportname = ''' || Reportname || '''';
  execute mySql into myRecord;
  if myRecord. Reportname is null then
    mySql='insert into ' || tablename || ' (TestID, ……) values ('''|| TestID || ''',''' || ……')';             
  else
    mySql = update ' || tablename || ' set UnitName = ''' || UnitName || ……; 
  end if;
  execute mySql; 
end
$$ language plpgsql;
存储结构采用PL/pgSQL过程语言,在首次使用的时候进行二进制解析[5]。
由于实际的测试过程中有可能会对某个已经保存过的测试报告进行覆盖更新,所以存储结构中根据TestID字段进行了报告是否存在的判断,通过“execute mySql into myRecord”的执行结果判断如果记录中已有此报告存在则执行update记录覆盖操作,如果报告不存在则执行insert记录插入操作。



5  实际应用效果分析
上传至服务器的数据主要有两种类型,一种是测试过程中很少变化的参数,如铭牌参数、工况参数等,这些参数会在发生变化时上传至服务器。另外一种是测试过程中会发生实时变化的数据,如测量数据、计算数据等,这些参数会通过预先设定好的时间间隔定时上传至服务器。通过客户端读取到实时更新的测量数据如图2所示。
客户端能够根据需要调用任意时间进行的测试数据进行分析,并可以任意观察其趋势曲线。对于“已经结束的测试”和“已经保存的测试”,由于测试已经不再继续,所以趋势曲线不再发生变化。而对于“正在进行的测试”,趋势曲线会以客户端数据上传的时间间隔进行动态更新。
图3为客户端实时读取到的测试趋势曲线。
客户端对Excel导出功能进行了优化,通过html语言实现全文本导出至Excel,导出速度比通过OLE方式直接写入Excel快几十倍,基本上可以做到实时无需等待。


图2  客户端读取到的详细测试数据



图3  客户端读取到的实际趋势曲线


6  结束语
本系统已在国内某大型空调生产企业投入使用运行近两年。由于该企业测试中心与研发大楼距离较远,并且测试中心内部面积也比较大,本系统的投入使用节省了该企业研发人员大量的时间精力,提高了研发效率,并同时节约了实验室维护成本,提高了维护效率,获得了该企业相关人员的一致好评。预计在不久的将来,待本系统进一步稳定成熟后,可以推广到国内更多的大型空调生产企业,甚至其他行业领域当中,创造更大的价值。


参考文献:
[1] 王怡苹,许爱强.自动测试系统中测试数据管理[J].电子测量技术,2010,(3):137-139.
[2] 王家海,祁亮.电子产品测试数据管理系统的设计与实现[J].机电一体化,2011,(5):85-87.
[3] 萧少聪.学院派的复兴 PostgreSQL和MySQL应用场景对比[J].程序员,2012,(6):117-121.
[4] 张伟华.数据库结构设计优化方法初探[J].价值工程, 2012,(10):196-196.
[5] 王良,王彤,杨尚.PostgreSQL存储过程移植方法[J].计算机应用,2010,(1):220-224.


本文地址:本文地址: http://www.ca800.com/apply/d_1nsr2hk95fko1_1.html

拷贝地址

上一篇:辉达工控XMB-8000系列智能三回路温度控制仪表的硬件原理和软件实现方法

下一篇:交换机级联和堆叠的基本概念及区别

版权声明:版权归中国自动化网所有,转载请注明出处!

相关技术文章
PostgreSQL;数据库;空调;性能测试;管理系统