当前位置: 首页 > news >正文

CANOE入门到精通——CANOE系列教程记录1 第一个仿真工程

本系列以初学者角度记录学习CANOE,以《CANoe开发从入门到精通》参考学习,CANoe16 demo版就可以进行学习

概念

CANoe是一种用于开发、测试和分析汽车电子系统的软件工具。它通过在不同层次上模拟汽车电子系统中的不同部件,如ECU、总线和传感器,来评估系统的功能和性能。CANoe也提供了一个环境,用于实验室和车辆之间的交互操作和信息传输,以及对调试信息的记录和分析。
CANoe主要用于以下汽车电子系统的开发和测试:
1 通信系统:CAN、LIN、FlexRay、Ethernet等
2 电子控制单元(ECU) 开发与测试
3 传感器和执行器的功能开发与测试
4 汽车网络安全性开发
5 功能安全性开发
6 车载娱乐系统开发与测试
大部分围绕这三部分:分析 、仿真和诊断。
为什么需要CANoe呢?
CANoe是一种极其重要的汽车电子系统开发工具,因为它允许开发人员在车辆生产之前测试和评估电子系统,从而减少成本和时间,同时提高产品质量和安全性。CANoe还提供强大的数据记录和分析功能,使开发人员可以更快速和精确地识别和解决错误和故障。此外,CANoe还支持多种通信协议和硬件接口,使得开发人员可以灵活地适应不同的汽车电子系统。

软件安装

CANoe下载
在这里插入图片描述
进入注册后,邮箱会收到CANoe的下载链接和demo Lisence
在这里插入图片描述
1、解压安装

我安装时,系统出现 提示disablemsi is enabled。只需将DisableMSI的值设置为 0 即可完成。

解决方法

2、注意安装路径默认是C盘
3、安装Activation key,vector已经通过邮箱发送给你。

创建第一个仿真工程

完成功能:使用一个开关按钮控制LED亮灭。
双击打开
在这里插入图片描述
在这里插入图片描述

1、创建单通道CAN总线仿真工程

在这里插入图片描述
出现界面
在这里插入图片描述
ctrl+S 保存,在一个文件夹FirstDemo,工程名:FirstDemo.cfg

在这里插入图片描述

2、新建CAN数据库

单击点击 Tools
在这里插入图片描述
弹出
在这里插入图片描述

2.1 添加报文

创建Database,并命名:FirstDemo.dbc,保存前面说的文件夹中
在这里插入图片描述
在这里插入图片描述
添加报文message
在这里插入图片描述
在这里插入图片描述

2.2添加信号

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
创建message和signals后,将signals下的bsSwitch拖到Msg1中
在这里插入图片描述
以上数据库已经创建完成。

2.3将Database add project 中

右键 将FirstDemo.dbc
在这里插入图片描述

3、定义系统变量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建两个环境变量(按钮开关状态和灯状态),环境变量的Namespace都为MyNamespace下。

4、创建仿真面板,panel

两个仿真面板:按钮和LED,模拟实物。

4.1 创建 light panel

在这里插入图片描述
LIGHT panel,保存到工程
在这里插入图片描述

在toolbox,找到LED Contrl 拖到编辑框中
在这里插入图片描述
对象说明
在这里插入图片描述

点击LED 配置LED属性
在这里插入图片描述
关于配置 Symbol
以拖拽形式进行配置
在这里插入图片描述

如果没有系统变量
在这里插入图片描述

4.2创建 switch panel

在这里插入图片描述

同样的方法创建 SWITCH panel
在这里插入图片描述

在这里插入图片描述

5、创建网络节点

右键点击 CAN总线
在这里插入图片描述
Insert Network Node,插入两个网络节点。

5.1 设置网络节点,

在这里插入图片描述
修改Tile
在这里插入图片描述

在这里插入图片描述

5.2 添加 CAPL 程序

双击ECU,为SWITCH和LIGHT ECU创建CAPL程序。
在这里插入图片描述

在这里插入图片描述
代码:

//Switch.can
/*@!Encoding:936*/
on sysvar sysvar::MyNamespace::svSwitch
{message Msg1 msg;msg.bsSwitch = sysGetVariableInt(sysvar::MyNamespace::svSwitch);output(msg);
}//Light.can
/*@!Encoding:936*/on preStart
{write("关注 小昭debug");
}
on message Msg1
{SysSetVariableInt(sysvar::MyNamespace::svLight,this.bsSwitch);
}

compile

在这里插入图片描述

6 工程运行仿真

在这里插入图片描述
显示Trace
在这里插入图片描述

右键打开按钮,灯亮,Trace显示报文信息。
在这里插入图片描述
待更新,敬请期待。

http://www.lryc.cn/news/63866.html

相关文章:

  • JavaEE——单例模式
  • 关于数据倾斜
  • Shell第一次作业
  • 实例解读nn.AdaptiveAvgPool2d((1, 1))
  • 泛型编程 之模板(template)
  • 用ChatGPT问DotNet的相关问题,发现DotNet工程师的前景还不错
  • LeetCode_字符串_简单_415.字符串相加
  • Insix:面向真实的生成数据增强,用于Nuclei实例分割
  • CleanMyMac X4.13.2最新版下载
  • 机器学习算法原理:详细介绍各种机器学习算法的原理、优缺点和适用场景
  • Spring Security 6.0系列【32】授权服务器篇之默认过滤器
  • .NET中比肩System.Text.Json序列化反序列化组件MessagePack
  • Oracle删除列操作:逻辑删除和物理删除
  • 找出字符串中第一个匹配项的下标、求解方程----2023/5/2
  • 23:宁以non-member、non-friend替换member函数
  • Centos7安装Redis
  • Android 项目必备(四十五)-->2023 年如何构建 Android 应用程序
  • 改进YOLOv5: | 涨点神器 | 即插即用| ICLR 2022!Intel提出ODConv:即插即用的动态卷积
  • ( 数组和矩阵) 485. 最大连续 1 的个数 ——【Leetcode每日一题】
  • 从0搭建Vue3组件库(十一): 集成项目的编程规范工具链(ESlint+Prettier+Stylelint)
  • Mysql 苞米豆 多数据源 读写分离(小项目可用)
  • OJ练习第90题——删除字符使频率相同
  • 云原生Istio基本介绍
  • Vue(简单了解Cookie、生命周期)
  • 57.网页设计图标实战
  • 浅析AI视频智能检测技术在城市管理中的场景应用
  • unity中的Line Renderer
  • 【数据架构系列-06】一文搞懂数据模型的3中类型——概念模型、逻辑模型、物理模型
  • Java——Java面向对象
  • MyBatis:生命周期、作用域、结果集映射 ResultMap、日志、分页、使用注解开发、Lombok