一种并发巡测批量终端时间的方法

文档序号:7442861阅读:223来源:国知局
专利名称:一种并发巡测批量终端时间的方法
一种并发巡测批量终端时间的方法技术领域
本发明属于电力和通信技术领域,尤其涉及一种批量巡测终端时间的方法。
技术背景
随着电力系统的改造,电力数据的采集将逐渐摒弃传统的人工抄表模式而采用远 程终端控制抄表方式,并将抄表数据通过GPRS/CDMA、以太网、电话线路、串口通道、230M等 方式传送到主站系统进行分析和应用。为了在主站侧进行数据分析应用以及实时监测用电 情况,就必须确保主站侧电力数据的正确性和完整性,电能量采集系统正是在这种背景下 产生的,但是传统的电能量采集系统所采集数据的时标严重依赖于终端,如果数据时标一 旦出错,那么这条数据就变得没有任何实用价值,而且还有可能严重的误导分析决策人员, 因此如何及时发现终端系统时间的错误非常关键。
本发明中基于GPRS的并发巡测批量终端时间的设计方法,可用于电能量信息采 集系统,因为电能量信息采集系统在实际运行过程中经常会出现数据采集不成功或采集数 据的时标错位等情况,借助批量终端时间的巡测功能可以及时的发现哪些终端系统的时间 出现偏差并及时修正以保证电能量采集系统的正常运行。
在最新发展的现有技术中,利用GPRS联合网或WCDMA网的数据收发功能,在相应 的用户地点安装采集终端,并通过GPRS联合网或WCDMA网,将所采集的数据传送到相应的 电力专网,再由电能量采集系统对这些数据进行解析,并交给应用服务器进行相应的分析 和处理。发明内容
本发明的目的在于提供一种并发巡测批量终端时间的方法,旨在及时发现电能量 采集系统中所接入终端的系统时间错误的问题。
为达到上述目的,一种并发巡测批量终端时间的方法,其特征在于,所述方法包括 以下步骤
(1)向前置机批量查询待巡测终端的在线状态,不在线的终端不参与巡测;
(2)申请获取在线终端的发送锁,申请锁失败的终端不参与巡测;
(3)发送线程循环组织参与巡测终端的时间请求命令并通过前置机发送给对应终 端;
(4)各终端获取其系统当前时间并组织响应数据通过前置机转发给主站查询模 块;
(5)接收线程接收到各终端的响应数据并通知解析响应线程;
(6)解析响应线程对接收的响应数据进行解析,抽取出终端时间;
(7)释放解析完成终端的发送锁。
作为具体化,在上述步骤(1)中,批量查询终端在线状态的请求命令格式参照主 站通讯协议组织,通讯协议的帧格式如下起始字符(E8H)lbytes、源主站地址lbyte、目标主站地址lbytes、起始字符(E8H) lbytes、控制域(C)lbytes、长度(L) 2bytes、帧序列域 (FIR,FINJseq) lbytes、数据区(DATA)、结束字符(16H) lbytes ;其中源主站地址和目标主 站地址用程序模块的ID编号来代替,且最大不能超过127 ;控制域表示功能码,不同的功能 码对应不同的功能,不同的功能码对应数据区的格式也不一样。
作为改进,对终端在线状态的查询包括单个终端在线状态查询和多个终端在线状 态查询;其中,单个终端在线状态查询的功能码定义为0X05/0X15,单个终端在线状态查询 的数据区内容定义为终端协议类型-终端地址-终端在线状态;多终端在线状态查询的 功能码定义为0X06/0X16,多终端在线状态查询的数据区内容定义为终端协议类型1-协议类型1的终端个数nl-终端地址1-终端1状态......终端地址nl-终端nl状态-终端协议类型2-协议类型2的终端个数π2-终端地址1-终端1状态......终端地址π2-终端η2状态.......
作为具体化,在上述步骤O)中,请求终端时间的前提是终端已经登录上前置机; 并为每个终端都分配了一个独立的终端发送锁,每次在对终端进行操作之前必须先获取该 终端的发送锁,否则将不被允许执行终端操作。
作为改进,在以下三种情况下能成功地申请终端发送锁
Α、每个终端初次获取发送锁;
B、发送锁被正常的释放后;
C、发送锁被连续持有超过指定时间;。
其中A和B两种情况均属于正常获取发送锁,C属于超时强制获取发送锁。
作为具体化,在上述步骤(3)中,发送线程中实现的功能是作为用户调用接口对 外提供给调用者,发送线程是任何调用该用户接口的线程,用户调用接口方法定义为
pub 1 i cvo i dexeTermiCommCmd (Li st〈TermiCommOb j > t ermi commob j s, CompleteListener<Ter miCommObj>listener),
其中,第一个参数为待执行的终端对象列表集合,第二个参数为某终端对象执行 完毕后用于通知用户的完成事件监听器。
作为改进,用户调用接口实现流程如下
a、遍历参与巡测的终端列表,获取每个终端;
b、按照《电力负荷管理系统数据传输规约》组织每个终端时间的请求帧;
C、将组织的终端时间请求帧通过前置机转发给终端,如果发送失败则将该终端从 参与巡测终端列表中删除;
d、继续执行步骤a,直到所有终端的请求都发送完毕;
e、如果上述终端列表不为空,则遍历终端列表,获取每个终端,检查其终端的发送 锁是否处于可申请状态,如果处于可申请状态,则表明该终端已经执行完毕,立即通过事件 通知机制告知用户,并从终端列表中删除该终端,继续遍历下一个终端,如果处于不可申请 状态则直接遍历下一个终端;如果本步骤遍历完一遍之后,所有终端发送锁均处于不可获 取状态,则调用Thread, sleep (1000)方法进行1秒钟的休眠;
f、判断终端列表是否为空,如果不为空,则继续执行步骤e,直到终端列表为空为止。
作为改进,上述事件通知机制中涉及到的事件接口是CompIeteLi stener,该接口定义了一个方法public void operateCompleted(TerminalCommCmd trmcmd),用户通过 重载该方法来获取终端命令的执行结果。
作为具体化,上述步骤的具体步骤为终端接到查询其系统时间的命令后,按 照《电力负荷管理系统数据传输规约》定义的数据格式01,组织成长度为6的字节数组,并 将其作为数据区组织成完整的协议帧,并将此帧数据通过连接登录前置机的GPRS通道上 传给前置机;然后前置机将数据帧转发给主站查询模块。
作为具体化,在上述步骤(7)中,将所有的解析过程放入try块中执行,将释放终 端发送锁的过程放入finally代码块中执行,这样就能保证解析过程中无论出现何种异 常,终端发送锁均能成功的释放,避免死锁问题的发生。。
本发明的有益效果是通过网络支持并发的特性,实现了前置机对终端的并发处 理,采用多线程调度策略和JAVA NIO异步通道处理机制实现了批量巡测终端的功能,采用 事件通知机制保证用户感知终端巡测结果的实时性。


图1是本发明实施例提供的电能量信息采集系统结构示意图2是本发明实施例提供的并发巡测批量终端时间的实现流程示意图3是本发明实施例提供的巡测终端功能用户接口的工作流程示意图4是本发明实施例提供的主站查询系统结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。
本发明实施例是这样实现的,如图2和图3所示,一种基于GPRS的并发巡测批量 终端时间的设计方法,所述方法包括以下步骤
(1)向前置机批量查询待巡测终端的在线状态,不在线的终端不参与巡测;批量 查询终端在线状态的请求命令格式参照主站通讯协议组织,批量查询终端在线状态的帧 格式如下起始字符(E8H)lbytes、源主站地址Ibyte、目标主站地址lbytes、起始字符 (E8H)lbytes、控制域(C) lbytes、长度(L) 2bytes、帧序列域(FIR, FIN, Pseq) lbytes、数据 区(DATA)、结束字符(16H) lbytes。其中源主站地址和目标主站地址用程序模块的ID编号 来代替,且最大不能超过127。控制域表示功能码,不同的功能码对应不同的功能,不同的功 能码对应数据区的格式也不一样。对终端在线状态的查询包括单个终端在线状态查询和多 个终端在线状态查询,其中
1)、单个终端在线状态查询的功能码定义为0X05/0X15,单个终端在线状态查询的 数据区内容定义为终端协议类型-终端地址-终端在线状态。
2)、多终端在线状态查询的功能码定义为0X06/0X16,多终端在线状态查询的 数据区内容定义为终端协议类型1-协议类型1的终端个数nl-终端地址1-终端1状态......终端地址nl-终端nl状态-终端协议类型2-协议类型2的终端个数n2_终端地址1-终端1状态......终端地址n2-终端n2状态.......
(2)申请获取在线终端的发送锁,申请锁失败的终端不参与巡测;请求终端时间 的前提是终端已经登录上前置机,即在线,因此不在线的终端没有必要参与巡测。在实际应 用中经常会出现用户对同一终端同时进行操作的情况,为了保证每个用户操作的原子性, 特设置了终端发送锁,该发送锁用于维护对同一终端同时进行操作时的串行性,在本发明 中为每个终端都分配了一个独立的终端发送锁,每次在对终端进行操作之前必须先获取该 终端的发送锁,否则将不被允许执行终端操作。在以下三种情况下可以成功地申请终端发 送锁
A、每个终端初次获取发送锁;
B、发送锁被正常的释放后;
C、发送锁被连续持有超过指定时间,如1分钟。
其中A和B两种情况均属于正常获取发送锁,C属于超时强制获取发送锁。如果 某终端发送锁被占用,且占用时间不超过指定时间,则申请发送锁将会失败,这种情况下意 味着主站请求程序模块的请求命令已经下达到终端且正在等待该终端的应答,此时该终端 不宜参与巡测。
(3)发送线程循环组织参与巡测终端的时间请求命令并通过前置机发送给对应终 端;发送线程中实现的功能是作为用户调用接口对外提供给调用者的,发送线程可以是任 何调用该用户接口的线程,该接口方法定义为
publicvoidexeTermiCommCmd(List<TermiCommObj>termicommobjs, CompleteListener<Ter miCommObj>listener),其中,第一个参数为待执行的终端对象列 表集合,第二个参数为某终端对象执行完毕后用于通知用户的完成事件监听器,该接口实 现流程如下
a、遍历参与巡测的终端列表,获取每个终端;
b、按照《电力负荷管理系统数据传输规约》组织每个终端时间的请求帧;
C、将组织的终端时间请求帧通过前置机转发给终端,如果发送失败则将该终端从 参与巡测终端列表中删除;
d、继续执行步骤a,直到所有终端的请求都发送完毕;
e、如果上述终端列表不为空,则遍历终端列表,获取每个终端,检查其发送锁是否 处于可申请状态,如果处于可申请状态,即,发送锁已被正常释放或超时强制获取,则表明 该终端已经执行完毕,立即通过事件通知机制即调用完成事件监听器告知用户,并从终端 列表中删除该终端,继续遍历下一个终端,如果处于不可申请状态,即在指定时间内发送锁 还未被释放,则直接遍历下一个终端;如果本步骤遍历完一遍之后,所有终端发送锁均处于 不可获取状态,则调用Thread, sleep (1000)方法进行1秒钟的休眠;
f、判断终端列表是否为空,如果不为空,则继续执行步骤E,直到终端列表为空为 止。
从以上步骤a_f可以看出,整个用户接口在发送完参与巡测的终端请求之后进入 等待状态,等待解析线程解析并释放发送锁,等待所耗时间最长为申请终端发送锁允许的 超时时间,也就是说整个巡测接口执行所耗时间不超过单个终端申请发送锁设置的超时时 间。
上述事件通知机制中涉及到的事件接口是CompleteListener,即完成事件监听器接口,该接口仅定义了一个方法
public void operateCompleted(TerminalCommCmd trmcmd),用户通过重载该方 法来获取终端命令的执行结果。
(4)各终端获取其系统当前时间并组织响应数据通过前置机转发给主站查询模 块;终端接到查询其系统时间的命令后,按照《电力负荷管理系统数据传输规约》定义的数 据格式01,组织成长度为6的字节数组,并将其作为数据区组织成完整的协议帧,并将此帧 数据通过连接登录前置机的GPRS通道上传给前置机;然后前置机将数据帧转发给主站查 询模块。
(5)接收线程接收到各终端的响应数据并通知解析响应线程;接收线程采用NIO 技术实现通道数据帧的读写,并将读取的数据帧存如解析线程缓冲区等待解析线程解析; 接收线程和解析线程是通过共享缓冲区的方式来实现数据共享的,并通过解析线程自动监 测该缓冲区的来实现自我通知。
(6)解析响应线程对接收的响应数据进行解析,抽取出终端时间;解析线程监测 到缓冲区中有数据帧后立即获取数据帧并按照《电力负荷管理系统数据传输规约》进行解 析,最后抽取出合法的终端系统时间,并将此时间存入对应终端的数据存储区;
(7)释放解析完成终端的发送锁;解析线程每解析完毕一条终端响应数据帧,就 立即释放该终端占用的发送锁,以便下一次对该终端进行巡测或其他操作;在实际的数据 帧解析过程中可能会各种异常导致解析线程死掉,进而影响整个程序的正常运行,为此本 发明将所有的解析过程放入try块中执行,而将释放终端发送锁的过程放入finally代码 块中执行,这样就能保证解析过程中无论出现何种异常,终端发送锁均能成功的释放,避免 死锁问题的发生。
在本发明中,所述GPRS是欧洲电信协会GSM系统中有关分组数据的标准,它可 以提供高达115Kbps的空中接口传输速率,让若干移动用户能够同时共享一个无线信道, 一个移动用户也可以使用多个无线信道。其中,实际不发送或接收数据包的用户仅占很 小一部分网络资源。有了 GPRS,用户的呼叫建立时间大为缩短,几乎可以做到"永远在 线"(always online)。由于上述特点,GPRS网可为移动数据用户提供突发性数据业务,能 快速建立连接,且无连接时延。特别适用于频繁传送小数据量的应用和非频繁传送大量数 据的应用。是目前最理想的用电管理的通讯手段。
所述终端支持《电力负荷管理系统数据传输规约》,应用于电力系统的数据采集、 负荷控制等,其冻结的各类数据都具有时标,且采用GPRS作为其上行通道。
图1是本发明实施例提供的电能量信息采集系统结构示意图,系统结构中各模块 简要描述如下
采集设备包括各种采集终端、集中器、采集器、网络表、电能表等,在电能量信息采 集系统中这些设备统称为采集对象;
通信信道包括各网络运营商提供的无线通道,如GPRS/CDMA等,还有光钎专网、 230M无线信道、电话线通道、串口通道等;
主站包括前置机、定时采集模块、实时采集模块、中间件模块、web应用模块等,其 中本发明的设计方法主要用于主站对终端系统时间的查询。
图4是本发明实施例提供的主站查询系统结构示意图,本发明设计方法可用于图中的C/S结构客户端软件模块实现终端时间的巡测,也可用于B/S结构的浏览器中实现终 端时间查询功能;从图中可以看到,无论是采用那种方式,均必须和前置机服务进行交互, 前置机主要起管理终端通道和转发数据的作用。
综上所述,本发明采用多线程服务和NIO技术实现批量终端的并发巡测,采用精 确的算法和事件驱动模式提供人性化的用户接口,可接受数量极大的终端同时参与巡测, 保证在尽可能短的时间内得到巡测结果。采用本发明,可以尽量减少电能量信息采集系统 在实际运行过程中出现的数据采集不成功或采集数据的时标错位等情况。借助批量终端 的巡测时间功能可以及时地发现哪些终端系统的时间出现偏差,并及时修正以保证电能量 采集系统的正常运行,可大幅度减少用电管理系统的维护使用成本,并使系统更加安全、可罪。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种并发巡测批量终端时间的方法,其特征在于,所述方法包括以下步骤(1)向前置机批量查询待巡测终端的在线状态,不在线的终端不参与巡测;(2)申请获取在线终端的发送锁,申请锁失败的终端不参与巡测;(3)发送线程循环组织参与巡测终端的时间请求命令并通过前置机发送给对应终端;(4)各终端获取其系统当前时间并组织响应数据通过前置机转发给主站查询模块;(5)接收线程接收到各终端的响应数据并通知解析响应线程;(6)解析响应线程对接收的响应数据进行解析,抽取出终端时间;(7)释放解析完成终端的发送锁。
2.根据权利要求1所述的一种并发巡测批量终端时间的方法,其特征在于在上述 步骤(1)中,批量查询终端在线状态的请求命令格式参照主站通讯协议组织,通讯协议的 帧格式如下起始字符(E8H)lbytes、源主站地址lbyte、目标主站地址lbytes、起始字符 (E8H)lbytes、控制域(C) lbytes、长度(L) 2bytes、帧序列域(FIR, FIN, Pseq) lbytes、数据 区(DATA)、结束字符(16H) lbytes ;其中源主站地址和目标主站地址用程序模块的ID编号 来代替,且最大不能超过127 ;控制域表示功能码,不同的功能码对应不同的功能,不同的 功能码对应数据区的格式也不一样。
3.根据权利要求2所述的一种并发巡测批量终端时间的方法,其特征在于对终端在 线状态的查询包括单个终端在线状态查询和多个终端在线状态查询;其中,单个终端在线 状态查询的功能码定义为0X05/0X15,单个终端在线状态查询的数据区内容定义为终端 协议类型-终端地址-终端在线状态;多终端在线状态查询的功能码定义为0X06/0X16,多 终端在线状态查询的数据区内容定义为终端协议类型1-协议类型1的终端个数nl-终端地址1-终端1状态......终端地址nl-终端nl状态-终端协议类型2-协议类型2的终端个数π2-终端地址1-终端1状态......终端地址π2-终端η2状态.......
4.根据权利要求1所述的一种并发巡测批量终端时间的方法,其特征在于在上述步 骤O)中,请求终端时间的前提是终端已经登录上前置机;并为每个终端都分配了一个独 立的终端发送锁,每次在对终端进行操作之前必须先获取该终端的发送锁,否则将不被允 许执行终端操作。
5.根据权利要求5所述的一种并发巡测批量终端时间的方法,去特征在于在以下三 种情况下能成功地申请终端发送锁Α、每个终端初次获取发送锁;B、发送锁被正常的释放后;C、发送锁被连续持有超过指定时间;。其中A和B两种情况均属于正常获取发送锁,C属于超时强制获取发送锁。
6.根据权利要求1所述的一种并发巡测批量终端时间的方法,其特征在于在上述步 骤(3)中,发送线程中实现的功能是作为用户调用接口对外提供给调用者,发送线程是任 何调用该用户接口的线程,用户调用接口方法定义为publicvoidexeTermiCommCmd(List<TermiCommObj>termicommobjs, CompleteListener<Termi CommObj>1i stener),其中,第一个参数为待执行的终端对象列表集合,第二个参数为某终端对象执行完毕后用于通知用户的完成事件监听器。
7.根据权利要求6所述的一种并发巡测批量终端时间的方法,其特征在于用户调用 接口实现流程如下a、遍历参与巡测的终端列表,获取每个终端;b、按照《电力负荷管理系统数据传输规约》组织每个终端时间的请求帧;C、将组织的终端时间请求帧通过前置机转发给终端,如果发送失败则将该终端从参与 巡测终端列表中删除;d、继续执行步骤a,直到所有终端的请求都发送完毕;e、如果上述终端列表不为空,则遍历终端列表,获取每个终端,检查其终端的发送锁是 否处于可申请状态,如果处于可申请状态,则表明该终端已经执行完毕,立即通过事件通知 机制告知用户,并从终端列表中删除该终端,继续遍历下一个终端,如果处于不可申请状态 则直接遍历下一个终端;如果本步骤遍历完一遍之后,所有终端发送锁均处于不可获取状 态,则调用Thread, sleep (1000)方法进行1秒钟的休眠;f、判断终端列表是否为空,如果不为空,则继续执行步骤e,直到终端列表为空为止。
8.根据权利要求7所述的一种并发巡测批量终端时间的方法,其特征在于上述事件 通知机制中涉及到的事件接口是CompleteListener,该接口定义了一个方法public void operateCompleted (TerminalCommCmd trmcmd),用户通过重载该方法来获取终端命令的执 行结果。
9.根据权利要求1所述的一种并发巡测批量终端时间的方法,其特征在于上述步骤 (4)的具体步骤为终端接到查询其系统时间的命令后,按照《电力负荷管理系统数据传输 规约》定义的数据格式01,组织成长度为6的字节数组,并将其作为数据区组织成完整的协 议帧,并将此帧数据通过连接登录前置机的GPRS通道上传给前置机;然后前置机将数据帧 转发给主站查询模块。
10.根据权利要求1所述的一种并发巡测批量终端时间的方法,其特征在于在上述步 骤(7)中,将所有的解析过程放入try块中执行,将释放终端发送锁的过程放入finally代 码块中执行,这样就能保证解析过程中无论出现何种异常,终端发送锁均能成功的释放,避 免死锁问题的发生。
全文摘要
本发明公开了一种并发巡测批量终端时间的方法,所述方法包括以下步骤(1)向前置机批量查询待巡测终端的在线状态,不在线的终端不参与巡测;(2)申请获取在线终端的发送锁,申请锁失败的终端不参与巡测;(3)发送线程循环组织参与巡测终端的时间请求命令并通过前置机发送给对应终端;(4)各终端获取其系统当前时间并组织响应数据通过前置机转发给主站查询模块;(5)接收线程接收到各终端的响应数据并通知解析响应线程;(6)解析响应线程对接收的响应数据进行解析,抽取出终端时间;(7)释放解析完成终端的发送锁。采用本发明的方法能及时发现电能量采集系统中所接入终端的系统时间错误的问题。
文档编号H02J13/00GK102044912SQ20101056522
公开日2011年5月4日 申请日期2010年11月25日 优先权日2010年11月25日
发明者沈祥 申请人:深圳市科陆电子科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1