《智能仪表软件》word版.doc_第1页
《智能仪表软件》word版.doc_第2页
《智能仪表软件》word版.doc_第3页
《智能仪表软件》word版.doc_第4页
《智能仪表软件》word版.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

智能电表的软件设计智能电表的软件设计摘 要随着社会的发展和进步,电能变得越来越紧张,合理利用电能就成为急待解决的问题。为了提高供电质量和资源的合理利用,必须抑制高峰需求,鼓励低谷用电,这就需要运用价格的杠杆作用,制定峰谷分时电价来调节。所以,就需要有一个智能的计费工具,来实现价格调节智能分时计费电度表。本设计通过单片机以及I C串行总线使很好的对峰谷进行分时记值、计价,从而很好的解决了电能收费问题。论文完成了电度表的相关软件设计,提出按功率额度实时分段计量及复费率分时段计量的电度表设计方案,进行了功率分段计量的软件设计,有功、无功瞬时功率的计算,按键和显示的处理等工作,是实用性很强的设计方案。关键词单片机;分时计费;电度表;智能Software Design of Intelligent Electric MeterAbstract:With the development and progress of society, the electric energy is becoming more and more intense, the rational utilization of energy has become urgent to solve the problem, in order to improve the power supply quality and reasonable utilization of resource. must restrain the peak demand, encourage low electricity, this needs to be done by having price leverage to make rush-hour and empty-hour with different power cost to adjust it. So, you need to have an intelligent charging tool, to achieve price adjustment-intelligent time-sharing accounting of kilowatt-hour meter. Through the design of single chip microcomputer and Inter-Integrated Circuit serial bus makes good on peak-valley time-sharing note value valuation, which well solves the problem of electricity charges. The thesis completed the design of watt-hour meter, according to power line piecewise measuring in real time and multi rate time measurement of watt-hour meter design scheme, the power section measurement software design, active power, reactive power calculation, keys and a display processing and so on, is a very practical design scheme.Key words: Single chip microcomputer; time-sharing accounting; kilowatt-hour meter; intelligence目 录1 引言11.1 课题背景及意义11.2 智能分时计费电度表系统的设计方案11.3 分时计费的实现21.4 电度表参数配置和设计组织结构32 系统结构框图与设计要求42.1 系统结构框图42.2 内容显示与设计要求43 系统软件设计与实现63.1 软件总体设计63.2 分段计量的设计与实现8 3.2.1 时间参数检测8 3.2.2 时间分时段电能计量9 3.2.3 功率参数检测10 3.2.4 功率分时段电能计量113.3 瞬时功率计算12 3.3.1 能量寄存器最低有效值计算12 3.3.2 瞬时功率计算143.4 按键中断处理与时钟初值输入调整15 3.4.1 按键处理与按键状态检测15 3.4.2 时钟初值输入调整173.5 基于ADE7758的异常事件检测19结束语21参考文献22附录23致谢32341 引言电度表技术正向着复费率、多功能、网络化的方向发展。电能计量芯片ADE7758、ATT7022B等在电度表设计中的应用,提高了电能计量精度,简化了电度表设计结构。随着电能计量芯片的推陈出新,复费率电度表、防窃电电度表、配置RS-485通信及红外通信接口的电度表以及三相多功能电度表发展迅速。电度表的计量精度、功能扩展、抄表方式等发生了深刻变化,电能的科学管理和合理利用进入实施和操作阶段。在这种背景下,电度表的功能、性能、以及可靠性设计等都有了显著提高与改进,电度表技术面临难得的发展机遇1。1.1 课题背景及意义随着国民经济的不断发展,各地对于电能需求量也随之迅速增加,电力已经成为国家的最重要能源。但是,当前居民用电的管理过于落后,居民用电管理收费多年来一直采用先用电、后抄表、再付费的传统作业方式。居民用电绝大多数实行“分表制”,即若干集中居住的家庭使用一个总的电表,每户装一个分电表,作为居民交付电费的依据。但是这种管理方式,给居民和管理人员带来诸多不便,而且还存在着一些弊端。为了适应社会的需要,保证用户安全、合理、方便地用电,对传统的电表和用电的管理模式进行改造,使之符合社会发展的需要就显得很有需要。加上现在很多电表不能分时计费,所以,我们一致决定选择了基于单片机的分时计费智能电表设计。所谓智能电表,就是应用计算机技术,通讯技术等,形成以智能芯片(如 CPU)为核心,具有电功率计量计时、计费、与上位机通讯、用电管理等功能的电度表2。本新型智能电表主要实现分时智能计费。本次设计主要采用ADE7758电能计量芯片和 AT89S52 单片机为核心,结合电流、电压采集,再通过信号 滤波传给 ADE7758,再经过 AT89S52 处理,最终在键控的触发下,送到LCD显示。此电表能实现用户在 220V 电压下所用功率的计算,并根据国家规定的用电高峰和低谷设置阶梯电价计算,并显示出用户各时段所耗功率。不仅具有传统电表的功能,还能对用户的用电情况进行管理和控制,并且相比于传统电表的机械式结构,没有机械摩擦,大大的提高了准确度和灵敏度,且易于实现自动化测量,并且可以实现远程通讯和控制,具有较高的性能价格比,适合我国国情,有广泛的引用价值3。智能电表利用微机技术,通讯技术等等,减少了能量的消耗,把采集、处理集中于一体,节省成本和人力资源,提高了工作效率,适应了现代用户的需求。1.1 电度表技术现状与发展趋势 早在本世纪初,电子式电度表就已经取代感应式表,成为工商业用表的主流。随着电力系统在不断扩展三相多功能表的应用领域,三相多功能表的需求呈明显上升趋势。功能的扩展提升了供电部门对居民用电的现代化管理,为将来实现大规模自动抄表提供了基础。其中复费率表得到了很多经济发达而电力紧张的地区供电部门的青睐,复费率表的技术因此也得以迅速提高和发展。预付费表技术趋于完善。一方面由于供电部门加大对欠费用户的管理力度,使市场需求升温,另一方面由于技术改进,特别是使用了CPU卡和非接触式卡等最新技术,使预付费表的性能尤其是安全性和可靠性方面已逐步趋于完善自动抄表技术发展颇具前景。近几年来,随着通信技术的不断进步以及电力市场应用的需要,国内自动抄表技术水平取得了长足的进步。低压电力线载波技术逐步被越来越多的电力部门所采纳,短距离红外抄表技术得到应用和推广。文电子式电度表在可靠性、准确度、功能扩展、性价比等方面显著优于感应表,有全面取代感应表的趋势。防窃电要求进一步加强。随着窃电方式的更加多样化和隐蔽化,对电度表防窃电的要求也越来越高,电子式电度表表现出强大的优势。1.2 智能分时计费电度具有通信接口尤其是RS一485接口成为趋势。随着抄表到户的逐步实施以及电力部门的体制改革,自动抄表成为用户强烈的需求,因此越来越多地要求电度表配备通信接口。目前的通信方式在一个或几个方面或多或少存在一些问题,无法全面满足用户的要求。而电度表配备RS一485接口具有成熟和性价比的优势,适合未来采用更新、更好的通信技术,因此成为用户目前较为理想的选择而逐渐成为标准配置。模块化设计成为趋势。随着电力市场改造力度加大,对电度表的技术更新速度也提出了更高的要求。电度表的硬件和软件可以采用模块化设计,将技术相对成熟和标准的部分进行封装入库,如计量模块、电源模块、RS485模块、RTC模块、显示模块、继电器控制模块、IC卡模块、数据存储模块等。当设计一个新的产品时,开发人员只需要将精力集中于产品的新模块、新功能的开发,以及模块的集成上,进而有效缩短产品的开发周期,提高产品设计的可靠性。测量电路的集成化、模块化是计量芯片的发展趋势。当前,各大型器件公司纷纷推出自己的计量芯片,并不断的进行产品更新换代。比较典型的有美国ADI公司推出的ADE7758计量芯片,珠海炬力公司推出的ATT7026A和北京福星晓程电子公司推出的PL3223。上述三种芯片都集成了DSP数字信号处理技术,支持硬件和软件两种校表方式,计量精度高,且外围电路设计简单。文目前,我国感应式电度表仍占据相当的市场。峰谷分时电价和避峰电价政策的出台,将推动多费率表市场需求。尤其是大工业用户,对三相多费率表的需求,会较快增长。此外,三相高精度多功能表也将得到重点发展。该电度表目前主要用于发电厂、变电站和各大用户,并不断扩大到普通三相表用户中。电子式电度表有多功能、高精度、多费率、自动抄表等优势,逐步成为电度表发展的主流。12拟解决的问题和本文的创新性工作课题研究主要解决分段计量问题,包括按时间参数分段和按负荷功率实时分段两种方式。基于ADE7758和单片机AT89S52进行电度表设计,根据负荷的功率额度实时分段计量,是本文的创新点。为了实现正常负荷和超低负荷两种情况下的精确计量,提出按负荷功率实时分段计量方案;为了缓解电力供需矛盾,调整电力负荷曲线,提出复费率分时段计量方案。两种计量方案分别针对提高电能计量精度和调整电力负荷曲线提出。复费率分时段计量拟解决的问题。随着经济的发展,各行各业对电力的需求越来越2绪论大,用电量时间不均衡的现象日益突出。为了合理利用电量,调节电网负荷曲线采用分时计费是一个有效的解决方案。复费率电度表以时间参数为峰谷费率划分依据,通过设置多个费率和时段,通过“削峰平谷”的方法消减峰期的用电量,增加谷期的用电量。复费率分时段计量有利于缓解用电量的时间不均衡现象。按功率分段计量拟解决的问题。在进行电量总表设计时,一般采用电流传感器进行电流信号的检测。当电流传感器工作在一次端额定电讲L值附近时,电流信号的检测误差最小洲。在配电系统中,电网电压一般是稳定的,电网电流则根据挂接的负荷大小发生变化。为了扩大负荷计量范围,减小电流传感器的检测误差对计量精度的影响,采用双变比电流传感器进行电流信号的检测,根据负荷的功率额度实时进行变比切换,使电流传感器始终工作在检测误差最小状态。这种计量方案有望实现全量程的糟度均街和精确计量。在这方面,相关的参考文献及研究成果为数不多。ADE7758、ATTT022B等计量芯片的应用,提高了电量计量精度,减少了电能计量误差。针对电能计量精度问题,文献10进一步给出ADE?758软件校准流程和校准算法,对ADE7758应用手册中的一步校准算法进行改进,采用邂步逼近算法以减小电表校准误差;文献25从D转换角度研究了提高电能计量精度的方法;文献E26、(27从谐波计量和辨识的角度进行分析;文献28从提高电能谐波功率的计量能力角度,提出一种基于高速单片机内核的高精度三相电度表设计方案;文献29】提出基于ARM技术的三相电度表设计方案。上述文献从不同角度阐述了提高电能计量精度的策略问题。目前,还没有一种电度表产品具有按负荷功率额度实时分段检测计量功能。对于高压,尤其是lO35kV输配电网的高糟度计量问题,至今还没有涉及实时分段计量。复费率分时段计量以时间参数为峰谷分段依据,但这种分段不具有实时性,且无法满足精确计量的要求本文为了解决精确计量问题,从电流传感器的检涮误差角度进行分析提出一种高精度10kv35kv的输配电网电力负荷计量方案。表系统的设计方案本设计以智能计量总表为研究对象,采用计量芯片ADE7758和AT89S52设计三相电度表,介绍了计量电路原理、系统结构特点以及分段计量的软件设计与实现。针对1035kV输配电网正常负荷和超低负荷两种情况下的精确计量,提出按功率额度实时分段计量的电度表设计方案。为了调整电力负荷曲线,针对用电量的时间不均衡问题,提出复费率分时段计量方案。采用双变比电流传感器进行信号的检测采样,当负荷电流低于额定电流的20时,单片机通过检测功率,自动切换到低负荷计量回路,即小电流比计量回路,最大限度降低了电流传感器低负荷运行时造成的信号检测误差,提高电能计量精度。单片机通过对瞬时有功功率的检测,实现了计量回路的实时选通切换和功率分段计量,通过对时间参数的检测,实现了定时存储和分时段计量。根据电度表参数配置进行ADE7758初始化参数计算。目前,还没有一种电度表产品具有按负荷功率额度实时分段检测计量功能,对于高压,尤其是1035kV输配电网的高精度计量问题,至今还没有涉及实时分段计量。复费率分时段计量以时间参数为峰谷分段依据,但这种分段不具有实时性,且无法满足精确计量的要求。本文为了解决精确计量问题,从电流传感器的检测误差角度进行分析,提出一种高精度10kV35kV的输配电网电力负荷计量方案。1.4 电度表参数配置和设计组织结构电度表参数设置如表1和表2所示。表1电度表参数设置电度表规格脉冲常数分流电阻/CT规格PT规格高变比150(250)A2000.012150/5A10000/100V低变比30(50)A2000.01230/5A10000/100V表2电度表参数设置Imax额定电压VnIfullscalVfullscale高变比250A10KV442.0A17.68KV低变比50A10KV88.4A17.68KV电度表配置两个量程,30A(50A)和150A(250A),分别对应高变比计量和低变比计量两种模式,按负荷的功率额度实时进行不同量程的计量切换,以实现正常负荷和超低负荷两种情况下的精确计量。有功、无功脉冲常数设计分别为200impulseskWh和200impulseskVAR,匹配电阻为电流传感器二次端的两个串联分流电阻,其作用是把电流信号转换为电压信号,Vn、Imax对应额定电压值和负荷最大额定电流值,Ifulbcal、Vfullscale为ADE7758满刻度输入时对应的负荷电流、电压值。根据电度表参数设置和ADE7758计量芯片特点,计算公式如式1和式2所示6。 低变比时: Ifulbcale=88.4A (1)高变比时: Ifulbcale=442.0A (2)式中O.5V为ADE7758电流通道满刻度输入信号,30和6为电流传感器高低变比,0.024为电流传感器二次端分流电阻大小。根据国家标准GBT15283-94和国际标准IEC521-1988,电度表标有两个电流值,如30(50)A。这里30A为基本电流(basic current),符号Ib,是确定仪表有关特性的电流值,也称此电流值为标定电流。括号内所标(50)A为额定最大电流(rated maximum current),符号Imax,为满足标准规定的准确度的最大电流值。设计时在外加额定电压Vn=10kV时,ADE7758电压通道信号输入为0.2V,高变比计量在负荷电流Imax=250A时,ADE7758电流通道信号输入为0.2V,低变比计量在Imax=50A时信号输入为0.2V。2 系统结构框图与设计要求2.1 系统结构框图系统结构框图是系统产品化的基础,它包含了系统的硬件选择及软件开发,是在对系统功能、技术指标、性价比、元器件的可购性等因素进行可行性分析的基础上,对多个方案比较权衡后确定7,系统结构框图如图1所示。单片机AT89S52RS-485通信模块时钟模块看门狗复位模块计量模块存储模块显示模块计量回路选通模块后备电源和主电源切换电路模块图1系统结构框图设计系统结构框图有以下几个模块组成:计量模块、主控模块、显示模块、存储模块、看门狗复位模块、时钟模块、RS-485通信模块、计量回路选通模块、后备电源和主电源切换电路等。采用ADE7758计量芯片和AT89S52设计三相电度表,单片机的TO、T1对ADE7758的APCF、VARCF端子发出的脉冲计数,实现有功、无功等多个电量参数的计量。单片机通过I C总线进行电量参数的定时存储,通过按键进行电量参数的查询,通过液晶HC1602进行电量参数的显示,通过RS-485总线进行电量参数的远程数据传送,采用AT24C02芯片进行电量参数的存储。考虑到存储芯片擦写次数的有限性,电量参数的计量累加在单片机内部完成。DSl302为分时段计量和定时存储提供时间参数,通过三个功能键实现DSl302芯片时钟的初值输入调整。后备电源LIR2032为可充电的3.6V锂电池,充电时电流最大不超过20mA。单片机复位采用MAX813L芯片。单片机的RXD、TXD串口预留作为RS-485通信接口。课题研究采用MAX485芯片进行RS-485总线与单片机的接口电路设计。2.2 内容显示与设计要求课题内容围绕三相电度表多个电量参数的计量、存储、显示、按键查询展开,显示分两行显示,每行16个字符。在参数显示的同时进行代码的显示。若系统无中断发生,液晶显示当前总的有功电量和无功电量,有功电量和无功电量代码记为E0、R0,数据显示格式如下所示8,由8个整数位和1个小数位组成,显示范围O99999999.9。EO:00000000.1RO:00000000.1在数字电路中,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需8位(一字节)即可。而对于中文,常用的却有6000以上,于是我们的DOS前辈想了一个办法,就是将ASC表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。而剩下的低128位则留给英文字符使用,即英文内码。系统配置三个功能按键,记为K2、K3、K4。按键功能描述与参数显示如表3所示。表3按键功能描述与参数显示按键类型显示界面示例功能描述K2E1:00000000.0显示分时段计量的有功电量E2:00000000.0K3E3:00000000.0显示实时分段计量的有功电量E4:00000000.0K4P:00000000.0显示瞬时有功功率P、无功功率VV:00000000.0K2、K3组合进入时钟初值调整,光标指示调整对象0805/04/00:00:00K2、K4组合H1:0002异常事件记录查询0805/04/00:00:00K3、K4组合E0:00000000.1退出时钟初值调整并返回主显示R0:00000000.1其中R0、E0、E1、E2、E3、E4、P、V、H1、H2、H3参考符号约定部分说明(见附录)。显示码在进行LCD显示时表示显示参数的物理意义,在源程序设计时,对应全局变量名。电能计量结果通过三个功能按键进行查询显示,系统具体设计要求如下:(1)实现总的有功、无功等电能计量与显示,通过按键查询显示分时段电量、功率分段电量和瞬时有功、无功功率。(2)通过对负荷瞬时功率的检测,实现功率分段和有功电量的实时分段计量。(3)通过对时间参数的检测,实现电量参数的定时存储和有功电量的分时段计量。(4)通过按键进行时钟初值输入调整。(5)实现异常事件的中断记录,其中异常事件包括断相、过流、过压等三种情况。3 系统软件设计与实现软件采用C语言编写,利用模块化结构和子程序,可节约内存,便于程序的编制、修改及开发。系统功能主要由主程序和各类功能函数具体实现。采取模块化的程序设计方法,进行系统总体流程设计以及电量参数的算法流程设计,分析了功率分段计量的软件设计与实现,进行按键中断处理以及时钟初值输入调整设计,阐述了基于ADE7758的断相、过流、过压检测原理。我们在原有的三相/单相电度表作为电量计量标准的基础上,将表盘所转圈数用光电信号反应,再利用光电转换器件,转换成脉冲信号,输入单片机。根据分时计费用电制度的规定进行分析处理。这样,不仅给出了用户各用电计费期的用户度数,还可按分时计费价格标准直接算出用户电费,并显示与打印。此外,用户用电电源停电时,备用电源能自动投入工作。本文设计的分时计费电度表具有可编程、使用灵活、适用范围广等特点9。性能良好,具有较强的适用性。软件设计的成功与否关系到整个系统能否具有使用灵活,操作简便,可靠性强等优点,而设计良好的软件能够做到在较少的改变硬件电路的情况下,方便改进系统的功能,这就对软件的设计提供了较高的要求。遵循“至顶向下,逐步求精”的结构化设计原则10,先将任务层次化,然后对每一层再逐步细化,每一层实现的功能尽量是独立的,彼此之间相互影响应该较少,然后按照与划分相反的过程编写,调试程序,待所有子程序都编写设计通过后,依它们之间的逻辑顺序组合起来,构成完整的程序软件。采用这种方法,不仅使软件可读性好,维护方便且易于修改移植。如果有特定要求需要改动软件时,则只需修改或替换某子程序即可,从而加快了系统研制进度,缩短了软件开发周期。3.1 软件总体设计主程序设计流程主要围绕电量参数的计量展开,电能计量采用中断方式进行,保证了电能计量的及时性。系统在进入主循环之前,要进行与中断TO、T1、INTO、INT1有关的AT89S52寄存器初始化、ADE7758初始化、DSl302初始化等操作。为了保证电量参数存储的可靠性,在软件设计上要有充分的冗余和纠错。对每一个电量参数分配两组存储单元,主程序流程图如图2所示。开始初始化显示电量参数E0、R0T0中断E0对应的脉冲数+1脉冲累加满0.1kWh?脉冲变量赋值为0小负荷计量E0+0.1kWhE3对应的脉冲数+1切换条件满足?脉冲变量赋值为0进行变比切换,转换计量方式脉冲累加满0.1kWh?存储电量参数瞬时有功功率计算比较E3+0.1kWh脉冲累加满0.1kWh?E1对应脉冲数+1脉冲变量赋值为0存储时间到?脉冲累加满0.1kWh?时间范围00:00-12:00E4+0.1kWhE4对应的脉冲数+1脉冲变量赋值为0脉冲变量赋值为0E1+0.1kWhE2+0.1kWh脉冲累加满0.1kWh?脉冲变量赋值为0E2对应脉冲数+1R0+0.1kWh脉冲累加满0.1kWh?R0对应脉冲数+1T1中断按键中断RS-485中断ITN0、INT1中断T2寄存器初始化在系统上电后,读取AT24C02中上次存储的两组电量参数,若两组参数相同,则表明上次存储结果正确,否则把当前单片机RAM中的电量参数存储到AT24C02中11。在主程序的一次循环过程中,分别进行瞬时有功功率的检测和时间参数的检测,根据检测结果进行功率分段计量和复费率分时段计量。定时存储问题,电量参数采用定时方式存储,在一天中进行两次存储,分别发生在00:00和12:00两个时刻。主程序每循环一次,就进行一次时间参数的检测。定义两个变量flag1和flag2,当时间在00:00-12:00内时flag1=l,否则flag1=0。在主程序连续的两次循环中,若flag1两次赋值结果不同,就认为存储时间到。通过调用函数write2402_long()进行电量参数的存储,其中flag2用来存储上次循环中flag1的取值。功率分段问题,主程序每循环一次,就进行一次瞬时有功功率的计算,并与切换功率P0比较。定义两个变量flag3和flag4。当负荷功率小于90P0时flag3=l,当负荷功率大于P0时flag3=O,在90P0P0之间时,flag3保持上次赋值结果不变。在主程序连续的两次循环中,若flag3两次赋值结果不同,就认为功率分段条件满足。flag4用来存储上次循环中flag3的赋值。通过设置两个切换值P0和90P0,避免CD4053选通开关过于频繁的切换12。电流传感器变比切换过程中的计量误差问题,采用脉冲计数方式进行电量参数的累加,脉冲输出频率与ADE7758能量寄存器中累加的能量成正比。ADE7758内部有一个数频转换DFC,只有当ADE7758内部能量累加到一定程度时,这部分能量以脉冲的方式输出。单片机对脉冲输出进行计数,实现对这部分能量的有效计量。也就是说,ADE7758寄存器内部能量的累加与单片机对能量的有效计量不是同步的。在ADE7758寄存器内部能量累加过程中,可能由于负荷情况的变化而导致电流传感器变比切换,重新进行功率分段,而此时ADE7758尚未完成一个脉冲的能量累加,无法实现对变比切换前的这一部分能量有效计量。因此,每进行一次电流传感器的变比切换,将导致一定程度的计量误差,该计量误差最大不会超过一个脉冲对应的实际能量。电度表设计的脉冲常数越大,由电流传感器变比切换引起的计量误差越小。因此,不允许传感器变比的频繁切换13。3.2 分段计量的设计与实现电能计量有两种方式:一是脉冲方式,利用ADE7758的两路脉冲输出,用单片机的T0、T1计数器对脉冲计数;二是通过SPI口读取ADE7758能量寄存器累加数据,乘上能量最低有效值获得实际电量参数。本方案采用脉冲计数方式实现有功、无功电量累加,其中有功电量脉冲常数200impulseskWh,无功电量常数200impulses/kVARh。接下来分析时间分段计量以及功率分段计量的软件具体实现问题14。3.2.1 时间参数检测时间参数检测通过调用函数read1302()读取DSl302芯片的时钟寄存器数据实现。通过两个变量flag1和flag2保存时间参数处理结果。主程序每循环一次,就进行一次时间参数的检测。当时间在OO:00-12:OO内时flag1=1,否则flag1=O。在主程序连续的两次循环中,若flag1赋值结果不同,就认为存储时间到,通过调用write2402_long()进行电量参数的存储,其中flag2用来存储上次循环中flag1的取值15。定义功能函数bit time_check()完成时间参数的检测处理,时间参数设置流程图如图3所示。开始flag1=flag2读DS1302寄存器数据时间在00:0012:00之间1=flag1返回flag10=flag1结束图3 时间参数设置3.2.2 时间分时段电能计量函数time_check()实现两个变量flag1、flag2的数据刷新,为定时存储和分时段计量提供时间参考。在读取DSl302时间参数时,只需读取小时对应的寄存器数据,对小时数据进行判断即可。主程序每循环一次,就进行一次time_check()函数的调用,不断对时间参数进行检测16。当条件(flag1!=flag2)满足时,则通过调用函数void deposit()进行电量参数的定时存储。采用T0中断方式进行有功电量参数的累加计量。在进行分时段计量条件判断时,若检测到flag1=l,表示当前时段处于00:00-12:00之间,E1对应的脉冲变量累加1。其中CT1、CT2为分时段累加对应的有功脉冲计数变量,分时段电能计量流程图如图4所示。返回T0中断总的有功电能计量E2+0.1kWhE1+0.1kWh脉冲数CT1+1flag1=1?脉冲数CT2+1CT1=20?CT2=20?CT2=0功率分段电能计量CT1=0图4分时段电能计量3.2.3 功率参数检测功率参数检测处理。P0为系统设定的切换功率,主程序每循环一次,就进行一次瞬时有功功率的检测,并与切换功率P0比较。定义两个位变量flag3和flag4。在主程序的一次循坏过程中,当负荷功率小于90P0时flag3=l;当负荷功率大于P0时flag3=O;在90P0P0之间时,flag3保持上次赋值结果不变。其中flag4用来存储上次循环中flag3的取值。功率参数检测通过调用函数bit power_check()实现。该函数实现对flag3和flag4两个位变量的数据刷新,为功率分段计量提供参考17。主程序每循环一次,就进行函数bit power_check()的调用,不断对功率参数进行检测。当条件(flag3!=flag4)满足时,则重新进行功率分段和电流传感器变比切换,通过调用函数init_7758()进行计量芯片的再次初始化。在进行功率分段计量条件判断时,若检测到flag3=l,表示小负荷计量模式,E3对应的脉冲变量累加l。功率参数检测流程图如图5所示。开始Flag3=flag4瞬时有功功率计算0=flag31=flag3小负荷计量返回flag3结束图5功率参数检测3.2.4 功率分时段电能计量以功率分段计量为例,其中E3、E4为小负荷计量以及正常负荷计量下的有功电量参数,CT3、CT4为相应的脉冲计数变量。计数脉冲CT3或CT4累加满20,E3或E4对应的电量累加0.1kWh。main()TMOD=0x66; /8位重装外部计数方式TH0=0xfe;THl=0xfe; /T0、T1初始化TL0=0xfe;TH1=0xfe;IE=0xbf; /开启所有中断使能TR0=1;TRl=1; /启动T0、T1外部计数.中断请求的撤销问题。计数器T0、T1的溢出中断,在CPU响应中断后,由硬件清除TF0或TF1标志位。外部中断INT0、INT1的中断请求撤销与设置的中断触发方式有关,可以采用边沿触发方式,在CPU响应中断后,由硬件自动将IE0或IE1标志位清除,功率分段计量流程如图6所示。T0中断服务入口总的和分时段有功电量计量脉冲数CT3+1小负荷计量?CT3=0E3+0.1kWhCT4=0CT3=20?CT4=20?脉冲数CT4+1E4+0.1kWh返回图6功率分段计量软件流程设计3.3 瞬时功率计算3.3.1 能量寄存器最低有效值计算本节分析两个问题:一是脉冲常数设置,二是ADE7758能量寄存器最低有效值的计算。在以脉冲方式进行电量的累加过程中,每一脉冲代表多大的电量,如何确定这一比例系数,需要对ADE7758寄存器进行初始化设置。在进行瞬时功率的计算时,用单片机的T2定时,通过SPI口读取ADE7758能量寄存器中数据,计算出这段时间内累加的电量,用两者的比值描述瞬时功率。这里需要首先计算出ADE7758能量寄存器的最低有效值18。ADE7758有两个分频寄存器APCFNUM、APCFDEN,其比值用来对APCF脉冲输出进行分频处理,以实现电度表设计的脉冲常数MC。本方案中MC=200impulseskWh,其中APCFNUM初始化赋值默认为0,APCFDEN赋值结果计算如公式3所示。 APCFDEN=INT() (3)其中INT()为取整运算,式3推导的依据是:ADE7758电流、电压通道满刻度输入且APCFNUM=0、APCFDEN=0时,APCF最大脉冲输出为16000Hz,根据电流、电压互感器的变比衰减关系和要实现的电度表设计脉冲常数,实现APCFDEN的初始化赋值计算。经过上述初始化赋值后,每200个脉冲就表示电量1kWh,由于采用了取整运算以及其他因素影响,实际电度表常数可能为198 impulseskWh,这部分偏差通过电度表校准进行补偿,对于VARCFDEN计算如式4所示。 VARCFDEN=INT() (4)其中VARCFDEN为无功脉冲分频寄存器,APCFDEN、VARCFDEN为12位的无符号寄存器,取值范围0(2-1),ADE7758芯片资料中,有功、无功能量最低有效值计算如公式5和公式6所示19。 Wh/LSB= (5) VARh/LSB= (6)由式5、式6知,有功、无功能量最低有效值分别与四个寄存器的设置有关,其中APCFDEN、VARCFDEN的初始化赋值可由式3、式4计算,APCFNUM、VARCFNUM、WDIV、VARDIV四个寄存器初始化赋值为1,其中APCFDEN、APCFNUM为ADE7758的12位寄存器。满刻度电流Ifullscalce、满刻度电压Vfullscal是对应于ADE7758的电压、电流通道输入为0.5V时的负荷电流、电压值,其中Vfullscal=17.68kV。根据表1、表2电度表参数配置以及式36,计算出ADE7758部分初始化参数以及有功、无功能量。电度表参数设计与ADE7758部分寄存器初始化赋值如表4所示。表4电度表参数设计与ADE7758部分寄存器初始化赋值变比选择电度表量程(A)满刻度电流IAPCFDENVARCFDENWh/LSBVARh/LSB高变比150(250)442.0A37370.0340.034低变比30(50)88.4A1841840.00680.0068能量量纲之间的转换关系为1Wh=3600J,为便于数据处理,对最低有效值转换如下:0.034Wh=121.6J,0.0068Wh=24.46J。用单片机的T2定时65ms,通过ADE7758的SPI串口读取该时段内有功能量寄存器中数据,记为a。若为小变比计量模式,则对应实际电量为24.46aJ,若为高变比计量模式,则对应实际电量为121.6aJ。3.3.2 瞬时功率计算用单片机的T2定时65ms,通过ADE7758的SPI口读出这段时间内累加的有功电量和无功电量,用两者的比值计算当前的瞬时有功、无功功率,ADE7758与有功、无功能量有关的寄存器配置如表5所示。表5 ADE7758与有功、无功能量有关的寄存器配置地址寄存器名称数据长度数据类型初始化取值功能描述01hAWATTHR16int0A相有功能量累加02hBWATTHR16int0B相有功能量累加03hCWATTHR16int0C相有功能量累加04hAVARHR16int0A相无功能量累加05hBVARHR16int0B相无功能量累加06hCVARHR16int0C相无功能量累加T2的计数初值计算如下:T2的计数初值=216-650001212=65536-65000=0x0218,T2定时65ms寄存器初始化如下:T2CON=0x00; /16位重装定时模式TH2=0x02; /写入T2计数初值TL2=0x18;RCAF2H=0x02; /写入T2重装寄存器RCAP2L=0x18;通过调用函数read7758_int()读取ADE7758能量寄存嚣数据,以A相有功能量AWATTHR寄存器数据读取为例,调用形式如下:int al;a1=read7758_int(0x01);计量芯片ADE7758上电后,默认设置为能量寄存器读后清零。T2计满溢出时通过软件清零,通过执行语句“TF2=0;”实现。变比切换前后瞬时功率的计算问题,参考表4所示,变比切换前后APCFDEN、VARCFDEN的寄存器取值以及能量寄存器最低有效值不同,瞬时功率的计算有两个公式,有功功率计算如公式7和公式8所示。 pl=24.46(al+a2+a3) (7) ph=121.6(al+a2+a3) (8)其中pl、ph分别为低变比和高变比时的瞬时有功功率,单位焦耳,al、a2、a3分别为A、B、C三相能量寄存器中读取的数据。根据式7、式8计算瞬时功率,首先应判断电表当前处于小变比计量模式还是高变比计量模式,也即判断电路当前是小负荷运行状态还是正常负荷运行状态,这通过检测P1.0的端子电平实现。若P1.0为低电平,条件(Pl&0x01=0)为真,CD4053的ax、bx、cx通道选通,为高变比计量模式,采用式8计算瞬时有功功率,反之,采用式7计算瞬时功率,瞬时功率计算流程图如图7所示。开始能量寄存器清零启动T2定时功率计算读能量寄存器关闭T2定时结束清除溢出标志TF2定时时间到?T2寄存器初始化图7瞬时功率计算流程3.4 按键中断处理与时钟初值输入调整3.4.1 按键处理与按键状态检测系统配置了三个功能按键,与单片机的接口定义如下:K2=P2.4,K3=P2.3,K4=P2.2,分别用来实现电量参数查询,进行时钟初值输入调整等功能。按键扫描采用中断方式进行,通过74LS08“与”门逻辑与单片机的INT0口连接。键盘扫描有三种方式,编程扫描,定时扫描和按键中断扫描20。本方案采用中断扫描,以提高单片机的执行效率。INTO、INT1中断采用边沿触发方式,中断标志位由硬件清除,通过调用两条语句“IT0=1;IT1=1;”进行外部中断边沿触发设置。如图5所示,在进入INT0中断后,通过调用语句“EX0=O;”关闭INTO中断使能,避免键盘扫描时引起再次中断。用C语言编写的源程序,定时没有汇编语言精确,在关闭INTO中断后,延时1秒左右,这段时间一方面用来进行按键消抖处理,一方面为组合键输入预留一定的时间。在延时之后,进行按键的扫描,根据扫描结果进行功能按键处理,若没有检测到按键按下,不予处理并返回。按键中断子程序流程图如图8所示。INT0中断入口关闭INT0中断延时1秒左右保存键值并等待按键释放键盘扫描功能按键处理有键按下?返回开INT0中断图8 按键中断子程序流程举例分析如下:若检测到只有K2键按下,则调用函数display_1()实现分时段电量参数的显示,函数调用形式为:display_1(2,E1,E2);delay(1000);若检测到K2、K3键按下,则调用函数display_3()进入时钟初值输入调整界面。其中delay(1000)用来显示延时3s时间,其余情况下的函数调用分析过程相似。函数调用简化了主函数结构设计,增强了主函数的可读性。按键的开关状态通过一定的电路转换为高、低电平状态,按键闭合过程在相应的I/O端口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。抖动持续时间的长短与开关的机械特性有关,一般在5-10ms之间。本文采用的是独立式按键,直接用I/O口线构成单个按键回路,每个按键占用一条I/O线,每个按键的工作状态不会产生相互影响。按键扫描处理,通过P2端口的状态判断键盘的状态,由于K2、K3、K4分别接入单片机的P2.4、P2.3、P2.2口,当没有键按下时,P2.4、P2.3、P2.2为高电平,此时条件(P2&0xlc)=0xlc)判断为真。在按键中断处理中,当有键按下时,进行按键状态扫描并根据扫描结果,进行功能函数的调用,实现具体的按键功能。按键状态检测与功能设计如表6所示。表6按键状态检测与功能设计按键状态下述判断条件为真功能说明无键按下(P2&0x1c)=0x1c)不处理K2按下(P2&0x10)=0)&( P2&0x1c)=0x0c)分时段电量显示K3按下(P2&0x08)=0)&( P2&0x14)=0x14)功率分段电量显示K4按下(P2&0x04)=0)&( P2&0x18)=0x18)瞬时有功、无功功率显示K2、K3按下(P2&0x18)=0)&( P2&0x04)=0x04)进入时钟初值输入调整K3、K4按下(P2&0x0c)=0)&( P2&0x10)=0x10)退出时钟初值输入调整K2、K4按下(P2&0x14)=0)&( P2&0x08)=0x08)异常事件记录查询3.4.2 时钟初值输入调整这一部分主要进行时钟初值输入调整设计,当组合键K2、K3按下时,进入时钟初值输入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论