1. CANoe自动化测试环境搭建与第一个CAPL脚本

CANoe自动化测试环境搭建与第一个CAPL脚本 学习卡片

任务说明

本案例目标为:从零创建一个CANoe工程,完成CAN通道的硬件/软件配置,并验证通道配置正确性。你将得到一个最小可用的CANoe工程文件结构,以及用于验证配置的CAPL脚本框架。完成本案例后,你将拥有一个可打开、可运行、通道状态可观测的CANoe工程。

工程创建与配置步骤

CANoe工程的核心是.cfg配置文件,它描述了总线通道、网络节点、仿真设置等。我们采用手工编写配置文件的方式创建工程,这样能精确控制每个配置项,也便于版本管理。

首先创建以下目录结构:

CanoeDemo/
├── CanoeDemo.cfg          # 工程主配置文件
├── CanoeDemo.cin          # 工程包含文件(可选)
└── CanoeDemoCAPL/
    └── ChannelCheck.can   # 通道验证CAPL脚本

编写工程配置文件 CanoeDemo.cfg

该文件定义了两个虚拟CAN通道(CAN1、CAN2),并挂载了通道检查脚本。关键配置项说明:

  • [Database]块:可在此加载DBC文件,本案例为空,不影响通道配置。
  • [Nodes]块:定义网络节点,本案例不涉及具体节点仿真。
  • [CAN]块:配置CAN通道数量、波特率、通道模式(无硬件时使用模拟模式)。
version = 8.5
[Include]
include = CanoeDemo.cin

[Global]
Name = CanoeDemo
Description = First CANoe project - Channel Configuration Demo
StartupDelay = 100ms

[Database]
; 本案例不加载DBC,通道配置不依赖数据库

[Nodes]
; 无仿真节点,仅使用CAPL测试模块

[CAN]
ChannelCount = 2
Channel1Name = CAN1
Channel2Name = CAN2
Baudrate1 = 500
Baudrate2 = 500
Channel1Mode = Simulated
Channel2Mode = Simulated
; 模拟模式无需硬件即可运行

[CAPL]
; 关联通道检查脚本
TestModule = CanoeDemoCAPL\ChannelCheck.can

[SimulationSetup]
; 使用默认仿真设置

编写通道验证CAPL脚本 ChannelCheck.can

该脚本在工程启动时自动执行,读取当前通道配置并输出到Write窗口,用于验证配置是否生效。脚本不依赖外部输入,逻辑自包含。

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

variables
{
    int gCh1Baudrate;
    int gCh2Baudrate;
    char gCh1Name[32];
    char gCh2Name[32];
}

on start
{
    // 读取通道1配置
    gCh1Baudrate = GetBusBaudrate(1);
    GetBusName(1, gCh1Name, elcount(gCh1Name));
    
    // 读取通道2配置
    gCh2Baudrate = GetBusBaudrate(2);
    GetBusName(2, gCh2Name, elcount(gCh2Name));
    
    // 输出到Write窗口
    write("=== Channel Configuration Check ===");
    write("CAN1 Name: %s, Baudrate: %d kbps", gCh1Name, gCh1Baudrate);
    write("CAN2 Name: %s, Baudrate: %d kbps", gCh2Name, gCh2Baudrate);
    
    // 判定配置正确性
    if (gCh1Baudrate == 500 && gCh2Baudrate == 500)
    {
        write("RESULT: PASS - Both channels configured at 500 kbps");
    }
    else
    {
        write("RESULT: FAIL - Baudrate mismatch detected");
    }
}

运行与验证方法

验证路径如下:

  1. 启动Vector CANoe(建议版本15.0及以上,支持8.5格式配置)。
  2. 通过菜单File → Open,选择CanoeDemo.cfg打开工程。
  3. 点击工具栏Home → Start Simulation(或按F9)启动仿真。
  4. 观察仿真启动后,Write窗口(View → Write)中输出的通道信息。

判定标准

满足以下条件即判定案例通过:

  • 工程能正常打开,无配置错误弹窗。
  • 仿真启动后,Write窗口显示两行通道信息,名称分别为CAN1和CAN2。
  • 两行信息中的波特率均显示为500 kbps。
  • 最后一行输出RESULT: PASS。
CANoe工程通道配置验证流程 工程文件结构 CanoeDemo.cfg CanoeDemo.cin CanoeDemoCAPL/ ChannelCheck.can 配置解析 ChannelCount = 2 Baudrate1/2 = 500 Mode = Simulated TestModule = ChannelCheck.can CAPL验证执行 on start 触发 GetBusBaudrate(1/2) GetBusName(1/2) write() 输出结果 PASS / FAIL 判定依据:波特率==500 验证路径:配置文件 → 解析通道参数 → CAPL读取并比对 → 输出判定

预期输出

当仿真启动后,Write窗口应显示以下内容(顺序可能因时序略有不同):

=== Channel Configuration Check ===
CAN1 Name: CAN1, Baudrate: 500 kbps
CAN2 Name: CAN2, Baudrate: 500 kbps
RESULT: PASS - Both channels configured at 500 kbps

该输出由CAPL脚本中的write()函数直接生成,与配置文件的参数严格对应。若配置文件中波特率被修改为其他值,脚本将输出RESULT: FAIL,从而验证配置与脚本的联动正确性。