一种数据采集存储系统及方法与流程

文档序号:32449121发布日期:2022-12-07 01:23阅读:250来源:国知局
一种数据采集存储系统及方法与流程

1.本发明属于数据采集与存储领域,具体涉及一种数据采集存储系统及方法。


背景技术:

2.数据采集已广泛应用于工业发展的各个领域,数据采集技术的提高不仅依赖于数据采集卡的硬件性能,也依赖于上位机软件的高速读取、存储等能力。在测控系统中,多路数据信号的采集很常见。目前,单通道高速数据采集和多通道低速采集技术已趋于成熟,但多通道高速采集技术仍待提高。
3.高速数据采集引出了对采集数据的高速处理和存储。数据采集卡采集的原始信号为电压或电流等,而用户需要的是位移、流量、温度等信号。对原始信号的换算工作目前仍在后期数据处理分析中进行,如何实现高速采集的数据换算并存储仍是一个挑战。
4.测控系统中的设备运行参数记录或样品的故障复现类自动试验等场景,并不需要前期运行正常的数据,仅需要最近一段时间或故障前后一定时长的数据,而目前测控系统中针对设备运行参数记录的数据存储仍采用直接存储,对采集数据的连续存储是最简单的数据存储方案,而对高速采集的数据不间断存储必然带来数据量巨大、数据分析不便的问题。


技术实现要素:

5.本发明的目的在于提供一种数据采集存储系统及方法,以克服现有对高速采集的数据不间断存储必然带来数据量巨大、数据分析不便的问题。
6.一种数据采集存储方法,包括以下步骤:
7.s1,初始化程序标志位变量均为假,程序标志位包括数据存储标志位、报警标志位和故障存储标志位;
8.若在一个采集周期内数据存储标志位由假变为真,则进行初始数据文件创建,根据设定数据采集周期存储数据,若在一个数据采集周期内只有数据存储标志位为真,一个周期结束后进行新周期数据采集并存储;
9.s2,若在一个采集周期内数据存储标志位由真变为假,则将初始时间置位当前时间,根据当前数据存储标志位、报警标志位和故障存储标志位的值进行数据存储;
10.若在一个采集周期内数据存储标志位未发生由真变为假的变化,则判断报警标志位是否由假变为真;
11.若判断报警标志位由假变为真,则将初始时间置位当前时间,根据当前数据存储标志位、报警标志位和故障存储标志位的值进行数据存储,否则直接根据当前数据存储标志位、报警标志位和故障存储标志位的值进行数据存储。
12.优选的,初始化程序标志位变量时同步设置数据采集物理通道以及采样率信息,以及采集数据设定的存储时长。
13.优选的,采集数据设定的存储时长包括故障前数据存储时长和故障后数据存储时
长。
14.优选的,数据采集以多通道多采样二维数组模式读取模拟量数据。
15.优选的,进行初始数据文件创建时创建两个用于故障前数据按序交替存储的文件。
16.优选的,采集数据时同步获取当前时间,将当前时间与该周期的初始时间作差得到当前存储文件的存储时长,若当前存储文件的存储时长小于故障前数据存储时长,则进行故障前数据存储,若当前存储文件的存储时长大于等于故障前数据存储时长,则重置初始时间为当前时间,完成当前循环故障前数据存储
17.优选的,若当前存储文件的存储时长大于等于故障前数据存储时长,且当前存储文件切换次数为0,则将当前存储文件切换次数加1,切换当前存储文件;若当前存储文件的存储时长大于等于故障前数据存储时长,且当前存储文件切换次数大于等于1,将当前存储文件切换次数加1,清除另一个存储文件数据并置为当前存储文件。
18.优选的,若在一个采集周期内报警存储标志位由假变真,则创建数据存储文件,并将故障存储标志位置真,进行故障数据采集存储;若在一个采集周期内故障存储标志位为真,将读取的数据按照需求换算并进行故障数据采集并存储。
19.优选的,获取数据时同步获取当前时间,将当前时间与该周期的初始时间作差得到当前存储文件的存储时长,若当前存储文件的存储时长小于设置的故障后数据存储时长,则继续进行故障后数据存储,若当前存储文件的存储时长大于等于故障后的数据存储时长,则进行故障前后文件数据的合并保存。
20.一种数据采集存储系统,包括数据采集卡和上位机;
21.数据采集卡,用于数据的采集并传输至上位机;
22.上位机,初始化程序标志位变量均为假,程序标志位包括数据存储标志位、报警标志位和故障存储标志位;
23.若在一个采集周期内数据存储标志位由假变为真,则进行初始数据文件创建,根据设定数据采集周期存储数据,若在一个数据采集周期内只有数据存储标志位为真,一个周期结束后进行新周期数据采集并存储;
24.若在一个采集周期内数据存储标志位由真变为假,则将初始时间置位当前时间,根据当前数据存储标志位、报警标志位和故障存储标志位的值进行数据存储;
25.若在一个采集周期内数据存储标志位未发生由真变为假的变化,则判断报警标志位是否由假变为真;
26.若判断报警标志位由假变为真,则将初始时间置位当前时间,根据当前数据存储标志位、报警标志位和故障存储标志位的值进行数据存储,否则直接根据当前数据存储标志位、报警标志位和故障存储标志位的值进行数据存储。
27.与现有技术相比,本发明具有以下有益的技术效果:
28.本发明一种数据采集存储方法,根据程序标志位的状态进行数据的分段存储,可实现多通道数据的高速采集,能实时换算高速采集的数据,可存储最近一段时间或故障前后一定时长的数据,多样品的试验情况同样适用,可独立控制数据存储,满足了测控系统中多路信号的高速采集与数据换算并存储的需求,同时满足了测控系统仅保存最近一段时间或故障前后一定时长数据的需求,解决了长时间高速存储数据量过大,后期数据处理不便
的问题,提高数据分析效率。
29.采用多通道多采样的二维数组数据读取模式实现了多通道数据的高速采集,大大降低上位机软件刷新速率。
附图说明
30.图1为本发明实施例中高速数据采集与存储系统连接示意图。
31.图2为本发明实施例中高速数据采集及存储系统界面示意图。
32.图3为本发明实施例中高速数据采集存储流程图。
33.图4为本发明实施例中故障前存储文件创建和变量初始化流程图。
34.图5为本发明实施例中故障前数据存储流程示意图。
35.图6为本发明实施例中故障前文件数据合并存储流程示意图。
36.图7为本发明实施例中故障后数据存储流程示意图。
具体实施方式
37.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
38.本发明一种数据采集存储系统,包括数据采集卡和上位机,数据采集卡和上位机通过电源供电,如图1所示,数据采集卡采用高速数据采集,具体使用的是nipci 6221数据采集卡,可采集16路模拟电压信号,电压范围为
±
10v,最高采样率250ks/s;上位机采用labview上位机。电源用于信号输入的传感器、数据采集卡及labview上位机供电。数据采集存储系统的采样能力是以数据采集卡的硬件能力为基础,可替换其他更高性能的数据采集卡。
39.数据采集采用多通道多采样的二维数组数据读取模式,多通道满足测控系统中多路信号采集的需求,多采样则是以数组的形式一次读取单个通道的多个数据,分多次读取达到高速数据采集的目的,labview上位机数据读取速率与数据采集卡采样速率相同。设置数据采集卡采样率为m hz,即单个通道每秒采集m个数据,程序定时循环周期为n ms,多路采集通道数为a,则每次读取的数据为a行(m
·
n)/1000列的二维数组,程序循环读取1000/n次,即为每秒m个数据。该高速数据采集模式大大降低上位机软件程序循环速率。相比单采样的数据读取模式,不存在上位机软件刷新速率不足引起的数据读取不及时最终导致缓存区溢出,采集数据丢失的风险,也避免了因上位机软件刷新速率高引起的系统资源占用过多,运行卡滞的可能。
40.利用tdms(technical data management streaming)二进制文件格式高效存储采集数据,在tdms写入读取的采集数据后,根据测控系统数据换算需求,利用tdms创建换算信息函数将tdms文件中的原始数据按组和通道换算为位移、流量、温度信号,数据换算关系支持线性、多项式、热电偶、热电阻(rtd)、表格、应变、热敏电阻、倒数,换算格式全面。采用tdms二进制文件格式具有存取速度快,占用内存小的优点,存储的tdms文件也可被excel和
matlab调用,方便后期数据的查看和分析。
41.本文的数据存储方案为:
42.故障前,按照设置的故障前数据存储时长,在数据存储文件a和数据存储文件b交替存储数据,发生故障后,按照设定的故障后数据存储时长,在数据存储文件c中存储数据,最终将所有存储的数据复制保存至以时间命名的数据存储文件d中。
43.若未出现故障,数据采集与存储系统停止运行,则数据存储文件d中仅复制保存数据存储文件a和数据存储文件b中的数据,若系统运行时间较短,数据存储文件b中未存储数据,则数据存储文件d中仅复制保存数据存储文件a中的数据。
44.若启动存储后,很快发生故障,数据存储文件b中未存储数据,则数据存储文件d中仅复制保存数据存储文件a和数据存储文件c中的数据。
45.若启动存储时,已发生故障,仅进行了故障后数据存储,则数据存储文件d中仅复制保存数据存储文件c中的数据。
46.图2为本发明基于labview的高速数据采集、换算与存储系统软件界面,用于可自行设定数据存储时间,采样率及数据换算等。本软件界面用于举例说明,仅供参考。
47.如图3至图7所示,本发明方法具体包括以下步骤:
48.s1设置采集卡的配置信息,包括数据采集物理通道、采样率数据、定时循环周期,这些信息在程序运行过程中无法修改;同时设置故障前数据存储时长和故障后数据存储时长,原始数据换算系数,这些信息程序运行过程中可修改;具体如图2所示;
49.s2运行高速数据采集、换算以及存储程序;
50.s3程序标志位变量的初始化;
51.s4数据采集卡参数配置:包含数据采集物理通道和采样率。设置采集卡采样率为mhz,即单个通道每秒采集m个数据,程序定时循环周期为nms,通道数为a,则步骤s6中读取的数据为a行列的二维数组。
52.s5数据采集卡启动采集任务;
53.s6以多通道多采样二维数组模式读取模拟量数据;
54.s7判断数据存储标志位是否发生由假至真的值变化,此步骤用于判断是否启动了数据存储,进行初始数据文件创建时创建两个用于故障前数据按序交替存储的文件,本技术以数据存储文件a和数据存储文件b为例,若数据存储标志位发生由假至真的值变化,如图4所示,执行s701,进行数据文件创建,根据设定数据采集周期存储数据,后下步执行步骤s8;若否,不进行任何操作,下步执行步骤s8。
55.s701初始数据存储文件创建:创建并打开数据存储文件a和数据存储文件b,获取初始时间t0,数据存储文件标志置为a,数据存储文件切换次数置为0,数据存储标志置为真,并开始进行数据的采集存储,同步进入s8。
56.s8判断数据存储标志位是否发生有由真至假的值变化,此步骤将判断是否进行故障前数据存储文件a和数据存储文件b的合并保存;若否,不进行任何操作,下步执行步骤s9;若是,执行s801,进行故障前文件数据的合并保存,然后返回下步执行步骤s9;若为假,不进行任何操作,下步执行步骤s9。
57.如图6所示,s801故障前文件数据合并保存:创建并打开数据存储文件d,然后判断
存储文件切换次数,若次数等于0,则数据存储文件b中无数据,将数据存储文件a中的数据复制保存至文件d中;若次数大于0,继续判断数据存储文件标志是a还是b,若为a时,按照先b后a的采集时间顺序将故障前数据复制保存至文件d中;若为b,按照先a后b的采集时间顺序将故障前数据复制保存至文件d中,最后均关闭存储文件a、b和d。
58.s9判断报警标志位是否发生由假至真的值变化,此步骤判断是否发生故障,以获取故障发生时间,用于判断故障后数据存储时间是否到达,以结束数据存储。若是,初始时间t0置为当前时间,然后下步执行步骤s10;若否,不进行任何操作,下步执行步骤s10。
59.s10判断数据存储标志位、报警标志位和故障存储标志位的值,此步骤判断是进行故障前数据存储程序s101还是故障后数据存储程序s102,或不执行任何操作,直接返回s6,s101或s102执行完成后,返回s6,开始新一轮循环。
60.具体如下表:
[0061][0062]
步骤s5中对数据存储标志位、报警标志位和故障存储标志位初始化为假。当测控
系统运行后,启动数据存储并发生故障后,故障存储标志位才可置为真,因此程序执行过程中情况3执行后下个循环即为情况7,在故障后数据存储时间未到时,报警可被复位,报警标志位为假时出现情况5。
[0063]
s101故障前数据存储:
[0064]
如图5所示,s1011判断存储文件标志为a还是b,a时将读取的数据按照需求换算并存储至文件a中,b时将读取的数据按照需求换算并存储至文件b中。
[0065]
s1012获取当前时间,与初始时间t0作差,判断当前存储文件的存储时长是否大于故障前数据存储时长,若小于,当前存储文件的故障前数据存储时长未到,不执行任何操作,下步执行步骤s6;若大于等于,当前存储文件的故障前数据存储时间到,将初始时间t0重置为当前时间,继续执行步骤s1013,判断存储文件切换次数和当前存储文件,为下次故障前数据存储做准备。
[0066]
s1013判断存储文件切换次数是否为0,若为0,存储文件切换次数加1,将数据存储文件标志置为b,下步执行步骤s6;若不为0,存储文件切换次数加1后,继续判断数据存储文件标志是a还是b,当为a时,删除存储文件b中的数据并将数据存储文件标志位置为b;当为b时,删除存储文件a中的数据并将数据存储文件标志位置为a。当前循环故障前数据存储完成,下步执行步骤6。
[0067]
s102故障后数据存储:
[0068]
s1021判断报警存储标志位是否由假变真,如果由假变真,则为故障后首次存储数据(情况3),创建并打开故障后数据存储文件c,并将故障存储标志位置真,下步执行步骤s16,若为真(情况7),不进行任何操作,执行步骤s1022。
[0069]
s1022将读取的数据按照需求换算并存储至文件c中。然后获取当前时间,与初始时间t0作差,判断数据存储时长是否大于设置的故障后数据存储时长,若小于,故障后数据存储时间未到,不进行任何操作,下步执行步骤s6;若大于等于,故障后数据存储时间到,执行步骤s1023,进行故障前后文件数据的合并保存。
[0070]
s1023故障前后文件数据的合并保存:创建并打开存储文件d,判断存储文件切换次数,若为0,则故障前存储文件b中未存储过数据,按照先文件a后文件c的时间顺序将故障前后的数据复制保存至文件d中;若不为0,继续判断故障数据存储标志是a还是b,若为a,按照先文件b后文件a再文件c的时间顺序将故障前后的数据复制保存至文件d中;若为b,按照先文件a后文件b再文件c的数据采集时间顺序将故障前后的数据复制保存至文件d中。最后均关闭存储文件a、b、c和d。
[0071]
s1024将数据存储标志位、报警标志位和故障后数据存储标志位全置假,此轮故障前后数据存储结束。
[0072]
步骤s6~s10为一个循环,按照步骤s1中设置的周期定时循环;若程序执行过程出现错误或停止,将结束定时循环,停止数采卡数据采集。
[0073]
本发明采用多通道多采样的二维数组数据读取模式实现了多通道数据的高速采集,大大降低上位机软件刷新速率。相比多通道单采样的数据读取模式,不存在因上位机软件刷新速率不足引起的数据读取不及时最终导致缓存区溢出,采集数据丢失的风险,也避免了因上位机软件刷新速率高引起的系统资源占用过多,运行卡滞的可能。
[0074]
本发明利用tdms二进制文件存储格式存取速度快,占用内存小,数据文件调用方
便的优点,实现了对原始数据的实时换算存储,解决原来高速采集数据无法实时换算或换算效率低,仅能通过后期数据处理才能实现的问题。
[0075]
本发明提供了一种数据存储方法,满足了测控系统仅保存最近一段时间或故障前后一定时长数据的需求,解决了长时间高速存储数据量过大,后期数据处理不便的问题,提高数据分析效率。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1