一种串口数据采集轮询的方法、监控系统及存储介质与流程

文档序号:18462142发布日期:2019-08-17 02:07阅读:700来源:国知局
一种串口数据采集轮询的方法、监控系统及存储介质与流程

本申请涉及通信技术领域,尤其涉及一种串口数据采集轮询的方法、监控系统及存储介质。



背景技术:

在监控系统中,实时性是最关键的指标,监控系统通过轮询方式请求数据实现在线实时监控,串口轮询的效率直接影响监控实时性。rs485总线是数据中心的被监控设备最普遍和常用的数据接口方式,通常串口通讯采用一请求一应答方式的单步机制,这种机制在采集器一个串口接一个设备,且设备可以使用一个请求召回数据的应用下没有问题。但实际应用中,数据中心智能设备数量非常多且布线施工比较困难,所以往往都会在一条rs485总线上挂载多个设备;数据中心的不少智能设备监控参数很多,比如ups、精密列头柜,通常一个设备参数达几百个,必须经过多个请求才可召回全部数据;被监控设备处理性能参差不齐,有的设备接收到上位机请求后数据准备时间较长。这样,就导致轮询周期很长,整体数据采集效率低。

由于串口通讯一问一答的接口特性,通用的串口设备采集过程的时序机制为:上位机逐个设备发送请求数据的命令;设备收到请求自己的命令后,准备数据;上位机接收设备返回的数据,并进行数据解析、处理;遍历完成所有设备采集,以完成一个数据采集轮询周期。这样的话,一个数据采集完整轮询周期t=(通信时间t1+设备数据准备时间t2)*单设备请求数m*设备数n,由于设备数据准备时间t2过长(往往会远远大于通信时间),导致轮询周期t很长,整体数据采集效率低。

如图1所示,一条rs485总线上挂载了n(譬如为10)台ups设备,每台设备需要3条请求(运行信息、部件信息、告警信息)召回全部数据,设备收到1条请求后需200ms准备数据、30ms进行数据通信,则采集全部设备数据的1个完整周期共需要30ms*3*10+200ms*3*10=6900ms,这个时间导致监控系统实时性非常差,特别是对于告警这种敏感度非常高的信息,但受制于被监控设备性能的客观性,要提升这个实时性,业内的做法都是通过增加硬件投资来改善,如通过增加总线数量和上位机串口数量,分流单总线上设备数量,这种方式可以提升实时性,但会导致建设成本的较大幅度增加(包括上位机硬件及布线实施费用等),且在一些高密机房场所客观环境不允许进行大量布线施工。



技术实现要素:

本申请实施例提供了一种串口数据采集轮询的方法、监控系统及存储介质,用于缩短轮询周期,提高整体数据采集效率,在同等硬件配置下可较大幅度缩短采集时间,提升监控实时性;充分发挥上位机性能,降低监控系统的硬件成本。

本申请实施例提供的串口数据采集轮询的方法,应用于监控系统,所述监控系统包括:上位机、多个被监控设备及至少一串口总线;所述上位机通过所述至少一串口总线连接多个被监控设备,所述方法包括:

所述上位机轮询下发所有被监控设备对应的数据准备命令;

各个被监控设备收到对应的数据准备命令后,开始准备数据;

所述上位机在等待预设的延时时间后,接收所有被监控设备返回的响应数据;

所述上位机依次处理各个被监控设备的响应数据,以完成一个数据采集轮询周期。

可选地,所述上位机轮询下发所有被监控设备对应的数据准备命令,包括:

所述上位机的串口通讯线程一次轮询下发所有被监控设备对应的数据准备命令。

可选地,所述各个被监控设备收到对应的数据准备命令后,开始准备数据,包括:

各个被监控设备根据自己的地址码接收上位机发送的数据准备命令,开始准备各自对应的响应数据。

可选地,所述延时时间大于或等于所述串口总线上所有被监控设备返回完响应数据的最长时间;所述串口总线为rs485总线。

可选地,所述延时时间为300ms。

可选地,所述接收所有被监控设备返回的响应数据,包括:

所述上位机将接收到的所有被监控设备返回的响应数据压入队列。

可选地,所述上位机依次处理各个被监控设备的响应数据,以完成一个数据采集轮询周期,包括:

所述上位机的数据处理线程按各个被监控设备从所述队列中依次取出对应的响应数据;

所述上位机的处理线程取出对应的响应数据后,解析并处理数据;

所述上位机处理完所有被监控设备的响应数据,完成一个数据采集轮询周期。

