目录[-]

目录:

  1. 前言
  2. CANoe 工程创建
  3. 仿真环境配置
  4. 数据库 DB 配置
  5. CAPL 测试模块创建
  6. 工程运行与验证
  7. CANIG 使用

————————————————————————————————————————————————

1.前言

 

  构建一个基础的CANoe工程并不复杂。从选择模板、配置CAN通道,到编写第一个CAPL脚本,每一步都藏着对总线通信逻辑的理解。

  本文将以最小化的CANoe工程为例,一步步完成:

  • 如何选择正确的工程模板(避开FlexRay等不必要协议的干扰)

  • 如何建立纯净的CAN仿真网络

  • 如何编写、绑定并运行第一个CAPL测试脚本

  • 如何绑定DBC数据库,让报文解析更清晰

————

2.CANoe 工程创建

 

2.1 新建工程

1.启动 CANoe:双击CANoe图标打开软件

2.创建新配置

  • 点击 File-》New 
  • 在弹出的模板选择窗口,选择 CAN-CAN 500kBaud 1ch(500kb波特率)

3.工程保存

  • 点击保存,可以用默认的名字,也就是 CAN 500kBaud 1ch,也可以自己换一个名字。

4.创建专门的工程文件夹管理文件

CANoe_CAN/

    ----CAPL/ 代码(.can)

    ----DBC/  数据库文件(.dbc)

    ----LOG/  日志文件

    ----PANEL/  面板(.pan)

    ----工程配置文件.cfg

目录说明

  1. CAPL 文件:仿真用例、测试用例
  2. DBC 文件:定义 CAN 报文、信号和网络节点
  3. LOG 日志文件:保存BLF、ASC等格式的测量数据;生成的测试结果和分析报告
  4. PANEL 面板文件:用户操作控制界面或监控界面
  5. 工程配置文件.cfg:主工程文件,最重要的

————

3.仿真环境配置

 

点击 View-》Simulation Setup,默认会显示类似下图,当前总线上还没有任何ECU,是不能工作的,在添加ECU之前,我们先添加数据库文件

————

4.数据库 DB 配置

 

在Simulation Setup 右侧,找到 databases,鼠标右键点击,有2个按钮,Add 和 import Wizard,一般推荐第2种,它可以将数据库和绑定的节点信息一起导入。 

比如我们选择第二项,会显示,有2个网络节点,ECU_01和ECU_02,可自己选择要不要导入

导入后,总线上,多了2个ECU

————

5.CAPL 测试模块创建

 

在现有工程的基础上,添加一个 CAPL 测试代码,回到 CANoe 工程的 Simulation Setup 页,点击图中的笔图案。

它会打开 CAPL 软件,如果未选择过文件,则会要求选择本地CAPL文件或新建;如果已经选择过,则下次自动打开该文件。

/*@!Encoding:65001*/
includes
{
}

variables{
  message EMS_0x196 msg_0x196;
  msTimer tmr1;
}

on timer tmr1{
  // 设置报文数据
  msg_0x196.dlc = 8;  // 必须设置数据长度

  // 设置具体数据(可选)
  msg_0x196.byte(0) = 0x11;
  msg_0x196.byte(1) = 0x22;
  // ... 设置其他字节

  // 发送报文
  output(msg_0x196);

  // 正确的日志输出方式
  write("发送报文 ID 0x196, 数据: %02X %02X %02X %02X %02X %02X %02X %02X", 
        msg_0x196.byte(0), msg_0x196.byte(1), msg_0x196.byte(2), msg_0x196.byte(3),
        msg_0x196.byte(4), msg_0x196.byte(5), msg_0x196.byte(6), msg_0x196.byte(7));
}

on start{
  // 初始化报文
  msg_0x196.dlc = 8;
  write("开始执行");
  tmr1.setCyclic(2000);
}

稍微添加一些代码,variables 环境变量定义了一个ECU,并且给它赋值,output函数是将数据发送到总线上,就可以在CANoe主工程里看到日志信息。

————

6.工程运行与验证

 

回到 CANoe 工程首页,Home—》Simulated Bus,选择第三项,因为我们是做仿真发送。接下来,点击左上角黄色的Start 按钮

运行后,在 Write 面板可以看到 CAPL 代码的输出日志

切换到 Analysis 面板,可以看三种视图,Trace、Graphics、Data

注意,在查看视图前,需要鼠标右键,将要查看的信号,选择加入进去,否则是读不到图的。

————

7.CANIG 使用

 

接着上面的内容,如果不写 CAPL 代码,但又想要发送报文,需要怎么做?

这时候就用到 CANIG 功能了,回到 CANoe 的 Configuration 面板,在 Simulation Setup 上,添加一个CANIG节点。

在总线上,鼠标右键,点击 Insert CAN Interactive Generatior

在 CAN IG 节点上,鼠标右键,并点击第一项 Configuration...

弹出的 CAN IG 窗口,鼠标右键点击上半部分空白处,点击第一项:Add Frame from Database...

选择报文,比如下图,选择 EMS_0x196

添加后,找到上半部分的 Trigger 列表头,点击 Manual 选择触发方式,简单一点说,它有2种触发方式,On Key 按键触发;Periodic 周期发送。

比如,我们选择 Periodic 周期发送,时间间隔是2000ms,保存。

接下来是下半部分的配置,已经决定每隔2000ms触发一次,那么触发后,要发送的报文内容是什么呢?

这里选择 Range of values,Value 1 和 Vlue 2,分别是最小值和最大值,比如这里选择同一个数字。

需要留意,上半部分的 Send 需要运行中才可以,CAN IG 配置完毕后,回到 CANoe 工程,点击左上角的 Start 按钮,运行程序。

Graphics 面板,可以看到速度持续在30,和我们设置的数值一样,CAN IG 功能正确。

 

END