基于GPRS通信模块实现自动抄表的设计
ccwgpt 2025-03-07 16:47 59 浏览 0 评论
电力网供电长期以来依靠人力对商业用电和生活用电数据进行抄读,效率极其低下。抄表数据统计主要依靠人力,报表生成周期长,统计结果分析慢,获得结果不能及时反映系统用电量需求分布,对供应系统的网络优化没有参考价值,严重限制了供电系统的供电效率和质量的提高。
传统抄表方式依靠人力抄表,电表数据抄取周期较长,无法获得同一时刻所有用户的电表数据,使得电表数据的获取具有不精确性和时间段的模糊性,导致电网用电量的时空分布结果可信度不高,从而无法给供电管理部门提供有效的参考数据和建议。
自动抄表系统是供电系统监管部门用来对工业和生活用电进行监测、管理和控制,以及对用户用电情况进行统计、分析的重要手段。本文提出了将 GPRS通讯技术与 J2EE 技术相结合的方案应用到自动抄表系统的设计中,构成了网络化的远程自动抄表系统。在底层硬件设计中,采用一种基于通用分组无线业务 GPRS(GeneralPacketRatioService)无线上网技术的自动数据采集方案。在上层软件设计中,采用美国 Sun 公司推出的 J2EE(Java2Platform,EnterpriseEdition)平台。该产品已应用在实际抄表系统中,效果良好。
1、系统的整体结构及工作原理
1.1 系统的组成
图 1 是系统总体设计方案。系统由五部分组成:GPRS 数据采集模块、通信服务器、数据库服务器、Web 服务器、客户端。
GPRS 数据采集模块:它是系统的硬件主要部分。GPRS 模块上电后拥有一个动态的 IP 地址,可以与通信服务器进行 Socket 通信。它的功能就是将检测到的电能流量以十六进制数据格式发送给通信服务器。GPRS 终端也可以接受来之通信服务器的命令。
通信服务器:它打开服务器的某一端口,监听并接受所有 GPRS 终端向该端口发送的 UDP数据包,然后将数据包解析成流量等数据,写进数据库中。通讯服务器的另一任务是向 GPRS 终端发送命令的任务,即向 GRPS 终端发送 UDP 数据包。
数据库服务器:通信服务器从 GPRS 终端获得的数据都存储在数据库服务器上,同时数据库服务器还需对数据进行备份。
Web 服务器:它连接着数据库服务器和客户端。首先它向客户端提供 Web 服务。响应来之客户端的请求,并根据客户端的请求向数据库服务器获取数据,然后再将数据以 html 格式返回给客户端,使得客户端可以浏览它所请求的数据。Web 服务器还可以直接向通信服务器提出请求,通信服务器根据 Web 服务器的请求向 GPRS 终端发送命令。
客户端:它采用瘦客户端,只需要一个 Internet 浏览器即可。客户端的任务就是向 Web 服务器发出 http 请求,然后将 Web 服务器返回的 ht-ml 格式文件显示给用户。
1.2 系统的功能
系统的功能有:查看历史数据,读取实时或整点数据。
查看历史数据:客户端根据自己的需求,要求查看历史上某一段数据的请求,该请求经过 Web 服务器转送给数据库服务器,数据库服务器将数据经过 Web 服务器转接以 html 格式返回给客户端。
读取实时或整点数据:客户端要求读取实时或整点数据请求,Web 服务器根据请求来通知通讯服务器,然后由通讯服务器通知 GPRS 数据采集模块,GPRS 数据采集模块通过 GPRS 网络向通讯服务器发送数据包。当通讯服务器收到数据包时,将数据包解析成流量参数写到数据库服务器中,然后由数据库服务器将数据发送给 Web 服务器,然后由 Web 服务器将数据以 html 格式返回给客户端。
2、GPRS 通信模块的设计及其功能
第 2.5 代通讯技术 GPRS(GenealpacketRADIoService,通用分组无线业务)作为第三代通讯技术的前奏,GPRS 技术是在现有 GSM 技术基础上发展而来的一种新的分组交换的数据承载业务,由英国 BTCellent 公司在 1983 年提出。GSM 技术主要以提供话音业务为主,而 GPRS 技术在移动终端与计算机通信网络的路由器之间提供了分组传递业务,这就是 GPRS 网络与 GSM 网络的最大区别。
GPRS 把分组交换技术引入现有 GSM 系统,为移动用户和数据网络之间提供语音通信。GPRS 采用分组交换技术,主要提供非语音的数据业务,特别适用于间断的、突发性的和频繁的、少量的数据传输,给移动用户提供高速无线 IP 和 x.25 服务。GSM 网络采用电路交换的方式,也适用于偶尔的大数据量传输。
本系统就是利用 GPRS 的分组无线业务,通过无线网络连接到现场的自动抄表装置上进行数据测量。
在系统中,关键之一是网络协议的选择。目前有两种协议,即 TCP 协议和 UDP 协议。UDP 协议与 TCP 协议相比较,有以下几个优点:适用于小数据量的传输;使用方便,不需要建立连接,是一种无连接的通讯方式;传输数据的效率高,实时性强。
考虑到 UDP 上述特点以及流量测量系统对实时性的高要求,本系统采用了 UDP 协议。
3、系统硬件设计
电能流量测量设备有两种工作方式:一是按事先设定好的时间间隔,周期性地采集用户数据,实时地传送到数据库服务器;二是实时地响应来自于通信服务器的控制命令,按照控制命令进行特定的数据采集任务。这就要求作为数据传输模块和终端设备控制模块的 GPRS 终端能够实时地解析、处理各种控制命令并向数据传输服务提供尽可能大的吞吐率。另外考虑到系统的可扩展性,本系统硬件设计时没有采用传统的低成本但是高开发费用且性能、功能受限制的单片机加 GPRS 通讯模块的方案,而是使用了以高性能嵌入式 CPU 芯片为核心的设计方案。GPRS 数据传输终端的硬件组成和连接如图 2 所示。CPU 采用了专为网络解决方案设计的 SamsungARM74510B。GPRS 模块采用目前比较流行的西门子 MC35 系列模块。
传输终端的软件采用了以嵌入式实时操作系统为平台、自主知识产权的网络组件为核心的体系结构。操作系统选用了μclinux。μclinux 最大的特点就是没有 MMU,很适合 ARM 嵌入式微处理器。该μclinux 的内核版本是 Linux2.4,它具备完整的嵌入式 TCP/IP 网络协议栈,操作系统所有代码加起来编译后的镜像文件小于 1MB。
该系统以数字信号处理器 DSP 为核心,采用交流取样技术,可以连续地检测和统计电量的有关参数。
抄表数据终端起着管理和协调 GPRS 网络和仪表数据通信的作用。由于无线传输是基于 GPRS 的,所以抄表数据传输终端也可以称为 GPRS 终端,要完成硬件和软件的设计。抄表终端的硬件设计一般都会选用世界知名厂商生产的 GPRS 模块作为抄表终端与 GPRS 网络连接的中间件,实现同基站空中接口的连接,选用高速微处理器连接仪表和 GPRS 模块,处理两者间的数据通信问题。
4、系统软件设计
4.1B/S 结构
目前软件结构设计模式主要有两大类:一是传统的 Client/Server(客户端/服务器)模式,它采用 Intranet 技术,适用于局域网环境可连接用户数有限,当用户数量增多时,性能会明显下降,客户端都要安装。一是正在不断发展的 Browser/Server(浏览器/服务器)模式,它采用 Internet/Intranet 技术,适用于广域网环境,支持更多的客户,可根据访问量动态配置 Web 服务器、应用服务器,以保证系统性能。客户端只需要标准的 Internet 浏览器。
由于运行该系统的物理平台的复杂性,例如不同设备的操作系统、数据库服务器等都具有相异性,各种专业网络都有各自不同的网络架构和实现方式,因此必须选择能够较好支持跨平台开发的运行环境进行设计。此外,考虑到使用该系统的人员具有广泛性,依据不同的权限随时可以查看该系统的详细情况,若仍完全采用传统的固定 C/S 模式,就必须严格对每个客户端进行参数设置,这显然是不可取的。
系统的软件设计采用以 Web 技术为基础,以浏览器/服务器即 B/S 为体系结构的方案。B/S 模式与传统的 C/S 模式相比,优点在于:主要工作是服务器端程序的开发。服务器主要负责开发、维护网上的内容与资源,负责信息的收集、存储、发布,不存在客户端程序的开发和维护。客户端直接利用现有的局域网或 Internet 连接,不需要特殊设置和安装,使用标准的 Internet 浏览器,直接访问专用 Web 服务器页面,就可观看监测和分析电能质量的实时数据,并能查询所需历史数据。
4.2 系统运行环境与工具的选择
考虑到系统的移植性和跨平台性,本系统选择了 Sun 公司设计开发的 J2EE 平台,使用 JSP(JavaServerPages)作为 B/S 模式的开发工具。J2EE(
Java2PlatformEnterpriseEdiTIon)是一个适用于企业级计算的支持多层、分布式应用的全新概念的 Java 平台,它为搭建具有可伸缩性,灵活性、易维护性的企业信息系统提供了良好的机制,与传统的互联网应用程序模型相比有着不可比拟的优势。J2EE 主要面向网络应用,它定义了一系列规范的标准,使得 Java 程序员能够共同的遵照这个标准,开发大型面向网络的项目。它同时提供了庞大的开发库,是面向电子商务开发的企业级应用平台。Java 具有“编写一次,到处运行”的特性,能够通过 JDBC 方便连接各类数据库,调用各类 API,同时在 Internet 应用中保护数据的安全模式等。总结该系统的平台解决方案如下:
计算模式:三层 B/S 模式;网络操作系统:Windows2000Server;数据库服务器:Oracle8i;Web 服务器:ApacheTomcat5.O;数据库驱动接口:JDBC 驱动;主要的开发环境及工具:J2EE,Java,JSP,Javascript。
4.3 连接池(ConnecTIonPool)机制
程序的效率问题在 JSP 编程过程中是很重要的,即要考虑如何使有限的计算机系统资源为更多的客户提供更好的服务,保证客户的响应速度和服务质量。如果有很多人访问该网站,每一次 Web 请求都需要与数据库建立一个连接,那么数据库就有可能要同时处理许多建立连接的请求,这对于数据库服务器和 WebServer 来说是一个很严重的负担,甚至会导致资源耗尽而死机。
本系统使用连接池机制来解决这个问题。连接池最基本的思想就是预先建立一些连接放置于内存对象中以备使用。当程序中需要建立与数据库的连接时,只需到连接池中读取即可,不需新建连接。当程序不需该连接时,只要将该连接放回到连接池中,以便其他程序或用户使用。同时连接池机制对于位于池中的连接具有管理的功能,增加了与数据库连接的强壮性。
4.4 数据库的远程管理
数据库内容包括:现场流量参数的实时数据、历史数据、不合格数据、人员的管理、权限的管理等。
数据库远程管理按照如下流程来实现:
(1)客户端发出数据的查询或修改指令;
(2)服务端接收指令,向客户端返回结果;
(3)客户端接收结果,显示查询数据。
当客户端请求查看实时数据的时候,客户端向服务器发出请求,服务器每隔 2s 就将实时数据发送给客户端,客户端接收并显示该数据。该过程就是一个典型的数据库远程管理过程。传统的技术是页面不断刷新,来获取新的数据,以便让用户看到不断变化的实时数据。但该方法的缺点一是当数据量较大时,占用服务器资源的消耗大;二是用户能明显感到页面的不断刷新,对用户视觉和听觉都有很大影响。本系统采用了 Microsoft 开发的 xmlhttp 技术,它是 Microsoftxml 解析器(MSXML)中的一个客户/服务通讯管道协议。运用 xmlhttp 可以简单方便地实现数据库远程管理。由于其传送的是 XML 格式的数据,大大减轻了对服务器的消耗,而且采用 xmlhttp 协议,可以实现页面无刷新更新数据,使界面更加友好。
相关推荐
- 如何使用PIL生成验证码?(pi验证教程)
-
web项目中遇到使用验证码的情况有很多,进行介绍下使用PIL生成验证码的方法。安装开始安装PIL的过程确实麻烦各种问题层出不绝,不过不断深入后就没有这方面的困扰了:windows安装:直接安装Pil...
- Python必学!3步解锁asyncio异步编程 性能直接狂飙10倍!
-
还在用传统同步代码被IO阻塞卡到崩溃?别当“代码苦行僧”了!Python的asyncio模块堪称异步编程的“开挂神器”,处理高并发任务就像开了涡轮增压!不管是网络爬虫、API接口开发还是文件批量处理,...
- Tornado6+APScheduler/Celery打造并发异步动态定时任务轮询服务
-
定时任务的典型落地场景在各行业中都很普遍,比如支付系统中,支付过程中因为网络或者其他因素导致出现掉单、卡单的情况,账单变成了“单边账”,这种情况对于支付用户来说,毫无疑问是灾难级别的体验,明明自己付了...
- Python学习怎么入门?附真实学习方法
-
Python技术在企业中应用的越来越广泛,因此企业对于Python方面专业人才的需求也越来越大,那对于之前对Python没有任何了解和接触的人而言,想要从零开始学习并不是一件容易的事情,接下来小U就为...
- PySpider框架的使用(pyspider 教程)
-
PysiderPysider是一个国人用Python编写的、带有强大的WebUI的网络爬虫系统,它支持多种数据库、任务监控、项目管理、结果查看、URL去重等强大的功能。安装pip3inst...
- 大学计算机专业 学习Python学习路线图(最新版)
-
这是我刚开始学习python时的一套学习路线,从入门到上手。(不敢说精通,哈哈~)希望对大家有帮助哈~大家需要高清得完整python学习路线可以【文末有获取方式】【文末有获取方式】一、Python入门...
- 阿里巴巴打造的400集Python视频合集免费学起来,学完万物皆可爬
-
第一阶段Python入门章节1:Python入门章节2:编程基本概念章节3:序列章节4:控制语句章节5:函数章节6:面向对象编程第二阶段Python深入与提高章节1:异常处理章节2:游戏开发-坦克大...
- Nginx Gunicorn在服务器中分别起什么作用
-
大部分人在gunicorn前面部署一层nginx的时候也的确没有想过为什么,他们只是觉得这样显得他们比较专业,而且幻想着加了一层nginx反向代理之后性能会有提升,恕我直言,请你们带上脑子,一个单纯的...
- Python培训怎么学?Python基础技术总结!值得一看
-
Python培训如今越来越被更多人所接受,相比自学参加Python培训的好处也是显而易见,但Python毕竟属于后端编程开发的主流语言,其知识机构还是比较庞大的,那Python培训怎么学?以及Pyth...
- 使用Tornado部署Flask项目(tornado async)
-
Tornado不仅仅是一个WEB框架,也可以是一个WEB服务器。在Tornado中我们可以使用wsgi模块下的WSGIContainer类运行其他WSGI应用如:Fask,Bottle,Djang...
- Python Web框架哪个好用?(python3 web框架)
-
问:PythonWeb框架哪个好用? 答: 1.Django Django是Python世界中最出名、最成熟的Web框架。Django功能全面,各模块之间结合紧密,(不讲其他的)Djang...
- Vue3.0+Tornado6.1发布订阅模式打造异步非阻塞实时=通信聊天系统
-
“表达欲”是人类成长史上的强大“源动力”,恩格斯早就直截了当地指出,处在蒙昧时代即低级阶段的人类,“以果实、坚果、根作为食物;音节清晰的语言的产生是这一时期的主要成就”。而在网络时代人们的表达欲往往更...
- Python开源项目合集(第三方平台)(python第三方开发工具)
-
wechat-python-sdk-wechat-python-sdk微信公众平台Python开发包http://wechat-python-sdk.readthedocs.org/,非官方...
- IT界10倍高效学习法!用这种方式,一年学完清华大学四年的课程
-
有没有在某一个瞬间,让你放弃学编程刚开始学python时,我找了几十本国内外的python编程书籍学习后,我还是似懂非懂,那些书里面到处都是抽象的概念,复杂的逻辑,这样的书,对于专业开发者来说,在平常...
- 如何将Python算法模型注册成Spark UDF函数实现全景模型部署
-
背景Background对于算法业务团队来说,将训练好的模型部署成服务的业务场景是非常常见的。通常会应用于三个场景:部署到流式程序里,比如风控需要通过流式处理来实时监控。部署到批任务中部署成API服...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 如何使用PIL生成验证码?(pi验证教程)
- Python必学!3步解锁asyncio异步编程 性能直接狂飙10倍!
- Tornado6+APScheduler/Celery打造并发异步动态定时任务轮询服务
- Python学习怎么入门?附真实学习方法
- PySpider框架的使用(pyspider 教程)
- 大学计算机专业 学习Python学习路线图(最新版)
- 阿里巴巴打造的400集Python视频合集免费学起来,学完万物皆可爬
- Nginx Gunicorn在服务器中分别起什么作用
- Python培训怎么学?Python基础技术总结!值得一看
- 使用Tornado部署Flask项目(tornado async)
- 标签列表
-
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- JAVA集合框架 (47)
- mfc框架 (52)
- abb框架断路器 (48)
- ui自动化框架 (47)
- beego框架 (52)
- java框架spring (58)
- grpc框架 (65)
- tornado框架 (48)
- ppt框架 (48)
- 内联框架 (52)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)