立即注册
登录
搜索
前端开发
后端开发
虚幻引擎
U3D引擎
体感研发
数据库
论坛
BBS
本版
帖子
用户
麒麟软控
»
论坛
›
麒麟软控
›
数据库
›
图示DBC数据库
返回列表
发新帖
图示DBC数据库
到达安宁
到达安宁
当前离线
积分
16
4
主题
8
帖子
16
积分
新手上路
新手上路, 积分 16, 距离下一级还需 34 积分
新手上路, 积分 16, 距离下一级还需 34 积分
积分
16
发消息
发表于 2022-9-22 19:59:28
|
显示全部楼层
前言
本文档阐述CANoe仿真工程的制作过程。
进行Canoe仿真工程需要制作两个重要的工具,DBC数据库与Panel面板。
DBC数据库的作用是设置信号与报文,设置属性,信号与报文的收发关系。
Canoe工程与DBC数据库绑定后,可以进行仿真模拟信号与报文的收发。
panel面板可以自定义仿真面板,提供视觉图形化功能辅助。panel可以通过系统变量与DBC中的信号与报文产生联系,通过CAPl编程实现收发控制。
一、制作DBC数据库文件
1、新建Canoe工程
File菜单栏下NEW,根据需要选择CAN或CANFD
2、创建DBC文件
在导航区Tools下选择CANdb++Editor,
在CANdb++Editor中点击file——create Database。
在Template下根据需要选择模板,然后进行保存(与CANoe工程放在一个目录下)。
3、Networks(网络)项下确定Protocol属性
选择Edit Network进入总线属性编辑,此处将Definition中的Protocol属性改为CAN总线或CANFD
Networks(网络)项下,列出了当前所仿真的总线网络
在数据库中可以存在多个网络,每个网络由一个或多个ECU组成,ECU之间通过网络节点相互通信。
4、创建信号与数值表
1、右击Signal选择New,创建信号
可编辑信号名称,长度Length,字节顺序Byte Order,单位,最大最小值等。(创建信号具体根据需求文档)
2、为每一个有需要的信号创建数值表
每一个需要描述选项信息的信号都需要一个数值表,创建数值表的意义是为了给后续创建的信号提供解释
a.点击Value Tables图标
b.右键new,编辑名称(可与需关联的信号名相同)
c.在Value Descriptions中编辑Value与Description
d.在signal下,Value Table下为信号选择需要关联的数值表
5、创建报文并添加信号
将所有信号创建完毕后创建报文
1、右击Message选择New,创建报文,可编辑名如“BodyInfo_3_MS1”
2、编辑报文属性,选择报文类型如CAN Standard,数据长度如(DLC)为8。编辑标识符如(ID)0x150,编辑ID后报文下则显示“BodyInfo_3_MS1(0x150)”
3、编辑type
双击Messages下的报文,在Type处选择该报文的类型
4、编辑报文发送方式,周期(根据文档要求)
a.首先需要准备模板文件,否则Attribute界面没有内容
b.file下点击import Attributes Definition选择属性模板文件添加即可
5、在报文中添加信号
在Signals选项卡中,选择需要的信号添加到报文中。
6、laayout选项卡与Startbit
1、设置每个信号的Startbit起始位
在信号创建完成,并关联报文后,在Messages 下单击报文,可以查阅信号属性总览,且只能在此处双击信号编辑Startbit值。
2、下图所示,以信号ESP_VehSpdVld为例
可以看出编辑的报文起始位长度,类型,在layout选项卡下以此形式表现
起始位位16,ESP_VehSpdVld长度为2,Motorola则规定信号顺序从右向左
7、创建网络节点并确定报文与信号的收发关系
1、创建节点
在导航区右击Network Nodes,在快捷菜单中选择新建名为XXXX的网络节点。
当定义了一个网络节点后,CANdb++会自动添加一个相同名字的ECU,并且二者之间是相互关联的。
2、确定收发节点(根据文档)
新建报文与信号后,网络节点可以编辑选择要发送的报文或要接收的信号
Mapped TX Sig :仅可查阅发送的信号
Mapped Rx Sig :可编辑选择需要接收的信号
Tx Messages : 可编辑选择需要发送的报文(此处添加的报文,其信号自动出现在Mapped TX Sig)
点击add选择需要的信号或报文添加
对于节点的
接收报文
,CANdb++中以信号为单位,需要将信号分别
关联到相应的节点上
。注意,此时相应的报文也会关联到对应节点上,
且报文应该交叉接收
。
单击左侧栏中的Network Nodes,右击节点,选择Edit Node,在弹出的对话框中,选择Mapped Rx Sig.选项卡,单击Add按钮,可将信号添加到其中。
同样的方法,将节点接收和发送信号对应
8、创建系统变量
Environment Variable(环境变量)是ECU、面板和CAPL程序相连接的媒介。环境变量的值也可以与面板上控制控件或显示控件相关联。环境变量仅在CANdb++中定义。
在CANdb++的导航区中,右击Environment Variable,选择New命令创建一个名为EnvDoorState的环境变量,并属性设置。
注意:
但是一般不用环境变量而用系统变量,可创建系统变量命名空间,以及子系统变量,按照下图可在系统变量关联panel面板后添加选项等配置。
系统变量创建步骤:
1.系统变量的编辑不在DBC中,而在Canoe工程中
在Canoe导航区Environment下点击System Variable
2.右键new新建系统变量
需要编辑Namespace,Name,Data type等
Namespace名称与报文Message名称对应,Name与报文下信号名对应
3.编辑初始值、最大最小值。(Value Table部分与DBC里的数值表与信号对应)
Value Table中位的数量不能超过最大值Maxmum
如上图最大值就是3,最小值是0,初始值设置为0则为设置Inactive状态为初始状态
4.若需要输入数值,则需要确定数据类型,更改Data type。
注意:
a.编辑好的系统变量可被plane面板里的控件关联,可被capl调用
b.每个功能模块总开关需要单独设立一个系统变量,is_加报文名,共同装在一个TX命名的命名空间中。如果有指示灯,LED则应和该模块总开关关联同一个系统变量
----------------------
至此DBC数据库已经创建完成
二、制作panel面板设计
1、打开并新建Panel文件
2、保存panel为.xvp文件
打开面板后直接命名并保存在文件在自己指定的路径下
3、点击Toobox将需要的控件放置到面板上
若桌面没有则可以通过此方式打开Toobox
4、设置控件属性
1、打开属性编辑面板
鼠标选中布置在面板上的控件点击Properties
2、编辑面板属性
5.常用控件与控件名称如下图所演示
控件命名规则
1、Group Box名称取决于该组的功能
2、Check Box名称与报文名称一致
3、Combo Box、In/Output与信号名一致
6.编排设计之后,常用控件命名及使用方式如下图
需要注意和更改的地方
1、控件需关联系统变量
2、Symbol Fiker需设置为Variable
3、一些开关逻辑需要确定
4、点击选择
图标,属性面板信息更全
将控件编辑正确,并绑定系统变量,面板即可以设计完成。
编辑完DBC与Panel后
可编写capl脚本
进一步精确的控制信号与Panel面板进行仿真测试
上一篇:
【药融云更新】批文数据库全局分析上线!临床试验数据库 ...
下一篇:
使用DBGate管理MemFireDB数据库
回复
举报
使用道具
分享
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
快速回复
返回顶部
返回列表