主要内容

导出ASAP2文件用于数据测量和校准

ASAM MCD-2 MC标准,也称为ASAP2,是由自动化和测量系统标准化协会(ASAM)提出的数据定义标准。ASAP2是用于测量、校准和诊断系统的数据的非面向对象描述。有关ASAM和ASAM MCD-2 MC(ASAP2)的更多信息标准,请访问ASAM网站www.asam.net.

代码生成器使您能够在代码生成过程中导出包含有关模型信息的ASAP2文件。

您可以运行交互式ASAP2文件生成示例.在MATLAB中打开示例®命令提示符中,输入:

rtwdemo_asap

金宝app®编码器™金宝app对ASAP2文件生成的支持是与版本无关的。软件默认生成ASAP2 version 1.31格式,生成的型号信息一般与其他ASAP2版本兼容。ASAP2文件生成对于ASAP2测量和校准工具的具体需求也是中性的。该软件提供了定制api,您可以使用这些api定制ASAP2文件生成,以生成ASAP2版本,并满足ASAP2工具的特定需求。

你应该知道的

要利用ASAP2文件生成,您应该熟悉:

支持ASAP2的系统目标文件金宝app

您可以在不同的系统目标文件配置中使用ASAP2文件生成。例如,基于GRT和ERT的配置使您能够在代码生成和构建过程中生成ASAP2文件。

有关使用系统目标文件配置生成ASAP2文件的过程,请参阅生成ASAP2文件

定义ASAP2信息

定义参数和信号的ASAP2信息

ASAP2文件生成过程需要有关模型中参数和信号的信息。其中一些信息包含在模型本身中。使用工作区或数据字典中的Simulink数据对象完成ASAP2文件生成过程。在某些情况下,工作空间对象的使用是可选的。金宝app

使用模型数据编辑器和内置Simulink数据对象提供信息,例如使用金宝app金宝appsimulink.signal.对象提供测量信息和金宝appSimulink.参数对象来提供特征信息。可以从派生的数据类中使用数据对象金宝appsimulink.signal.金宝appSimulink.参数要提供信息,请参阅数据对象使用模型数据编辑器配置数据属性

此表包含生成ASAP2文件所需的最小数据属性集。模型中定义了一些数据属性。其他属性在对象的属性中提供。对于在中定义的属性金宝appsimulink.signal.或者金宝appSimulink.参数对象,该表列出了关联的属性名称。

数据属性

定义于

属性名

名称(符号)

模型和数据对象

继承自参数或信号名称解析到的数据对象的句柄

描述

数据对象

描述

数据类型

模型或数据对象

数据类型

缩放比例
(如果为定点数据类型)

模型或数据对象

数据类型

最小允许值

模型或数据对象

最大允许值

模型或数据对象

最大限度

单元

模型或数据对象

单元

内存地址(可选)

模型或数据对象

MemoryAddress_ASAP2(可选;请参见内存地址属性。)

内存地址属性

如果在代码生成之前内存地址属性未知,则代码生成器插入ECU地址生成的ASAP2文件中的占位符文本。通过后处理生成的文件,您可以通过Postprocessing替换占位符的实际地址。有关示例,请参阅该文件matlabroot./工具箱/ RTW /目标/ ASAP2 / ASAP2 /asap2post.masap2post.m解析您提供的链接器映射文件并替换ECU地址ASAP2文件中的占位符与实际的内存地址。由于链接器映射文件从编译器变化到编译器,所以您可能需要修改正则表达式代码asap2post.m以匹配您使用的链接器映射的格式。

如果系统上安装了嵌入式编码器,并且正在为嵌入式目标生成可执行和可链接格式(ELF)或程序数据库(PDB)文件,则可以使用rtw.asap2SetAddress自动更换ECU地址的功能。有关更多信息,请参阅ASAP2文件的自动ECU地址替换(嵌入式编码器)

如果在代码生成之前内存地址属性已知,则可以在数据项或数据对象中定义它MemoryAddress_ASAP2财产不存在金宝appsimulink.signal.或者金宝appSimulink.参数数据对象类。如果要添加属性,请添加名为MemoryAddress_ASAP2的子类的自定义类金宝app或者ASAP2班有关Simulink数据类子类化的信息,请参阅金宝app定义数据类

此表显示了取代先前版本的ASAP2对象属性的Sim金宝appulink对象属性。

ASAP2和ASAP2之间的差异金宝app参数和信号对象属性

ASAP2对象属性(上一个)

金宝appSimulink对象属性(当前)

LONGID_ASAP2

描述

PhysicalMin_ASAP2

PhysicalMax_ASAP2

最大限度

UNITS_ASAP2.

单元

ASAP2文件的自动ECU地址替换(嵌入式编码器)

