基于GPRS的远程无线抄表系统的设计
摘要:本文针对我国自动抄表技术的研究现状,提出了基于J2ME的GPRS远程无线自动抄表系统。系统采用Siemens TC65无线通信模块作为数据处理模块和GPRS数据传输终端,将电表数据按照TCP/IP协议传送到控制中心,数据传输安全、可靠。定时存储读表数据,以便需要时下载分析。本系统开发成本低,而且可以对系统进行远程监控、实时维护、方便更新升级。
Abstract: Aiming at the study of Automatic Meter Reading in our country, this paper brings forward a GPRS remote wireless automatic meter reading system based on J2ME. The system adopts Siemens TC65 wireless communication module as data processing module and GPRS data transmission terminal, the meter data can be transmitted to the control center according to TCP/IP protocol, which is safe and reliable. Meter data are stored regularly in order to be downloaded and analyzed as needed.
关键词:GPRS;J2ME;无线抄表
Key words: GPRS;J2ME;wireless meter reading
中图分类号:TM933文献标识码:A文章编号:1006-4311(2010)06-0053-01
1GPRS远程无线抄表系统的优点
中国移动GPRS系统可提供广域的无线IP连接。在移动通信公司的GPRS业务平台上构建远程抄表系统,实现测量仪表数据的无线数据传输。该抄表方式具有可充分利用现有网络,缩短建设周期,降低建设成本的优点,而且设备安装方便、维护简单。GPRS远程抄表方式具有如下优点:
1.1 实时性强由于GPRS具有实时在线特性,系统无时延,无需轮询就可以同步接收、处理多个/所有数据采集点的数据。可很好的满足系统对数据采集和传输实时性的要求。
1.2 可对电表设备进行远程控制通过GPRS双向系统还可实现对电表设备进行远程控制,进行参数调整、开关等控制操作。
1.3 建设成本低由于采用GPRS的无线公网平台,只需安装好设备就可以,不需要为远程抄表进行专门布线,前期投资少、见效快,后期升级、维护成本低。
1.4 集抄范围广GPRS网络覆盖范围广,在无线GSM/GPRS网络的覆盖范围之内,都可以完成对集抄的控制和管理。而且,扩容无限制,接入地点无限制,能满足山区、乡镇和跨地区的接入需求。
2GPRS系统概述
GPRS(General Packet Radio Service)通用无线分组业务,是一种基于GSM系统的无线分组交换技术,提供端到端的、广域的无线IP连接。通俗地讲,GPRS是一项高速数据处理的技术,方法是以“分组”的形式传送资料到用户手上,用户上网可以免受断线的痛苦[1]。香港作为第一个进行GPRS实地测试的地区,己经取得了良好的收效。使用了GPRS后,数据实现分组发送和接收,用户就可以总是在线并且按流量计费,迅速降低了服务成本。GPRS的服务成本仅是CSD(电路交换数据,即通常说的拨号数据,欧亚WAP业务所采用的承载方式)服务成本的十分之一。
3TC65模块读表线程程序设计
TC65读表模块负责监控命令对象,若有表控命令,则判断命令类型,并根据多功能电表通信规约通过串口发送表控命令,因为RS232是半双工接口,所以需要切换接收状态,然后接收电表返回的数据,存到相应的命令数组中。流程如图1所示。
其中判断有无读表动作步骤,为了节省系统资源没有采用循环,利用JAVA的线程锁结束,当有命令到达时自动解锁,使线程继续执行,如果没有,则读表线程会一直处于等待状态。对于判定命令类型,主要是为了分辨读表命令来源,如GPRS网络读表命令、SMS读表命令、定时读表命令、批量读表命令等,以便在读表完成后返回给相应的访问线程。在读表过程中,因为简化了接口电路,直接用TC65控制读表动作,所以造成了切换状态过程中数据的不稳定,经常被其它噪声干扰,所以必须对电表返回的数据进行校验,第一步是校验接收到的数据是否完整,如果不完整,需要判断所接收到的信息是否包含完整的数据区,第二步是利用CS位校验接收到的数据是否准确。两步校验如果通过则将数据进行调整并存入相应的数组对象,供其它线程调用。
在读表线程中,由命令数组触发读表事件,命令数组中的数据是经过处理的命令,其中添加了触发读表事件的线程信息,便于读表线程在读表结束后返回数据给调用线程。读表之前必须要先清空缓冲区数据,避免对最终数据造成影响,可用while(in.available()!=0)readTemp=in.read();
语句完成此功能,使总线数据为空,保证电表485接口切换到接收状态。然后切换模块的RS485接口为发送状态,用来发送读表命令,可用AT命令来控制,但GPIO引脚必须先关闭再开启才能改变状态,所以需要两条命令,即AT^SCPIN=0,1,1,1和AT^SCPIN=1,1,1,1,然后立即发送命令来完成读表,表控命令必须遵循《多功能电能表通信规约》,即以68H开始,但为了唤醒某些电能表开始接收数据,可以在发送命令前发送几个FEH,发送完成后应加一定的延时,保证数据传输的有效性,避免由于切换485状态过快使读表数据发送不完整。然后再将模块485口切换回接收状态,同样是通过两条AT指令实现,即AT^SCPIN=0,1,1,0和AT^SCPIN=1,1,1,0,切换完成即可开始接收数据。
4小结
根据近年来GSM/GPRS数据通信技术、自动抄表技术等发展的趋势,本文提出了一种基于SMS/GPRS的远程抄表系统。该系统将SMS和GPRS两种方式相结合,实现无线远程通信;使用TC65进行系统控制,并利用无线网络来传输数据。通过RS485方式采集各采集点的数据,最终实现对各电能表的抄表功能。系统成本低,功能全。
参考文献:
[1]毛诗柱,肖波,梁志坤. 基于J2ME的GPRS远程无线自动抄表系统[J].扬州大学学报,2006(1):45-48.
上一篇:会计核算能力素质模型构建研究
下一篇:通风与空调系统的调试探讨