物联网数据的协议转换方法、装置及设备转让专利

申请号 : CN202011200670.X

文献号 : CN112104664B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 熊俊潘源通许汉洲

申请人 : 长沙树根互联技术有限公司

摘要 :

本申请提供一种物联网数据的协议转换方法、装置及设备,涉及数据处理技术领域。该方法包括:获取至少一个工业设备传输的第一协议报文;根据预先建立的协议映射点表,对每个工业设备的第一协议报文进行解析,得到第一协议报文中各数据参数在预设的第二协议的数据存储空间中的存放地址;并根据存放地址将各数据参数存储至数据存储空间中存放地址所指示的存储区内。在该方法中,只需要通过预先建立的协议映射点表就能够将一种协议转换为另一种协议,提高了不同协议间转换的效率,达到了提高开发效率,降低维护成本的目的。

权利要求 :

1.一种物联网数据的协议转换方法,其特征在于,所述方法包括:

获取至少一个工业设备传输的第一协议报文;

根据预先建立的协议映射点表,对每个工业设备的所述第一协议报文进行解析,得到所述第一协议报文中各数据参数在预设的第二协议的数据存储空间中的存放地址;其中,所述协议映射点表包括:所述各数据参数与所述数据存储空间中的存放地址的映射关系;

根据所述存放地址,将所述各数据参数存储至所述数据存储空间中所述存放地址所指示的存储区内;

其中,所述协议映射点表中还包括:所述每个工业设备对应的消息目录,所述消息目录下具有所述第一协议报文的规则目录,所述规则目录中具有多个数据映射规则,每个数据映射规则为:所述第一协议报文中一个数据参数的映射规则,所述一个数据参数的映射规则为所述一个数据参数与所述数据存储空间中的存放地址的映射关系;

所述根据预先建立的协议映射点表,对每个工业设备传输的所述第一协议报文进行解析,得到所述第一协议报文中数据参数在预设的第二协议的数据存储空间中的存放地址,包括:根据所述第一协议报文对应的设备标识,确定所述每个工业设备对应的消息目录;

在所述每个工业设备的所述消息目录下,遍历所述第一协议报文的所述规则目录中的所述多个数据映射规则,以确定所述第一协议报文中各数据参数的映射规则;

从所述各数据参数的映射规则中,确定所述各数据参数的存放地址。

2.根据权利要求1所述的方法,其特征在于,所述消息目录下还具有所述第一协议报文对应的消息规则;所述在所述每个工业设备的所述消息目录下,遍历所述第一协议报文的所述规则目录中的所述多个数据映射规则,包括:若所述第一协议报文的数据内容与所述第一协议报文对应的消息规则匹配,则在所述消息目录下,遍历所述第一协议报文的所述规则目录中的所述多个数据映射规则。

3.根据权利要求2所述的方法,其特征在于,所述消息规则包括:所述第一协议报文对应输入参数的偏移地址、所述第一协议报文对应输入参数的长度、所述第一协议报文的预设比较值。

4.根据权利要求1所述的方法,其特征在于,所述每个数据映射规则包括:所述第一协议报文中所述一个数据参数的偏移地址、所述一个数据参数的长度、所述一个数据参数的预设比较值、所述一个数据参数的名称描述。

5.根据权利要求1所述的方法,其特征在于,所述一个数据参数的映射规则中具有:所述一个数据参数对应的至少一个点目录字段与所述数据存储空间中的存放地址的映射关系;

所述从所述各数据参数的映射规则中,确定所述各数据参数的偏移地址,包括:

根据所述各数据参数的点目录字段,从所述各数据参数的映射规则中,确定所述各数据参数的点目录字段对应的偏移地址为所述各数据参数的存放地址。

6.根据权利要求5所述的方法,其特征在于,所述各数据参数的点目录字段包括:所述各数据参数中点目录字段的偏移地址、所述各数据参数中点目录字段的长度、所述一个数据参数在所述数据存储空间中的存放地址、所述一个数据参数的名称描述。

7.根据权利要求1-6中任一所述的方法,其特征在于,所述根据预先建立的协议映射点表,对每个工业设备的所述第一协议报文进行解析,得到所述第一协议报文中各数据参数在预设的第二协议的数据存储空间中的偏移地址之前,所述方法还包括:将输入的文本式点表读到预设的内存空间中,并在所述内存空间中生成链表式的参数列表,所述协议映射点表为所述链表式的参数列表。

