当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]远程抄表系统中集中器软件的模块化设计与实现

0 引言
    近些年来由于电子技术、计算机技术和通信技术的快速发展而加快了各个行业的自动化进程,在电力行业内,也依靠现代化技术改变了传统的手工抄表方法,使得抄表工作在不需要人力的情况下依靠网络和计算机就能快速而准确的完成,提高了抄表过程中数据采集的实时性、可靠性、信息量。目前的自动化抄表系统主要有掌上抄表系统,有线抄表系统和无线抄表系统,其中掌上抄表系统需抄表人员用掌上抄表器抄收数据,因此自动化程度不够;有线系统需要施工布线,既提高了费用又增加了难度;而无线抄表系统虽不需布线,安装也方便,但信号易受外界干扰,数据传输的稳定性较差,容易抄收失败。因此主要研究基于GPRS的无线远程抄表系统,利用GPRS技术连接主站与集中器,从而缩短了布线的范围及长度,并可实时、准确地获取电表数据并上传数据到主站,重点研究基于GPRS的有线集中器的软件设计。

1 系统结构描述
   
完整的远程抄表系统包括主站、集中器、采集器、载波表、手持终端等,其系统结构如图1所示。


    主站是运行抄表系统的计算机,一般放在电力中心,由它来发出命令进行定时抄表、实时抄读或设置相关信息等操作。主站通过GPRS与集中器通信。
    集中器负责连接若干个电表或采集器,此范围内的所有电表的抄读工作由集中器统一完成,然后再将结果传送给主站,集中器与主站间通过GPRS连接,下行通过RS 486进行连接。
    本文重点介绍集中器中通信软件的设计。

2 集中器通信软件设计
2.1 集中器功能
   
集中器除了响应主站命令外还要负责对电表的定时抄读,因此设计集中器软件时要明确这2个功能,即:响应主站命令与定时抄表。响应主站命令任务的启动是由主站命令到达触发的,定时抄表任务则应该由集中器内时间触发而启动的,不同的任务对应不同的处理流程。
2.2 响应主站流程
   
集中器向上与主站连接,向下与各终端进行通信。与主站间的通信集中器处于从属地位,它只有在接收到主站中的命令时才做出操作,而不能主动与主站发起通信;而其与下行终端通信时,集中器处于主动地位,它在适当的时候向下终端发出命令,而不会收到下行的主动请求帧。
    图2描述了集中器通信流程,通信的工作始终运行在外围的无限循环中判断和接收主站请求帧,当接收到主站命令后先判断此数据帧是否校验正确,若错误检查错误原因,并根据错误类型设置错误代码,然后发送异常应答帧;否则判断是否是集中器命令,若不是集中器命令则需要判断是否需要转发,需要转发则首先将协议进行转换,然后将命令转发出去,接收到转发响应后再向主站响应;若是集中器命令,则根据操作码对集中器进行相关操作,操作完成后返回响应帧,然后进入下一个循环继续等待主站的命令帧。

[!--empirenews.page--]


2.3 抄表任务流程
   
定时抄表是集中器的重要功能,通常有抄表日抄表,抄表月抄表,整点抄表;零点抄表等多种类型。集中器首先启动抄表任务功能,然后不断检测当前时间是否符合设定的抄表时间,如果不符合则继续下一轮的检查;否则获取到要抄读的电表信息,然后向电表发送抄读命令帧,收到回复后先验证数据的正确性,如果数据正确则进行相关的入库等操作,否则重发抄读命令(一般设为3次),当数据处理完成后,进行下一轮循环。整个流程如图3所示


2.4 软件模块设计
   
根据上节介绍的流程,在设计软件的时候将整个系统分为如下几个部分:
    主控模块  负责命令的接收,发送,逻辑判断,数据流的控制等总体调度和控制工作。
    上行协议解析模块  负责对主站下发的命令进行帧的校验和解析,并将解析的结果保存以便主控的访问。
    上行协议封装模块  负责对主站回复帧的封装工作,具体数据由主控模块提供。
    集中器操作模块  负责根据主站命令实现对集中器的操作工作。
    下行协议封装模块  在需要命令转换时,该模块负责将主站下发的命令翻译成下行协议,在抄读任务启动后负责封装抄读命令。
    下行通信模块  负责下行命令的发送和接收。
    下行协议的解析模块  负责将下行命令的回复帧进行校验和解析。
    数据处理模块  负责将必要的数据存入数据库或从数据库中读取数据。
    抄表模块  负责定时启动抄表任务。
    整体的系统模型如图4所示。[!--empirenews.page--]


    定时抄表模块使用单独线程实现,在模块中判断当前时间是否符合抄表设定的时间,如果是则将所有要抄读信息发送到下行协议模块封装模块进行封装抄表命令,然后下发出去。在向下通信的过程中使用了两个队列来实现通信和处理的异步性,在对多个表抄读时可提高整体系统的效率。

3 通信软件的实现
   
该软件系统模拟在Linux操作系统中用C++语言实现,每个模块封装成单独的类,如下所示:
   
    该类对应主控模块,其中成员函数run()中实现主控模块的功能,在系统中构造一个全局的Dispatcher对象以实现对主控模块的访问。
   
    该类对应上行协议的帧,其中提供成员方法Encode()和Decode()来实现对上行协议的封装和解析。在程序中只需创建一个帧的对象就可以通过这些函数实现封装和解析的功能。下行协议采用同样的方法处理:
   
    该类对应集中器操作模块,其中方法Do(int Op_Type)实现具体操作功能,参数Op_Type表示要做的具体操作,在函数内部可以使用switch-case语句判断操作的类型,然后到各个分支执行。
    其余模块采用相同的方法进行封装,需要注意的是抄表模块和下行通信模块采用单独线程处理,以实现抄表任务的定时启动和下行数据传输的异步性。下行队列采取封装STL中queue模板来实现,并提供入队,出对,获取队列大小等接口。

4 结语
   
集中器软件设计的主要任务是实现其的各部分功能。主要功能包括:集中器控制、实时用电数据采集、定时数据采集及存储、数据报文的转发、运行状态记录及指示、通信管理等。采用了模块化设计的通信软件具有稳定性好,效率高等特点,能够进一步加快电力行业自动化的建设。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