法律状态公告日
法律状态信息
法律状态
2019-11-08
专利权的转移 IPC(主分类):G06F17/30 登记生效日:20191018 变更前: 变更后: 变更前:
专利申请权、专利权的转移
2019-10-01
专利权的转移 IPC(主分类):G06F17/30 登记生效日:20190911 变更前: 变更后:
专利申请权、专利权的转移
2014-06-11
授权
授权
2012-11-07
实质审查的生效 IPC(主分类):G06F17/30 申请日:20120331
实质审查的生效
2012-09-12
公开
公开
技术领域
本发明涉及一种数据控制方法。
背景技术
实时数据库是解决工业生产过程中的数据存储和上位机软件之间的数据共享的。它的主要特性是存储速度快,强调数据的时间一致性。
由于实时数据库是将数据存储在内存中,存储速度大约是传统数据库的100倍,甚至更高。这样在工业生产中就可以迅速的存储下位机传上来的数据,不致造成数据的丢失。实时数据库每个数据都有严格的时间特性,这可以精确到ms级,传统数据库做不到。
数据的一致性是值每个操作都有严格的时间限制,数据库中有完善的进程调用,保证数据存储和访问的时间特性。而传统的数据库各种操作是在一定意义上在什么时间完成是无法预知的,访问一个数据时可能由于系统的负荷较大需要很长的时间才能返回。
实时数据库存储数据时伴随着数据的压缩,在相同的存储空间中可以存储更多的数据。
在锅炉控制中,下位机较多,传感器返回数据量大,实时性有要求,故不能使用传统的数据库。
过程控制中涉及到下位机和上位机协调、数据共享、指令执行等操作,含有中间数据层,即实时数据库是十分必要的。实时数据库在工业程控制中处于数据核心的地位。
现在大规模的实时数据库产品较多,价格昂贵(以十万甚至百万记),主要是配合快速大容量数据记录、转存。而对于一般的工业控制,比如锅炉控制,功能实用、价格低廉的实时数据库却很少,但其有广阔的市场。
OPC是一种数据交互协议,基于COM技术。OPC技术中包含OPC服务器和OPC客户端。OPC客户端可以访问OPC服务器的数据,或者修改其中的数据。这种数据访问有很好的实时性,支持多个客户端同时访问。在工业控制中广泛使用,是一种各种设备厂商同时遵守的协议。
OPC技术中把OPC分为OPC服务器和OPC客户端,一个OPC服务器可以连接多个OPC 客户端,OPC客户端之间是并行的,数据写入和数据读取也是并行的。现在市场上通用的做法是,单独开发一个OPC服务器,将实时数据库作为一个OPC客户端,其他上位机软件都是一种客户端,上位机到实时数据库中取数据要经过两重OPC接口协议。系统的冗余较多,时序统一的难度也较大。
OPC服务器开发有三种方法,1)使用OPC服务器速成库,缺点是功能单一,缺乏灵活性,很难升级,修改相关程序功能。2)使用相关的软件开发包,缺点是要依赖开发包,功能扩展性不强。3)使用COM开发,直接使用底层的API函数,该方法最灵活,能够深入的掌握COM内部技术细节等特点,可以使用OPC协议所提供的所有的功能,不需要依赖其他动态链接库。COM是Component Object Model的缩写,是所有OLE机制的基础。本发明就是使用COM开发的OPC服务器。
发明内容
本发明的目的是为了解决一种锅炉控制中的OPC服务器的实时数据库数据快速存储的问题,提供一种锅炉控制中的基于OPC服务器的实时数据库实现数据实时更新的装置及方法。
锅炉控制中的基于OPC服务器的实时数据库实现数据实时更新的装置,它包括上位机、内置OPC服务器的实时数据库和多个下位机;
上位机与内置OPC服务器的实时数据库通过OPC接口连接,内置OPC服务器的实时数据库通过通信总线与多个下位机连接。
每个下位机向内置OPC服务器的实时数据库传输的数据包含读写标志位、CRC校验位、下位机的地址位和下位机的数据值信息。
所述的数据总线为串行RS8通信总线。
所述的下位机是传感器或执行机构。
所述的上位机为监控软件系统。
锅炉控制中的基于OPC服务器的实时数据库实现数据实时更新的装置的实现数据实时更新方法,它是按照如下步骤实现的:
步骤一、首先内置OPC服务器的实时数据库为每一个下位机根据其通信地址建立一个临时表Tmp表,该临时表Tmp表的表名为TmpXXX,其中XXX对应下位机的通信地址;临时表Tmp表内包括有两个数据项:[GetDataTime]和[FieldVal],[FieldVal]表示下位机上传的数据,[GetDataTime]表示获取[FieldVal]的时间;
步骤二、内置OPC服务器的实时数据库使用map表存储上一时刻的数据,该数据包括 下位机返回的位地址项和数据值两项数据;
步骤三、当下位机发送数据给内置OPC服务器的实时数据库的时候,进行实时数据库的快速数据插入和OPC服务器数据更新,其方法是:
步骤三一、内置OPC服务器的实时数据库接收到下位机所采集的数据,并对该传输的数据进行判断,判断该传输的数据是否满足CRC校验和通信总线协议,若满足,则执行步骤三二;若不满足,则执行步骤三三;
步骤三二、内置OPC服务器的实时数据库中实时数据库按照协议解析该数据的数据值和地址,同时与map表中上一时刻数据的数据值进行比较,该比较分为两种情况:
一、若该数据是数字量数据,比较该数据值与上一时刻map表中所存储的数据值是否相同,若是,则,内置OPC服务器的实时数据库对该数据不作存储,若否,则,存入该下位机的临时表Tmp表中;
二、若该数据是模拟量数据,比较该数据所设置初始阈值是否相同,若是,则,实时数据库对该数据不作存储,若否,则,存入该下位机的临时表Tmp表中;
然后内置OPC服务器的实时数据库更新map表并返回到步骤三一;
步骤三三、内置OPC服务器的实时数据库通知下位机重新发送数据,判断是否小于设定溢出时间和最大发送次数。
锅炉控制中的基于OPC服务器的数据实时更新方法,步骤三中所述的实时数据库中包含七个表:数字量数据表、模拟量数据表、名称-地址表、临时表、报警记录表、系统运行记录表和转存信息记录表;
数字量数据表中包含的数据项有:采集数字量数据的下位机的名称、下位机所采集数字量数据的首地址、下位机的所采集数字量数据的偏移地址、下位机的所采集数字量数据的全局地址、是否保存该数据的状态位、标志位和系统复位的初始值;
模拟量数据表中包含的数据项有:采集模拟量数据的下位机的名称、下位机所采集模拟量数据的首地址、下位机所采集模拟量数据的偏移地址、下位机所采集模拟量数据的全局地址、是否保存该数据初始值的状态位、下位机所采集模拟量数据的量程和下位机所采集模拟量数据的AD位数;
名称-地址表包含的数据项有:下位机的名称、下位机所采集数据的首地址、下位机所采集数据的全局地址、下位机所采集数据的变量类型和下位机所采集数据的标签号;
临时表Tmp表包含的数据项有:[GetDataTime]和[FieldVal],二者分别代表获取数据的时间和数组值,数据值是指经过解码得到的模拟量和数字量值;
报警记录表包含的数据项有:报警的时间、报警时长、报警的下位机名称和是否解决问题标志位;
系统运行记录表:系统开始运行时间和系统累计运行时间;
转存信息记录表:系统转存开始时间、转存结束时间、转存历史数据库名称和转存数据库表名。
所述的实时数据库中的名称-地址表是由模拟量数据表和数字量数据表自动生成,生成该表后,先对该表的变量首地址由低到高排序,然后在此基础上对该表的变量类型进行由低到高排序,形成数据按照名称、首地址分类的表。
本发明中的实时数据库是采用统一的时间线程,按照时序改变标志变量的值。
本发明的优点是:
1、我们将OPC服务器做在实时数据库中,省去了将两者分开还需要一重OPC协议的接口,使系统更加简洁即减少了系统的硬件资源,同时OPC服务器与数据库、下位机联系更为紧密,使得数据传递更为灵活。如果将实时数据库作为一个OPC客户端,其他上位机软件都是一种客户端,上位机到实时数据库中取数据要经过两重OPC接口协议。系统的冗余较多,时序统一的难度也较大。
2、本发明采用的实时数据库的快速数据插入和OPC服务器数据更新算法减小了程序的冗余,缩小了程序存储空间,节约了硬件资源,可巧妙、简洁的实现对数据快速存储和实时性的保证:Map表只存储上一次更新的数据,数据量小,查找速度快,用于在当前数据插入时做数据比较,对数据的初期压缩起重要作用。TMP表存储经过初期压缩过的数据(比如数字量10 0 0 01会被压缩成101等),TMP表的结构十分简单只有数据项时间和数据值,方便快速数据插入操作,减小系统延时。并且通过全局唯一地址(uniqueadd)命名表名,查找方便。对TMP表的操作是在系统空闲时间操作,这时可以将TMP里的数据转存到数据库的其他表中,或者进一步压缩存入历史数据库(传统硬盘数据库)中。
3、数据库表的设计使得数据的插入和查找更加简洁,配合上面的对数据的操作流程,可以提高数据库数据操作效率。
4、OPC标签的设计方便组态人员操作。使得操作人员可以迅速定位传感器,配置组态软件。
5、软件整体独立,不需要其他运行库,使用COM技术开发,可以使用OPC协议所提供的所有的功能。
6、合理的软件体系结构设计,程序系统资源占用小,可维护性好,功能可升级。
附图说明
图1为本发明装置的结构示意图;
图2为实时数据库的快速数据插入示意图;
图3为实时数据库的快速数据插入和OPC服务器数据更新的方法流程图;
图4为原始的实时数据库的快速数据插入和OPC服务器数据更新采用的算法流程图;
图5为本发明实时数据库中的名称-地址表的结构图。
具体实施方式
具体实施方式一:下面结合图1说明本实施方式,。
锅炉控制中的基于OPC服务器的实时数据库实现数据实时更新的装置,它包括上位机1、内置OPC服务器的实时数据库2和多个下位机3;
上位机1与内置OPC服务器的实时数据库2通过OPC接口连接,内置OPC服务器的实时数据库2通过通信总线与多个下位机3连接。
具体实施方式二:下面结合图1说明本实施方式,本实施方式为对实施方式一的进一步说明,
锅炉控制中的基于OPC服务器的实时数据库实现数据实时更新的装置,每个下位机3向内置OPC服务器的实时数据库2传输的数据包含读写标志位、CRC校验位、下位机3的地址位和下位机3的数据值信息。
具体实施方式三:下面结合图1说明本实施方式,本实施方式为对实施方式一的进一步说明,
锅炉控制中的基于OPC服务器的实时数据库实现数据实时更新的装置,所述的数据总线4为串行RS485通信总线。
具体实施方式四:下面结合图1说明本实施方式,本实施方式为对实施方式一的进一步说明,
锅炉控制中的基于OPC服务器的实时数据库实现数据实时更新的装置,所述的下位机3是传感器或执行机构。
具体实施方式五:下面结合图1说明本实施方式,本实施方式为应用实施方式一装置的方法,
所述的上位机(1)为监控软件系统。
具体实施方式六:下面结合图2、图3、和图5说明本实施方式,本实施方式为应用实 施方式一装置的方法,
锅炉控制中的基于OPC服务器的实时数据库实现数据实时更新的装置的实现数据实时更新方法,其特征在于,它是按照如下步骤实现的:
步骤一、首先内置OPC服务器的实时数据库2为每一个下位机3根据其通信地址建立一个临时表Tmp表,该临时表Tmp表的表名为TmpXXX,其中XXX对应下位机3的通信地址;临时表Tmp表内包括有两个数据项:[GetDataTime]和[FieldVal],[FieldVal]表示下位机上传的数据,[GetDataTime]表示获取[FieldVal]的时间;
步骤二、内置OPC服务器的实时数据库2使用map表存储上一时刻的数据,该数据包括下位机3返回的32位地址项和数据值两项数据;
步骤三、当下位机3发送数据给内置OPC服务器的实时数据库2的时候,进行实时数据库的快速数据插入和OPC服务器数据更新,其方法是:
步骤三一、内置OPC服务器的实时数据库2接收到下位机3所采集的数据,并对该传输的数据进行判断,判断该传输的数据是否满足CRC校验和通信总线协议,若满足,则执行步骤三二;若不满足,则执行步骤三三;
步骤三二、内置OPC服务器的实时数据库2中实时数据库按照协议解析该数据的数据值和地址,同时与map表中上一时刻数据的数据值进行比较,该比较分为两种情况:
一、若该数据是数字量数据,比较该数据值与上一时刻map表中所存储的数据值是否相同,若是,则,内置OPC服务器的实时数据库2对该数据不作存储,若否,则,存入该下位机3的临时表Tmp表中;
二、若该数据是模拟量数据,比较该数据所设置初始阈值是否相同,若是,则,实时数据库2对该数据不作存储,若否,则,存入该下位机3的临时表Tmp表中;
然后内置OPC服务器的实时数据库2更新map表并返回到步骤三一;
步骤三三、内置OPC服务器的实时数据库2通知下位机重新发送数据,判断是否小于设定溢出时间和最大发送次数。
具体实施方式七:本实施方式为对实施方式六的进一步说明,
锅炉控制中的基于OPC服务器的数据实时更新方法,其特征在于,步骤三中所述的实时数据库中包含七个表:数字量数据表、模拟量数据表、名称-地址表、临时表、报警记录表、系统运行记录表和转存信息记录表;
数字量数据表中包含的数据项有:采集数字量数据的下位机3的名称、下位机3所采集数字量数据的首地址、下位机3的所采集数字量数据的偏移地址、下位机3的所采集数 字量数据的全局地址、是否保存该数据的状态位、标志位和系统复位的初始值;
模拟量数据表中包含的数据项有:采集模拟量数据的下位机3的名称、下位机3所采集模拟量数据的首地址、下位机3所采集模拟量数据的偏移地址、下位机3所采集模拟量数据的全局地址、是否保存该数据初始值的状态位、下位机3所采集模拟量数据的量程和下位机3所采集模拟量数据的AD位数;
名称-地址表包含的数据项有:下位机3的名称、下位机3所采集数据的首地址、下位机3所采集数据的全局地址、下位机3所采集数据的变量类型和下位机3所采集数据的标签号;
临时表Tmp表包含的数据项有:[GetDataTime]和[FieldVal],二者分别代表获取数据的时间和数组值,数据值是指经过解码得到的模拟量和数字量值;
报警记录表包含的数据项有:报警的时间、报警时长、报警的下位机3名称和是否解决问题标志位;
系统运行记录表:系统开始运行时间和系统累计运行时间;
转存信息记录表:系统转存开始时间、转存结束时间、转存历史数据库名称和转存数据库表名。
具体实施方式八:本实施方式为对实施方式六的进一步说明,
锅炉控制中的基于OPC服务器的实时数据库实现数据实时更新方法,所述的实时数据库中的名称-地址表是由模拟量数据表和数字量数据表自动生成,生成该表后,先对该表的变量首地址由低到高排序,然后在此基础上对该表的变量类型进行由低到高排序,形成数据按照名称、首地址分类的表。
具体实施方式九:本实施方式为对实施方式六的进一步说明,
锅炉控制中的基于OPC服务器的实时数据库实现数据实时更新方法,实时数据库采用统一的时间线程,按照时序改变标志变量的值。
本发明不局限于上述实施方式,还可以是上述各实施方式中所述技术特征的合理组合。
机译: 基于点云图的自动驾驶汽车行车道数据实时更新方法
机译: 如何在实时数据库管理系统(DBMS)中实现备份功能
机译: 在多进程环境中备份实时数据库系统的装置和方法