工业实时数据的缓存方法及装置与流程

文档序号:34025646发布日期:2023-05-05 08:59阅读:59来源:国知局
工业实时数据的缓存方法及装置与流程

本技术涉及数据处理,具体而言,涉及一种工业实时数据的缓存方法及装置。


背景技术:

1、在流程工业中,企业内各生产装置的工艺数据、运行状态等历史数据会被用来制作趋势图、各类统计报表、以及用于各类在线工艺分析等,随着生产过程持续进行,历史数据持续产生。由于工业实时数据具有位号量大、数据变化频率高的特点,在工业领域中通常使用实时数据库或时序库存储位号的历史数据。在实时数据库的存储设计上,为减少磁盘io数量,数据在写入到存档文件之前,通常会先写入存储内部的缓存区,由于存档文件的存储是按位号分块存储的,所以存储也是按照位号分配缓存区,数据写入到位号的缓存区内。

2、如果位号在缓存中存放的每个数据都有完整的时间标签、质量码以及数据,那占用的空间将会非常巨大,以往的实现方式是存储在一个跳表或哈希表,这种方法在每次增加数据时都需要申请内存,而向系统申请和释放内存都是非常耗性能的,并且由于存储的都是完整数据,会使用较多的内存。

3、针对上述的问题,目前尚未提出有效的解决方案。


技术实现思路

1、本技术实施例提供了一种工业实时数据的缓存方法及装置,以至少解决相关技术中缓存工业实时数据时需反复申请和释放内存,且内存占用较大的技术问题。

2、根据本技术实施例的一个方面,提供了一种工业实时数据的缓存方法,包括:获取第一采集时刻采集的目标测量点位的第一位号数据,第一位号数据中至少包括:第一采集时刻对应的第一时间标签,第一质量码和第一数据值;在第一采集时刻为初始采集时刻时,直接将第一位号数据写入目标缓存区域,并依据第一位号数据更新数据变量,其中,目标缓存区域为目标测量点位专用的缓存区域,数据变量包括:前值变量、时间差变量和缓存指针,前值变量用于反映位号数据,时间差变量用于反映相邻采集时刻的时间差;在第一采集时刻不是初始采集时刻时,获取数据变量,依据数据变量和第一位号数据确定待缓存的第二位号数据,将第二位号数据压缩写入目标缓存区域,并依据第一位号数据和数据变量更新数据变量。

3、可选地,在将第一位号数据写入目标缓存区域之前,从内存中划分目标缓存区域作为目标测量点位专用的缓存区域。

4、可选地,依据第一位号数据更新数据变量,包括:将第一位号数据写入前值变量;将时间差变量置为0;将目标缓存区域中第一位号数据的缓存地址作为缓存指针。

5、可选地,获取数据变量,依据数据变量和第一位号数据确定待缓存的第二位号数据,包括:获取数据变量中的前值变量和时间差变量,其中,前值变量中包括:第二采集时刻采集的目标测量点位的第二位号数据,第二采集时刻为第一采集时刻的上一相邻采集时刻,第二位号数据中至少包括:第二采集时刻对应的第二时间标签、第二质量码和第二数据值,时间差变量为0或第二采集时刻与第三采集时刻的第一差值,第三采集时刻为第二采集时刻的上一相邻采集时刻;计算第一时间标签与第二时间标签的第二差值,并计算第二差值与时间差变量的第三差值;计算第一质量码与第二质量码的第四差值;依据第一数据值的类型确定待缓存的目标数据值;依据第三差值、第四差值和第一数据值生成标记变量,将标记变量写入目标缓存区域,并依据标记变量确定第二位号数据,其中,第二位号数据中至少包括以下之一:第三差值,第四差值,目标数据值。

6、可选地,依据第一数据值的类型确定待缓存的目标数据值,包括:在第一数据值为布尔型数据时,不存在目标数据值;在第一数据值为整型数据时,计算第一数据值与第二数据值的第五差值,将第五差值作为目标数据值;在第一数据值为除布尔型、整型外的其他类型数据时,将第一数据值作为目标数据值。

7、可选地,依据第三差值、第四差值和第一数据值生成标记变量,包括:确定第三差值的时间单位,并依据时间单位确定标记变量中的第一标志位,其中,第一标志位至少包括:微秒标志位和毫秒标志位,在第三差值为0时,微秒标志位为0,毫秒标志位为0;在第三差值的时间单位为微秒时,微秒标志位为1,毫秒标志位为0;在第三差值的时间单位为毫秒时,微秒标志位为1,毫秒标志位为1;在第三差值的时间单位为秒时,微秒标志位为1,毫秒标志位为1;将第四差值作为标记变量中的第二标志位;依据第一数据值的类型确定标记变量中的第三标志位,其中,第三标志位至少包括:布尔量标志位和非布尔量标志位,在第一数据值为布尔型数据时,非布尔量标志位为第一预设值,布尔量标志位为第一数据值;在第一数据值不是布尔型数据时,非布尔量标志位为第二预设值,布尔量标志位为0。

8、可选地,依据标记变量确定第二位号数据,包括:在微秒标志位和毫秒标志位均为0时,确定第二位号数据中不包括第三差值;否则,确定第二位号数据中包括第三差值;在第二标志位为0时,确定第二位号数据中不包括第四差值;否则,确定第二位号数据中包括第四差值;在非布尔量标志位为1时,确定第二位号数据中包括目标数据值;否则,确定第二位号数据中不包括目标数据值。

9、可选地,依据第一位号数据和数据变量更新数据变量,包括:依据第一位号数据更新前值变量;依据第二差值更新时间差变量;依据目标缓存区域中第一位号数据的缓存地址更新缓存指针。

10、根据本技术实施例的另一方面,还提供了一种工业实时数据的缓存装置,包括:获取模块,用于获取第一采集时刻采集的目标测量点位的第一位号数据,第一位号数据中至少包括:第一采集时刻对应的第一时间标签,第一质量码和第一数据值;第一写入模块,用于在第一采集时刻为初始采集时刻时,直接将第一位号数据写入目标缓存区域,并依据第一位号数据更新数据变量,其中,目标缓存区域为目标测量点位专用的缓存区域,数据变量包括:前值变量、时间差变量和缓存指针,前值变量用于反映位号数据,时间差变量用于反映相邻采集时刻的时间差;第二写入模块,用于在第一采集时刻不是初始采集时刻时,获取数据变量,依据数据变量和第一位号数据确定待缓存的第二位号数据,将第二位号数据压缩写入目标缓存区域,并依据第一位号数据和数据变量更新数据变量。

11、根据本技术实施例的另一方面,还提供了一种电子设备,该电子设备包括:存储器和处理器,其中,存储器中存储有计算机程序,处理器被配置为通过计算机程序执行上述的工业实时数据的缓存方法。

12、在本技术实施例中,首先获取第一采集时刻采集的目标测量点位的第一位号数据,该第一位号数据中至少包括:第一采集时刻对应的第一时间标签,第一质量码和第一数据值;在第一采集时刻为初始采集时刻时,直接将第一位号数据写入目标缓存区域,并依据第一位号数据更新数据变量,其中,目标缓存区域为目标测量点位专用的缓存区域,数据变量包括:前值变量、时间差变量和缓存指针,前值变量用于反映位号数据,时间差变量用于反映相邻采集时刻的时间差;在第一采集时刻不是初始采集时刻时,获取数据变量,依据数据变量和第一位号数据确定待缓存的第二位号数据,将第二位号数据压缩写入目标缓存区域,并依据第一位号数据和数据变量更新数据变量。其中,通过为测量点位划分专用的缓存区域,避免了反复申请和释放内存,同时,只在首次缓存完整位号数据,后续只缓存数据变化值,并通过压缩写入,可有效减少内存占用,进而解决了相关技术中缓存工业实时数据时需反复申请和释放内存,且内存占用较大的技术问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1