基于嵌入式系统的电能采集终端设计与实现
2011-05-18徐晓光陈跃东
陈 阳,徐晓光,陈跃东
(安徽工程大学a.现代教育技术中心;b.电气工程学院,安徽 芜湖241000)
随着人们对电力的需求的增加,对供电质量和供电可靠性的要求也越来越高。供电单位要向用户提供安全、优质的电力,依靠传统的技术和管理手段已经难以实现。在电力市场的改革,对智能电网技术不断提出新的要求,在供配电领域对用电管理、配电管理实现智能化、自动化和科学化具有非常重要的意义[1]。
目前供、用电企业广泛建立电能量计费系统。用电信息采集终端是对各信息采集点用电信息采集的设备,简称采集终端。它介于计量主站与费率装置(电能表)之间的中间,可以实现电能表数据的采集、数据管理、数据双向传输以及转发或执行控制命令的设备[2]。如图1所示,用电信息采集终端按应用场所分为专变采集终端、集中抄表终端(包括集中器、采集器)、分布式能源监控终端等类型,主要用于配电系统中考核电能表、用户电能表配电数据的实时采集,实现对各个用户用电状态的检测,为电力需求管理提供了强有力的技术支持和数据依据,从而实现电能量采集、多费率计价、供电质量监测及线损分析、配变监测和防窃电、负荷预测等功能。它的功能、数据采集的配电数据类型及精度直接影响着配电自动化系统的功能及可靠性。
图1 用电信息采集系统结构
基于上述用电信息采集终端的重要性和新技术的不断发展,2009年底国家电网公司新规定了电力用户用电信息采集系统的规约。本文讨论的就是基于这一新规约的嵌入式Linux用电信息采集终端的设计。
1 用电信息采集终端的系统结构
本文设计的用电信息采集终端以AT91SAM9G20为微处理器,它是一款高主频(400 MHz)、低功耗、以ARM926EJ-S为内核、工作温度-25℃至85℃的工业级处理器,功耗仅为80 mW,能够有效地延长电池供电的时间,这样保证了在严格的工作环境下,终端设备也能有效的运行。操作系统采用Linux 2.6.27。Linux操作系统有着开源的源代码和非常好的稳定性,这对于智能电网设备来说有着先天的有利因素。虽然Linux是软实时操作系统,但是Linux 2.6已经在内核主体中加入了提高中断性能和调度响应时间的改进,采用可抢占内核和更加有效的调度算法,提高了它的同步性,在实时性上完全满足终端设备的需要。
如图2所示,这个系统由采集模块、通讯接口模块、输入和显示模块等部分组成。拥有8M的NOR FLASH用来存储操作系统的应用程序,64M的NAND FLASH用于存储采集的数据,充分满足终端装置系统运行的要求。在对Linux操作系统进行裁剪,通过编译相应的外围硬件驱动,可以移植操作系统进入CPU,搭建好系统开发的环境平台。应用程序采用多进程设计,各进程模块并发运行,极大地提高系统效率。
图2 系统硬件框架结构
在对外的通讯接口部分,终端主要分4个部分的功能接口[3]。
①远程通信接口:终端应用软件与各种远程主站的接口,主要有TCP/IP通讯接口、GPRS功能接口和载波通讯接口。
②本地通信接口:终端应用软件与各种本地通信收发软件之间的接口以字节流的方式完成数据交互,主要有RS485电能表通讯接口和红外抄表通讯接口。
③与人机接口软件的接口:人机接口(包括显示LCD和小键盘)与终端应用软件按规定的索引方式及数据模型完成数据交互。
④其他接口:包括与控制、交直流模拟量采集、脉冲采集等部分的接口,采用数据读写函数的形式,在需要时供终端应用软件调用,如SPI数据采集A/D转换接口和USB终端维护升级接口。
2 用电信息采集系统终端的软件设计
2.1 采集终端软件功能
采集终端的软件按功能可分为以下几个部分:
①数据采集。采集电表、智能设备、脉冲等数据。
②数据管理。实现对实时和当前数据,历史日、月数据和事件进行记录合理性检查,分析存储和远程传输。本系统在Linux采用sqlite作为存储查询的数据库,它作为一款本地的开源数据库,占用空间小,执行速度快,可以很好地满足需要。
③数据控制。包括功率定值控制、电量、费率定值控制和远程控制。
④综合运用。包括自动抄表管理,费控管理,有序用电管理,用电情况统计分析,异常用电分析,电能质量数据统计,线损、变损分析,增值服务。
⑤运行维护管理。包括系统对时、权限和密码管理,终端管理,参数设置和查询,档案管理,通讯和路由管理,运行状况管理,维护和故障记录,报表管理,软件升级等。
⑥系统接口。通过统一的接口规范和接口技术,实现与营销管理业务应用系统连接,接收采集任务、控制任务及装拆任务等信息,为抄表管理、有序用电管理、电费收缴、用电检查管理等营销业务提供数据支持和后台保障。
系统还可与其他业务应用系统连接,实现数据共享。其中综合运用功能模块可以配合其他业务应用系统,其余的各功能在不同任务的采集终端设备中都有体现。
2.2 采集终端软件设计
终端应用软件设计的核心部分应包括远程通信模块、主任务控制模块、本地数据处理3部分。
①远程通信模块。终端通信协议请求报文并进行处理,然后把处理结果形成报文上报主站。当没有下发报文时,如果底层远程信道支持,根据需要主动向主站发送登录、重要事件、级联终端上行报文。
②主任务控制模块(多任务采集)。多任务采集功能模块以独立的进程运行,主要负责数据测量点的定时采集任务管理。模块运行后完成消息队列、共享内存、定时采集周期等初始化工作,生成抄表队列和数据项队列,根据采集周期参数设定采集任务时间点,进入采集主循环。主循环中判断当前时间是否到达采集任务时刻,若到达时间点,启动新一轮抄表任务并发给集中器与下行通信模块本地接口通信规约执行抄表,在完成一轮循环采集后,由补抄采集流程对采集失败的测量点进行补抄。在主循环里,程序实时监测主站通信模块下发的随时抄表任务和透传命令请求,模块接收到其他采集请求时,立即终止当前的定时采集任务,将随时抄表和透传命令采集任务发送给DL/T 645通信模块。完成本采集周期所有工作后,查看测量点参数、任务周期等参数是否发生变化,若有变化则重新初始化,开始下一个定时采集任务周期[3]。
③ 本地数据处理。Linux作为一个多用户多任务操作系统,支持多道程序设计、分时处理和实时处理。本地数据处理模块可分2个进程运行:基本数据处理模块和总加数据处理模块,如图4、5所示。
基本数据处理功能模块,负责测量点数据的异常分析并产生相应事件。模块运行后完成消息队列、共享内存、和测量点参数、任务参数等初始化工作,进入主循环流程,等待冻结周期定时到后,读取测量点数据,分析数值是否符合事件条件,满足事件条件则发送事件数据给上传通信模块,继续读取统计数据,分析统计数据是否变化,若有变化则读取历史记录发送给远传通信模块上传到主站[4]。完成本周期所有数据处理工作后,查看测量点参数、事件判定条件、任务周期等参数是否发生变化,若有变化则重新初始化,开始下一个数据处理定时周期。
总加组计算功能模块负责总加组数据统计,根据设定的总加组冻结周期将总加后的数据发送到数据存储模块进行存储。模块运行后完成消息队列、共享内存、测量点参数和总加参数等信息的初始化工作,进入主循环,等待总加数据统计周期达到后,将测量点的当前数据按总加计算公式计算得到总加数据,分析总加数据是否满足差动事件条件,满足条件则产生差动事件信息并发送给远传通信模块上传至主站,继续将当前测量点数据和当前总加数据生成历史数据和曲线数据发送给数据存储模块进行存储。完成本周期所有工作后,查看测量点参数、总加参数、任务周期、差动事件判定值等参数是否发生变化,若有变化则重新启动初始化,开始下一个定时工作周期[5]。
除了上述核心部分以外,对于专变采集终端应用软件,还应包括各类控制、状态量采集、脉冲量采集、交直流模拟量采集、本地状态指示和终端维护等;对于集中抄表终端应用软件,还应包括中继路由管理、重点用户管理、交直流模拟量采集、本地状态指示和终端维护等,本文将不对其设计进行讨论。
3 结束语
采用ARM芯片和嵌入式Linux操作系统设计了电能信息自动采集终端系统。通过智能采集终端和智能计量主站结合应用,实现了试点用户用电信息的采集和负荷状况的监测,对加强用电系统管理、提高电网的可靠性和实现用电管理自动化具有积极意义。
[1] 闵建.嵌入式实时数据采集系统的设计与实现[J].微计算机信息,2009,25(7):2.
[2]Q/GDW 373—2009电力用户用电信息采集系统功能规范[S].
[3]DL/T 698.1—2009电能信息采集与管理系统[S].
[4] 刘峰.嵌入式实时数据采集系统的设计与实现[D].武汉:华中科技大学,2004.
[5]Q/GDW 378.2—2009.电力用户用电信息采集系统设计导则:终端应用软件设计导则及编制说明[S].