8.一种物联网数据的协议转换装置,其特征在于,所述装置包括:获取模块、解析模块以及存储模块;

所述获取模块,用于获取至少一个工业设备传输的第一协议报文;

所述解析模块,用于根据预先建立的协议映射点表,对每个工业设备的所述第一协议报文进行解析,得到所述第一协议报文中各数据参数在预设的第二协议的数据存储空间中的存放地址;其中,所述协议映射点表包括:所述各数据参数与所述数据存储空间中的存放地址的映射关系;

所述存储模块,用于根据所述存放地址,将所述各数据参数存储至所述数据存储空间中所述存放地址所指示的存储区内;

其中,所述协议映射点表中还包括:所述每个工业设备对应的消息目录,所述消息目录下具有所述第一协议报文的规则目录,所述规则目录中具有多个数据映射规则,每个数据映射规则为:所述第一协议报文中一个数据参数的映射规则,所述一个数据参数的映射规则为所述一个数据参数与所述数据存储空间中的存放地址的映射关系;

所述解析模块,具体用于:

根据所述第一协议报文对应的设备标识,确定所述每个工业设备对应的消息目录;

在所述每个工业设备的所述消息目录下,遍历所述第一协议报文的所述规则目录中的所述多个数据映射规则,以确定所述第一协议报文中各数据参数的映射规则;

从所述各数据参数的映射规则中,确定所述各数据参数的存放地址。

9.一种物联网数据的协议转换设备,其特征在于,包括处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当物联网数据的协议转换设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以执行时执行如权利要求1-7任一所述的物联网数据的协议转换方法步骤。

说明书 :

物联网数据的协议转换方法、装置及设备

技术领域

[0001] 本发明涉及数据处理技术领域,具体而言,涉及一种物联网数据的协议转换方法、装置及设备。

背景技术

[0002] 随着工业互联网作为新一代信息技术与制造业深度融合的产物,日益成为新工业革命的关键支撑,对未来工业发展产生全方位、深层次、革命性影响。
[0003] 目前,在工业互联网领域,存在多种设备和多种协议,在数据采集时,需要对各种协议进行解析和转换。通常,在数据采集端,按常规的协议解析办法,一款数据协议对应就开发一套解析程序或者一个程序分支,例如,在工业车辆领域,数据传输普遍采用CAN(控制器局域网络,Controller Area Network)协议,每一款车辆和一款车辆的不同型号都存在协议参数的差异,这无疑会产生众多的软件版本,耗费巨大的开发时间和维护成本。
[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] 可选地,所述协议映射点表中还包括:所述每个工业设备对应的消息目录,所述消息目录下具有所述第一协议报文的规则目录,所述规则目录中具有多个数据映射规则,每个数据映射规则为:所述第一协议报文中一个数据参数的映射规则,所述一个数据参数的映射规则为所述一个数据参数与所述数据存储空间中的存放地址的映射关系;
[0031] 所述解析模块,具体用于:
[0032] 根据所述第一协议报文对应的设备标识,确定所述每个工业设备对应的消息目录;
[0033] 在所述每个工业设备的所述消息目录下,遍历所述第一协议报文的所述规则目录中的所述多个数据映射规则,以确定所述第一协议报文中各数据参数的映射规则;
[0034] 从所述各数据参数的映射规则中,确定所述各数据参数的存放地址。
[0035] 可选地,所述消息目录下还具有所述第一协议报文对应的消息规则;所述解析模块,还用于:
[0036] 若所述第一协议报文的数据内容与所述第一协议报文对应的消息规则匹配,则在所述消息目录下,遍历所述第一协议报文的所述数据规则目录中的所述多个数据映射规则。
[0037] 可选地,所述消息规则包括:所述第一协议报文对应输入参数的偏移地址、所述第一协议报文对应输入参数的长度、所述第一协议报文的预设比较值。
[0038] 可选地,所述每个数据映射规则包括:所述第一协议报文中所述一个数据参数的偏移地址、所述一个数据参数的长度、所述一个数据参数的预设比较值、所述一个数据参数的名称描述。
[0039] 可选地,所述一个数据参数的映射规则中具有:所述一个数据参数对应的至少一个点目录字段与所述数据存储空间中的存放地址的映射关系;
[0040] 所述解析模块,还用于:
[0041] 根据所述各数据参数的点目录字段,从所述各数据参数的映射规则中,确定所述各数据参数的点目录字段对应的偏移地址为所述各数据参数的存放地址。
[0042] 可选地,所述各数据参数的点目录字段包括:所述各数据参数中点目录字段的偏移地址、所述各数据参数中点目录字段的长度、所述一个数据参数在所述数据存储空间中的存放地址、所述一个数据参数的名称描述。
[0043] 可选地,所述装置还包括:生成模块;
[0044] 所述生成模块,用于将输入的文本式点表读到预设的内存空间中,并在在所述内存空间中生成链表式的参数列表,所述协议映射点表为所述链表式的参数列表。
[0045] 第三方面,本申请实施例提供了一种物联网数据的协议转换设备,包括处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当物联网数据的协议转换设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以执行时执行如第一方面提供的所述物联网数据的协议转换方法步骤。
[0046] 第四方面,本申请实施例还提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如第一方面提供的所述物联网数据的协议转换方法步骤。
[0047] 本申请的有益效果是:
[0048] 本申请提供一种物联网数据的协议转换方法、装置及设备,该方法包括:获取至少一个工业设备传输的第一协议报文;根据预先建立的协议映射点表,对每个工业设备的第一协议报文进行解析,得到第一协议报文中各数据参数在预设的第二协议的数据存储空间中的存放地址;其中,协议映射点表包括:各数据参数与数据存储空间中的存放地址的映射关系;根据存放地址,将各数据参数存储至数据存储空间中存放地址所指示的存储区内。在该方法中,通过先获取至少一个工业设备传输的第一协议报文,并根据预先建立的协议映射点表,对每个工业设备的第一协议报文进行解析,得到第一协议报文中各数据参数在预设的第二协议的数据存储空间中的存放地址,其中,该协议映射点表包括:各数据参数与数据存储空间中的存放地址的映射关系;然后,根据存放地址,将各数据参数存储至数据存储空间中存放地址所指示的存储区内,这样就可以完成将第一协议报文中各数据参数存放至第二协议的数据存储空间中的存放地址内,即可实现将第一协议报文转换为第二协议,这样使得只需要通过预先建立的协议映射点表就能够将一种协议转换为另一种协议,从而提高了众多协议数据进行转换的兼容性,并提高了不同协议间的转换效率,达到了提高开发效率,降低维护成本的目的。
[0049] 另外,通过根据第一协议报文对应的设备标识,确定每个工业设备对应的消息目录,使得能够在每个工业设备的消息目录下,遍历第一协议报文的规则目录中的多个数据映射规则,以确定第一协议报文中各数据参数的映射规则,并从各数据参数的映射规则中,确定各数据参数的存放地址,这样保证了两种协议间转换的可靠性,并提高了不同协议转换的效率。
[0050] 其次,通过根据各数据参数的点目录字段,从各数据参数的映射规则中,确定各数据参数的点目录字段对应的偏移地址为各数据参数的存放地址,且点目录中的各个参数还可以配置输出的类型和大小端,这样使得在进行协议数据转换时,提高了各参数数据存放的灵活性。
[0051] 最后,本申请实施例提供的协议映射点表可以是采用可编辑的文本,可以提高在现场调试和做数据校对时的方便性,当发现各参数数据中某一个数值不对时,相应的,可以通过调整协议映射点表中的规则去修正,而不用修改和编译程序去调试,提高了现场实施的灵活性。

附图说明

[0052] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0053] 图1为本申请实施例提供的一种物联网数据的协议转换设备的结构示意图;
[0054] 图2为本申请实施例提供的一种物联网数据的协议转换方法的流程示意图;
[0055] 图3为本申请实施例提供的另一种物联网数据的协议转换方法的流程示意图;
[0056] 图4为是本申请实施例提供的一个完整的JSON格式的映射点表;
[0057] 图5为本申请实施例提供的一种CAN协议报文数据经JSON格式的映射点表描述后的流向示意;
[0058] 图6为本申请实施例提供的一种物联网数据的协议转换的示意图;
[0059] 图7为本申请实施例提供的一种物联网数据的协议转换装置的结构示意图。
[0060] 图标:100-物联网数据的协议转换设备;101-处理器;102-存储器。

具体实施方式

[0061] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
[0062] 本申请提供下述多个实施例,来实现对物联网中的两种不同数据协议进行转换,以达到提高开发效率和降低维护成本的目的。如下通过多个实施例进行解释说明。
[0063] 图1为本申请实施例提供的一种物联网数据的协议转换设备的结构示意图。如图1所示,可选的,物联网数据的协议转换设备100包括:处理器101和存储器102。存储器102用于存储程序,处理器101调用存储器102存储的程序,以执行下面实施例提供的物联网数据的协议转换方法,具体实现方式和技术效果类似,如下将通过多个具体的实施例对本申请所提供的物联网数据的协议转换方法进行详细说明。
[0064] 图2为本申请实施例提供的一种物联网数据的协议转换方法的流程示意图;该方法可由上述实施例提供的物联网数据的协议转换设备中的处理器实现。如图2所示,该方法包括:
[0065] S201、获取至少一个工业设备传输的第一协议报文。
[0066] 在本实施例中,例如,工业设备可以是工业车辆,则可以获取通过工业车辆的ECU(Electronic Control Unit,电子控制单元)单元以一个报文为单位传输的至少一个工业设备的第一协议报文数据,例如,该第一协议报文是CAN报文,CAN报文由CAN_ID(CAN_Identification,报文标识码)、CAN_DLC(CAN_Data length,报文数据长度)、CAN_DATA(报文数据)三部分组成,CAN报文数据的格式如下所示:
[0067] 表1CAN报文的数据格式
[0068] CAN_ID CAN_DLC CAN_DATA32bits 32bits 64bits
[0069] 其中,CAN_ID是32bits、CAN_DLC是32bits、CAN_DATA是64bits,则可以获取通过ECU单元以一个报文为单位传输的CAN报文数据,一个报文长度为128bit,参数值存放在64bit的数据段。
[0070] S202、根据预先建立的协议映射点表,对每个工业设备的第一协议报文进行解析,得到第一协议报文中各数据参数在预设的第二协议的数据存储空间中的存放地址。
[0071] 其中,协议映射点表包括:各数据参数与数据存储空间中的存放地址的映射关系。
[0072] 具体的,上述协议映射点表是根据第一协议和第二协议预先建立的,且,协议映射点表可以根据不同行业可以设计出适合该行业的点表结构,可以理解,协议映射点表是一种协议到另一种协议转换的关键。比如,一个点就是一个参数,N个点组合在一起就可以描述N个参数,以工业车辆CAN协议数据为例,建立协议映射点表实现CAN协议数据到Modbus内存区的映射关系,可选的,协议映射点表可以是JSON格式的点表,在此不做具体限制。比如,如下所示,是单个参数点表:
[0073] {
[0074]                "name" : "390",
[0075]                "type" : 1,
[0076]                "offset" : 0,
[0077]                "length" : 32,
[0078]                "value" : "#390",
[0079]                "rules" : [
[0080]                   {
[0081]                      "type" : 1,
[0082]                      "offset" : 32,
[0083]                      "length" : 8,
[0084]                      "value" : "8",
[0085]                      "points" : [
[0086]                         {
[0087]                            "offset" : 64,
[0088]                            "mbaddr" : 17,
[0089]                            "length" : 8,
[0090]                            "name" : "水温"
[0091]                         }
[0092]                      ]
[0093]                   }
[0094]                ]
[0095]             }
[0096] 上述协议映射点表是对第一协议报文中的某一个参数的描述,其中,name是指参数名称,offset指参数所在偏移地址,length是参数长度,mbaddr指Modbus协议数据存储空间中的存放地址。具体描述了从CAN协议数据报文中的哪个偏移地址读取多少位的数据放到modbus协议数据的内存地址中,具体过程:读取到一个CAN协议数据ID为390的报文,offset偏移地址是64bit(也就是报文数据段的起始位),从第1位开始取8位长度的数值,放到Modbus地址为17的地址里面,取到的这个参数是水温。以此类推,CAN协议报文的其他参数数据可以按照这个格式生成完整的协议映射点表。
[0097] 在本实施例中,可以通过上述可配置协议映射点表,在应对各种设备协议解析的时候,可以将数据流的输入和输出用文本描绘出来,使得第一协议各参数数据按预设格式输出,这样灵活的实现数据采集,且,在机器语言层面,可以理解,为一种内存到另一种内存之间的映射关系。
[0098] 具体的,在根据第一协议和第二协议预先建立协议映射点表之后,则可以在将第一协议转换为第二协议时,可以根据预先建立的协议映射点表,对每个工业设备的第一协议报文进行解析,以得到该第一协议报文中各数据参数在预设的第二协议的数据存储空间中的存放地址,这样就可以实现第一协议中各数据参数到第二协议内存区的映射。
[0099] 比如,在上述实施例的基础上,以工业车辆的CAN协议转换为Modbus(工业领域广泛使用的一种数据协议)协议为例进行说明。需要说明,Modbus协议是用于终端从PLC(Programmable Logic Controller,可编程逻辑控制器)或者控制器获取数据的一个标准协议,所以,工业互联网平台一般采用Modbus作为标准的读数接口,而工业车辆数据传输普遍采用CAN协议。则可以通过预先建立的协议映射点表,对CAN协议进行读取并解析,能够得到CAN协议中的各数据参数在Modbus协议的数据存储空间中的存放地址,这样就可以得到CAN协议中各数据参数的内存到Modbus协议的内存之间的映射关系。
[0100] S203、根据存放地址,将各数据参数存储至数据存储空间中存放地址所指示的存储区内。
[0101] 在本实施例中,在得到第一协议报文中各数据参数在预设的第二协议的数据存储空间中的存放地址之后,可以根据存放地址,将第一协议中的各参数按偏移量和长度存储至第二协议的数据存储空间中的存放地址内,这样就实现了将第一协议转换为第二协议的数据,这样可以兼容众多的数据协议解析,提高了不同协议之间的转换效率,并达到了提高开发效率,降低维护成本的目的。
[0102] 可选地,在一些实施例中,例如,数据可以按长度来表示,比如,有1位(I/O口),还有1个字节、2个字节、4个字节,甚至是5位、7位等不规则的数据长度,所以,在将第一协议转换为第二协议时,可以设计一种以位为单位的灵活寻址方式,将第一协议中各参数数据所在的内存地址以位为单位转移到第二协议所在的内存地址内,这样就能够将第一协议转换为第二协议的数据存储。
[0103] 综上所述,本申请实施例提供一种本申请提供一种物联网数据的协议转换方法,该方法包括:获取至少一个工业设备传输的第一协议报文;根据预先建立的协议映射点表,对每个工业设备的第一协议报文进行解析,得到第一协议报文中各数据参数在预设的第二协议的数据存储空间中的存放地址;其中,协议映射点表包括:各数据参数与数据存储空间中的存放地址的映射关系;根据存放地址,将各数据参数存储至数据存储空间中存放地址所指示的存储区内。在该方法中,通过先获取至少一个工业设备传输的第一协议报文,并根据预先建立的协议映射点表,对每个工业设备的第一协议报文进行解析,得到第一协议报文中各数据参数在预设的第二协议的数据存储空间中的存放地址,其中,该协议映射点表包括:各数据参数与数据存储空间中的存放地址的映射关系;然后,根据存放地址,将各数据参数存储至数据存储空间中存放地址所指示的存储区内,这样就可以完成将第一协议报文中各数据参数存放至第二协议的数据存储空间中的存放地址内,这样即可实现了将第一协议报文转换为第二协议,只需要通过预先建立的协议映射点表就将一种协议转换为另一种协议,这样可以兼容众多的数据协议解析,提高了不同协议之间的转换效率,并达到了提高开发效率,降低维护成本的目的。
[0104] 图3为本申请实施例提供的另一种物联网数据的协议转换方法的流程示意图;可选地,如图3所示,协议映射点表中还包括:每个工业设备对应的消息目录,消息目录下具有第一协议报文的规则目录,规则目录中具有多个数据映射规则,每个数据映射规则为:第一协议报文中一个数据参数的映射规则,一个数据参数的映射规则为一个数据参数与数据存储空间中的存放地址的映射关系,相应的,上述步骤S202:根据预先建立的协议映射点表,对每个工业设备传输的第一协议报文进行解析,得到第一协议报文中数据参数在预设的第二协议的数据存储空间中的存放地址,具体包括:
[0105] S301、根据第一协议报文对应的设备标识,确定每个工业设备对应的消息目录。
[0106] 需要说明的是,一份协议映射点表可以适配多个设备,例如,在一个车辆上有多个ECU控制器,当需要对多个设备进行数据采集时,就可以简单的把协议映射点表扩展出一个分支给另外一个设备使用。比如,协议映射点表是JSON格式点表时,JSON格式点表就是一个树状结构,一层层的分支扩展下去。
[0107] 比如,在工业物联网中可以有多个工业设备,则JSON格式的协议映射点表可以包括设备目录,且,每个工业设备目录可以包括多个端口目录,可以理解,每个工业设备有多个端口,则可以通过指定从某一个端口读取数据。比如,当第一协议报文是CAN协议时,则相应的,该工业设备的端口目录可以扩展开can0,can1,can2 …等分支,则可以读取多个端口目录中的数据,一个端口目录下面可以扩展开对应的消息目录,即可以通过获取第一协议报文对应的设备标识,确定每个工业设备对应的消息目录。
[0108] S302、在每个工业设备的消息目录下,遍历第一协议报文的规则目录中的多个数据映射规则,以确定第一协议报文中各数据参数的映射规则。
[0109] 可选地,在消息目录下可以包括无限多个规则(rules)目录,其中,每个rules目录代表一个工业设备有多个报文ID,还可以将每个rules目录再分成多个数据目录,以表示一个报文ID里面的多个参数数据,比如,可以参考图4为是本申请实施例提供的一个完整的JSON格式的映射点表。
[0110] 相应的,则可以通过遍历第一协议报文的规则目录中的多个数据映射规则,以确定第一协议报文中各数据参数的映射规则。
[0111] 比如,在某一个工业设备中的端口x接收到一帧数据后,遍历相应的端口目录是x下的msg目录,并利用msg目录中的消息规则对接收到的第一协议参数数据进行筛选,若该参数数据中的内容与规则描述相匹配,则进入对应的规则目录,并进行rules目录规则匹配;若msg目录下的匹配规则与rules下的规则是一致,则遍历多个数据映射规则,则可以确定CAN协议报文中各数据参数与modbus内存区映射关系。
[0112] S303、从各数据参数的映射规则中,确定各数据参数的存放地址。
[0113] 在一些实施例中,例如,图5为本申请实施例提供的一种CAN协议报文数据经JSON格式的映射点表描述后的流向示意;如图5所示,在确定CAN协议报文中各数据参数的映射规则之后,可以从各数据参数的映射规则中,进一步确定CAN协议报文各数据参数在的modbus协议数据中的存放地址。
[0114] 在本实施例中,通过根据第一协议报文对应的设备标识,确定每个工业设备对应的消息目录,使得能够在每个工业设备的消息目录下,遍历第一协议报文的规则目录中的多个数据映射规则,以确定第一协议报文中各数据参数的映射规则,并从各数据参数的映射规则中,确定各数据参数的存放地址,这样保证了协议转换的可靠性,并提供了转换效率。
[0115] 可选地,消息目录下还具有第一协议报文对应的消息规则;在每个工业设备的消息目录下,遍历第一协议报文的数据规则目录中的多个数据映射规则,包括:
[0116] 若第一协议报文的数据内容与第一协议报文对应的消息规则匹配,则在消息目录下,遍历第一协议报文的数据规则目录中的多个数据映射规则。
[0117] 在一些实施例中,例如,继续参考图5所示,在遍历CAN协议报文对应的消息规则时,并将若CAN协议报文的数据内容与CAN协议报文对应的消息规则进行匹配,比如,利用msg目录的消息规则对接收到的CAN协议各参数数据中的内容进行匹配筛选,若读取到CAN协议消息目录中的值是“#187”,则可以确定获取的CAN协议报文的数据内容与对应的消息规则描述相匹配,则进入对应的rules目录,进行rules规则匹配,使得可以在msg目录下,遍历CAN协议报文的数据规则目录中的多个数据映射规则。
[0118] 可选地,消息规则包括:第一协议报文对应输入参数的偏移地址、第一协议报文对应输入参数的长度、第一协议报文的预设比较值。
[0119] 比如,可以继续参考图5所示,msg目录中的消息规则包括:CAN协议报文对应offset(输入参数的偏移地址)、length(输入参数的长度)、value(预设比较值),比如,读取到第一协议报文对应的输入偏移地址offset是0bit(也就是报文数据段的起始位),从第1位开始取32位长度的数值,预设比较值“#187”,并对读取到第一协议报文的数据与“#187”进行匹配,并判断是否一致。
[0120] 需要说明的是,其中,偏移地址可以按二进制最小单位bit(位)来寻址,长度从1-64位,可以提取出任意大小的数据,例如,参考图5所示的msg目录中的offset和length两个参数。
[0121] 可选地,每个数据映射规则包括:第一协议报文中一个数据参数的偏移地址、一个数据参数的长度、一个数据参数的预设比较值、一个数据参数的名称描述。
[0122] 比如,每个数据映射规则可以包括:第一协议报文中一个数据参数的offset(偏移地址)、一个数据length(参数的长度)、一个数据参数的value(预设比较值)、一个数据name(参数的名称描述)等,其中,value可以比对报文ID的值,可以理解,协议映射点表需要有一个寻找数据的规则,使得可以通过该规则从多个参数数据中找到数据入口,在本实施例中,可以通过value寻找对应的报文ID判断第一协议各参数数据的入口。
[0123] 可选地,一个数据参数的映射规则中具有:一个数据参数对应的至少一个点目录字段与数据存储空间中的存放地址的映射关系;
[0124] 从各数据参数的映射规则中,确定各数据参数的偏移地址,包括:
[0125] 根据各数据参数的点目录字段,从各数据参数的映射规则中,确定各数据参数的点目录字段对应的偏移地址为各数据参数的存放地址。
[0126] 在本实施例中,比如,可以继续参考图5所示,一个数据参数的映射规则中具有:一个数据参数对应的至少一个点目录字段与数据存储空间中的存放地址的映射关系,例如,在msg目录和rules目录下,还可以包括points(点)目录,可以使得msg目录下的匹配规则与rules下的规则是一致时,才进入points目录,并根据各数据参数的points目录,从各数据参数的points目录的映射规则中,确定各数据参数的points目录字段对应的偏移地址为各数据参数的存放地址,也可以理解,points目录字段最终决定了第一协议报文中各参数数据与第二协议数据的内存区的映射关系,即第一协议报文中各数据参数的points目录字段对应的在输出端的存放地址,例如,输出端的存放地址可以是上述实施例中的mbaddr地址。
[0127] 可选地,在points目录下的各个参数,还可以加入各参数特性的配置,例如,可以设置各参数的类型,比如,可以设置为float(浮点型)、int(整型)、char(字符型)、或者ring(字符串型等,以及还可以设置参数的大小端,这样可以将各参数配置为按预设的类型输出存放,并进行大小端字节调换等,使得在进行协议数据转换时,提高了各参数数据存放的灵活性。
[0128] 可选地,各数据参数的点目录字段包括:各数据参数中点目录字段的偏移地址、各数据参数中点目录字段的长度、一个数据参数在数据存储空间中的存放地址、一个数据参数的名称描述。
[0129] 可选地,根据预先建立的协议映射点表,对每个工业设备的第一协议报文进行解析,得到第一协议报文中各数据参数在预设的第二协议的数据存储空间中的偏移地址之前,该方法还包括:
[0130] 将输入的文本式点表读到预设的内存空间中,并在内存空间中生成链表式的参数列表,协议映射点表为链表式的参数列表。
[0131] 在一些实施例中,例如,协议映射点表可以是采用可编辑的文本,可以提高在现场调试和做数据校对时的方便性,当发现各参数数据中某一个数值不对时,相应的,可以通过调整协议映射点表中的规则去修正,而不用修改和编译程序去调试,提高了现场实施的灵活性。
[0132] 具体的,可以将输入的文本式协议映射点表读取到预设的内存空间中,并在内存空间中能够生成链表式的参数列表,使得能够将读到的第一协议数据通过遍历链表去找到对应的ID,再进一步把第一协议报文的各参数数据按偏移量和长度存放到相应第二协议从数据存储的内存地址中,即可实现不同协议数据流的转换。
[0133] 在一些实施例中,比如,图6为本申请实施例提供的一种物联网数据的协议转换的示意图;如图6所示,首先,将输入的JSON格式的映射点表点表读到预设的内存空间中,并生成一个链表式的参数列表,使得将读到的CAN协议数据通过遍历上述生成的式的参数列表寻找到对应的ID,再进一步将CAN协议各参数数据按偏移量和长度存放到相应Modbus地址内,进而使得能够将读取到的CAN协议各参数数据按JSON格式的协议映射点表规则提取出来,并转化为Modbus协议数据输出,从而实现了CAN协议到Modbus协议的转换,可以将多种CAN协议转换成统一标准的Modbus协议再输出到平台,提高了众多的数据协议之间解析转换的兼容性,极大的减低了开发难度和维护成本。
[0134] 图7为本申请实施例提供的一种物联网数据的协议转换装置的结构示意图;如图7所示,该物联网数据的协议转换装置700包括:获取模块701、解析模块702以及存储模块703;
[0135] 获取模块701,用于获取至少一个工业设备传输的第一协议报文;
[0136] 解析模块702,用于根据预先建立的协议映射点表,对每个工业设备的第一协议报文进行解析,得到第一协议报文中各数据参数在预设的第二协议的数据存储空间中的存放地址;其中,协议映射点表包括:各数据参数与数据存储空间中的存放地址的映射关系;
[0137] 存储模块703,用于根据存放地址,将各数据参数存储至数据存储空间中存放地址所指示的存储区内。
[0138] 可选地,协议映射点表中还包括:每个工业设备对应的消息目录,消息目录下具有第一协议报文的规则目录,规则目录中具有多个数据映射规则,每个数据映射规则为:第一协议报文中一个数据参数的映射规则,一个数据参数的映射规则为一个数据参数与数据存储空间中的存放地址的映射关系;
[0139] 解析模块702,具体用于:
[0140] 根据第一协议报文对应的设备标识,确定每个工业设备对应的消息目录;
[0141] 在每个工业设备的消息目录下,遍历第一协议报文的规则目录中的多个数据映射规则,以确定第一协议报文中各数据参数的映射规则;
[0142] 从各数据参数的映射规则中,确定各数据参数的存放地址。
[0143] 可选地,消息目录下还具有第一协议报文对应的消息规则;解析模块702,还用于:
[0144] 若第一协议报文的数据内容与第一协议报文对应的消息规则匹配,则在消息目录下,遍历第一协议报文的数据规则目录中的多个数据映射规则。
[0145] 可选地,消息规则包括:第一协议报文对应输入参数的偏移地址、第一协议报文对应输入参数的长度、第一协议报文的预设比较值。
[0146] 可选地,每个数据映射规则包括:第一协议报文中一个数据参数的偏移地址、一个数据参数的长度、一个数据参数的预设比较值、一个数据参数的名称描述。
[0147] 可选地,一个数据参数的映射规则中具有:一个数据参数对应的至少一个点目录字段与数据存储空间中的存放地址的映射关系;
[0148] 解析模块702,还用于:
[0149] 根据各数据参数的点目录字段,从各数据参数的映射规则中,确定各数据参数的点目录字段对应的偏移地址为各数据参数的存放地址。
[0150] 可选地,各数据参数的点目录字段包括:各数据参数中点目录字段的偏移地址、各数据参数中点目录字段的长度、一个数据参数在数据存储空间中的存放地址、一个数据参数的名称描述。
[0151] 可选地,该物联网数据的协议转换装置还包括:生成模块;
[0152] 生成模块,用于将输入的文本式点表读到预设的内存空间中,并在在内存空间中生成链表式的参数列表,协议映射点表为链表式的参数列表。
[0153] 上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
[0154] 以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
[0155] 可选地,本发明还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。
[0156] 在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0157] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0158] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0159] 上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。