本申请涉及数据传输领域,更具体地说,涉及一种数据高速读写方法、系统、设备和可读存储介质。
背景技术:
1、随着工业物联网的飞速发展,工业自动化行业对于工业物联网方面提出了新的要求,即通过感知、监控能力的各类采集、控制传感器或控制器,实现智能分析,从而提高生产效率和产品质量。因此工业物联网的应用应具有实时性、大量数据和信息互通互联性等特点。而为了兼顾大量数据访问和实时性要求,工业物联网应用离不开工业通信协议。
2、工业通信协议有很多种,大型的工业自动化公司常用的工业通信协议有modbus协议,can协议,opcua协议,profibus协议等等。同时有很多调用不同协议的第三方库,但上述协议基本都是基于单个变量定义的,批量读取采用的方法一般是在一个方法里多次请求服务端获取所有的数据。
3、当数据量在五百个变量以下进行读写操作时,由于数据量少,访问服务端的耗时时间可以忽略不计。但是当数据量变大时,例如数据量在1万以上时,访问服务端的耗时时间将会变得不可忽略,从而变为非实时性访问数据。
4、因此,需要一种针对大量数据的情况下的数据高速读写方法,对需要访问的数据进行传输速度上的优化提升,确保数据访问的实时性。
技术实现思路
1、有鉴于此,本申请提供了一种数据高速读写方法、系统、设备和可读存储介质,通过对工业通信协议对数据读写方法的改进,来适应工业物联网的未来需求,实现在数据量大的情况下仍能保持访问数据的实时性。
2、为了实现上述目的,现提出的方案如下:
3、一种数据高速读写方法,包括:
4、所述服务端和所述客户端分别获取基于用户需要访问的目标数据对应生成的数据描述模型;
5、所述服务端与所述客户端建立连接;
6、所述服务端按照所述数据描述模型,将所述目标数据编为二进制形式的传输数据,并将所述传输数据发送至所述客户端;
7、所述客户端通过所述数据描述模型解析所述传输数据,得到所述目标数据的值;
8、所述客户端根据本地数据以及所述目标数据的值,确定需要写入的修改数据,并将所述修改数据发送至所述服务端;
9、所述服务端接收并写入所述修改数据。
10、可选的,基于用户需要访问的目标数据对应生成的数据描述模型,包括:
11、确定所述用户需要访问的目标数据的st语言结构体内容;
12、根据所述st语言结构体内容生成xml描述文件;
13、按照所述xml描述文件进行结构体节点映射,生成与所述目标数据对应的数据描述模型。
14、可选的,所述st语言结构体内容包括所述用户需要访问的目标数据的数据结构体,以及所述数据结构体中每一子节点的名称属性、类型属性和结构体基础变量。
15、可选的,所述根据所述st语言结构体内容生成xml描述文件,包括:
16、按所述数据结构体的结构顺序依次遍历所述数据结构体中每一子节点,构建与所述每一子节点对应的每一树节点,并通过所述每一树节点记录所述每一结构体子节点的名称属性、类型属性和结构体基础变量,整合生成xml描述文件。
17、可选的,通过所述数据描述模型解析所述传输数据,得到所述目标数据的值,包括:
18、提取所述数据描述模型中记录的所述名称属性、所述类型属性和所述结构体基础变量,生成对象队列并保存;
19、根据所述对象队列将所述传输数据转换为所述目标数据的值。
20、可选的,提取所述数据描述模型中记录的所述名称属性、所述类型属性和所述结构体基础变量,生成对象队列并保存,包括:
21、基于所述数据描述模型提取对应的所述xml描述文件;
22、依次遍历所述xml描述文件中的所述每一树节点,按照遍历顺序获取所述每一树节点记录的名称属性、类型属性和结构体基础变量,以对象队列的方式保存到运行内存中。
23、可选的,所述结构体基础变量,包括整型类型,浮点类型,字符类型,布尔类型,数组类型以及枚举类型。
24、一种数据高速读写系统,包括ide模块、服务端和客户端;
25、所述ide模块根据用户需要访问的目标数据生成对应的数据描述模型,并将所述数据描述模型分别发送至所述客户端和所述服务端;
26、所述服务端在与所述客户端建立连接后,按照所述数据描述模型,将所述目标数据编为二进制形式的传输数据,并将所述传输数据发送至所述客户端;
27、所述客户端通过所述数据描述模型解析所述传输数据,得到所述目标数据的值。
28、可选的,还包括:
29、所述客户端根据本地数据以及所述目标数据的值,确定需要写入的修改数据,并将所述修改数据发送至所述服务端;
30、所述服务端接收并写入所述修改数据。
31、一种数据高速读写设备,包括存储器和处理器;
32、所述存储器,用于存储程序;
33、所述处理器,用于执行所述程序,实现如上述任一项所述的数据高速读写方法的各个步骤。
34、一种数据高速读写设备,包括存储器和处理器;
35、所述存储器,用于存储程序;
36、所述处理器,用于执行所述程序,实现如上述任一项所述的数据高速读写方法的各个步骤。
37、一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述任一项所述的数据高速读写方法的各个步骤。
38、从上述的技术方案可以看出,本申请实施例提供的一种数据高速读写方法、系统、设备和可读存储介质,所述服务端和所述客户端分别获取基于用户需要访问的目标数据对应生成的数据描述模型。在所述服务端与所述客户端建立了连接之后,所述服务端按照所述数据描述模型,将所述目标数据编为二进制形式的传输数据,并将所述传输数据发送至所述客户端。所述客户端通过所述数据描述模型对接收到的所述传输数据进行解析,得到所述目标数据的值。所述客户端还可以根据本地数据以及所述目标数据的值,确定需要写入的修改数据,并将所述修改数据发送至所述服务端,所述服务端接收并写入所述修改数据。
39、本申请通过对工业通信协议对数据读写方法的改进,来适应工业物联网的未来需求,实现在数据量大的情况下仍能保持访问数据的实时性。数据描述模型是根据用户需要访问的目标数据对应生成的,包含全部的目标数据的结构体信息,数据描述模型可将大量数据编为二进制的形式,以及进行数据值解析。
40、通过数据描述模型解析二进制流的方式减少连接访问,减少了大量数据情况下对服务端的访问次数,实现大量数据下工业协议的高速读写。由于减少了访问服务端的次数,而大部分解析都是通过访问计算机内存进行解析的,比通过访问网络获取数据要更快,可以实现在大量数据的情况下通过工业协议进行高速读取写入,同时没有额外的硬件配置,减少用户的使用成本。
1.一种数据高速读写方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述st语言结构体内容包括所述用户需要访问的目标数据的数据结构体,以及所述数据结构体中每一子节点的名称属性、类型属性和结构体基础变量。
3.根据权利要求2所述的方法,其特征在于,所述根据所述st语言结构体内容生成xml描述文件,包括:
4.根据权利要求2所述的方法,其特征在于,通过所述数据描述模型解析所述传输数据,得到所述目标数据的值,包括:
5.根据权利要求4所述的方法,其特征在于,提取所述数据描述模型中记录的所述名称属性、所述类型属性和所述结构体基础变量,生成对象队列并保存,包括:
6.根据权利要求2所述的方法,其特征在于,所述结构体基础变量,包括整型类型,浮点类型,字符类型,布尔类型,数组类型以及枚举类型。
7.一种数据高速读写系统,其特征在于,包括ide模块、服务端和客户端;
8.一种数据高速读写设备,其特征在于,包括存储器和处理器;
9.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-6中任一项所述的数据高速读写方法的各个步骤。