《电子技术应用》
您所在的位置:首页 > 通信与网络 > 设计应用 > 基于GPRS自动抄表系统的设计与实现
基于GPRS自动抄表系统的设计与实现
来源:微型机与应用2011年第20期
焉 凯1,2,何贤芒2
(1.莱芜职业技术学院,山东 莱芜271100;2.复旦大学 计算机科学技术学院,上海200433)
摘要: 介绍了一种基于GPRS自动抄表系统的解决方案,详细阐述了系统组成的层次结构、模块设计和实现方法,并对系统实现的功能进行了阐述。该方案实现了实时抄表、定时抄表、电费管理和档案管理等功能,与传统的抄表技术相比,极大地提高了效率。
Abstract:
Key words :

摘  要: 介绍了一种基于GPRS自动抄表系统的解决方案,详细阐述了系统组成的层次结构、模块设计和实现方法,并对系统实现的功能进行了阐述。该方案实现了实时抄表、定时抄表、电费管理和档案管理等功能,与传统的抄表技术相比,极大地提高了效率。
关键词: GPRS;网络;自动抄表;模块设计;电费管理

    随着计算机技术、通信技术和网络技术的发展,电力部门的自动抄表技术也经历了从无线传感网、电力载波抄表、基于GSM网络的抄表技术[1],发展到现今的基于GPRS网络的远程抄表技术,使抄表技术越来越趋于智能化和自动化。
1 系统概述
    GPRS是在GSM基础上发展起来的一种分组交换的数据承载和传输方式,与GSM自动抄表技术相比,GPRS在数据业务的承载和支持上更具有先进性和实用性[2]。
    (1)资源利用率高。GPRS引入了分组交换的传输模式,使得采用电路交换模式的GSM传输数据方式发生了根本性的变化,GPRS可以更有效地利用无线网络信道资源,特别适合突发性、频繁的小流量数据传输。
    (2)传输速率高。相对于GSM的9.6 kb/s的访问速度而言,GPRS拥有171.2 kb/s的访问速度,GSM需要10 s~30 s的连接时间,而GPRS只需要3 s~4 s就可以访问到相关请求。
    (3)费用低。GSM按连接时间计费,而GPRS按照数据流量计费。
    (4)全面支持IP协议和X.25协议。GPRS支持因特网上应用最广泛的IP协议和X.25协议。
1.1 GPRS远程自动抄表系统的组成
    GPRS远程自动抄表系统由客服、GPRS模块、抄表终端、EDA9060模块和电表组成。采集终端实时采集用户的用电数据,通过GPRS将数据汇集到服务器[3]。
    (1)客服:运行集中抄表系统,由无线Medom通过GPRS网络与抄表终端相连,客服要配置一个固定的IP地址与互联网出口。
    (2)抄表终端:收集电表数据并传送到数据中心,连接客服与电表。
    (3)电表:计量并显示用户的用电情况,将用电信息传输到GPRS采集器。
    (4)EDA9060模块:能通过RS-485接口接收主计算机、主控制器等的数字量输入,转换成继电器触点输出信号,可控制交流接触器、开关等,并将开关状态等开关量输入信号返回到计算机。系统结构图如图1所示。

1.2 系统层次结构设计
    系统的层次结构由数据采集控制层、网络传输层、数据处理层和用户数据层四部分组成。
    (1)数据采集控制层:位于客户的设备现场,由远程测控模块负责完成对变电所内所有数据采集及各种开关的分、合监测与控制。
    (2)网络传输层:负责采集控制层数据,无差错地传输到数据处理层。网络拓扑方式可根据现场选定,包括星型结构、总线型结构和混合型结构。
    (3)数据处理层:负责数据的采集、处理、备份操作,同时将客户监控操作转化为设备控制命令。
    (4)用户数据层:将数据处理层分析数据以友好的方式呈现给客户,接受客户对系统的控制操作。
2 系统功能模块设计
    本系统运用模块化的编程思想,模块化编程易于程序功能的扩展。系统功能分为若干个模块,每个模块完成一个子功能,模块之间尽量做到高内聚、低耦合[4]。
2.1 数据采集流程图
    本系统采用结构化程序设计方法,利用VB程序设计语言,提高了代码重复利用率,同时也便于调试排错。结构化程序设计是DIJIKSTRA E W在1965年提出的,它的主要观点是采用自顶向下、逐步求精的程序设计方法,使用三种基本控制结构来构造程序,任何程序都可由顺序、选择、重复三种基本控制结构构造。VB是一种基于对象的程序设计语言,具有结构化程序设计的三种结构,即顺序结构、选择结构和循环结构。无线抄表系统数据采集流程图如图2所示。

