无纸记录仪及无纸记录仪数据存储方法.pdf

上传人:xia****o6 文档编号:1007117 上传时间:2018-03-25 格式:PDF 页数:14 大小:860.71KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910247783.2

申请日:

2009.12.31

公开号:

CN101794255A

公开日:

2010.08.04

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 12/06申请日:20091231|||公开

IPC分类号:

G06F12/06

主分类号:

G06F12/06

申请人:

浙江中控自动化仪表有限公司; 中控科技集团有限公司; 浙江大学

发明人:

王为民; 阮麟; 胡燕新; 王自北; 陆丽敏

地址:

310053 浙江省杭州市滨江区六和路309号D区三层(高新区)

优先权:

专利代理机构:

上海汉声知识产权代理有限公司 31236

代理人:

胡晶

PDF下载: PDF下载
内容摘要

一种无纸记录仪及无纸记录仪数据存储方法,该方法包括以下步骤:首先,开机后,对应应用到的记录通道,在RAM索引区中为每一记录通道建立一索引,该索引存储数据起始时间、记录点数、对应数据块起始位置以及记录周期信息;然后将各记录通道的数据存储至RAM数据区中;当RAM数据区存满后,再将RAM数据区中存储的数据按照对应索引记录的数据块起始位置转存至存储器数据区中对应的数据块中,且RAM数据区继续存入新数据,存满后再将数据转存至存储器中,直至关机,完成数据存储。本发明有效解决了现有无纸记录仪上电需填充历史数据、数据偏移大、记录周期必须一致且记录周期改变后已有数据无效的问题。

权利要求书

1: 一种无纸记录仪,其特征在于,包括: 一RAM,包括RAM索引区和RAM数据区,所述RAM索引区为每个记录通道分配大小相等的存储空间,用以存储每一记录通道的索引;所述RAM数据区用以存储各记录通道的实时数据; 一存储器,与所述RAM连接,包括存储器索引区和存储器数据区,所述存储器索引区为每个记录通道分配大小相等的存储空间,用以当RAM索引区存满后,存储RAM索引区中存储的对应记录通道的索引;所述存储器数据区用以当RAM数据区存满后,存储RAM数据区中的数据,记录历史数据;以及, 一微处理器,分别与所述RAM和存储器连接,至少包括若干通道管理单元,每一通道管理单元对应一记录通道,用以管理对应记录通道的索引和数据,其进一步包括: 索引保存管理子单元:用以记录所述RAM索引区和存储器索引区的存储空间信息,并将所述索引由所述RAM索引区转存至所述存储器索引区; 数据保存管理子单元:用以记录所述RAM数据区和存储器数据区的存储空间信息,并将所述数据由所述RAM数据区转存至所述储器数据区。
2: 如权利要求1所述的无纸记录仪,其特征在于,所述存储器数据区包括若干数据块,每个数据块的大小相等。
3: 如权利要求2所述的无纸记录仪,其特征在于,所述微处理器还包括一数据块链接管理单元,所述数据块链接管理单元与所述存储器连接,用以存储所述存储器数据区中各个数据块的位置对应关系以及空闲数据块的起始位置。
4: 如权利要求1所述的无纸记录仪,其特征在于,所述索引用以存储数据起始时间、记录点数、对应数据块起始位置以及记录周期信息。
5: 如权利要求1所述的无纸记录仪,其特征在于,所述无纸记录仪还包括一电池,所述电池与所述RAM连接,用以在掉电时为所述RAM供电。
6: 如权利要求1所述的无纸记录仪,其特征在于,所述存储器为FLASH存储器。
7: 一种无纸记录仪数据存储方法,其特征在于,包括以下步骤: (1)开机后,对应应用到的记录通道,在RAM索引区中为每一记录通道建立一索引,该索引存储数据起始时间、记录点数、对应数据块起始位置以及记录周期信息; (2)将各记录通道的数据存储至RAM数据区中; (3)RAM数据区存满后,将RAM数据区中存储的数据按照对应索引记录的数据块起始位置转存至存储器数据区中对应的数据块中,且RAM数据区继续存入新数据,存满后再将数据转存至存储器中,直至关机,完成数据存储。
8: 如权利要求7所述的无纸记录仪数据存储方法,其特征在于,还包括, (4)RAM索引区存满后,将RAM索引区中存储的索引转存至存储器索引区。
9: 如权利要求7所述的无纸记录仪数据存储方法,其特征在于,步骤(1)记录数据块起始位置进一步包括: A1:判断索引建立前该通道的数据是否存满一个数据块,若数据未存满一个数据块,则记录前一个索引的结束位置为该索引的数据块起始位置;否则,若数据存满一个数据块,进行步骤A2; A2:搜索空闲数据快,若搜索到空闲数据块,则记录该空闲数据块为该索引的数据块起 始位置,否则,执行释放数据块流程; A3:释放数据块完成后,重新搜索空闲数据块,找到空闲数据块后记录该空闲数据块为该索引的数据块起始位置。
10: 如权利要求7所述的无纸记录仪数据存储方法,其特征在于,步骤(3)还包括: B1:数据存满一个数据块后,搜索空闲数据块,若搜索到空闲数据块,则将新数据写入该空闲数据块;否则,执行释放数据块流程; B2:释放数据块完成后,重新搜索空闲数据块,找到空闲数据块后。将新数据写入该空闲数据块。
11: 如权利要求9或10所述的无纸记录仪数据存储方法,其特征在于,步骤A2及步骤B1中释放数据块流程具体包括以下步骤: C1:根据各个记录通道的当前记录周期,按照预先的计算方式计算各个记录通道应该释放的数据块的数量; C2:根据步骤C1的计算结果,释放相应的数据块,并删除或修改各个记录通道管理该些释放掉的数据块的索引,若索引控制的全部数据均被释放则删除该索引;否则,修改索引的数据起始位置和数据数量; C3:修改数据块链接单元,记录新释放的数据块为空闲数据块,并将数据块搜索的起始位置设置为新释放的最靠近数据区起始位置的数据块。
12: 如权利要求8所述的无纸记录仪数据存储方法,其特征在于,步骤(4)中索引的转存以循环的方式进行保存,存储器索引区存满后自动删除最老的索引,存入新索引。

