版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库与信息管理嵌入式数据库SQLite在故障录波中的应用唐瑜,成乐祥,洪婧(东南大学电气工程学院,江苏南京210096摘要:介绍了SQLite的技术特点和体系结构;结合嵌入式软硬件平台提出在电力故障录波装置中使用SQLite数据库实现故障录波的解决方案;详细说明了SQLite在Arm-Linux平台上的应用开发、交叉编译和移植过程;最后通过一个应用实例说明了SQLite的实现过程。关键词:嵌入式数据库;SQLite;电力故障录波中图分类号:TP311文献标识码:A文章编号:1009-3044(200817-21373-02Application of Embedded Database SQ
2、Lite for Fault RecordingTANG Yu,CHENG Le-xiang,HONG Jing(Department of Electrical Engineering,Southeast University,Nanjing210096,ChinaAbstract:This article explained the technical characteristics and architecture of SQLite,and proposed an application of SQLite for Fault recording combination of embe
3、dded hardware and software platform.The application developing,cross compiling and porting in Arm-Linux platform are also introduced.finally,an example was given to illuminate the SQLite implementationKey words:embedded database;SQLite;power fault recording1引言故障录波器是电力系统发生故障及振荡时能自动记录的一种装置,在发生故障或振荡时进行
4、录波。近年来,随着电子技术的迅速发展,故障录波器采用嵌入式系统设计是一个发展方向。由于故障录波器需要采集的数据量大,科学的存储和管理这些数据对于提高录波器的性能起到重要的作用。目前,常用的实时数据存储和管理的方法有3种:(1根据具体的存储器硬件人为地设计存储管理算法。这种方法简单直接,但是软件的可移植性差,对于复杂的算法很难达到高可靠性的要求;(2利用嵌入式操作系统提供的文件API,以文件的方式实现数据的存储和管理。由于多数嵌入式操作系统(Windows CE、Linux等都以独占的方式访问文件,所以这种方法IO开销大,访问效率低,数据共享性较差;(3借助嵌入式数据库实现数据存储和管理。数据库
5、通过事务来进行调度与并发控制,可有效地对数据进行存取、查询等共享操作,同时借助数据库所具有的安全性和完整性检验等多种安全措施,可确保系统具有较好的整体性能。本文在分析了SQLite嵌入式数据库内部结构和开发技术的基础上,提出了基于嵌入式数据库SQLite的故障录波装置的软件设计方法。2SQLite体系结构及开发技术嵌入式数据库系统是指支持某种特定计算模式或移动计算的数据库管理系统,它通常与操作系统和具体应用集成在一起,运行在智能型嵌入式设备或移动设备上。嵌入式数据库的使用是采用程序驱动,即由程序调用相应的API来实现数据的存取。SQLite是D.Richard Hipp在2000年开发的一个小
6、型嵌入式数据库。它是完全独立的,不具有外部依赖性,可以较为方便地应用于嵌入式系统中。其源代码完全开放,可以免费用于任何用途。2.1SQLite体系结构SQLite体系结构如图1所示。主要由以下几个主要的子系统组成:接口(Interface是一个C语言库,即使使用的是不同语言的API,在底层执行的都是C语言库。从接口接收到命令后传到SQL命令处理器(SQL Command Processor,SQL命令处理器是由三个独 立的步骤组成:标志处理器(Tokenizer、分析器(Parser、代码生成器(Code Generator。虚拟机(Vir-tual M achine是为操作数据库文件而执行的
7、一个抽象的计算机引擎。在虚拟机和低层存储、恢复程序之间,SQLite使用了一个抽象层执行B-树,页面缓冲(Pager,和操作系统接口(OS Inter-face。B-树结构,用于存储数据库到磁盘,这样可以通过减少磁盘的查找来达到快速访问数据的目的。页面缓冲主要处理读、写以及B-树存储机制所需的数字缓冲,包括为了保证事务原子性的回退及提交操作所需的缓冲。操作系统接口主要是为了方便在不同平台的操作而执行的一个底层与操作系统有关的抽象层。2.2SQLite开发技术在SQLite数据库中,可由程序直接调用相应的API函数去实现对数据的存取操作。主要的函数有:(1打开数据库int sqlite3_ope
8、n(const char*filename,/*数据库文件名*/图1SQLite的内部结构int mode,/*0777可读写0444只读*/收稿日期:2008-04-17作者简介:唐瑜(1982-,女,浙江杭州人,硕士研究生,研究方向:电力系统及其自动化;成乐祥(1984-,男,江苏南京人,硕士研究生。sqlite3*ppDb/*输出SQLite数据库句柄/*;上述程序是指打开一个数据库,如果不存在则自动创建。第一个参数指定文件名,第三个参数则是定义sqlite3*ppDb结构体指针,相当于一个数据库句柄。(2关闭数据库int sqlite3_close(sqlite3*/*参数就是打开时的
9、结构体,也就是数据库句柄。*/(3执行SQLint sqlite3_exec(sqlite3*,/*已经打开的数据库句柄*/const char*sql,/*要执行的sql语句*/sqlite_callback,/*回调函数*/void*,/*传递给回调函数的参数*/char*errmsg,/*保存错误信息*/;也就是函数功能是执行一条或者多条SQL语句,SQL语句之间用(;号隔开。建议在执行一条或者多条SQL语句的时候,指定第三个参数回调函数,在回调函数中可以获得执行SQL的详细过程,如果所有SQL执行完毕则返回0,否则,说明这次执行并没有完全成功。如果执行失败(没有返回0则可以查看第五个参
10、数值来查看详细错误信息。3SQLite在ARM-Linux上的移植本文使用以32位的ARM微处理器S3C2410A为硬件的开发平台,采用嵌入式Linux操作系统。要将SQLite3.3.6移植到ARM2410开发板上,除了要有底层操作系统的支持外,还必须要有相应的交叉编译工具链,因此需要首先安装ARM-Linux工具链,具体过程如下。(1建立交叉编译环境。拷贝cross-2.95.3.tar.bz2到/usr/local目录下并解压缩。cp cross-2.95.3.tar.bz2/usr/local/armtar-jxvf cross-2.95.3.tar.bz2(2到http:/www.s
11、/的cvs中下载最新版本的源代码包,解压后生成sqlite目录。tar-zxvf sqlite-3.3.6.tar.gz(3新建目录。cd/sqlite-3.3.6mkdir buildcd build./configure-disable-tcl-host=arm-linux这样在build目录中就将生成M akefile和一个libtool脚本(4修改M akefile文件。cd buildvi M akefile将代码行BCC=arm-linux-gcc-g-O2改成BCC=gcc-g-O2将下面的这行:sqlite3¥(TEXE:¥(TOP/src/shell.c.l
12、ibs/libsqlite3.la sqlite3.h改成:sqlite3¥(TEXE:¥(TOP/src/shell.c.libs/libsqlite3.a sqlite3.h我们是将sqlite放到arm-linux的硬件板子上运行,所以一般将其编译成静态链接的形式。保存M akefile文件后退出。(5执行make命令即可完成编译。编译完成后,在build目录下生成许多.o和.lo文件。执行命令arm-linux-strip sqlite3,去掉其中的调试信息,这样文件将减少很多。这样就可以得到在开发板上可以直接运行的可执行文件。(6在ARM板上运行sqlite。通过nfs将这些文件下载
13、到开发板上。chmod777sqlite3./sqlite test.sqlite会出现sqlite>通过以上的操作sqlite已经可以在ARM Linux下运行,然后就可以基于此进行进一步的应用开发了。4基于SQLite的电力故障录波装置软件设计基于嵌入式操作系统和嵌入式数据库SQLite构建的录波装置的系统结构如图2所示。数据采集模块低通滤波、采样保持(S/H、多路转换(M PX和模数转换(A/D以及微机主系统几个部分组成。在正常情况下,将采到的数据保存于缓存区,并且不断循环刷新,一旦计算的启动量满足启动条件,就按照国家标准将故障前后各段的数据转存到SQLite数据库中,同时将故障发
14、生信号告知监控模块。电力故障录波装置的模拟量数据记录格式是根据DL/T553-94国家标准采用分段记录的方式,以满足运行部门故障分析和数据分析的需要。上位机录波数据的记录格式采用IEEE标准中的电力系统暂态数据转换通用格式,即COM TRADE标准,以便于装置之间的数据共享和故障信息联网。(下转第1378页(上接第1374页通过以下生成数据库datasave ,插入采集数据和查询操作的程序模块来实现电力故障录波装置中的嵌入式数据库。sqlite3_open("datasave",0777,&zErrM sg;/打开一个数据库,如果改数据库不存在,则创建一个名字为da
15、tasave 的数据库文件。sqlite3_exec(db,"create tableData (id integer primary key,time integer,Ia integer,Ib integer,Ic integer,Ua integer,Ub integer,Uc integer;",NULL,0,&zEr-rM sg;/建立采集表sprintf(value,"INSERT INTO Data(time,Ia,Ib,Ic,Ua,Ub,Uc n""VALUES(%d,%d",buf1,buf2,buf3,bu
16、f4,buf5,buf6,buf7;sqlite_exec(db,value,NULL,NULL,&zErrM sg;/插入采集的数据sqlite3_exec (db,"select *from Data;',callback,0,&zEr-rM sg ;/查询记录5结束语在嵌入式系统中,利用嵌入式数据库对采集的数据进行操作和管理是嵌入式系统应用发展方向,它简化了应用程序的整体开发过程,提高了用户存取记录的效率,实现了多用户数据的共享。SQLite 以它小巧的体积、快速高效、稳定可靠、易移植等优势将成为嵌入式数据库领域的首选。嵌入式数据库SQLite 在电力故
17、障录波装置中的应用,满足了嵌入式录波数据处理的需要,为故障录波系统提供了有力的技术支持。参考文献:1唐涛,诸伟楠,杨仪松,等.发电厂与变电站自动化技术及其应用M.北京:中国电力出版社,2005.558-560.2曾立胜.基于SQLite 嵌入式数据库的射频卡数据存储J.电脑知识与技术,2006,(8:3,29.3黄布毅,张晓华.基于ARM-Linux 的SQLite 嵌入式数据库技术J.单片机与嵌入式系统应用,2005,(4:21-24.4王京谦,万莅新.开源嵌入式数据库BerkeleyDB 和SQLite 的比较J.单片机与嵌入式系统应用,2005,(2:5- 7,49.End;/Sql&g
18、t;beginDbms_defer_sys.schedule_purge(next_date=>sysdate,interval=>sysdate+10/1440.delay_seconds=>0,rollback_segment=>End;/用repadmin 身份登陆dbserver 数据库,运行以上的类似命令通过以上配置HIS 系统数据库与自费药房数据库就可以实现同步复制功能,使用同样的方法就可以对其他数据库进行同步复制功能。并可以通过设置根据实际需要时间间隔进行自动数据库复制。而对于外网与内网由于不能进行正常的物理连接,于是设置为每天晚上非工作时间为维护阶段,由系统管理员将两台服务器直连,然后使用相同的方法将内、外网数据同步。5结束语Oracle 分布式数据可以解决由于地域条件、业务关系等条件对应用系统限制问题,而oracle 数据库高级复制功能为分布式数据库系统各中心数据同步的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度能源项目合同财产保全担保书范本3篇
- 2025年度个人装修贷款协议书3篇
- 二零二五年度60岁以上人员社区教育辅导劳动合同模板3篇
- 2024-2025学年新教材高中政治第3单元就业与创业单元综合提升教案新人教版选择性必修2
- 2025版智能交通管理系统建设运营履约担保合同4篇
- 2025年度喷灌系统节能改造技术合同4篇
- 2025年度在线教育平台兼职外教远程教学合同4篇
- 2025年度宿舍管理员职业发展规划聘用合同
- 二零二五年度驾校教练员职业发展承包合同3篇
- 2025年度马赛克材料研发与应用采购合同4篇
- C及C++程序设计课件
- 带状疱疹护理查房
- 公路路基路面现场测试随机选点记录
- 平衡计分卡-化战略为行动
- 国家自然科学基金(NSFC)申请书样本
- 幼儿教师干预幼儿同伴冲突的行为研究 论文
- 湖南省省级温室气体排放清单土地利用变化和林业部分
- 材料设备验收管理流程图
- 培训机构消防安全承诺书范文(通用5篇)
- (完整版)建筑业10项新技术(2017年最新版)
- 第8期监理月报(江苏版)
评论
0/150
提交评论