APP下载

基于嵌入式数据库的电能质量监测系统的设计

2013-12-14刘宏伟赵春宇

电气自动化 2013年4期
关键词:嵌入式电能设置

刘宏伟,赵春宇

(上海交通大学 电子信息与电气工程学院,上海 200240)

0 引言

随着电力电子技术的蓬勃发展和广泛应用,电力系统中不对称性、冲击性、非线性负荷的不断增加,导致电能污染日益严重。对电能质量进行监测与分析从而提高和改善电能质量具有重要的现实意义[1]。而在电能质量监测系统中,数据的科学存储和安全管理对于整个系统的性能起到重要作用。以此为切入点进行了基于嵌入式数据库的电能质量监测系统的设计。本文首先介绍了基于DSP和ARM的电能质量监测系统的整体架构,然后分析了传统嵌入式数据存储管理方法的优缺点并详细阐述了嵌入式数据库SQLite的基本原理。最后重点介绍了电能质量监测系统中的数据库设计,以及ARM控制模块的软件设计。

1 系统总体结构

电能质量监测系统包括CPLD器件,多通道电流模块、电压模块(可依需求配置)和ARM主控模块。CPLD器件负责仲裁总线,建立各模块的通信;每个电流或电压模块负责单通道的电流或电压相关参数;ARM模块负责接受电流电压模块存储采集到的电能质量参数,与上位机通信以及更新系统等。电压和电流模块与ARM控制模块之间通过SPI总线实现通信,SPI通信的建立和仲裁通过CPLD实现的[2]。如图1所示。

ARM主控模块以S3C6410芯片为核心,配置了丰富的外设资源,并提供GPRS、GPS和Wi-Fi功能服务。另外,该模块提供了USB OTG功能,可以及时更新系统软件。

2 嵌入式数据库

传统的嵌入式数据存储管理方法主要是根据具体存储器硬件电路设计的存储管理算法或采用基于文件系统的存储结构。前者简单直接,但是软件的可移植性差,对于复杂的算法很难达到高可靠性要求;后者程序对记录文件直接进行操作,不仅会增加系统的开销,而且导致可重用性变差[3]。采用数据库来管理数据可以很好解决地上述问题。数据库是通过事务来实行调度和并发控制的,可方便地进行数据存取,查询等操作,而且数据库具有安全性和完整性检查的措施,可确保系统具有较好的整体性能。

SQLite是一款开源的嵌入式关系数据库,它直接在应用程序进程空间中运行,不仅系统资源占用小,而且具有移植性好、简单易用、高效可靠等优点[4]。SQLite采用模块化的设计,可分为三个子系统,八个独立的模块组成。如图2所示。

接口(Interface):即 SQLite与程序、脚本或者库文件交互的接口,由一组C语言接口函数组成。其它程序语言与SQLite交互最终都会转化为相应的C API调用;编译器(Compiler):编译器由分词器、解析器和代码生成器构成,其中分词器和解析器对SQL语句进行语法检查,然后把它转化为语法树并传给代码生成器,代码生成器根据它生成一种针对 SQLite的汇编代码,最后由虚拟机执行;虚拟机(Virtual Machine):和Java虚拟机相似,虚拟机解释执行字节代码。虚拟机的字节代码由128个操作码构成,它的每一条指令都用来完成特定的数据库操作或者为这些操作栈空间的准备。后端(Back-End):后端由B-树、页缓存和系统调用构成。B-树负责维护着各个页面之间的复杂的关系,便于快速找到所需数据。而页缓存则通过系统调用在B-树和磁盘之间传递页面。

图1 在线电能质量监测系统框架图

图2 SQLite基本原理

3 电能质量监测系统的数据库设计

电能质量监测系统的应用程序以数据库为核心,数据库为程序的其它功能模块提供数据接口。系统涉及到的数据包括系统控制信息、实时电能质量参数、历史电能质量参数和电能事件数据。其中实时电能质量参数从DSP模块接收后,在ARM控制模块中暂时存储,并不需要单独建立数据库。所以为了降低系统复杂度,只将系统数据库分为系统参数数据库、历史数据库和事件记录数据库三个子库。

3.1 系统参数数据库设计

系统参数数据库主要用于存储DSP模块和ARM控制模块的设置参数。DSP模块的系统参数包括存储间隔、电压设置、接线方式、浪涌/塌陷设置、三相不平衡设置、频率设置和传感器设置;ARM控制模块的系统参数包括接线方式、瞬变设置、存储间隔、电压设置、浪涌/塌陷设置、谐波设置、三相不平衡设置、频率设置和开关通道输入设置。系统软件中存有默认的设置参数,系统第一次上电时,会建立数据库并将默认参数导入。之后每次上电,系统都会先从参数数据库中读取参数并设置。ARM控制模块接收到上位机发送的更新系统设置参数命令后首先更新系统,然后更新参数数据库的相应数据。

3.2 历史数据库设计

ARM控制模块会对从DSP模块接收到的15组实时电能质量参数进行判断统计,然后将得到的一组电能质量参数存入历史数据库。历史数据库中每一条记录包括统计时间点、统计时长、各相电能参数、频率、三相不平衡度以及长闪短闪等。系统使用SQLite只是来实现采集数据的短期存储,数据最终需要传送到大型数据库中。历史数据库中,旧的数据存放超过一定时限会被新的数据覆盖。

3.3 事件记录数据库设计

事件记录数据库主要用于存储电能质量事件。电能质量事件是指电能质量监测中指标超过限值的事件,包括频率超标、电压超标、电压瞬变、谐波电压、谐波电流、三相不平衡以及开关量各通道输入输出等[5]。为了方便上位机查询数据,事件记录数据库又分为事件记录表,事件波形表和事件趋势表,分别用于存储电能质量事件发生时的详细信息、趋势数据和波形。

4 电能质量监测系统软件设计

ARM控制模块主要负责整个系统的管理和控制,根据不同的现场要求向 DSP发出控制命令并要求回传相应数据 与 信 息[6]。ARM控制模块的软件部分主要由以下五部分组成:①LCD液晶显示;②上位机通信;③数据接收和处理;④数据库的管理;⑤系统参数设置。如图3所示。

ARM控制模块向下使用GPIO、IIC总线以及SPI总线与DSP模块通讯,从DSP模块接收测量处理后的数据,并将数据存入数据库SQLite中;向上通过232串口,485串口以及网口与PC机通讯,回馈上位机的命令,并将所请求的数据从SQLite读出发送给上位机;同时,ARM控制模块搭载有一块液晶显示屏,用来显示系统状态和电能质量的实时测量参数。

基于上述功能需求及模块化设计的考虑,程序设计为两个进程,一个为系统控制进程,主要负责系统显示以外的其它所有任务;另一个为系统显示进程,主要负责从数据库读取数据并传送给屏幕显示。系统控制进程又分为以下8个线程:1、SYS线程:负责更新系统时钟,复位DSP模块,异常检测;2、EVT线程:处理电能事件的捕捉、缓存等;3、PARA线程:电能参数的接收、修正、统计;4、SAVE线程:处理数据存储的任务;5、COMM线程:执行串口/485/UDP/TCP指令接收及简单指令回馈的任务;6、ECHO线程:执行串口/485/UDP/TCP复杂指令回馈的任务;7、I2C线程:读取温度;系统设置,特殊设置,时间更新等;8、TCP线程:处理TCP端口状态查询。

图3 ARM控制模块软件架构

5 结束语

本文引入嵌入式数据库对电能质量监测系统采集统计的电能质量数据进行存储和管理,不仅优化了检测系统简化了开发过程,而且提高了电能质量数据管理的效率。嵌入式数据库SQLite在电能质量监测系统中的应用,满足了电能质量数据处理的需求,为电能质量监测系统提供了有力的技术支持。

[1]黄丽丽.电能质量监测和监测仪器讲座[J].仪表技术,2005,12(6):64-66.

[2]崔恒春,汪勤,赵春宇.可扩展的在线电能质量监测系统[J].仪表技术与传感器,2011,47(7):106 -107,110.

[3]唐瑜,成乐祥,洪婧.嵌入式数据库SQLite在故障录波中的应用[J].电脑知识与技术,2008,15(17):1373 -1374,1378.

[4]肖俊.基于蓝牙技术的RFID-SIM卡在SQLite中的数据存储过程分析[J].软件导刊,2011,20(5):159-161.

[5]全国电压电流等级和频率标准化技术委员会.电压电流频率和电能质量国家标准应用手册[M].北京:中国电力出版社,2001.

[6]苏士美,杨鹏.基于 DSP和 ARM的新型电力谐波监测仪设计[J].电测与仪表,2009,46(11):52-55.

猜你喜欢

嵌入式电能设置
中队岗位该如何设置
船舶防火结构及设置的缺陷与整改
苹果皮可以产生电能
电能的生产和运输
海风吹来的电能
TS系列红外传感器在嵌入式控制系统中的应用
搭建基于Qt的嵌入式开发平台
澎湃电能 助力“四大攻坚”
嵌入式软PLC在电镀生产流程控制系统中的应用
中俄临床医学专业课程设置的比较与思考