使用CANoe创建仿真项目并执行

news2024/9/30 13:25:59

使用CANoe创建开关控制灯亮灯灭的仿真环境

 

一、创建仿真工程

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

787f5a5f0e864e399a9eaf583cbd206f.png

 

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


261e02fee39f4261b77dc904e08ad510.png

二、添加CAN数据库

 

 1、新建CAN数据库

 

(1)单击Tools功能区的CANdb++ Editor(CAN数据库编辑器)

 

(2)在CANdb++ Editor界面中单击File→Create database并选择CANoe Template.dbc作为模板

4586e7c863bd4569a41aacdecbaaee83.png

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

76c992ff3c7f4b9d88db5e286c600fe0.png

 

 2、添加报文和信号

 

(1)在Messages下面创建一条报文Msg1,DLC更正为1

bc5060098aed4fccb2548dd52977d98b.png

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

5ac8af5ef58848b1a765e0fedeae96b3.png

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

 

3、添加数据库到工程中

 

进入Simulation Setup窗口,单击Networks→CAN Networks→CAN→Databases,右键add,将testpanel.dbc文件加入仿真工程

6b092eecf8ff443787ed9a324b849e80.png

ad629abcd05d479ab73e3db0b7604535.png

## 三、定义系统变量

 

单击Environment→System Variables(系统变量)→鼠标右键new

 

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

 

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

 

 四、创建面板

 1、创建开关面板

(1)单击Tools→Panel Designer(面板设计器)

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

(3)Panel Designer→Toolbox→Switch/Indicator

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

24c384b18e4f4bf1b153e2f620bf46ae.png

46f2bce0cae1464ead284760ae13bda0.png

 2、创建指示灯面板

创建开关面板

eb7341babe014f3e889dc40c32be0291.png

 

创建指示灯

(1)单击Tools→Panel Designer(面板设计器)

 

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

 

(3)Panel Designer→Toolbox→LED Control

 

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

53a9938ce1bf473e9ca0900ec462fc74.png

c808b918f2454f16989c776d13306b41.png

 

五、创建网络节点

 

1、添加网络节点

 

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

 

cb0920e3329b4c2a83d66621d66d3319.png

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

6fde30fd2b324bb593ec5c30b381c4a8.png

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

6944871db30d4957998df79c8f491012.png

2、添加CAPL代码

 

使用CANoe的CAPL编写一个简单的程序

 

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

 

 3、添加Switch代码

 

(1)单击CAPL Functions浏览框,拖拽Value Objects→On sysvar <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 <newMessage>到代码行,添加如下内容

 

 //以下为接收到Msg1报文的响应

 on message Msg1

 {

  //将当前报文的信号sSwitch赋给系统变量svLight

  @MyNameSpace::svLight = this.sSwitch;

 }

 

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

 

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1913342.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分享中国-吉林省和9个地级市州人文地图

分享中国-吉林省和9个地级市州人文地图 1、吉林省 吉林省&#xff0c;位于中国东北地区中部&#xff0c;地处东北亚地理中心位置&#xff0c;因吉林市而得名&#xff0c;清康熙时在松花江畔建吉林乌拉城&#xff0c;满语意为“沿江的地方”。 吉林省以中部大黑山为界&#x…

How do I format markdown chatgpt response in tkinter frame python?

题意&#xff1a;怎样在Tkinter框架中使用Python来格式化Markdown格式的ChatGPT响应&#xff1f; 问题背景&#xff1a; Chatgpt sometimes responds in markdown language. Sometimes the respond contains ** ** which means the text in between should be bold and ### te…

[AI 大模型] Meta LLaMA-2

文章目录 [AI 大模型] Meta LLaMA-2简介模型架构发展新技术和优势示例 [AI 大模型] Meta LLaMA-2 简介 Meta LLaMA-2 是 Meta 推出的第二代开源大型语言模型&#xff08;LLM&#xff09;&#xff0c;旨在为研究和商业应用提供强大的自然语言处理能力。 LLaMA-2 系列模型包括从…

华为OD机试 - 二叉树的广度优先遍历 - 二叉树(Java 2024 D卷 200分)

华为OD机试 2024D卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;D卷C卷A卷B卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测…

算丰 2300x-SOC TPU 处理器体验,运行 langchain + chatglm3 知识库,评测对话效果海口有几个机场 | Chatopera

处理器 算丰 2300x-SOC&#xff0c;国产 AI 芯片 处理器效果不错&#xff0c;使用 models/glm3_model/chatglm3-6b_int4_1dev_2k.bmodel 达到 8.9 Token/s 知识库项目 ChatDoc-TPU 验证过程 但是知识库运行的效果差强人意&#xff0c;有待提升。过程如下&#xff1a; 上…

Kithara和OpenCV (一)

Kithara使用 OpenCV 目录 Kithara使用 OpenCV简介需求和支持的环境构建 OpenCV 库使用 CMake 进行配置以与 Kithara 一起工作 使用 OpenCV 库设置项目运行 OpenCV 代码图像采集和 OpenCV自动并行化限制和局限性1.系统建议2.实时限制3.不支持的功能和缺失的功能4.显示 OpenCV 对…

Centos7 被停用!如何利用 Ora2Pg 将 Oracle 迁移至 IvorySQL?

