流程工业中数据处理方法、装置、存储介质及处理器转让专利

申请号 : CN202310237449.9

文献号 : CN115934702B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王正君张绪文张天琦庄栋梁王亚军

申请人 : 青岛安工数联信息科技有限公司

摘要 :

本发明提供一种流程工业中数据处理方法、装置、存储介质及处理器,属于流程工业数据采集技术领域。所述流程工业中数据处理方法包括:采集流程工业中的基础数据;基于预置的规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果;其中,所述规则计算有向无环图通过以下方式得到:预先基于流程工业中的实际现场情况,配置逻辑位点计算规则,所述逻辑位点计算规则用于计算流程工业中的各种数据指标;根据所述逻辑位点计算规则构建有向无环图,得到规则计算有向无环图。可以高效获得高质量数据,实现对基础数据的加工,以便于将更具有指导意义的数据提供给工厂的操作员。

权利要求 :

1.一种流程工业中数据处理方法,其特征在于,包括:采集流程工业中的基础数据;

基于预置的规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果;

其中,所述规则计算有向无环图通过以下方式得到:预先基于流程工业中的实际现场情况,配置逻辑位点计算规则,所述逻辑位点计算规则用于计算流程工业中的各种数据指标;

根据所述逻辑位点计算规则构建有向无环图,得到规则计算有向无环图;

其中,所述根据所述逻辑位点计算规则构建有向无环图,得到规则计算有向无环图,包括:分别以流程工业中实际的测点数据作为有向无环图的根节点,以根据所述逻辑位点计算规则配置出的逻辑位点作为有向无环图的边的节点,构建得到多个初始有向图;

分别判断各个初始有向图是否成环;

将没有成环的初始有向图作为规则计算有向无环图;

其中,所述规则计算有向无环图中包括多个待计算数据节点以及各个待计算数据节点所依赖的子数据节点;

所述基于预置的规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果,包括:基于深度优先遍历算法,遍历所述多个待计算数据节点,以对所述基础数据进行数据处理,得到数据处理结果;

其中,遍历所述多个待计算数据节点的过程包括:按照责任链模式,根据所述基础数据分别检查各个待计算数据节点是否满足激活条件;

遍历满足激活条件的待计算数据节点所依赖的子数据节点。

2.根据权利要求1所述的流程工业中数据处理方法,其特征在于,所述基础数据为实时采集得到;

在基于预置的规则计算有向无环图对所述基础数据进行数据处理之前,还包括:判断所述基础数据是否有更新;

在所述基础数据有更新的情况下,基于预置的规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果。

3.根据权利要求1所述的流程工业中数据处理方法,其特征在于,所述采集流程工业中的基础数据,包括:定期获取当前的规则计算有向无环图作为预置的规则计算有向无环图;

根据当前的规则计算有向无环图中涉及的数据指标,采集流程工业中的基础数据。

4.根据权利要求1所述的流程工业中数据处理方法,其特征在于,在采集流程工业中的基础数据之前,还包括:获取流程工业中的硬件设备的数据传输协议;

在所述数据传输协议中的协议头定义消息体的标识ID;

其中,所述标识ID用于在服务端确认已接收数据包的数据时,向发送端回复一个对应的标识ID的确认包。

5.根据权利要求1所述的流程工业中数据处理方法,其特征在于,在采集流程工业中的基础数据之前,还包括:获取流程工业中的硬件设备的数据传输协议;

在所述数据传输协议中的协议头定义递增的消息ID;

其中,所述递增的消息ID用于在服务端接收到数据包时,根据所述递增的消息ID检查已收到的递增的消息ID是否为递增。

6.一种流程工业中数据处理装置,其特征在于,包括:采集模块,用于采集流程工业中的基础数据;

数据处理模块,用于基于预置的规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果;其中,所述规则计算有向无环图通过以下方式得到:预先基于流程工业中的实际现场情况,配置逻辑位点计算规则,所述逻辑位点计算规则用于计算流程工业中的各种数据指标;

根据所述逻辑位点计算规则构建有向无环图,得到规则计算有向无环图;包括:分别以流程工业中实际的测点数据作为有向无环图的根节点,以根据所述逻辑位点计算规则配置出的逻辑位点作为有向无环图的边的节点,构建得到多个初始有向图;分别判断各个初始有向图是否成环;将没有成环的初始有向图作为规则计算有向无环图;

其中,所述规则计算有向无环图中包括多个待计算数据节点以及各个待计算数据节点所依赖的子数据节点;

所述基于预置的规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果,包括:基于深度优先遍历算法,遍历所述多个待计算数据节点,以对所述基础数据进行数据处理,得到数据处理结果;

其中,遍历所述多个待计算数据节点的过程包括:按照责任链模式,根据所述基础数据分别检查各个待计算数据节点是否满足激活条件;

遍历满足激活条件的待计算数据节点所依赖的子数据节点。

7.一种处理器,其特征在于,被配置成执行如权利要求1至5中任一项所述的流程工业中数据处理方法。

8.一种机器可读存储介质,该机器可读存储介质上存储有指令,其特征在于,该指令在被处理器执行时使得所述处理器被配置成执行如权利要求1至5中任一项所述的流程工业中数据处理方法。

说明书 :

流程工业中数据处理方法、装置、存储介质及处理器

技术领域

[0001] 本发明涉及流程工业数据采集技术领域,具体地涉及一种流程工业中数据处理方法、一种流程工业中数据处理装置、一种机器可读存储介质及一种处理器。

背景技术

[0002] 流程工业的开车、停产程序十分复杂而且代价巨大,一般不允许轻易停工;工段之间、设备之间、操作变量之间的耦合现象十分突出,对某一参数进行调节往往会引起其他参数以及后续工段产品质量的变化,牵一发而动全身,必须确保测量、控制的精度和稳定性,才能保证生产的正常进行。
[0003] 为了保证生产的正常进行,需要获取流程工业中的各种数据,然后现场操作员基于这些数据来对生产过程进行评估。但是采集到的基础数据种类繁多,难以高效获得高质量数据,从而对于流程工业企业现场操作员难以起到指导意义的问题。
[0004] 因此,现有对流程工业中的数据处理存在数据种类繁多,难以高效获得高质量数据,无法给流程工业企业现场操作员起到指导作用的问题。

发明内容

[0005] 本发明实施例的目的是提供一种流程工业中数据处理方法、一种流程工业中数据处理装置、一种机器可读存储介质及一种处理器。该流程工业中数据处理方法可以高效获得高质量数据,实现对基础数据的加工,以便于将更具有指导意义的数据提供给工厂的操作员。
[0006] 为了实现上述目的,本申请第一方面提供一种流程工业中数据处理方法,包括:
[0007] 采集流程工业中的基础数据;
[0008] 基于预置的规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果;其中,所述规则计算有向无环图通过以下方式得到:
[0009] 预先基于流程工业中的实际现场情况,配置逻辑位点计算规则,所述逻辑位点计算规则用于计算流程工业中的各种数据指标;
[0010] 根据所述逻辑位点计算规则构建有向无环图,得到规则计算有向无环图。
[0011] 在本申请实施例中,所述根据所述逻辑位点计算规则构建有向无环图,得到规则计算有向无环图,包括:
[0012] 分别以流程工业中实际的测点数据作为有向无环图的根节点,以根据所述逻辑位点计算规则配置出的逻辑位点作为有向无环图的边的节点,构建得到多个初始有向图;
[0013] 分别判断各个初始有向图是否成环;
[0014] 将没有成环的初始有向图作为规则计算有向无环图。
[0015] 在本申请实施例中,所述基础数据为实时采集得到;
[0016] 在基于预置的规则计算有向无环图对所述基础数据进行数据处理之前,还包括:
[0017] 判断所述基础数据是否有更新;
[0018] 在所述基础数据有更新的情况下,基于预置的规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果。
[0019] 在本申请实施例中,所述规则计算有向无环图中包括多个待计算数据节点以及各个待计算数据节点所依赖的子数据节点;
[0020] 所述基于预置的规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果,包括:
[0021] 基于深度优先遍历算法,遍历所述多个待计算数据节点,以对所述基础数据进行数据处理,得到数据处理结果;
[0022] 其中,遍历所述多个待计算数据节点的过程包括:
[0023] 按照责任链模式,根据所述基础数据分别检查各个待计算数据节点是否满足激活条件;
[0024] 遍历满足激活条件的待计算数据节点所依赖的子数据节点。
[0025] 在本申请实施例中,所述采集流程工业中的基础数据,包括:
[0026] 定期获取当前的规则计算有向无环图作为预置的规则计算有向无环图;
[0027] 根据当前的规则计算有向无环图中涉及的数据指标,采集流程工业中的基础数据。
[0028] 在本申请实施例中,在所述采集流程工业中的基础数据之前,还包括:
[0029] 获取流程工业中的硬件设备的数据传输协议;
[0030] 在所述数据传输协议中的协议头定义消息体的标识ID;
[0031] 其中,所述标识ID用于在服务端确认已接收数据包的数据时,向发送端回复一个对应的标识ID的确认包。
[0032] 在本申请实施例中,在所述采集流程工业中的基础数据之前,还包括:
[0033] 获取流程工业中的硬件设备的数据传输协议;
[0034] 在所述数据传输协议中的协议头定义递增的消息ID;
[0035] 其中,所述递增的消息ID用于在服务端接收到数据包时,根据所述递增的消息ID检查已收到的递增的消息ID是否为递增。
[0036] 本申请第二方面提供一种流程工业中数据处理装置,包括:
[0037] 采集模块,用于采集流程工业中的基础数据;
[0038] 数据处理模块,用于基于预置的规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果;其中,所述规则计算有向无环图通过以下方式得到:
[0039] 预先基于流程工业中的实际现场情况,配置逻辑位点计算规则,所述逻辑位点计算规则用于计算流程工业中的各种数据指标;
[0040] 根据所述逻辑位点计算规则构建有向无环图,得到规则计算有向无环图。
[0041] 本申请第三方面提供一种处理器,被配置成执行本申请上述任一项流程工业中数据处理方法。
[0042] 本申请第四方面提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行本申请上述任一项流程工业中数据处理方法。
[0043] 通过上述技术方案,通过采集流程工业中的基础数据,基于规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果,通过为规则计算有向无环图中的每个节根点定义依赖节点,使得规则计算有向无环图中的待计算数据节点可以适配更复杂的计算逻辑,在进行数据处理时,通过遍历规则计算有向无环图,基于责任链模式计算有向图中每个待计算数据节点的数据,其中,每一个待计算数据节点的数据是一个规则计算的结果,每一个规则计算表示了各个指标的计算,通过这些规则计算的结果就可以知道流程工业中各种数据指标是否满足,从而可以高效获得高质量数据,实现对基础数据的加工,以便于将更具有指导意义的数据提供给工厂的操作员。还可以根据业务需求,配置数据处理逻辑,从而可以有效减少数据处理相关的开发工作,通过构建规则计算有向无环图,可以将逻辑位点计算规则进行有序存储。通过结合规则计算有向无环图可实现循环依赖的数据,实现根据规则计算有向无环图中配置的计算规则实时计算。
[0044] 本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

