02 创建CANoe测试工程
02 创建自己的第一个CANoe测试工程
文章目录
0、前言
- CANoe是德国Vector公司出的一款总线开发环境,全称叫CAN open environment,主要用于汽车总线的开发而设计的。CANoe的前期是为了对CAN通信网络进行建模、仿真、测试和开发,后来扩展加入了LIN、Ethernet、FlexRay、MOST等网络。
- CANoe是网络和ECU开发、测试和分析的专业工具,支持从需求分析到系统实现的整个系统的开发过程。CANoe丰富的功能和配置选项被OEM和供应商的网络设计工程师、开发工程师和测试工程师所广泛使用。
- 在开发的初期阶段,CANoe可以用于建立仿真模型,在此基础上进行ECU的功能评估。在完成了ECU的开发后,该仿真模型可以用于整个系统的功能分析、测试以及总线系统和ECU的集成。这样就可尽早地发现问题并解决问题。评估窗口的表格和文字说明可用来评价结果。
- CANoe具有测试功能集,用来简化或自动进行测试。运用该功能,可以进行一系列的连续测试,并自动生成测试报告。另外,CANoe具有诊断功能集,用以与ECU进行诊断通信。
1、新建CANoe工程
打开CANoe,点击左上角的File按钮,选择New,新建一个工程。
在弹出的界面中,根据项目测试需求,创建一个CAN/LIN/Etherent等类别的工程,本文作为新手起步系列,以CAN工程为例,后续的文章会陆续编写LIN及Ethernet等工程创建。双击选择CAN 500波特率2通道模板:
双击后进入一个空的CANoe CAN工程界面如下所示:
为了方便自己使用以及便于存放、区分等。我们先行在一个磁盘内创建一个文件夹,然后再在其中依次创建用于存放CAPL代码的CAPL文件夹,存放DBC的DBC文件夹,存放面板的Panel文件夹,以及存放LOG的文件夹,存放诊断文件CDD的文件夹,存放CANoe工程的CANoe文件夹等等,后续根据实际项目的需求再增加其他的文件夹。
创建好文件夹后,返回刚刚CANoe新建的工程界面,点击左上角的Save按钮,先保存此工程(方便后续再保存东西时不需要多次修改路径)。
并在弹出的界面中找到刚刚新建的文件夹,将配置文件保存至文件夹下,配置文件的文件名可自行修改,也可默认。这里修改为CANoeTest。
至此,一个空的CAN工程创建完毕。
2、导入DataBase(数据库)文件
将DBC文件拷贝至我们的工程目录的DBC文件夹内,随后在Simulation Setup中右击DataBase,进行BDC文件的导入。
此处弹出的提示框中,有Add和Import Wizard两个选项,其中Add是仅添加DBC文件,Import不仅添加DBC文件,还可以将DBC中定义的节点进行加载到CANoe的CAN总线上。一般情况下,推荐选择第二种方法,使用Import进行导入。
在弹出的界面中,点击Select选择我们的DBC进行导入,并使用右移符号将所需要的节点添加进CAN总线,完成后点击下一页,完成DBC的导入。完成导入后我们的CAN总线上就有了刚刚的节点,具体内容见下图:
3、启动工程,进行报文收发和分析
点击**闪电按钮(Start)**会弹出让我们选择所用硬件通道,如有硬件,选择与产品相连的CAN通道即可。
选择完成之后点击OK即可启动工程。但是在实际测试工程运用中,可能会出现采样点不对的问题,这时需要与软件配置的采样点保持一致。

由于考虑到不是每个读者都有硬件,以下暂时以无硬件仿真进行讲解。在home目录下,点击Real Bus旁边的小箭头,切换到Simulation Bus模式进行离线仿真。
其中,第一个是真实总线,在有硬件且有产品时使用,第二及第三个为模拟仿真运行,第二个为快速仿真,第三个为正常模式的仿真。我们一般选择第三个。切换完成之后,点击闪电图标启动工程,启动后切换到Analysis栏点击trace即可看到我们的CAN报文界面。
4、修改TX报文信号值,发送信号值到总线
4-1、CAN IG
首先可以使用IG模块发送按照DBC信号定义发送数据到总线上。在Simulation界面右击Interactive Generators生成CAN IG。


4-2、CAN Panel
点击Home栏目右侧的Panel按钮,选择New一个Panel,进入Panel编辑界面。

我们通过拖拉鼠标,对Panel控件放置区进行放大,拖大一些,方便放置控件。随后,点击工具栏的View按钮,选择Reset Views,复位Panel编辑界面,可以显示Panel编辑界面的所有内容。从右侧选择一个并将其拖拽到Panel控件放置区中,比如拖拽一个开关按钮:
承接上面,将其放置到Panel放置区中。再拖拉这个开关的四角,将开关按键放大一些。随后在右侧的ToolBox底部点击Properties切换到属性界面。
鼠标左键选中这个开关,随后点击右侧的红框中的Symbol后弥漫的…按钮,进入信号选择界面。之后选择S56_BCS_P的BCS节点的BCS_ABA_Active信号,点击Ok。
完成之后点击左上角的保存按钮,存储这个Panel面板。并在随后弹出的提示框中将这个Panel放置到本工程目录下的Panel文件夹内。随后点击Save保存。
保存完毕后在CANoe主界面的Home中点击Panel按钮,即可看到刚刚创建的这个Panel。
重新启动工程,随后打开我们刚刚创建的这个Panel面板。在Trace窗口中,点击BCS节点报文左边的 + 号,展开显示此报文。可以看到,此时BCS_ABA_Active的值为0,使用鼠标右键打开一下我们Panel中的开关,可以看到,BCS_ABA_Active的值变为了1。鼠标左键关闭这个开关,我们的BCS_ABA_Active的值又变为了0,实现了使用Panel控件控制所发出的报文信号值的效果。到这里,你已经掌握了最基础的CANoe上位机的制作方式。
但是在实际运用中,一个信号值不可能只是一个布尔值(0和1)的状态,如果是一个8Bit甚至16Bit类型的信号呢,我们如何改变这个信号的值?这个时候就需要使用其他类型的控件动态修改其他信号的值。在Panel面板中鼠标双击空白处,可以快速打开Panel编辑器,进入到Panel的编辑界面。
我们在ToolBox中选择一个其他的控件,在这里我选择使用Input/Output Box这个控件,将其拖拽到Panel放置区中。这个控件是一个可以进行双向输入输出的控件,它既可以作为显示,又可以作为输入使用。切换到Properties属性界面,可以看到他的属性比开关控件多了许多。我们先不管这些属性,直接拖拉右侧的鼠标滚条,将其拉到最底下,为这个控件绑定一个symbol信号。
还是老方法,点击symbol右侧的 … 三个点的按钮,为它绑定一个信号。这次我们选择一个值比较大的信号,我这里选取的是一个8Bit的信号
随后再次点击ok,然后保存这个panel界面。重新启动CANoe工程,打开Trace窗口和Panel面板。我们可以看到此时信号值是0,右侧Panel上的输入值也是0。我们在Panel上输入一个其他的值,Trace上发送的报文也随同一起变化。改变信号成功!至此,你已经具备了修改任意一个信号值的能力,因为Input/OutPut Box的值可以随意输入。
参考文献
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)