基于GPRS通信模块实现自动抄表的设计
ccwgpt 2025-03-07 16:47 45 浏览 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 协议,可以实现页面无刷新更新数据,使界面更加友好。
相关推荐
- 定时任务工具,《此刻我要...》软件体验
-
之前果核给大家介绍过一款小众但实用的软件——小说规则下载器,可以把网页里的小说章节按照规则下载到本地,非常适合喜欢阅读小说的朋友。有意思的是,软件作者当时看到果核写的体验内容后,给反推荐到他的帖子里去...
- 前端定时任务的神库:Node-cron,让你的项目更高效!
-
在前端开发中,定时任务是一个常见的需求。无论是定时刷新数据、轮询接口,还是发送提醒,都需要一个可靠且灵活的定时任务解决方案。今天,我要向大家介绍一个强大的工具——Node-cron,它不仅能解决定时任...
- Shutter Pro!一款多功能定时执行任务工具
-
这是一款可以在电脑上定时执行多种任务的小工具,使用它可以根据时间,电量等来设定一些定时任务,像定时打开程序、打开文件,定时关机重启,以及定时弹窗提醒等都可以轻松做到。这是个即开即用的小工具,无需安装,...
- 深度解析 Redis 缓存击穿及解决方案
-
在当今互联网大厂的后端开发体系中,Redis缓存占据着极为关键的地位。其凭借高性能、丰富的数据类型以及原子性操作等显著优势,助力众多高并发系统从容应对海量用户的访问冲击,已然成为后端开发从业者不可或...
- 从零搭建体育比分网站完整步骤(比较好的体育比分软件)
-
搭建一个体育比分网站是一个涉及前端、后端、数据源、部署和维护的完整项目。以下是从零开始搭建的详细流程:一、明确项目需求1.功能需求:实时比分展示(如足球、篮球、网球等)支持多个联赛和赛事历史数据查询比...
- 告别复杂命令行:GoCron 图形界面让定时任务触手可及
-
如果你是运维人员或者经常接触一些定时任务的配置,那么你一定希望有一款图形界面来帮助你方便的轻松配置定时任务,而GoCron就是这样一款软件,让你的配置可视化。什么是GoCron从名字你就可以大概猜到,...
- Java任务管理框架核心技术解析与分布式高并发实战指南
-
在当今数字化时代,Java任务管理框架在众多应用场景中发挥着关键作用。随着业务规模的不断扩大,面对分布式高并发的复杂环境,掌握其核心技术并进行实战显得尤为重要。Java任务管理框架的核心技术涵盖多个方...
- 链表和结构体实现:MCU软件定时器(链表在单片机中的应用)
-
在一般的嵌入式产品设计中,介于成本、功耗等,所选型的MCU基本都是资源受限的,而里面的定时器的数量更是有限。在我们软件设计中往往有多种定时需求,例如脉冲输出、按键检测、LCD切屏延时等等,我们不可能...
- SpringBoot定时任务(springboot定时任务每小时执行一次)
-
前言在我们开发中,经常碰到在某个时间点去执行某些操作,而我们不能人为的干预执行,这个时候就需要我们使用定时任务去完成该任务,下面我们来介绍下载springBoot中定时任务实现的方式。定时任务实现方式...
- 定时任务新玩法!systemd timer 完整实战详解
-
原文链接:「链接」Hello,大家好啊!今天给大家带来一篇使用systemdtimer实现定时任务调度的详细实战文章。相比传统的crontab,systemdtimer更加现代化、结构清晰...
- Celery与Django:打造高效DevOps的定时任务与异步处理神器
-
本文详细介绍了Celery这一强大的异步任务队列系统,以及如何在Django框架中应用它来实现定时任务和异步处理,从而提高运维开发(DevOps)的效率和应用性能。下面我们先认识一下Cele...
- 订单超时自动取消的7种方案,我用这种!
-
前言在电商、外卖、票务等系统中,订单超时未支付自动取消是一个常见的需求。这个功能乍一看很简单,甚至很多初学者会觉得:"不就是加个定时器么?"但真到了实际工作中,细节的复杂程度往往会超...
- 裸机下多任务框架设计与实现(gd32裸机配置lwip 网络ping不通)
-
在嵌入式系统中,特别是在没有操作系统支持的裸机环境下,实现多任务执行是一个常见的挑战。本文将详细介绍一种基于定时器的多任务框架设计,通过全局时钟和状态机机制,实现任务的非阻塞调度,确保任务执行中不会出...
- 亿级高性能通知系统构建,小白也能拿来即用
-
作者介绍赵培龙,采货侠JAVA开发工程师分享概要一、服务划分二、系统设计1、首次消息发送2、重试消息发送三、稳定性的保障1、流量突增2、问题服务的资源隔离3、第三方服务的保护4、中间件的容错5、完善...
- 运维实战:深度拆解Systemd定时任务原理,90%的人不知道的玩法
-
运维实战:深度拆解Systemd定时任务原理,90%的人不知道的高效玩法一、Systemd定时任务的核心原理Systemd定时任务是Linux系统中替代传统cron的现代化解决方案,通过...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- bootstrap框架 (43)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- laravel框架 (46)
- express框架 (43)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- grpc框架 (55)
- ppt框架 (48)
- 内联框架 (52)
- winform框架 (46)
- gui框架 (44)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)