连续生产中如化工厂,炼油厂等流程行业存在着大量的实时数据,这些数据基本上都使用实时数据库进行了存储和管理。对于关系型数据库,大家对其都有所了解,比如说人事管理系统,生产调度系统或者办公自动化系统(OA)中都有使用。
在厂矿企业中,有时需要将实时数据库的数据存入到关系型数据库中,供管理系统(如OA,ERP)使用。实时数据库系统虽然提供了此类的数据交换模块,但其功能有限,不能如我们所愿地实现一些功能;同时实时数据库又是一个不太为大家所熟悉的庞大复杂系统。针对此种情况,本文根据作者多年的工作经验,概括性总结了如何实现实时数据库与关系型数据库数据交换的方法,供同行参考。
实时数据库是数据库系统发展的一个分支,它适用于处理不断更新的快速变化的数据及具有时间限制的事务处理。目前常见的,国际使用广泛的实时数据库有AspenTech 公司的InfoPlus.21,OSI公司的PI,HoneyWell公司的PHD等。
Infoplus.21是一个用于实时制造过程的实时信息管理系统,它采集管理以及存储大量的过程数据。可以将过程数据实时地呈现在用户面前,使用户可以应用这些数据改进生产方法、增加利润、提高事物处理的灵活性。
本文对InfoPlus.21和关系数据库的交换提供了三种方法,可根据实际应用情况选用一种。
(1)Aspen LIMS Interface:这是Aspen提供的一个InfoPlus.21与LIMS(实验室信息管理系统)接口的软件,应用这一模块也可实现数据交换。
(2)Desktop ODBC:这是一个桌面ODBC模块,使你的桌面应用 , 如 Microsoft Excel、Microsoft Access、Crystal Report 、 Microsoft visual Basic 等 , 可以查询实时数据库中的数据。[1][2]
(3)API:这是一套为InfoPlus.21开发的编程接口,利用API可以实现更多的功能,使得数据交换的方式更自由。
示例1:利用API实现数据交换示例代码[1][3]
#include " infoplus21_api.h"
//连接InfoPlus21数据库
if(!INISETC())
{
AfxMessageBox("InfoPlus.21连接失败!",MB_ICONINFORMATION);
return;
}
//写历史数据
WHIS21DAT(WHIS_TYPE_UPDATE, nTagID, FT_IP_AREA_OF_TREND, NUM_FTS, nFTs, nDTs, pDVs, -1, &xHisTime, &nFTsOK, &err);
//读数据
float pValue;
DB2REAL(recid, FT_IP_INPUT_VALUE, &pValue, &err);
//结束与服务器的连接
ENDSETC();
上述提及的数据交换方法,可以根据软件功能和软件开发难易程度合理选择。关于如何进行关系数据库的开发,这里不作说明,请读者自行参考其它资料。
利用如上的方法,可以开发出满足实时数据库与关系数据库数据交换需求的软件系统,从而使得这两种数据库的应用得到进一步的加深,为企业全面数据整合提供了方法和手段。