本申请实施例提供的串口数据采集轮询的方法,包括:

轮询下发所有被监控设备对应的数据准备命令,以使各个被监控设备收到对应的数据准备命令后开始准备数据;

在等待预设的延时时间后,接收所有被监控设备返回的响应数据;

依次处理各个被监控设备的响应数据,以完成一个数据采集轮询周期。

本申请实施例提供的监控系统,包括:上位机、多个被监控设备及至少一串口总线;所述上位机通过所述至少一串口总线连接多个被监控设备;

所述上位机轮询下发所有被监控设备对应的数据准备命令;

各个被监控设备收到对应的数据准备命令后,开始准备数据;

所述上位机在等待预设的延时时间后,接收所有被监控设备返回的响应数据;

所述上位机依次处理各个被监控设备的响应数据,以完成一个数据采集轮询周期。

本申请实施例提供的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的串口数据采集轮询的方法。

从以上技术方案可以看出,本申请实施例具有以下优点:

本实施例中,上位机轮询下发所有被监控设备对应的数据准备命令;各个被监控设备收到对应的数据准备命令后,开始准备数据;所述上位机在等待预设的延时时间后,接收所有被监控设备返回的响应数据;所述上位机依次处理各个被监控设备的响应数据,以完成一个数据采集轮询周期,缩短了轮询周期,提高了整体数据采集效率,在同等硬件配置下可较大幅度缩短采集时间,提升监控实时性;充分发挥上位机性能,降低监控系统的硬件成本。

附图说明

图1为现有串口数据采集轮询的方法的示意图;

图2为本申请实施例中串口数据采集轮询的方法的一个实施例示意图;

图3为本申请实施例中串口数据采集轮询的方法的又一实施例示意图;

图4为本申请实施例中串口数据采集轮询的方法的另一实施例示意图;

图5为本申请实施例中监控系统的结构示意图。

具体实施方式

本申请实施例提供了一种串口数据采集轮询的方法、监控系统及存储介质,用于缩短轮询周期,提高整体数据采集效率,在同等硬件配置下可较大幅度缩短采集时间,提升监控实时性;充分发挥上位机性能,降低监控系统的硬件成本。为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施的限制。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

下面对本申请实施例中的具体流程进行描述,请参阅图2,所述串口数据采集轮询的方法,应用于监控系统,所述监控系统包括:上位机、多个被监控设备及至少一串口总线;所述上位机通过所述至少一串口总线连接多个被监控设备。本申请实施例中串口数据采集轮询的方法的一个实施例包括:

110、所述上位机轮询下发所有被监控设备对应的数据准备命令。

本实施例中,关于监控系统,需要说明的是,上位机通过串口总线连接各个被监控设备,一般来说,监控系统中可能会有多个串口总线,而每个串口总线上有多个被监控设备。被监控设备为ups(uninterruptiblepowersystem/uninterruptiblepowersupply,即不间断电源)、精密列头柜等设备。串口总线为rs485总线。

本申请实施例中,上位机(也就是数据采集器)作为高性能一端,可一次性并发所有请求,且时间非常短;现有技术上位机是遍历各个被监控设备,本申请采用一次性并发对所有被监控设备的数据请求。

优选地,所述上位机轮询下发所有被监控设备对应的数据准备命令,包括:所述上位机的串口通讯线程一次轮询下发所有被监控设备对应的数据准备命令。

120、各个被监控设备收到对应的数据准备命令后,开始准备数据。

本实施例中,各个被监控设备收到对应的数据准备命令后,开始准备数据,具体来说,各个被监控设备根据自己的地址码接收上位机发送的数据准备命令,开始准备各自对应的响应数据。

130、所述上位机在等待预设的延时时间后,接收所有被监控设备返回的响应数据。

本实施例中,由于各个被监控设备的数据准备时间不同,为了缩短轮询周期时间,本申请的上位机先等待预设的延时时间,再开始统一接收各个被监控设备返回的响应数据。同时,也可消除总线上其它设备数据准备时间的等待过程的时间。

优选地,所述延时时间大于或等于所述串口总线上所有被监控设备返回完响应数据的最长时间。这样,便可接收所有被监控设备返回的响应数据,无需等待各个设备的准备时间。在实际应用时,所述延时时间为300ms,这是一个优选值,如图1所示,被监控设备的响应值一般为200ms,本申请优选设为300ms,可以保证总线上所有设备返回完数据。

优选地,所述接收所有被监控设备返回的响应数据,包括:所述上位机将接收到的所有被监控设备返回的响应数据压入队列。具体来说,本申请实施例中,上位机的串口通讯线程等待一个延时时间,比如典型值300ms(大于设备准备数据的时间),收到返回数据后压入队列。所述队列对应也就是fifo队列(firstinputfirstoutput,先进先出),从而来接收所有被监控设备返回的响应数据。

140、所述上位机依次处理各个被监控设备的响应数据,以完成一个数据采集轮询周期。

本申请实施例中,上位机在接收到各个被监控设备返回的响应数据后,依次进行处理,处理完所有的响应数据后,便完成了一个数据采集轮询周期,也就是完成了一个周期的对所有被监控设备的数据采集。

优选地,所述上位机依次处理各个被监控设备的响应数据,以完成一个数据采集轮询周期,包括:

所述上位机的数据处理线程按各个被监控设备从所述队列中依次取出对应的响应数据;

所述上位机的处理线程取出对应的响应数据后,解析并处理数据;

所述上位机处理完所有被监控设备的响应数据,完成一个数据采集轮询周期。

以下以一应用实施例对本申请的串口数据采集轮询的方法详细说明如下。

请参阅图3,在实际应用时,上位机串口通讯线程一次轮询下发所有(比如10台)设备数据准备命令;各个设备收到自己地址码的查询命令后,开始准备数据;上位机串口通讯线程等待一个延时时间,比如典型值300ms(大于设备准备数据的时间),收到返回数据后压入队列,300ms的延时时间可以保证总线上所有设备返回完数据;上位机数据处理线程按设备从队列中依次取出数据;上位机处理线程取出数据后,解析并处理数据;依次类推直到处理完所有设备的响应数据,完成一个数据采集轮询周期。

请一并参阅图1和图3所示,图3中共耗时:300ms(等待各设备数据准备)+30ms(通信时间)*3*10=1200ms,对比传统串口单步线性机制6900ms也就是图1所示的6900ms,本申请的串口数据采集轮询的方法,采集时间大幅度缩小,实时性提升近5倍,充分利用了上位机处理器、内存资源,当然,再实际应用过程中在总线设备越多、被监控设备性能越差的场景下,本申请带来的价值会更加显著。本申请实现了监控实时性的提升,以上示例应用过程为例,可节省50%以上的上位机(数据采集器)硬件,并减少50%以上数量的线缆以及布线施工量。

请参阅图4,本申请实施例中串口数据采集轮询的方法的另一个实施例包括:

410、轮询下发所有被监控设备对应的数据准备命令,以使各个被监控设备收到对应的数据准备命令后开始准备数据;

420、在等待预设的延时时间后,接收所有被监控设备返回的响应数据;

430、依次处理各个被监控设备的响应数据,以完成一个数据采集轮询周期。

具体来说,本实施例中方法流程如上述的实施例流程。本申请的改进点在软件部分,硬件上没有改变,通过对上位机工作流程的优化,缩短了轮询周期,提高了整体数据采集效率。

现有技术由于串口通讯一问一答的接口特性,数据采集时间遵循木桶短板原理,整体轮询效率受制于作为应答方的设备端低性能的制约,本申请的技术方案考虑到上位机(也就是数据采集器)作为高性能一端,可一次性并发所有请求且时间非常短,总线上各个设备可接近同时(实际来说,间隔通信所有时间差,远小于设备数据准备时间)收到上位机发给自己的请求帧,消除总线上其它设备数据准备时间的等待过程,通过分解通讯和数据解析流程,实现设备数据准备的并行性。本申请提高了串口轮询效率,增强了监控系统实时性;在同等硬件配置下可较大幅度缩短采集时间,提升监控实时性;充分发挥上位机(数据采集器)性能,降低监控系统硬件成本。

上面对本申请实施例中的串口数据采集轮询的方法进行了描述,下面对本申请实施例中的监控系统进行描述:

请参阅图5,本申请实施例中监控系统的一个实施例包括:

上位机510、至少一串口总线520、及多个被监控设备530;所述上位机510通过所述至少一串口总线530连接多个被监控设备520;所述上位机510轮询下发所有被监控设备530对应的数据准备命令;各个被监控设备530收到对应的数据准备命令后,开始准备数据;所述上位机510在等待预设的延时时间后,接收所有被监控设备530返回的响应数据;所述上位机510依次处理各个被监控设备530的响应数据,以完成一个数据采集轮询周期。

上面从硬件处理的角度对本申请实施例中的监控系统进行描述。而本申请实施例揭示的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件、单片机。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述串口数据采集轮询的方法的步骤。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述串口数据采集轮询的方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1