一种数据采集方法及装置与流程

    专利2022-07-08  93


    本申请属于数据处理技术领域,尤其涉及一种数据采集方法及装置。



    背景技术:

    opc协议是为了保证工业控制系统的各应用程序之间的通信而建立的接口标准,它为工业控制领域提供了一种标准数据访问机制。

    工业设备普遍采用opc协议。工厂中的设备种类繁多,这些设备往往是由不同厂商生产的,而不同厂商生成的设备,即便都采用opc协议,但生成的消息的数据格式也会存在差异。目前的数据采集方案为:技术人员根据设备厂商提供的消息的样例修改数据采集软件的核心代码,在接收到消息后,利用数据采集软件对消息进行解析,保存解析结果。

    但是,目前的数据采集方案采用的是硬编码方案,灵活性较低,例如,当增加新的设备时,技术人员需要根据该设备生成的消息对数据采集软件的核心代码进行修改,而且修改核心代码给技术人员带来的负担较重。



    技术实现要素:

    有鉴于此,本申请的目的在于提供一种数据采集方法及装置,以提高数据采集方案的灵活性,减小技术人员修改核心代码的负担。

    为实现上述目的,本申请提供如下技术方案:

    本申请提供一种数据采集方法,包括:

    获得目标消息,所述目标消息遵循opc协议;

    在配置文件包含的多个解析模板中确定目标解析模板,所述目标解析模板为所述多个解析模板中与所述目标消息的匹配度最高的解析模板;

    基于所述目标解析模板提取所述目标消息中的宏变量值;

    将所述宏变量值写入目标表达式,所述目标表达式为所述目标解析模板对应的表达式,其中,所述配置文件包含多个解析模板以及与各个解析模板对应的表达式;

    执行所述目标表达式,获得执行结果;

    保存所述执行结果。

    可选的,在上述数据采集方法的基础上,还包括:基于现场工况配置解析模板以及对应的表达式,将所述解析模板和对应的表达式保存至配置文件。

    可选的,在上述数据采集方法的基础上,在所述基于现场工况配置解析模板以及对应的表达式后,还包括:

    获得样本消息;

    基于所述样本消息对所述解析模板以及对应的表达式进行正确性验证,如果通过正确性验证,则执行将所述解析模板和对应的表达式保存至配置文件的操作。

    可选的,在上述数据采集方法的基础上,还包括:修改所述配置文件中的解析模板和/或对应的表达式。

    本申请还提供一种数据采集装置,包括:

    目标消息获取单元,用于获得目标消息,所述目标消息遵循opc协议;

    目标解析模板获取单元,在配置文件包含的多个解析模板中确定目标解析模板,所述目标解析模板为所述多个解析模板中与所述目标消息的匹配度最高的解析模板;

    变量值提取单元,用于基于所述目标解析模板提取所述目标消息中的宏变量值;

    表达式处理单元,用于将所述宏变量值写入目标表达式,所述目标表达式为所述目标解析模板对应的表达式,其中,所述配置文件包含多个解析模板以及与各个解析模板对应的表达式;

    表达式执行单元,执行所述目标表达式,获得执行结果;

    结果处理单元,用于保存所述执行结果。

    可选的,在上述数据采集装置的基础上,还包括:

    预处理单元,用于接收基于现场工况配置的解析模板以及对应的表达式,将所述解析模板和对应的表达式保存至配置文件。

    可选的,在上述数据采集装置的基础上,还包括:

    验证单元,用于在所述预处理单元接收基于现场工况配置的解析模板以及对应的表达式后,获得样本消息,基于所述样本消息对所述解析模板以及对应的表达式进行正确性验证,如果通过正确性验证,则触发所述预处理单元执行将所述解析模板和对应的表达式保存至配置文件的操作。

    可选的,在上述数据采集装置的基础上,还包括:

    配置文件修改单元,用于接收修改指令,基于所述修改指令修改所述配置文件中的解析模板和/或对应的表达式。

    由此可见,本申请的有益效果为:

    本申请公开的数据采集方法及装置,获得目标消息后,在配置文件包含的多个解析模板中确定目标解析模板,即,多个解析模板中与目标消息的匹配度最高的解析模板,之后基于目标解析模板提取目标消息中的宏变量值,之后将提取出的宏变量值写入与目标解析模板对应的表达式,并执行该表达式,获得执行结果并进行保存。可以看到,本申请公开的方案基于配置文件完成对opc消息的解析,当现场工况发生变化时,只需要修改配置文件,而不需要修改核心代码,这极大地提高了数据采集方案的灵活性,也提高了系统的安全性和稳定性,并且减小了技术人员修改核心代码的负担。

    附图说明

    为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

    图1为本申请公开的一种数据采集方法的流程图;

    图2为本申请公开的一个数据采集示例的原理图;

    图3为本申请公开的另一种数据采集方法的流程图;

    图4为本申请公开的一种数据采集装置的结构示意图;

    图5为本申请公开的另一种数据采集装置的结构示意图;

    图6为本申请公开的另一种数据采集装置的结构示意图。

    具体实施方式

    本申请公开一种数据采集方法及装置,以提高数据采集方案的灵活性,减小技术人员修改核心代码的负担。

    为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

    参见图1,图1为本申请公开的一种数据采集方法的流程图。本申请公开的数据采集方法应用于数据采集设备,该数据采集方法包括:

    s101:获得目标消息。

    工业设备在运行过程中,生成遵循opc协议的消息。数据采集设备基于多种策略和途径获得工业设备生成的消息。本申请中,将待处理的遵循opc协议的消息称为目标消息。

    s102:在配置文件包含的多个解析模板中确定目标解析模板。

    其中,目标解析模板为多个解析模板中与目标消息的匹配度最高的解析模板。需要说明的是,配置文件包含多个解析模板以及与各个解析模板对应的表达式。

    可选的,在配置文件包含的多个解析模板中确定与目标消息匹配度最高的解析模板,可以采用如下方案:

    1)、针对每个解析模板,对解析模板进行拆解,获得该解析模板包含的宏变量和普通字符。

    2)、针对每个解析模板,确定该解析模板的匹配词组集合。其中,解析模板的匹配词组集合为:该解析模板包含的宏变量和普通字符中与目标消息匹配的宏变量和普通字符。

    3)、根据多个解析模板的匹配词组集合对多个解析模板进行优先级排序,将优先级最高的解析模板确定为目标解析模板。

    其中,排序规则如下:

    a)、普通字符的优先级高于宏变量的优先级。

    b)、宏变量之间的优先级规则:整形>浮点数>布尔型>字符串。

    c)、普通字符之间的优先级规则:字符长度较长则优先级较高。

    如果按照规则a)、b)和c)未确定出解析模板之间的优先级排序,那么包含较多宏变量和普通字符的解析模板的优先级较高。

    例如,解析模板1为:“将位号${tag}$.${condition}$(${msg}$)从${old}$改变为${new}$”;

    解析模板2为:“将位号${tag}$.${condition}$从${old}$改变为${new}$”。

    解析模板2的匹配词组集合与解析模板1的匹配词组集合相同,按照规则a)、b)和c)无法确定出这两个解析模板之间的优先级排序,由于解析模板1包含的宏变量和普通字符多于解析模板2包含的宏变量和普通字符,因此,确定解析模板1的优先级高于解析模板2的优先级。

    s103:基于解析模板提取目标消息中的宏变量值。

    s104:将宏变量值写入目标表达式。

    其中,目标表达式为目标解析模板对应的表达式。

    s105:执行目标表达式,获得执行结果。

    s106:保存执行结果。

    这里结合一个示例进行说明。

    请参见图2,图2为本申请公开的一个数据采集示例的原理图。

    数据采集设备实时监听来自opc服务器的消息。

    数据采集设备接收到来自opc服务器的消息“将位号di1.pv(备用)从on改变为off”时,将该消息与配置文件包含的多个解析模板逐个进行匹配,以确定出匹配度最高的解析模板(即目标解析模板)。

    例如,配置文件包含以下解析模板:

    “将位号${tag}$.${condition}$从${old}$改变为${new}$修改原因:${reason}$”;

    “新值=${dbl1}$,旧值=${dbl1}$”;

    “将位号${tag}$.${condition}$(${msg}$)从${old}$改变为${new}$”。

    该消息与解析模板“将位号${tag}$.${condition}$(${msg}$)从${old}$改变为${new}$”的匹配度最高,因此,将该解析模板作为目标解析模板。

    之后,数据采集设备基于目标解析模板提取该消息中的宏变量值,具体的:宏变量tag等于“di1”、宏变量condition等于“pv”、宏变量msg等于“备用”、宏变量old等于“on”、宏变量new等于“off”,将宏变量值带入到与目标解析模板对应的表达式(即目标表达式)中,然后执行当前的目标表达式,获得到业务逻辑处理的结果,最后将结果写入到数据库中。

    其中,基于目标解析模板“将位号${tag}$.${condition}$(${msg}$)从${old}$改变为${new}$”提取消息“将位号di1.pv(备用)从on改变为off”中的宏变量的步骤如下:

    1)、对目标解析模板进行拆分,得到以下词组:“将位号”、“${tag}$”、“.”、“${condition}$”、“(”、“${msg}$”、“)从”、“${old}$”、“改变为”、“${new}$”。

    2)、将消息“将位号di1.pv(备用)从on改变为off”与对目标解析模板拆分得到的多个词组依次进行匹配。

    3)、匹配普通字符,目标解析模板中出现的普通字符必须是按照前后次序在消息中出现。

    满足步骤3)后,从普通字符中间出现的空隙提取出的字符即宏变量值。

    需要说明的是,目标解析模板是配置文件包含的多个解析模板中与目标消息的匹配度最高的解析模板,这保证了即便没有与目标消息的数据格式完全相同的解析模板,仍能够对目标消息进行准确的解析。

    本申请公开的数据采集方法,获得目标消息后,在配置文件包含的多个解析模板中确定目标解析模板,即,多个解析模板中与目标消息的匹配度最高的解析模板,之后基于目标解析模板提取目标消息中的宏变量值,之后将提取出的宏变量值写入与目标解析模板对应的表达式,并执行该表达式,获得执行结果并进行保存。可以看到,本申请公开的方案基于配置文件完成对opc消息的解析,当现场工况发生变化时,只需要修改配置文件,而不需要修改核心代码,这极大地提高了数据采集方案的灵活性,也提高了系统的安全性和稳定性,并且减小了技术人员修改核心代码的负担。

    参见图3,图3为本申请公开的另一种数据采集方法的流程图。该数据采集方法包括:

    s301:基于现场工况配置解析模板以及对应的表达式,将解析模板和对应的表达式保存至配置文件。

    实施中,技术人员采集若干数据样本,对数据样本进行分类,针对各类别的数据样本进行分析,总结各类别的数据样本的规律,从而针对各类别的数据样本分别编写解析模板和对应的表达式,并将解析模板和对应的表达式保存至配置文件。之后,向数据采集设备发布配置文件,数据采集设备在接收到opc消息时,就可以基于配置文件opc消息进行解析,实现数据采集。

    s302:获得目标消息。

    s303:在配置文件包含的多个解析模板中确定目标解析模板。

    其中,目标解析模板为多个解析模板中与目标消息的匹配度最高的解析模板。

    s304:基于解析模板提取目标消息中的宏变量值。

    s305:将宏变量值写入目标表达式。

    其中,目标表达式为目标解析模板对应的表达式。

    s306:执行目标表达式,获得执行结果。

    s307:保存执行结果。

    可选的,在基于现场工况配置解析模板以及对应的表达式后,还包括:获得样本消息;基于样本消息对解析模板以及对应的表达式进行正确性验证,如果通过正确性验证,则执行将解析模板和对应的表达式保存至配置文件的操作。

    实施中,基于样本消息对解析模板以及对应的表达式进行正确性验证,采用如下方案:基于该解析模板提取该样本消息中的宏变量值,将宏变量值代入前述的表达式,执行当前的表达式,获得业务逻辑处理的结果,判断该结果是否与期望的结果一致,如果一致,则确定通过正确性验证,如果不一致,则确定未通过正确性验证。

    本申请图3所示的数据处理方法,基于现场工况配置解析模板以及对应的表达式,将解析模板和对应的表达式保存至配置文件,当接收到目标消息时,基于该配置文件对目标消息进行解析,完成数据采集。

    在一个实施例中,在图1和图3所示数据采集方法的基础上,还包括:修改配置文件中的解析模板和/或对应的表达式。

    当工业设备进行升级或改造后,如果该工业设备生成的opc消息的数据格式发生变化,那么对配置文件中相应的解析模板和/或与该解析模板对应的表达式进行修改,并向数据采集设备发布修改后的配置文件。数据采集设备在接收到该工业设备生成的opc消息时,能够基于更新后的配置文件对该工业设备生成的opc消息进行准确地解析。

    本申请上述公开了数据采集方法,相应的,本申请还公开数据采集装置,说明书中关于两者的描述可以相互参考。

    参见图4,图4为本申请公开的一种数据采集装置的结构示意图。

    该数据采集装置包括目标消息获取单元100、目标解析模板获取单元200、变量值提取单元300、表达式处理单元400、表达式执行单元500和结果处理单元600。

    其中:

    目标消息获取单元100,用于获得目标消息。其中,目标消息遵循opc协议。

    目标解析模板获取单元200,在配置文件包含的多个解析模板中确定目标解析模板。其中,目标解析模板为多个解析模板中与目标消息的匹配度最高的解析模板。

    变量值提取单元300,用于基于目标解析模板提取目标消息中的宏变量值。

    表达式处理单元400,用于将宏变量值写入目标表达式,目标表达式为目标解析模板对应的表达式。其中,配置文件包含多个解析模板以及与各个解析模板对应的表达式。

    表达式执行单元500,执行目标表达式,获得执行结果;

    结果处理单元600,用于保存执行结果。

    本申请公开的数据采集装置,获得目标消息后,在配置文件包含的多个解析模板中确定目标解析模板,即,多个解析模板中与目标消息的匹配度最高的解析模板,之后基于目标解析模板提取目标消息中的宏变量值,之后将提取出的宏变量值写入与目标解析模板对应的表达式,并执行该表达式,获得执行结果并进行保存。可以看到,本申请公开的数据采集装置基于配置文件完成对opc消息的解析,当现场工况发生变化时,只需要修改配置文件,而不需要修改核心代码,这极大地提高了数据采集方案的灵活性,也提高了系统的安全性和稳定性,并且减小了技术人员修改核心代码的负担。

    参见图5,图5为本申请公开的另一种数据采集装置的结构示意图。

    与图4所示的数据采集装置相比,图5所示的数据采集装置进一步包括预处理单元700。

    预处理单元700,用于接收基于现场工况配置的解析模板以及对应的表达式,将接收的解析模板和对应的表达式保存至配置文件。

    可选的,进一步设置验证单元800。

    验证单元800,用于在预处理单元700接收基于现场工况配置的解析模板以及对应的表达式后,获得样本消息,基于样本消息对接收的解析模板以及对应的表达式进行正确性验证,如果通过正确性验证,则触发预处理单元700执行将接收的解析模板和对应的表达式保存至配置文件的操作。

    参见图6,图6为本申请公开的另一种数据采集装置的结构示意图。

    与图5所示的数据采集装置相比,图6所示的数据采集装置进一步包括配置文件修改单元900。

    配置文件修改单元900,用于接收修改指令,基于修改指令修改配置文件中的解析模板和/或对应的表达式。

    最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

    本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

    对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。


    技术特征:

    1.一种数据采集方法,其特征在于,包括:

    获得目标消息,所述目标消息遵循opc协议;

    在配置文件包含的多个解析模板中确定目标解析模板,所述目标解析模板为所述多个解析模板中与所述目标消息的匹配度最高的解析模板;

    基于所述目标解析模板提取所述目标消息中的宏变量值;

    将所述宏变量值写入目标表达式,所述目标表达式为所述目标解析模板对应的表达式,其中,所述配置文件包含多个解析模板以及与各个解析模板对应的表达式;

    执行所述目标表达式,获得执行结果;

    保存所述执行结果。

    2.根据权利要求1所述的数据采集方法,其特征在于,还包括:基于现场工况配置解析模板以及对应的表达式,将所述解析模板和对应的表达式保存至配置文件。

    3.根据权利要求2所述的数据采集方法,其特征在于,在所述基于现场工况配置解析模板以及对应的表达式后,还包括:

    获得样本消息;

    基于所述样本消息对所述解析模板以及对应的表达式进行正确性验证,如果通过正确性验证,则执行将所述解析模板和对应的表达式保存至配置文件的操作。

    4.根据权利要求2所述的数据采集方法,其特征在于,还包括:修改所述配置文件中的解析模板和/或对应的表达式。

    5.一种数据采集装置,其特征在于,包括:

    目标消息获取单元,用于获得目标消息,所述目标消息遵循opc协议;

    目标解析模板获取单元,在配置文件包含的多个解析模板中确定目标解析模板,所述目标解析模板为所述多个解析模板中与所述目标消息的匹配度最高的解析模板;

    变量值提取单元,用于基于所述目标解析模板提取所述目标消息中的宏变量值;

    表达式处理单元,用于将所述宏变量值写入目标表达式,所述目标表达式为所述目标解析模板对应的表达式,其中,所述配置文件包含多个解析模板以及与各个解析模板对应的表达式;

    表达式执行单元,执行所述目标表达式,获得执行结果;

    结果处理单元,用于保存所述执行结果。

    6.根据权利要求5所述的数据采集装置,其特征在于,还包括:

    预处理单元,用于接收基于现场工况配置的解析模板以及对应的表达式,将所述解析模板和对应的表达式保存至配置文件。

    7.根据权利要求6所述的数据采集装置,其特征在于,还包括:

    验证单元,用于在所述预处理单元接收基于现场工况配置的解析模板以及对应的表达式后,获得样本消息,基于所述样本消息对所述解析模板以及对应的表达式进行正确性验证,如果通过正确性验证,则触发所述预处理单元执行将所述解析模板和对应的表达式保存至配置文件的操作。

    8.根据权利要求6所述的数据采集装置,其特征在于,还包括:

    配置文件修改单元,用于接收修改指令,基于所述修改指令修改所述配置文件中的解析模板和/或对应的表达式。

    技术总结
    本申请公开一种数据采集方法及装置。该方法包括:获得目标消息;在配置文件包含的多个解析模板中确定目标解析模板,目标解析模板为多个解析模板中与目标消息的匹配度最高的解析模板;基于目标解析模板提取目标消息中的宏变量值;将提取出的宏变量值写入目标表达式,目标表达式为目标解析模板对应的表达式,其中,配置文件包含多个解析模板以及与各个解析模板对应的表达式;执行目标表达式,获得执行结果;保存执行结果。本申请公开的方案具有较高的灵活性,提高了系统的安全性和稳定性,并且减小了技术人员修改核心代码的负担。

    技术研发人员:姚杰;洪小敏;陈晖;史国芳;李冬
    受保护的技术使用者:浙江中控技术股份有限公司
    技术研发日:2020.11.30
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-23442.html

    最新回复(0)