在过去的社区讨论中&#xff0c;想要使用或正在使用IvorySQL的社区用户&#xff0c;经常问到Oracle 如何迁移到 IvorySQL 中&#xff0c;而且近期随着 Centos7 官方已经停止维护&#xff0c;这一变动促使了很多将 Oracle 部署在 Centos7 上的 Oracle 用户&#xff0c;开始准备 …

深度学习之梯度消失

在深度学习中&#xff0c;梯度消失是指在反向传播过程中&#xff0c;随着网络层数增加或者在使用特定类型的激活函数&#xff08;如sigmoid函数&#xff09;时&#xff0c;梯度逐渐变小并最终趋近于零的现象。这种现象导致在更新参数时&#xff0c;底层网络的权重几乎不会得到有…

增强现实(AR)与虚拟现实(VR)的区别?

随着科技的飞速发展&#xff0c;增强现实&#xff08;AR&#xff09;与虚拟现实&#xff08;VR&#xff09;技术在各个领域展现出巨大的潜力和应用前景。这两种技术虽然在体验和实现方式上有所不同&#xff0c;但都为用户提供了全新的感知体验。本文将详细解析AR和VR的概念、区…

mysql查询的一些问题

解决方案一&#xff1a;给字段起别名&#xff0c;让别名与实体类属性一致 解决方案二&#xff1a;通过Results和Result注解手动映射 推荐使用方案三&#xff1a;开启驼峰命名在application.properties文件中添加mybatis.configuration.map-underscore-to-camel-casetrue

基于Java中的SSM框架实现疫情冷链追溯系统项目【项目源码+论文说明】

基于Java中的SSM框架实现疫情冷链追溯系统演示 摘要 近几年随着城镇化发展和居民消费水平的不断提升&#xff0c;人们对健康生活方式的追求意识逐渐加强&#xff0c;生鲜食品逐渐受到大众青睐&#xff0c;诸如盒马鲜生、7-fresh等品牌生鲜超市&#xff0c;一时间如雨后春笋般迅…

280个地级市金融集聚水平数据(2006-2022年)

2006年-2022年280个地级市金融集聚水平数据整理资源-CSDN文库 金融集聚水平&#xff1a;衡量地级市金融发展的新维度 金融集聚水平是衡量一个地区金融发展程度的重要指标&#xff0c;它反映了金融机构、金融资源、金融服务在特定时间和空间的集中程度。这一指标的评估可以从多…

【常见开源库的二次开发】一文学懂CJSON

简介&#xff1a; JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式。它基于JavaScript的一个子集&#xff0c;但是JSON是独立于语言的&#xff0c;这意味着尽管JSON是由JavaScript语法衍生出来的&#xff0c;它可以被任何编程语言读取和生成…

UML 2.5图的分类

新书速览|《UML 2.5基础、建模与设计实践》新书速览|《UML 2.5基础、建模与设计实践 UML 2.5在UML 2.4.1的基础上进行了结构性的调整&#xff0c;简化和重新组织了 UML规范文档。UML规范被重新编写&#xff0c;使其“更易于阅读”&#xff0c;并且“尽可能减少前向引用”。 U…

硬盘分区读不出来的应对策略与数据恢复实战

在日常的计算机使用过程中&#xff0c;硬盘分区读不出来的问题时常困扰着用户。这一故障不仅可能导致重要数据的突然失联&#xff0c;还可能对系统的稳定运行造成威胁。硬盘分区读不出来&#xff0c;往往表现为在文件资源管理器中无法访问特定分区&#xff0c;系统提示错误或分…

java中方法的使用

方法的使用 方法的概念什么是方法方法定义方法的调用过程实参和形参的关系 方法重载为什么需要方法重载方法重载的概念方法签名 递归递归的概念递归过程分析递归练习 方法的概念 什么是方法 方法就是一个代码片段&#xff0c;类似于C语言的函数。 方法存在的意义&#xff1a;…

MySQL 面试相关问题

1. MySQL 基础问题1.1 为什么用MySQL&#xff1f;1.2 表属性类型 varchar 和 char 的区别&#xff1f;1.2 什么时候用 varchar 和 char&#xff1f;1.3 Datetime 和 Timestamp 的区别&#xff1f;1.4 一个SQL语句的执行过程&#xff0c;表述下&#xff1f; 2. MySQL 存储引擎相…

Docker部署gitlab私有仓库后查看root默认密码以及修改external_url路径和端口的方法

文章目录 1、docker部署最新版gitlab2、进入gitlab容器3、修改路径地址ip和端口4、检验效果 1、docker部署最新版gitlab #docker安装命令 docker run --detach \--name gitlab \--restart always \-p 1080:80 \-p 10443:443 \-p 1022:22 \-v /gitlab/config:/etc/gitlab \-v …

预算有限?如何挑选经济适用的安全管理系统?

如今&#xff0c;无论是信息安全、生产安全还是人员安全&#xff0c;都直接关系到企业的稳定运营和长远发展。然而&#xff0c;对于许多中小企业而言&#xff0c;高昂的安全管理系统投入往往成为一大难题。那么&#xff0c;在预算有限的情况下&#xff0c;如何挑选一款既经济适…

04 效用评测层 显性指标+标准方法 对推荐效果定量评测

你好&#xff0c;我是大师兄。前面三节课我们介绍了推荐系统的数据采集层和数据加工层的相关内容&#xff0c;本节课我们重点介绍下推荐系统效用评价层的评测方法和评测指标。 这里的“效用评测”&#xff0c;通俗点说是指推荐系统输出数据的好坏是否符合用户和商业的预期&…