2.2 系统主要过程设计
    利用函数过程来组织程序实现模块化,函数由函数返回值、函数名或形参表以及函数定义组成[5]。主要函数如下:
    Public Function ZhFDataDeal(Longer As Long, ArrZhF()
As Byte, Type_TF As String, CJZDAddr_TF As Integer,
DbAddr_TF As String, Parameter1 As Variant,
Parameter2 As Variant) As Boolean
    Public Function ReadDataH(Addr As Integer,
SelectHour As Integer, IDnum As String) As Boolean
    Public Sub SaveData(AddrTemp As Integer,
HourSave As Integer)
    Public Sub SendDataGPRS(DtuId As String, ByeData()
As Byte, WaitTime As Single, GprsReturn As Integer)
    Public Function Authority(QXusercode As String,
QXcode As String) As Boolean
    Public Sub SaveDbRunTemp(dbAddrTemp As String,
DBPDName As String, SLName As String)
2.3 系统关键变量设计
    VB应用程序由若干函数过程组成,变量在过程中是必不可少的,作为系统的核心组成,本系统在编程中定义了关键变量[6],主要程序代码如下:
    "建立GPRS连接
Public ConnectState As Boolean  "连接状态
Public Pos As Integer  "端口索引个数
Public myLocalIP As String "暂存服务器的IP
Public GPRSLong As Long  "GPRS返回的数据长度
Public Arr() As Byte  "GPRS返回的数据存放的数组
Public PlngTCPLocalPort As Long  "TCPServer监听的端口
Public strDeleTCPClient As String  "要删除的客户端,
用myApartClient分隔
    "初始化采集信息
Public Type CJZDconfig  "采集终端结构
  Addr As Integer  "采集终端地址
  Name As String  "采集终端配电名称
  Num As Integer  "下挂电表个数
  IPID As String   "通信用IP或ID
  CommunicateState As Boolean  "通信成功标志
End Type
    "进行数据库连接,获取本地或已连接的一个资源的网络名称
Declare Function WNetGetConnection Lib "mpr.dll" Alias "
WNetGetConnectionA" (ByVal lpszLocalName As String, ByVal
lpszRemoteName As String, cbRemoteName As Long) As Long
Public ConWuCheng As Connection  "连接数据库
Public UserCode As String  "编号
Public PassWord As String  "密码
Public DatabaseName As String  "数据库名称
    "数据处理部分,定义转发命令的返回数据的分配情况
Public Type DataCmdTransfer
  Time_Read As String  "读电表时间
  Date_Read As String  "读电表日期
  DBState_Read As Byte  "读电表运行状态
  DWState_Read As Byte  "读电网状态字
  ZXYG_Read As Double  "读正向有功总电能
  ZXWG_Read As Double  "读正向无功总电能
  P_Read As Double  "总有功功率
  Q_Read As Double  "总无功功率
  Data9060_Control As Byte  "读9060控制回读
  Data9060_State As Byte  "读9060输入量
  Data9060_Write As Boolean  "写9060成功
End Type
    "操作权限
Public Auth As Boolean  "是否有权限
3 系统功能的实现
    GPRS自动抄表系统的核心部分是系统软件,它遵循DL/T645部标通信规约,并有扩展性[7]。抄表软件系统数据库为SQL Server2000,运行于Windows2000/XP、2003等操作系统,易于使用。系统能够实现整点数据自动采集(采集电能值)、自动定时数据采集(采集电表运行参数和电网状态)和手动抄表功能(手动采集电表的所有数据项),并能实现数据统计及历史数据查询功能。点击桌面上的“拨号连接”,待任务栏中的通知区域显示“拨号网络现已连接”时,再进入程序,启动程序后显示系统运行主界面如图3所示。

 

 

    系统在自动抄表时采集电表的电能值、电表运行参数和电网状态值。在采集过程中首先通过给采集终端发送一个读配置命令来验证是否在线,如果采集终端收到了这个读配置命令,则不进行任何操作,否则对GPRS模块进行复位操作。系统将一天分成24次进行采集(每小时采集一次),便于进行查询与分析。系统在每个整点的15 min时发送读配置命令, 22 min时发送广播校时命令, 30 min时发送采集电表运行参数和电网状态命令,45 min时发送采集电能命令。采集终端在整点时自动采集电表的电能值,并将数据进行存储,方便用户对历史数据的查询和对照。
    本系统通过数据采集终端对不同电表及电量计量设备进行各种电参数的采集,并通过GPRS通信方式将数据传输到采集服务器的数据中心。数据中心处理所有数据,并可形成各种报表打印,方便查看电表的运行情况及电能值,实现了实时抄表、定时抄表、电费管理和档案管理等功能,提高了工作效率,降低了企业运行成本。
参考文献
[1] 秦红梅.基于CAN总线的电力集中抄表系统[J].现代电子技术,2009,32(06):104-105.
[2] 罗诗风,颜永红,周继辉.基于GPRS的数控机床远程监控系统[J].微计算机信息,2008,24(34):164-165.
[3] 赵建军.基于计数、传输模块的电力自动化抄表系统[J].电力自动化设备,2004,24(06):83-85.
[4] 戴佩荣.远程电能计量管理系统设计[D].哈尔滨:哈尔滨理工大学,2007.
[5] 金湘力.全球定位系统在电力电站中的应用[J].电力系统通信,2005,26(03):56.
[6] 张恺,李祥珍,张晶,等.自动抄表系统应用模式的探讨[J]. 电网技术,2008,25(05):42-43.
[7] 张亚强.基于GPRS网络的无线数据通信系统的设计与实现[D].济南:山东大学,2006.

此内容为AET网站原创,未经授权禁止转载。