CN105224327B - 一种嵌入式装置变量交换传输地址离线分配方法 - Google Patents

一种嵌入式装置变量交换传输地址离线分配方法 Download PDF

Info

Publication number
CN105224327B
CN105224327B CN201510644937.7A CN201510644937A CN105224327B CN 105224327 B CN105224327 B CN 105224327B CN 201510644937 A CN201510644937 A CN 201510644937A CN 105224327 B CN105224327 B CN 105224327B
Authority
CN
China
Prior art keywords
variable
plug
address
unit
input
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
Application number
CN201510644937.7A
Other languages
English (en)
Other versions
CN105224327A (zh
Inventor
文继锋
陈宏君
冯亚东
周强
李九虎
李德文
徐东方
刘克金
张磊
赵天恩
李秋华
王国栋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NR Electric Co Ltd
NR Engineering Co Ltd
Original Assignee
NR Electric Co Ltd
NR Engineering Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NR Electric Co Ltd, NR Engineering Co Ltd filed Critical NR Electric Co Ltd
Priority to CN201510644937.7A priority Critical patent/CN105224327B/zh
Publication of CN105224327A publication Critical patent/CN105224327A/zh
Application granted granted Critical
Publication of CN105224327B publication Critical patent/CN105224327B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开一种嵌入式装置变量交换传输地址离线分配方法:以图形化元件搭建可视化页面,提取装置内插件间跨页面连接信息,形成用于插件间信号交换的输出‑输入列表;以插件为单位,离线分配变量传输地址,形成插件配置文本,记录输出变量地址、输入变量关联地址信息;配置文本下载到装置后,由插件系统引导程序解析地址信息,在周期任务中将变量值刷新到对应的总线传输地址,完成变量交换。本发明可以大幅减少嵌入式装置上电时间,提高批量生产效率。

Description

一种嵌入式装置变量交换传输地址离线分配方法
技术领域
本发明属于嵌入式装置开发领域的基于总线的插件间变量交换的传输地址分配方法,尤其涉及一种嵌入式装置变量交换传输地址离线分配方法。
背景技术
在电力系统控制保护和工业控制等领域,随着应用功能日趋复杂,需要多块插件(含CPU或DSP)协同工作来完成相应的控制保护任务,插件之间需要交换的数据量也不断增大。
文献[1]提供一种高速大容量与支持多个节点之间对等数据传输相结合的背板串行总线技术,可实现装置内多个节点之间的实时数据交换,该文侧重于串行数据总线协议的实现。文献[2]提出一种基于信号名的嵌入式多CPU板间信号自动交换的方法,需要设置主板和从板,在装置上电过程中,从板向主板传输变量注册信息,由主板汇总后分配变量地址,并下发给从板。当交换的数据量大时,由于收发的注册报文量大,基于主从架构的模式导致装置初始化时间长,影响了批量生产效率,另外无法事先知道变量传输地址信息和不能提前校验变量类型匹配,导致调试诊断比较困难。同时手动编辑配置文件容易出错,也无法直观浏览变量交换关系,故需要一种图形化、可视化的方式展示数据流,并根据图形化页面信息,自动形成配置文件。
为提高开发生产效率,有必要在离线阶段即能形成变量传输地址信息,这样各块插件读取各自配置文本后,即可获取变量传输地址,可以独立平行启动,不需要将注册信息发送给主CPU插件,可大幅减少装置上电时间,本案由此产生。
参考资料:
[1]冯亚东,李九虎,李彦,等.一种实时多路复用同步高速传输串行总线协议[P].CN101459675.
[2]冯亚东,周强,徐东方,等.基于信号名的嵌入式多CPU板间信号自动交换的方法[P].CN104731028A.
发明内容
本发明的目的是提供一种嵌入式装置变量交互传输地址离线分配方法,本发明通过可重用的元件库,以图形化方式搭建嵌入式装置的应用程序,离线形成插件间数据交换的变量传输地址,减少装置启动时间,提高研发和生产效率。为了达成上述目的,本发明主要内容包括:
1、编写模块化元件的源代码,在元件的构造函数中调用平台软件变量注册接口,定义可用于跨插件数据交换的变量列表。提取元件源代码文件中的注册接口信息,形成图形化的元件库。其中可用于跨插件交换的变量除了标准定义的1字节、2字节、4字节、8字节变量类型外,还支持用户自定义的结构体变量类型,通过分析结构体定义文件,离线计算结构体大小,图形化元件包括元件类型名、输入输出变量的名字、类型、大小等信息。
2、通过可视化编程软件,从元件库中挑选元件以图形化方式搭建嵌入式装置应用程序,并通过跨页面输入、输出符号和连接线配置插件之间数据流关系,在绘制连接线时,校验连接线起始点、终止点相连接变量的变量类型是否一致,并给出提示。保存可视化工程,形成装置驱动包。
3、读取可视化页面文件,根据设置的页面和元件执行顺序,依次提取插件间跨页面连接符号连接信息(变量名、变量注册类型、数据总线类型),形成用于插件间信号交换的输出-输入列表。
4、汇总各插件的输出-输入列表,离线分配变量传输地址。对各块插件以插件编号升序排序,依次处理,首块插件从地址0开始分配,第N块插件起始地址从第N-1块插件已分配的地址末端开始。对单块插件的输出变量,按照页面内元件执行顺序和变量注册类型,以自然边界对齐的原则分配变量在数据总线上的传输地址,输入变量则记录源输出变量对应的传输地址。以插件为单位,形成配置文本,记录元件实例、输出变量地址、输入变量关联地址信息。
5、将配置文本下载到各个插件后,由插件系统程序解析地址信息,在周期任务中将输出变量值刷新到对应的总线传输地址,将总线地址上数据刷新给对应的输入变量,完成变量交换。
采用上述方案后,本发明具有如下有益效果:以图形化、可视化方式搭建应用程序,可直观浏览各插件之间数据流交换关系。离线分配各插件间变量交换的传输地址,自动形成各插件的配置文件,从而各块插件可以并行启动,不需要和主CPU插件来回交互大量的注册报文信息,有效减少了装置上电过程的工作量,经统计,单装置上电时间平均减少120秒,对于年产10万台保护测控装置的生产线,可累计节省3300小时的上电调试等待时间,显著提高生产调试效率。另外在应用程序研发阶段,可离线校验变量类型是否匹配,校验不同交换周期的数据是否越限,也同步提高了研发效率。
附图说明
图1是本发明中插件间变量交换传输地址分配概要步骤图;
图2是本发明中插件间变量交换图形化页面配置示例图;
图3是本发明中单插件自然边界对齐变量地址分配原理图;
具体实施方式
以下将结合附图,对本发明的技术方案进行详细说明。
实施例1
本一种嵌入式装置变量交换传输地址分配方法,包括如下步骤:
第一步:编写模块化元件的源代码,在元件的构造函数中调用平台软件变量注册接口,定义可用于跨插件数据交换的变量列表;提取代码文件中的注册接口信息,形成图形化的元件库;
第二步:通过可视化编程软件,从元件库中挑选元件以图形化方式搭建嵌入式装置应用程序,并通过跨页面输入、输出符号和连接线配置插件之间数据流关系,形成装置的程序驱动包;
第三步:读取可视化页面文件,根据设置的页面和元件执行顺序,依次提取插件间跨页面连接符号的连接信息,形成用于插件间信号交换的输出-输入列表;所述连接信息包括变量名、变量注册类型、变量字节和数据总线类型;
第四步:离线分配变量传输地址;对各块插件以插件编号升序排序,依次处理,首块插件从地址0开始分配,第N块插件起始地址从第N-1块插件已分配的地址末端开始;对单块插件的输出变量,按照页面内元件执行顺序和变量注册类型,以自然边界对齐的原则分配变量在数据总线上的传输地址,输入变量则记录源输出变量对应的传输地址;以插件为单位,形成配置文本,记录元件实例、输出变量地址、输入变量关联地址信息;
第五步:将配置文本下载到各个插件后,由插件系统引导程序解析地址信息,在周期任务中将输出变量值刷新到对应的总线传输地址,将总线地址上数据刷新给对应的输入变量,完成变量交换。所述的第一步中,用于跨插件变量交换的类型,除支持各种整形、浮点型变量,还支持任意大小的结构体变量。所述的第二步中,可视化编程软件在信号拉线时便可校验输入输出变量类型是否匹配。所述的第五步中,各个插件通过读取各自配置文件,便可得知变量在数据总线的地址。
如附图1所示,本一种嵌入式装置变量交互传输地址离线分配方法的具体实施步骤如下:
1)编写各个元件源代码,并调用系统程序变量注册接口,注册可用于插件间变量交换的变量。优选地,系统注册接口函数定义示例如下:
registerIn(void**addr,char*info);
registerOut(void*addr,char*info);
则通过书写类似如下的接口示例,实现该元件的输入、输出变量注册。
registerIn(&in1,"in1 type=c");
registerOut(&out1,"out1 type=i");
registerOut(&out2,"out2 type=st:IA");
其中:type=c表示1字节变量类型,type=i表示4字节变量类型,
type=st:IA表示结构体类型,具体类型为IA。
2)通过符号编辑器提取分析源代码和预定义的变量注册接口,形成元件的符号库,并记录变量信息(变量名、注册类型、变量大小)。对于结构体类型变量,则需分析结构体定义文件,按照C语言的sizeof原理,在形成元件时计算结构体变量大小。
3)通过可视化编程工具,新建各插件的页面,导入元件符号库,从库元件中挑选元件,释放到页面,实例化库元件。通过连接线和跨插件连接符号,形成连接网络。如图2所示,输出块BoardLink1和BoardA.Page1页面的Not1.out1变量相连接,输入块BoardLink1和BoardB.Page2页面的Or1.in1相链表。若两者变量类型不一致,则给出提示。
4)读取分析可视化页面的元件、跨插件输入输出符号、连接线等信息,关键字相同的插件间输入输出块可形成1对连接关系,以插件为单位,汇总形成输出-输入连接列表(发送的输出变量名、接收的输入变量名、变量类型、大小等信息、数据总线类型)。
5)对各插件按照插件编号升序排列,首块插件从地址0开始分配,第N块插件起始地址从第N-1块插件已分配的地址末端开始。对单块插件的输出变量,按照页面内元件执行顺序汇总各个元件用于交换的输出变量,以自然边界对齐的原则分配变量在对应数据总线上的传输地址,输入变量则记录源输出变量对应的传输地址。如图3所示,假设插件BoardA已经分配了1024字节。BoardB从1024字节开始分配本插件发送给其它插件的输出变量,前面4个变量为int a,char b,short c,struct IA d。其中a为4字节变量,b为1字节变量,c为2字节变量,d为8字节变量(成员变量内变量类型占用字节最大为int)。按照自然边界对齐原理,int类型起始地址需被4整除,short类型起始地址需被2整除,故int a的起始地址为1024,占用4字节空间。b的起始地址为1028,占用1字节空间。c的起始地址为1030,占用2字节空间(1029为空洞补齐)。d的起始地址为1032。
6)以插件为单位,形成配置文本,记录元件实例、输出变量地址、输入变量关联地址信息。将配置文件下载到各插件,各插件系统引导程序读取解析配置文本,获取本插件输出变量地址信息和发送给本插件输入变量的源地址信息。
优选地,配置文本示例如下:
[LOGIC_EDIT]
comp=TripLogic name=TripLogic1
comp=DifProt name=DifProt1
[HTM1_OVT]
adr=0 out=BoardA.TripLogic1.trip1 type=c
adr=1 out=BoardA.TripLogic1.trip2 type=c
adr=2 out=BoardA.TripLogic1.trip3 type=c
[HTM1_IVT]
srcbd=BoardB srcadr=1056 in=B01.DifProt1.in1 type=i
srcbd=BoardC srcadr=2048 in=B01.DifProt1.in2 type=i
在上例中,[LOGIC_EDIT]字段记录元件实例列表,[HTM1_OVT]记录B01插件输出变量的地址信息,[HTM1_IVT]记录B01插件输入变量关联的其它插件的源输出变量的地址信息。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

