一种基于LabVIEW的实时监控系统数据记录方法与流程

文档序号:12462658阅读:1159来源:国知局
一种基于LabVIEW的实时监控系统数据记录方法与流程

本发明属于计算机数据采集与处理技术领域,具体涉及一种基于LabVIEW的实时监控系统数据记录方法。



背景技术:

计算机技术和总线技术的发展使得以PC机为中心的实时监控系统在现代测试工程中扮演着越来越重要的角色。随着操作系统和处理器并行处理能力的不断提高,人们对实时监控系统的功能和复杂程度也提出了更高的要求。当一个复杂的实时监控系统工作时,人们不仅希望能实现必要的监视、控制功能,而且希望有一套可靠、有效的机制用于实现现场数据的实时记录,以达到数据备份,事后数据分析,用户操作评估,辅助定排故等目的。

实时监控系统工作时,用户希望能够毫无遗漏地记录全面的现场信息,包括总线数据、日期时间、用户操作动作等。但由于PC机磁盘空间有限,为适应长期记录的需要,还希望存储文件能尽可能小。此外,由于需要和系统监控同时进行,数据记录进程应尽可能少地占用系统资源,以免影响主体监控功能的实现。

现有的以PC机为平台的实时监控系统数据记录方法一般存在以下弊端:①多采用文本形式存储数据,文件I/O效率低、占用磁盘空间大,长时间连续记录时会出现数据阻塞、数据丢失、死机等现象;②记录信息不全面,大多未记录用户在监控界面操作控件的动作;③普遍采用定时循环程序结构记录数据,当总线波特率发生改变时,可能会造成总线数据丢失,程序自适应能力差。且记录用户操作动作时,需要在循环中不断轮询用户界面控件的状态,程序框架繁琐,轮询过程会消耗可观的CPU处理时间,如果用户执行太快,还可能遗漏用户的输入,程序响应能力弱。



技术实现要素:

本发明的目的在于提供一种基于LabVIEW的实时监控系统数据记录方法,克服或减轻现有技术的至少一个上述缺陷。

本发明的目的通过如下技术方案实现:一种基于LabVIEW的实时监控系统数据记录方法,其特征在于,包括如下步骤:

步骤一:使用LabVIEW语言创建“数据记录文件”格式的文件;

步骤二:在步骤一所述的文件中定义实时监控系统所需记录的不同数据类型的元素;

步骤三:实时记录实时监控系统事件发生时步骤二中各元素的数据;

步骤四:当记录的数据达到预设要求时保存该文件,同时创建新的“数据记录文件”格式的文件记录后续数据;

步骤五:当实时监控系统所需元素记录完成后,筛选并删除步骤四中各文件中的空白文件。

优选地是,所述实时监控系统所需记录元素的类型为日期时间、数据帧类型、有效数据帧、开关组状态、模块上电时间。

优选地是,所述实时监控系统事件为该实时监控系统接收到有效通讯数据帧、用户改变该实时监控系统界面开关状态。

优选地是,所述步骤四的单个记录文件中记录数超过25000条或者记录时长超过1小时。

本发明所提供的一种基于LabVIEW的实时监控系统数据记录方法的有益效果在于,能全面记录实时监控系统的各种信息;“数据记录文件”格式文件I/O效率高,占用磁盘空间小,能够满足长期数据记录的需要;程序框架简单,运行时占用CPU资源少,效率较高;程序自适应能力强,响应速度快,不会丢失数据及遗漏用户的操作;可应用于以PC机为平台的实时监控系统中,用来实时存储各种现场数据。

附图说明

图1为本发明基于LabVIEW的实时监控系统数据记录方法的记录文件数据结构示意图;

图2为本发明基于LabVIEW的实时监控系统数据记录方法的流程图;

图3为本发明基于LabVIEW的实时监控系统数据记录方法的程序框图。

具体实施方式

