一种数据共享方法、装置、设备和存储介质制造方法及图纸

技术编号:38320872 阅读:16 留言:0更新日期:2023-07-29 09:02
本申请公开一种数据共享方法、装置、设备和存储介质,通过响应于Codesys软件发起的数据共享指令,在Codesys软件的目标项目工程中进行变量声明,并添加预先建立的符号配置控件,并利用符号配置控件确定各个目标变量;将各个目标变量与每个目标变量下的各个子变量进行第一编译操作,得到目标树结构;将目标树结构下载至Codesys软件的运行单元中,以在运行单元中创建各个共享内存区;响应于目标软件发起的数据访问指令,生成与目标树结构对应的文本文件;将文本文件导入至目标软件中,以供目标软件根据文本文件对共享内存区进行数据访问,完成数据共享过程。该方案可以保证数据的零丢失、零误差,并且这种不依赖于传统方式的通讯可以更高效的保证数据访问效率。的通讯可以更高效的保证数据访问效率。的通讯可以更高效的保证数据访问效率。

【技术实现步骤摘要】
一种数据共享方法、装置、设备和存储介质


[0001]本申请涉及数据共享
,具体涉及一种数据共享方法、装置、设备和存储介质。

技术介绍

[0002]在现代工业控制系统领域中,常常需要将数据、变量、信息等在不同的平台之间进行传输和交互,被共享的数据可以被其他平台所访问,目前一般采用传统的网络通讯方式,比如将以太网作为数据传输媒体。但是这种通讯方式适合应用在不同的硬件设备之间,而对存在于同一个硬件设备中的多个软件平台而言,这种通讯方式速度慢、效率低。
[0003]尤其是Codesys软件与其他软件之间的数据共享过程,由于Codesys软件在运行时需要采用与其他现有软件不同的应用程序,因此若使用现有的网络通讯方式,需要Codesys软件与其他软件的开发人员对每一个共享的数据进行对接,因此软件之间数据共享的速度较慢,效率也比较低,难以实现现代工业控制系统对Codesys软件的高要求。

技术实现思路