如果系统上安装了嵌入式编码器,并且正在为嵌入式目标生成可执行和可链接格式(ELF)或程序数据库(PDB)文件,则可以使用rtw.asap2SetAddress自动更换的功能ECU地址占位符内存地址值,具有生成的ASAP2文件中的实际地址。

如果在代码生成之前内存地址属性未知,则代码生成器插入ECU地址生成的ASAP2文件中的占位符文本,如图所示

/ begin特征/ *名称* / ki / * long标识符* /“”/ *类型* /值/ * ECU地址* /0x0000/*@ECU_Address@Ki@ */

用实际地址代替ECU地址占位符,使用rtw.asap2SetAddress功能。语法是:

RTW.asap2setAddress(ASAP2文件,信息文件)

参数是字符向量,用于指定生成的ASAP2文件的名称以及生成的可执行ELF文件、来自Microsoft toolchain的PDB文件或模型的DWARF调试信息文件的名称。调用时,rtw.asap2SetAddress从指定的ELF、PDB或DWARF文件中提取实际ECU地址,并用实际地址替换ASAP2文件中的占位符,例如:

/ begin特征/ *名称* / ki / * long标识符* /“”/ *类型* /值/ * ECU地址* /0 x40009e60

为查找表定义ASAP2信息

金宝appSimulink编码器软件为查找表数据及其断点生成ASAP2描述。软件将一维表数据表示为曲线信息,二维表数据为地图信息和断点AXIS_DESCRAxis_pts.信息。您可以使用以下Simulink查找表块之一对查找表进行建模:金宝app

  • 直接查找表(N-D) - 1和2尺寸

  • 使用Prelookup的插值-1维和2维

  • 1-D查找表

  • 二维查找表

  • n-D查找表-1维和2维

该软件支持这些类型的查找表金宝app断点(轴点)。

断点类型 生成的信息
可调且可在多个表轴(公共轴)之间共享

坐标轴

固定和不可移动(固定轴)

这些变种之一fix_axis.:

  • 固定轴如果断点是间隔相等的整数并且间隔相等的整数是2的幂

  • 固定轴零件距离如果断点是具有等距间距的整数

  • 固定轴部件列表如果断点是间隔非等距的整数

可调谐但不在多个表中共享(标准轴)

标准_轴

为ASAP2代码生成配置块时:

  • 对于表数据,使用金宝appSimulink.参数具有非-汽车存储类。

  • 用于在多个表轴之间共享的可调断点数据(坐标轴), 用一个金宝appSimulink.参数具有非的数据对象汽车存储类。

  • 对于固定的,不可通行的断点数据(fix_axis.),使用“块参数”对话框中指定的工作区变量或数组。断点必须作为整数存储在代码中。数据类型必须是内置整数类型(INT8.,int16,int32,uint8,uint16, 或者uint32),固定点数据类型或等效的别名类型。

  • 对于多个表(STD_轴)之间未共享的可调断点数据:

    1. 创建一个金宝app模拟总线对象定义结构包装(字段的名称和顺序)。参数结构的字段必须对应于查找表数据和查找表块的每个轴。例如,在一个n-D查找表具有2个维度的块,结构必须仅包含三个字段。此总线对象描述了查找特性的记录布局。

    2. 创建一个金宝appSimulink.参数对象来表示可调参数。

    3. 创建表格和轴值。

    4. 可选地,指定单位,最低限度, 和最大参数对象的属性。

这是一个例子n-D查找表以标准Axis格式生成ASAP2文件的记录:

/开始特征/*名称*/stdaxisparam.... /* 记录布局*/查找1d\u X\u单词\u Y\u浮动32\u IEEE…开始轴描述/*X轴点的描述*// *轴类型* / std_axis... /结束轴_descr / ext特征/ begin_layout lookup1d_x_word_y_float32_ieee axis_pts_x 1 word index_incr direct fnc_values 2 float32_ieee column_dir Direct / End Record_Layout

笔记

示例模型rtwdemo_asap2显示查找表块的ASAP2文件生成,包括可调(COM_轴)和固定(FIX_轴)查找表断点。

生成ASAP2文件

生成ASAP2文件

使用通用实时系统目标文件或嵌入式编码器系统目标文件生成ASAP2文件,作为代码生成和构建过程的一部分。

使用具有内置ASAP2支持的系统目标文件生成ASAP2文件。金宝app例如,请参阅ASAP2示例模型rtwdemo_asap2

使用基于GRT或ERT的系统目标文件

