一种多线程桥式起重机数据采集系统及方法转让专利

申请号 : CN201811636130.9

文献号 : CN109710580B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 肖乐俞瑞富吴魏陈旭汪勇强

申请人 : 明光利拓智能科技有限公司

摘要 :

本发明公开了一种多线程桥式起重机数据采集系统,包括:数据采集存储单元;所述数据采集存储单元用于采集设备的实时运行数据即数据,并对数据进行存储;所述数据采集存储单元A包括:数据采集存储线程池管理模块即DAS‑TPMM、数据处理线程池管理模块即DP‑TPMM。本发明采用将系统划分为多个模块的多线程管理方法,分别用于执行数据实时发布、正常存储和异常临时存储,执行数据压缩备份、空间报警和查询解压。

权利要求 :

1.一种多线程桥式起重机数据采集系统,其特征在于,所述系统包括:数据采集存储单元A;

所述数据采集存储单元A用于采集设备的实时运行数据,并对运行数据进行存储;所述数据采集存储单元A包括:数据采集存储线程池管理模块(1)即DAS-TPMM、数据处理线程池管理模块(2)即DP-TPMM;

所述数据采集存储线程池管理模块(1),用于从设备的传感器中实时获取设备的实时运行数据,并将所述运行数据存储至行车电脑IPC的数据库中的与采集当天对应的DB文件中;数据库中每天均会生成一个与当天对应的DB文件;所述数据采集存储线程池管理模块(1)还将实时获取的运行数据发送至外部显示设备;

所述数据处理线程池管理模块(2),用于对数据库中的DB文件进行分类存储,将与当天相距n天以上的DB文件作为往日DB文件,并对往日DB文件进行压缩得到往日DB文件的压缩包,在数据库中将已形成压缩包的往日DB文件删除,使数据库中仅存储有当天及与当天相距n天以内的DB文件,且该当天及与当天相距n天以内的DB文件即为近日DB文件;且往日DB文件中的运行数据即为往日数据,近日DB文件中的运行数据即为近日数据;

所述数据采集存储线程池管理模块(1)包括:采集通讯线程池(11)、直存线程池(13)、实时数据发布线程池(14):所述采集通讯线程池(11)为每个传感器均创建一个数据采集线程,分别从设备的多个传感器中并行获取运行数据;每个数据采集线程获取运行数据的时间保持一致,即所有数据采集线程同时获取运行数据,且数据采集线程获取运行数据的周期小于10ms;所述采集通讯线程池(11)将数据采集线程获取的运行数据分别发送至所述直存线程池(13)和所述实时数据发布线程池(14);

所述直存线程池(13)为每个数据采集线程均创建一个直存线程,对多个数据采集线程获取的运行数据进行并行存储,且均存储至DB文件中;

所述实时数据发布线程池(14)为每个数据采集线程均创建一个实时数据发布线程,将多个数据采集线程获取的运行数据并行发送至外部显示设备,用于实时运行数据的显示;

所述系统还包括冗余存储装置(5),所述直存线程池(13)中直存线程在将运行数据存储至DB文件的同时,还将所述运行数据同时存储至所述冗余存储装置(5)中;所述数据采集存储线程池管理模块(1)还包括找回补差线程(12);所述数据采集存储线程池管理模块(1)利用所述冗余存储装置(5)将运行数据持久化地存储至DB文件中,具体方式如下所示:若某个直存线程存储运行数据至DB文件失败时,则将所述运行数据标记为“失败待恢复”,同时,该直存线程将所述运行数据存储至所述冗余存储装置(5),且若该直存线程存储所述运行数据至所述冗余存储装置(5)成功时,则在所述冗余存储装置(5)将所述运行数据标记为“待找回”;

若某个直存线程存储运行数据至DB文件失败时,则将所述运行数据标记为“失败待恢复”,同时,该直存线程将所述运行数据存储至所述冗余存储装置(5),且若该直存线程存储所述运行数据至所述冗余存储装置(5)也失败时,则触发系统报警器,产生运行数据存储失败的报警信息;

若存在某个运行数据被标记为“失败待恢复”,则启动所述找回补差线程(12),所述找回补差线程(12)对标记为“失败待恢复”的运行数据进行找回,即将冗余存储装置(5)中被记为“待找回”的运行数据重新存储至DB文件。

2.根据权利要求1所述的一种多线程桥式起重机数据采集系统,其特征在于,所述数据处理线程池管理模块(2)包括:复制备份线程池(21)、备份压缩线程池(22);所述复制备份线程池(21)与所述备份压缩线程池(22)均为每隔n天运行一次,且二者同步运行;每隔n天对数据库中的DB文件进行一次复制备份及压缩删除的操作,以保证数据库中仅存储有当天及与当天相距n天以内的DB文件;具体操作方式如下所示:所述复制备份线程池(21)为数据库中非当天的每个DB文件均创建一个复制备份线程,并行对数据库中的非当天的DB文件进行复制备份,进行复制备份的DB文件即为往日DB文件;复制备份线程均采用非独占式读取创建;

