一种在线动态映射功能块关联关系的内存管理方法、存储介质及装置与流程

文档序号:33125712发布日期:2023-02-01 05:06阅读:24来源:国知局
一种在线动态映射功能块关联关系的内存管理方法、存储介质及装置与流程

1.本发明涉及计算机技术领域,尤其涉及一种在线动态映射功能块关联关系的内存管理方法、存储介质及装置。


背景技术:

2.分散控制系统(dcs)广泛应用于电力、石化、冶金等工业控制领域。早期的dcs系统的就地控制单元多基于可编程逻辑控制器(plc)搭建,随着技术的进步和需求的变化,更先进的就地控制单元(lcu)逐渐取代了plc,成为dcs系统的主要设备。就地控制单元更接近控制现场,环境复杂,安装空间受限,一般采用嵌入式系统实现。就地控制单元需要具备适用各种应用场景的能力,可视化编程是一种能够快速满足现场个性化逻辑计算需求的方式,其多基于逻辑功能块的输入输出连线关系实现。逻辑功能块间的输入输出连线关系,需要实现两个功能块之间的数据交换和管理。业界主流的plc及lcu均基于操作系统或单一系统构建,多以通信或共享内存的方式共享数据,难以实现多核异构系统的功能块间的数据交换和管理。
3.现有的方案多基于操作系统构建数据交换通道,无法解决从一个功能块到另一个功能块点到点的数据交换管理难题,且这些设计无法满足部署在异构多核系统上的两个功能块之间的数据交换需求。


技术实现要素:

