当前位置:首页 > 通信技术 > 通信技术
[导读]集中器是远程抄表系统中的重要组成部分,通过对集中器功能的深入分析,立足于对系统功能和性能的全面优化,提出基于模块化的软件设计方案。阐述了模块化软件设计的思路,给出了软件设计的流程图和系统结构图,最后给出了具体实现的方法。经过实践证明,该设计方案不仅能提高系统性能,还可以提高系统的稳定性和可堆护性。

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

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


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

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


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


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


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

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

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

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

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