[0004]有鉴于此,本申请提供了一种数据共享方法、装置、设备和存储介质,用于解决若使用现有的网络通讯方式,需要Codesys软件与其他软件的开发人员对每一个共享的数据进行对接,因此软件之间数据共享的速度较慢,效率也比较低,难以实现现代工业控制系统对Codesys软件的高要求的问题。
[0005]为实现以上目的,现提出的方案如下:第一方面,一种数据共享方法,包括:响应于Codesys软件发起的数据共享指令,打开所述Codesys软件中的目标项目工程,并在所述目标项目工程中进行变量声明;在所述目标项目工程中添加预先建立的符号配置控件,并利用所述符号配置控件从所述目标项目工程的各个已声明的变量中确定各个目标变量;将各个所述目标变量与每个所述目标变量下的各个子变量进行第一编译操作,得到目标树结构;将所述目标树结构下载至所述Codesys软件的运行单元中,以在所述运行单元中创建与所述目标树结构中各个所述目标变量对应的各个共享内存区;响应于目标软件发起的数据访问指令,对所述目标树结构进行第二编译操作,以生成与所述目标树结构对应的文本文件;将所述文本文件导入至所述目标软件中,以供所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问,完成数据共享过程。
[0006]优选地,所述将各个所述目标变量与每个所述目标变量下的各个子变量进行第一编译操作,得到目标树结构,包括:针对每一个目标变量,将该目标变量与该目标变量下的各个子变量按照预设的连
接顺序进行连接,组成与该目标变量对应的变量节点结构;以连接各个目标变量的方式将各个所述变量节点结构进行组合,得到目标树结构。
[0007]优选地,所述对所述目标树结构进行第二编译操作,以生成与所述目标树结构对应的文本文件,包括:获取所述目标树结构中每个所述目标变量的变量名称、变量类型以及变量初始值;获取所述目标树结构中每个所述子变量的变量大小以及变量初始值;将每个所述目标变量的变量名称、变量类型以及变量初始值,和每个所述子变量的变量大小以及变量初始值添加至所述目标树结构中,得到变量信息树;将所述变量信息树存储至预先建立的空白文件中,得到与所述目标树结构对应的文本文件。
[0008]优选地,所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问的过程,包括:调用预先建立的动态链接库加载所述文本文件;利用所述动态链接库中的文件解析模块对所述文本文件进行解析,得到第一待访问目标变量的变量信息或第一待访问子变量的变量信息;与所述Codesys软件的运行单元进行映射连接,并基于所述第一待访问目标变量的变量信息或第一待访问子变量的变量信息实现对各个所述共享内存区的数据访问。
[0009]优选地,所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问的过程,包括:从所述文本文件中获取每个目标变量的变量名称;在各个所述目标变量的变量名称中确定第二待访问目标变量的变量名称;根据所述第二待访问目标变量的变量名称,并通过预先获取的共享系统函数获取所述第二待访问目标变量的初始地址;在各个所述共享内存区中确定与所述第二待访问目标变量的变量名称所对应的第一待访问共享内存区;利用所述第二待访问目标变量的初始地址访问所述第一待访问共享内存区中的第二待访问目标变量。
[0010]优选地,所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问的过程,包括:从所述文本文件中获取每个目标变量的变量名称;在各个所述目标变量的变量名称中确定第二待访问子变量所属目标变量的变量名称;根据所述目标树结构确定所述第二待访问子变量的指针地址;在各个所述共享内存区中确定与所述第二待访问子变量所属目标变量的变量名称所对应的第二待访问共享内存区;利用所述指针地址访问所述第二待访问共享内存区中的第二待访问子变量。
[0011]优选地,所述根据所述目标树结构确定所述第二待访问子变量的指针地址,包括:
从所述目标树结构中确定所述第二待访问子变量与其所属目标变量之间的各个中间子变量;根据所述第二待访问子变量所属目标变量的变量名称,并通过预先获取的共享系统函数获取所述第二待访问子变量所属目标变量的初始地址;从所述文本文件中获取各个所述中间子变量的变量大小;将所述第二待访问子变量所属目标变量的初始地址以及各个所述中间子变量的变量大小进行求和计算,得到所述第二待访问子变量的指针地址。
[0012]第二方面,一种数据共享装置,包括:变量声明模块,用于响应于Codesys软件发起的数据共享指令,打开所述Codesys软件中的目标项目工程,并在所述目标项目工程中进行变量声明;目标变量确定模块,用于在所述目标项目工程中添加预先建立的符号配置控件,并利用所述符号配置控件从所述目标项目工程的各个已声明的变量中确定各个目标变量;第一编译操作模块,用于将各个所述目标变量与每个所述目标变量下的各个子变量进行第一编译操作,得到目标树结构;共享内存区创建模块,用于将所述目标树结构下载至所述Codesys软件的运行单元中,以在所述运行单元中创建与所述目标树结构中各个所述目标变量对应的各个共享内存区;第二编译操作模块,用于响应于目标软件发起的数据访问指令,对所述目标树结构进行第二编译操作,以生成与所述目标树结构对应的文本文件;数据访问模块,用于将所述文本文件导入至所述目标软件中,以供所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问,完成数据共享过程。
[0013]第三方面,一种数据共享设备,包括存储器和处理器;所述存储器,用于存储程序;所述处理器,用于执行所述程序,实现如第一方面所述的数据共享方法的各个步骤。
[0014]第四方面,一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如第一方面所述的数据共享方法的各个步骤。
[0015]从上述技术方案可以看出,本申请通过响应于Codesys软件发起的数据共享指令,打开所述Codesys软件中的目标项目工程,并在所述目标项目工程中进行变量声明;在所述目标项目工程中添加预先建立的符号配置控件,并利用所述符号配置控本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据共享方法,其特征在于,包括:响应于Codesys软件发起的数据共享指令,打开所述Codesys软件中的目标项目工程,并在所述目标项目工程中进行变量声明;在所述目标项目工程中添加预先建立的符号配置控件,并利用所述符号配置控件从所述目标项目工程的各个已声明的变量中确定各个目标变量;将各个所述目标变量与每个所述目标变量下的各个子变量进行第一编译操作,得到目标树结构;将所述目标树结构下载至所述Codesys软件的运行单元中,以在所述运行单元中创建与所述目标树结构中各个所述目标变量对应的各个共享内存区;响应于目标软件发起的数据访问指令,对所述目标树结构进行第二编译操作,以生成与所述目标树结构对应的文本文件;将所述文本文件导入至所述目标软件中,以供所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问,完成数据共享过程。2.根据权利要求1所述的方法,其特征在于,所述将各个所述目标变量与每个所述目标变量下的各个子变量进行第一编译操作,得到目标树结构,包括:针对每一个目标变量,将该目标变量与该目标变量下的各个子变量按照预设的连接顺序进行连接,组成与该目标变量对应的变量节点结构;以连接各个目标变量的方式将各个所述变量节点结构进行组合,得到目标树结构。3.根据权利要求1所述的方法,其特征在于,所述对所述目标树结构进行第二编译操作,以生成与所述目标树结构对应的文本文件,包括:获取所述目标树结构中每个所述目标变量的变量名称、变量类型以及变量初始值;获取所述目标树结构中每个所述子变量的变量大小以及变量初始值;将每个所述目标变量的变量名称、变量类型以及变量初始值,和每个所述子变量的变量大小以及变量初始值添加至所述目标树结构中,得到变量信息树;将所述变量信息树存储至预先建立的空白文件中,得到与所述目标树结构对应的文本文件。4.根据权利要求1所述的方法,其特征在于,所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问的过程,包括:调用预先建立的动态链接库加载所述文本文件;利用所述动态链接库中的文件解析模块对所述文本文件进行解析,得到第一待访问目标变量的变量信息或第一待访问子变量的变量信息;与所述Codesys软件的运行单元进行映射连接,并基于所述第一待访问目标变量的变量信息或第一待访问子变量的变量信息实现对各个所述共享内存区的数据访问。5.根据权利要求1所述的方法,其特征在于,所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问的过程,包括:从所述文本文件中获取每个目标变量的变量名称;在各个所述目标变量的变量名称中确定第二待访问目标变量的变量名称;根据所述第二待访问目标变量的变量名称,并通过预先获取的共享系统函数获取所述第二待访问目标变量的初始地址;
在各个所述共享内存区中确定与所述...

【专利技术属性】
技术研发人员:余栋栋苏开祥郭柏成麦献豪张天威
申请(专利权)人:广东科伺智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1