Claims (4)

1.一种嵌入式装置变量交换传输地址分配方法,其特征在于包括如下步骤:
第一步:编写模块化元件的源代码,在元件的构造函数中调用平台软件变量注册接口,定义可用于跨插件数据交换的变量列表;提取代码文件中的注册接口信息,形成图形化的元件库;
第二步:通过可视化编程软件,从元件库中挑选元件以图形化方式搭建嵌入式装置应用程序,并通过跨页面输入、输出符号和连接线配置插件之间数据流关系,形成装置的程序驱动包;
第三步:读取可视化页面文件,根据设置的页面和元件执行顺序,依次提取插件间跨页面连接符号的连接信息,形成用于插件间信号交换的输出-输入列表;所述连接信息包括变量名、变量注册类型、变量字节和数据总线类型;
第四步:离线分配变量传输地址;对各块插件以插件编号升序排序,依次处理,首块插件从地址0开始分配,第N块插件起始地址从第N-1块插件已分配的地址末端开始;对单块插件的输出变量,按照页面内元件执行顺序和变量注册类型,以自然边界对齐的原则分配变量在数据总线上的传输地址,输入变量则记录源输出变量对应的传输地址;以插件为单位,形成配置文本,记录元件实例、输出变量地址、输入变量关联地址信息;
第五步:将配置文本下载到各个插件后,由插件系统引导程序解析地址信息,在周期任务中将输出变量值刷新到对应的总线传输地址,将总线传输地址上数据刷新给对应的输入变量,完成变量交换。
2.根据权利要求1所述的嵌入式装置变量交换传输地址分配方法,其特征在于所述的第一步中,用于跨插件变量交换的类型,除支持各种整形、浮点型变量,还支持任意大小的结构体变量。
3.根据权利要求1所述的嵌入式装置变量交换传输地址分配方法,其特征在于所述的第二步中,可视化编程软件在信号拉线时便可校验输入输出变量类型是否匹配。
4.根据权利要求1所述的嵌入式装置变量交换传输地址分配方法,其特征在于所述的第五步中,各个插件通过读取各自配置文件,便可得知变量在数据总线的地址。
CN201510644937.7A 2015-10-08 2015-10-08 一种嵌入式装置变量交换传输地址离线分配方法 Active CN105224327B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510644937.7A CN105224327B (zh) 2015-10-08 2015-10-08 一种嵌入式装置变量交换传输地址离线分配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510644937.7A CN105224327B (zh) 2015-10-08 2015-10-08 一种嵌入式装置变量交换传输地址离线分配方法

