《智能仪表软件》word版.doc
《《智能仪表软件》word版.doc》由会员分享,可在线阅读,更多相关《《智能仪表软件》word版.doc(45页珍藏版)》请在装配图网上搜索。
智能电表的软件设计摘 要随着社会的发展和进步,电能变得越来越紧张,合理利用电能就成为急待解决的问题。为了提高供电质量和资源的合理利用,必须抑制高峰需求,鼓励低谷用电,这就需要运用价格的杠杆作用,制定峰谷分时电价来调节。所以,就需要有一个智能的计费工具,来实现价格调节智能分时计费电度表。本设计通过单片机以及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致谢321 引言电度表技术正向着复费率、多功能、网络化的方向发展。电能计量芯片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按下时,进入时钟初值输入调整界面,进入初值输入调整界面后,K2、K3、K4键功能重新设置如下:K2用来实现年月日、时分秒等时间参数调整对象的选择,K3用来实现增量调整,K4用来实现减量调整。在进行时钟初值输入调整时,若无键按下,单片机执行空循环等待键按下,这通过执行语句“while(P2&0xlc)=0xlc);”实现,当有键按下,进行按键状态扫描,判断是否为退出键按下。if(P2&0x08)=0)|(P2&0x04)=0) delay(300);上述程序段功能描述如下:当单片机检测到K2键或K4键按下时,紧接着执行1秒左右的延时,延时结束后进行按健状志扫描,判断是否为退出键按下。在进行年月日、时分秒等时间参数调整时,键K2或K4低电平持续时间应大于1秒。单片机在检测到K2键或K4键按下时,首先执行延时程序,延时结束后才执行按键功能函数。时钟初值输入调整流程图如图9所示。时钟初值输入调整入口显示当前时间对象调整并显示调整结果选择调整对象并显示选择结果释放按键有键按下?退出键按下?K2键按下?有键按下?退出键按下?释放按键保存调整结果有键按下?退出键按下?返回K3或K4键按下?图9时钟初值输入调整流程图设计3.5 基于ADE7758的异常事件检测ADE7758计量芯片具有对外部负荷电路的断相、过流、过压异常事件检测功能。ADE7758的中断屏蔽寄存器为24位,地址0x18。通过对该寄存器的设置可以实现断相、过流、过压等中断事件输出使能。在ADE7758初始化过程中,对中断屏蔽寄存器相应的标志位置l,进行中断使能设置。当有中断事件发生时,中断复位寄存器(地址:0xla)中对应的标志位置l,同时ADE7758的IRQ输出低电平,向单片机发出中断请求。单片机接受请求后,读取中断复位寄存器(地址1A)数据,通过对中断标志位的状态检测进行中断事件查询,确定中断源。举例分析如下:在中断屏蔽寄存器中,把SAGA、SAGB、SAGC标志位置1,进行中断使能设置,单片机检测到中断复位寄存器中SAGA标志位为l,则可以初步判断A相电压掉电,中断屏蔽寄存器位描述如表7所示。表7中断屏蔽寄存器位描述位地址位标志默认值功能描述3SAGA0A相电压掉电中断使能4SAGB0B相电压掉电中断使能5SAGC0C相电压掉电中断使能14PKV0单相过压中断使能15PKI0单相过流中断使能计量芯片ADE7758的IRQ端子与单片机的INT1端口连接,中断屏蔽寄存器(地址:0x18)使能设置后,当计量芯片检测到过流、过压、断相等事件发生时,IRQ电平向低电位跳变,向单片机发出中断申请。在INT1中断服务子程序中,单片机通过读取状态复位寄存器(地址:0xla)内容进行中断事件处理。与断相事件有关的ADE7758寄存器初始化参数计算。SAGLVL(地址:0x1e)寄存器用来设置电压掉电检测阈值,系统上电后初值默认设置为0,当ADE7758检测到三相中的一路电压通道信号输入小于该寄存器设置的阈值时,中断复位寄存器中对应的SAGA、SAGB或SAGC标志位置l。在60Hz满刻度输入时,该寄存器对应的掉电检测阈值为0x92。也即,当把0x92写入该寄存器时,当ADE7758的电压输入小于满刻度O.5V时,中断复位寄存器中相应的标志位置1。当ADE7758电压通道峰值输入在峰值0.1V以下时,这种情况下认为系统断相,其中INT()为取整运算,此时对应于O.1V时SAGLVL对应的检测阈值计算如公式9所示。SAGLVL=INT(0x920.10.5)=29 (9)与过流、过压事件有关的寄存器初始化参数计算。ADE7758有两个用于过流、过压阈值设置的8位寄存器VPINTLVL和IPINTLVL,地址为0xlf和0x20。系统上电后初值默认设置为0xff。当ADE7758满刻度输入时,两个寄存器对应的阈值为0x92。设计小变比计量最大额定电流输入Imax=50A以及高变比计量最大额定电流输入Imax=250A时,ADE7758电流通道信号为0.2V,额定电压输入时ADE7758电压通道输入为0.2V。当ADE7758电流电压通道信号输入大于有效值O.3V时,这种情况下认为系统过流、过压,此时VPINTLVL和IPINTLVL对应的检测阈值计算如公式10和公式11所示。VPINTLVL=INT(0x920.30.5)=124 (10)IPINTLVL=INT(0x920.30.5)=l24 (11- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能仪表软件 智能仪表 软件 word
装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文