一种SCADA系统升级时的实时数据转储方法和装置转让专利

申请号 : CN201810898847.4

文献号 : CN109116818B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杭小林刘晓龙刘晗邓博高振峰

申请人 : 新智能源系统控制有限责任公司

摘要 :

本发明实施例公开了一种SCADA系统升级时的实时数据转储方法和装置,该方法包括:建立SCADA系统实时数据转储任务队列,包括第一转储任务T1和第二转储任务T2;通过第一转储任务T1和第二转储任务T2采集实时数据存入相应的缓冲数据文件;由第一转储任务T1申请获取数据转储权并执行正常的数据转储;当第一转储任务T1出现因程序升级引起的故障时,由第二转储任务T2进行断点续传;当第二转储任务T2出现因程序升级引起的故障,或者第一转储任务T1已升级完成时,由第一转储任务T1进行断点续传。该实施例方案解决SCADA系统实时数据转储过程中因程序升级引起的数据断续问题,提高了SCADA系统实时数据转储的稳定性。

权利要求 :

1.一种数据采集与监视控制SCADA系统升级时的实时数据转储方法,包括:

建立SCADA系统实时数据转储任务队列;所述实时数据转储任务队列中至少包括:第一转储任务T1和第二转储任务T2;

启动所述第一转储任务T1和所述第二转储任务T2,并分别通过所述第一转储任务T1和所述第二转储任务T2不间断采集实时数据,存入相应的第一缓冲数据文件和第二缓冲数据文件;

由所述第一转储任务T1申请获取数据转储权,并执行正常的数据转储,以将所述实时数据写入预设的关系库数据表中;

当所述第一转储任务T1在进行数据转储过程中出现因程序升级引起的故障时,由所述第二转储任务T2根据所述第二缓冲数据文件中存储的实时数据进行断点续传,实现自动故障恢复;当所述第二转储任务T2出现因程序升级引起的故障,或者所述第一转储任务T1已升级完成时,由所述第一转储任务T1根据所述第一缓冲数据文件中存储的实时数据进行断点续传。

2.根据权利要求1所述的SCADA系统升级时的实时数据转储方法,其特征在于,所述建立SCADA系统实时数据转储任务队列包括:设置转储任务配置表;

在所述转储任务配置表中配置所述第一转储任务T1和所述第二转储任务T2;

其中,所述转储任务配置表包括:任务编号以及采集和转储配置信息;所述第一转储任务T1和所述第二转储任务T2的所述任务编号不同,所述采集和转储配置信息均相同。

3.根据权利要求2所述的SCADA系统升级时的实时数据转储方法,其特征在于,所述采集和转储配置信息包括以下一种或多种:任务名称、任务类型、数据采集和转储程序路径、数据采集和转储程序名称、采集任务编号以及转储目的数据表名。

4.根据权利要求1所述的SCADA系统升级时的实时数据转储方法,其特征在于,所述方法还包括:在建立SCADA系统实时数据转储任务队列后,设置所述第一转储任务T1和所述第二转储任务T2的主备关系;

其中,所述第一转储任务T1为主任务,所述第二转储任务T2为备任务。

5.根据权利要求1所述的SCADA系统升级时的实时数据转储方法,其特征在于,所述启动所述第一转储任务T1和所述第二转储任务T2包括:分别启动与所述第一转储任务T1相对应的第一数据采集和转储程序A1,以及与所述第二转储任务T2相对应的第二数据采集和转储程序A2;

通过所述第一数据采集和转储程序A1和所述第二数据采集和转储程序A2访问并记录运行信息到预设的任务同步表Y1。

6.根据权利要求5所述的SCADA系统升级时的实时数据转储方法,其特征在于,所述任务同步表Y1包括:任务编码、任务状态、状态变化时间、数据转储时点;其中,所述任务编码包括:代表主任务的第一编码M1和代表备任务的第二编码M2;所述任务状态包括:运行状态X1、故障状态X2、申请状态X3、续传状态X4和工作状态X5。

7.根据权利要求6所述的SCADA系统升级时的实时数据转储方法,其特征在于,所述由所述第一转储任务T1申请获取数据转储权,并执行正常的数据转储,以将所述实时数据写入预设的关系库数据表中包括:通过所述第一数据采集和转储程序A1设置所述任务同步表Y1中的所述第一转储任务T1的任务状态为申请状态X3,以申请所述数据转储权;

在获取所述数据转储权后,通过所述第一数据采集和转储程序A1执行正常数据转储任务过程,将采集到的实时数据写入预设的第一关系库数据表W1中;并将所述任务同步表Y1中的任务状态设置为工作状态X5,更新所述数据转储时点和所述状态变化时间。

8.根据权利要求7所述的SCADA系统升级时的实时数据转储方法,其特征在于,所述当所述第一转储任务T1在进行数据转储过程中出现因程序升级引起的故障时,由所述第二转储任务T2根据所述第二缓冲数据文件中存储的实时数据进行断点续传包括:由所述第二转储任务T2通过所述任务同步表Y1的任务状态判断所述第一转储任务T1的故障并申请获取数据转储权;