所述备份压缩线程池(22)创建多个压缩线程,并行对每个复制备份后的文件即往日DB文件进行压缩,压缩得到往日DB文件的压缩包后,再将数据库中该往日DB文件的原始文件及其复制备份文件均删除。

3.根据权利要求2所述的一种多线程桥式起重机数据采集系统,其特征在于,所述数据处理线程池管理模块(2)还包括:解压线程池(23)、存储空间监控报警线程(24);

所述存储空间监控报警线程(24)用于对IPC的存储空间进行监控,实时获取IPC的剩余存储空间的容量,若剩余存储空间的容量小于设定的阈值,则产生“剩余存储空间低”的警告;

当系统中的数据读取发布线程池管理模块(3)读取往日运行数据时,所述解压线程池(23)创建多个解压线程,并行对往日DB文件的压缩包进行解压,以获取往日DB文件,并将所获取的往日DB文件存储至临时数据库中;

所述解压线程池(23)在解压前,先判断是否存在“剩余存储空间低”的警告,若存在,则解压线程全部置于暂停状态,即不进行解压操作;

若不存在,则对IPC的剩余存储空间的容量大小和待解压的往日DB文件的大小进行比较,判断是否满足解压条件,若不满足,即待解压的往日DB文件的大小大于IPC的剩余存储空间的容量大小,则不进行解该压操作;否则,解压线程开始对往日DB文件的压缩包进行解压。

4.根据权利要求1所述的一种多线程桥式起重机数据采集系统,其特征在于,所述冗余存储装置(5)为SD卡。

5.根据权利要求3所述的一种多线程桥式起重机数据采集系统,其特征在于,所述数据采集存储单元A的采集存储方法,包括以下具体步骤:S11,所述采集通讯线程池(11)创建多个数据采集线程,分别从设备的多个传感器中并行获取运行数据;所述采集通讯线程池(11)将数据采集线程获取的运行数据发送至所述直存线程池(13);

S12,所述直存线程池(13)为每个数据采集线程均创建一个直存线程,对多个数据采集线程获取的运行数据进行并行存储,且将运行数据分别存储至DB文件中和所述冗余存储装置(5)中;

若某个直存线程存储运行数据至DB文件失败时,则将所述运行数据标记为“失败待恢复”,同时,该直存线程将所述运行数据存储至所述冗余存储装置(5),且若该直存线程存储所述运行数据至所述冗余存储装置(5)成功时,则在所述冗余存储装置(5)将所述运行数据标记为“待找回”;

若某个直存线程存储运行数据至DB文件失败时,则将所述运行数据标记为“失败待恢复”,同时,该直存线程将所述运行数据存储至所述冗余存储装置(5),且若该直存线程存储所述运行数据至所述冗余存储装置(5)也失败时,则触发系统报警器,产生运行数据存储失败的报警信息;

若存在某个运行数据被标记为“失败待恢复”,则启动所述找回补差线程(12),所述找回补差线程(12)对标记为“失败待恢复”的运行数据进行找回,即将冗余存储装置(5)中被记为“待找回”的运行数据重新存储至DB文件;

S13,所述复制备份线程池(21)每隔n天进行一次复制备份操作,即为数据库中每个DB文件均创建一个复制备份线程,并行对数据库中的DB文件进行复制备份,复制备份得到的DB文件即为往日DB文件;

S14,所述备份压缩线程池(22)创建多个压缩线程,并行对每个往日DB文件进行压缩,压缩得到往日DB文件的压缩包后,再将数据库中该往日DB文件的原始文件及其备份文件均删除。

说明书 :

一种多线程桥式起重机数据采集系统及方法

技术领域

[0001] 本发明涉及设备信息监控技术领域,尤其是一种多线程桥式起重机数据采集系统及方法。

背景技术

[0002] 桥式起重机是横架于车间、仓库和料场上空进行物料吊运的起重设备。由于它的两端坐落在高大的水泥柱或者金属支架上,形状似桥。桥式起重机的桥架沿铺设在两侧高架上的轨道纵向运行,可以充分利用桥架下面的空间吊运物料,不受地面设备的阻碍。它是使用范围最广、数量最多的一种起重机械。桥式起重机的作用是使挂在吊钩或其他取物装置上的重物在空间实现垂直升降或水平运移。桥式起重机包括起升机构,大、小车运行机构,这些机构配合协同动作,可使重物在一定的立方形空间内起升和搬运。
[0003] 目前绝大部分桥式起重机在运行过程中,设备的实时运行数据没有被完整采集,经常会出现数据丢失、故障无法复现、行车记录难以回溯的问题;同时,由于设备运行数据往往只能存储一周左右,故需要设备点检人员频繁登车检查、导出和清理维护。
[0004] 因此,如何保证桥式起重机的设备运行数据完整记录,以及如何减少设备维护成本成为目前有待解决的问题。