说明书


无纸记录仪及无纸记录仪数据存储方法

    【技术领域】

    本发明涉及工业仪表领域,尤其涉及一种无纸记录仪数据存储方法及无纸记录仪。

    背景技术

    纵观记录仪的发展历程,大致经历了机械有纸记录仪记录仪和无纸记录仪两个发展阶段。1995年以前,基本上是机械式有笔有纸记录仪,该种记录仪通过记录笔在记录纸上绘制曲线,从而达到记录并保存数据的目的。由于其笔头伺服系统复杂,机械式活动部件多,故可靠性较差。同时,机械式记录仪只能进行曲线记录,显示方式单一。并且,其后续数据处理困难,长期运行需要定期更换记录纸和墨水,运行费用高。

    1996年,浙大中控率先向市场推出了JL20系列无纸记录仪。该无纸记录仪采用微处理器、液晶显示屏和半导体存储器。其摒弃了机械式记录仪中使用的记录笔和记录纸,把工业现场的各种需要监视记录的输入信号,通过微处理器进行数据处理,一方面在液晶显示屏上以多种形式的画面显示,另一方面把这些监视信号的数据存放在半导体存储器内,以便在记录仪上直接进行数据和图形查询、翻阅以及打印等操作。并且,无纸记录仪还可带有软磁盘驱动,用户可以对无纸记录仪记录的数据进行拷贝存档,并在上位机上重现历史数据和历史曲线。

    无纸记录仪彻底克服了机械式记录仪所存在的不足,其取代机械式记录仪已成为不争的事实。近年来,随着通讯技术的发展,无纸记录仪的功能也日益丰富。现有无纸记录仪不仅具有丰富的图形画面,具备实时数据、实时曲线、报警信息、历史记录、报表打印等多种功能,还具有支持多通道、支持网络连接、支持USB设备,数据可直接采用优盘备份等优点。另外,现有无纸记录仪广泛采用FLASH存储器,还具有掉电永不丢失数据,稳定性好的优点。然而,随着无纸记录仪的不断发展,传统无纸记录仪的数据存储方法的缺点也日益凸显出来,严重影响着无纸记录仪的工作效率。

    现有无纸记录仪的数据存储过程为:采用RAM和存储器构成一个数据循环,每个工作周期内把所有通道的实时值存入该数据循环,数据首先存入RAM中,RAM存满后数据再由RAM转存至存储器,存储器的存储空间存满后自动清除最早的数据,释放空间,存入新的数据,不断以新的数据替代老数据,实现数据存储。但是,该种方法只记录最新数据的位置,再通过数据个数计算出时间。因此,每次开机时必须对断电时间内的数据进行填充,否则数据无法查找。通常以0或掉电前的值填充断电时间内的数据,而这部分数据是没有意义的,造成了数据空间的浪费。并且,由于掉电和上电时系统处于不稳定的状态,对于掉电时间点和上电时间点的数据是否需要进行记录没有明确的标准,同时,填充过程本身耗费的时间段内的数据也要再次填充,导致每次掉电和上电时可能会多一个数据或少一个数据,而现有方法中所有存储的数据构成一个整体,因此,反复掉电会导致整体数据的偏移,影响数据的准确性。

    另外,现有方法需要预先设定所有通道的记录周期,并且所有通道的记录周期一致。而无纸记录仪的通道很多,各个通道可能会同时记录流量、压力等变化较快的信号和温度、液位等变化较慢的信号,各通道之间的记录周期一致会造成记录空间的浪费或者数据丢失。并且,一旦记录周期改变,会导致已有的数据无效。

    【发明内容】

    针对上述缺陷,本发明的目的在于提供一种无纸记录仪,以解决现有技术中无纸记录仪开机需填充数据,浪费存储空间、容易产生数据偏移,准确性差以及记录周期需一致且记录周期不可变的技术问题。

    本发明的另一目的在于提供一种无纸记录仪数据存储方法,以解决现有技术中无纸记录仪开机需填充数据,浪费存储空间、容易产生数据偏移,准确性差以及记录周期需一致且记录周期不可变的技术问题。

    为达到上述目的,本发明提供一种无纸记录仪,包括:

    一RAM,包括RAM索引区和RAM数据区,RAM索引区为每个记录通道分配大小相等的存储空间,用以存储每一记录通道的索引;RAM数据区用以存储各记录通道的实时数据;

    一存储器,与RAM连接,包括存储器索引区和存储器数据区,存储器索引区为每个记录通道分配大小相等的存储空间,用以当RAM索引区存满后,存储RAM索引区中存储的对应记录通道的索引;存储器数据区用以当RAM数据区存满后,存储RAM数据区中地数据,记录历史数据;以及,

    一微处理器,分别与RAM和存储器连接,包括若干通道管理单元,每一通道管理单元对应一记录通道,用以管理对应记录通道的索引和数据,其进一步包括:

    索引保存管理子单元:用以记录RAM索引区和存储器索引区的存储空间信息,并将索引由RAM索引区转存至储器索引区;

    数据保存管理子单元:用以记录RAM数据区和存储器数据区的存储空间信息,并将数据由RAM数据区转存至储器数据区。

    依照本发明较佳实施例所述的无纸记录仪,其存储器数据区包括若干数据块,每个数据块的大小相等。

    依照本发明较佳实施例所述的无纸记录仪,其微处理器还包括一数据块链接管理单元,数据块链接管理单元与存储器连接,用以存储存储器数据区中各个数据块的关联关系以及空闲数据块起始位置。

    依照本发明较佳实施例所述的无纸记录仪,其索引用以存储数据起始时间、记录点数、对应数据块起始位置以及记录周期信息。

    依照本发明较佳实施例所述的无纸记录仪,其无纸记录仪还包括一电池,该电池与RAM连接,用以在掉电时为RAM供电。

    依照本发明较佳实施例所述的无纸记录仪,其存储器为FLASH存储器。

    本发明还提供一种无纸记录仪数据存储方法,包括以下步骤:

    (1)开机后,对应应用到的记录通道,在RAM索引区中为每一记录通道建立一索引,该索引存储数据起始时间、记录点数、对应数据块起始位置以及记录周期信息;

    (2)将各记录通道的数据存储至RAM数据区中;

    (3)RAM数据区存满后,将RAM数据区中存储的数据按照对应索引记录的数据块起始位置转存至存储器数据区中对应的数据块中,且RAM数据区继续存入新数据,存满后再将数据转存至存储器中,直至关机,完成数据存储。

    依照本发明较佳实施例所述的无纸记录仪数据存储方法,还包括,

    (4)RAM索引区存满后,将RAM索引区中存储的索引转存至存储器索引区。

    依照本发明较佳实施例所述的无纸记录仪数据存储方法,步骤(1)记录数据块起始位置进一步包括:

    A1:判断索引建立前该通道的数据是否存满一个数据块,若数据未存满一个数据块,则记录前一个索引的结束位置为该索引的数据块起始位置;否则,若数据存满一个数据块,进行步骤A2;

    A2:搜索空闲数据快,若搜索到空闲数据块,则记录该空闲数据块为该索引的数据块起始位置,否则,执行释放数据块流程;

    A3:释放数据块完成后,重新搜索空闲数据块,找到空闲数据块后记录该空闲数据块为该索引的数据块起始位置。

    依照本发明较佳实施例所述的无纸记录仪数据存储方法,步骤(3)还包括:

    B1:数据存满一个数据块后,搜索空闲数据块,若搜索到空闲数据块,则将新数据写入该空闲数据块;否则,执行释放数据块流程;

    B2:释放数据块完成后,重新搜索空闲数据块,找到空闲数据块后。将新数据写入该空闲数据块。

    依照本发明较佳实施例所述的无纸记录仪数据存储方法,步骤A2及步骤B1中释放数据块流程具体包括以下步骤:

    C1:根据各个记录通道的当前记录周期,按照预先的计算方式计算各个记录通道应该释放的数据块的数量;

    C2:根据步骤C1的计算结果,释放相应的数据块,并删除或修改各个记录通道管理该些释放掉的数据块的索引,若索引控制的全部数据均被释放则删除该索引;否则,修改索引的数据起始位置和数据数量;

    C3:修改数据块链接单元,记录新释放的数据块为空闲数据块,并将数据块搜索的起始位置设置为新释放的最靠近数据区起始位置的数据块。

    依照本发明较佳实施例所述的无纸记录仪数据存储方法,步骤(4)中索引的转存以循环的方式进行保存,存储器索引区存满后自动删除最老的索引,存入新索引。

    本发明引入索引对无纸记录仪的数据进行管理,每个索引记录着无纸记录仪各记录通道在每个工作周期内数据的记录周期、对应数据块起始位置、起始时间以及数据个数等信息。每个索引和与其对应的数据组成一个文件,记录相应的记录通道在一个工作周期内记录的数据。本发明将每个记录通道在一个工作周期内记录的数据以文件的形式单独进行存储,当重新上电或记录周期改变以后,会为对应记录通道新建一个索引。因此,每一段历史数据就是一个单独的文件,历史数据通过索引进行查找,仪表重新上电后不必再填充历史数据,有效节省了存储空间。并且,仪表掉电上电引起的数据误差只作用在一个索引中,不会引起所有数据的偏移,准确度高。另外,每个记录通道分别建立索引,解决了现有技术中所有记录通道的记录周期必须一致的问题,并且,记录周期改变后重新建立新的索引即可,已有的数据仍然有效。

    【附图说明】

    图1为本发明无纸记录仪的结构原理示意图;

    图2为本发明实施例的FLASH存储器的结构原理示意图;

    图3为本发明无纸记录仪数据存储方法的系统原理图。

    【具体实施方式】

    以下结合附图,具体说明本发明。

    请参阅图1,其为本发明无纸记录仪的结构原理示意图。该无纸记录仪包括RAM10、FLASH存储器20、微处理器30和电池40。其中,

    RAM10包括RAM索引区101和RAM数据区102,RAM索引区101为每个记录通道分配大小相等的存储空间,用以存储每一记录通道的索引。RAM数据区102用以存储各记录通道的实时数据。

    FLASH存储器20与RAM10连接,用以存储最终的索引和历史数据。如图2所示,FLASH存储器20包括FLASH存储器索引区201和FLASH存储器数据区202。FLASH存储器索引区201用以当RAM索引区101存满后,存储RAM索引区101中存储的对应记录通道的索引。FLASH存储器索引区201对应无纸记录仪的记录通道划分了多个通道,通道1、通道2、……通道n,并且为每个记录通道分配了大小相等的存储空间,每个通道包括数量相等的数据块,每个数据块的大小相等。FLASH存储器数据区202用以当RAM数据区102存满后,存储RAM数据区102中的数据,记录历史数据。FLASH存储器数据区202包括多个数据块,且每个数据块的大小相等。

    在本实例中,FLASH存储器索引区201的存储空间为静态划分,为每个通道分配相同大小的连续空间,且最小存储单位为数据块。而考虑到记录周期的不同和改变,FLASH存储器数据区202的存储空间为动态划分,需要时动态申请,不需要时动态释放,其最小存储单位也为数据块。

    微处理器30分别与RAM10和FLASH存储器20连接,包括若干通道管理单元301和数据块链接管理单元302。每一通道管理单元301对应一记录通道,用以管理对应记录通道的索引和数据,其进一步包括:

    索引保存管理子单元3011:用以记录RAM索引区和储器索引区的存储空间信息,并将索引由RAM索引区转存至储器索引区。

    数据保存管理子单元3012:用以记录RAM数据区和储器数据区的存储空间信息,并将数据由RAM数据区转存至储器数据区。

    数据块链接管理单元302与FLASH存储器20连接,用以存储FLASH存储器数据区202中各个数据块的位置对应关系以及空闲数据块的数量。

    在本实例中,为了提高数据管理效率,本发明在RAM中分别为每个记录通道的索引和历史数据开辟了一定大小的缓存,即RAM索引区和RAM数据区,添加索引或者数据时,先往RAM索引区和RAM数据区中添加,当RAM索引区或RAM数据区存满后,通道管理单元会将RAM索引区或RAM数据区的数据保存至FLASH存储器索引区或FLASH存储器数据区中,并将余下的数据复制到缓存起始位置。但是,在本实例中,需要说明的是,本发明并不限定必须在RAM中划分RAM索引区和RAM数据区,在实际应用中,RAM也可以不进行分区,索引和历史数据直接进行存储。因此,以上采用在RAM中划分RAM索引区和RAM数据区只是一个实例,并不用于限定本发明。

    在本实例中,采用了FLASH存储器。但是,需要说明的是,本发明并非只限于FLASH存储器,在实际应用中,本发明的无纸记录仪可采用现有的任意一种存储器,以上采用FLASH存储器只是一个实例,并不用于限定本发明。另外,为了使RAM中存储的数据在掉电期间不会丢失,本发明还设置了电池为RAM供电,但是,本发明并不限定必须要为RAM配备电池,在实际应用中,可任意设置是否为RAM配备电池,以上采用设置电池为RAM供电只是一个实例,并不用于限定本发明。

    本发明的无纸记录仪在每次上电或记录周期改变后都会建立一个新的索引,索引的数据结构如下:

    Struct HisIndexSt

    {

      U32 HisChStartTime;//索引控制的数据的开始时间,和仪表时间的偏差值

       HsChNum;//索引控制的记录点数

      U16 HisChFirstBlock    //对应数据块的起始块的序号

      U16 HisChFirstOffset   //对应数据块在起始块的偏移(字节)

      U8 HisChCycle;     //索引对应的记录周期

      U8 HisChType;   //精简/复杂

      U16 IndexCRC;   //索引 CRC

    }

    由上述索引的数据结构可以看出,索引记录了数据起始时间、记录点数、对应数据块起始位置以及记录周期等信息,其中,起始时间信息包括数据的开始时间和仪表时间的偏差值,起始位置信息包括对应数据块的起始块的序号和数据块在起始块的偏移,每一个索引对应一段历史数据,因此,本发明通过索引实现了以文件的形式对数据进行管理,避免了现有无纸记录仪的各种缺陷。

    本发明对应每个记录通道设置有一个相应的通道管理单元进行数据管理,每个通道管理单元包括索引保存管理子单元和数据保存管理子单元分别管理索引的保存和数据的保存,并且,通道管理单元还记录首索引(时间最早的索引)信息。在本发明的较佳实施例中,索引保存管理子单元和数据保存管理子单元的结构相同。以下分别为本发明的通道管理单元以及索引保存管理子单元与数据保存管理子单元的数据结构:

    通道管理单元:

    Struct HisChCU

    {

          Struct RecordSaveSt IndexCtrl;     //索引保存控制单元

          Struct RecordSaveSt DataCtrl;  //数据保存控制单元

          Struct HisIndexSt   FirstIndexItem;//通道首索引

    };

    索引保存管理子单元与数据保存管理子单元:

    Struct RecordSaveSt

    {

         U32 BufSize;           //缓存的大小

         U32 ItemSize;          //记录的大小

         Void*pDataBuf;         //缓存的指针

         U32 SaveCur_Ram;//新记录的写入位置,也指示缓存中的记录数量

         U32 SaveCur_Flash;     //下次转存的目标FLASH页

         U32 StartRecordPos_Flash;  //记录在Flash中的起始位置

         U32 RecordNum_Flash;       //Flash中的记录数量

         U32 TotalRecordNum;    //记录的总数量

        U8 IsRecordCopyToFlash;//缓存中记录是否被复制转存到Flash的标志位

    };

    通过上述的数据结构可以看出,通道管理单元分别通过索引保存管理子单元和数据保存管理子单元记录RAM索引区和FLASH储器索引区的存储空间信息以及RAM数据区和FLASH储器数据区的存储空间信息,并将索引和数据分别由RAM索引区和RAM数据区转存至FLASH储器索引区和FLASH储器数据区,从而实现对索引和数据的管理。通过通道管理单元就可以实现数据的添加、释放、查找等操作。

    为了实现对FLASH存储器数据区的动态管理,微处理器还设置有数据块链接管理单元,通过数据块链接管理单元将FLASH存储器中的数据区以块为单位关联在一起,提高查找、释放的效率。

    数据块链接管理单元:

    Struct FLASHCU

    {

        Struct FLASHLINK FlashLinkTab[BLOCKNUM];

        U32 SearchFreeBlockPos; //搜索空闲BLOCK(数据块)的起始位置

    };

    Struct FLASHLINK

    {

        U16 Last;

        U16 Next;

    };

    本发明通过上述的数据块链接管理单元来控制FLASH存储器数据区资源的申请和释放。FLASH存储器数据区是以块为单位申请和释放的。该数据块链接管理单元为每个FLASH存储器数据区的数据块分配一个4字节的空间(struct FLASHLINK),记录该数据块的前后数据块。并且,SearchFreeBlockPos记录当前的空闲的数据块的起始位置,每申请一个数据块,SearchFreeBlockPos就增加1,当空闲数据块被分配完后,根据通道的记录周期大小,不同通道释放不同的数据块数目,这样可以均匀使用各个数据块,延长仪表的使用时间。在上述数据块链接管理单元的数据结构中,当Last和Next同时为0时,表示该BLOCK空闲;Next为0xFFFF时,表示当前BLOCK是最后的BLOCK;Last为0xFFFF时,表示当前BLOCK是最早的BLOCK。

    请参阅图3,本发明还提供了一种无纸记录仪数据存储方法,包括以下步骤:

    S11:开机后,对应应用到的记录通道,在RAM索引区中为每一记录通道建立一索引,该索引存储数据起始时间、记录点数、对应数据块起始位置以及记录周期信息。

    该步骤中记录数据块起始位置进一步包括:

    A1:判断索引建立前该通道的数据是否存满一个数据块,若数据未存满一个数据块,则记录前一个索引的结束位置为该索引的数据块起始位置;否则,若数据存满一个数据块,进行步骤A2。

    A2:搜索空闲数据快,若搜索到空闲数据块,则记录该空闲数据块为该索引的数据块起始位置,否则,执行释放数据块流程。

    A3:释放数据块完成后,重新搜索空闲数据块,找到空闲数据块后记录该空闲数据块为该索引的数据块起始位置。

    S12:将各记录通道的数据存储至RAM数据区中。

    S13:RAM数据区存满后,将RAM数据区中存储的数据按照对应索引记录的数据块起始位置转存至存储器数据区中对应的数据块中,且RAM数据区继续存入新数据,存满后再将数据转存至存储器中,直至关机,完成数据存储。

    在该步骤中,当数据存满一个数据块后又有新的数据写入时,需要搜索空闲数据块,申请一个空闲数据块,以将新数据写入,具体包括:

    B1:数据存满一个数据块后,搜索空闲数据块,若搜索到空闲数据块,则将新数据写入该空闲数据块;否则,执行释放数据块流程。

    B2:释放数据块完成后,重新搜索空闲数据块,找到空闲数据块后。将新数据写入该空闲数据块。

    在上述的步骤S11和步骤S13中,在建立新索引或数据存满一个数据块又有新的数据写入时,需要进行数据块搜索,申请空闲数据块,即步骤A2和步骤B1,若能够搜索到空闲的数据块,就成功的完成数据块申请,此时,数据块链接单元也要进行相应的修改,将该空闲数据块记录为非空闲数据块。例如,一个记录通道的数据分别记录在数据块0和数据块21中,数据块0是起始数据块,数据块0指向数据块21,数据块21指向数据块43,数据块43是最后一个数据块,假设此时SearchFreeBlockPos指向43,那么申请一个空闲数据块后,SearchFreeBlockPos便指向数据块44,将数据块43被记录为非空闲数据块且指向44。若搜索不到空闲的数据块,申请空闲数据块失败时,则执行释放数据块流程,释放数据块具体包括以下步骤:

    C1:根据各个记录通道的当前记录周期,按照预先的计算方式计算各个记录通道应该释放的数据块的数量。

    本发明的数据块释放计算方式遵循以下原则:

    (1)释放的总数据块数量必须大于一。

    (2)当前记录周期快的记录通道多释放,当前记录周期慢的通道少释放。

    (3)释放结束后,每个记录通道仍应拥有至少一个数据块。

    (4)当原则(1)和原则(3)冲突时,按各个记录通道占用的数据块的数量释放,占用多的多释放,占用少的少释放。

    C2:根据步骤C1的计算结果,释放相应的数据块,并删除或修改各个记录通道管理该些释放掉的数据块的索引,若索引控制的全部数据均被释放则删除该索引;否则,修改索引的数据起始位置和数据数量。

    C3:修改数据块链接单元,记录新释放的数据块为空闲数据块,并将数据块搜索的起始位置设置为新释放的最靠近数据区起始位置的数据块。

    在本发明的较佳实施例中,为了防止申请数据块失败的情况,本发明设置存储器数据区始终保证留有N个空闲数据块,当空闲数据块不足N个时,就进行数据块释放。

    S14:RAM索引区存满后,将RAM索引区中存储的索引转存至存储器索引区。

    该步骤中,索引的转存以循环的方式进行保存,存储器索引区存满后自动删除最老的索引,存入新索引。具体为:

    以每个通道设计最大存储10个数据块存储索引为例,实际共需开辟11个数据块的存储器空间。当存满10个数据块后,数据块1中的数据将依次过期,新的索引数据添加到数据块11中。当数据块11也填满后,数据块1的所有索引都过期,数据块1将被擦除,数据块2的数据将依次过期。

    在上述的步骤中,为了便于说明,设定了步骤S13与步骤S14的先后顺序。但是,需要说明的是,本发明的步骤S13与步骤S14并不存在绝对的先后顺序,在实际存储时,RAM索引区存满或RAM数据区存满后,就进行相应的转存,因此,以上设定的步骤S13和步骤S14的先后顺序只是一个实例,并不用于限定本发明。另外,还需要说明的是,以上的步骤适用于RAM配备有电池,掉电后RAM中保存的数据不会丢失的情况。在没有对RAM配备电池时,在每次掉电前不论RAM的存储是否已满,都要先将RAM中的数据存储到存储器中,并且,下一次开机后,要先将关机时存储在存储器中的数据恢复至RAM中,再进行以上的步骤。

    本发明的方法通过引入索引对无纸记录仪的数据进行管理,其可适用于各种类型的存储器。不过,本发明的方法若借助于FLASH存储器的数据块和数据页的物理结构更能实现更佳的效果,因此,本发明的方法应用于FLASH存储器中时效率更高。

    本发明通过通道号和数据时间就能进行数据查找。查找数据时,首先根据通道号在对应通道内找到最老的索引位置,之后遍历索引,查找与时间匹配的索引,若未能找到与时间匹配的索引,说明该时间的数据已被新数据替换掉,不存在该数据,退出查找;若找到与时间匹配的索引,则读取该索引记录的记录周期、数据数量等信息得到存储该索引对应的数据的数据块的起始块序号,计算出要查找的数据的位置;之后继续判断该数据是否存储在一个数据块内,若存储在一个数据块内,直接读出数据,完成查找;否则,先读出当前数据块中的数据,然后通过数据块链接管理单元查找到下一块存储该数据的数据块并读出数据,如此反复直到读完所需数据或无数据可读,完成数据查找。

    在实际数据查找过程中,有时在查找到某个时间点的数据后,还需要查看该数据附近相邻数据的情况,此时,需要进行向前或向后查找。本发明进行向前或向后查看时首先根据查看的方向和数据数量n,将当前的定位位置向前或向后移动n个数据位置,若定位位置移出当前数据块,则通过数据块链接单元找到下一块或上一块数据块,并读出数据,完成数据查看;若定位位置移出至最新或最老数据块,表示该方向已经没有数据可供察看,则停止前向或后向的查找。

    本发明在进行向前或向后查找时,无需重新通过时间定位,根据需要查看的数据数量和查看的方向就可进行查找定位,查找方便。

    本发明引入索引对无纸记录仪的数据进行管理,每个索引记录着无纸记录仪各记录通道在每个工作周期内数据的记录周期、对应数据块起始位置、起始时间以及数据个数等信息。每个索引和与其对应的数据组成一个文件,记录相应的记录通道在一个工作周期内记录的数据。本发明将每个记录通道在一个工作周期内记录的数据以文件的形式单独进行存储,当重新上电或记录周期改变以后,会为对应记录通道新建一个索引。因此,每一段历史数据就是一个单独的文件,历史数据通过索引进行查找,仪表重新上电后不必再填充历史数据,有效节省了存储空间。并且,仪表掉电上电引起的数据误差只作用在一个索引中,不会引起所有数据的偏移,准确度高。另外,每个记录通道分别建立索引,解决了现有技术中所有记录通道的记录周期必须一致的问题,并且,记录周期改变后重新建立新的索引即可,已有的数据仍然有效。

    以上公开的仅为本发明的几个具体实施例,但本发明并非局限于此,任何本领域的技术人员能思之的变化,都应落在本发明的保护范围内。

无纸记录仪及无纸记录仪数据存储方法.pdf_第1页
第1页 / 共14页
无纸记录仪及无纸记录仪数据存储方法.pdf_第2页
第2页 / 共14页
无纸记录仪及无纸记录仪数据存储方法.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《无纸记录仪及无纸记录仪数据存储方法.pdf》由会员分享,可在线阅读,更多相关《无纸记录仪及无纸记录仪数据存储方法.pdf(14页珍藏版)》请在专利查询网上搜索。

一种无纸记录仪及无纸记录仪数据存储方法,该方法包括以下步骤:首先,开机后,对应应用到的记录通道,在RAM索引区中为每一记录通道建立一索引,该索引存储数据起始时间、记录点数、对应数据块起始位置以及记录周期信息;然后将各记录通道的数据存储至RAM数据区中;当RAM数据区存满后,再将RAM数据区中存储的数据按照对应索引记录的数据块起始位置转存至存储器数据区中对应的数据块中,且RAM数据区继续存入新数据,。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1