从所述任务同步表Y1的数据转储时点和状态变化时间获取所述第一转储任务T1的第一数据断点B1;所述第一数据断点B1是在所述第一数据采集和转储程序A1升级之前因关闭所述第一数据采集和转储程序A1而生成的数据断点;

从所述第二缓冲数据文件中提取包括所述第一数据断点B1的连续数据队列并执行续传过程,以进行断点续传。

9.根据权利要求8所述的SCADA系统升级时的实时数据转储方法,其特征在于,所述当所述第二转储任务T2出现因程序升级引起的故障,或者所述第一转储任务T1已升级完成时,由所述第一转储任务T1根据所述第一缓冲数据文件中存储的实时数据进行断点续传包括:由所述第一转储任务T1通过所述任务同步表Y1的任务状态判断所述第二转储任务T2的故障并申请获取所述数据转储权;从所述任务同步表Y1的数据转储时点和状态变化时间获取所述第二转储任务T2的第二数据断点B2;所述第二数据断点B2是在所述第二数据采集和转储程序A2升级之前因关闭所述第二数据采集和转储程序A2而生成的数据断点;或者,由已升级完成的所述第一转储任务T1主动申请获取所述数据转储权,所述第二转储任务T2退出正常的数据转储任务生成所述第二数据断点B2;

所述第一转储任务T1从所述第一缓冲数据文件中提取包括所述第二数据断点B2的连续数据队列并执行续传过程,以进行断点续传。

10.一种数据采集与监视控制SCADA系统升级时的实时数据转储装置,包括:处理器和计算机可读存储介质,所述计算机可读存储介质中存储有指令,其特征在于,当所述指令被所述处理器执行时,实现如权利要求1-9任意一项所述的SCADA系统升级时的实时数据转储方法。

说明书 :

一种SCADA系统升级时的实时数据转储方法和装置

技术领域

[0001] 本发明实施例涉及数据转储技术,尤指一种SCADA系统升级时的实时数据转储方法和装置。

背景技术

[0002] 工业自动化控制领域,常见使用SCADA(Supervisory Control And Data Acquisition数据采集与监视控制)采集数据和监控现场运行设备,现场安装有各类仪表和通讯设备,SCADA系统通过通讯协议采集获取数据,因SCADA系统自身已有数据存储功能,因此通过SCADA系统软件模块能够实现对所需监测数据项的历史数据趋势查看和分析,又因上层数据分析模块需要底层数据进行计算和分析得出各项计量数据、运行指标等汇总数据,需要通过SCADA系统实时转储基础数据到关系数据库,由上层应用软件访问该数据并计算后进行业务分析。
[0003] SCADA系统实时数据转储运行环境一般包括:SCADA服务器运行SCADA软件系统和实时数据转储程序、数据库服务器运行关系型数据库、应用服务器运行上层行业应用软件等。
[0004] SCADA软件系统从现场设备采集实时数据,实时数据转储程序通过接口或常规通讯协议访问实时数据库获取数据,提供给上层行业应用软件可访问的关系数据库数据。
[0005] 目前,SCADA系统常用的数据转储措施包括:
[0006] (1)ADO数据处理脚本
[0007] SCADA定时脚本内嵌ADO数据处理脚本,直接将实时SCADA变量数据写入历史库。
[0008] ADO(ActiveX Data Objects):一种程序对象,用于表示用户数据库中的数据结构和所包含的数据,使用ADO对象来创建或修改表和查询、检验数据库、或者访问外部数据源。
[0009] (2)ODBC数据转储组件
[0010] ODBC数据转储组件获取数据的方式是通过SCADA厂家SDK访问内部接口,将实时数据按照一定的格式定时通过ODBC方式转储到关系数据库里。
[0011] ODBC(Open Database Connectivity开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture视窗开放服务架构)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。
[0012] SDK(Software Development Kit软件开发工具)是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合,本专利用到的为SCADA软件厂商提供的应用程序接口API,通过该接口访问SCADA实时数据库。
[0013] (3)OPC数据采集和存储软件
[0014] 部署OPC数据采集和存储软件,该软件通过OPC方式获取SCADA实时数据,由该软件定时采集实时数据并通过ODBC方式写入关系数据库。
[0015] OPC(OLE for Process Control过程控制的对象连接与嵌入)是基于Microsoft公司COM/DCOM(分布式组件对象模型)技术和DNA(Distributed internet Application分布式互联网应用程序)构架,为解决现场管理层与过程控制层之间的通信标准而设计的规范,它提供了过程管理应用与现场自动化控制系统以及设备进行数据通信的一种标准机制。
[0016] 然而,目前的SCADA系统数据转储存在以下缺点:
[0017] (1)ADO数据处理脚本
[0018] 因为ADO脚本复杂和维护不方便,并且运行过程会影响SCADA系统软件运行效率,使用较少。
[0019] (2)使用ODBC数据转储组件或OPC数据采集和存储软件过程中常出现因SCADA系统升级导致数据丢失的现象:
[0020] SCADA系统升级可以包括SCADA系统数据采集项目调整升级、OPC数据采集和存储软件配置项目和软件升级等系统升级,配置项目调整后需重启OPC数据采集和存储软件,造成数据丢失。
[0021] 针对上述问题,目前常见的解决方法如下:
[0022] 传统解决方法通过监测进程是否异常、检测数据是否停止转储,重新启动和激活软件功能,并进行人为维护和补全数据(查询SCADA历史库数据记录,人工补齐)。但目前的这些解决方案仍存在以下问题:
[0023] (1)数据出现长时间断续,补齐工作量大;
[0024] (2)部分数据不全,导致定时数据计算的结果存在偏差;
[0025] (3)数据维护成本高;
[0026] (4)影响上层数据计算和分析处理应用功能。

发明内容

[0027] 为了解决上述技术问题,本发明实施例提供了一种数据采集与监视控制SCADA系统升级时的实时数据转储方法和装置,能够解决SCADA系统实时数据转储过程中出现的因软件升级维护引起的数据断续问题,避免了故障引发的故障恢复、补齐历史数据行为,保证了数据转储的顺序写入,从而提高了SCADA系统实时数据转储的稳定性。。
[0028] 于本发明的一个实施例中,提供了:
[0029] (1)一种SCADA系统升级时的实时数据转储方法,可以包括:
[0030] 建立SCADA系统实时数据转储任务队列;所述实时数据转储任务队列中至少包括:第一转储任务T1和第二转储任务T2;
[0031] 启动所述第一转储任务T1和所述第二转储任务T2,并分别通过所述第一转储任务T1和所述第二转储任务T2不间断采集实时数据,存入相应的第一缓冲数据文件和第二缓冲数据文件;
[0032] 由所述第一转储任务T1申请获取数据转储权,并执行正常的数据转储,以将所述实时数据写入预设的关系库数据表中;
[0033] 当所述第一转储任务T1在进行数据转储过程中出现因程序升级引起的故障时,由所述第二转储任务T2根据所述第二缓冲数据文件中存储的实时数据进行断点续传,实现自动故障恢复;当所述第二转储任务T2出现因程序升级引起的故障,或者所述第一转储任务T1已升级完成时,由所述第一转储任务T1根据所述第一缓冲数据文件中存储的实时数据进行断点续传。
[0034] 在本发明的其他的多种实施方式中:
[0035] (2)根据(1)所述的SCADA系统升级时的实时数据转储方法,其中,所述建立SCADA系统实时数据转储任务队列可以包括:
[0036] 设置转储任务配置表;
[0037] 在所述转储任务配置表中配置所述第一转储任务T1和所述第二转储任务T2;
[0038] 其中,所述转储任务配置表包括:任务编号以及采集和转储配置信息;所述第一转储任务T1和所述第二转储任务T2的所述任务编号不同,所述采集和转储配置信息均相同。
[0039] (3)根据(2)所述的SCADA系统升级时的实时数据转储方法,其中,所述采集和转储配置信息可以包括以下一种或多种:任务名称、任务类型、数据采集和转储程序路径、数据采集和转储程序名称、采集任务编号以及转储目的数据表名。
[0040] (4)根据(1)所述的SCADA系统升级时的实时数据转储方法,所述方法还可以包括:在建立SCADA系统实时数据转储任务队列后,设置所述第一转储任务T1和所述第二转储任务T2的主备关系;
[0041] 其中,所述第一转储任务T1为主任务,所述第二转储任务T2为备任务。
[0042] (5)根据(1)所述的SCADA系统升级时的实时数据转储方法,其中,所述启动所述第一转储任务T1和所述第二转储任务T2可以包括:
[0043] 分别启动与所述第一转储任务T1相对应的第一数据采集和转储程序A1,以及与所述第二转储任务T2相对应的第二数据采集和转储程序A2;
[0044] 通过所述第一数据采集和转储程序A1和所述第二数据采集和转储程序A2访问并记录运行信息到预设的任务同步表Y1。
[0045] (6)根据(5)所述的SCADA系统升级时的实时数据转储方法,其中,所述任务同步表Y1可以包括:任务编码、任务状态、状态变化时间、数据转储时点;
[0046] 其中,所述任务编码包括:代表主任务的第一编码M1和代表备任务的第二编码M2;
[0047] 所述任务状态包括:运行状态X1、故障状态X2、申请状态X3、续传状态X4和工作状态X5。
[0048] (7)根据(6)所述的SCADA系统升级时的实时数据转储方法,其中,所述由所述第一转储任务T1申请获取数据转储权,并执行正常的数据转储,以将所述实时数据写入预设的关系库数据表中可以包括:
[0049] 通过所述第一数据采集和转储程序A1设置所述任务同步表Y1中的所述第一转储任务T1的任务状态为申请状态X3,以申请所述数据转储权;
[0050] 在获取所述数据转储权后,通过所述第一数据采集和转储程序A1执行正常数据转储任务过程,将采集到的实时数据写入预设的第一关系库数据表W1中;并将所述任务同步表Y1中的任务状态设置为工作状态X5,更新所述数据转储时点和所述状态变化时间。
[0051] (8)根据(7)所述的SCADA系统升级时的实时数据转储方法,其中,所述当所述第一转储任务T1在进行数据转储过程中出现因程序升级引起的故障时,由所述第二转储任务T2根据所述第二缓冲数据文件中存储的实时数据进行断点续传包括:
[0052] 由所述第二转储任务T2通过所述任务同步表Y1的任务状态判断所述第一转储任务T1的故障并申请获取数据转储权;
[0053] 从所述任务同步表Y1的数据转储时点和状态变化时间获取所述第一转储任务T1的第一数据断点B1;所述第一数据断点B1是在所述第一数据采集和转储程序A1升级之前因关闭所述第一数据采集和转储程序A1而生成的数据断点;
[0054] 从所述第二缓冲数据文件中提取包括所述第一数据断点B1的连续数据队列并执行续传过程,以进行断点续传。
[0055] (9)根据(8)所述的SCADA系统升级时的实时数据转储方法,其中,所述当所述第二转储任务T2出现因程序升级引起的故障,或者所述第一转储任务T1已升级完成时,由所述第一转储任务T1根据所述第一缓冲数据文件中存储的实时数据进行断点续传包括:
[0056] 由所述第一转储任务T1通过所述任务同步表Y1的任务状态判断所述第二转储任务T2的故障并申请获取所述数据转储权;从所述任务同步表Y1的数据转储时点和状态变化时间获取所述第二转储任务T2的第二数据断点B2;所述第二数据断点B2是在所述第二数据采集和转储程序A2升级之前因关闭所述第二数据采集和转储程序A2而生成的数据断点;或者,由已升级完成的所述第一转储任务T1主动申请获取所述数据转储权,所述第二转储任务T2退出正常的数据转储任务生成所述第二数据断点B2;
[0057] 所述第一转储任务T1从所述第一缓冲数据文件中提取包括所述第二数据断点B2的连续数据队列并执行续传过程,以进行断点续传。于本发明的另一个实施例中,提供了:
[0058] (10)一种数据采集与监视控制SCADA系统升级时的实时数据转储装置,包括:处理器和计算机可读存储介质,所述计算机可读存储介质中存储有指令,其中,当所述指令被所述处理器执行时,实现上述的提高SCADA系统实时数据转储稳定性的方法。
[0059] 本发明实施例包括:建立SCADA系统实时数据转储任务队列;所述实时数据转储任务队列中至少包括:第一转储任务T1和第二转储任务T2;启动所述第一转储任务T1和所述第二转储任务T2,并分别通过所述第一转储任务T1和所述第二转储任务T2不间断采集实时数据,存入相应的第一缓冲数据文件和第二缓冲数据文件;由所述第一转储任务T1申请获取数据转储权,并执行正常的数据转储,以将所述实时数据写入预设的关系库数据表中;当所述第一转储任务T1在进行数据转储过程中出现因程序升级引起的故障时,由所述第二转储任务T2根据所述第二缓冲数据文件中存储的实时数据进行断点续传,实现自动故障恢复;当所述第二转储任务T2出现因程序升级引起的故障,或者所述第一转储任务T1已升级完成时,由所述第一转储任务T1根据所述第一缓冲数据文件中存储的实时数据进行断点续传。通过该实施例方案,解决SCADA系统实时数据转储过程中因程序升级产生的故障引起的数据断续问题,实现了防止数据转储过程异常后出现的数据断续,避免了升级引发的故障无法自动恢复、补齐历史数据行为,保证了数据转储的顺序写入,从而提高了SCADA系统实时数据转储的稳定性。
[0060] 本发明实施例的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

[0061] 附图用来提供对本发明实施例技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明实施例的技术方案,并不构成对本发明实施例技术方案的限制。
[0062] 图1为本发明实施例的数据采集与监视控制SCADA系统升级时的实时数据转储方法流程图;
[0063] 图2为本发明实施例的SCADA系统实时数据转储方法结构示意图;
[0064] 图3为本发明实施例的启动第一转储任务T1和第二转储任务T2的方法流程图;
[0065] 图4为本发明实施例的由第一转储任务T1申请获取数据转储权,并执行正常的数据转储的方法流程图;
[0066] 图5为本发明实施例的当第一转储任务T1在进行数据转储过程中出现因程序升级引起的故障时,由第二转储任务T2根据第二缓冲数据文件中存储的实时数据进行断点续传的方法流程图;
[0067] 图6为本发明实施例的当第二转储任务T2出现因程序升级引起的故障,或者第一转储任务T1已升级完成时,由第一转储任务T1根据第一缓冲数据文件中存储的实时数据进行断点续传的方法流程图;
[0068] 图7为本发明实施例的SCADA系统升级时的实时数据转储装置组成框图。

具体实施方式

[0069] 为使本发明实施例的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0070] 在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0071] 实施例一
[0072] 一种数据采集与监视控制SCADA系统升级时的实时数据转储方法,如图1、图2所示,可以包括S101-S104:
[0073] S101、建立SCADA系统实时数据转储任务队列;所述实时数据转储任务队列中至少包括:第一转储任务T1和第二转储任务T2;
[0074] S102、启动所述第一转储任务T1和所述第二转储任务T2,并分别通过所述第一转储任务T1和所述第二转储任务T2不间断采集实时数据,存入相应的第一缓冲数据文件和第二缓冲数据文件;
[0075] S103、由所述第一转储任务T1申请获取数据转储权,并执行正常的数据转储,以将所述实时数据写入预设的关系库数据表中;
[0076] S104、当所述第一转储任务T1在进行数据转储过程中出现因程序升级引起的故障时,由所述第二转储任务T2根据所述第二缓冲数据文件中存储的实时数据进行断点续传,实现自动故障恢复;当所述第二转储任务T2出现因程序升级引起的故障,或者所述第一转储任务T1已升级完成时,由所述第一转储任务T1根据所述第一缓冲数据文件中存储的实时数据进行断点续传。
[0077] 在本发明实施例中,为了解决背景技术中所提出的问题,建立了SCADA系统实时数据转储任务队列,并行运行多个数据采集和转储程序,建立软件同步运行机制,建立数据缓冲机制,提供在线运行备份功能,数据转储任务不间断采集实时数据并写入缓冲数据文件;转储任务在执行转储任务前须获得数据转储权;数据采集或转储异常时,实现故障记录和冗余处理,转储任务通过断点续传实现数据转储程序升级后的自动故障恢复,能够较大提高SCADA系统实时数据转储的稳定性。
[0078] 在本发明实施例中,通过SCADA系统实时数据转储任务在线冗余、SCADA系统实时数据转储断点续传等业务功能,本发明能够解决数据采集和转储程序升级的业务数据断点问题,实现业务数据自动恢复处理和无断点升级效果。
[0079] 在本发明实施例中,SCADA系统升级可以包括但不限于以下任意一种或多种:SCADA系统数据采集项目调整升级、OPC数据采集以及存储软件配置项目和软件升级。
[0080] 实施例二
[0081] 该实施例在实施例一的基础上,给出了建立SCADA系统实时数据转储任务队列的一种具体实施方式。
[0082] 在本发明实施例中,所述建立SCADA系统实时数据转储任务队列可以包括:
[0083] 设置转储任务配置表;
[0084] 在所述转储任务配置表中配置所述第一转储任务T1和所述第二转储任务T2;
[0085] 其中,所述转储任务配置表包括:任务编号以及采集和转储配置信息;所述第一转储任务T1和所述第二转储任务T2的所述任务编号不同,所述采集和转储配置信息均相同。
[0086] 在本发明实施例中,可以设置转储任务配置表C2,该转储任务配置表C2中配置两个转储任务分别为第一转储任务T1和第二转储任务T2。第一转储任务T1和第二转储任务T2的任务编号不同,采集和转储配置信息相同。
[0087] 在本发明实施例中,所述采集和转储配置信息可以包括以下一种或多种:任务名称、任务类型、数据采集和转储程序路径、数据采集和转储程序名称、采集任务编号以及转储目的数据表名。
[0088] 在本发明实施例中,转储任务配置表C2可以包括任务编号、任务名称、任务类型、数据采集和转储程序路径、数据采集和转储程序名称、采集任务编号、转储目的数据表名等信息项中的一项或多项。
[0089] 在本发明实施例中,所述方法还可以包括:在建立SCADA系统实时数据转储任务队列后,设置所述第一转储任务T1和所述第二转储任务T2的主备关系;其中,所述第一转储任务T1为主任务(M1),所述第二转储任务T2为备任务(M2)。
[0090] 在本发明实施例中,在转储任务配置表C2中,可以设置第一转储任务T1的任务类型为主任务(M1),设置第二转储任务T2的任务类型为备任务(M2)。
[0091] 在本发明实施例中,在建立SCADA系统实时数据转储任务队列之前,可以预先设置的采集数据配置表C1,以便根据该采集数据配置表C1执行不间断的实时数据采集任务。
[0092] 在本发明实施例中,采集数据配置表C1中可以包含要从SCADA系统获取并转储的数据项信息,具体可以包含以下任意一项或多项信息:采集任务编号、采集的输入输出IO点名称、数据项名称、采集频率、取值方式等。
[0093] 实施例三
[0094] 该实施例在实施例一或实施例二的基础上,给出了启动所述第一转储任务T1和所述第二转储任务T2的一种具体实施方式。
[0095] 在本发明实施例中,如图3所示,所述启动所述第一转储任务T1和所述第二转储任务T2可以包括S201-S202:
[0096] S201、分别启动与所述第一转储任务T1相对应的第一数据采集和转储程序A1,以及与所述第二转储任务T2相对应的第二数据采集和转储程序A2;
[0097] S202、通过所述第一数据采集和转储程序A1和所述第二数据采集和转储程序A2访问并记录运行信息到预设的任务同步表Y1。
[0098] 在本发明实施例中,可以预先编写与所述第一转储任务T1相对应的第一数据采集和转储程序A1,以及与所述第二转储任务T2相对应的第二数据采集和转储程序A2;再启动第一转储任务T1和第二转储任务T2时,可以分别启动第一数据采集和转储程序A1和第二数据采集和转储程序A2,程序A1和程序A2访问并记录运行信息到任务同步表Y1,并记录任务同步表Y1中的任务状态为X1(运行)状态。
[0099] 在本发明实施例中,所述任务同步表Y1可以包括:任务编码、任务状态、状态变化时间、数据转储时点;
[0100] 其中,所述任务编码包括:代表主任务的第一编码M1和代表备任务的第二编码M2;
[0101] 所述任务状态包括:运行状态X1、故障状态X2、申请状态X3、续传状态X4和工作状态X5。
[0102] 在本发明实施例中,任务编码(或称任务类型编码)说明:M1(主):主任务;M2(备):备任务。即,在相应的任务编码栏设置M1时,指对应的转储任务为主任务;在相应的任务编码栏设置M2时,指对应的转储任务为备任务。
[0103] 在本发明实施例中,该任务编码可以包括但不限于字母M1和M2,还可以采用除M1和M2以外的任何数字、字母、字符等。
[0104] 在本发明实施例中,任务状态说明:
[0105] X1(运行):软件启动后,在任务同步表Y1的任务状态项写入该状态;
[0106] X2(故障):软件转储出现异常,在任务同步表Y1的任务状态项写入该状态;
[0107] X3(申请):申请执行数据转储任务,当任务状态不在转储(非续传状态和非工作状态)或更新时间已失效(如更新时间小于60秒的记录),则可将任务状态更新为申请状态;
[0108] X4(续传):执行断点续传工作;
[0109] X5(工作):执行实时转储工作。
[0110] 在本发明实施例中,该任务状态的表示方式可以包括但不限于字母X1-X5,还可以采用除X1-X5以外的任何数字、字母、字符等。
[0111] 在本发明实施例中,数据采集和转储任务程序的实现方式可以选择OPC方式或接口调用方式。
[0112] 实施例四
[0113] 该实施例在上述任意实施例的基础上,给出了分别通过所述第一转储任务T1和所述第二转储任务T2不间断采集实时数据,存入相应的第一缓冲数据文件和第二缓冲数据文件的一种具体实施方式。
[0114] 在本发明实施例中,可以按照预先设置的采集数据配置表C1信息从SCADA系统获取实时数据,数据采集和转储程序启动后,该程序可以执行不间断的实时数据采集任务。
[0115] 在本发明实施例中,分别通过所述第一转储任务T1和所述第二转储任务T2不间断采集实时数据,存入相应的第一缓冲数据文件和第二缓冲数据文件具体可以包括:不间断执行第一转储任务T1的采集过程K1_1和写入缓冲数据过程K3_1;并不间断执行第二转储任务T2的采集过程K1_2和写入缓冲数据过程K3_2。
[0116] 在本发明实施例中,不间断执行第一转储任务T1的采集过程K1_1和写入缓冲数据过程K3_1可以包括:第一转储任务T1的第一数据采集和转储程序A1按照采集数据配置表C1列表,执行采集过程K1_1,从SCADA实时库获取实时数据;执行K3_1过程,将实时数据写入第一缓冲数据文件F1。
[0117] 在本发明实施例中,不间断执行第二转储任务T2的采集过程K1_2和写入缓冲数据过程K3_2可以包括:第二转储任务T2的第二数据采集和转储程序A2按照采集数据配置表C1列表,执行采集过程K1_2,从SCADA实时库获取实时数据;执行K3_2过程,将实时数据写入第二缓冲数据文件F2。
[0118] 实施例五
[0119] 该实施例在上述任意实施例的基础上,给出了第一转储任务T1申请获取数据转储权的一种具体实施方式。
[0120] 在本发明实施例中,如图4所示,由所述第一转储任务T1申请获取数据转储权,并执行正常的数据转储,以将所述实时数据写入预设的关系库数据表中可以包括S301-S302:
[0121] S301、通过所述第一数据采集和转储程序A1设置所述任务同步表Y1中的所述第一转储任务T1的任务状态为申请状态X3,以申请所述数据转储权;
[0122] S302、在获取所述数据转储权后,通过所述第一数据采集和转储程序A1执行正常数据转储任务过程,将采集到的实时数据写入预设的第一关系库数据表W1中;并将所述任务同步表Y1中的任务状态设置为工作状态X5,更新所述数据转储时点和所述状态变化时间。
[0123] 在本发明实施例中,可以通过第一数据采集和转储程序A1执行数据转储权申请过程K2_1,以使得标记为主任务的第一转储任务T1申请获取数据转储权。具体地,可以通过第一数据采集和转储程序A1设置任务同步表Y1中第一转储任务T1的相应任务状态为X3(申请)状态,以申请数据转储权。
[0124] 在本发明实施例中,也可以首先通过第二数据采集和转储程序A2执行数据转储权申请过程K2_2,以使得标记为副任务的第二转储任务T2申请获取数据转储权。具体地可以根据实际应用场景自行定义,在此不做具体限制。
[0125] 在本发明实施例中,第一转储任务T1获取数据转储权后,执行正常数据转储,将实时数据写入关系库数据表,具体可以包括:第一转储任务T1的第一数据采集和转储程序A1执行正常数据转储任务过程K5_1,将采集到的实时数据写入数据表W1中,任务同步表Y1中第一转储任务T1的任务状态设置为X5(工作)状态,更新数据转储时点和状态变化时间。第一转储任务T1继续不间断执行转储任务过程K5_1。
[0126] 在本发明实施例中,数据表W1中可以包括但不限于下述的任意一项或多项:IO(输入输出)点代码、数据项名称、值以及采集时间等
[0127] 实施例六
[0128] 该实施例在实施例一至五的基础上,给出了第一转储任务T1在进行数据转储过程中出现因程序升级引起的故障时,第二转储任务T2进行断点续传的一种具体实施方式。
[0129] 在本发明实施例中,如图5所示,所述当所述第一转储任务T1在进行数据转储过程中出现因程序升级引起的故障时,由所述第二转储任务T2根据所述第二缓冲数据文件中存储的实时数据进行断点续传可以包括S401-S403:
[0130] S401、由所述第二转储任务T2通过所述任务同步表Y1的任务状态判断所述第一转储任务T1的故障并申请获取数据转储权;
[0131] S402、从所述任务同步表Y1的数据转储时点和状态变化时间获取所述第一转储任务T1的第一数据断点B1;所述第一数据断点B1是在所述第一数据采集和转储程序A1升级之前因关闭所述第一数据采集和转储程序A1而生成的数据断点;
[0132] S403、从所述第二缓冲数据文件中提取包括所述第一数据断点B1的连续数据队列并执行续传过程,以进行断点续传。
[0133] 在本发明实施例中,第一转储任务T1的第一数据采集和转储程序A1可能存在因升级而造成的第一转储任务T1故障,在第一数据采集和转储程序A1升级之前,会关闭第一数据采集和转储程序A1,第一转储任务T1故障发生,形成第三数据断点B3。
[0134] 在本发明实施例中,第一转储任务T1的第一数据采集和转储程序A1执行数据转储任务过程K5_1出现故障后,第一数据采集和转储程序A1的故障记录过程K4_1,可以将故障数据时点记录到任务故障表Y2中,任务故障表Y2中的恢复状态项标记为未恢复,任务同步表Y1中第一转储任务T1对应的任务状态设置为X2(故障)状态,并更新状态变化时间。
[0135] 在本发明实施例中,第二转储任务T2进行断点续传实现故障恢复过程,具体可以包括:
[0136] 1、第二转储任务T2判断第一转储任务T1故障并申请获取数据转储权;即,第二转储任务T2访问任务同步表Y1判断第一转储任务T1故障,第二转储任务T2申请并获取数据转储权,任务同步表Y1中第二转储任务T2相对应的任务状态赋为X3(申请)状态;
[0137] 2、从任务状态表Y1中获取第一转储任务T1的数据断点,标记为第一数据断点B1;
[0138] 3、对第一数据断点B1进行断点续传,实现故障恢复;即,第二数据采集和转储程序A2执行提取缓冲数据过程K3_2,从第二缓冲数据文件F2中提取缓冲数据,获取包括第一数据断点B1的连续数据队列并执行续传过程K5_2(该续传过程K5_2也是第二转储任务T2的正常数据转储任务过程);完成断点续传后,更改预设的任务故障表Y2的恢复状态为已恢复,并更新所述任务同步表Y1的数据转储时点和状态变化时间。
[0139] 在本发明实施例中,第二数据采集和转储程序A2不间断执行数据转储任务过程K5_2期间,将采集到的实时数据写入数据表W1,任务同步表Y1中第二转储任务T2的任务状态设置为X5(工作)状态。
[0140] 在本发明实施例中,上述的任务故障表Y2中的恢复状态可以采用不同的状态标识来表示,该状态标识可以包括但不限于数值01和02,其中,01可以表示未恢复,02可以表示已恢复;在其它实施例中,还可以采用除01和02以外的任何数字、字母、字符等。
[0141] 实施例七
[0142] 该实施例在实施例六的基础上,给出了当所述第二转储任务T2出现因程序升级引起的故障,或者所述第一转储任务T1已升级完成时,第一转储任务T1进行断点续传的一种具体实施方式。
[0143] 在本发明实施例中,如图6所示,所述当所述第二转储任务T2出现因程序升级引起的故障,或者所述第一转储任务T1已升级完成时,由所述第一转储任务T1根据所述第一缓冲数据文件中存储的实时数据进行断点续传可以包括S501-S502:
[0144] S501、由所述第一转储任务T1通过所述任务同步表Y1的任务状态判断所述第二转储任务T2的故障并申请获取所述数据转储权;从所述任务同步表Y1的数据转储时点和状态变化时间获取所述第二转储任务T2的第二数据断点B2;所述第二数据断点B2是在所述第二数据采集和转储程序A2升级之前因关闭所述第二数据采集和转储程序A2而生成的数据断点;或者,由已升级完成的所述第一转储任务T1主动申请获取所述数据转储权,所述第二转储任务T2退出正常的数据转储任务生成所述第二数据断点B2;
[0145] S502、所述第一转储任务T1从所述第一缓冲数据文件中提取包括所述第二数据断点B2的连续数据队列并执行续传过程,以进行断点续传。
[0146] 在本发明实施例中,当所述第一转储任务T1未升级完成时,可以持续由所述第二转储任务T2进行断点续传;当所述第一转储任务T1已升级完成时,或者第二转储任务T2开始升级时,可以由所述第一转储任务T1重新申请所述数据转储权,并根据所述第一缓冲数据文件中存储的实时数据进行断点续传。
[0147] 在本发明实施例中,在第二转储任务T2进行断点续传过程中,第一转储任务T1的第一数据采集和转储程序A1升级完成后,可以恢复运行该第一数据采集和转储程序A1,即所述第一转储任务T1重新申请所述数据转储权,并获取所述第二转储任务T2的第二数据断点B2,执行数据转储过程K5_1,根据所述第一缓冲数据文件中存储的实时数据基于第二数据断点B2进行断点续传;将采集到的实时数据写入数据表W1,任务同步表Y1中第一转储任务T1的任务状态设置为X5(工作)状态,并且第一转储任务T1执行不间断转储过程K5_1。
[0148] 在本发明实施例中,道理同上,第二转储任务T2的第二数据采集和转储程序A2也可能存在因升级而造成的第二转储任务T2故障,在第二数据采集和转储程序A2升级之前,会关闭第二数据采集和转储程序A2,第二转储任务T2故障发生,形成数据断点。
[0149] 在本发明实施例中,第二转储任务T2的第二数据采集和转储程序A2执行正常的数据转储任务过程K5_2出现故障后,第二数据采集和转储程序A2的故障记录过程K4_2,可以将故障数据时点记录到任务故障表Y2中,任务故障表Y2中的恢复状态项标记为未恢复,任务同步表Y1中第二转储任务T2对应的任务状态设置为X2(故障)状态,并更新状态变化时间。
[0150] 在本发明实施例中,针对上述情况,恢复正常的所述第一转储任务T1可以重新申请所述数据转储权,并获取所述第二转储任务T2的数据断点,执行数据转储过程K5_1,根据所述第一缓冲数据文件中存储的实时数据基于该数据断点进行断点续传;将采集到的实时数据写入数据表W1,任务同步表Y1中第一转储任务T1的任务状态设置为X5(工作)状态,并且第一转储任务T1执行不间断转储过程K5_1。
[0151] 实施例八
[0152] 一种数据采集与监视控制SCADA系统升级时的实时数据转储装置1,如图7所示,可以包括:处理器11和计算机可读存储介质12,所述计算机可读存储介质12中存储有指令,当所述指令被所述处理器11执行时,实现上述的提高SCADA系统实时数据转储稳定性的方法。
[0153] 本发明实施例包括:建立SCADA系统实时数据转储任务队列;所述实时数据转储任务队列中至少包括:第一转储任务T1和第二转储任务T2;启动所述第一转储任务T1和所述第二转储任务T2,并分别通过所述第一转储任务T1和所述第二转储任务T2不间断采集实时数据,存入相应的第一缓冲数据文件和第二缓冲数据文件;由所述第一转储任务T1申请获取数据转储权,并执行正常的数据转储,以将所述实时数据写入预设的关系库数据表中;当所述第一转储任务T1在进行数据转储过程中出现因程序升级引起的故障时,由所述第二转储任务T2根据所述第二缓冲数据文件中存储的实时数据进行断点续传,实现自动故障恢复;当所述第二转储任务T2出现因程序升级引起的故障,或者所述第一转储任务T1已升级完成时,由所述第一转储任务T1根据所述第一缓冲数据文件中存储的实时数据进行断点续传。通过该实施例方案,解决SCADA系统实时数据转储过程中出现的因程序升级引起的数据断续问题,实现了防止数据转储过程异常后出现的数据断续,避免了升级引发的故障无法自动恢复、补齐历史数据行为,保证了数据转储的顺序写入,从而提高了SCADA系统实时数据转储的稳定性。
[0154] 本发明实施例方案至少包括以下有益效果:
[0155] 1、本发明实施例对SCADA系统数据转储程序升级出现的数据问题,能够减少人工维护成本,保证上层应用数据的合理性和正确性;
[0156] 本发明实施例能够实现发生故障后断点数据缓冲和自动转储功能,对于保证获取SCADA系统连续的实时运行数据,起到较好的数据保障功能,提高了整个应用的抗故障能力,通过该自愈功能减少人工维护的成本,也能够保证上层应用数据的合理性和正确性。
[0157] 2、本发明实施例对于SCADA系统数据业务整合系统,经常需要升级转储业务功能的SCADA系统上层软件,能够快速实现业务升级,发挥很好了稳定的历史数据连续转储功能;
[0158] 通过SCADA系统实时数据转储任务在线冗余、SCADA系统实时数据转储断点续传等业务功能,本发明能够解决数据采集和转储程序升级、数据库迁移的业务数据断点问题,实现业务数据自动恢复处理和无断点升级效果。
[0159] 3、数据采集和转储程序升级工作通过该实施例方案,升级过程实现数据无损失:数据转储任务通过在线冗余的手段,当关闭并升级一个数据采集和转储程序升级时,系统会自动判断断点,自动实现断点续传,实现数据无损失。
[0160] 本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。