发明内容

[0005] 为了克服上述现有技术中的缺陷,本发明提供一种多线程桥式起重机数据采集系统,采用将系统划分为多个模块的多线程管理方法,分别用于执行数据实时发布、正常存储和异常临时存储,执行数据压缩备份、空间报警和查询解压。
[0006] 为实现上述目的,本发明采用以下技术方案,包括:
[0007] 一种多线程桥式起重机数据采集系统,所述系统包括:数据采集存储单元A;
[0008] 所述数据采集存储单元A用于采集设备的实时运行数据即数据,并对数据进行存储;所述数据采集存储单元A包括:数据采集存储线程池管理模块即DAS-TPMM、数据处理线程池管理模块即DP-TPMM;
[0009] 所述数据采集存储线程池管理模块,用于从设备的传感器中实时获取设备的实时运行数据即数据,并将该数据存储至行车电脑IPC的数据库中的与采集当天对应的DB文件中;数据库中每天均会生成一个与当天对应的DB文件;所述数据采集存储线程池管理模块还将实时获取的数据发送至外部显示设备;
[0010] 所述数据处理线程池管理模块,用于对数据库中的DB文件进行分类存储,将与当天相距n天以上的DB文件作为往日DB文件,并对往日DB文件进行压缩得到往日DB文件的压缩包,在数据库中将已形成压缩包的往日DB文件删除,使数据库中仅存储有当天及与当天相距n天以内的DB文件,且该当天及与当天相距n天以内的DB文件即为近日DB文件;且往日DB文件中的数据即为往日数据,近日DB文件中的数据即为近日数据。
[0011] 所述数据采集存储线程池管理模块包括:采集通讯线程池、直存线程池、实时数据发布线程池:
[0012] 所述采集通讯线程池为每个传感器均创建一个数据采集线程,分别从设备的多个传感器中并行获取数据;每个数据采集线程获取数据的时间保持一致,即所有数据采集线程同时获取数据,且数据采集线程获取数据的周期小于10ms;所述采集通讯线程池将数据采集线程获取的数据分别发送至所述直存线程池和所述实时数据发布线程池;
[0013] 所述直存线程池为每个数据采集线程均创建一个直存线程,对多个数据采集线程获取的数据进行并行存储,且均存储至DB文件中;
[0014] 所述实时数据发布线程池为每个数据采集线程均创建一个实时数据发布线程,将多个数据采集线程获取的数据并行发送至外部显示设备,用于实时数据的显示。
[0015] 所述系统还包括冗余存储装置,所述直存线程池中直存线程在将数据存储至DB文件的同时,还将该数据同时存储至所述冗余存储装置中;所述数据采集存储线程池管理模块还包括找回补差线程;所述数据采集存储线程池管理模块利用所述冗余存储装置将数据持久化地存储至DB文件中,具体方式如下所示:
[0016] 若某个直存线程存储数据至DB文件失败时,则将该数据标记为“失败待恢复”,同时,该直存线程将该数据存储至所述冗余存储装置,且若该直存线程存储该数据至所述冗余存储装置成功时,则在所述冗余存储装置将该数据标记为“待找回”;
[0017] 若某个直存线程存储数据至DB文件失败时,则将该数据标记为“失败待恢复”,同时,该直存线程将该数据存储至所述冗余存储装置,且若该直存线程存储该数据至所述冗余存储装置也失败时,则触发系统报警器,产生数据存储失败的报警信息;
[0018] 若存在某个数据被标记为“失败待恢复”,则启动所述找回补差线程,所述找回补差线程对标记为“失败待恢复”的数据进行找回,即将冗余存储装置中被记为“待找回”的数据重新存储至DB文件。
[0019] 所述数据处理线程池管理模块包括:复制备份线程池、备份压缩线程池;所述复制备份线程池与所述备份压缩线程池均为每隔n天运行一次,且二者同步运行;每隔n天对数据库中的DB文件进行一次复制备份及压缩删除的操作,以保证数据库中仅存储有当天及与当天相距n天以内的DB文件;具体操作方式如下所示:
[0020] 所述复制备份线程池为数据库中非当天的每个DB文件均创建一个复制备份线程,并行对数据库中的非当天的DB文件进行复制备份,进行复制备份的DB文件即为往日DB文件;所述复制线程均采用非独占式读取创建;
[0021] 所述备份压缩线程池创建多个压缩线程,并行对每个复制备份后的文件即往日DB文件进行压缩,压缩得到往日DB文件的压缩包后,再将数据库中该往日DB文件的原始文件及其复制备份文件均删除。
[0022] 所述数据处理线程池管理模块还包括:解压线程池、存储空间监控报警线程;
[0023] 所述存储空间监控报警线程用于对IPC的存储空间进行监控,实时获取IPC的剩余存储空间的容量,若剩余存储空间的容量小于设定的阈值,则产生“剩余存储空间低”的警告;
[0024] 当所述数据读取发布线程池管理模块读取往日数据时,所述解压线程池创建多个解压线程,并行对往日DB文件的压缩包进行解压,以获取往日DB文件,并将所获取的往日DB文件存储至临时数据库中;
[0025] 所述解压线程池在解压前,先判断是否存在“剩余存储空间低”的警告,[0026] 若存在,则解压线程全部置于暂停状态,即不进行解压操作;
[0027] 若不存在,则对IPC的剩余存储空间的容量大小和待解压的往日DB文件的大小进行比较,判断是否满足解压条件,若不满足,即待解压的往日DB文件的大小大于IPC的剩余存储空间的容量大小,则不进行解该压操作;否则,解压线程开始对往日DB文件的压缩包进行解压。
[0028] 所述冗余存储装置(5)为SD卡。
[0029] 所述数据采集存储单元A的采集存储方法,包括以下具体步骤:
[0030] S11,所述采集通讯线程池创建多个数据采集线程,分别从设备的多个传感器中并行获取数据;所述采集通讯线程池将数据采集线程获取的数据发送至所述直存线程池;
[0031] S12,所述直存线程池为每个数据采集线程均创建一个直存线程,对多个数据采集线程获取的数据进行并行存储,且将数据分别存储至DB文件中和所述冗余存储装置中;
[0032] 若某个直存线程存储数据至DB文件失败时,则将该数据标记为“失败待恢复”,同时,该直存线程将该数据存储至所述冗余存储装置,且若该直存线程存储该数据至所述冗余存储装置成功时,则在所述冗余存储装置将该数据标记为“待找回”;
[0033] 若某个直存线程存储数据至DB文件失败时,则将该数据标记为“失败待恢复”,同时,该直存线程将该数据存储至所述冗余存储装置,且若该直存线程存储该数据至所述冗余存储装置也失败时,则触发系统报警器,产生数据存储失败的报警信息;
[0034] 若存在某个数据被标记为“失败待恢复”,则启动所述找回补差线程,所述找回补差线程对标记为“失败待恢复”的数据进行找回,即将冗余存储装置中被记为“待找回”的数据重新存储至DB文件;
[0035] S13,所述复制备份线程池每隔n天进行一次复制备份操作,即为数据库中每个DB文件均创建一个复制备份线程,并行对数据库中的DB文件进行复制备份,复制备份得到的DB文件即为往日DB文件;
[0036] S14,所述备份压缩线程池创建多个压缩线程,并行对每个往日DB文件进行压缩,压缩得到往日DB文件的压缩包后,再将数据库中该往日DB文件的原始文件及其备份文件均删除。
[0037] 本发明的优点在于:
[0038] (1)采用冗余存储装置即SD卡存储一定时间内的实时数据,解决了由于系统发生故障造成的数据丢失的问题。
[0039] (2)系统每天生成一个DB文件存储当天的数据,按照不同的行车电脑配置设定近日数据DB文件的数量即天数,达到设定数量则自动启用压缩线程将近日数据DB文件转化为往日数据DB文件的压缩包,大大减少资源占用,实现了桥式起重机历史数据的自动维护。
[0040] (3)本发明采用将系统划分为多个模块的多线程管理方法,分别用于执行数据实时发布、正常存储和异常临时存储,执行数据压缩备份、空间报警和查询解压。
[0041] (4)在DAS-TPMM模块中,采集线程使用高于标准一个数量级的数据采样周期即小于10ms与硬件通讯采样,获得数据存储在队列字典缓存中,与直存和实时发布线程共享,确保了数据呈现的实时性和每秒包含10-100个数据点的完整性。
[0042] (5)本发明的DAS-TPMM模块采用线程的方式,可实现将所采集的实时运行数据进行实时显示,且同步地将所采集的实时运行数据存储至DB文件。
[0043] (6)在DP-TPMM模块中,复制备份、解压和报警监控线程共享使用报警缓存,保持近日数据文件作为快速访问,同时控制了历史文件空间占用大小,对空间不足进行了报警提醒。
[0044] (7)本发明中所有运行数据的刷新周期须小于10ms,并且数据采集时间保持一致,此方式能大幅度地提升数据采集的效率,且能保证数据采集的完整性。

