欢迎来到学术参考网

基于GPRS的远程电能抄表系统的应用分析

发布时间:2015-11-18 10:10

摘 要:随着计算机技术和通信技术的迅速发展,中国移动通信有限公司的通用无线分组业务(GPRS)网络技术将互联网等宽带数据网络与无线通信网络连接在一起,可用来实现电力系统的远程数据采集和传输。本文介绍了一种基于Sony EricssonMobile Communications公司GR47模块和Winbond公司W77E58微控制器的电能远程抄表系统,可自动完成用户电度表网络的远程数据采集、记录、实时监测、统计分析、打印和供电控制等管理工作。不但提高管理部门的工作效率,也适应了现代用户对用电缴费的新需求。我局自从2007年开始,经过3年的努力,将在网运行所有配变6512台改造成自动远程抄表,其中专用变3714台,公用变2798台。

关键词:自动远程抄表;GPRS;数据采集器;GR47模块;W77E58微控制器
1  前言
  远程电能采集系统是指采用计算机技术和通信技术自动读取和处理表具数据的一种手段,是提高电能管理部门自动化水平的需要,也是计算机技术和通信技术迅速发展的必然。而传统的电量结算是依靠人工定期到现场抄取数据的,在实时性、准确性和应用性等方面都存在诸多不足之处。将现代通信技术、计算机技术和电能量测量技术结合在一起,便能够及时、准确、全面地反映电量的使用。通过中国移动通信有限公司的通用无线分组业务(general packet radio service,GPRS )网络,电力部门可将工业和民用电能表采集的电力系统实时数据传递到地、市、省级的集中监控中心,以实现对电力监测设备的统一监控和分布式管理。GPRS为电能远程抄表系统提供了简单、高效的通信传输手段。
2 电能远程抄表系统的原理
  目前,国内外生产的绝大多数多功能电能表都带有RS485接口,同时,现行有一系列的通信规约,如我国电力行业通信标准DL/T 645—1997《多功能电能表通信规约》等。终端设备按照通信规约,通过RS485接口与多功能电能表进行通信,采集到电能表相关参数后,通过GPRS网络将数据远程传送到后台数据中心。电能远程抄表系统的结构如图1所示。



图1  电能远程抄表系统结构图
3 终端系统设计与实现
  终端系统主要完成电能表数据的采集和传输功能。目前实现终端系统功能的流行方法主要有两种: 一种是采用微控制器控制GPRS模块,比如采用西门子公司的MC35模块和Sony Ericsson Mobile Comm unica tions公司的GR47模块等;另一种方法是直接采用嵌入式网络模块来实现,比如采用成都英创信息技术有限公司的ETR186嵌入式网络模块等。相对而言,第一种方法在灵活性和扩展性方面比第二种方法更具优势,又由于移动梦网的网关GPRS支持节点(GGSN)与GPRS模块通信时遵循点对点协议(po int to point pro tocol,PPP),所以要在微控制器中也实现一部分PPP才能与之对话,其中GR47模块本身已经实现了传输控制协议- 网际协议(TCP/IP)堆栈,因此应用得更为广泛。
3.1 硬件结构
  电能远程抄表系统主要由GPRS网络模块、微控制器、外围接口电路和RS485 接口电路组成。系统硬件设计总体框图如图2所示。



图2 电能远程抄表系统硬件框图
  GRPS网络模块选用GR47模块。GR47模块是Sony Ericsson Mobile Comm unica tions公司推出的新一代全球移动通信系统(global system form obile comm unications,GSM)通信模块,支持端对端、端对用户的通信方式,支持短信息业务(short m essage service,SMS)和GPRS等数据传输和语音呼叫。模块提供了非常完整的使用接口,包括三路串行数据通信接口、用户识别卡(subscribe riden tity m odule,SIM)接口,内嵌TCP/IP栈,串口支持GSM 07.10协议,波特率可调。GPRS模块的UART A是一个全双工的RS232串口,支持所有在线与非在线的通信方式,并且所有需要无线发送的数据必须要通过该串口进入模块的发送单元,同时该串口上还有请求发送(RTS)、清除发送(CTS)、数据终端准备(D TR )、数据载波检测(DCD)、振铃指示(RI)、数据准备(DSR)等控制信号线,其中的D TR 引脚用于从硬件上控制GPRS模块数据态与命令态的切换;UART B可以用来接收一些特殊的串行数据,比如接收全球定位系统(GPS)数据;也可下载软件UART C,对模块进行嵌入式开发。
  微控制器选用W77E58单片机。W77E58是Winbond公司的新型单片机,内含2个增强型串口和32 KB大容量闪速存储器。指令集与51系列单片机完全兼容,非常适合在智能化监控系统中使用。在系统功能比较复杂的情况下,控制GR47模块的微控制器可以选用ARM 9嵌入式处理器单元。W77E58单片机的UART0与GR47模块的UARTA连接以控制GR47模块,UART1通过RS485接口芯片与多功能电能表进行通信。
3.2 软件设计
  终端软件部分主要由电能表数据采集和控制数据网络传输两个模块组成, 程序通过Keil C语言实现。