为使本发明实施的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本发明一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面结合附图对本发明的基于LabVIEW的实时监控系统数据记录方法做进一步详细说明。

一种基于LabVIEW的实时监控系统数据记录方法,包括如下步骤:

步骤一:使用LabVIEW语言创建“数据记录文件”格式的文件。

当实时监控系统开始工作时,首先在当前应用程序目录下以“日期+时间+XXX数据记录”为文件名创建并打开一个文件,并定义该文件的格式,该文件的格式为“数据记录文件”格式。

所述“数据记录文件”是LabVIEW特有的一种二进制文件类型,它以相同的结构化记录序列存储数据(类似于电子表格),每条数据记录可由任何数据类型组成,非常适用于需要记录复杂数据类型的场合。该文件类型相比文本文件占用磁盘空间更小,文件I/O效率更高。在创建记录文件时,LabVIEW按顺序给每个记录分配一个记录号,仅通过查询序列号就可随机访问记录,因此可在后期方便地查阅记录文件,拓展回放功能。

步骤二:在步骤一所述的文件中定义实时监控系统所需记录的不同数据类型的元素。

实时监控系统所需记录元素的类型选择日期时间、数据帧类型、有效数据帧、开关组状态、模块上电时间等其他需要记录的数据类型。

步骤三:实时记录实时监控系统事件发生时步骤二中各元素的数据。

实时监控系统事件选择为实时监控系统接收到有效通讯数据帧、用户改变该实时监控系统界面开关状态以及其他实时监控系统发生的状况。

检测实时监控系统事件的发生,当事件发生时,程序立即响应,并按已定义的格式组装各现场数据后写入当前文件中,若事件未发生,程序一直处于等待状态。

通过实时监控系统事件来响应特定的用户操作,更接近于自然规律,不必轮询前面板即可确定执行了何种操作。事件可以来自于用户界面、外部I/O或者用户自定义事件。事件程序框架简单,不仅可减少程序对CPU的需求,还可保证对用户的所有交互都能作出响应,提高了程序的自适应能力和响应能力。

步骤四:当记录的数据达到预设要求时保存该文件,同时创建新的“数据记录文件”格式的文件记录后续数据。

当单个文件中记录数到达一定数目或记录时间到达一定时长时,具体为单个记录文件中记录数超过25000条或者记录时长超过1小时。保存并关闭当前文件,而后创建并打开新文件以保存后续记录。此举是为了防止单个记录文件过大而占用过多的内存开销。该步骤不会破坏整体数据流盘结构。

所述“数据流盘”结构是一种文件操作结构,即在循环之前放置打开/创建/替换文件程序,在循环内部放置读出/写入文件程序,在循环之后放置关闭/删除文件程序。这种结构避免了重复开关文件的系统占用,节省了内存资源,提高了程序效率。

步骤五:当实时监控系统所需元素记录完成后,筛选并删除步骤四中各文件中的空白文件。

工作结束时,程序自动遍历本次工作产生的所有历史记录文件,若为空文件,则删除。这种设计剔除了无用的文件,清理了磁盘空间,也节省了后期用户查找文件的时间。

下面通过一个实施例详尽阐述。该实施例需要对雷达电源单元工作过程中的产生的有效通讯帧数据、用户操作开关动作、通讯帧类型、各电源模块上电时间以及系统日期时间进行记录。

实施例中的记录文件数据结构如图1所示,图1中每一行都是一条记录,每条记录都按顺序对应了一个记录号,每条记录都由4个不同数据类型的元素组成,包括:

101:日期时间,字符串型,格式为“年月日时分秒”;

102:数据帧类型,8位无符号整数型,记录的是从总线接收到的通讯帧的类型,包括工作状态帧、故障数据帧、使用记录数据帧等;

103:有效数据帧,8位无符号整型数组类型,59个元素,记录的是电源单元的系统状态和参数;

104:开关组1状态,8位无符号整数型,记录的是用户界面上8个电源模块开关按钮的状态;

105:开关组2状态,8位无符号整数型,记录的是用户界面上8个系统工作开关按钮的状态;

106:模块上电时间,16位无符号整型数组类型,8个元素,记录的是8个电源模块单次上电时间。

该记录文件由于采用二进制格式保存数据,每条记录占用磁盘空间仅为97字节,若采用文本格式(文本或电子表格)保存这些数据,最大占用空间达251字节。

图2所示,是本发明专利基于LabVIEW的实时监控系统数据记录方法实现流程图。本实施例中,采用图1所示“数据记录文件”格式来存储数据。本流程采用数据流盘结构来提高文件I/O的效率,引入事件驱动机制来提高程序的自适应能力及响应能力,具体流程包括如下操作:

201:实时监控系统开始工作后,首先在当前应用程序目录下以“日期+时间+XXX数据记录”为文件名创建并打开一个记录文件;

202:按图1所示格式定义记录文件格式;

203:等待事件的发生,虚线框中所示为事件结构对应的内容,每个循环仅能触发一个事件;

204:“接收到有效通讯数据帧”事件发生,该事件属于用户自定义事件,有效通讯数据帧是监控系统从通讯总线得到的,事件发生后程序立刻响应此事件,进入207;

205:“用户改变界面开关状态”事件发生,该事件属于用户界面事件,是用户在操作用户界面开关时产生的,事件发生后程序立刻响应此事件,进入步骤207;

206:“超时”事件发生,该事件是程序等待一定时间仍没204、205事件发生时触发的,事件发生后程序立刻响应此事件,进入步骤208;

207:按图1定义的“数据记录文件”格式组装数据,并写入记录文件中;

208:当单个记录文件中记录数超过25000条或者记录时长超过1小时,进入209,否则进入210;

209:程序自动保存并关闭当前记录文件,并跳至201重新新建一记录文件以保存后续记录;

210:监控系统是否要结束工作,结束进入211,否则跳至203等待新的事件触发;

211:保存并关闭当前记录文件;

212:遍历本次工作产生的所有历史记录文件,若无空文件则结束数据记录流程,否则跳至步骤213;

213:删除查找到的空历史记录文件,结束数据记录流程。

采用本实施例所示过程,对一套雷达电源单元进行长达20天的连续数据记录实验,无数据丢失、阻塞、死机现象,操作用户界面开关流畅,无遗漏用户操作现象,记录结束后共得到记录文件987个,总大小2.21G,无空白文件。若采用以往文本数据记录的方式进行该实验,经常会出现卡死,数据丢失,用户频繁操作时遗漏用户输入的现象,记录结束后共得到1300多条记录,有许多空白记录,总大小高达6.13G。因此采用本发明所述方法能够极大地节省磁盘空间,且不会造成数据丢失,可靠性好,程序响应能力强。

图3所示,是本发明专利基于LabVIEW的实时监控系统数据记录方法对应的程序框图。框图中给出了该实施例的程序框架结构,具体为:

框架301:顺序结构,使用该结构来搭建实施例的整体数据流盘结构。共分为三部分,第一部分实现记录文件的创建/打开,第二部分实现记录文件的写入/再创建,第三部分实现记录文件的关闭/删除;

框架302:while循环结构,处于框架301的第二部分,在该循环中实现记录文件的循环写入和再创建;

框架303:事件结构,处于框架302中,用于检测“接收到有效通讯数据帧”以及“用户改变界面开关状态”事件的发生;

框架304:条件结构,处于框架302中,用于判断记录数是否超过25000条或者记录时长是否超过1小时;

框架305:for循环结构,处于框架301的第三部分,用于遍历单次工作产生的所有历史记录文件,并删除空记录文件。

该实施例程序框架简单、清晰,实现容易,且采用LabVIEW图形化语言编程,程序可读性、可移植性强。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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