[0045] 附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
[0046] 图1示意性示出了根据本申请实施例的一种流程工业中数据处理方法的流程示意图;
[0047] 图2示意性示出了根据本申请实施例的功能架构图;
[0048] 图3示意性示出了根据本申请实施例的基于规则构建的有向无环图;
[0049] 图4示意性示出了根据本申请实施例的一种流程工业中数据处理装置的结构框图;
[0050] 图5示意性示出了根据本申请实施例的计算机设备的内部结构图。
[0051] 附图标记说明
[0052] 410‑采集模块;420‑数据处理模块;40‑设备;401‑处理器;402‑存储器;403‑总线。

具体实施方式

[0053] 以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
[0054] 请参看图1,图1示意性示出了根据本申请实施例的一种流程工业中数据处理方法的流程示意图。本实施例提供的流程工业中数据处理方法,通过有向无环图和责任链模式对流程工业的数据进行多级处理,能够实时输出各种多级处理后的各类流程工业的详细数据,此类数据可使现场操作员更及时的识别风险,指定控制措施,从而有效的预防事故的发生。
[0055] 如图1所示,在本申请一实施例中,提供了一种流程工业中数据处理方法,该流程工业中数据处理方法包括以下步骤:
[0056] 步骤210:采集流程工业中的基础数据;在本实施例中,所述基础数据是指从流程工业中的硬件设备中获取的数据,需要说明的是,本实施例中的基础数据包含了从多个硬件设备获取的多个数据。
[0057] 请参看图2,图2示意性示出了根据本申请实施例的功能架构图。由于流程工业中涉及的多种硬件设备,各个硬件设备可能来自不同的厂家,为了使各个硬件设备的数据能够准确传输,可以预先定义网络通信框架规范。
[0058] 针对流程工业场景种类繁多的硬件设备,对应有各类的数据传输协议,结合数据传输协议的通用性以及TCP协议的特殊性,可以设计一套基于TCP协议的网络通信框架规范。要构建通用的网络通信框架,便要定义框架的抽象接口,并基于抽象接口实现通用数据处理流程。在本实施例中,基于TCP协议的特殊性,通用数据处理流程可以定义六个抽象接口,即:封装私有协议头接口、解析私有协议头接口、封装数据包接口、解析数据包接口、封装校验和接口、检查校验和接口。
[0059] 当发送数据给硬件设备时,通用数据处理流程接到待发送的数据包时,调用抽象的封装私有协议头接口,接口中有业务具体的实现逻辑;封装好数据头后,调用抽象的封装数据包接口,将数据包进行序列化;将私有协议头及数据包封装好后,调用抽象的封装校验和接口,以用于检查数据是否被修改、丢失。
[0060] 为了进一步保证数据传输的准确性,除了要采集硬件设备厂家私有协议以及工业场景下各类常见的传输协议数据外,还需要定义一种通用的私有传输协议,以解决弱网环境下断点续传、数据乱序等问题,为行业的数据传输提供标准,以便于接入各类业务场景数据,可以提高数据传输效率及可靠性。
[0061] 其中,为了解决私有协议在弱网环境下的断点续传问题,可以在所述采集流程工业中的基础数据之前,在协议头定义消息体的唯一标识ID,具体包括以下步骤:
[0062] 首先,获取流程工业中的硬件设备的数据传输协议;
[0063] 然后,在所述数据传输协议中的协议头定义消息体的标识ID;
[0064] 其中,所述标识ID用于在服务端确认已接收数据包的数据时,向发送端回复一个对应的标识ID的确认包。当服务端确认已接收到此数据包的数据时,给发送端回复一个对应唯一标识ID的数据包;若客户端超过5秒未收到确认包,则认为数据已丢失,将此数据包重新向服务端进行发送。从而解决了在弱网环境下的断点续传的问题。
[0065] 相应地,为了解决私有协议在弱网环境下的数据乱序问题,可以在所述采集流程工业中的基础数据之前,在协议头中定义递增的消息ID,具体包括以下步骤:
[0066] 首先,获取流程工业中的硬件设备的数据传输协议;
[0067] 然后,在所述数据传输协议中的协议头定义递增的消息ID;
[0068] 其中,所述递增的消息ID用于在服务端接收到数据包时,根据所述递增的消息ID检查已收到的递增的消息ID是否为递增。当服务端接收到数据包时,检查已收到的递增的消息ID是否递增,若递增的消息ID存在缺漏,则认为数据丢失,无需给客户端回包,等客户端5秒未收到回包,则会认为数据已经丢失,将已丢失的数据重新进行发送,从而解决了数据乱序的问题。
[0069] 当服务端接收到标准的结构化数据后,内部进行数据传输时,也需要针对消息ID做幂等,同样消息ID的报文不应进行多次处理。同时为了适配各种微服务架构,在各微服务中进行数据传输时,满足各系统对于数据可靠性的要求,当确认收到采集到的数据后,将数据写入Kafka,当写入Kafka成功后,才会给客户端回包确认收到,各个微服务模块申请独立唯一的消费组ID,统一从Kafka中消费对应的报文,将数据可靠性统一交由Kafka来保证。此种方法可极大地减少各业务系统为满足数据可靠性而进行的开发工作。
[0070] 步骤220:基于预置的规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果;其中,所述规则计算有向无环图通过以下方式得到:
[0071] 首先,预先基于流程工业中的实际现场情况,配置逻辑位点计算规则,所述逻辑位点计算规则用于计算流程工业中的各种数据指标;
[0072] 然后,根据所述逻辑位点计算规则构建有向无环图,得到规则计算有向无环图。
[0073] 在得到数据处理结果以后,可以将数据处理结果展示给工厂的操作员,以便于工厂的操作员查看这些数据处理结果,从而实现将更具有指导意义的数据提供给工厂的操作员。
[0074] 请参看图3,图3示意性示出了根据本申请实施例的基于规则构建的有向无环图。在本实施例中,所述预置的规则计算有向无环图是基于计算规则预先构建的有向无环图,上述计算规则可以是专家人员基于流程工业的现场实际情况,对数据处理流程进行配置逻辑位点计算规则得到。所述规则计算有向无环图中包含有多个计算规则,分别以有向无环图的方式存储。
[0075] 在本实施例中,上述进行数据处理是指将基础数据按照规则计算有向无环图中存储的逻辑计算规则进行计算,从而得到多个数据结果作为数据处理结果。
[0076] 所述根据所述逻辑位点计算规则构建有向无环图,得到规则计算有向无环图的过程包括以下步骤:
[0077] 首先,分别以流程工业中实际的测点数据作为有向无环图的根节点,以根据所述逻辑位点计算规则配置出的逻辑位点作为有向无环图的边的节点,构建得到多个初始有向图;
[0078] 然后,分别判断各个所述初始有向图是否成环;
[0079] 最后,将没有成环的初始有向图作为规则计算有向无环图。
[0080] 在具体实施时,程序可以以流程工业中实际的测点数据为根节点,而将根据所述逻辑位点计算规则配置出的逻辑位点为边的节点,以此逻辑来构建有向图,并在每个配置项配置时通过拓扑排序来检查有向图是否成环,若成环则禁止创建计算规则,反之则允许创建计算规则,最后得到规则计算有向无环图。
[0081] 在根据规则计算有向图存储的规则进行计算时,可以分为数据实时运算及海量数据批处理。其中,数据实时运算适合数据量较小,但对数据实时性要求高的场景,所述基础数据为实时采集流程工业中数据得到的;在所述基于预置的规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果之前,包括以下步骤:
[0082] 首先,判断所述基础数据是否有更新;在本实施例中,判断是否有更新可以通过将基础数据与历史数据进行对比,以判断是否有更新。
[0083] 然后,在所述基础数据有更新的情况下,基于预置的规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果。在本实施例中,在基础数据有更新的情况下,可以通过事件触发的方式激活逻辑运算事件,然后从存储介质中获取规则计算有向图,以得到计算规则,进而进行数据处理,得到数据处理结果。
[0084] 其中,所述规则计算有向无环图中包括多个待计算数据节点以及各个待计算数据节点所依赖的子数据节点;在进行数据处理时,可以是基于深度优先遍历算法,遍历所述规则计算有向无环图中的待计算数据节点,以对所述基础数据进行数据处理,得到数据处理结果;所述遍历所述规则计算有向无环图中的待计算数据节点的过程包括:首先按照责任链模式,根据所述基础数据分别检查所述各个待计算数据节点是否满足激活条件;然后在待计算数据节点满足激活条件的情况下,遍历对应的待计算数据节点所依赖的子数据节点。
[0085] 在本实施例中,检查各个待计算数据节点是否满足激活条件是指检查基础数据是否可以计算得到待计算数据节点的数据,比如:待计算数据节点为水量差,首先检查基础数据是否包含可以用于计算水量差的数据,若有,满足激活条件,否则,不满足激活条件。满足激活条件后,再进一步检查满足激活条件的待计算数据节点下的子数据节点是否包含用于计算得到子数据节点的数据。以此实现按照责任链模式依次遍历所有的待计算数据节点。
[0086] 具体实施时,数据实时运算由于数据量较小,因此可将规则计算有向无环图中存储的规则拓扑结构加载到服务器内存,由基础数据开始,采用深度优先遍历的方式遍历规则计算有向无环图中的每个待计算数据节点。深度优先遍历规则计算有向无环图时,每个待计算数据节点可能会被遍历多次,可以基于责任链模式,在待计算数据节点依赖的数据没有完全计算完成时,那这个待计算数据节点并不会完成计算,只有在待计算数据节点依赖的子数据节点均计算完成时,才会对该数据节点进行计算,并触发依赖此节点的后续计算流程。当完成所有待计算数据节点的深度遍历后,将规则计算有向无环图中所有未能完成计算的待计算数据节点取出,并从存储介质中获取这些待计算数据节点最近一次的计算值作为当前值,并以当前待计算数据节点为顶点,继续在规则计算有向无环图的深度优先遍历,直到所有待计算数据节点都完成计算,最后得到数据处理结果。
[0087] 其中,海量数据批处理适合数据量大,而对数据实时性要求不高的场景。可以定期获取规则计算有向无环图中的计算规则,根据计算规则中涉及的指标获取指标对应的最新的基础数据及历史数据。然后基于规则计算有向无环图中的计算规则进行链式计算,最终计算出所有涉及的数据指标作为数据处理结果。因此,海量数据批处理的场景中基础数据的获取可以是通过以下步骤来得到:
[0088] 首先,定期获取当前的规则计算有向无环图作为预置的规则计算有向无环图;在本实施中,可以是以分钟、小时、自然天级的维度为例,定期拉取获取当前的规则计算有向无环图。
[0089] 然后,根据当前的规则计算有向无环图中涉及的数据指标,采集流程工业中的基础数据。可以是基于规则计算有向无环图中的计算规则中涉及的指标来获取指标对应的最新数据,还可以获取指标对应的历史数据。
[0090] 具体实施时,由于海量数据批处理场景所涉及的数据量很大,因此无法将所有数据加载入服务器内存,可以借助Redis(远程字典服务)等存储介质,在存储介质中构建规则计算有向无环图的数据结构,然后基于Map Reduce的思想,将深度优先遍历规则计算有向无环图的流程拆分成尽可能小的最小单元,然后将最小单元作为任务分发到多台服务器,以通过多台服务器并行运算,同步执行计算任务。多台服务器完成计算后,将计算结果写入存储介质,同一批计算任务完成后,检查是否完全完成计算,若未完成则继续递归进行计算,直到所有计算任务全部完成,最后得到数据处理结果。
[0091] 上述实现过程中,通过采集流程工业中的基础数据,基于规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果,通过为规则计算有向无环图中的每个节根点定义依赖节点,使得规则计算有向无环图中的待计算数据节点可以适配更复杂的计算逻辑,在进行数据处理时,通过遍历规则计算有向无环图,基于责任链模式计算有向图中每个待计算数据节点的数据,其中,每一个待计算数据节点的数据是一个规则计算的结果,每一个规则计算表示了各个指标的计算,通过这些规则计算的结果就可以知道流程工业中各种数据指标是否满足,从而可以高效获得高质量数据,实现对基础数据的加工,以便于将更具有指导意义的数据提供给工厂的操作员。还可以根据业务需求,配置数据处理逻辑,从而可以有效减少数据处理相关的开发工作,通过构建规则计算有向无环图,可以将逻辑位点计算规则进行有序存储。通过结合规则计算有向无环图可实现循环依赖的数据,实现根据规则计算有向无环图中配置的计算规则实时计算。
[0092] 图1为一个实施例中流程工业中数据处理方法的流程示意图。应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0093] 基于同样的发明构思,本实施例提供一种流程工业中数据处理装置,请参看图4,图4示意性示出了根据本申请实施例的一种流程工业中数据处理装置结构框图。该流程工业中数据处理装置,包括采集模块410和数据处理模块420,其中:
[0094] 采集模块410,用于采集流程工业中的基础数据;在本实施例中,所述基础数据是指从流程工业中的硬件设备中获取的数据,需要说明的是,本实施例中的基础数据包含了从多个硬件设备获取的多个数据。
[0095] 数据处理模块420,用于基于预置的规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果;其中,所述规则计算有向无环图通过以下方式得到:预先基于流程工业中的实际现场情况,配置逻辑位点计算规则,所述逻辑位点计算规则用于计算流程工业中的各种数据指标;根据所述逻辑位点计算规则构建有向无环图,得到规则计算有向无环图。
[0096] 在得到数据处理结果以后,可以将数据处理结果展示给工厂的操作员,以便于工厂的操作员查看这些数据处理结果,从而实现将更具有指导意义的数据提供给工厂的操作员。
[0097] 请参看图3,图3示意性示出了根据本申请实施例的基于规则构建的有向无环图。在本实施例中,所述预置的规则计算有向无环图是基于计算规则预先构建的有向无环图,上述计算规则可以是专家人员基于流程工业的现场实际情况,对数据处理流程进行配置逻辑位点计算规则得到。所述规则计算有向无环图中包含有多个计算规则,分别以有向无环图的方式存储。
[0098] 在本实施例中,上述进行数据处理是指将基础数据按照规则计算有向无环图中存储的逻辑计算规则进行计算,从而得到多个数据结果作为数据处理结果。
[0099] 所述根据所述逻辑位点计算规则构建有向无环图,得到规则计算有向无环图的过程包括以下步骤:
[0100] 首先,分别以流程工业中实际的测点数据作为有向无环图的根节点,以根据所述逻辑位点计算规则配置出的逻辑位点作为有向无环图的边的节点,构建得到多个初始有向图;
[0101] 然后,分别判断各个所述初始有向图是否成环;
[0102] 最后,将没有成环的初始有向图作为规则计算有向无环图。
[0103] 在具体实施时,程序可以以流程工业中实际的测点数据为根节点,而将根据所述逻辑位点计算规则配置出的逻辑位点为边的节点,以此逻辑来构建有向图,并在每个配置项配置时通过拓扑排序来检查有向图是否成环,若成环则禁止创建计算规则,反之则允许创建计算规则,最后得到规则计算有向无环图。
[0104] 在根据规则计算有向图存储的规则进行计算时,可以分为数据实时运算及海量数据批处理。其中,数据实时运算适合数据量较小,但对数据实时性要求高的场景,所述基础数据为实时采集流程工业中数据得到的;在所述基于预置的规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果之前,包括以下步骤:
[0105] 首先,判断所述基础数据是否有更新;在本实施例中,判断是否有更新可以通过将基础数据与历史数据进行对比,以判断是否有更新。
[0106] 然后,在所述基础数据有更新的情况下,基于预置的规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果。在本实施例中,在基础数据有更新的情况下,可以通过事件触发的方式激活逻辑运算事件,然后从存储介质中获取规则计算有向图,以得到计算规则,进而进行数据处理,得到数据处理结果。
[0107] 其中,所述规则计算有向无环图中包括多个待计算数据节点以及各个待计算数据节点所依赖的子数据节点;在进行数据处理时,可以是基于深度优先遍历算法,遍历所述规则计算有向无环图中的待计算数据节点,以对所述基础数据进行数据处理,得到数据处理结果;所述遍历所述规则计算有向无环图中的待计算数据节点的过程包括:首先按照责任链模式,根据所述基础数据分别检查所述各个待计算数据节点是否满足激活条件;然后在待计算数据节点满足激活条件的情况下,遍历对应的待计算数据节点所依赖的子数据节点。
[0108] 在本实施例中,检查各个待计算数据节点是否满足激活条件是指检查基础数据是否可以计算得到待计算数据节点的数据,比如:待计算数据节点为水量差,首先检查基础数据是否包含可以用于计算水量差的数据,若有,满足激活条件,否则,不满足激活条件。满足激活条件后,再进一步检查满足激活条件的待计算数据节点下的子数据节点是否包含用于计算得到子数据节点的数据。以此实现按照责任链模式依次遍历所有的待计算数据节点。
[0109] 具体实施时,数据实时运算由于数据量较小,因此可将规则计算有向无环图中存储的规则拓扑结构加载到服务器内存,由基础数据开始,采用深度优先遍历的方式遍历规则计算有向无环图中的每个待计算数据节点。深度优先遍历规则计算有向无环图时,每个待计算数据节点可能会被遍历多次,可以基于责任链模式,在待计算数据节点依赖的数据没有完全计算完成时,那这个待计算数据节点并不会完成计算,只有在待计算数据节点依赖的子数据节点均计算完成时,才会对该数据节点进行计算,并触发依赖此节点的后续计算流程。当完成所有待计算数据节点的深度遍历后,将规则计算有向无环图中所有未能完成计算的待计算数据节点取出,并从存储介质中获取这些待计算数据节点最近一次的计算值作为当前值,并以当前待计算数据节点为顶点,继续在规则计算有向无环图的深度优先遍历,直到所有待计算数据节点都完成计算,最后得到数据处理结果。
[0110] 其中,海量数据批处理适合数据量大,而对数据实时性要求不高的场景。可以定期获取规则计算有向无环图中的计算规则,根据计算规则中涉及的指标获取指标对应的最新的基础数据及历史数据。然后基于规则计算有向无环图中的计算规则进行链式计算,最终计算出所有涉及的数据指标作为数据处理结果。因此,海量数据批处理的场景中基础数据的获取可以是通过以下步骤来得到:
[0111] 首先,定期获取当前的规则计算有向无环图作为预置的规则计算有向无环图;在本实施中,可以是以分钟、小时、自然天级的维度为例,定期拉取获取当前的规则计算有向无环图。
[0112] 然后,根据当前的规则计算有向无环图中涉及的数据指标,采集流程工业中的基础数据。可以是基于规则计算有向无环图中的计算规则中涉及的指标来获取指标对应的最新数据,还可以获取指标对应的历史数据。
[0113] 具体实施时,由于海量数据批处理场景所涉及的数据量很大,因此无法将所有数据加载入服务器内存,可以借助Redis(远程字典服务)等存储介质,在存储介质中构建规则计算有向无环图的数据结构,然后基于Map Reduce的思想,将深度优先遍历规则计算有向无环图的流程拆分成尽可能小的最小单元,然后将最小单元作为任务分发到多台服务器,以通过多台服务器并行运算,同步执行计算任务。多台服务器完成计算后,将计算结果写入存储介质,同一批计算任务完成后,检查是否完全完成计算,若未完成则继续递归进行计算,直到所有计算任务全部完成,最后得到数据处理结果。
[0114] 上述实现过程中,通过采集模块410采集流程工业中的基础数据,数据处理模块420基于规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果,通过为规则计算有向无环图中的每个节根点定义依赖节点,使得规则计算有向无环图中的待计算数据节点可以适配更复杂的计算逻辑,在进行数据处理时,通过遍历规则计算有向无环图,基于责任链模式计算有向图中每个待计算数据节点的数据,其中,每一个待计算数据节点的数据是一个规则计算的结果,每一个规则计算表示了各个指标的计算,通过这些规则计算的结果就可以知道流程工业中各种数据指标是否满足,从而可以高效获得高质量数据,实现对基础数据的加工,以便于将更具有指导意义的数据提供给工厂的操作员。还可以根据业务需求,配置数据处理逻辑,从而可以有效减少数据处理相关的开发工作,通过构建规则计算有向无环图,可以将逻辑位点计算规则进行有序存储。通过结合规则计算有向无环图可实现循环依赖的数据,实现根据规则计算有向无环图中配置的计算规则实时计算。
[0115] 所述流程工业中数据处理装置包括处理器和存储器,上述采集模块410和数据处理模块420等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
[0116] 处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来高效获得高质量数据,实现对基础数据的加工,以便于将更具有指导意义的数据提供给工厂的操作员。
[0117] 存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
[0118] 本发明实施例提供了一种机器可读存储介质,其上存储有程序,该程序被处理器执行时实现所述流程工业中数据处理方法。
[0119] 本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述流程工业中数据处理方法。
[0120] 本发明实施例提供了一种电子设备,包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,处理器、存储器通过总线完成相互间的通信;处理器用于调用存储器中的程序指令,以执行实现流程工业中数据处理方法。
[0121] 请参看图5,图5示意性示出了根据本申请实施例的设备的内部结构图。本发明实施例提供了一种设备40,设备40包括至少一个处理器401、以及与处理器401连接的至少一个存储器402、总线403;其中,处理器401、存储器402通过总线403完成相互间的通信;处理器401用于调用存储器402中的程序指令,以执行上述的流程工业中数据处理方法。本文中的设备40可以是服务器、PC、PAD、手机等。
[0122] 本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
[0123] 采集流程工业中的基础数据;
[0124] 基于预置的规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果;其中,所述规则计算有向无环图通过以下方式得到:
[0125] 预先基于流程工业中的实际现场情况,配置逻辑位点计算规则,所述逻辑位点计算规则用于计算流程工业中的各种数据指标;
[0126] 根据所述逻辑位点计算规则构建有向无环图,得到规则计算有向无环图。
[0127] 在一个实施例中,所述根据所述逻辑位点计算规则构建有向无环图,得到规则计算有向无环图,包括:
[0128] 分别以流程工业中实际的测点数据作为有向无环图的根节点,以根据所述逻辑位点计算规则配置出的逻辑位点作为有向无环图的边的节点,构建得到多个初始有向图;
[0129] 分别判断各个所述初始有向图是否成环;
[0130] 将没有成环的初始有向图作为规则计算有向无环图。
[0131] 在一个实施例中,所述基础数据为实时采集流程工业中数据得到的;
[0132] 在所述基于预置的规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果之前,还包括:
[0133] 判断所述基础数据是否有更新;
[0134] 在所述基础数据有更新的情况下,基于预置的规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果。
[0135] 在一个实施例中,所述规则计算有向无环图中包括多个待计算数据节点以及各个待计算数据节点所依赖的子数据节点;
[0136] 所述基于预置的规则计算有向无环图对所述基础数据进行数据处理,得到数据处理结果,包括:
[0137] 基于深度优先遍历算法,遍历所述多个待计算数据节点,以对所述基础数据进行数据处理,得到数据处理结果;
[0138] 其中,遍历所述多个待计算数据节点的过程包括:
[0139] 按照责任链模式,根据所述基础数据分别检查所述各个待计算数据节点是否满足激活条件;
[0140] 遍历满足激活条件的待计算数据节点所依赖的子数据节点。
[0141] 在一个实施例中,所述采集流程工业中的基础数据,包括:
[0142] 定期获取当前的规则计算有向无环图,并作为预置的规则计算有向无环图;
[0143] 根据所述当前的规则计算有向无环图中涉及的数据指标,采集流程工业中的基础数据。
[0144] 在一个实施例中,在所述采集流程工业中的基础数据之前,还包括:
[0145] 获取流程工业中的硬件设备的数据传输协议;
[0146] 在所述数据传输协议中的协议头定义消息体的标识ID;
[0147] 其中,所述标识ID用于在服务端确认已接收数据包的数据时,向发送端回复一个对应的标识ID的确认包。
[0148] 在一个实施例中,在所述采集流程工业中的基础数据之前,还包括:
[0149] 获取流程工业中的硬件设备的数据传输协议;
[0150] 在所述数据传输协议中的协议头定义递增的消息ID;
[0151] 其中,所述递增的消息ID用于在服务端接收到数据包时,根据所述递增的消息ID检查已收到的递增的消息ID是否为递增。
[0152] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0153] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0154] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0155] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0156] 在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
[0157] 存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
[0158] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器 (CD‑ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
[0159] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0160] 以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。