要使用通用实时(GRT)系统目标文件或嵌入式编码器系统目标文件为模型生成ASAP2数据定义,请执行以下操作:

  1. 使用代码映射编辑器将存储类应用于信号、块状态和模型参数,如中所述模型接口元素的C代码生成配置

    如果存在以下一个或多个条件,ASAP2文件中的参数将不表示:

    • 你申请了存储类汽车,丝锥,结构体, 或者默认(通过模型默认值)。

    • 您可以通过以下方式应用存储类:嵌入式编码器词典

    • 应用一个使代码生成器生成宏或不可寻址变量的存储类。

  2. 使用属性检查器为每个数据元素配置其余的存储类属性。

  3. 设置模型配置参数系统目标文件到基于GRT或ERT的系统目标文件。

  4. 选择模型配置参数ASAP2接口

  5. 选择参数仅生成代码

  6. 点击申请

  7. 生成代码。

    代码生成器将ASAP2文件写入Build文件夹。默认情况下,该文件被命名模型.a2l哪里模型是模型的名称。ASAP2安装文件控制ASAP2文件名。有关详细信息,请参阅定制生成的ASAP2文件

为引用的模型生成ASAP2文件

构建过程可以为模型引用层次结构中的每个引用模型生成ASAP2文件。在生成的ASAP2文件中,MEASUREMENT记录表示引用模型中的信号和状态。

要为引用模型生成ASAP2文件,请为顶级模型和引用层次结构中的每个引用模型选择ASAP2文件生成。如果您使用的是通用实时目标或嵌入式编码器目标,请按照中描述的过程进行操作使用基于GRT或ERT的系统目标文件对于顶部模型和每个引用的模型。

合并顶部模型和参照模型的ASAP2文件

使用函数rtw.asap2MergeMdlRefs合并为顶级模型和引用模型生成的ASAP2文件。该函数具有以下语法:

[状态,信息]=rtw.asap2MergeMdlRefs(topModelName,ASAP2FILENAME.)

  • topModelName是包含一个或多个引用模型的模型的名称。

  • ASAP2FILENAME.为合并的ASAP2文件指定的名称。

  • 可选择的:地位如果合并已完成并返回true(逻辑1),则返回false(逻辑0)。

  • 可选择的:信息返回有关合并失败的其他信息,如果地位否则,它返回一个空字符向量。

考虑下面的例子。

[状态,info] = rtw.asap2mergemdlrefs('mytopmdl','merged.a2l')
此命令合并为顶部模型生成的ASAP2文件mytopmdl.及其在文件中的引用模型merged.a2l

示例模型rtwdemo_asap2包括合并ASAP2文件的示例。

ASAP2文件的结构

此表概述了ASAP2文件的基本结构,并描述了用于创建文件每个部分的目标语言编译器(TLC)函数和文件:

  • ASAP2文件的静态部分如所示大胆的

  • 函数调用表示

文件部分

ASAP2min.tlc的含量

包含函数定义的TLC文件

文件头

%

asap2userlib.tlc

/ begin项目“”

/开始项目“%

asap2setup.tlc

/开始标题“”
标题内容

/开始标题“%
>

asap2setup.tlc
asap2userlib.tlc

/端头

/端头

asap2userlib.tlc

/开始模块“”
模块内容:

/开始模块“%”}

asap2setup.tlc
asap2userlib.tlc

-A2ML
-标准杆
- mod_common.
......

>

asap2userlib.tlc

模型相关模块内容:

%
调用用户定义的函数:

asap2lib.tlc

-记录单元布局
-特色
- 参数组
-模型参数

…WriteRecordLayout_TemplateName()

... writecharaction_templatename()
…WriteCharacteristic_Scalar ()

用户/模板/。。。

——测量
-外部投入
-块输出

…WriteMeasurement()

asap2userlib.tlc

- compu_method.

... writecompumethod()

asap2userlib.tlc

/结束模块

/结束模块

文件页脚/尾部

>

asap2userlib.tlc

创建用于数据测量和校准的基于主机的ASAM-ASAP2数据定义文件

此模型显示ASAP2数据导出。ASAP2是自动化和测量系统(ASAM)标准化协会提出的数据定义标准。

打开示例模型

打开示例模型rtwdemo_asap2

open_system ('RTWDEMO_ASAP2');

ASAP2是用于测量、校准和诊断系统的数据的非面向对象描述。有关ASAM和ASAP2标准的更多信息,请参阅ASAM网站:https://www.asam.net

ASAP2数据定义是通过Simulink®数据对象和测试点信号实现的。使用目标金宝app语言编译器(TLC),您可以为应用程序创建高度定制的解决方案。有关ASAP2文件生成的详细信息,请参阅Simulink Coder®文档。金宝搏官方网站

您可以通过选择来配置ASAP2文件生成ASAP2接口在这一点代码生成>接口“配置参数”对话框的窗格。

相关话题