powerdesigner中cmd模型中多对多会生成_Simlink 生成A2L标定量和检测量

本文介绍了如何在PowerDesigner的CMD模型中处理多对多关系,并通过设置自定义存储类(CSC)生成A2L文件中的标定量和检测量。详细步骤包括MBD应用程序的搭建、CSC的设置、内存区域配置、存储类定义以及Simulink模块参数的调整。最终,通过代码生成和集成到工程中,完成AUTOSAR代码和A2L文件的创建。
摘要由CSDN通过智能技术生成

1.采用基于模型的设计(MBD)搭建应用程序

从Simulink Library Browser中推拽出如下模块,搭建模型。

52d5af1ec85d13d569dcafcf9a4647ab.png

e836971d4d10f52a1ac6bd6292c50122.png

Matlab function内容如下图

22c19eee54e0fda68904626a980a1351.png

e836971d4d10f52a1ac6bd6292c50122.png

2.设置用户存储类(CSC)

因为a2l中的标定量和检测量存放在用户指定的区域,故在代码生成时需要指定该变量存储的位置。

在CMD窗口中输入 cd(fullfile(matlabroot,'/toolbox/simulink/simdemos/dataclasses'))

3e9ce8e9ae05c51a7b4a5ebd49d6a71f.png

e836971d4d10f52a1ac6bd6292c50122.png

将文件夹+SimulinkDemos复制到如D:MyProjectsMyPackage,并重命名为+myPackage.

c69d0a7cc530d77ea65e24aa9ade264a.png

e836971d4d10f52a1ac6bd6292c50122.png

将matlab路径定位到D:MyProjectsMyPackage,并打开Parameter.m和Signal.m文件。修改这两个文件中的methds方法下的函数setupCoderInfo(line45),并将参数更改为“myPackage”和刚才重命名的一致。

7c22d2cb734fed93657b0785ed62139f.png

e836971d4d10f52a1ac6bd6292c50122.png

保存并关闭文件

打开matlab主页上的设置路径按钮,添加package路径

7682faf6ac499873842aebab1e982f21.png

e836971d4d10f52a1ac6bd6292c50122.png

添加package路径

3247f79f4d3688a143663780e33ecaf9.png

e836971d4d10f52a1ac6bd6292c50122.png

点击保存,确认按钮

在CMD窗口中键入:cscdesigner('myPackage'),此时将打开cscdesigner

44ffed4c40144b87b0cda7bb7d977c11.png

e836971d4d10f52a1ac6bd6292c50122.png

点击Memory Seeting选项卡,点击New,设置参数如下(这个具体内容需要根据实际的MCU进行设置)如下定义两种内存区,一个是calibration内存区,另一个是monitor内存区.在设置参数后可点击Valiable按钮检测是否设置出错,在Validating result输出窗口中查看。

ba4ba8502380598997aab14f7d4ff3b2.png

e836971d4d10f52a1ac6bd6292c50122.png

1d21d806ca269d9c752a7f52c0edf203.png

e836971d4d10f52a1ac6bd6292c50122.png

在Custom Storage Class选项卡中,点击New ,参数如下,下图设定义了2个存储类,一个是calibration存储类,另一个是monitor存储类.在设置参数后可点击Valiable按钮检测是否设置出错,在Validating result输出窗口中查看。

925ff923b2adf2a3429accf6103e896b.png

e836971d4d10f52a1ac6bd6292c50122.png

4e9d64a18aa1e18bc7c39bcf6b9ce96b.png

e836971d4d10f52a1ac6bd6292c50122.png

点击ok,弹出的窗口中点击OK按钮。

点击simulink模型中的userkey1模块,打开对话框,在Signal Attributes选项卡中,点击Data Store
Memory:simulink.Signal下拉选择Customize calss lists,在Signal classes栏中勾选myPackage.Signal前的复选框,如图

0e67d47de9ec5698ed0741e6381dc80b.png

e836971d4d10f52a1ac6bd6292c50122.png

6a6cfdd6f5bfccfd75768f684d6449d3.png

e836971d4d10f52a1ac6bd6292c50122.png

点击ok,在刚才点击打开的模块的对话框中,再次下拉Signal object class,此时选择myPackage.Signal,然后再Storage class的下拉框中选择MyCalib,此时就已将该变量设置为标定两个,如图。

c569ebd213169ba8be67642b339af5c1.png

e836971d4d10f52a1ac6bd6292c50122.png

A模块和userkey1模块一样,设置为标定量,userdata1和userdata2模块在Storage class下拉中选择MyMonitor.

以上就设置好了,simulink模块的参数,接下来还需要设置代码生成的规则。

3.设置系统生成A2L文件,并生成AUTOSAR代码。

ctrl + e,打开模型配置参数对话框,设置如图。

fe147a8be27f95e9dd2b69c7dec84e2c.png

e836971d4d10f52a1ac6bd6292c50122.png

79d642b9cd141b39c61104fc829d2898.png

e836971d4d10f52a1ac6bd6292c50122.png

0cbd6304f2fba635cd5cc6ded760d038.png

e836971d4d10f52a1ac6bd6292c50122.png

4fe35c96f7d582d8f85d381d80c0bce7.png

e836971d4d10f52a1ac6bd6292c50122.png

以上配置就基本上能生成了autosar代码和a2l文件,当然还有其它优化生成代码的选项,这里就不多说了。

在模型中点即RUN,若没有错误,则点击Bulid Mode,生成代码,如图。

9c7a99b7e6ece020e12fbf7f117319eb.png

e836971d4d10f52a1ac6bd6292c50122.png

4.将生成的代码集成到工程中,利用生成的Hex文件,map文件,将A2l中的变量地址填充上(另外可能还需编写一些文件信息到A2L中,如标定时的canId,QAC触发条件等信息),即可在标定软件中使用了。

以上四点即我在项目中使用的手法,若有错误还望指出。

本人是从事汽车电子ECU的开发的攻城狮一枚,主要从事BSW的开发,欢迎志同道合的朋友加我微信,一起讨论有关汽车电子开发的技术。

30cb5e891ee213a7fb31bca8fece5b6f.png

e836971d4d10f52a1ac6bd6292c50122.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值