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

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

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

上海2024年4月22日 /美通社/ -- 恶性的攻击和意外事件总是防不胜防,提前部署灾备方案可以在遭遇意外时尽可能减少企业损失。那么面对无处不在的勒索病毒和潜在风险,为什么依然有很多企业还会遭遇数据丢失?

关键字: 勒索病毒 软件 电脑 群晖数据

SAP(思爱普)近日发出的裁员计划,不仅涉及全球范围内约8000个职位,更是在中国区造成了近1500名正式员工和合同工不续的情况。

关键字: 软件 互联网

上海2024年4月17日 /美通社/ -- 每年4月17日是世界血友病日。今年,世界血友病日以"认识出血性疾病,积极预防和治疗"为主题,呼吁关注所有出血性疾病,提升科学认知,提高规范化诊疗水平,让每一位出血性疾病患者享有...

关键字: VII 动力学 软件 BSP

德国埃朗根2024年4月16日 /美通社/ -- Elektrobit 今日宣布推出 EB zoneo GatewayCore——首款支持、配置和集成现代微控制器新一代硬件加速器的软件产品,可应用于先进的汽车电子/电气架...

关键字: 汽车 软件 硬件加速 通信网络

Windows Embedded Compact 7(简称WinCE)是一种专为嵌入式系统设计的操作系统,具有体积小、效率高、可定制性强的特点。在WinCE中设置自动运行软件,通常是为了满足设备在启动后自动执行特定任务的...

关键字: 嵌入式系统 软件 操作系统

业内消息,日前欧洲软件巨头SAP宣布了一项重组计划推动人工智能增长,该计划将涉及大约8000名员工的岗位调整,这些员工将被纳入自愿休假计划和内部再培训措施,即鼓励员工自愿离职或进行内部转岗。

关键字: AI 重组 软件 裁员 SAP

业内消息,国家工信部近日公布了今年前三季度我国软件和信息技术服务业的具体情况,整体运行态势平稳,软件业务收入两位数增长,利润总额保持较快增长,软件业务出口降幅收窄。

关键字: 工信部 软件

嵌入式系统是一种特殊的计算机系统,它被嵌入到其他设备中,以完成特定的任务。嵌入式系统的结构组成是由硬件和软件两部器、输入输出设备和总线等组件,而软件部分则包括操作系统、应用程序和驱动程序等。

关键字: 嵌入式 计算机 软件

嵌入式软件系统是现代技术中广泛应用的一种软件形式,它通常嵌入在各种设备中,如汽车、电子设备、医疗设备等。由于这些设备的功能和性能对人们的生活至关重要,因此对嵌入式软件系统进行全面而有效的测试非常重要。本文将介绍如何对嵌入...

关键字: 嵌入式 设备 软件

安全态势可控、移动安全可及、安全开发可行

关键字: 软件 软件安全 智能终端
关闭
关闭