Publications (2)

Publication Number Publication Date
CN105224327A CN105224327A (zh) 2016-01-06
CN105224327B true CN105224327B (zh) 2018-05-22

Family

ID=54993324

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510644937.7A Active CN105224327B (zh) 2015-10-08 2015-10-08 一种嵌入式装置变量交换传输地址离线分配方法

Country Status (1)

Country Link
CN (1) CN105224327B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105739996A (zh) * 2016-03-03 2016-07-06 南京南瑞继保电气有限公司 一种嵌入式装置研发用户分步开发方法
CN110275858B (zh) * 2019-05-17 2022-03-29 南京南瑞继保电气有限公司 一种信息处理方法、终端及计算机可读存储介质
CN111176663B (zh) * 2019-12-20 2024-02-02 抖音视界有限公司 应用程序的数据处理方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101459675A (zh) * 2008-12-29 2009-06-17 南京南瑞继保电气有限公司 一种实时多路复用同步高速传输串行总线协议
CN104731028A (zh) * 2013-12-19 2015-06-24 南京南瑞继保电气有限公司 基于信号名的嵌入式多cpu板间信号自动交换的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8374604B2 (en) * 2009-05-26 2013-02-12 Qualcomm Incorporated System and methods for performing multiple registrations across different radio access technologies

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101459675A (zh) * 2008-12-29 2009-06-17 南京南瑞继保电气有限公司 一种实时多路复用同步高速传输串行总线协议
CN104731028A (zh) * 2013-12-19 2015-06-24 南京南瑞继保电气有限公司 基于信号名的嵌入式多cpu板间信号自动交换的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
嵌入式工业现场总线转换及监控系统设计;姚征;《控制工程》;20090930;第16卷;第89-91,94页 *

