ECU 应用层软件模型之数据字典DD5

文摘   2024-11-24 00:14   上海  
ECU 应用层软件模型系列文章不断更新中,从零开始教你做应用层开发:

在经过上述几篇文章的生成代码配置操作之后,生成的代码具体如下:

相对于 在搭建ECU 应用层软件模型的一个例子1 所生成的代码还有一定的差距,不妨比较下上下两图,下图是我们的目标代码。

如何得到目标代码,还需要两步操作,一步是数据字典(Data Dictionary,DD),另一步是关联数据字典和模型。下文我们具体来看如何操作:

1 数据字典

数据字典是一个持久性存储库,用于存储与模型相关的数据。它主要用于管理模型中定义的参数、信号以及其他设计数据。数据字典可以替代基础工作区,提供更强大的数据管理功能,包括分区数据、跟踪更改、控制访问和共享数据。
1)数据字典的组成
数据字典通常包含以下几个部分:
  • Design Data:包含定义参数、信号以及决定模型行为的设计数据的变量和数据类型,比如定义输入信号,输出信号和标定量等。
  • Configurations:包含决定如何在仿真过程中配置模型的配置集,比如采样时间和仿真开始时间,这些对象控制模型的仿真属性。
  • Embedded Coder Dictionary:包含用于Embedded Coder的代码生成定义。比如,定义代码生成的存储类和初始化值等。
  • Other Data:包含与模型有关但在仿真过程中模型不使用的信息,例如描述模型所表示的物理设备和过程的数据。
2)创建数据字典
  • 第一步,在Simulink模型上方工具栏中,点击 模型资源管理器(Model Explorer)”。
  • 第二步,新建数据字典:选择“File” -> “New” -> “Data Dictionary”,并将数据字典命名为Sample.sldd,并保存在与Simulink模型相同的路径下。
第三步,添加数据对象。在数据字典中,选择“Design Data”,点击“Add” -> “Data Object”,定义数据对象的名称、数据类型、值等属性。
比如定义输入变量和局部变量,使用Simulink Signal,定义标定量使用Simulink Parameter;针对每个量定义其属性,包含数值,数据类型,维度,范围,单位和存储类等属性,下图就是针对模型所定义的DD:

当然数据字典还有一些高级功能,包括数据字典的分区数据字典的引用,本文不对进行具体介绍,简而言之,数据字典的分区包括引用字典和条目管理,即:

  • 引用字典:可以将数据字典分为多个引用字典,类似于Excel中的工作表和单元格。

  • 条目管理:数据字典会显示条目在模型中的使用位置和方式。

数据字典的引用包括引用其他数据字典和共享数据,即:
  • 引用其他数据字典:可以在一个数据字典中引用另一个数据字典,实现数据的层次管理。

  • 共享数据:多个模型可以共享同一个数据字典,提高数据的一致性和复用性。

2 关联数据字典到模型

当数据字典已经创建完成,那么接下来就是关联数据字典到模型,操作如下:
1)打开模型属性。在Simulink模型中,空白处右键点击模型属性(Model Properties)。
2)链接数据字典:选择“Link to Data Dictionary”。点击“Browse...”,选择刚刚创建的MyDataDictionary.sldd文件;取消勾选“允许模型访问基础工作区”,点击“Apply”以应用更改。
3)链接变量参数:在模型中,使用“Constant”块或其他适当的块,选择数据字典中的数据对象。比如将标定量绑定到一个“Constant”块的输出。
在模型中,选中信号线右击选择属性,在信号属性页面中,先输入或选择目标的信号名称,然后勾选信号名称必须解析为Simulink信号对象,再确定或应用后,模型就会出现带叉的目标信号,如下所示:
当数据字典所定义的信号和参数与模型配置完成,就入下图的状态:

这时,我们再次代码生成,可以看到代码如下所示:

不难发现,通过数据字典的创建以及关联数据字典到模型,最终使得模型自动生成的代码符合我们的期望,这样生成的代码才能具备很好的可读性。

3 小结

以上就是本文关于数据字典的简单介绍,对于数据字典,其中关于存储类的配置非常重要,下篇文章将对比进行介绍。

创作不易,欢迎关注点赞再看收藏


汽车研发交流群,有兴趣的朋友请添加群主:prOmiseyes,备注:公司+职务入群。仅限汽车从业人员。

谦益行
分享汽车研发日常,助力你我共同成长。
 最新文章