CN117591319A - 一种变量强制方法、装置、设备及计算机可读存储介质 - Google Patents
一种变量强制方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN117591319A CN117591319A CN202311750851.3A CN202311750851A CN117591319A CN 117591319 A CN117591319 A CN 117591319A CN 202311750851 A CN202311750851 A CN 202311750851A CN 117591319 A CN117591319 A CN 117591319A
- Authority
- CN
- China
- Prior art keywords
- variable
- memory
- forced
- data
- list
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000015654 memory Effects 0.000 claims abstract description 249
- 239000000872 buffer Substances 0.000 claims abstract description 66
- 238000012545 processing Methods 0.000 claims abstract description 18
- 238000004590 computer program Methods 0.000 claims description 9
- 230000000694 effects Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect 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
-
- 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/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本申请公开了一种变量强制方法,涉及计算机技术领域,包括:解析组态软件下发的强制变量列表,得到强制变量信息;对所述强制变量信息进行分析、处理,得到目标强制变量列表;所述目标强制变量列表包括数据变量所在内存的第一内存地址与数据变量的数值;所述第一内存地址为协处理器映射的内存地址;将所述目标强制变量列表保存到内存缓冲区,以使协处理器根据所述内存缓冲区保存的所述目标强制变量列表对数据变量进行赋值。该方法能够节省内存占用,提高协处理器的操作效率。本申请还公开了一种变量强制装置、设备以及计算机可读存储介质,均具有上述技术效果。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种变量强制方法;还涉及一种变量强制装置、设备以及计算机可读存储介质。
背景技术
变量强制是指对指定的数据变量赋值后,组态逻辑代码或者网络通信对该数据变量的修改均无效。目前进行变量强制的方式为:通过组态软件将用户配置的强制变量列表下发给主处理器,主处理器将强制变量列表通过共享内存的方式同步给协处理器。协处理器在每个调用组态逻辑代码的周期,根据强制变量列表解析出强制变量信息,找到数据变量所在的内存地址,然后将强制值拷贝给数据变量,完成数据变量的强制。
然而,主处理器将组态软件下发的强制变量列表通过共享内存的方式全部下发给协处理器,一旦强制变量列表数据过多,不仅需要更多的内存空间存储该强制变量列表,而且协处理器在每个调用组态逻辑代码的周期都会解析强制变量列表,这样会拉长运行周期,影响效率。
因此,如何节省内存占用,提高协处理器的操作效率已成为本领域技术人员亟待解决的技术问题。
发明内容
本申请的目的是提供一种变量强制方法,能够节省内存占用,提高协处理器的操作效率。本申请的另一个目的是提供一种变量强制装置、设备以及计算机可读存储介质,均具有上述技术效果。
为解决上述技术问题,本申请提供了一种变量强制方法,包括:
解析组态软件下发的强制变量列表,得到强制变量信息;
对所述强制变量信息进行分析、处理,得到目标强制变量列表;所述目标强制变量列表包括数据变量所在内存的第一内存地址与数据变量的数值;所述第一内存地址为协处理器映射的内存地址;
将所述目标强制变量列表保存到内存缓冲区,以使所述协处理器根据所述内存缓冲区保存的所述目标强制变量列表对数据变量进行赋值。
可选的,所述对所述强制变量信息进行分析、处理,得到目标强制变量列表包括:
分析所述强制变量信息的数据量;
若所述强制变量信息的数据量达到预设阈值,则根据所述强制变量信息进行列表重构,得到所述目标强制变量列表。
可选的,所述将所述目标强制变量列表保存到内存缓冲区包括:
从指定的两片内存缓冲区中选择空闲的内存缓冲区,并将所述目标强制变量列表保存到所述空闲的内存缓冲区;
当将所述目标强制变量列表完全保存到所述空闲的内存缓冲区后,将索引号刷新为所述空闲的内存缓冲区的缓存区索引号,以使所述协处理器根据所述索引号查找对应内存缓冲区保存的所述目标强制变量列表,并根据所述目标强制变量列表对所述数据变量进行赋值。
可选的,所述目标强制变量列表还包括:所述数据变量的大小。
可选的,所述根据所述强制变量信息进行列表重构包括:
根据所述强制变量信息计算得到所述数据变量所在内存的所述第一内存地址;
将所述数据变量所在内存的所述第一内存地址、所述数据变量的大小以及数据变量的数值,按照内存地址、大小以及数值的顺序依次排列;同一个所述数据变量对应的内存地址、大小以及数值相邻。
可选的,所述根据所述强制变量信息计算得到所述数据变量所在内存的第一内存地址包括:
根据所述强制变量信息得到所述数据变量所在内存的第二内存地址;所述第二内存地址为主处理器映射的内存地址;
根据所述数据变量所在内存的所述第二内存地址与所述主处理器在共享内存的基地址,得到所述数据变量在所述共享内存的位置偏移;
根据所述数据变量在所述共享内存的位置偏移与所述协处理器在所述共享内存的基地址,得到所述数据变量所在内存的所述第一内存地址。
可选的,所述数据变量所在内存的内存地址等于基地址加上所述数据变量在所述共享内存的位置偏移。
为解决上述技术问题,本申请还提供了一种变量强制装置,包括:
解析模块,用于解析组态软件下发的强制变量列表,得到强制变量信息;
分析处理模块,用于对所述强制变量信息进行分析、处理,得到目标强制变量列表;所述目标强制变量列表包括数据变量所在内存的第一内存地址与数据变量的数值;所述第一内存地址为协处理器映射的内存地址;
保存模块,用于将所述目标强制变量列表保存到内存缓冲区,以使所述协处理器根据所述内存缓冲区保存的所述目标强制变量列表对数据变量进行赋值。
为解决上述技术问题,本申请还提供了一种变量强制设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的变量强制方法的步骤。
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的变量强制方法的步骤。
本申请所提供的变量强制方法,包括:解析组态软件下发的强制变量列表,得到强制变量信息;对所述强制变量信息进行分析、处理,得到目标强制变量列表;所述目标强制变量列表包括数据变量所在内存的第一内存地址与数据变量的数值;所述第一内存地址为协处理器映射的内存地址;将所述目标强制变量列表保存到内存缓冲区,以使所述协处理器根据所述内存缓冲区保存的所述目标强制变量列表对数据变量进行赋值。
可见,本申请所提供的变量强制方法,对于组态软件下发的强制变量列表,主处理器首先进行解析并对解析得到的强制变量信息进行分析、处理,得到目标强制变量列表,目标强制变量列表包括协处理器所映射的数据变量所在内存的地址与数据变量的数值,只需保存协处理器所映射的数据变量所在内存的地址与数据变量的数值这两种元素,从而可以节省内存占用。另外,协处理器解析目标强制变量列表,可以直接得到协处理器所映射的数据变量所在内存的地址与数据变量的数值,并据此直接对数据变量进行赋值,而省去了大量的计算操作,这样可以有效提高协处理器的操作效率。
本申请所提供的变量强制装置、设备以及计算机可读存储介质均具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种变量强制方法的流程示意图;
图2为本申请实施例所提供的一种数据变量存储示意图;
图3为本申请实施例所提供的一种系统框图;
图4为本申请实施例所提供的一种变量强制装置的示意图;
图5为本申请实施例所提供的一种变量强制设备的示意图。
具体实施方式
本申请的核心是提供一种变量强制方法,能够节省内存占用,提高协处理器的操作效率。本申请的另一个核心是提供一种变量强制装置、设备以及计算机可读存储介质,均具有上述技术效果。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种变量强制方法的流程示意图,参考图1所示,该方法包括:
S101:解析组态软件下发的强制变量列表,得到强制变量信息;
本实施例所提供的变量强制方法的执行主体为AMP构下的主控设备中的主处理器。AMP(Asymmetric Multi-Processing,非对称多处理)是指每个内核运行自己的OS(Operating System,操作系统)或同一OS的独立实例,或者不运行OS。每个内核有自己独立的内存空间,也可以和其它内核共享部分内存空间。每个内核相对独立地运行不同的任务,但是有一个内核为主要内核,它负责控制其它内核以及整个系统的运行,而其它内核负责配合主要内核来完成特定的任务。主要内核称为主处理器,其它内核称为协处理器或者远程处理器。
主控设备是基于AMP架构的双核CPU模块。主控设备包括主处理器与协处理器。主处理器负责和组态软件、通信软件进行数据交互。组态软件是指支持IEC61131-3标准的编译上位机软件。通信软件是使用MODBUS(RTU/TCP)/OPC UA/Ethernet/IP等协议通信的第三方通信软件。组态软件负责将用户配置的强制变量列表、二进制组态程序下发给主控设备。主控设备支持各通信软件实时修改数据变量。数据变量存储在共享内存,主处理器与协处理器均可访问数据变量。协处理器执行二进制组态程序。
当主处理器接收到组态软件下发的强制变量列表后,主处理器解析组态软件下发的强制变量列表,得到强制变量信息。强制变量信息包括数据变量的名称、类型、大小、偏移等。
S102:对所述强制变量信息进行分析、处理,得到目标强制变量列表;所述目标强制变量列表包括数据变量所在内存的第一内存地址与数据变量的数值;所述第一内存地址为协处理器映射的内存地址;
在解析得到强制变量信息的基础上,主处理器对强制变量信息进行分析、处理,得到目标强制变量列表。目标强制变量列表包括协处理器所映射的数据变量所在内存的地址以及数据变量的数值。其中,在一些实施例中,所述目标强制变量列表还包括数据变量的大小。这样可以给予协控制器更多的信息作参考。
在一些实施例中,所述对所述强制变量信息进行分析、处理,得到目标强制变量列表包括:
分析所述强制变量信息的数据量;
若所述强制变量信息的数据量达到预设阈值,则根据所述强制变量信息进行列表重构,得到所述目标强制变量列表。
为了平衡主处理器与协处理器的效率,本实施例中主处理器在解析得到强制变量信息后,分析强制变量信息的数据量。如果强制变量信息的数据量未达到预设阈值即强制变量列表的数据量不多,此时主处理器不必进行列表重构,而是直接保存强制变量列表。后续协处理器解析该强制变量列表,得到强制变量信息,并通过计算得到协处理器映射数据变量所在内存的地址,进而对相应的数据变量进行赋值。如果所述强制变量信息的数据量达到预设阈值即强制变量列表的数据量较多,此时主处理器根据所述强制变量信息进行列表重构,得到所述目标强制变量列表。
在强制变量列表的数据量较多的情况下,主处理器才进行列表重构,协处理器根据目标强制变量列表拷贝数值给相应的数据变量,这样可以有效平衡主处理器与协处理器的效率。
在一些实施例中,所述根据所述强制变量信息进行列表重构包括:
根据所述强制变量信息计算得到所述数据变量所在内存的所述第一内存地址;
将所述数据变量所在内存的所述第一内存地址、所述数据变量的大小以及数据变量的数值,按照内存地址、大小以及数值的顺序依次排列;同一个所述数据变量对应的内存地址、大小以及数值相邻。
本实施例将协处理器所映射的数据变量所在内存的地址、数据变量的大小以及数据变量的数值依次排列,可以得到内容排列有序的目标强制变量列表,这样更加便于协处理器高效获取协处理器所映射的数据变量所在内存的地址、数据变量的大小以及数据变量的数值。
例如,如表1所示的目标强制变量列表的格式,同一数据变量对应的地址、大小、数值这三个元素相邻排列,协处理器可以更加高效的获取到该数据变量的上述三个元素。
表1
在一些实施例中,所述根据所述强制变量信息计算得到所述数据变量所在内存的第一内存地址包括:
根据所述强制变量信息得到所述数据变量所在内存的第二内存地址;所述第二内存地址为主处理器映射的内存地址;
根据所述数据变量所在内存的所述第二内存地址与所述主处理器在共享内存的基地址,得到所述数据变量在所述共享内存的位置偏移;
根据所述数据变量在所述共享内存的位置偏移与所述协处理器在所述共享内存的基地址,得到所述数据变量所在内存的所述第一内存地址。
所述数据变量所在内存的内存地址等于基地址加上所述数据变量在所述共享内存的位置偏移。
参考图2所示,数据变量存储在共享内存中。对于同一个数据变量所在的内存,主处理器与协处理器所映射的内存地址不同。数据变量在共享内存的地址=基地址+数据变量的位置偏移。主处理器与协处理器在共享内存的基地址不同。主处理器解析得到强制变量信息后,首先根据强制变量信息得到主处理器映射的数据变量所在内存的地址。然后主处理器基于上述等式,根据主处理器映射的数据变量所在内存的地址与主处理器在共享内存的基地址,得到数据变量在共享内存的位置偏移。最后主处理器基于上述等式,根据数据变量在共享内存的位置偏移与协处理器在共享内存的基地址,得到协处理器映射的数据变量所在内存的地址。
其中,强制变量信息包括数据变量的偏移,主处理器根据此偏移以及预先设定的偏移与主处理器映射的内存地址的关系,得到主处理器映射的数据变量所在内存的地址。
本实施例通过简单的计算即可得到数据变量所在的协处理器映射的内存地址,可以有效提升主处理器的效率。
S103:将所述目标强制变量列表保存到内存缓冲区,以使协处理器根据所述内存缓冲区保存的所述目标强制变量列表对所述数据变量进行赋值。
主处理器将得到的目标强制变量列表保存到内存缓冲区,协处理器在每个调用组态逻辑代码的周期,根据目标强制变量列表将数据变量的数据刷新为目标强制变量列表中相应的数值。由于协处理器在每个调用组态逻辑代码的周期都在对数据变量进行数据刷新,因此当通信软件修改数据变量时,将一直不会生效,从而实现数据变量的强制。
由于双核间数据操作是异步的,因此就会存在主处理器正在修改列表,而协处理器正在解析列表,这样将会导致数据刷新异常等一系列数据一致性问题。因此,为了保障数据一致性,在一些实施例中,所述将所述目标强制变量列表保存到内存缓冲区包括:
从指定的两片内存缓冲区中选择空闲的内存缓冲区,并将所述目标强制变量列表保存到所述空闲的内存缓冲区;
当将所述目标强制变量列表完全保存到所述空闲的内存缓冲区后,将索引号刷新为所述空闲的内存缓冲区的缓存区索引号,以使所述协处理器根据所述索引号查找对应内存缓冲区保存的所述目标强制变量列表,并根据所述目标强制变量列表对所述数据变量进行赋值。
本实施例采用乒乓结构来保存目标强制变量列表。指定两片内存缓冲区用于保存目标强制变量列表。主处理器可以在每次接收到组态软件下发的强制变量列表后,获取当前空闲的内存缓冲区,后续将目标强制变量列表保存到该空闲的内存缓冲区,并当将所述目标强制变量列表完全保存到空闲的内存缓冲区后,刷新索引号。协处理器获取当前的索引号,并根据索引号解析对应内存缓冲区中保存的目标强制变量列表,得到协处理器所映射数据变量所在内存的地址、数据变量的大小以及数据变量的数值。进而协处理器据此直接将数据变量的数值拷贝到对应的数据变量。
例如,参考表2所示,一个内存缓冲区的缓冲区索引号为索引1,另一个内存缓冲区的缓冲区索引号为索引2。当将目标强制变量列表保存到缓冲区索引号为索引1的内存缓冲区后,更新索引号为索引1。后续协处理器获取到索引号为索引1,协处理器对索引1对应的内存缓冲区中保存的目标强制变量列表进行解析,并根据解析得到的信息对数据变量进行赋值。
表2
本实施例主处理器接收组态软件对强制列表的增删改后,都会将目标强制变量列表存储到空闲的内存缓冲区,保存完成后再更新索引号,如此能够保证协处理器对数据变量进行数据刷新,永远滞后于目标强制变量列表的刷新,从而保证双核间异步操作的数据一致性。
对于主处理器直接保存强制变量列表的情况,主处理器同样可以采用乒乓结构来保存强制变量列表。对此可以参考上述采用乒乓结构保存目标强制变量列表的实施例,在此不再赘述。
主处理器可以为Linux核,协处理器可以为微内核。微内核是提供操作系统核心功能的内核的精简版本。结合图3所示的系统框图,以下阐述一种具体的实施例:
用户通过组态软件下发强制变量列表,Linux核解析强制变量列表,得到强制变量信息。Linux核根据强制变量信息,得到Linux核映射的数据变量所在内存的地址,根据Linux核映射的数据变量所在内存的地址与Linux核在共享内存的基地址,得到数据变量在共享内存的位置偏移,进而根据数据变量在共享内存的位置偏移与微内核在共享内存的基地址,得到微内核映射的数据变量所在内存的地址。
Linux核将数据变量在共享内存的位置偏移与微内核在共享内存的基地址相加,得到微内核映射的数据变量所在内存的地址,根据内存地址、大小、数值的格式依次排序,重构得到目标强制变量列表,并采用乒乓结构进行保存。其中,当Linux核每次接收组态软件下发的强制变量列表时,首先获取当前空闲的内存缓冲区,后续将重构得到的目标强制变量列表保存到空闲的内存缓冲区。待目标强制变量列表全部保存完后,刷新索引号。
微内核在每个调用组态逻辑代码的周期,获取索引号,并根据索引号解析相应内存缓冲区中保存的目标强制变量列表,得到微内核所映射的数据变量所在内存的地址、数据变量的大小以及数据变量的数值。进而微内核据此直接将数据变量的数值拷贝到对应的数据变量。
综上所述,本申请所提供的变量强制方法,对于组态软件下发的强制变量列表,主处理器首先进行解析并对解析得到的强制变量信息进行分析、处理,得到目标强制变量列表,目标强制变量列表包括协处理器所映射的数据变量所在内存的地址与数据变量的数值,只需保存协处理器所映射的数据变量所在内存的地址与数据变量的数值这两种元素,从而可以节省内存占用。另外,协处理器解析目标强制变量列表,可以直接得到协处理器所映射的数据变量所在内存的地址与数据变量的数值,并据此直接对数据变量进行赋值,而省去了大量的计算操作,这样可以有效提高协处理器的操作效率。
本申请还提供了一种变量强制装置,下文描述的该装置可以与上文描述的方法相互对应参照。请参考图4,图4为本申请实施例所提供的一种变量强制装置的示意图,结合图4所示,该装置包括:
解析模块10,用于解析组态软件下发的强制变量列表,得到强制变量信息;
分析处理模块20,用于对所述强制变量信息进行分析、处理,得到目标强制变量列表;所述目标强制变量列表包括数据变量所在内存的第一内存地址与数据变量的数值;所述第一内存地址为协处理器映射的内存地址;
保存模块30,用于将所述目标强制变量列表保存到内存缓冲区,以使所述协处理器根据所述内存缓冲区保存的所述目标强制变量列表对数据变量进行赋值。
在上述实施例的基础上,作为一种具体的实施方式,分析处理模块20包括:
分析单元,用于分析所述强制变量信息的数据量;
重构单元,用于若所述强制变量信息的数据量达到预设阈值,则根据所述强制变量信息进行列表重构,得到所述目标强制变量列表。
在上述实施例的基础上,作为一种具体的实施方式,保存模块30包括:
选择单元,用于从指定的两片内存缓冲区中选择空闲的内存缓冲区,并将所述目标强制变量列表保存到所述空闲的内存缓冲区;
刷新单元,用于当将所述目标强制变量列表完全保存到所述空闲的内存缓冲区后,将索引号刷新为所述空闲的内存缓冲区的缓存区索引号,以使所述协处理器根据所述索引号查找对应内存缓冲区保存的所述目标强制变量列表,并根据所述目标强制变量列表对所述数据变量进行赋值。
在上述实施例的基础上,作为一种具体的实施方式,所述目标强制变量列表还包括:所述数据变量的大小。
在上述实施例的基础上,作为一种具体的实施方式,重构单元包括:
计算子单元,用于根据所述强制变量信息计算得到所述数据变量所在内存的所述第一内存地址;
排列子单元,用于将所述数据变量所在内存的所述第一内存地址、所述数据变量的大小以及数据变量的数值,按照内存地址、大小以及数值的顺序依次排列;同一个所述数据变量对应的内存地址、大小以及数值相邻。
在上述实施例的基础上,作为一种具体的实施方式,计算子单元包括:
第一计算子单元,用于根据所述强制变量信息得到所述数据变量所在内存的第二内存地址;所述第二内存地址为主处理器映射的内存地址;
第二计算子单元,用于根据所述数据变量所在内存的所述第二内存地址与所述主处理器在共享内存的基地址,得到所述数据变量在所述共享内存的位置偏移;
第三计算子单元,用于根据所述数据变量在所述共享内存的位置偏移与所述协处理器在所述共享内存的基地址,得到所述数据变量所在内存的所述第一内存地址。
在上述实施例的基础上,作为一种具体的实施方式,所述数据变量所在内存的内存地址等于基地址加上所述数据变量在所述共享内存的位置偏移。
本申请还提供了一种变量强制设备,参考图5所示,该设备包括存储器1和处理器2。
存储器1,用于存储计算机程序;
处理器2,用于执行计算机程序实现如下的步骤:
解析组态软件下发的强制变量列表,得到强制变量信息;对所述强制变量信息进行分析、处理,得到目标强制变量列表;所述目标强制变量列表包括数据变量所在内存的第一内存地址与数据变量的数值;所述第一内存地址为协处理器映射的内存地址;将所述目标强制变量列表保存到内存缓冲区,以使协处理器根据所述内存缓冲区保存的所述目标强制变量列表对数据变量进行赋值。
对于本申请所提供的设备的介绍请参照上述方法实施例,本申请在此不做赘述。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下的步骤:
解析组态软件下发的强制变量列表,得到强制变量信息;对所述强制变量信息进行分析、处理,得到目标强制变量列表;所述目标强制变量列表包括数据变量所在内存的第一内存地址与数据变量的数值;所述第一内存地址为协处理器映射的内存地址;将所述目标强制变量列表保存到内存缓冲区,以使协处理器根据所述内存缓冲区保存的所述目标强制变量列表对数据变量进行赋值。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本申请所提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备以及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的变量强制方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围。
Claims (10)
1.一种变量强制方法,其特征在于,包括:
解析组态软件下发的强制变量列表,得到强制变量信息;
对所述强制变量信息进行分析、处理,得到目标强制变量列表;所述目标强制变量列表包括数据变量所在内存的第一内存地址与数据变量的数值;所述第一内存地址为协处理器映射的内存地址;
将所述目标强制变量列表保存到内存缓冲区,以使所述协处理器根据所述内存缓冲区保存的所述目标强制变量列表对数据变量进行赋值。
2.根据权利要求1所述的变量强制方法,其特征在于,所述对所述强制变量信息进行分析、处理,得到目标强制变量列表包括:
分析所述强制变量信息的数据量;
若所述强制变量信息的数据量达到预设阈值,则根据所述强制变量信息进行列表重构,得到所述目标强制变量列表。
3.根据权利要求1所述的变量强制方法,其特征在于,所述将所述目标强制变量列表保存到内存缓冲区包括:
从指定的两片内存缓冲区中选择空闲的内存缓冲区,并将所述目标强制变量列表保存到所述空闲的内存缓冲区;
当将所述目标强制变量列表完全保存到所述空闲的内存缓冲区后,将索引号刷新为所述空闲的内存缓冲区的缓存区索引号,以使所述协处理器根据所述索引号查找对应内存缓冲区保存的所述目标强制变量列表,并根据所述目标强制变量列表对所述数据变量进行赋值。
4.根据权利要求2所述的变量强制方法,其特征在于,所述目标强制变量列表还包括:所述数据变量的大小。
5.根据权利要求4所述的变量强制方法,其特征在于,所述根据所述强制变量信息进行列表重构包括:
根据所述强制变量信息计算得到所述数据变量所在内存的所述第一内存地址;
将所述数据变量所在内存的所述第一内存地址、所述数据变量的大小以及数据变量的数值,按照内存地址、大小以及数值的顺序依次排列;同一个所述数据变量对应的内存地址、大小以及数值相邻。
6.根据权利要求5所述的变量强制方法,其特征在于,所述根据所述强制变量信息计算得到所述数据变量所在内存的第一内存地址包括:
根据所述强制变量信息得到所述数据变量所在内存的第二内存地址;所述第二内存地址为主处理器映射的内存地址;
根据所述数据变量所在内存的所述第二内存地址与所述主处理器在共享内存的基地址,得到所述数据变量在所述共享内存的位置偏移;
根据所述数据变量在所述共享内存的位置偏移与所述协处理器在所述共享内存的基地址,得到所述数据变量所在内存的所述第一内存地址。
7.根据权利要求6所述的变量强制方法,其特征在于,所述数据变量所在内存的内存地址等于基地址加上所述数据变量在所述共享内存的位置偏移。
8.一种变量强制装置,其特征在于,包括:
解析模块,用于解析组态软件下发的强制变量列表,得到强制变量信息;
分析处理模块,用于对所述强制变量信息进行分析、处理,得到目标强制变量列表;所述目标强制变量列表包括数据变量所在内存的第一内存地址与数据变量的数值;所述第一内存地址为协处理器映射的内存地址;
保存模块,用于将所述目标强制变量列表保存到内存缓冲区,以使所述协处理器根据所述内存缓冲区保存的所述目标强制变量列表对数据变量进行赋值。
9.一种变量强制设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的变量强制方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的变量强制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311750851.3A CN117591319A (zh) | 2023-12-19 | 2023-12-19 | 一种变量强制方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311750851.3A CN117591319A (zh) | 2023-12-19 | 2023-12-19 | 一种变量强制方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117591319A true CN117591319A (zh) | 2024-02-23 |
Family
ID=89920230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311750851.3A Pending CN117591319A (zh) | 2023-12-19 | 2023-12-19 | 一种变量强制方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117591319A (zh) |
-
2023
- 2023-12-19 CN CN202311750851.3A patent/CN117591319A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101759266B1 (ko) | 프로세서들에 걸쳐 데이터-병렬 쓰레드들을 지닌 프로세싱 로직을 매핑하는 방법 | |
US8982140B2 (en) | Hierarchical memory addressing | |
US3781810A (en) | Scheme for saving and restoring register contents in a data processor | |
US5123094A (en) | Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers | |
CN102971727B (zh) | 在软件分布式共享存储器系统中记录脏信息 | |
WO2019012252A1 (en) | METHOD AND APPARATUS FOR RAPID CONTEXT CLONING IN A DATA PROCESSING SYSTEM | |
US8244682B2 (en) | Saving snapshot of a knowledge base without blocking | |
CN114721844B (zh) | 数据缓存方法和装置、计算机设备、存储介质 | |
US20170337256A1 (en) | System and method for memory synchronization of a multi-core system | |
US10509666B2 (en) | Register partition and protection for virtualized processing device | |
US20110084976A1 (en) | Shader Program Headers | |
CN112445767A (zh) | 内存管理方法及装置、电子设备、存储介质 | |
EP0669579A2 (en) | Coherence index generation for use by an input/output adapter | |
CN117271392A (zh) | 用于缓存一致性的可重构的缓存架构及方法 | |
CN114691537A (zh) | 一种访问存储器的方法及信息处理设备 | |
US8769498B2 (en) | Warning of register and storage area assignment errors | |
CN117591319A (zh) | 一种变量强制方法、装置、设备及计算机可读存储介质 | |
CN113296780A (zh) | 计算图的处理方法、装置及设备 | |
CN113778564B (zh) | 一种高效执行evm智能合约的方法、设备及储存介质 | |
CN113986775A (zh) | 一种risc-v cpu验证中页表项生成方法、系统及装置 | |
LU102709B1 (en) | Memory address compression within an execution trace | |
RU2294010C1 (ru) | Способ обработки цифровых данных | |
CN115577760B (zh) | 一种数据处理方法、系统及相关设备 | |
CN111522600B (zh) | 一种在dsp上的异构计算框架构建方法及系统 | |
LU102708B1 (en) | Physical memory address omission or obfuscation within an execution trace |
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 |