4.发明目的:本发明的目的是提供了一种在线动态映射功能块关联关系的内存管理方法、存储介质及装置,通过对逻辑功能块的抽象和封装,采取主动共享内存的方式,利用核间数据交换通道,实现了部署在同一个核上或两个核上的不同功能块之间的数据实现交换和管理。
5.技术方案:本发明所述的一种在线动态映射功能块关联关系的内存管理方法,包括以下步骤:
6.(1)封装功能块;
7.(2)在目标设备中周期性的侦测逻辑页面,判断页面是否发生变化,若有进入步骤(3),若无则进入步骤(6);
8.(3)停止逻辑页面的执行并对逻辑页面进行解析;
9.(4)申请内存空间及页面初始化;
10.(5)映射功能块之间连接关系;
11.(6)循环调度逻辑页面。
12.进一步的,所述步骤(1)包括以下步骤:
13.(11)构建功能块源码的编译;
14.(12)通过扫描功能块源代码中特定函数调用接口的方法来生成功能块输入、输
出、参数描述信息的模板文件;其中,特定函数为:由系统管理程序定义,包含注册输入、注册输出、注册参数信息的函数;模板文件包括:功能块的功能定义、输入变量说明、输出变量说明、参数说明以及其他相关内容说明的功能块信息描述文件;其中,输入变量说明包括变量名称、变量索引、变量类型信息;所述的输出变量包括功能块输出变量的名称、变量索引、变量类型信息;所述的参数说明包括参数名称、参数索引、参数类型信息;
15.(13)将不同逻辑功能的功能块模板文件全部导入可视化编程工具,使编程工具的可选功能块可以进行可视化编程;
16.(14)将不同的功能块拖拽到逻辑页面上,使这些功能块的输出变量连接到功能块的输入变量,设置逻辑页面的调度周期,完成页面的逻辑编写;
17.(15)执行可视化编程工具中的编译菜单,生成逻辑页面。其中逻辑页面包括:完成特定任务或功能的功能块集合、功能块执行顺序、功能块之间的输入输出连接关系及功能块页面的调度周期;
18.(16)将步骤(15)中的逻辑页面下载到目标设备中。
19.进一步的,所述步骤(11)具体为:制定功能块的约束规则,使源代码符合功能块的约束规则;其中约束规则包括:功能块注册、功能块输出变量注册、功能块输入变量注册、功能块参数注册。
20.进一步的,所述步骤(3)停止逻辑页面的执行具体为:停止任务中断、挂起进程、退出页面调度循环;对逻辑页面进行解析具体为:分析逻辑页面包含的功能块及其执行顺序,每个功能块注册的输入、输出、参数的数量和数据类型,以及该页面执行的任务周期。
21.进一步的,所述步骤(4)具体包括以下步骤:
22.(41)申请内存空间,具体为:对于新增的逻辑页面,属于处理器本核的,按照输出数据内存、输入数据列表、参数列表、悬空管脚状态数据内存的结构申请逻辑页面内存空间;属于处理器其他核上的,同时按照输出数据内存、输入数据列表、参数列表、悬空管脚状态数据内存的结构申请该逻辑页面的输出数据的内存空间;对于修改的逻辑页面,首先释放该页面现有的内存空间,包括处理器本核和其他核上该逻辑页面的内存空间,然后按照逻辑页面空间大小申请处理器本核上新的内存空间及处理器其他核上的输出数据的内存空间;其中,输出数据内存为一个连续的内存空间,该空间按照数据类型分区连续存放,存放的数据按照bool、char、short、int、long、float的6种数据类型紧凑型放置;输入数据列表为一个连续的内存空间,该空间按照每个输入有4个数据属性的方式存放,其数据属性分别是类型(type)、索引号(index)、品质指针、值指针;参数列表为一个连续的内存空间,参数按照顺序依次存放,每个参数的属性有索引号(index)和值的指针;
23.(42)页面初始化,具体为:通过调用系统程序的注册函数,实现输入、输出、参数变量的注册;系统程序收到功能块的注册调用后,根据步骤(41)给每个变量分配内存空间。
24.进一步的,所述步骤(5)为:系统程序会按照逻辑页面的连接关系,把输出变量的内存地址映射给输入变量指针,也就是把逻辑页面的输出数据内存部分的内存空间中具体功能块的输出变量的地址位置赋给功能块输入变量的指针;每个输入均有一次内存地址赋值,对于定义了连接关系的输入变量,将该定义的输出变量地址赋给输入指针;对于没有定义连接关系的输入变量指针,在悬空数据内存空间中分配内存空间,并将该内存地址赋给该输入变量指针。
25.本发明还提供一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述方法。
26.本发明还提供一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述方法。
27.有益效果:与现有技术相比,本发明具有如下显著优点:采用在线动态申请内存、建立功能块之间的关联关系,使用户可方便的实现逻辑页面逻辑的在线加载和更新;实现逻辑页面部署的灵活性,可按用户要求部署在运行linux的核上,也可部署在运行简单调度系统的核上,实现了逻辑页面平滑迁移和部署。
附图说明
28.图1为本发明的结构示意图;
29.图2为本发明的逻辑页面内存数据结构;
30.图3为本发明的核间数据传递示意图;
31.图4为本发明的功能块定义规则示意图。
具体实施方式
32.下面结合附图对本发明的技术方案作进一步说明。
33.如图1所示,本发明实施例所述的一种在线动态映射功能块关联关系的内存管理方法,包括以下步骤:
34.(1)封装功能块,包括以下步骤:
35.(11)构建功能块源码的编译,具体为:制定功能块的约束规则,使源代码符合功能块的约束规则;其中,如图4所示约束规则包括:功能块注册、功能块输出变量注册、功能块输入变量注册、功能块参数注册。
36.(12)通过扫描功能块源代码中特定函数调用接口的方法来生成功能块输入、输出、参数描述信息的模板文件;其中,特定函数为:由系统管理程序定义,包含注册输入、注册输出、注册参数信息的函数;模板文件包括:功能块的功能定义、输入变量说明、输出变量说明、参数说明以及其他相关内容说明的功能块信息描述文件;其中,输入变量说明包括变量名称、变量索引、变量类型信息;所述的输出变量包括功能块输出变量的名称、变量索引、变量类型信息;所述的参数说明包括参数名称、参数索引、参数类型信息;
37.(13)将不同逻辑功能的功能块模板文件全部导入可视化编程工具,使编程工具的可选功能块可以进行可视化编程;
38.(14)将不同的功能块拖拽到逻辑页面上,使这些功能块的输出变量连接到功能块的输入变量,设置逻辑页面的调度周期,完成页面的逻辑编写;
39.(15)执行可视化编程工具中的编译菜单,生成逻辑页面。其中逻辑页面包括:完成特定任务或功能的功能块集合、功能块执行顺序、功能块之间的输入输出连接关系及功能块页面的调度周期;
40.(16)将步骤(15)中的逻辑页面下载到目标设备中。
41.(2)在目标设备中周期性的侦测逻辑页面,判断页面是否发生变化,若有进入步骤(3),若无则进入步骤(6)。
42.(3)停止逻辑页面的执行并对逻辑页面进行解析;停止逻辑页面的执行具体为:停止任务中断、挂起进程、退出页面调度循环;对逻辑页面进行解析具体为:分析逻辑页面包含的功能块及其执行顺序,每个功能块注册的输入、输出、参数的数量和数据类型,以及该页面执行的任务周期。
43.(4)申请内存空间及页面初始化,具体包括以下步骤:
44.(41)如图2-图3所示,所述申请内存空间,具体为:对于新增的逻辑页面,属于处理器本核的,按照输出数据内存、输入数据列表、参数列表、悬空管脚状态数据内存的结构申请逻辑页面内存空间;属于处理器其他核上的,同时按照输出数据内存、输入数据列表、参数列表、悬空管脚状态数据内存的结构申请该逻辑页面的输出数据的内存空间;对于修改的逻辑页面,首先释放该页面现有的内存空间,包括处理器本核和其他核上该逻辑页面的内存空间,然后按照逻辑页面空间大小申请处理器本核上新的内存空间及处理器其他核上的输出数据的内存空间;其中,输出数据内存为一个连续的内存空间,该空间按照数据类型分区连续存放,存放的数据按照bool、char、short、int、long、float的6种数据类型紧凑型放置,如四个bool或char变量占用一个4字节的内存空间,两个short变量占用一个4字节的内存空间;输入数据列表为一个连续的内存空间,该空间按照每个输入有4个数据属性的方式存放,其数据属性分别是类型(type)、索引号(index)、品质指针、值指针;参数列表为一个连续的内存空间,参数按照顺序依次存放,每个参数的属性有索引号(index)和值的指针;
45.(42)页面初始化,具体为:通过调用系统程序的注册函数,实现输入、输出、参数变量的注册;系统程序收到功能块的注册调用后,根据步骤(41)给每个变量分配内存空间。
46.(5)映射功能块之间连接关系,具体为:系统程序会按照逻辑页面的连接关系,把输出变量的内存地址映射给输入变量指针,也就是把逻辑页面的输出数据内存部分的内存空间中具体功能块的输出变量的地址位置赋给功能块输入变量的指针;每个输入均有一次内存地址赋值,对于定义了连接关系的输入变量,将该定义的输出变量地址赋给输入指针;对于没有定义连接关系的输入变量指针,在悬空数据内存空间中分配内存空间,并将该内存地址赋给该输入变量指针。
47.(6)循环调度逻辑页面。
48.本发明实施例还提供一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述方法。
49.本发明实施例还提供一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述方法。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1