CN116483597B - 一种数据共享方法、装置、设备和存储介质 - Google Patents
一种数据共享方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN116483597B CN116483597B CN202310746078.7A CN202310746078A CN116483597B CN 116483597 B CN116483597 B CN 116483597B CN 202310746078 A CN202310746078 A CN 202310746078A CN 116483597 B CN116483597 B CN 116483597B
- Authority
- CN
- China
- Prior art keywords
- variable
- target
- sub
- software
- tree structure
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 84
- 230000008569 process Effects 0.000 claims abstract description 44
- 230000006870 function Effects 0.000 claims description 19
- 238000004458 analytical method Methods 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 2
- 230000006854 communication Effects 0.000 abstract description 32
- 238000004891 communication Methods 0.000 abstract description 31
- 238000010586 diagram Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开一种数据共享方法、装置、设备和存储介质,通过响应于Codesys软件发起的数据共享指令,在Codesys软件的目标项目工程中进行变量声明,并添加预先建立的符号配置控件,并利用符号配置控件确定各个目标变量;将各个目标变量与每个目标变量下的各个子变量进行第一编译操作,得到目标树结构;将目标树结构下载至Codesys软件的运行单元中,以在运行单元中创建各个共享内存区;响应于目标软件发起的数据访问指令,生成与目标树结构对应的文本文件;将文本文件导入至目标软件中,以供目标软件根据文本文件对共享内存区进行数据访问,完成数据共享过程。该方案可以保证数据的零丢失、零误差,并且这种不依赖于传统方式的通讯可以更高效的保证数据访问效率。
Description
技术领域
本申请涉及数据共享技术领域,具体涉及一种数据共享方法、装置、设备和存储介质。
背景技术
在现代工业控制系统领域中,常常需要将数据、变量、信息等在不同的平台之间进行传输和交互,被共享的数据可以被其他平台所访问,目前一般采用传统的网络通讯方式,比如将以太网作为数据传输媒体。但是这种通讯方式适合应用在不同的硬件设备之间,而对存在于同一个硬件设备中的多个软件平台而言,这种通讯方式速度慢、效率低。
尤其是Codesys软件与其他软件之间的数据共享过程,由于Codesys软件在运行时需要采用与其他现有软件不同的应用程序,因此若使用现有的网络通讯方式,需要Codesys软件与其他软件的开发人员对每一个共享的数据进行对接,因此软件之间数据共享的速度较慢,效率也比较低,难以实现现代工业控制系统对Codesys软件的高要求。
发明内容
有鉴于此,本申请提供了一种数据共享方法、装置、设备和存储介质,用于解决若使用现有的网络通讯方式,需要Codesys软件与其他软件的开发人员对每一个共享的数据进行对接,因此软件之间数据共享的速度较慢,效率也比较低,难以实现现代工业控制系统对Codesys软件的高要求的问题。
为实现以上目的,现提出的方案如下:
第一方面,一种数据共享方法,包括:
响应于Codesys软件发起的数据共享指令,打开所述Codesys软件中的目标项目工程,并在所述目标项目工程中进行变量声明;
在所述目标项目工程中添加预先建立的符号配置控件,并利用所述符号配置控件从所述目标项目工程的各个已声明的变量中确定各个目标变量;
将各个所述目标变量与每个所述目标变量下的各个子变量进行第一编译操作,得到目标树结构;
将所述目标树结构下载至所述Codesys软件的运行单元中,以在所述运行单元中创建与所述目标树结构中各个所述目标变量对应的各个共享内存区;
响应于目标软件发起的数据访问指令,对所述目标树结构进行第二编译操作,以生成与所述目标树结构对应的文本文件;
将所述文本文件导入至所述目标软件中,以供所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问,完成数据共享过程。
优选地,所述将各个所述目标变量与每个所述目标变量下的各个子变量进行第一编译操作,得到目标树结构,包括:
针对每一个目标变量,将该目标变量与该目标变量下的各个子变量按照预设的连接顺序进行连接,组成与该目标变量对应的变量节点结构;
以连接各个目标变量的方式将各个所述变量节点结构进行组合,得到目标树结构。
优选地,所述对所述目标树结构进行第二编译操作,以生成与所述目标树结构对应的文本文件,包括:
获取所述目标树结构中每个所述目标变量的变量名称、变量类型以及变量初始值;
获取所述目标树结构中每个所述子变量的变量大小以及变量初始值;
将每个所述目标变量的变量名称、变量类型以及变量初始值,和每个所述子变量的变量大小以及变量初始值添加至所述目标树结构中,得到变量信息树;
将所述变量信息树存储至预先建立的空白文件中,得到与所述目标树结构对应的文本文件。
优选地,所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问的过程,包括:
调用预先建立的动态链接库加载所述文本文件;
利用所述动态链接库中的文件解析模块对所述文本文件进行解析,得到第一待访问目标变量的变量信息或第一待访问子变量的变量信息;
与所述Codesys软件的运行单元进行映射连接,并基于所述第一待访问目标变量的变量信息或第一待访问子变量的变量信息实现对各个所述共享内存区的数据访问。
优选地,所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问的过程,包括:
从所述文本文件中获取每个目标变量的变量名称;
在各个所述目标变量的变量名称中确定第二待访问目标变量的变量名称;
根据所述第二待访问目标变量的变量名称,并通过预先获取的共享系统函数获取所述第二待访问目标变量的初始地址;
在各个所述共享内存区中确定与所述第二待访问目标变量的变量名称所对应的第一待访问共享内存区;
利用所述第二待访问目标变量的初始地址访问所述第一待访问共享内存区中的第二待访问目标变量。
优选地,所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问的过程,包括:
从所述文本文件中获取每个目标变量的变量名称;
在各个所述目标变量的变量名称中确定第二待访问子变量所属目标变量的变量名称;
根据所述目标树结构确定所述第二待访问子变量的指针地址;
在各个所述共享内存区中确定与所述第二待访问子变量所属目标变量的变量名称所对应的第二待访问共享内存区;
利用所述指针地址访问所述第二待访问共享内存区中的第二待访问子变量。
优选地,所述根据所述目标树结构确定所述第二待访问子变量的指针地址,包括:
从所述目标树结构中确定所述第二待访问子变量与其所属目标变量之间的各个中间子变量;
根据所述第二待访问子变量所属目标变量的变量名称,并通过预先获取的共享系统函数获取所述第二待访问子变量所属目标变量的初始地址;
从所述文本文件中获取各个所述中间子变量的变量大小;
将所述第二待访问子变量所属目标变量的初始地址以及各个所述中间子变量的变量大小进行求和计算,得到所述第二待访问子变量的指针地址。
第二方面,一种数据共享装置,包括:
变量声明模块,用于响应于Codesys软件发起的数据共享指令,打开所述Codesys软件中的目标项目工程,并在所述目标项目工程中进行变量声明;
目标变量确定模块,用于在所述目标项目工程中添加预先建立的符号配置控件,并利用所述符号配置控件从所述目标项目工程的各个已声明的变量中确定各个目标变量;
第一编译操作模块,用于将各个所述目标变量与每个所述目标变量下的各个子变量进行第一编译操作,得到目标树结构;
共享内存区创建模块,用于将所述目标树结构下载至所述Codesys软件的运行单元中,以在所述运行单元中创建与所述目标树结构中各个所述目标变量对应的各个共享内存区;
第二编译操作模块,用于响应于目标软件发起的数据访问指令,对所述目标树结构进行第二编译操作,以生成与所述目标树结构对应的文本文件;
数据访问模块,用于将所述文本文件导入至所述目标软件中,以供所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问,完成数据共享过程。
第三方面,一种数据共享设备,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如第一方面所述的数据共享方法的各个步骤。
第四方面,一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如第一方面所述的数据共享方法的各个步骤。
从上述技术方案可以看出,本申请通过响应于Codesys软件发起的数据共享指令,打开所述Codesys软件中的目标项目工程,并在所述目标项目工程中进行变量声明;在所述目标项目工程中添加预先建立的符号配置控件,并利用所述符号配置控件从所述目标项目工程的各个已声明的变量中确定各个目标变量;将各个所述目标变量与每个所述目标变量下的各个子变量进行第一编译操作,得到目标树结构;将所述目标树结构下载至所述Codesys软件的运行单元中,以在所述运行单元中创建与所述目标树结构中各个所述目标变量对应的各个共享内存区;响应于目标软件发起的数据访问指令,对所述目标树结构进行第二编译操作,以生成与所述目标树结构对应的文本文件;将所述文本文件导入至所述目标软件中,以供所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问,完成数据共享过程。该方案通过声明变量后确定Codesys软件所要共享的目标变量,并将各个目标变量与其子变量下载至Codesys软件的运行单元中,创建各自对应的共享内存区,在目标软件想要访问数据时,就可以通过与目标树结构对应的文本文件访问共享内存区中的目标变量或子变量,以实现数据共享过程。该方案通过创建共享内存、并以文本文件作为数据访问工具的方式,可以保证数据的零丢失、零误差,并且这种不依赖于传统方式的通讯可以更高效的保证数据访问效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种数据共享方法的可选流程图;
图2为本申请实施例提供的一种目标树结构的结构示意图;
图3为本申请实施例提供的一种变量节点结构的地址结构图;
图4为本申请实施例提供的一种数据共享装置的结构示意图;
图5为本申请实施例提供的一种数据共享设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在现代工业控制系统领域中,常常需要将数据、变量、信息等在不同的平台之间进行传输和交互,被共享的数据可以被其他平台所访问,目前一般采用传统的网络通讯方式,比如Modbus TCP(将以太网作为数据传输媒体)、OPC UA(OPC统一体系架构)等。但是这种通讯方式适合应用在不同的硬件设备之间,而对存在于同一个硬件设备中的多个软件平台而言,这种通讯方式速度慢、效率低。比如Modbus TCP,其需要通讯双方约定通讯寄存器地址和数据长度,单次的通讯过程需要经历以下过程:客户端发起数据请求后,服务端会接收到数据帧,并对其进行解析后返回给客户端,然后客户端再对有效数据进行分析等等,这种通讯方式会导致通讯速度较慢、并且中间过程的配置比较复杂。而OPC UA通讯方式虽然减少了约定通讯寄存器地址的步骤,但是其通讯效率还是比较低。尤其是Codesys软件与其他软件之间的数据共享过程,由于Codesys软件在运行时需要采用与其他现有软件不同的应用程序,因此若使用现有的网络通讯方式,需要Codesys软件与其他软件的开发人员对每一个共享的数据进行对接,因此软件之间数据共享的速度较慢,效率也比较低,难以实现现代工业控制系统对Codesys软件的高要求。
为了解决上述现有技术的缺陷,本发明实施例提供一种数据共享方法,该方法可以应用在各种计算机终端或是智能终端中,其执行主体可以为计算机终端或是智能终端的处理器或服务器。
具体地,本申请中提供了在同一硬件平台上的Codesys软件和目标软件,目标软件可以是目前行业内的任一软件,在本实施例中,以Codesys软件为共享者,目标软件为访问者的角度来展开本数据共享方法。
所述方法的方法流程图如图1所示,具体包括:
S1:响应于Codesys软件发起的数据共享指令,打开所述Codesys软件中的目标项目工程,并在所述目标项目工程中进行变量声明。
当Codesys软件要进行数据共享时,可以向服务器发送数据共享指令,当服务器接收到该数据共享指令后,打开Codesys软件中的目标项目工程,并在目标项目工程中进行变量声明(声明变量)。该步骤也可以理解为在目标项目工程中添加了想要进行共享的变量,并且对变量的类型进行了标识。
S2:在所述目标项目工程中添加预先建立的符号配置控件,并利用所述符号配置控件从所述目标项目工程的各个已声明的变量中确定各个目标变量。
在目标项目工程中添加预先建立的符号配置控件,也可以称之为符号配置工具,该控件是用于管理变量的工具,因此利用该符号配置控件可以从目标项目工程中各个已声明的变量中勾选确定要进行共享的一个或多个变量,并称之为目标变量。
S3:将各个所述目标变量与每个所述目标变量下的各个子变量进行第一编译操作,得到目标树结构。
可以理解的是,每个目标变量都存在与其对应的一个或多个子变量,子变量是属于其对应的目标变量的,而每个子变量又可以存在与其对应的子子变量,本实施例对此不做限制。在勾选了目标变量后,其对应的子变量也相应被勾选。
编译是Codesys软件的标准功能,利用Codesys软件中的编译工程可以将目标变量、子变量一起进行第一编译操作,得到目标树结构。该目标树结构可以反应出目标变量与子变量之间的结构关系。
S4:将所述目标树结构下载至所述Codesys软件的运行单元中,以在所述运行单元中创建与所述目标树结构中各个所述目标变量对应的各个共享内存区。
在本步骤中,将目标树结构下载至Codesys软件的运行单元(Runtime)中运行,目标树结构中的目标变量和子变量的变量数据等符号配置(Symbol Configuration)数据是存在于运行单元中的,那么本申请中还预先构建了一个K_SymbolAccess.library库文件,将该库文件存放至目标项目工程中的库管理器中,并且也是运行在Codesys软件的运行单元中,调用该库文件中的FB_ShareMemorySymbolAccess功能模块即可创建与目标树结构中各个目标变量对应的各个共享内存区。
本申请中预先建立的K_SymbolAccess.library库文件可以为Codesys软件以及其他各种软件在进行数据共享和访问时提供创建共享内存区的功能。另外,共享内存区可以通过其对应的系统函数来操作,每个软件都会提供系统函数接口,系统函数接口一般是通过与其对应的目标变量的变量名称以及目标变量的变量大小来指定的。
将目标树结构下载至所述Codesys软件的运行单元的过程可以看作是通过Codesys软件的IDE(集成开发环境)来实现的,通过IDE将目标树结构下载至Codesys软件的运行单元后,才能根据目标树结构,并调用Codesys软件中的共享内存区创建模块来创建共享内存区。
S5:响应于目标软件发起的数据访问指令,对所述目标树结构进行第二编译操作,以生成与所述目标树结构对应的文本文件。
在上述过程中已经创建好了各个共享内存区,每个共享内存区内都有其对应变量的变量数据,可以供其他软件通过共享内存区进行访问。所以此时响应目标软件发起的数据访问指令,对目标树结构进行第二编译操作,该操作可以生成与目标树结构对应的文本文件,该文本文件为xml格式的文件。
S6:将所述文本文件导入至所述目标软件中,以供所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问,完成数据共享过程。
上述将目标树结构进行第二编译操作的过程可以理解为是将变量信息添加至目标树结构中的过程,因此文本文件中保存了各种变量信息,供目标软件读取使用,比如目标软件读取文本文件中的变量信息,并以变量信息为钥匙,打开共享内存区,就可以实现访问共享内存区的目的,可以理解的是,目标软件访问共享内存区的过程可以看作是访问共享内存区中各变量的变量数据的过程。
从上述技术方案可以看出,本申请通过响应于Codesys软件发起的数据共享指令,打开所述Codesys软件中的目标项目工程,并在所述目标项目工程中进行变量声明;在所述目标项目工程中添加预先建立的符号配置控件,并利用所述符号配置控件从所述目标项目工程的各个已声明的变量中确定各个目标变量;将各个所述目标变量与每个所述目标变量下的各个子变量进行第一编译操作,得到目标树结构;将所述目标树结构下载至所述Codesys软件的运行单元中,以在所述运行单元中创建与所述目标树结构中各个所述目标变量对应的各个共享内存区;响应于目标软件发起的数据访问指令,对所述目标树结构进行第二编译操作,以生成与所述目标树结构对应的文本文件;将所述文本文件导入至所述目标软件中,以供所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问,完成数据共享过程。
该方案通过声明变量后确定Codesys软件所要共享的目标变量,并将各个目标变量与其子变量下载至Codesys软件的运行单元中,创建各自对应的共享内存区,在目标软件想要访问数据时,就可以通过与目标树结构对应的文本文件访问共享内存区中的目标变量或子变量,以实现数据共享过程。该方案通过创建共享内存、并以文本文件作为数据访问工具的方式,可以保证数据的零丢失、零误差,并且这种不依赖于传统方式的通讯可以更高效的保证数据访问效率。
本方案减少了传统通讯方式中的数据地址和数据格式的约束,只要Codesys软件根据所共享的各种变量创建共享内存区,并生成目标树结构,其他软件就可以利用目标树结构对应的文本文件去访问共享内存区中的变量数据,不需要各软件的开发人员一个一个的去对接要进行通讯的变量数据,这是一种配置过程简单、数据共享和访问效率高的新通讯方式,且变量数据在交互过程中不会产生丢失和误传等问题,保证了数据共享和访问的准确性。可以理解的是,该方案可以应用于同一硬件中任意两个或多个软件之间的数据共享和访问过程,实现跨平台通讯,具有了更高的兼容性。
另外,在如今的数据通讯领域中,数据量越来越多,数据类型也越来越复杂,而在现有的数据通讯方式下,若某一软件想要对已经共享过的变量进行更改、增删、更新等,也需要交互的两个软件对要进行改变的变量重新定义或核对,所以此过程繁琐复杂,且开发效率低下、易出错,而通过本方案,只需将改动的变量数据内容存入至共享内存区,不需要与目标软件之间进行繁杂沟通,而目标软件只需利用文本文件访问即可,大大简化了数据共享和交互流程,提高了效率。
本发明实施例提供的方法中,将各个所述目标变量与每个所述目标变量下的各个子变量进行第一编译操作,得到目标树结构的过程,具体说明如下所述:
针对每一个目标变量,将该目标变量与该目标变量下的各个子变量按照预设的连接顺序进行连接,组成与该目标变量对应的变量节点结构;
以连接各个目标变量的方式将各个所述变量节点结构进行组合,得到目标树结构。
具体地,构建好的目标树结构可以如图2所示,请参考图2,该目标树结构包含目标变量1、目标变量2、目标变量3、…、目标变量n,一共n个目标变量,这n个目标变量依次连接,可以理解为组成了目标树结构的树干。另外,对于每一个目标变量而言,比如目标变量1,该目标变量1包含有n个子变量,分别为子变量1、子变量2、…、子变量n,其中子变量1又包含有n个子子变量,分别为子子变量1、子子变量2、…、子子变量n,以此类推,因此该目标变量1以及其对应的子变量、子子变量等共同构成了与该目标变量1所对应的变量节点结构,可以理解为,这些子变量、子子变量、子子子变量等都是目标树结构的树枝。
可选的,连接顺序的设置过程可以包括:获取各个子变量的变量大小,按照变量大小的大小值设置连接顺序。另外,在本方案进行变量声明的过程中,可以将目标变量,子变量,子子变量等一同进行变量声明,而上述预设的连接顺序也可以理解为目标变量下的各个子变量在被进行变量声明时的声明顺序。
目标树结构是变量层次结构的直观体现,目标变量本身就是一个结构体,即变量节点结构,结构体中嵌套了子结构体,子结构体中又嵌套了子子结构体,因此多个目标变量可以组合成一个整体的目标树结构。
上述实施例对本申请中的将各个所述目标变量与每个所述目标变量下的各个子变量进行第一编译操作,得到目标树结构的过程进行了说明,下面对本申请中的对所述目标树结构进行第二编译操作,以生成与所述目标树结构对应的文本文件的过程进行详细说明。
获取所述目标树结构中每个所述目标变量的变量名称、变量类型以及变量初始值;
获取所述目标树结构中每个所述子变量的变量大小以及变量初始值;
将每个所述目标变量的变量名称、变量类型以及变量初始值,和每个所述子变量的变量大小以及变量初始值添加至所述目标树结构中,得到变量信息树;
将所述变量信息树存储至预先建立的空白文件中,得到与所述目标树结构对应的文本文件。
具体地,目标树结构中的每个目标变量和子变量都有各自的变量信息,比如目标变量的变量名称、变量类型以及变量初始值,子变量的变量大小以及变量初始值,将上述变量信息添加至目标树结构中,就可以得到一个包含有变量信息的变量信息树,将包含有变量信息的变量信息树存储至预先建立的空白文件中,就可以得到与所述目标树结构对应的,且可以用来传输、下载、读取的文本文件。
接下来对本申请的目标软件根据所述文本文件对各个所述共享内存区进行数据访问的过程进行详细说明,该过程是以目标软件为执行主体所进行的,其中可包括三种方式:
(一)通过文本文件中的变量信息直接访问共享内存区的方式。
调用预先建立的动态链接库加载所述文本文件;
利用所述动态链接库中的文件解析模块对所述文本文件进行解析,得到第一待访问目标变量的变量信息或第一待访问子变量的变量信息;
与所述Codesys软件的运行单元进行映射连接,并基于所述第一待访问目标变量的变量信息或第一待访问子变量的变量信息实现对各个所述共享内存区的数据访问。
具体地,可以调用动态链接库加载文本文件,该动态链接库是预先建立的一种KShareMemoryAccess.dll库,该动态链接库中包含有解析模块,该解析模块可以对文本文件进行解析,从而得到目标变量和子变量的变量信息,目标软件从中确定了第一待访问目标变量或第一待访问子变量后,首先与Codesys软件的运行单元进行映射连接,就可以利用解析得到的变量信息对共享内存区中的第一待访问目标变量或第一待访问子变量进行数据访问。
在上述方案中,本方法通过目标软件与Codesys软件的运行单元进行映射连接的方式,实现对共享内存区的数据访问,而不是将数据帧打包后通过网络发送数据信息实现访问,因此并不依托网络信号等不稳定信息,并且通讯方式方便快捷。
(二)通过文本文件访问目标变量。
从所述文本文件中获取每个目标变量的变量名称;
在各个所述目标变量的变量名称中确定第二待访问目标变量的变量名称;
根据所述第二待访问目标变量的变量名称,并通过预先获取的共享系统函数获取所述第二待访问目标变量的初始地址;
在各个所述共享内存区中确定与所述第二待访问目标变量的变量名称所对应的第一待访问共享内存区;
利用所述第二待访问目标变量的初始地址访问所述第一待访问共享内存区中的第二待访问目标变量。
在本申请的共享内存区的建立过程中,是将与其对应的目标变量的变量名称赋予给共享内存区的,一个共享内存区对应一个目标变量的变量名称,因此根据变量名称来确定共享内存区。文本文件中包含了目标树结构中所有目标变量的变量名称,而目标变量的初始地址是可以通过调用Codesys软件或者目标软件中的共享系统函数来获取的,那么就可以利用初始地址来定位与其对应的第一待访问共享内存区中的第二待访问目标变量。
(三)通过文本文件访问子变量
从所述文本文件中获取每个目标变量的变量名称;
在各个所述目标变量的变量名称中确定第二待访问子变量所属目标变量的变量名称;
根据所述目标树结构确定所述第二待访问子变量的指针地址;
在各个所述共享内存区中确定与所述第二待访问子变量所属目标变量的变量名称所对应的第二待访问共享内存区;
利用所述指针地址访问所述第二待访问共享内存区中的第二待访问子变量。
其中,根据所述目标树结构确定所述第二待访问子变量的指针地址的过程具体包括:从所述目标树结构中确定所述第二待访问子变量与其所属目标变量之间的各个中间子变量;根据所述第二待访问子变量所属目标变量的变量名称,并通过预先获取的共享系统函数获取所述第二待访问子变量所属目标变量的初始地址;从所述文本文件中获取各个所述中间子变量的变量大小;将所述第二待访问子变量所属目标变量的初始地址以及各个所述中间子变量的变量大小进行求和计算,得到所述第二待访问子变量的指针地址。
具体地,在一个示例中,可以参考图3,图3是目标树结构中的一个变量节点结构的地址结构图,该变量节点结构由目标变量2及其对应的各个子变量组成,那么目标软件若要访问子变量,则需要确定子变量/>之前一共有多少子变量,也可以理解为目标变量与子变量/>之间间隔了多少子变量,将间隔的子变量作为中间子变量。那么中间子变量的变量大小以及目标变量2的初始地址都需要获取到,则子变量/>的指针地址的计算方式为:目标变量2的初始地址+子变量1的变量大小+子变量2的变量大小+子变量3的变量大小+…+子变量/>的变量大小,用公式表示为:/>,其中,/>表示子变量/>的指针地址,/>表示目标变量2的初始地址,/>表示子变量1的变量大小,表示子变量2的变量大小,/>表示子变量3的变量大小,/>表示子变量/>的变量大小。
与图1所述的方法相对应,本发明实施例还提供了数据共享装置,用于对图1中方法的具体实现,本发明实施例提供的数据共享装置可以在计算机终端或各种移动设备中,结合图4,对数据共享装置进行介绍,如图4所示,该装置可以包括:
变量声明模块10,用于响应于Codesys软件发起的数据共享指令,打开所述Codesys软件中的目标项目工程,并在所述目标项目工程中进行变量声明;
目标变量确定模块20,用于在所述目标项目工程中添加预先建立的符号配置控件,并利用所述符号配置控件从所述目标项目工程的各个已声明的变量中确定各个目标变量;
第一编译操作模块30,用于将各个所述目标变量与每个所述目标变量下的各个子变量进行第一编译操作,得到目标树结构;
共享内存区创建模块40,用于将所述目标树结构下载至所述Codesys软件的运行单元中,以在所述运行单元中创建与所述目标树结构中各个所述目标变量对应的各个共享内存区;
第二编译操作模块50,用于响应于目标软件发起的数据访问指令,对所述目标树结构进行第二编译操作,以生成与所述目标树结构对应的文本文件;
数据访问模块60,用于将所述文本文件导入至所述目标软件中,以供所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问,完成数据共享过程。
从上述技术方案可以看出,本申请通过响应于Codesys软件发起的数据共享指令,打开所述Codesys软件中的目标项目工程,并在所述目标项目工程中进行变量声明;在所述目标项目工程中添加预先建立的符号配置控件,并利用所述符号配置控件从所述目标项目工程的各个已声明的变量中确定各个目标变量;将各个所述目标变量与每个所述目标变量下的各个子变量进行第一编译操作,得到目标树结构;将所述目标树结构下载至所述Codesys软件的运行单元中,以在所述运行单元中创建与所述目标树结构中各个所述目标变量对应的各个共享内存区;响应于目标软件发起的数据访问指令,对所述目标树结构进行第二编译操作,以生成与所述目标树结构对应的文本文件;将所述文本文件导入至所述目标软件中,以供所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问,完成数据共享过程。该方案通过声明变量后确定Codesys软件所要共享的目标变量,并将各个目标变量与其子变量下载至Codesys软件的运行单元中,创建各自对应的共享内存区,在目标软件想要访问数据时,就可以通过与目标树结构对应的文本文件访问共享内存区中的目标变量或子变量,以实现数据共享过程。该方案通过创建共享内存、并以文本文件作为数据访问工具的方式,可以保证数据的零丢失、零误差,并且这种不依赖于传统方式的通讯可以更高效的保证数据访问效率。
在一个示例中,所述第一编译操作模块30可以包括:
连接模块,用于针对每一个目标变量,将该目标变量与该目标变量下的各个子变量按照预设的连接顺序进行连接,组成与该目标变量对应的变量节点结构;
组合模块,用于以连接各个目标变量的方式将各个所述变量节点结构进行组合,得到目标树结构。
在一个示例中,所述第二编译操作模块50可以包括:
第一信息获取模块,用于获取所述目标树结构中每个所述目标变量的变量名称、变量类型以及变量初始值;
第二信息获取模块,用于获取所述目标树结构中每个所述子变量的变量大小以及变量初始值;
添加模块,用于将每个所述目标变量的变量名称、变量类型以及变量初始值,和每个所述子变量的变量大小以及变量初始值添加至所述目标树结构中,得到变量信息树;
存储模块,用于将所述变量信息树存储至预先建立的空白文件中,得到与所述目标树结构对应的文本文件。
在一个示例中,所述数据访问模块60可以包括:
加载模块,用于调用预先建立的动态链接库加载所述文本文件;
解析模块,用于利用所述动态链接库中的文件解析模块对所述文本文件进行解析,得到第一待访问目标变量的变量信息或第一待访问子变量的变量信息;
映射连接模块,用于与所述Codesys软件的运行单元进行映射连接,并基于所述第一待访问目标变量的变量信息或第一待访问子变量的变量信息实现对各个所述共享内存区的数据访问。
在一个示例中,所述数据访问模块60可以包括:
第一变量名称获取模块,用于从所述文本文件中获取每个目标变量的变量名称;
第二变量名称获取模块,用于在各个所述目标变量的变量名称中确定第二待访问目标变量的变量名称;
第一初始地址获取模块,用于根据所述第二待访问目标变量的变量名称,并通过预先获取的共享系统函数获取所述第二待访问目标变量的初始地址;
第一待访问共享内存区确定模块,用于在各个所述共享内存区中确定与所述第二待访问目标变量的变量名称所对应的第一待访问共享内存区;
第一访问模块,用于利用所述第二待访问目标变量的初始地址访问所述第一待访问共享内存区中的第二待访问目标变量。
在一个示例中,所述数据访问模块60还可以包括:
第三变量名称获取模块,用于从所述文本文件中获取每个目标变量的变量名称;
第四变量名称确定模块,用于在各个所述目标变量的变量名称中确定第二待访问子变量所属目标变量的变量名称;
指针地址确定模块,用于根据所述目标树结构确定所述第二待访问子变量的指针地址;
第二待访问共享内存区确定模块,用于在各个所述共享内存区中确定与所述第二待访问子变量所属目标变量的变量名称所对应的第二待访问共享内存区;
第二访问模块,用于利用所述指针地址访问所述第二待访问共享内存区中的第二待访问子变量。
在一个示例中,所述指针地址确定模块可以包括:
中间子变量确定模块,用于从所述目标树结构中确定所述第二待访问子变量与其所属目标变量之间的各个中间子变量;
第二初始地址模块,用于根据所述第二待访问子变量所属目标变量的变量名称,并通过预先获取的共享系统函数获取所述第二待访问子变量所属目标变量的初始地址;
变量大小获取模块,用于从所述文本文件中获取各个所述中间子变量的变量大小;
求和计算模块,用于将所述第二待访问子变量所属目标变量的初始地址以及各个所述中间子变量的变量大小进行求和计算,得到所述第二待访问子变量的指针地址。
更进一步地,本申请实施例提供了一种数据共享设备。可选的,图5示出了数据共享设备的硬件结构框图,参照图5,数据共享设备的硬件结构可以包括:至少一个处理器01,至少一个通信接口02,至少一个存储器03和至少一个通信总线04。
在本申请实施例中,处理器01、通信接口02、存储器03、通信总线04的数量为至少一个,且处理器01、通信接口02、存储器03通过通信总线04完成相互间的通信。
处理器01可以是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等。
存储器03可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器。
其中,存储器存储有程序,处理器可调用存储器存储的程序,程序用于执行下述数据共享方法,包括:
响应于Codesys软件发起的数据共享指令,打开所述Codesys软件中的目标项目工程,并在所述目标项目工程中进行变量声明;
在所述目标项目工程中添加预先建立的符号配置控件,并利用所述符号配置控件从所述目标项目工程的各个已声明的变量中确定各个目标变量;
将各个所述目标变量与每个所述目标变量下的各个子变量进行第一编译操作,得到目标树结构;
将所述目标树结构下载至所述Codesys软件的运行单元中,以在所述运行单元中创建与所述目标树结构中各个所述目标变量对应的各个共享内存区;
响应于目标软件发起的数据访问指令,对所述目标树结构进行第二编译操作,以生成与所述目标树结构对应的文本文件;
将所述文本文件导入至所述目标软件中,以供所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问,完成数据共享过程。
可选的,程序的细化功能和扩展功能可参照方法实施例中的数据共享方法的描述。
本申请实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,在所述程序运行时控制所述存储介质所在的设备执行下述数据共享方法,包括:
响应于Codesys软件发起的数据共享指令,打开所述Codesys软件中的目标项目工程,并在所述目标项目工程中进行变量声明;
在所述目标项目工程中添加预先建立的符号配置控件,并利用所述符号配置控件从所述目标项目工程的各个已声明的变量中确定各个目标变量;
将各个所述目标变量与每个所述目标变量下的各个子变量进行第一编译操作,得到目标树结构;
将所述目标树结构下载至所述Codesys软件的运行单元中,以在所述运行单元中创建与所述目标树结构中各个所述目标变量对应的各个共享内存区;
响应于目标软件发起的数据访问指令,对所述目标树结构进行第二编译操作,以生成与所述目标树结构对应的文本文件;
将所述文本文件导入至所述目标软件中,以供所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问,完成数据共享过程。
具体地,该存储介质可以是一种计算机可读存储介质,计算机可读存储介质可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。
可选的,程序的细化功能和扩展功能可参照方法实施例中的数据共享方法的描述。
另外,在本公开各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,直播设备,或者网络设备等)执行本公开各个实施例方法的全部或部分步骤。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据共享方法,其特征在于,包括:
响应于Codesys软件发起的数据共享指令,打开所述Codesys软件中的目标项目工程,并在所述目标项目工程中进行变量声明;
在所述目标项目工程中添加预先建立的符号配置控件,并利用所述符号配置控件从所述目标项目工程的各个已声明的变量中确定各个目标变量;
将各个所述目标变量与每个所述目标变量下的各个子变量进行第一编译操作,得到目标树结构;
将所述目标树结构下载至所述Codesys软件的运行单元中,以在所述运行单元中创建与所述目标树结构中各个所述目标变量对应的各个共享内存区;
响应于目标软件发起的数据访问指令,对所述目标树结构进行第二编译操作,以生成与所述目标树结构对应的文本文件;
将所述文本文件导入至所述目标软件中,以供所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问,完成数据共享过程。
2.根据权利要求1所述的方法,其特征在于,所述将各个所述目标变量与每个所述目标变量下的各个子变量进行第一编译操作,得到目标树结构,包括:
针对每一个目标变量,将该目标变量与该目标变量下的各个子变量按照预设的连接顺序进行连接,组成与该目标变量对应的变量节点结构;
以连接各个目标变量的方式将各个所述变量节点结构进行组合,得到目标树结构。
3.根据权利要求1所述的方法,其特征在于,所述对所述目标树结构进行第二编译操作,以生成与所述目标树结构对应的文本文件,包括:
获取所述目标树结构中每个所述目标变量的变量名称、变量类型以及变量初始值;
获取所述目标树结构中每个所述子变量的变量大小以及变量初始值;
将每个所述目标变量的变量名称、变量类型以及变量初始值,和每个所述子变量的变量大小以及变量初始值添加至所述目标树结构中,得到变量信息树;
将所述变量信息树存储至预先建立的空白文件中,得到与所述目标树结构对应的文本文件。
4.根据权利要求1所述的方法,其特征在于,所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问的过程,包括:
调用预先建立的动态链接库加载所述文本文件;
利用所述动态链接库中的文件解析模块对所述文本文件进行解析,得到第一待访问目标变量的变量信息或第一待访问子变量的变量信息;
与所述Codesys软件的运行单元进行映射连接,并基于所述第一待访问目标变量的变量信息或第一待访问子变量的变量信息实现对各个所述共享内存区的数据访问。
5.根据权利要求1所述的方法,其特征在于,所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问的过程,包括:
从所述文本文件中获取每个目标变量的变量名称;
在各个所述目标变量的变量名称中确定第二待访问目标变量的变量名称;
根据所述第二待访问目标变量的变量名称,并通过预先获取的共享系统函数获取所述第二待访问目标变量的初始地址;
在各个所述共享内存区中确定与所述第二待访问目标变量的变量名称所对应的第一待访问共享内存区;
利用所述第二待访问目标变量的初始地址访问所述第一待访问共享内存区中的第二待访问目标变量。
6.根据权利要求1所述的方法,其特征在于,所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问的过程,包括:
从所述文本文件中获取每个目标变量的变量名称;
在各个所述目标变量的变量名称中确定第二待访问子变量所属目标变量的变量名称;
根据所述目标树结构确定所述第二待访问子变量的指针地址;
在各个所述共享内存区中确定与所述第二待访问子变量所属目标变量的变量名称所对应的第二待访问共享内存区;
利用所述指针地址访问所述第二待访问共享内存区中的第二待访问子变量。
7.根据权利要求6所述的方法,其特征在于,所述根据所述目标树结构确定所述第二待访问子变量的指针地址,包括:
从所述目标树结构中确定所述第二待访问子变量与其所属目标变量之间的各个中间子变量;
根据所述第二待访问子变量所属目标变量的变量名称,并通过预先获取的共享系统函数获取所述第二待访问子变量所属目标变量的初始地址;
从所述文本文件中获取各个所述中间子变量的变量大小;
将所述第二待访问子变量所属目标变量的初始地址以及各个所述中间子变量的变量大小进行求和计算,得到所述第二待访问子变量的指针地址。
8.一种数据共享装置,其特征在于,包括:
变量声明模块,用于响应于Codesys软件发起的数据共享指令,打开所述Codesys软件中的目标项目工程,并在所述目标项目工程中进行变量声明;
目标变量确定模块,用于在所述目标项目工程中添加预先建立的符号配置控件,并利用所述符号配置控件从所述目标项目工程的各个已声明的变量中确定各个目标变量;
第一编译操作模块,用于将各个所述目标变量与每个所述目标变量下的各个子变量进行第一编译操作,得到目标树结构;
共享内存区创建模块,用于将所述目标树结构下载至所述Codesys软件的运行单元中,以在所述运行单元中创建与所述目标树结构中各个所述目标变量对应的各个共享内存区;
第二编译操作模块,用于响应于目标软件发起的数据访问指令,对所述目标树结构进行第二编译操作,以生成与所述目标树结构对应的文本文件;
数据访问模块,用于将所述文本文件导入至所述目标软件中,以供所述目标软件根据所述文本文件对各个所述共享内存区进行数据访问,完成数据共享过程。
9.一种数据共享设备,其特征在于,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如权利要求1-7任一项所述的数据共享方法的各个步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-7任一项所述的数据共享方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310746078.7A CN116483597B (zh) | 2023-06-25 | 2023-06-25 | 一种数据共享方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310746078.7A CN116483597B (zh) | 2023-06-25 | 2023-06-25 | 一种数据共享方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116483597A CN116483597A (zh) | 2023-07-25 |
CN116483597B true CN116483597B (zh) | 2024-01-05 |
Family
ID=87218137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310746078.7A Active CN116483597B (zh) | 2023-06-25 | 2023-06-25 | 一种数据共享方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116483597B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951290A (zh) * | 2014-03-31 | 2015-09-30 | 国际商业机器公司 | 优化软件的方法和设备 |
CN110249274A (zh) * | 2017-04-27 | 2019-09-17 | 株式会社日立产机系统 | 工业用控制器和工业用控制器的数据共享方法 |
CN114217987A (zh) * | 2021-12-07 | 2022-03-22 | 网易(杭州)网络有限公司 | 数据共享方法、设备、电子设备及存储介质 |
CN114296951A (zh) * | 2021-12-07 | 2022-04-08 | 北京天融信网络安全技术有限公司 | 一种进程间数据共享的方法、系统、终端以及存储介质 |
CN114968196A (zh) * | 2022-06-06 | 2022-08-30 | 中车青岛四方车辆研究所有限公司 | 基于codesys软件的开发平台架构 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9256538B2 (en) * | 2012-12-18 | 2016-02-09 | International Business Machines Corporation | Acquiring remote shared variable directory information in a parallel computer |
-
2023
- 2023-06-25 CN CN202310746078.7A patent/CN116483597B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951290A (zh) * | 2014-03-31 | 2015-09-30 | 国际商业机器公司 | 优化软件的方法和设备 |
CN110249274A (zh) * | 2017-04-27 | 2019-09-17 | 株式会社日立产机系统 | 工业用控制器和工业用控制器的数据共享方法 |
CN114217987A (zh) * | 2021-12-07 | 2022-03-22 | 网易(杭州)网络有限公司 | 数据共享方法、设备、电子设备及存储介质 |
CN114296951A (zh) * | 2021-12-07 | 2022-04-08 | 北京天融信网络安全技术有限公司 | 一种进程间数据共享的方法、系统、终端以及存储介质 |
CN114968196A (zh) * | 2022-06-06 | 2022-08-30 | 中车青岛四方车辆研究所有限公司 | 基于codesys软件的开发平台架构 |
Non-Patent Citations (1)
Title |
---|
基于分布式控制系统的通信软件开发实现;管其勇;;制造业自动化(第21期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116483597A (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111209005B (zh) | 程序文件的编译方法、装置和计算机可读存储介质 | |
CN108920133B (zh) | 跨语言编程方法、装置、电子设备及存储介质 | |
US11106437B2 (en) | Lookup table optimization for programming languages that target synchronous digital circuits | |
US20210365253A1 (en) | Heterogeneity-agnostic and topology-agnostic data plane programming | |
CN112286144B (zh) | 一种组态方法及系统、计算机可读存储介质 | |
CN110780897B (zh) | 一种代码变更方法以及装置 | |
CN111399840B (zh) | 一种模块开发方法及装置 | |
US20220156050A1 (en) | Generating a synchronous digital circuit from a source code construct defining a function call | |
CN116028028B (zh) | 请求函数生成方法、装置、设备及存储介质 | |
CN115686606A (zh) | 一种项目依赖树的展示方法、装置、系统及介质 | |
CN113515303B (zh) | 一种项目转型方法、装置和设备 | |
CN116483597B (zh) | 一种数据共享方法、装置、设备和存储介质 | |
CN117234582A (zh) | 一种项目代码处理方法、装置、电子设备及存储介质 | |
CN110659022B (zh) | 一种基于Java自动调用Python脚本的方法 | |
CN117270873A (zh) | 一种基于Android应用的实时编译方法、装置、设备及介质 | |
CN117008920A (zh) | 引擎系统、请求处理方法、装置、计算机设备及存储介质 | |
CN113094086B (zh) | 组件集成方法、装置、计算机可读存储介质及电子设备 | |
CN114020278B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN111581578B (zh) | 接口请求处理方法和装置 | |
CN114625372A (zh) | 组件自动编译方法、装置、计算机设备及存储介质 | |
CN112068814A (zh) | 可执行文件的生成方法、装置、系统及介质 | |
CN117519691B (zh) | 应用程序处理方法、装置、计算机设备和存储介质 | |
Smith | The C++ Language | |
CN116339816A (zh) | 一种移动应用软件应用包生成方法、装置、设备及介质 | |
CN115686622A (zh) | 任务队列设计方法、系统、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |