推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

基于Python语言和sqlite数据库的试验数据备份整理系统

更新时间:2019-12-29 20:25:53 大小:2M 上传用户:songhuahua查看TA发布的资源 标签:python数据库 下载积分:1分 评价赚积分 (如何评价?) 收藏 评论(0) 举报

资料介绍

本文介绍了一个试验数据备份整理系统,描述了系统的原理,构成和用途。该系统主要用于电气试验数据的收集备份,也为进一步的整理和分析数据提供了方便。


部分文件列表

文件名 大小
基于Python语言和sqlite数据库的试验数据备份整理系统.pdf 2M

部分页面预览

(完整内容请下载后查看)
2016 NO.03(下)  
ChinaꢀꢁewꢀTechnologiesꢀandꢀProducts  
中国新技术新产品  
信 息 技 术  
基于Python语言和sqlite数据库的试验数据  
备份整理系统  
吴海辉  
(广东电网有限责任公司江门供电局,广东 江门 529000)  
摘 要:本文介绍了一个试验数据备份整理系统,描述了系统的原理,构成和用途。该系统主要用于电气试验数据的收  
集备份,也为进一步的整理和分析数据提供了方便。  
关键词:电气试验;数据;Python sqlite  
中图分类号:TP311  
文献标识码:A  
预防性试验是电气设备诊断的重要  
手段。周期性的预防性试验产生大量的  
试验数据。为了便于数据的比较分析,  
需要对大量的试验数据进行储存和整  
理。当前,试验数据主要储存于企业级  
数据系统中,即由企业建立专门的试验  
数据存储系统,数据储存在后台数据库  
中,试验人员使用专门界面登录系统,  
录入或者查阅试验数据。由于系统开发  
和运维方面存在着不足,试验人员往往  
难以调阅试验数据来进行综合分析。另  
外,由于试验数据是集中储存的,当系  
统故障或者网络中断时,试验数据就不  
能录入和读取。所以,在企业级的试验  
储存系统之外,试验人员还需要另外一套  
本地化的数据备份整理系统作为补充。  
本文作者使用Python语言和sqlite数  
表,也使用JSON协议。列表上包括了每  
一个报告的id,流程号,计划编号,试验  
班组等信息。  
接口,企业系统接口,试验数据库接口  
和日志数据库接口。  
2.2.1 超级接口  
超级接口的脚本文件名为Super Base  
Interface.py,包含了Super Base Interface  
类。当这个类实例化时,它会从一个名  
为作业表单处理器表.xlsx的Excel文件读  
取试验报告与处理模块的对应表,并通  
过Get Handler Name方法返回给调用它的  
主控模块。此外,主控模块首先加载超  
级接口模块,所以它可以作为未来程序  
扩展的挂载点,并因此得名超级接口。  
2.2.2 企业系统接口  
2 试验数据备 份整理系统的工作  
原理和模块构成  
试验数据备份整理系统由多个模块  
构成。这些模块可分为主控模块,接口  
模块,网页数据处理模块。试验数据存  
放在一个名为Data.db的sqlite数据库文  
件中。另外有系统日志存放在一个名为  
Work.db的sqlite数据库文件中。  
2.1 系统工作原理与主控模块  
试验数据备份整理系统包含有一个  
主控模块,脚本文件名为Main Control.  
py。主控模块可由操作系统定时启动,  
亦可人工启动。启动后,主控模块首先  
加载各个接口模块。然后登陆企业级数  
据系统,并获取报告列表。然后依次读  
出列表中每一个报告的信息,包括报告  
的名称,创建班组,计划编号,id和流  
程号。通过id和流程号在日志中查找处  
理记录。如果在日志中找到成功处理或  
跳过的记录,就读出列表中下一个报告  
的信息。如果在日志中没有找到这样的  
记录,通过报告名称查找对应的网页数  
据处理模块来处理此报告。网页数据处  
理模块若成功将试验信息和数据写入数  
据库,则返回成功的信息;若试验数据  
缺失,则将试验信息写入数据库无意  
义,此时网页数据处理模块返回跳过的  
信息,提示试验数据备份整理系统以后  
忽略此报告;若是其他的原因导致写入  
数据库失败,则网页数据处理模块返回  
失败的信息。待网页处理模块返回信息  
后,主控模块就将报告处理的结果(成  
功,失败或者跳过)写入日志,随后读  
出列表中下一个报告的信息。如此循环  
往复,直至整个报告列表被遍历。最  
后,主控模块关闭Data.db文件和Work.db  
文件并退出。至此试验数据备份整理系  
统的一次工作完成。  
企 业 系 统 接 口 的 脚 本 文 件 名 为  
PSystem4A Interface.py。本模块中,通  
过PSystem4A Interface类封装了登录企业  
级数据系统和从这个系统中获取网页的  
功能。调用此类中的Single Login方法并  
提供账号和密码参数就可以登录系统。  
调用POST方法就可以向企业级数据系统  
的服务器进行POST询问。调用GET方法  
就可以向企业级数据系统的服务器进行  
GET询问。GetIndex Json方法返回从企  
业级数据系统获得的JSON格式的报告列  
表。  
据库开发了一套试验数据备份整理系  
统。该系统自动从企业级数据系统收集  
实验数据并储存进本地的数据库中。  
1 企业级数据 系统试验数据的构  
目前,笔者供职的广东电网公司的  
企业级数据系统上的试验数据是以单个  
试验报告的形式录入和展示的。一个试  
验报告既包含试验时间,气温等试验信  
息,也包含试验数据。试验信息被包含  
在JSON格式的数据包里面,数据高度格  
式化,可以统一处理。试验数据被包含  
在HTML格式的数据包里面的,形式多  
变,因而需要对每一种试验报告单独处  
理。  
2.2.3 试验数据库接口  
试验数据接口模块的脚本文件名  
为Data DB Interface.py。内含Data DB  
Interface类,封装了对Data.db数据库的操  
作。此类中提供了WriteDict方法,可以  
把一个字典对象写入由参数指定的数据  
表中。  
2.2.4 日志数据库接口  
企业级数据系统上的每一个试验报  
告都有唯一的一个身份编号(id),是一  
个32位的十六进制整数。Id自报告创建  
时起就存在。不论试验报告经过哪一个  
节点,id都是不变的。企业级数据系统上  
的一个试验报告都会依次经历创建,审  
核,审批三个时间节点。每一个试验报  
告都有一个流程号,可能的取值是0,1  
和2,分别代表报告处于已创建,已审核  
和已审批三个阶段。  
日志数据接口模块的脚本文件名  
为Work Db Interface.py。内含Work Db  
Interface类,封装了对Work.db数据库的  
操作。此类中提供了Set Log方法,可以  
写入一条日志。同时提供了Check Code方  
法供主控模块调用,用以在日志中查找  
成功或者跳过记录。  
2.3 网页数据处理模块  
网页数据处理模块目前有25个,各  
负责处理一种试验报告。每一个网页数  
据处理模块都会加载企业系统接口模块  
2.2 接口模块  
企业级数据系统上有一个报告列  
接口模块主要有四个,分别为超级  
中国新技术新产品  
- 19 -  
2016 NO.03(下)  
ChinaꢀꢁewꢀTechnologiesꢀandꢀProducts  
中国新技术新产品  
工 业 技 术  
浅析三相三线多功能电能表失压追补电量方法  
吴锡权  
(广东电网有限责任公司江门新会供电局,广东 江门 529100)  
要:三相三线多功能电能表具有特殊的性质,经研究发现以往的追补电量计算方法真实性、准确性同现实出入较  
大,有必要针对此展开研究。本文结合试验分析了三相三线多功能电能表失压追补电量方法。  
关键词:三相三线多功能电能表;失压原因;追补电量方法  
中图分类号:TM933  
文献标识码:A  
关于追补电量的计算,相关研究已  
经给出了理论公式,编定在教科书中,  
然而,该计算公式得出的追补电量数值  
的准确性依然有待考证,尚未得到客户  
的广泛认可。特别是当前更多使用的是  
多功能电能表,其失压追补电量的计算  
更为复杂,需要对计算方法进行深入探  
究。  
表 1  
46.7V~50.5V范围内;C相失压,Uabi的  
值则在45.5V~51.9V。这同传统理论资料  
结论有所不同。而且不同失压状态,表  
计的测量功率为常规功率的1/2。  
相等。  
2 电量追补计算  
一、三相三线多功能电能表失压  
原因分析  
以上实验主要是对电压互感器二次  
侧失压的简单模拟试验,实际的失压问  
题远比此复杂,其诱因主要为互感器高  
压熔丝被高温烧断。以下将参照各类电  
压互感器的接线特点,来分析两大类失  
压故障:  
要想明确三相三线多功能电能表失  
压的真正原因,最科学有效的方式就是  
真正拿来几块三相三线多功能电能表,  
通过模拟实验的方式来分析失压的原  
因。本实验选取4块电能表,通过台体模  
拟失压来分析原因。其中电流:1A,功  
率:174.50W,相位角设为:0。实际记  
录的数值:表计实测功率,不同端子间  
的电压。经过对不同端口间电压Ui的检  
测,输入电能表电压端钮的电压的具体  
数据见表1。  
二、三相三线多功能电能表失压  
追补电量方法  
1 输入电压回路等效电路模型  
有异于普通的机械表,三相三线多  
功能电能表出现失压问题后,参考电压  
端扭所测出的电压值,可以绘制出输入  
电压回路的等效电路模型,如图1所示。  
用以下公式来计算计量功率,P=  
Uabi Ia+Ucbi Ic,如果A相失压,则a点和o  
点电位相同,则有:Uabi=Uob=1/2Ucb。  
C 相 失 压 , c 点 和 o 点 电 位 相 等 ,  
Ucbi=Uab/2。B相失压,则有b与o点电位  
第一,A相二次侧失压。如果A/B/C  
对称,对应的向量图则如图2所示。  
P=1/2UIcos(90+φ)+UIcos(30-  
φ)= /2UIcosφ  
U —— 线 电 压 ; I —— 线 电 流 ,  
φ功率因数角,K= UIcosφ/  
/2UIcosφ=2。  
如果是B或C相失压,仍然得出相同  
的数据。也就是说相同型号的电能表,  
经 过 对 4 块 电 能 表 的 失 压 实 验 得  
出:当电能表A相失压时,Uabi的值:  
和数据库接口模块。网页数据处理模块  
中的同名类(例如,PD10CBCHandler中  
的PD10CBCHandler类)提供两个公共方  
法,Load Data和Write Data。Load Data方  
法从企业级数据系统中获取试验信息和  
数据,并存入类成员中。Write Data方法  
把试验信息和数据写入试验数据库Data.  
db中对应的数据表。  
笔者开发的试验数据备份整理系统可以  
运行于试验人员的个人电脑上,自动对  
数据进行备份,实现分散储存。当企业  
级数据系统无法访问时,试验人员可以  
到本人计算机上的Data.db数据库里调出  
试验数据使用。由于数据统一来源于企  
业级数据系统,因而保证了数据的一致  
性。所以,笔者开发的试验数据备份整  
理系统是企业级数据系统的有力补充。  
其次,试验数据备份整理系统还方  
记录数据。试验数据备份整理系统给试  
验人员提供了一个可供自己支配的数据  
库,只需一个查询语句就可以找出上述  
数据。此外,笔者也写了一个Python脚本  
Db2xlsx.py,可以将Data.db数据库的数据  
导出到一个Excel文档上面,更加方便了  
数据的整理和分析。  
将来,试验数据备份整理系统收集  
的数据还可以用于对电气设备基于统计  
的健康评估,使每个电气试验人员都迈  
入到大数据时代。  
2.4 试验数据的储存  
试验数据储存在sqlite数据库文件  
Data.db中。数据库中包含了多个数据  
表,每个数据表记一种试验报告的信息  
和数据。数据表的一条记录包含了时间  
戳,试验时间、地点等信息和试验数  
据。时间戳是数据表的主键。  
便了试验数据的整理和分析。因为企业  
级数据系统要保证安全,不会对普通用  
户开放数据库接口,所以,试验数据的  
读取只能通过一定的界面进行,如笔者  
所用的企业级资产管理系统就是通过网  
页来展现试验数据的。这样就限制了对  
试验数据的综合分析。例如,如果试验  
人员需要统计某型110kV电容式套管的介  
损试验数据来作为参考,就只能先查找  
设备台账,找出该型套管的安装位置,  
然后在企业级数据系统上按变电站查找  
套管试验报告,再逐一打开报告网页,  
参考文献  
[1] Python 学习手册 [M]. 北京:机械工业  
出版社,2011.  
[2] Python 核心编程 [M]. 北京:人民邮电  
出版社,2008.  
3 试验数据备份整理系统的应用  
试验数据备份整理系统的首要用  
途是试验数据的备份。如前所述,当前  
试验数据主要是集中储存于企业级数据  
系统上。当网络出现故障,试验数据就  
不能被人读取和使用。如果数据系统发  
生故障,甚至有丢失试验数据的风险。  
[3] SQLite 权威指(第二版)[M]. 北京:  
电子工业出版社,2012.  
[4] 图解 HTTP[M]. 北京:人民邮电出版  
社,2014.  
[5] The JSON Data Interchange Format[Z].  
ECMA-404 1st Edition/October 2013.  
- 20 -  
中国新技术新产品  

全部评论(0)

暂无评论