CN101807073B - 一种分布式控制系统的历史数据处理方法和装置 - Google Patents
一种分布式控制系统的历史数据处理方法和装置 Download PDFInfo
- Publication number
- CN101807073B CN101807073B CN2010101530878A CN201010153087A CN101807073B CN 101807073 B CN101807073 B CN 101807073B CN 2010101530878 A CN2010101530878 A CN 2010101530878A CN 201010153087 A CN201010153087 A CN 201010153087A CN 101807073 B CN101807073 B CN 101807073B
- Authority
- CN
- China
- Prior art keywords
- data
- variable data
- memory
- disk
- stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B23/00—Testing or monitoring of control systems or parts thereof
- G05B23/02—Electric testing or monitoring
- G05B23/0205—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
- G05B23/0259—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the response to fault detection
- G05B23/0264—Control of logging system, e.g. decision on which data to store; time-stamping measurements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90339—Query processing by using parallel associative memories or content-addressable memories
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式控制系统的历史数据处理方法和装置,其中所述方法包括:采集分布式控制系统DCS中的实时变量数据;利用两块内存交替按照预置存储规则对所述变量数据进行存储,并对依次存储的变量数据分配以示区分的标识信息,当利用其中一块内存进行存储时,将另一块内存中已存储的变量数据转移至存储磁盘。通过本发明,能够提高历史数据处理的可靠性和高效性。
Description
技术领域
本发明涉及工业自动化控制技术领域,更具体地说,涉及一种分布式控制系统的历史数据处理方法和装置。
背景技术
目前,DCS(Distributed Control System,分布式控制系统)已经广泛应用于核电、火电、化工等领域。
在利用DCS进行管理控制的过程中所产生的历史数据在整个操作过程中具有很重要的作用。对这些历史数据的处理通常通过数据库执行。现有技术中,目前普遍的做法是采用专用程序和专业数据库软件对历史数据执行管理。其实现过程是:在进行历史数据存储数据时,由专用程序负责数据的处理过程,然后把完成处理的且需要存储的数据放入专业数据库中;当需要进行历史数据查询时,从专业数据库中,按照关键字检索数据,然后经过专用程序处理后,返回给用户。
上述方法在很多商业数据库和小型DCS控制系统中广为采用。由于采用了专业数据库,数据通用性比较好,可以很好的和第三方系统进行交互。
但是,通过发明人的研究发现,现有技术中仍然存在着以下缺点:
由于专业数据库需要满足各个应用系统的应用需要,因此,使用者通常会发现以高昂的价格买了很多不需要的功能,数据库系统比较庞大,容易由于专业数据库的问题,导致软件故障;此外,在这样的数据库中,很难迅速定位问题,灵活性较差,就算能确认是专业数据的问题,问题被解决的周期也比较长。
发明内容
有鉴于此,本发明实施例提供一种分布式控制系统的历史数据处理方法和装置,以便提高历史数据处理的可靠性和高效性。
本发明实施例提供一种分布式控制系统的历史数据处理方法,所述方法包括:
采集分布式控制系统DCS中的实时变量数据;
利用两块内存交替按照预置存储规则对所述变量数据进行存储,并对依次存储的变量数据分配以示区分的标识信息,当利用其中一块内存进行存储时,将另一块内存中已存储的变量数据转移至存储磁盘。
优选的,所述将另一块内存中已存储的变量数据转移至存储磁盘之后,所述方法还包括:
将当前转移至存储磁盘中的变量数据和已存储在所述存储磁盘中的历史变量数据进行比较,如果变量数据携带的时间戳信息相同,则进行数据合并、分类处理。
优选的,当需要查询已存储的变量数据时,所述方法还包括:
判断需要查询的数据所属的标识信息;
判断内存中未转移至所述存储磁盘的变量数据中是否包括携带有该标识信息的变量数据,如果是,则先读取内存中携带有该标识信息的变量数据,然后读取所述存储磁盘中携带有该标识信息的变量数据;
根据变量数据中携带的标识信息确定是否查询到所有变量数据。
优选的,所述利用两块内存交替按照预置存储规则对所述变量数据进行存储,包括:
按照预置时间间隔或预置内存容量阈值,利用所述两块内存交替对所述变量数据进行存储。
优选的,所述方法还包括:
当所述磁盘的存储空间达到预设的阈值时,自动删除磁盘中存储时间最长的历史变量数据。
一种分布式控制系统的历史数据处理装置,所述装置包括:
数据采集单元,用于采集分布式控制系统DCS中的实时变量数据;
存储单元,用于利用两块内存交替按照预置存储规则对所述变量数据进行存储,并对依次存储的变量数据分配以示区分的标识信息,当利用其中一块内存进行存储时,将另一块内存中已存储的变量数据转移至存储磁盘。
优选的,所述装置还包括:
合并、分类处理单元,用于将当前转移至存储磁盘中的变量数据和已存储在所述存储磁盘中的历史变量数据进行比较,如果变量数据携带的标识信息相同,则进行数据合并、分类处理。
优选的,所述装置还包括:
第一判断单元,用于判断需要查询的数据所属的标识信息;
第二判断单元,用于判断内存中未转移至所述存储磁盘的变量数据中是否包括携带有该标识信息的变量数据;
读取单元,用于当内存中未转移至所述存储磁盘的变量数据中包括携带有该标识信息的变量数据,则先读取内存中携带有该标识信息的变量数据,,然后读取所述存储磁盘中携带有该标识信息的变量数据;
第三判断单元,用于根据变量数据中携带的标识信息确定是否查询到所有变量数据。
优选的,所述存储单元还包括:
存储条件设置子单元,用于当利用两块内存交替按照预置存储规则对所述变量数据进行存储时,按照预置时间间隔或预置内存容量阈值,利用所述两块内存交替对所述变量数据进行存储。
优选的,所述装置还包括:
磁盘整理单元,用于当所述磁盘的存储空间达到预设的阈值时,自动删除磁盘中存储时间最长的历史变量数据。
同现有技术相比,本发明提供的技术方案通过内存和磁盘相接合,并且最终的实时变量数据是以磁盘文件的形式存储,从而避免把大量的数据存放在内存,既占用了系统的大量资源,另外如果发生断电等意外故障,数据丢失也越多的缺陷,提高了历史数据处理的可靠性;此外,通过在变量数据的存储过程中为变量数据分配以示区分的标识信息,便于在数据查询过程中对变量数据的定位,从而方便判断实时变量数据存储中是否产生数据的丢失。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种分布式控制系统的历史数据处理方法流程示意图;
图2为本发明实施例提供的数据的采集和存储线程示意图;
图3为本发明实施例提供的一种分布式控制系统的历史数据处理装置结构示意图;
图4为本发明实施例提供的另一种分布式控制系统的历史数据处理装置结构示意图;
图5为本发明实施例提供的第三种分布式控制系统的历史数据处理装置结构示意图;
图6为本发明实施例提供的又一种分布式控制系统的历史数据处理装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先对本发明提供的分布式控制系统的历史数据处理方法进行说明,参照图1所示,所述方法包括:
步骤101、采集分布式控制系统DCS中的实时变量数据;
步骤102、利用两块内存交替按照预置存储规则对所述变量数据进行存储,并对依次存储的变量数据分配以示区分的标识信息,当利用其中一块内存进行存储时,将另一块内存中已存储的变量数据转移至存储磁盘。
本发明提供的技术方案通过内存和磁盘相接合,并且最终的实时变量数据是以磁盘文件的形式存储,从而避免把大量的数据存放在内存,既占用了系统的大量资源,另外如果发生断电等意外故障,数据丢失也越多的缺陷,提高了历史数据处理的可靠性;此外,通过在变量数据的存储过程中为变量数据分配以示区分的标识信息,便于在数据查询过程中对变量数据的定位,从而方便判断实时变量数据存储中是否产生数据的丢失。
为了便于对存入硬盘的数据进行管理,本发明实施例中,将当前转移至存储磁盘中的变量数据和已存储在所述存储磁盘中的历史变量数据进行按预置的合并条件进行合并、分类处理。预置的合并条件可设置为:数据库的版本级别以及变量数据中携带的时间戳信息。
如果硬盘中已存储有携带有某种标识信息,例如时间戳信息的变量数据,则将当前变量数据转存入硬盘时,通过判断是否满足合并条件,决定是否应该将当前刚刚转存的变量数据和硬盘中已存储的变量数据进行合并、分类处理。当然,数据合并的前提条件是硬盘中已存储的变量数据和当前需要转存的变量数据属于同一数据库版本。当满足合并条件时,则进行两部分数据的合并及分类,例如:将属于同一数据库版本且具有相同时间戳信息的数据进行合并,存入同一个文件中。如果硬盘中已存储的数据以文件的形式进行保存,通过合并、分类处理,可以将相关的数据保存在同一个文件中,便于后续对硬盘中数据的查询读取。否则,如果当前转存的变量数据不满足合并条件时,则对已存储的文件进行重命名,并进行备份,新存入的数据将占用原来数据的文件名。
本发明实施例中,当需要读取数据时,需要首先判断需要查询的数据所属的标识信息;然后,判断内存中未转移至所述存储磁盘的变量数据中是否包括携带有该标识信息的变量数据,如果是,则先读取内存中携带有该标识信息的变量数据,然后读取所述存储磁盘中携带有该标识信息的变量数据;并且,根据变量数据中携带的标识信息确定是否查询到所有变量数据。
仍以标识信息中的时间戳信息为例,由于内存中很可能仍存储有未转存至硬盘的数据,需先判断查询时间段,即查询数据所属的时间段,并根据变量数据携带的时间戳信息判断当前内存中是否留有属于该时间段的变量数据,如果内存时包括了该时间段的变量数据,则需要先读取内存中属于该时间段的且未转移至所述存储磁盘的变量数据,然后读取所述存储磁盘中属于该时间段的变量数据;根据变量数据中携带的时间戳信息确定是否查询到所有属于该时间段内变量数据。
由于每次变量数据在内存中存储时,都被分配有以示区分的标识信息,因此,在数据读取过程中,通过统计计算所读取的数据中携带的标识信息,可以确定是否查询到所有变量数据。
此外,本发明实施例中的预置存储规则根据实际应用场景,可以规定为按照预置时间间隔或预置内存容量阈值,利用所述两块内存交替对所述变量数据进行存储。例如:当存储规则规定时间间隔时,则利用第一块内存进行规定时间内的数据存储,到存储时间到达规定时间时,启用另一块内存,接着由另一块内存进行数据存储,此时,第一块内存将其存储的数据转存入硬盘;当第二块内存的存储时间到达规定时间时,再由第一块内存进行数据存储,同时,由第二块内存将其存储的数据转存入硬盘;依次类推。同理,预置内存容量阈值时,则当其中一块内存的存储量到达预置内存容量阈值时,启用另一块内存进行数据存储,同时,将存储量到达预置内存容量阈值的内存中的数据转存入硬盘中。当然,具体的时间间隔和容量阈值可以根据实际应用进行合理设置,本发明对此不做具体限定。
由于最后的变量数据都是存储在硬盘中,为了避免硬盘因为存储量已满使得新的数据存储失败从而导致数据丢失,可以为硬盘设置存储空间预置,当硬盘的存储空间达到预设的阈值时,自动删除磁盘中存储时间最长的历史变量数据。从而,保证硬盘中始终存在有足够的存储空间。
为了便于对本发明进一步的理解,下面仍以分布式控制系统中的历史数据库为例,结合该历史数据库的具体实施方式对本发明进行详细描述。
在分布式控制系统中,产生的实时变量数据通常包括实时模拟量数据和实时开关量数据。此外,分布式控制系统中的历史数据库是多线程处理系统。所谓线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行,也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。
多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。多线程和进程一样拥有独立的执行控制,由操作系统负责调度。多线程是多任务的特殊形式。通常,有两种类型的多任务:基于进程和基于线程的多任务。进程本质上是正在执行的程序。
因此,基于进程的多任务就是允许计算机同时运行两个或者更多程序的特性。例如,基于进程的多任务允许使用电子制表软件或者浏览Internet的同时运行文字处理程序。在基于进程的多任务中,程序是调度程序可以分派的最小代码单元。多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。线程是在同一时间需要完成多项任务的时候被实现的。
历史数据库从功能上进行划分,可以分为实时变量数据的采集存储和历史变量数据查询两大部分。从版本上,历史库数据库提供了离线历史库版本和在线历史库两大版本。离线版本与在线版本的区别是离线版本没有变量数据收集功能,只有数据查询功能。所以它占的操作系统的资源比较少,对环境的依赖性也小。当在现场环境受限制的情况下,用户可以通过拷贝存储的历史数据,在离线版本下分析数据。此外特别适用于当研发人员不在现场时,也可通过工程人员提供的现场历史数据,真实还原现场的问题的情况,分析数据,排除故障。
历史数据库是多线程结构,为数据库中的每个主要功能各分配一个线程进行相应的数据处理,多线程之间协同工作,在保证数据处理高效率的同时,也易于数据库的维护。
本发明实施例中,历史数据库的主要线程包括:
(1)变量数据采集相关的线程,主要包括:模拟量数据收集线程,开关量数据收集线程,模拟量数据存盘线程,开关量数据存盘线程;
(2)对外服务线程,主要包括:通过对外的API(Application ProgrammingInterface,应用程序编程接口)提供数据查询等其它服务,可以根据实际项目需求,配置服务线程的个数和各个线程的数据空间,还包括FTP(File TransferProtocol,文件传输协议)服务线程,同样,FTP服务线程也是可以配置的。
历史数据库对外提供丰富接口,大多数API接口已被封装成COM接口,支持VB脚本语言,对历史数据库的访问。VB简单的语言和语法结构,方便工程人员学习和扩展应用功能。同时提供FTP服务,可以上传和下载文件。DCS系统的其他模块,可以把需要存储的文件,发送给历史数据库存储。
可见,本发明实施例中开放的服务API设计,扩展系统API非常容易,可以很容易配置服务的并发数量和访问数据大小。
(3)其他辅助线程,例如:主从数据对齐线程,磁盘空间维护线程。
通常,在线历史数据库是冗余的设计,分为一个主历史数据库和一个从历史数据库。系统服务是基于FLRPC(轻量级远程过程调用)的设计,FLRPC是按照RPC(远程过程调用)协议的思想,自行设计的,满足工控需要的协议)。由于通讯协议是自行设计,可以灵活设置服务并发访问的数据,并且可以配置各个访问线程的数据空间大小。另外基于该协议,可以比较容易设计一主一从的历史数据库服务器。主从的切换也是协议自动根据网络状态进行切换。在正常的情况下,主历史数据库处于工作状态,从历史数据库处于准备工作状态,虽然处于准备工作状态,但设计上保证主从历史数据库的数据是一致的。如果主历史数据库发生故障,从历史数据库可马上改变为工作状态,两台历史数据库的切换所需时间可以控制在3s以内。当主历史数据库收集到新的变量数据,主从数据文件对齐维护线程都会启用,对主从历史数据库中已经存盘的数据进行比较,将主历史数据库收集到的新的变量数据同时发送给从历史数据库,保持两者数据的一致性。
下面结合图2,分别说明数据采集相关线程中的模拟量数据的采集和存储线程以及开关量数据的采集和存储线程。
对于模拟量数据的采集和存储来说,首先,工程师站下装模拟量点名项名表到历史数据库;
工程师站主要是工程人员对数据库点的添加修改,以及组态各种工业控制流程图等。工程师站组态完编译后,会下装给历史数据库启动所需要的文件,这些文件包括了历史数据库需要进行数据采集的点项名信息,点项名就是数据库中点的名字。一个数据库点可以有很多项,例如:AV代表当前值,MU代表量程上限,MD代表量程下限;
历史数据库从模拟量点项名文件读取各个点项的采集周期。历史数据库依照采集周期,把点项名分为各个注册组,向实时库进行注册,所谓采集周期即指多长时间采集一次实时数据的值。实时库给每个注册组分配一个组号。
需要说明的是,历史数据库与实时数据库是密切相关的。历史数据库的数据都是来自实时数据库的,数据包括:实时数据库主动发送给历史数据库的开关量数据;历史数据库定时主动向实时数据库请求的模拟量数据。
本发明实施例中,采用按照预置时间间隔,利用所述两块内存交替对模拟量数据进行存储为例进行说明。当历史数据库初始启动时,创建例如10分钟存储时间间隔的两块内存。10分钟内采集的模拟量数据存到其中一块内存中,当到达10分钟的存储时间时,进行内存切换。另一块内存开始接收模拟量数据。原来那一块内存中的模拟量数据将转存到本地磁盘,并为转存入硬盘的数据分配标识信息,例如:表示存储顺序的编号信息。
开关量数据的采集与模拟量不同,模拟量是历史数据库按照组态的点项的采集周期,主动请求实时数据库的,数据量的大小是可以根据点项的个数和采集周期,进行计算的。但是开关量的数据是历史数据库被动接受的,有变位时由实时数据库主动向历史数据库发送。
历史数据库根据下装的开关量的点项名信息,对实时数据库发送的变位信息进行过滤,由于开关量是历史数据库被动收集的,是有变位才收集的,不需要收集的变位或已经收集的重复变位信息进行丢弃。当然,对于哪些点项变位信息需要在历史库收集,已在实时数据库中进行相关设置。
仍采用按照预置时间间隔,利用所述两块内存交替对模拟量数据进行存储为例进行说明。当历史数据库初始启动时,创建例如10分钟存储时间间隔的两块内存。10分钟内采集的开关量数据存到其中一块内存中,当到达10分钟的存储时间时,进行内存切换。另一块内存开始接收开关量数据。原来那一块内存中的开关量数据将转存到本地磁盘,同样为转存入硬盘的数据分配标识信息,例如:表示存储顺序的编号信息。
通常,存储在磁盘中的数据以文件形式进行存储。对于开关量数据来说,其在文件中是队列模式,因此,先存入的数据存放于磁盘中偏移量小的地方;
对于模拟量数据,对应每个点项的变量数据在逻辑上存放于硬盘中的同一个区域。根据偏移量,硬盘中依次出现对应第一个点项的数据区域,第二个点的数据区域......需要说明的是,在对应于第一个点项的数据区域,包括采集时间段内对应第一个点项的所有N个采集值,分别是时间1的采集值,时间2的采集值,时间3的采集值......时间N的采集值。因此,每个文件代表所有下装模拟量点项在固定时间段的所有变量数据,如果模拟量下装了N个点项。则从文件开始到结束,分别是第一个点项数据区,第二个点项数据区......第N个点项数据区。
因此,可以根据依次为文件分配的标识信息,为每天的文件数据建立一个文件夹。通过查找具体的文件夹和文件,迅速找到某一段时间所存储的数据。
除此之外,当查询服务线程启动后,历史数据库响应外部的查询请求,开始对磁盘中存储的变量数据进行查询。
对于模拟量数据,首先将磁盘中的数据文件加载到内存;通常,模拟量数据文件的设计是规则的,现行设计中,只要是同一个版本的模拟量点项名下装文件,那么对应每个点项名的数据在每个文件中的位置都是相同的,并且每个数据文件的大小也是相同的。因此,找到相应文件后,可以根据偏移量找到相应的数据。
对于开关量数据,同样先将数据文件加载到内存,开关量数据存储是按照队列的模拟,并且这些开关量点都是以链表的方式关联的。本发明实施例通过对普通链表数据结构的变换使用,优化查询。链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。它可以根据需要开辟内存单元。链表是指将若干个数据项按一定的规则连接起来的表,其中的数据项成为结点。链表有一个“头指针”变量,以head表示,它存放一个地址。该地址指向一个元素。链表中每一个元素称为“结点”,每个结点都应包括两个部分:一为用户需要用的实际数据,二为下一个结点的地址。因此,head指向第一个元素:第一个元素又指向第二个元素;......,直到最后一个元素,该元素不再指向其它元素,它称为“表尾”,它的地址部分放一个“NULL”(表示“空地址”),链表到此结束。本发明实施例中的链接从物理的存储上看是一个链接,但如果从数据解析上看是多个链接组合成的一个大链接。例如有A、B、C、D四个点,文件中存储的开关量值队列是:A1,B1,B2,B3,A2,C1,A3,D1...这些变位在文件中的位置是连续的,每个变位所占的空间大小也是相同的。以点A为例,其中A1表示点A的第一次变位,A2表示点A的第二次变位,其他可依次类推。那么在点A的某一次变位项中,均存储它前一次变位时的数据偏移量,例如:在A3的该次变位项中,存储它前一次变位A2的数据偏移量。由此可见,在一个数据文件中只要知道点A的最后一次变位的偏移量,就可以在整个文件中,将点A的所有变位都找出来,从而达到快速检索所有开关量数据的功能。
可见,本发明实施例中通过合理的数据结构设计,使得对于数据的查询效率进一步提高。
当变量数据的存储和查询是同时进行时,由于存储和查询操作都是对同一数据源进行操作,因此应保证在这两种操作下数据的无损和一致性,同时应满足存储和查询的高效性。为了实现这一目的,本领域技术人员可以使用临界区(Critical Section)、事件(Event)来进行各线程之间的协调工作。
除此之外,本发明实施例中,利用多个先进先出的循环队列应用结合多线程,形成流水线处理机制。为每个需处理的数据类型建立一个合适大小的数据队列,然后为每个数据队列建立一个相应的线程。同时,保证一个线程只处理一个数据类型。另外,主线程负责调度控制,子线程相互协作,形成流水线处理。
当DCS系统长年累月的稳定运行后,再大的磁盘空间,也会被填满,这时如果不定时清理磁盘空间,那么系统将会无法正常运行。因此,本发明实施例中的历史数据库设置有定时维护磁盘空间的线程。当磁盘空间大小小于某个设定的值时,维护磁盘空间的线程会自动删除时间最长的数据。另外,实际应用中的DCS系统中,还可以设置自动存档任务,自动对历史数据进行存档,例如:刻录成光盘保存数据。
相应上述分布式控制系统的历史数据处理方法实施例,本发明还提供了一种分布式控制系统的历史数据处理装置,如图3所示,所述装置包括:
数据采集单元301,用于采集分布式控制系统DCS中的实时变量数据;
存储单元302,用于利用两块内存交替按照预置存储规则对所述变量数据进行存储,并对依次存储的变量数据分配以示区分的标识信息,当利用其中一块内存进行存储时,将另一块内存中已存储的变量数据转移至存储磁盘。
可见,本发明实施例通过内存和磁盘相接合,并且最终的实时变量数据是以磁盘文件的形式存储,从而避免把大量的数据存放在内存,既占用了系统的大量资源,另外如果发生断电等意外故障,数据丢失也越多的缺陷,提高了历史数据处理的可靠性;此外,通过在变量数据的存储过程中为变量数据分配以示区分的标识信息,便于在数据查询过程中对变量数据的定位,从而方便判断实时变量数据存储中是否产生数据的丢失。
所述存储单元还可以包括:存储条件设置子单元,用于当利用两块内存交替按照预置存储规则对所述变量数据进行存储时,按照预置时间间隔或预置内存容量阈值,利用所述两块内存交替对所述变量数据进行存储。
本发明实施例中的预置存储规则根据实际应用场景,可以规定为按照预置时间间隔或预置内存容量阈值,利用所述两块内存交替对所述变量数据进行存储。例如:当存储规则规定时间间隔时,则利用第一块内存进行规定时间内的数据存储,到存储时间到达规定时间时,启用另一块内存,接着由另一块内存进行数据存储,此时,第一块内存将其存储的数据转存入硬盘;当第二块内存的存储时间到达规定时间时,再由第一块内存进行数据存储,同时,由第二块内存将其存储的数据转存入硬盘;依次类推。同理,预置内存容量阈值时,则当其中一块内存的存储量到达预置内存容量阈值时,启用另一块内存进行数据存储,同时,将存储量到达预置内存容量阈值的内存中的数据转存入硬盘中。当然,具体的时间间隔和容量阈值可以根据实际应用进行合理设置,本发明对此不做具体限定。
在本发明的另一个优选实施例中,如图4所示,所述装置还包括:
合并、分类处理单元303,用于将当前转移至存储磁盘中的变量数据和已存储在所述存储磁盘中的历史变量数据进行比较,如果变量数据携带的标识信息相同,则进行数据合并、分类处理。
为了便于对存入硬盘的数据进行管理,本发明实施例中,将当前转移至存储磁盘中的变量数据和已存储在所述存储磁盘中的历史变量数据进行按预置的合并条件进行合并、分类处理。预置的合并条件可设置为:数据库的版本级别以及变量数据中携带的时间戳信息。
如果硬盘中已存储有携带有某种标识信息,例如时间戳信息的变量数据,则将当前变量数据转存入硬盘时,通过判断是否满足合并条件,决定是否应该将当前刚刚转存的变量数据和硬盘中已存储的变量数据进行合并、分类处理。当然,数据合并的前提条件是硬盘中已存储的变量数据和当前需要转存的变量数据属于同一数据库版本。当满足合并条件时,则进行两部分数据的合并及分类,例如:将属于同一数据库版本且具有相同时间戳信息的数据进行合并,存入同一个文件中。如果硬盘中已存储的数据以文件的形式进行保存,通过合并、分类处理,可以将相关的数据保存在同一个文件中,便于后续对硬盘中数据的查询读取。否则,如果当前转存的变量数据不满足合并条件时,则对已存储的文件进行重命名,并进行备份,新存入的数据将占用原来数据的文件名。需要注意的是,数据查询时,时间戳和文件名必须是一一对应,才能实现查询定位。
此外,如图5所示的另一种分布式控制系统的历史数据处理装置中,所述装置还包括:
第一判断单元304,用于判断需要查询的数据所属的标识信息;
第二判断单元305,用于判断内存中未转移至所述存储磁盘的变量数据中是否包括携带有该标识信息的变量数据;
读取单元306,用于当内存中未转移至所述存储磁盘的变量数据中包括携带有该标识信息的变量数据,则先读取内存中携带有该标识信息的变量数据,,然后读取所述存储磁盘中携带有该标识信息的变量数据;
第三判断单元307,用于根据变量数据中携带的标识信息确定是否查询到所有变量数据。
本发明实施例中,当需要读取数据时,由于内存中很可能仍存储有未转存至硬盘的数据,因此,需要先读取内存中未转移至所述存储磁盘的变量数据,然后读取所述存储磁盘中的变量数据;根据变量数据中携带的标识信息确定是否查询到所有变量数据。
此外,图6所示的又一种分布式控制系统的历史数据处理装置中,所述装置还包括:
磁盘整理单元308,用于当所述磁盘的存储空间达到预设的阈值时,自动删除磁盘中存储时间最长的历史变量数据。
由于最后的变量数据都是存储在硬盘中,为了避免硬盘因为存储量已满使得新的数据存储失败从而导致数据丢失,可以为硬盘设置存储空间预置,当硬盘的存储空间达到预设的阈值时,自动删除磁盘中存储时间最长的历史变量数据。从而,保证硬盘中始终存在有足够的存储空间。
对于装置实施例而言,由于其基本相应于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明实施例的精神或范围的情况下,在其它实施例中实现。因此,本发明实施例将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种分布式控制系统的历史数据处理方法,其特征在于,所述方法包括:
采集分布式控制系统DCS中的实时变量数据;
利用两块内存交替按照预置存储规则对所述变量数据进行存储,并对依次存储的变量数据分配以示区分的标识信息,当利用其中一块内存进行存储时,将另一块内存中已存储的变量数据转移至存储磁盘;
将当前转移至存储磁盘中的变量数据和已存储在所述存储磁盘中的历史变量数据进行按预置的合并条件进行合并、分类处理,所述预置的合并条件设置为:数据库的版本级别以及变量数据中携带的时间戳信息。
2.根据权利要求1所述的分布式控制系统的历史数据处理方法,其特征在于,当需要查询已存储的变量数据时,所述方法还包括:
判断需要查询的数据所属的标识信息;
判断内存中未转移至所述存储磁盘的变量数据中是否包括携带有该标识信息的变量数据,如果是,则先读取内存中携带有该标识信息的变量数据,然后读取所述存储磁盘中携带有该标识信息的变量数据;
根据变量数据中携带的标识信息确定是否查询到所有变量数据。
3.根据权利要求1所述的分布式控制系统的历史数据处理方法,其特征在于,所述利用两块内存交替按照预置存储规则对所述变量数据进行存储,包括:
按照预置时间间隔或预置内存容量阈值,利用所述两块内存交替对所述变量数据进行存储。
4.根据权利要求1-3中任一项所述的分布式控制系统的历史数据处理方法,其特征在于,所述方法还包括:
当所述磁盘的存储空间达到预设的阈值时,自动删除磁盘中存储时间最长的历史变量数据。
5.一种分布式控制系统的历史数据处理装置,其特征在于,所述装置包括:
数据采集单元,用于采集分布式控制系统DCS中的实时变量数据;
存储单元,用于利用两块内存交替按照预置存储规则对所述变量数据进行存储,并对依次存储的变量数据分配以示区分的标识信息,当利用其中一块内存进行存储时,将另一块内存中已存储的变量数据转移至存储磁盘;
合并、分类单元,用于将当前转移至存储磁盘中的变量数据和已存储在所述存储磁盘中的历史变量数据进行按预置的合并条件进行合并、分类处理,所述预置的合并条件设置为:数据库的版本级别以及变量数据中携带的时间戳信息。
6.根据权利要求5所述的分布式控制系统的历史数据处理装置,其特征在于,所述装置还包括:
第一判断单元,用于判断需要查询的数据所属的标识信息;
第二判断单元,用于判断内存中未转移至所述存储磁盘的变量数据中是否包括携带有该标识信息的变量数据;
读取单元,用于当内存中未转移至所述存储磁盘的变量数据中包括携带有该标识信息的变量数据,则先读取内存中携带有该标识信息的变量数据,然后读取所述存储磁盘中携带有该标识信息的变量数据;
第三判断单元,用于根据变量数据中携带的标识信息确定是否查询到所有变量数据。
7.根据权利要求5所述的分布式控制系统的历史数据处理装置,其特征在于,所述存储单元还包括:
存储条件设置子单元,用于当利用两块内存交替按照预置存储规则对所述变量数据进行存储时,按照预置时间间隔或预置内存容量阈值,利用所述两块内存交替对所述变量数据进行存储。
8.根据权利要求5-7中任一项所述的分布式控制系统的历史数据处理方法,其特征在于,所述装置还包括:
磁盘整理单元,用于当所述磁盘的存储空间达到预设的阈值时,自动删除磁盘中存储时间最长的历史变量数据。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101530878A CN101807073B (zh) | 2010-04-20 | 2010-04-20 | 一种分布式控制系统的历史数据处理方法和装置 |
PCT/CN2011/072352 WO2011131080A1 (zh) | 2010-04-20 | 2011-03-31 | 一种分布式控制系统的历史数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101530878A CN101807073B (zh) | 2010-04-20 | 2010-04-20 | 一种分布式控制系统的历史数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101807073A CN101807073A (zh) | 2010-08-18 |
CN101807073B true CN101807073B (zh) | 2013-01-23 |
Family
ID=42608894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101530878A Active CN101807073B (zh) | 2010-04-20 | 2010-04-20 | 一种分布式控制系统的历史数据处理方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101807073B (zh) |
WO (1) | WO2011131080A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101807073B (zh) * | 2010-04-20 | 2013-01-23 | 杭州和利时自动化有限公司 | 一种分布式控制系统的历史数据处理方法和装置 |
CN102044308B (zh) * | 2010-09-30 | 2012-09-12 | 中广核工程有限公司 | 一种用于核电厂dcs实时数据的采集方法及系统 |
CN103020077A (zh) * | 2011-09-24 | 2013-04-03 | 国家电网公司 | 一种电力系统实时数据库内存管理方法 |
CN103186562A (zh) * | 2011-12-28 | 2013-07-03 | 腾讯科技(北京)有限公司 | 数据自适应过滤方法及装置 |
CN102799395B (zh) * | 2012-06-29 | 2015-07-22 | 华为技术有限公司 | 磁盘空间的动态平衡处理方法和装置,以及磁盘系统 |
CN103212547B (zh) * | 2013-03-31 | 2016-03-23 | 深圳市广前电力有限公司 | 燃气-蒸汽联合发电机组压气机通流部分水洗方法及装置 |
CN106557521B (zh) * | 2015-09-29 | 2020-07-14 | 佳能株式会社 | 对象索引方法、对象搜索方法及对象索引系统 |
CN105302905B (zh) * | 2015-10-29 | 2019-07-26 | 无锡天脉聚源传媒科技有限公司 | 一种信息存储方法及装置 |
CN105808749B (zh) * | 2016-03-14 | 2019-12-06 | 北京广利核系统工程有限公司 | 一种用于核电站的历史存储方法 |
CN109428913B (zh) * | 2017-08-25 | 2021-06-01 | 浙江宇视科技有限公司 | 一种存储扩容方法及装置 |
CN109032528B (zh) * | 2018-08-01 | 2020-11-17 | 西安电子科技大学 | 一种平板pet系统的在线预处理方法及装置 |
CN109213103B (zh) * | 2018-09-14 | 2021-03-16 | 四川爱联科技股份有限公司 | 自动化生产控制方法 |
CN109637560A (zh) * | 2018-12-19 | 2019-04-16 | 广州势必可赢网络科技有限公司 | 一种数据存储方法、装置和计算机可读存储介质 |
CN111385255B (zh) * | 2018-12-28 | 2022-05-06 | 北京金山云网络技术有限公司 | 一种异步调用实现方法、装置、服务器及服务器集群 |
CN110457275A (zh) * | 2019-08-15 | 2019-11-15 | 中国银行股份有限公司 | 磁盘历史文件的清理方法及装置 |
CN112925677A (zh) * | 2021-03-10 | 2021-06-08 | 福建宁德核电有限公司 | 非安全级dcs历史数据的备份设备、自动备份系统及方法 |
CN113382069A (zh) * | 2021-06-09 | 2021-09-10 | 浙江中控技术股份有限公司 | 油气管道的数据传输方法、装置、设备及存储介质 |
CN113568936B (zh) * | 2021-07-30 | 2023-06-13 | 多点生活(成都)科技有限公司 | 实时流数据存储方法、装置、终端设备 |
CN114995314A (zh) * | 2022-06-15 | 2022-09-02 | 中国核动力研究设计院 | 用于核电厂dcs系统中变量使用信息自动统计方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN200969045Y (zh) * | 2006-11-17 | 2007-10-31 | 沈阳新松机器人自动化股份有限公司 | 数据存储及现场总线通信并用的一体化装置 |
CN101158871A (zh) * | 2007-11-12 | 2008-04-09 | 浙江大学 | 集散控制系统操作员站内存数据库结构存储的同步方法 |
CN101231525A (zh) * | 2008-02-21 | 2008-07-30 | 四方电气(集团)有限公司 | 分布式控制系统dcs控制器实时数据库的实现方法 |
CN101241368A (zh) * | 2008-03-14 | 2008-08-13 | 北京四方继保自动化股份有限公司 | 电力系统广域控制系统的数据处理方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2097540C (en) * | 1993-06-01 | 1998-05-12 | William G. O'farrell | Accessing remote data objects in a distributed memory environment |
CN1258921C (zh) * | 2002-07-30 | 2006-06-07 | 中兴通讯股份有限公司 | 分布式视频点播系统及其实现数据存储和访问的方法 |
CN100587639C (zh) * | 2006-12-30 | 2010-02-03 | 中国科学院电工研究所 | 一种基于vme总线的实时多任务分布式控制系统 |
CN101807073B (zh) * | 2010-04-20 | 2013-01-23 | 杭州和利时自动化有限公司 | 一种分布式控制系统的历史数据处理方法和装置 |
-
2010
- 2010-04-20 CN CN2010101530878A patent/CN101807073B/zh active Active
-
2011
- 2011-03-31 WO PCT/CN2011/072352 patent/WO2011131080A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN200969045Y (zh) * | 2006-11-17 | 2007-10-31 | 沈阳新松机器人自动化股份有限公司 | 数据存储及现场总线通信并用的一体化装置 |
CN101158871A (zh) * | 2007-11-12 | 2008-04-09 | 浙江大学 | 集散控制系统操作员站内存数据库结构存储的同步方法 |
CN101231525A (zh) * | 2008-02-21 | 2008-07-30 | 四方电气(集团)有限公司 | 分布式控制系统dcs控制器实时数据库的实现方法 |
CN101241368A (zh) * | 2008-03-14 | 2008-08-13 | 北京四方继保自动化股份有限公司 | 电力系统广域控制系统的数据处理方法 |
Non-Patent Citations (1)
Title |
---|
张伟等.基于CPLD控制的水电机组在线监测系统数据采集卡设计.《全国大中型水电厂技术协作网第二届年会论文集,2005年》.2005,298-302. * |
Also Published As
Publication number | Publication date |
---|---|
CN101807073A (zh) | 2010-08-18 |
WO2011131080A1 (zh) | 2011-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101807073B (zh) | 一种分布式控制系统的历史数据处理方法和装置 | |
US11258839B2 (en) | Data storage management and resource scaling | |
CN102033889B (zh) | 分布式数据库并行处理系统 | |
US9838242B2 (en) | Flowlet-based processing with key/value store checkpointing | |
CN102831120A (zh) | 一种数据处理方法及系统 | |
CN101625655B (zh) | 一种内存数据库的并行恢复方法 | |
CN107077492A (zh) | 可扩展的基于日志的事务管理 | |
CN105069134A (zh) | 一种Oracle统计信息自动收集方法 | |
CN106557272B (zh) | 一种高效的传感器历史数据归档方法 | |
US20040205110A1 (en) | Asymmetric data streaming architecture having autonomous and asynchronous job processing unit | |
CN103930875A (zh) | 用于加速业务数据处理的软件虚拟机 | |
CN109597846A (zh) | 大数据平台数据仓库数据处理方法、装置和计算机设备 | |
CN102411632A (zh) | 基于链表的内存数据库页式存储方法 | |
CN101290591A (zh) | 一种嵌入式操作系统中切换任务的方法和单元 | |
BE1024939B1 (nl) | Systeem en apparaat voor het gegarandeerd precies eenmalig verwerken van een gebeurtenis in een verdeelde gebeurtenissen-aangedreven omgeving | |
US7668093B1 (en) | Architecture for balancing workload | |
Fink | Distributed computation on dynamo-style distributed storage: riak pipe | |
CN109739881A (zh) | 基于CarbonData的增量数据收敛更新方法及其系统 | |
CN107851101A (zh) | 具有键/值存储检查点的基于流簇的处理 | |
CN109828718A (zh) | 一种磁盘存储负载均衡方法及装置 | |
Bao et al. | Las: Logical-block affinity scheduling in big data analytics systems | |
Wang et al. | TRCID: Optimized task recovery in MapReduce based on checkpointing intermediate data | |
Van Lingen et al. | Job life cycle management libraries for CMS workflow management projects | |
Ikhlaq et al. | A comparative study of big data computational approaches | |
Gerakos | Distributed reservoir sampling algorithms for data pre-processing with use of Kafka Streams |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |