收集和检索时间序列、实时和非实时数据的方法和系统 【相关申请的交叉引用】
本申请要求2001年6月22日提交的美国临时专利申请60/300,172的利益,在此完整包括其内容,以供参考。
【发明领域】
本发明涉及数据储存技术,更特别地,设计收集和检索多个不同的数据源所产生的数据。
【发明背景】
工业越来越依赖数据采集和控制系统以在降低它们的费用时,改善执行工业过程的效率。当多个传感器测量工业过程的各方面并定期地将它们的测量结果汇报给数据收集和控制系统时,数据采集就开始了。单词“测量”应该广义地解释:传感器产生的“测量”可以是,例如,等待船运线上包裹的详细目录或者工厂房间的照片。复杂的软件检测输入的数据、产生状态报告并在许多情况下通过将命令发送到改变工业过程如何运行的传动装置来作出反应。传感器所产生的数据也允许操作者对变化着地外部条件作出响应来适应该过程,捕捉初期的设备故障,按照要求启用或停用设备。数据采集和控制系统的一个简单和熟悉的例子是恒温箱:温度计测量当前的空气温度,测量值与所需的温度范围相比较,并且,如果需要的话,发送命令到加热器或空调以实际的空气温度调节到所需的范围。
当然,许多工业过程比这个简单的例子要复杂得多。通过增加控制软件的复杂程度和通过增加数据传感器和传动装置的数量来控制增加的过程复杂性。有成千上万个传感器监控多个阶段过程的所有方面是并不是没有听说过的。这些传感器有各种类型以对该过程的各种各样的特性进行报告。它们的输出在它们测量值的意义中,在为每个测量值发送的数据的量中,在测量的频率中类似地也是各种各样的。至于后者,为了准确和快速地启动,这些传感器中的一些每秒钟测一次或几次。当与成千上万个传感器并联时,这样的结果使如此多的数据流向控制系统,以至于需要复杂的数据管理技术。一个当前流行的技术是“数据流”。在此,输入的数据按到达时间顺序立即被储存在一个或多个数据文件中。按时间顺序储存数据允许控制系统在选择的时间段快速地访问与过程的状态有关的数据,并作相应的分析。
不过,当前的数据流技术通过牺牲灵活性来获得效率。由此产生的第一个问题的起因是复杂的工业过程与其它过程及处理环境之间的相互关系。这种关系本身可能是非常复杂和可能经常变化。为了适应变化,操作者将频繁地增加、移动或去除传感器并将传感器的输出集成到控制系统。因为当前的数据流技术是对有效地管理大量的、不间断的数据流进行优化的,它们经常无法很容易地适应配置的变化。确实,一些数据采集和控制系统必须完全关闭来使它们重新适合新的或不同的传感器和传动装置。由于工业过程依赖于它的数据采集和控制系统,并且没有它无法可靠地运行,所以关闭该系统涉及将整个工业过程关闭,那是成本很高的。这样一来,数据流有限的灵活性经常阻碍操作者快速地重新配置,并阻碍了容易地利用数据采集技术的发展。
数据流的有关问题来源于大规模系统所获得的各种类型的数据。当前的数据流技术并不能方便地处理所谓的“非实时数据”。上述类型的传感器是“实时”进行测量的。例如,在下午12:34:56,水平传感器记录储水池的水平面。产生的测量值,水平面,与测量值采集的确切时间有关。与以下的非实时数据的例子比较,在下午3:00:00,技术人员将收集杯浸到大桶中并取出桶的内容的样本。这些内容是可以进行实验室分析的,实验室分析对于实时传感器来说执行过于复杂,或者很少执行这样的分析以至于使用自动化实时传感器在成本上不合算。在任何情况下,技术人员将样本拿到实验室并进行分析。分析的结果直到下午4:30:00才得到,此时技术人员将结果输入到数据采集系统。那些结果与桶在下午4:30:00的状态无关,而与样本在下午3:00:00时的提取时间有关。传统的数据流不能很容易地用在“相关时间”(即,在下午3:00:00)处的结果附近产生的实时数据备份并储存分析结果。相反,数据流在可获得分析结果时储存它们,与在下午4:30处产生的实时数据一起储存。当天较晚时,控制系统试图分析在下午3:00:00时过程的状态,有可能丢失实验室分析的结果,因为这些结果没有按时间序列与实时数据点一起储存。分析将变得更困难,并且非实时数据点的值因此大大地减少了。
所需要的是储存实时和非实时数据的一种方法,此方法允许增加或去除新的数据源,并允许检索实时和非实时数据点用于以时间坐标方式进行的分析。
发明概要
鉴于上述说明,本发明提供数据收集和检索系统,该系统将实时和非实时数据源产生的数据放入并行的“流”或数据文档。通过在一个或几个数据文档中储存实时数据点与时间标志而在其它的数据文档中储存非实时数据点与时间标志,保持了数据流的优点。这些文件形成了并行的数据流。并行的流互相有关并与特殊的监控时段有关。为了访问与某一特殊时间段有关的数据,以坐标的方式根据它们的时间标志,检索来自与时间段有关的并行流的数据。
实时数据点用与它们的数据收集时间来标上时间标志。为了使数据储存和检索有效,只要数据点一到达数据收集系统,就以时间顺序来储存这些数据点。非实时数据点用与它们的相关时间来标上时间标志,而不是使用数据点到达数据收集系统的有可能更晚的时间。非实时数据点以时间顺序储存在它们自己的数据文档中,序列时间是相关时间而不是收集时间。因为非实时数据点通常远远少于实时数据点,数据流的效率和限制不需要应用到非实时数据文件中。这样,在非实时数据流中支持在相关的恰当时间插入数据点是切实可行的。
在检索时,操作者使用头文件来访问给定监控时段的数据。通过引用包含与监控时段有关的数据点的数据流,这些头文件使得从多个并行数据流中协调检索数据很容易。并行数据流文档中的时间标记允许几个数据点合并到一个协调的、时间顺序数据流以用于分析。头文件甚至可以引用外部数据库,这样它的数据可以作为并行数据流一样来处理,并与过程监控数据合并。
并行数据流数据收集和检索技术允许操作者不关闭正在监控的过程而增加或删除数据源。当增加新的源时,它的数据,无论是实时或非实时的,也增加到流入各种数据文件的数据流中,而不打断现有的流。操作者也可以包含其它的并行流,它们包含过程监控数据的多个版本。
并行流框架在流内容中支持很高的灵活性。例如,测试可以显示传感器已经产生与正确值有一致的偏差的测量值。并不是返回并修正该故障传感器产生的所有数据点,而是产生修正因子的新并行流。数据分析程序将从原先的数据流中的故障传感器的读数与新数据流的几个修正因子结合起来而产生所修正的结果。
附图简述
如附属的权利要求书将阐述的,本发明特别是与本发明与它的目标和优点一起的几个特征最好用以下的详细描述和附图一起加以理解:
图1是典型的工业过程,在此是极大简化的造纸过程的方框图;
图2是向图1的典型的工业过程增加数据采集和控制系统的方框图;
图3a和3b一起构成用来收集和储存过程数据的典型方法的流程图;及
图4a和4b一起构成用来取回和分析过程数据的典型方法的流程图。
发明的详细说明
对于附图,其中相似的引用编号是指相似的元件,本发明是作为实现在合适的计算环境中来展示的。以下的描述基于本发明的实施例,并对于此处未明确说明的其它替代实施例,这些实施例不应作为对本发明的限制。
在以下的说明中,发明的说明是参考由一个或几个计算机进行的操作的动作和符号表示,除非另外表示。应理解,这样的动作和操作,有时是指正由计算机执行,包括计算机的处理单元以结构化的形式进行电子信号的处理。这样的处理转换数据或者将在计算机的存储系统的某些位置维护数据。它重新配置计算机,或以熟练掌握技术的人所理解的方式改变计算机的操作。在其中维护数据的数据结构是储存器中的物理位置,它具有数据格式所指定的特定属性。不过,虽然在上述上下文中对本发明进行说明,这并不意味着是一种限制,如掌握技术的人认识的那样,在此说明的各种动作和操作也可以用硬件实现。
为了对本发明进行说明,图1以非常简单的形式说明工业过程。注意本发明的方法可以应用在非工业设置中,并且可以使用本发明的方法而不考虑进入控制系统的数据的意义。图1的造纸过程图1是从纸浆系统100开始,将树转换成在水中的木纤维浆。取到木头、变成纸浆的纤维、提炼纤维和控制所产生纸浆的参数的过程是已知技术,并包括在方框100中。纸浆通过管道到达比例阀102。比例阀102控制来自纸浆系统100的纸浆和来自纸浆白水收集箱104的所回收纸浆的混合比例。混合物被发送到混合储存箱106,然后到达造纸机108。纸浆到达造纸机108的不断移动的筛孔传送带或“丝网”上面,然后形成一个垫子。带有一些纤维的多余的水从垫子上移去,然后垫子就成为纸。多余的水和纤维(水流110)掉到造纸机丝网坑112,然后抽到纸浆白水收集箱104。从那儿,水和纸浆回收到纸浆系统100中去。
造纸机108产生的纸张的质量大部分是由来自于混合储存箱106的输入纸浆的特性确定的。在图1的极大地简化的例子中,输入纸浆是由改变混合物来控制的,这由比例阀102所设置。
图2在图1中增加几个过程传感器(或者“数据源”)和传动装置。计算装置200接收来自传感器的对分析和控制造纸机108生产纸张的质量有用的测量值。为清楚起见,计算装置200在图2中被描述为个人计算机,但是它的功能可以在任何控制技术上实现,包括服务器、微处理器系统、基于微处理器的系统、小型机、大型机和包括任何上述系统或装置的分布式计算环境。
图2示出了两个实时数据源:数据源202测量在混合储存箱106中纸浆的水平,数据源204测量该纸浆的粘稠度。这些实时测量值被发送到计算装置200,计算机装置200将它们储存在实时数据文件212中,用数据收集的时间对其做上时间标记。显示了非实时数据源:数据源206产生纸张质量的测量值,纸张的孔隙率。为了测量孔隙率,技术人员从造纸机108中取出纸张的一小块小样本,在实验室中分析样本,然后将实验室结果输入到计算装置200。该结果储存在非实时数据文件214中,用取样本的时间,而不是可能更后面的可以得到实验室分析结果的时间对其做上时间标记。
除了储存由数据源202、204、206产生的测量值外,计算装置200根据实时测量值运行预测模型,将测得的特性与为每个特性所设置的所需要的值的范围相比较。(通常,非实时测量值是不可能被预测模型及时使用的)。为了将特性保持在它们所需要的值的范围内,该模型预测调整工业过程的一个或更多工作参数对特性的影响。然后,该模型控制传动装置按照它的预测调整工作参数。在图2的简化的例子中,预测性的模式可以调整两个工作参数。经过传动装置路径208,预测模型控制来自纸浆系统100和来自纸浆白水收集箱104的纸浆的比例。造纸机108的速度通过传动装置路径210来控制。在实际的造纸工厂中,预测模型可以响应于实时和非实时的其它数据源(也许在数目上是成千上万的),并且可以调整与图2中显示所不同的工作参数,但是这两个实时数据源(混合储存箱水平和混合储存箱粘稠度)和两个可调整的参数(纸浆比例和造纸机速度)用于解说的目的。
了解图1和2的示范性的过程环境后,现在请看图3a和3b。这些图形示出了本发明的方法被用来收集和储存数据时的实施例。为了说明,图3a和3b的流程图用无限循环中连续的步骤示出了该方法的几个方面。在某些实施例中,图3a和3b的“步骤”可以同时发生,连续发生,或者某种联合的形式。可能某些步骤比其它的更经常地被执行,而某些步骤可能根本不会被执行。
该方法在步骤300处开始执行。运行在计算装置200的数据收集器接收来自实时数据源的测量值。数据源在它们产生多少数据,在它们产生数据的类型,和它们产生数据的频度这些方面是不同的。每个输入的数据包在步骤302以数据收集的时间做上时间标记。许多复杂的数据源将时间标记与测量值一起发送。其它的源,特别是较早的,不提供时间标记,这样数据收集器以接收测量值的时间将输入做上时间标记。
实际的工业过程环境产生很多的数据输入,使得使用非常有效的数据储存技术,例如数据流,才能赶上这样大的数据流量。在步骤304,标有时间标记的实时数据输入被储存在一个或几个实时数据文件212中。在某些实施例中,每个数据文件212专门用来从一个数据传感器或一组相关的数据传感器中接收数据。其它的实施例在一个数据文件212中储存进入的所有实时数据输入。当数据文件212包含来自单个数据源的数据时,数据文件212的名称或头通常表明该数据源。对数据文件212包含来自几个数据源的数据时,则使用某种方法将每个数据输入与它的数据源相关联。这可以用在文件中伴随有特殊的记录或者通过在每个数据输入中包括数据源字段来实现。在任何情况下,通常以它们到达数据收集器的次序来尽可能快地将输入储存。
步骤306展示一种选择,它可以提高实时数据输入的储存和检索的效率。定期地,如每分钟一次,将特殊的输入写入每个数据文件212。该特殊输入称为“抽点”且至少包含一个时间标志。然后将该实时数据输入用自从前面最近的抽点输入之后经过的时间(称为“时间增量”)做上时间标记。该技术允许在每个实时数据输入中为时间标记有一个较小的数据字段,因为该字段仅需要储存时间增量,经常不超过一分钟,而不是整个日期和时间。当时间标记精确到毫秒和当每秒写入几百个数据输入时,该技术节省了巨大的储存空间。
抽点输入可以适用于其后的所有数据输入(一直到下一次抽点)或者特定于来自特殊数据源的数据输入。在后一种情况下,抽点输入可以包含数据值。这仅仅是在写入抽点时从数据源收到的最近的值。
步骤308类似于步骤300,除了在此接收到非实时数据。这些数据输入通常来自于实验室分析。步骤310用它们的“相关时间”也就是过程中它们测量的时间将输入z做上时间标记。例如,从造纸机108中提取样本以进行接下来的实验室分析的这个时间。
这些数据被称为“非实时的”,因为在样本提取的时间和当可以输入结果到数据收集器的时间之间有延迟。这个延迟阻止了这些输入插入到在步骤34写入的实时数据文件212中的正确的位置。在步骤304中处理巨大数量的实时数据输入中使用的高度有效的数据储存技术不允许“备份”实时数据文件212以在它们的相关时间插入非实时数据输入。相反,图3b的步骤312在它们自己的数据文件214中储存非实时数据输入。就像对实时数据,数据收集系统可以选择将非实时数据储存在一个或几个文件214中,选择是根据效率问题进行的。在某些实施例中,将非实时数据文件214备份,允许非实时数据根据它们的相关时间以正确的顺序插入。在其它实施例中,非实时数据文件214是将它们的相关时间作为关键字的数据库。这种灵活性对非实时数据输入是可能的,因为总的来说输入比实时数据输入少很多。这样,储存非实时数据输入的效率没有像对实时数据输入那样引起这么多考虑,可以牺牲一些效率来换来所增加的灵活性。对不同类型的数据输入使用不同的储存技术的能力使得该数据收集系统作为整体的效率和灵活性极大地增加。
虽然在图3b中没有显示,与在步骤306中写入实时数据文件212一样,抽点输入可以写入非实时数据文件214。
每个数据文件,实时或非实时的,是独立但是并行的被写入以记录过程环境的某些方面的数据输入的数据流。在步骤314,写入头文件使并行流紧密关联。当在给定的时间进行过程状态的分析时(见步骤316和图4a和4b的讨论),应该检查包含给定时间数据输入的所有数据流。步骤314中写入的头文件将时间间隔与时间标记落在该时间间隔内的实时和非实时数据输入关联起来。
头文件的使用将多个数据流互相关联并且与时间间隔关联,这使得对不同类型的数据允许不同的数据储存技术实现上面提到的灵活性。在某些实施例中,通过将时间间隔与用步骤300到312中举例说明的方法所不同的方法所产生的并行流相关联,头文件扩展了该灵活性。作为第一个例子,在过程环境之外产生的数据库包含与分析该过程有关的信息。头文件将该数据库作为另一个并行流处理,并将它与包含该时间间隔的数据输入的其它数据流相关联。对第二个例子,考虑产生与真实值有一定偏差的测量值的出错数据源。比方说,数据传感器202当测量混合储存箱106中的纸浆水平,总是产生比实际值高100加仑的测量值。开始误测量之后两天,检测到故障,并且传感器202被修复或更换。实时数据文件212现在包含两天的不正确的纸浆值测量值。并不是返回并修正那些数据文件212(在某些实施例中可能是不实际的),而是建立新的带有负的100加仑修正因子数据流。头文件将这个新的修正因子数据流与两天的故障阶段相关联。无论何时检索来自传感器202的两天故障阶段的数据输入,头文件提取修正因子并将它与数据输入关联起来,产生修正的结果。这两个例子展示通过头文件的方法获得并行流的灵活性的一些优点。
从传感器获得数据后,计算装置200在步骤316分析数据。在任何时候,这个分析可能是不完整的,因为还没有获得与分析相关的一些非实时数据输入。在某些实施例中,分析程序根据最近获得的测量值预测非实时数据,并当可以获得新的非实时数据输入时,修正它的预测值。
在步骤318中使用步骤316的分析以通过发送命令给传动装置来控制该过程。如上所述,过程控制通常是根据对实时数据的分析,仅仅是因为不能足够快地在控制系统所需要的短的反应时间内1获得非实时数据。在图1和2的例子中,控制仅仅包括改变比例阀102的设置(通过传动装置208)和改变造纸机108的速度(通过传动装置210)。分析和控制程序的目标是将测量的过程特性保持在可接受的范围内。
正如图3a和3b的讨论一开始所提到的,这些步骤的过程连续地重复,尽管不必按这些图中取出的次序进行。
图4a和4b示出了访问用图3a和3b的方法所收集和储存的数据输入的典型方法。可以在操作人员的控制下执行或者在计算装置200控制下自动调用图4a和4b中的方法。
该方法在步骤400开始,在其中选择感兴趣的时间间隔。当为了控制该过程(例如在图3b的步骤316)进行分析时,该时间间隔可能包括仅仅几分钟或甚至几秒钟长的数据输入。通过选择几周或几月的时间间隔,可以获得历史的观察。
根据选择的感兴趣的时间间隔,在步骤402找到并访问与该间隔内的数据输入有关联的头文件。访问的头文件的数量取决于时间间隔的长度和数据储存实现的细节。步骤404和408使用头文件来访问包含相关数据输入的数据流或者数据文件。
如上关于图3a的步骤306所讨论的,数据文件可以包含抽点输入。如果这样,则当在步骤406和410从数据文件中提取数据输入时,数据输入中的时间增量与抽点输入的时间值相结合,产生实际的数据输入时间。如果存在修正因子的话,也可以在此应用。
在步骤412,从数据文件中提取的数据输入根据它们的时间标记调整为数据输入的完整集合。如上所述,相关的数据可以包括关于以任何方法产生并关于感兴趣的时间间隔做出标记的任何数据。
相关的数据输入在图4b的步骤414显示或分析。虽然图4a和4b显示数据分析在数据检索之后,这样严格的次序对大的过程环境来说通常是不实际的。相反,检索某些数据输入,然后显示或分析那些输入,同时在固定的数据流中检索其它的输入。
鉴于本发明原理适用于很多可能的实施例,应该认识到,此处所说明的实施例与图形仅仅是用来举例的,并不应该作为对本发明范围的限制。熟悉相关技术的人应认识到本发明的方法的适用范围远远超过工业领域。尽管以软件模块或组件的形式说明本发明,但是某些过程可以同样用硬件组件来实现。所以,此处说明的发明包括在以下权利要求及其等价范围内的所有实施例。