Also Published As

Publication number Publication date
CN105224327A (zh) 2016-01-06

Similar Documents

Publication Publication Date Title
CN104679488B (zh) 一种流程定制开发平台及流程定制开发方法
CN105224327B (zh) 一种嵌入式装置变量交换传输地址离线分配方法
CN101819529A (zh) 用于实现工作流任务界面可视化开发的系统和方法
CN107407918A (zh) 利用app扩展可编程逻辑控制器
SG115362A1 (en) Asset management and scheduling graphical user interface for media streamer
CN104731028B (zh) 基于信号名的嵌入式多cpu板间信号自动交换的方法
CN101082865A (zh) 基于数据驱动的界面自动生成方法
CN101908015A (zh) 一种基于构件生成测试案例的装置及方法
CN104407576A (zh) 一种通用型的生产制造单元的实现方法及控制系统
CN110058853B (zh) 一种基于工作流及权限控制的api流程化方法
CN105991737A (zh) 分布式任务调度方法及系统
CN106528823B (zh) 一种报文配置及输出方法及装置
CN103425585A (zh) 一种osgi集成测试方法
CN102541540A (zh) 一种多星遥测参数图形化配置系统
CN107861933A (zh) 生成运维报表的方法和装置
CN107179910A (zh) 一种在线编辑即时生效的逻辑组态方法
CN109190025A (zh) 信息监控方法、装置、系统和计算机可读存储介质
CN102521551B (zh) 一种实现ic卡个人化发行装置及方法
CN103024791B (zh) 一种通信测试系统中多业务处理模型及处理方法
CN106293757A (zh) 机器人系统软件架构及其实现方法和装置
CN106406884A (zh) 基于.net mvc模式web后台管理应用系统应用的基础开发框架
CN105721093B (zh) 用于同步执行网络结构节点处的命令的方法、装置和机器可读介质
CN107273133A (zh) 一种设备监控图形定义的方法
CN109857969A (zh) 数据表格视图处理方法、系统及计算机可读存储介质
CN105468570B (zh) 一种文档合成展示方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant