在现代汽车工业中,车载测试是确保车辆电子系统可靠性和功能性的关键环节。而使用CANoe创建仿真工程,不仅能够模拟真实的车辆环境,还能大大提升测试效率和准确性。那么,CANoe是如何实现这些的呢?

车载测试中,为什么选择使用CANoe创建仿真工程?它具备哪些独特的功能和优势,能够在复杂的车载系统测试中脱颖而出?

一、创建仿真工程

1、在某盘符下创建一个文件夹,命名为testpanel(自定义,与项目相关),在文件夹testpanel下面分别创建CANdb、Panels和Nodes文件目录

2、打开CANoe,单击File→New,双击选择模板CAN 500kBaud 1ch,命名为testpanel.cfg,并保存到文件夹testpanel下

二、添加CAN数据库

1、新建CAN数据库
(1)单击Tools功能区的CANdb++ Editor(CAN数据库编辑器)(2)在CANdb++ Editor界面中单击File→Create database并选择CANoe Template.dbc作为模板

(3)保存名字为testpanel.dbc到工程testpanel下面的文件夹CANdb中

2、添加报文和信号
(1)在Messages下面创建一条报文Msg1,DLC更正为1

(2)在Signals下面创建一个信号sSwitch

(3)将信号sSwitch拖拽到报文Msg1下面

3、添加数据库到工程中进入Simulation Setup窗口,单击Networks→CAN Networks→CAN→Databases,右键add,将testpanel.dbc文件加入仿真工程

三、定义系统变量

单击Environment→System Variables(系统变量)→鼠标右键new创建一个系统变量svSwitch,设置最大值和最小值

再创建一个系统变量svLight,设置最大值和最小值

四、创建面板

1、创建开关面板
(1)单击Tools→Panel Designer(面板设计器)

(2)新建一个Panel,命名为SWITCH,并保存在文件夹Panels下

(3)Panel Designer→Toolbox→Switch/Indicator

(4)Properties(属性)中设置相关参数

2、创建指示灯面板

创建开关面板

创建指示灯
(1)单击Tools→Panel Designer(面板设计器)

(2)新建一个Panel,命名为LIGHT,并保存在文件夹Panels下

(3)Panel Designer→Toolbox→LED Control

(4)Properties(属性)中设置相关参数

五、创建网络节点

1、添加网络节点
(1)在CAN1的连接线上右击,选择Insert Network Node,分别创建两个节点ECU1和ECU2

(2)右击ECU1→Configuration→File,为该节点创建一个Switch.can文件,并将Title改为Switch

(3)右击ECU2→Configuration→File,为该节点创建一个Light.can文件,并将Title改为Light

2、添加CAPL代码

双击节点Switch或者点击节点上铅笔图样,进入CAPL Browser(CAPL浏览器),展示一个空白的CAPL模板

3、添加Switch代码

(1)单击CAPL Functions浏览框,拖拽Value Objects→On sysvar 到代码行,添加如下内容

on sysvar MyNamespace::svSwitch{
// 声明一个CAN报文变量,用于报文发送
message Msg1 msg;
// 读取当前的系统变量svSwich的值,并赋值给报文的信号sSwitch
msg.sSwitch = @this;
// 将报文输出到总线上
output(msg);
//在write窗口显示系统变量svSwitch
write("%d is switch", @this);
}

这段代码使得节点Switch根据系统变量svSwitch的变化,修改sSwitch信号值,并将更新的报文发送到总线上。

(2)单击Compile,完成编译,并退出CAPL Browser

4、添加Light代码

(1)单击CAPL Functions浏览框,拖拽CAN→On message 到代码行,添加如下内容

// 以下为接收到Msg1报文的响应
on message Msg1
{
// 将当前报文的信号sSwitch赋给系统变量svLight
@MyNameSpace::svLight = this.sSwitch;
}

这段代码将在Light节点中处理收到的CAN报文Msg1,根据报文中信号sSwitch修改系统变量svLight的值,从而实现LED指示灯的点亮或熄灭。

六、运行代码,实现仿真

点击Home界面最上角的start (闪电图标)按键,就可以执行整个的仿真工程此时点击开关按键,开关可以随着操作实现开关功效,同时LED灯也会根据开关进行灯亮或者灯灭的变化。

随着汽车智能化和电动化的发展,车载系统变得越来越复杂,对测试的要求也越来越高。使用CANoe进行仿真测试,能够在开发阶段提前发现和解决问题,降低后期修改成本,提升产品质量和安全性。这不仅符合汽车行业的趋势,也满足了消费者对高品质车辆的需求。

CANoe作为一款功能强大的车载系统仿真和测试工具,通过其多总线系统支持、强大的仿真能力和灵活的脚本编写,为车载测试提供了全面的解决方案。使用CANoe,开发者能够在虚拟环境中进行详细的测试和验证,确保车载系统的高效性和可靠性。

 

CANoe创建仿真工程的更多相关文章

  1. Eclipse创建Maven工程报错

    问题 用Eclipse创建maven工程的时候,总是会报错,例如提示: Unable to create project from archetype [org.apache.maven.archet ...

  2. MyEclipse创建Maven工程

    先要在MyEclipse中对Maven进行设置:

  3. Vivado SDK 2014.2 创建新工程后,BSP版本不对的解决办法

    问题描述如下: 1. 使用Vivado SDK 2014.2已经创建了工程,但是此时,hdf文件增加了外设,需要重新创建工程以更新SDK中的外设描述: 2. 使用新的hdf创建工程后,发现system ...

  4. 关于Xcode6创建的工程在Xcode5打开

    Xcode6创建的工程在Xcode5打开- 4.0只显示3.5大小的问题 只需要在工程里添加Default-568h@2x.png,即可以解决

  5. windows下无法创建django工程的问题

    环境:python2.7  django1.7 安装好django后,将C:\Python27\Lib\site-packages\Django-1.7.7-py2.7.egg\django\bin; ...

  6. 在VS2015 RC打开CTP中创建的工程

    VS2015终于出了RC了!小伙伴们快来安装试用吧,地址在这里,还有新的Windows 10开发工具哦,要不然是开发不了Universal Windows App的,安装前记得卸载CTP版本. 新的R ...

  7. iOS创建子工程

    实际开发中,我们可能会同时开发好几个端,比如楼主目前开发的家教平台,需要老师端,家长端,助教端三个端.有很多工具方法,或者封装的自定义控件都是可以复用的.我们就可以把公用的代码抽取出去,新建一个工程, ...

  8. Myeclipse中创建Maven工程的时候没有 webapp-javaee6

    1. http://mvnrepository.com/artifact/org.codehaus.mojo.archetypes/webapp-javaee6/1.5 中有描述

  9. maven创建web工程,并导入到eclipse中

    maven版本:3.1.0,eclipse版本:4.3 JDK:1.7 创建工程名是sa的maven工程 mvn archetype:create -DgroupId=com.bing-Dartifa ...

  10. EDIUS删除创建的工程预设的教程

    自从第一次启动EDIUS 8,创建了一个工程预设,之后每次启动软件都会出现,但创建的预设又用不着了,如何删除呢?下面,小编就 给大家演示如何正确删除EDIUS 8工程预设. 1.启动软件,点击设置菜单 ...

随机推荐

  1. .NET 缓存:内存缓存 IMemoryCache、分布式缓存 IDistributedCache(Redis)

    .NET缓存里分了几类,主要学习内存缓存.分布式缓存 一.内存缓存 IMemoryCache 1.Program注入缓存 builder.Services.AddMemoryCache(); 2.相关 ...

  2. WEB服务与NGINX(16)-网站logo之favicon.ico文件

    目录 1. 网站logo之favicon.ico文件 1.1 favicon.ico文件的作用 1.2 favicon.ico文件带来的问题 1. 网站logo之favicon.ico文件 1.1 f ...

  3. 网络流量分析 | AnaTraf 网络故障排除万用表教程更新: 如何抓取两个 MAC / IP 地址之间的流量?

    AnaTraf 致力于提供国产化网络流量分析.网络可视化.网络故障排除解决方案. AnaTraf 网络万用表是一款实时的网络测量.流量分析工具,用于网络流量监控.识别网络性能瓶颈.快速排查网络问题. ...

  4. 我的书《Unity3D动作游戏开发实战》出版了

    首先感谢帮助和参与前期检阅的朋友们.本书是我经验积累的提炼,书中既有干货分享也有对基础内容的详解补充. 同时由于是第一次撰写书籍,许多地方仍有不足还请读者朋友们见谅. 在京东或当当等都可以购买到本书: ...

  5. AIRIOT大学计划暑期训练营圆满结束,产教融合培养物联网产业人才

    ​ 为促进物联网产业的纵深发展和创新,推进教育链.产业链与创新链的有机衔接,提高学生理论.实践和创新能力,7月3日-7月28日,由航天科技控股集团股份有限公司(简称"航天科技")开 ...

  6. kubernetes之Secret和Configmap

    创建和查询Secret literal 播报 编辑 讨论 上传视频literal是一个英语单词,形容词,意思是文字的:逐字的:无夸张的. [1] 通过--from-literal创建以及查看 [mac ...

  7. Swoole 源码分析之 epoll 多路复用模块

    首发原文链接:Swoole 源码分析之 Http Server 模块 大家好,我是码农先森. 引言 在传统的IO模型中,每个IO操作都需要创建一个单独的线程或进程来处理,这样的操作会导致系统资源的大量 ...

  8. Django路由控制器urls

    路由, 是一种映射关系,是把客户端请求的url地址和用户请求的应用程序(这里指django里面的视图进行一对一绑定映射的一种关系). 在django中所有的路由最终都被保存到一个变量 urlpatte ...

  9. ReplayKit 启动录制按钮 RPSystemBroadcastPickerView 的使用

    一.RPSystemBroadcastPickerView 介绍 ReplayKit12自从iOS11公布以来,提供了iOS系统级别的录屏能力(也就是录制自身App以外,手机屏幕内容)的能力,有一个非 ...

  10. C#窗体内控件大小随窗体等比例变化

    一.首先定义全局变量 1 private float X;//当前窗体的宽度 2 private float Y;//当前窗体的高度 3 private bool IsFirst = true; 二. ...