3.2.1 电能表数据采集
  采集电能表数据的电路符合最简单的RS485总线接口标准,因此只需按照电能表厂商提供的协议,通过串口向电能表发送合适的数据帧,然后接收到响应帧后对数据进行分析来获取电能表参数。
  针对本系统,W77E58中UART1与RS485接口芯片相连,UART0用于与GR47模块的UARTA连接,那么,为方便通信程序的调用,可以设计如下的接收和发送函数。
    / *
  *****************************
  *    函数说明: 发送一个字符                  *
  *    参数: sp 选择哪个串口                    *
  *              c    待发送的字符                  *
  *****************************
  * /
  void sendchar(bit sp,unsigned char c){
        if(sp= =0) {                                              }
            SBUF = c;                                          }
            while(!TI);
            TI=0;
        }
        if(sp = = 1) {
            P1_4=1;
            ACC = c;
            TB8_1=P;
   SBUF1 = c;
            while(!TI_ 1);
            TI_ 1= 0;
        }
   }
      void sendstring(bitsp,unsigned char *pstr,unsigned int strLen) {
      for(i=0;i           sendchar(sp,*(pstr+i));
    }
  }
  /*
  *****************************
  *    函数说明: 从串口接收一个字符            *
  *          参数: sp 选择哪个串口                *
  *                    chr 接收到的字符              *
  ** ***************************
  * /
  void accep tchar(bit sp,unsigned char*chr){
        if(sp= =0){
                TR0=1;
       while(!RI);
       TR0=0;
        *chr=SBUF;
          RI=0;
    }
    if(sp= =1){
      P1_4=0;
      TR0=1;
      while(!RI_ 1);
      TR0=0;
     *chr=SBUF1;
      RI_1=0;
     }
   }
   假设采集电能表当月有功电能的数据请求帧为“68AAAAAA901016”,那么只需调用函数sendstring(1,“68AAAAAA901016"",14),然后解析接收到的数据。
2.2.2 数据网络传输
  GPRS模块GR47有两种工作状态,即指令状态和数据状态。
  W77E58通过UART0与GR47模块的UARTA通信,发送相关AT指令到GR47模块,以控制GR47模块与Internet的连接。
  在指令状态下建立GR47 模块与Internet连接的步骤:
  a) 为GPRS模块开通TCP/IP服务。发送指令“A T + CGDCON T = 1,"" IP"", ""CMN ET""”,正常情况下返回“OK”。
  b) 为GPRS模块分得固定虚拟IP地址。发送指令“AT * E2IPA = 1,1”,正常情况下返回“OK”。
  c) 查看GPRS模块分得的IP地址。发送指令“AT*E2IPI=0”,正常情况下返回IP地址。
  d) 通过TCP连接后台数据接收服务器。发送指令“AT*E2IPO = 1,"" 61.183.187.174 "",1001”, 连接后返回“CONN ECT”。如果返回的信息是“ERROR”, 则必须重新发送相关指令。
  具体到软件程序的实现,以第一个步骤为例,只需调用函数sendstring (0,”AT+CGDCONT=1,""IP"",""CMNET""”,25),然后通过accep tchart函数接收返回数据,判断是否含有“OK”即可。
  当GR47模块和后台服务器成功建立连接后,就进入了数据状态,所有的AT指令都已经无效,此时GR47模块通过UART A只与服务器端有连接,对数据和其它端口都不响应。从数据状态到指令状态的切换通过硬件实现,由W77E58单片机给GR47模块的DTR引脚发送一个高电平脉冲,使得GR47模块从数据状态自动切换到指令状态,此时UART A将会接收到模块的反馈值“OK”。
4 接收程序设计
  后台接收程序通过套接字(Socke t)编程来实现。
  Socket有两种主要的操作方式: 无连接的操作和面向连接的操作。无连接的操作使用用户数据报协议(UDP),一个数据报是一个独立的单元,它包含了所有传送的信息,在这种模式下,Socket不需要连接一个目的地的Socket,它只是简单地传输数据报,无连接的操作快速、高效,但是数据安全性不佳。面向连接的操作使用TCP,在这种模式下,Socket必须在发送数据之前与目的地的Socket取得连接,一旦建立连接后,Socket就可以使用一个流接口,打开→读写→关闭,所有发送的信息都会在另一端以同样的顺序被接收。面向连接的操作比无连接的操作效率低,但是数据的安全性更高。Socket支持同步和异步模式。在同步模式中,对于执行网络操作的函数调用,一直等到操作完成后才将控制返回给调用程序;在异步模式中,这些调用立即返回。在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户- 服务器模式,即客户向服务器发出服务请求,服务器接收到请求后,提供相应的服务,因此Socket编程也包括服务器端和客户端的编程。
  后台接收程序属于服务器端Socket程序,而终端设备网络通信程序则相当于客户端程序,后台接收程序采用TCP,基于异步方式来实现。程序具体的实现可以通过VC,Delphi,.net和java等支持多线程的语言和技术来实现。程序流程图如图3所示。



图3  电能远程抄表系统后台接收程序流程图
5 结束语
  总之,电能远程抄表系统的开发,实现了对用户用电信息的无线采集,并通过对数据的系统处理,实现了网上预交费和对用电情况的实时监测,有效防止了欠费和窃电等情况的发生。同时,通过GPRS双向系统可实现对远端电能表和其它电力设备进行控制,节省人力资源和建设成本,缩短修护时间。目前,基于GPRS的电能远程抄表系统在供电部门已得到广泛的应用。
  
参考文献:
[1]  林绍文.GPRS网络技术在无线抄表系统中的应用[J].电力科技论文平台,2005,12,(69),87-89.
[2] 蔡旭斌,罗玲.电能计量自动抄表技术的现状与发展[J].广东电力,2003, (4),5-8.

上一篇:手机办公技术初探

下一篇:优化发展环境 创新建设模式推进欠发达地区电子