【无标题】

使用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作为模板

  1. 保存名字为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代码

使用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灯也会根据开关进行灯亮或者灯灭的变化。

相关推荐

  1. 标题

    2024-07-10 07:12:03       77 阅读
  2. 标题

    2024-07-10 07:12:03       71 阅读
  3. 标题

    2024-07-10 07:12:03       70 阅读
  4. 标题

    2024-07-10 07:12:03       78 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 07:12:03       99 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 07:12:03       107 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 07:12:03       90 阅读
  4. Python语言-面向对象

    2024-07-10 07:12:03       98 阅读

热门阅读

  1. 探索Hash Router:构建单页应用的基石

    2024-07-10 07:12:03       27 阅读
  2. Django学习收尾

    2024-07-10 07:12:03       28 阅读
  3. Linux Vim全面教程

    2024-07-10 07:12:03       29 阅读
  4. 【Linux命令基础】vim的简介

    2024-07-10 07:12:03       28 阅读
  5. linux vim编辑文件界面的所有命令

    2024-07-10 07:12:03       27 阅读
  6. [linux] 如何优雅的用vim阅读jsonl文件

    2024-07-10 07:12:03       31 阅读
  7. AMBA总线协议与PCIe总线协议的区别

    2024-07-10 07:12:03       32 阅读
  8. YModem在Android上的实现

    2024-07-10 07:12:03       29 阅读
  9. Selenium 切换窗口

    2024-07-10 07:12:03       27 阅读
  10. PCA和PCoA分析的python代码

    2024-07-10 07:12:03       35 阅读