附图说明

[0045] 图1为本发明所基于的数据采集装置的示意框图。
[0046] 图2为本发明的一种多线程桥式起重机数据采集处理系统的整体示意图。
[0047] 图3为本发明的数据采集存储的方法流程图。
[0048] 图4为本发明的实时数据读取显示的方法流程图。
[0049] 图5为本发明的历史数据读取显示的方法流程图。

具体实施方式

[0050] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0051] 本发明的一种多线程桥式起重机数据采集处理系统,所基于的硬件部分包括:数据采集装置、冗余存储装置5、报警器等附属装置。其中,
[0052] 所述冗余存储装置5为SD卡。
[0053] 由图1所示,所述数据采集装置是指针对桥式起重机的核心构成部件的物理参数配置的相应的传感器和变送采集装置;所述数据采集装置用于采集设备的实时运行数据。
[0054] 所述桥式起重机的核心构成部件包括:主起机构、副起机构、主小车机构、副小车机构、大车机构、配电系统和润滑系统;
[0055] 所述相应的传感器包括:温度传感器、湿度传感器、速度传感器、电流传感器、电压传感器、位移传感器和振动传感器;
[0056] 具体地,
[0057] 主起机构、副起机构、主小车机构、副小车机构和大车机构的数据采集主要包括:手柄档位、启停状态、限位状态、起升高度、电源及接触器、电机与制动器状态、故障报警、运行条件和变频器状态等数据;
[0058] 配电系统的数据采集主要包括:高压侧负荷开关、断路器、接地开关和辅助电源供电数据;低压侧断路器、动力电源、控制电源和接地开关数据;冷暖空调电源和安全制动电源数据;司机室、高压室和电气室温湿度数据;故障报警数据;
[0059] 润滑系统的数据采集主要包括:润滑启停、润滑油液位、润滑管路状态、综合润滑状态和故障报警等数据。
[0060] 所述变送采集装置包括变送器和可编程控制器,传感器将所采集的运行数据传输至变送器;变送器基于RS485总线将运行数据传输至可编程控制器;可编程控制器基于工业以太网并以毫秒级将运行数据传输至行车电脑IPC中。
[0061] 本发明中,所有运行数据的刷新周期须小于10ms,则所有的数据采集装置均为最多每隔10ms进行一次数据采集,并且,所有的数据采集装置的数据采集时间保持一致,即所有数据采集装置同时进行数据采集。此方式能大幅度地提升数据采集的效率,且能保证数据采集的完整性。
[0062] 由图2所示,本发明的一种多线程桥式起重机数据采集处理系统,包括:数据采集存储单元A和数据读取显示单元B。
[0063] 所述数据采集存储单元A用于采集设备的实时运行数据即数据,并对数据进行存储;所述数据采集存储单元A包括:数据采集存储线程池管理模块1即DAS-TPMM、数据处理线程池管理模2即DP-TPMM。
[0064] 所述数据采集存储线程池管理模块1,用于从设备的传感器中实时获取设备的实时运行数据即数据,并将该数据存储至行车电脑IPC的数据库中的与采集当天对应的DB文件中;数据库中每天均会生成一个与当天即当天日期对应的DB文件;所述数据采集存储线程池管理模块1还将实时获取的数据发送至数据读取显示单元B。
[0065] 所述数据采集存储线程池管理模块1包括:采集通讯线程池11、找回补差线程12、直存线程池13、实时数据发布线程池14,以及还包括有数据队列字典缓存、找回队列缓存、状态缓存;所述缓存是指数据交换的缓冲区,相当于缓存数据的存储空间。
[0066] 所述采集通讯线程池11为每个数据采集装置均创建一个数据采集线程,分别从设备的多个数据采集装置中并行获取数据;每个数据采集线程获取数据的时间保持一致,即所有数据采集线程同时获取数据,且数据采集线程获取数据的周期小于10ms;具体地,系统预先为每个数据采集线程均创建了其对应的数据队列,形成数据队列字典缓存,且每个数据采集线程所采集到的数据均插入到其对应数据队列的队尾;
[0067] 所述采集通讯线程池11将数据采集线程获取的数据分别发送至所述直存线程池13和所述实时数据发布线程池14。
[0068] 所述直存线程池13为每个数据采集线程均创建一个直存线程,对多个数据采集线程获取的数据进行并行存储,且均存储至DB文件中;且所述直存线程池13中直存线程在将数据存储至DB文件的同时,还将该数据同时存储至所述冗余存储装置5中,且冗余存储装置5中所存储数据的数据格式为基于SQLite3、XML或其他带时间戳排序的格式;同时,所述直存线程池13还为找回队列缓存创建一个与该数据队列对应的找回线程;以保证能将数据持久化的存储至DB文件中,具体方式如下所示:
[0069] 若某个直存线程存储数据至DB文件失败时,则将该直存线程的状态缓存设置“失败待恢复”,相当于将该数据标记为“失败待恢复”,同时,该直存线程将该数据存储至所述冗余存储装置5,且若该直存线程存储该数据至所述冗余存储装置5成功时,则在所述冗余存储装置5将该数据标记为“待找回”;
[0070] 若某个直存线程存储数据至DB文件失败时,则将该直存线程的状态缓存设置“失败待恢复”,同时,该直存线程将该数据存储至所述冗余存储装置5,且若该直存线程存储该数据至所述冗余存储装置5也失败时,则触发系统报警器,产生数据存储失败的报警信息;
[0071] 若存在直存线程的状态缓存为“失败待恢复”,则启动所述找回补差线程12,所述找回补差线程12对状态缓存为“失败待恢复”的直存线程上的数据进行找回,并将直存线程的状态缓存设置为“正在找回”,同时,对冗余存储装置5中标记为“待找回”数据进行批量找回读出,并被找出的标记为“待找回”的数据插入到找回队列缓存,找回补差线程12将找回队列缓存中的数据重新存储至DB文件中,且将冗余存储装置5中该被找出的标记为“待找回”的数据重新标记,重新标记为“已找回”。
[0072] 所述实时数据发布线程池14为每个数据采集线程均创建一个实时数据发布线程,通过WebService、Restful或Socket等方式将多个数据采集线程获取的数据并行发送至所述数据呈现模块4。
[0073] 所述数据处理线程池管理模块2,用于对数据库中的DB文件进行分类存储,将与当天相距n天以上的DB文件作为往日DB文件,并对往日DB文件进行压缩得到往日DB文件的压缩包,在数据库中将已形成压缩包的往日DB文件删除,使数据库中仅存储有当天及与当天相距n天以内的DB文件,且该当天及与当天相距n天以内的DB文件即为近日DB文件;且往日DB文件中的数据即为往日数据,近日DB文件中的数据即为近日数据。
[0074] 所述数据处理线程池管理模块2包括:复制备份线程池21、备份压缩线程池22、解压线程池23、存储空间监控报警线程24,以及还包括有共享的监控报警缓存。
[0075] 所述复制备份线程池21与所述备份压缩线程池22均为每隔n天运行一次,且二者同步运行;每隔n天对数据库中的DB文件进行一次复制备份及压缩删除的操作,以保证数据库中仅存储有当天及与当天相距n天以内的DB文件;具体操作方式如下所示:
[0076] 所述复制备份线程池21为数据库中非当天的每个DB文件均创建一个复制备份线程,并行对数据库中的非当天的DB文件进行复制备份,进行复制备份的DB文件即为往日DB文件;所述复制线程均采用非独占式读取创建,不影响DB文件中数据的使用。
[0077] 所述备份压缩线程池22创建多个压缩线程,并行对每个复制备份后的DB文件即往日DB文件进行压缩,压缩得到往日DB文件的压缩包后,再将数据库中该往日DB文件的原始文件及其备份文件均删除;所述压缩线程均采用7z或其他压缩算法在后台进行往日DB文件的压缩,由于纯浮点型的DB文件的压缩比通常大于10:1,故将大幅度节省行车电脑IPC的磁盘空间即存储空间。
[0078] 所述存储空间监控报警线程24用于对IPC的磁盘的存储空间进行监控,实时获取IPC的磁盘的剩余存储空间的容量,若剩余存储空间的容量小于设定的阈值,则产生“剩余存储空间低”的警告,并将该警告写入监控报警缓存中;所述阈值设定为往日DB文件大小的4倍。
[0079] 当数据读取显示单元B需要读取往日数据时,所述解压线程池23创建多个解压线程,并行对每个往日DB文件的压缩包进行解压,以获取往日DB文件,并将所获取的往日DB文件存储至临时数据库中;
[0080] 且所述解压线程池23在解压前,先判断监控报警缓存中是否存在“剩余存储空间低”的警告,
[0081] 若存在,则解压线程全部置于暂停状态,即不进行解压操作;
[0082] 若不存在,则对IPC的剩余存储空间的容量大小和待解压的往日DB文件的大小进行比较,判断是否满足解压条件,若不满足,即待解压的往日DB文件的大小大于IPC的剩余存储空间的容量大小,则不进行解该压操作;否则,解压线程开始对往日DB文件的压缩包进行解压。本实施例中,则是根据监控报警缓存中的IPC的磁盘的剩余存储空间的容量,以及回放配置缓存中的回放的历史数据的时间段,分别计算并比较待解压的往日数据库DB文件的大小和IPC的磁盘的剩余存储空间的容量,若剩余存储空间满足解压条件,即剩余存储空间的容量大于待解压的往日数据库DB文件的大小,则为属于该时间段内的每个往日数据DB文件的压缩包均创建一个压缩线程,进行解压操作;若剩余存储空间不满足解压条件,则不进行该解压操作。
[0083] 所述数据读取发布线程池管理模块3包括:近日DB文件读取线程池31、临时DB文件读取线程池32、历史数据发布线程池33,以及回放配置缓存、回放队列字典缓存;
[0084] 所述近日DB文件读取线程池31创建多个近日读取线程,并行的从每个近日DB文件中读取近日数据,且将近日数据按时间戳顺序进行排布;所述近日DB文件读取线程池31对于近日DB文件中属于采集当天的DB文件进行实时读取,以获得最新的数据变化,对于近日DB文件中不属于采集当天的DB文件每天仅读取一次。
[0085] 所述临时DB文件读取线程池32创建多个往日读取线程,并行的从临时数据库中的每个往日DB文件读取往日数据,且将往日数据按时间戳顺序进行排布。
[0086] 所述历史数据发布线程池33从所述近日DB文件读取线程池31和所述临时DB文件读取线程池32中分别获取近日数据和往日数据,将近日数据和往日数据按时间戳顺序进行排布,形成历史数据存入回放队列字典缓存中,再将所述历史数据发送至所述数据呈现模块DPM 4。
[0087] 所述数据呈现模块DPM 4包括:实时数据接口、历史数据接口、变量报警线程41、数据分析线程42、数据呈现容器43,以及还包括实时变量字典、历史变量字典;
[0088] 所述实时数据接口用于接收所述实时数据发布线程池14所发送的数据即实时数据,并将该数据缓存所述实时变量字典中。
[0089] 所述历史数据接口用于接收所述历史数据发布线程池33所发送的历史数据,并将该数据缓存所述历史变量字典中。
[0090] 所述变量报警线程41用于监控实时数据,若某个实时数据的变化超过用户设定的该实时数据的变化区间,则触发系统的报警器,产生数据变化异常的报警信息,具体地,基于画面元素属性与变量绑定配置,对实时变量字典中的缓存数据进行范围检测,针对处于异常值范围的变量进行报警;所述变量报警线程41还将实时数据转换为适用于显示设备进行展示的格式。
[0091] 所述数据分析线程42用于对历史数据进行故障分析,具体地,基于画面元素属性与变量绑定配置,对历史变量字典中的缓存数据进行范围检测和故障分析,可模拟报警效果,同时也可以对异常变量的产生原因进行判断;所述数据分析线程42还将历史数据转换为适用于显示设备进行展示的格式。
[0092] 所述数据呈现容器43相当于一个显示设备,包括实时显示功能模块431、历史回放功能模块432、回放指控功能模块433;
[0093] 所述实时显示功能模块431从所述变量报警线程41接收已格式转换后的实时数据,并进行实时数据展示,即完成实时显示功能;
[0094] 所述历史回放功能模块432从所述数据分析线程42接收已格式转换后的历史数据,并进行历史数据展示,即完成历史回放功能;
[0095] 用户通过所述历史回放功能模块433设定回放的历史数据的时间段,并将该时间段发送至所述数据读取发布线程池管理模块3的回放配置缓存中,并先利用所述解压线程池23解压属于该时间段中往日DB文件,所述数据读取发布线程池管理模块3读取属于该时间段中的近日DB文件或往日DB文件,以得到属于该时间段内的历史数据,所述数据读取发布线程池管理模块3将格式转换后的属于该时间段内的历史数据发送至所述历史回放功能模块432;
[0096] 同时,所述数据呈现容器43还具备开始、暂停、恢复、停止、时间进度拖拽等控制功能。
[0097] 本发明中,采用将系统划分为多个模块的多线程管理方法,分别用于执行数据实时发布、正常存储和异常临时存储,执行数据压缩备份、空间报警和查询解压,执行历史数据读取发布,以及执行数据呈现、变量分析和变量报警。且数据采集存储线程池管理模块1和数据处理线程池管理模块2之间,以及数据处理线程池管理模块2与数据读取发布线程池管理模块3之间均为通过数据共享的方式进行关联;数据读取发布线程池管理模块3和数据呈现模块4之间,以及数据采集存储线程池管理模块1和数据呈现模块4之间均为通过网络通信的方式进行关联。
[0098] 由图3所示,所述数据采集存储单元A的采集存储方法,包括以下具体步骤:
[0099] S11,所述采集通讯线程池11创建多个数据采集线程,分别从设备的多个传感器中并行获取数据;所述采集通讯线程池11将数据采集线程获取的数据发送至所述直存线程池13;
[0100] S12,所述直存线程池13为每个数据采集线程均创建一个直存线程,对多个数据采集线程获取的数据进行并行存储,且将数据分别存储至DB文件中和所述冗余存储装置5中;
[0101] 若某个直存线程存储数据至DB文件失败时,则将该数据标记为“失败待恢复”,同时,该直存线程将该数据存储至所述冗余存储装置5,且若该直存线程存储该数据至所述冗余存储装置5成功时,则在所述冗余存储装置5将该数据标记为“待找回”;
[0102] 若某个直存线程存储数据至DB文件失败时,则将该数据标记为“失败待恢复”,同时,该直存线程将该数据存储至所述冗余存储装置(5),且若该直存线程存储该数据至所述冗余存储装置(5)也失败时,则触发系统报警器,产生数据存储失败的报警信息;
[0103] 若存在某个数据被标记为“失败待恢复”,则启动所述找回补差线程12,所述找回补差线程12对标记为“失败待恢复”的数据进行找回,即将冗余存储装置5中被记为“待找回”的数据重新存储至DB文件;
[0104] S13,所述复制备份线程池21每隔n天进行一次复制备份操作,即为数据库中每个DB文件均创建一个复制备份线程,并行对数据库中的DB文件进行复制备份,复制备份得到的DB文件即为往日DB文件;
[0105] S14,所述备份压缩线程池22创建多个压缩线程,并行对每个往日DB文件进行压缩,压缩得到往日DB文件的压缩包后,再将数据库中该往日DB文件的原始文件及其备份文件均删除。
[0106] 所述数据读取显示单元B的读取显示方法,包括实时数据显示和历史数据显示。
[0107] 由图4所示,所述实时数据的显示,包括以下具体步骤:
[0108] S21,所述采集通讯线程池11创建多个数据采集线程,分别从设备的多个传感器中并行获取数据;所述采集通讯线程池11将数据采集线程获取的数据发送至实时数据发布线程池14;
[0109] S22,所述实时数据发布线程池14为每个数据采集线程均创建一个实时数据发布线程,将多个数据采集线程获取的数据并行发送至所述数据呈现模块4的实时数据接口;
[0110] S23,所述实时数据接口接收所述实时数据发布线程池14所发送的数据即实时数据;
[0111] S24,所述变量报警线程41用于监控实时数据,若某个实时数据的变化超过用户设定的该实时数据的变化区间,则触发系统的报警器,产生数据变化异常的报警信息;所述变量报警线程41还将实时数据转换为适用于显示设备进行展示的格式;
[0112] S25,所述实时显示功能模块431从所述变量报警线程41接收已格式转换后的实时数据,并进行实时数据展示。
[0113] 由图5所示,所述历史数据的显示,包括以下具体步骤:
[0114] S31,用户通过所述历史回放功能模块433设定回放的历史数据的时间段,并将该时间段分别发送至所述数据读取发布线程池管理模块3和所述解压线程池23;
[0115] S32,所述解压线程池23判断是否存在“剩余存储空间低”的警告,[0116] 若存在,则解压线程全部置于暂停状态,即不进行解压操作,即不能进行历史数据的显示;
[0117] 若不存在,则对IPC的剩余存储空间的容量大小和属于该时间段内的往日DB文件的大小进行比较,判断是否满足解压条件,若不满足,即属于该时间段内的往日DB文件的大小大于IPC的剩余存储空间的容量大小,则不进行解该压操作;否则,所述解压线程池23开始对属于该时间段内的往日DB文件的压缩包进行解压,即所述解压线程池23创建多个解压线程,并行对属于该时间段内的往日DB文件的压缩包进行解压,以获取属于该时间段内的往日DB文件,并将所获取的属于该时间段内的往日DB文件存储至临时数据库中;
[0118] S33,所述数据读取发布线程池管理模块3中的近日DB文件读取线程池31创建多个近日读取线程,并行的从属于该时间段内的近日DB文件中读取近日数据,且将近日数据按时间戳顺序进行排布;
[0119] S34,所述数据读取发布线程池管理模块3中的临时DB文件读取线程池32创建多个往日读取线程,并行的从临时数据库中的每个往日DB文件读取往日数据,且将往日数据按时间戳顺序进行排布;
[0120] S35,所述数据读取发布线程池管理模块3中的历史数据发布线程池33从所述近日DB文件读取线程池31和所述临时DB文件读取线程池32中分别获取近日数据和往日数据,将近日数据和往日数据按时间戳顺序进行排布,形成历史数据,并将所述历史数据发送至所述数据呈现模块4的历史数据接口;
[0121] S36,所述历史数据接口用于接收所述历史数据发布线程池33所发送的历史数据;
[0122] S37,所述数据分析线程42用于对历史数据进行故障分析;所述数据分析线程42还将历史数据转换为适用于显示设备进行展示的格式;
[0123] S38,所述历史回放功能模块432从所述数据分析线程42接收已格式转换后的历史数据,并进行历史数据展示。
[0124] 依据最新的《GB/T 28264-2017起重机械安全监控管理系统》国家标准要求,本发明的一种多线程桥式起重机数据采集处理系统的信息采集和信息存储满足以下关键指标要求(参考标准6.8):
[0125] (1)系统信息的采集应满足实时性要求,储存应满足原始完整性要求。
[0126] (2)系统能在存储容量达到设定的存储容量前提示管理人员提前备份保存。
[0127] (3)在运行周期内系统的硬件采样周期不应大于100ms。
[0128] (4)对于开关量数据,运行周期内至少对于变化的数据系统需顺序存储,对于其他数据,运行周期内系统的存储周期不应大于2s。
[0129] (5)系统能存储不少于30个连续工作日的监控数据。
[0130] 以上仅为本发明创造的较佳实施例而已,并不用以限制本发明创造,凡在本发明创造的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明创造的保护范围之内。