CANoe创建仿真工程

news2024/11/23 3:20:15

CANoe创建仿真工程

    • 写在前面
    • 仿真工程的创建
      • 创建工程
      • 添加CAN数据库
      • 添加系统变量
      • 创建面板
      • 创建网络节点
      • 为节点添加代码
      • 工程运行测试
      • 总结

写在前面

Canoe的安装不是特别方便,我是参加了松勤的培训课程,不仅需要安装软件还需要安装驱动,刚刚学习的小伙伴可以去某宝看下是否有资源。
在这里插入图片描述

仿真工程的创建

创建工程

  1. 在某盘下创建一个文件夹,命名为testpanel,在文件夹testpanel下面分别创建CANdb、Panels和Nodes
    在这里插入图片描述
  1. CANdb文件夹存储所有的CAN数据库文件,它包含了所有的CAN网络节点和信号定义。这个文件夹的意义是提供一个集中存储和管理所有CAN相关的信息的地方,便于查找和修改。
  2. Nodes文件夹存储了CAN网络节点的配置文件。这些配置文件描述了CAN网络中的所有节点,包括节点的名称、地址、通信参数等。这个文件夹的意义是用于管理和配置CAN网络节点,以便正确地进行通信。
  3. Panels文件夹存储了用户界面面板的定义文件。这些文件描述了CANoe工程中使用的面板,包括面板的布局、控件和功能等。这个文件夹的意义是用于定义和管理用户界面,以方便用户进行交互和监控CAN网络的状态。
  1. 打开CANoe,单击File->New,双击选择模板CAN 500KBaud 1ch,命名为testpanel.cfg,并保存到文件夹testpanel下
    在这里插入图片描述

CAN 500KBaud 1ch的含义
CAN表示控制器区域网络(Controller Area Network),是一种常用于车辆和工业应用中的通信协议。
500k Baud表示通信的速率为500,000位每秒,即通信传输速度为500千波特。
1ch表示仅使用一个通道进行通信,即只使用一个CAN通道进行数据传输

添加CAN数据库

  1. 添加CAN数据库
    1. 单 击 Tools 功 能 区 的 CANdb++ Editor 〔CAN 数 据 库 编 辑 器〕
    2. 在 CANdb++ Editor 界 面 中 单 击 File—>Create database 并 选 择 CANoe Template.dbc 作 为 模 板
    3. 保 存 名 字 为 testpanel.dbc 到 工 程 testpanel 下 面 的 文 件 夹 CANdb 中
      在这里插入图片描述
  2. 数据库中添加报文和信号
    2.1 在 Signals 下 面 创 建 一 个 信 号 Switch,信息如下:
    在这里插入图片描述

字段的含义:

  1. Length: 信号的位数长度,表示信号所占的二进制位数。
  2. Byte Order: 表示信号在字节流中的存储顺序。有两种选择:
  • Intel:低字节序(Little Endian),低位字节存储在低地址处。
  • Motorola:高字节序(Big Endian),高位字节存储在低地址处。
  1. Value Type: 表示信号的数据类型。有几种选择:
  • Signed:有符号整数。
  • Unsigned:无符号整数。
  • IEEE Float:单精度浮点数(32位)。
  • IEEE Double:双精度浮点数(64位)。
  1. Unit: 表示信号的单位,用于描述信号所代表的物理量的量纲。
  2. Init Value: 表示信号的初始值,默认值。
  3. Factor: 用于将原始的物理值转换为相应的信号值。可以是缩放因子、增益、系数等,用于线性转换。
  4. Offset: 用于将原始的物理值转换为相应的信号值。可以是偏移量。
  5. Minimum: 信号的最小物理值。
  6. Maximum: 信号的最大物理值。
  7. Value Table: >为信号定义值表,用于将数值映射为具体的含义,例如将某个特定值映射为状态或事件。

2.2 在 Messages 下 面 创 建 一 条 报 文 Msg1
在这里插入图片描述

字段的含义

  1. Type(类型):Type字段定义了CAN消息的类型。它有两个选项:
  • CAN Standard(标准CAN)表示使用11位的标准CAN标识符。标准CAN协议允许2^11=2048种不同的消息标识符。
  • CAN Extended(扩展CAN)表示使用29位的扩展CAN标识符。扩展CAN协议允许2^29=536,870,912种不同的消息标识符。
  1. ID(标识符):ID字段定义了CAN消息的唯一标识符。对于标准CAN,则为11位;对于扩展CAN,则为29位。CAN消息的ID用于区分不同的消息。
  2. DLC(数据长度码):DLC字段定义了CAN消息的数据长度(以字节为单位)。它指定了CAN消息中有效数据的长度。DLC的取值范围为0到8,表示消息的有效数据可以是0到8个字节

2.3 将信号拖拽到message下面
在这里插入图片描述
2.4. 添加数据库到工程中
进 入 Simulation Setup 窗 口 , 单 击 Networks->CAN Networks->CAN->Databases , 右 键 add, 将 testpanel.dbc 文 件
加 入 仿 真 工 程
在这里插入图片描述

添加系统变量

在Canoe中,系统变量的作用是用于表示和控制系统的状态,以及在仿真过程中进行配置和操作。系统变量通常是预定义的,可以通过设置和修改来改变系统的行为。以下是系统变量的一些常见作用:

  1. 时间控制:系统变量可以用于表示仿真时间的流逝速度和步长,以及控制仿真的开始和停止时间。
  2. 状态监测:系统变量可以用于监测和记录系统的各种状态和变量的值,如传感器输出、控制信号、系统内部状态等。
  3. 系统配置:系统变量可以用于配置系统的参数和设定,如模型、控制策略、仿真环境等。
  4. 事件触发:系统变量可以用于触发和控制系统中的事件,如传感器读取、控制器更新、动作执行等。
  5. 条件判断:系统变量可以用于进行条件判断和逻辑控制,以实现不同的仿真场景和行为。
  1. 单 击 Environment—>system Variables(系 统 变 量) 鼠 标 右 键 new ,设置两个系统变量如下:
    在这里插入图片描述

在这里插入图片描述

创建面板

  1. 创建开关面板
    ( 1 ) 单 击 ToolsPanel Designer( 面 板 设 计 器 〕
    ( 2 ) 新 建 一 个 panel, 命 名 为 SWITCH, 并 保 存 在 文 件 夹 panels 下
    ( 3 ) Panel Designer
    Toolbox—switch/Indicator
    ( 4 ) Properties 〔 属 性 〕 中 设 置 相 关 参 数
    在这里插入图片描述

  2. 创建指示灯面板
    ( 1 ) 单 击 ToolsPanel Designer( 面 板 设 计 器 〕
    ( 2 ) 新 建 一 个 panel, 命 名 为 LIGHT, 并 保 存 在 文 件 夹 panels 下
    ( 3 ) Panel Designer
    Toolbox—yLED C ontrol
    ( 4 ) Properties 〔 属 性 〕 中 设 置 相 关 参 数
    在这里插入图片描述

创建网络节点

  1. 在Can线上右击,创建两个网络节点
    在这里插入图片描述
    在这里插入图片描述
  2. 为两个网络节点指定CAN文件,并更改Title
    在这里插入图片描述

为节点添加代码

  1. 为Switch节点添加代码如下:
on sysvar MyNameSpace::svSwitch
{
  message Msg1 msg;
  msg.sSwitch = @this;
  output(msg);
  write("%d is switch",@this);
}

含义为:

  1. 当系统变量MyNameSpace::svSwitch发生变化时,执行以下代码块。
  2. 声明一个名为Msg1的消息变量,它的数据类型为message。这个消息变量用于存储发送给其他模块的消息。
  3. 将MyNameSpace::svSwitch的值赋给msg的成员变量sSwitch,也就是创建的信号。
  4. 将消息msg发送出去。
  5. 使用write函数打印消息"%d is switch",其中%d将被替换为@this的值。输出结果为"@this is >switch",其中@this表示MyNameSpace::svSwitch的当前值。

在这里插入图片描述
2. 为light节点添加代码

on message Msg1
{
  @MyNameSpace::svLight = this.sSwitch;
  write("svLight is %d ",@MyNameSpace::svLight);
}

含义为:

  • 定义一个on message事件,表示在收到名为Msg1的消息时执行下面的代码。
  • @MyNameSpace::svLight = this.sSwitch;this.sSwitch的值赋给全局变量@MyNameSpace::svLight
  • write("svLight is %d ",@MyNameSpace::svLight);@MyNameSpace::svLight的值打印出来,使用%d占位符表示整数类型的变量。实际打印的内容是 "svLight is "后面跟着@MyNameSpace::svLight的值。

在这里插入图片描述
3. 编辑compile编译写好的代码
在这里插入图片描述
可以看出来整体逻辑为,DB创建message和信号,在这里面板控制的是系统变量,信号接收系统变量,并通过节点传给另外一个节点。

工程运行测试

  1. Home中Simulated Bus选择Simulated模式
    在这里插入图片描述
  2. 点击start进行测试
    在这里插入图片描述
  3. 调出Light和switch面板
    在这里插入图片描述
  4. 仿真测试
    灯亮的状态
    在这里插入图片描述
    灯灭的状态
    在这里插入图片描述
  5. 使用trace查看信息
    在这里插入图片描述

总结

在Canoe当中主要包含数据,网络节点和面板。其中面板用于展示,节点用于逻辑控制,数据包含数据库中的数据和系统中设置的环境变量,适合放在candb中的数据是车辆的通信网络数据,包括CAN、LIN、FlexRay等总线数据。这些数据通常是车辆的传感器数据、控制信号数据等实时产生的数据,可以在Canoe中进行处理、分析和仿真。
而适合放在变量中的数据是Canoe的开发脚本中使用的变量数据,例如用于控制仿真过程的参数、模型中的状态变量、测试用例中的输入和期望输出等。这些数据通常是预先定义的、静态的数据,在仿真过程中根据需要进行读取和修改。

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

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

相关文章

YOLOv5算法改进(12)— 主干网络介绍(EfficientNetv2、Swin Transformer和PP-LCNet)

前言:Hello大家好,我是小哥谈。主干网络通常指的是深度学习中的主干模型,通常由多个卷积层和池化层组成,用于提取输入数据的特征。在训练过程中,主干网络的参数会被不断优化以提高模型的准确性。YOLOv5算法中的主干网络可以有多种替换方案,为了后面讲解的方便,本篇文章就…

Neural Improvement Heuristics for Graph Combinatorial Optimization Problems

Neural Improvement Heuristics for Graph Combinatorial Optimization Problems IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTEMS 2023 摘要 图神经网络(GNN)架构的最新进展和增加的计算能力已经彻底改变了组合优化(CO&#…

Postgresql关于EOH的使用注意

注意通常拿到的指针不是EOH头 EOH是一种扩展数据结构,之前有几篇博客讨论过了,最近在改相关代码加深了一些理解。 EOH目前支持ER_methods、EA_methods两套实现,分别是record类型展开和数组类型展开。 在内存中的样子大概是(EA为…

环境下载地址

1. DOTNET环境下载 适用于 Visual Studio 的 .NET SDK 下载 (microsoft.com)https://dotnet.microsoft.com/zh-cn/download/visual-studio-sdks

springboot 智慧图书管理系统

springboot 智慧图书管理系统 liu1113625581

基于springboot实现校园闲置物品租售平台系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现校园闲置物品租售平台系统演示 摘要 在网络发展的时代,众多的软件被开发出来,给用户带来了很大的选择余地,而且人们越来越追求更个性的需求。在这种时代背景下,校园商家只能以用户为导向,以产品的持…

本周 AI 新闻报道:多个大厂发布了重大更新

🔥 Adobe Max大会上,Adobe发布了多项使用AI的新功能。其中最重要的是全新的Firefly Image 2图像生成模型,可以生成逼真的人像;Illustrator中的文本到向量图功能,允许通过文字提示生成可编辑的矢量图形;Prem…

RFID技术助力汽车座椅生产

RFID技术助力汽车座椅生产 现在车企越来越多,各种汽车零部件的生产线也激增。库存管理、质量管理、人为错误记录数据是很多工厂的痛点。借助RFID技术能很好的解决一些问题,作为RFID技术厂家的我们也一直致力于解决客户的问题。在汽车座椅的生产线中加入…

力扣 -- 1035. 不相交的线

解题步骤&#xff1a; 参考代码&#xff1a; class Solution { public:int maxUncrossedLines(vector<int>& nums1, vector<int>& nums2) {int mnums1.size();int nnums2.size();vector<vector<int>> dp(m1,vector<int>(n1));for(int i…

错误代码 0x80070003

前提&#xff1a; A电脑生成的dll 给 B 电脑用&#xff0c; B调用时出现 错误代码&#xff0c; 关闭后可正常使用 解决办法&#xff1a; A电脑动态链接库 修改配置属性 属性—连接器—调试—生成调试信息—生成经过优化以共享和发布的调试信息 (/DEBUG:FULL) 选择这个即可

mssql还原数据库失败

标题: Microsoft SQL Server Management Studio ------------------------------ 服务器 "192.168.31.132" 的 附加数据库 失败。 (Microsoft.SqlServer.Smo) 有关帮助信息&#xff0c;请单击: https://go.microsoft.com/fwlink?ProdNameMicrosoftSQLServer&…

凉鞋的 Unity 笔记 109. 专题一 小结

109. 专题一 小结 在这一篇&#xff0c;我们来对第一个专题做一个小的总结。 到目前为止&#xff0c;大家应该能够感受到此教程的基调。 内容的难度非常简单&#xff0c;接近于零基础的程度&#xff0c;不过通过这些零基础内容所介绍的通识内容其实是笔者好多年的时间一点点…

打造震撼视觉效果,体验全新After Effects 2024 for Mac/win

想要创作令人惊叹、震撼人心的视觉效果吗&#xff1f;那就来尝试全新的After Effects 2024吧&#xff01;After Effects是业界领先的视觉特效和动画软件&#xff0c;为您提供了无限可能性。无论是电影、广告、视频、网站还是应用程序&#xff0c;After Effects都可以帮助您创建…

统信UOS 1060上通过Fail2Ban来Ban IP

原文链接&#xff1a;统信UOS 1060上通过Fail2Ban来Ban IP hello&#xff0c;大家好啊&#xff0c;今天给大家带来一篇在统信UOS 1060上安装Fail2Ban并且当ip被ban后通过邮件发送通知的文章。Fail2Ban 是一个用于防止暴力攻击的开源软件。它可以扫描日志文件&#xff08;例如&a…

深入探索STARK的安全性和可靠性——STARKs全面安全分析

1. 引言 non-interactive STARKs&#xff0c;起源于Interactive Oracle Proofs (IOPs)&#xff0c;然后通过random oracle模式转换为非交互式。StarkWare团队 ethSTARK Documentation – Version 1.2&#xff08;2023年7月&#xff09;论文做了更新&#xff0c;给出了完整具体…

ps提示由于找不到MSVCP140.dll是怎么回事?MSVCP140.dll修复方法

我们的生活和工作都离不开各种软件工具。其中&#xff0c;Adobe Photoshop作为一款专业的图像处理软件&#xff0c;以其强大的功能和广泛的应用领域&#xff0c;受到了广大用户的喜爱。然而&#xff0c;在使用Photoshop的过程中&#xff0c;我们可能会遇到各种问题&#xff0c;…

硬件【11】超全讲解I2C的上拉电阻

文章目录 1.概述2 I2C的上拉电阻3 上拉电阻最小值计算4 上拉电阻最大值计算5 总结 1.概述 相信很多人都清楚&#xff0c;在I2C总线上需要接上拉电阻&#xff1f;但是您针对对I2C上拉电阻足够了解吗&#xff1f;本文带您详细掌握一下I2C的上拉电阻。目录如下&#xff1a; 上拉…

电压放大器在生物医疗中的应用研究

电压放大器是一种常见的电子电路&#xff0c;在生物医疗领域中也得到了广泛应用。其主要作用是将生物信号&#xff08;如心电图、脑电图等&#xff09;转化为电压信号&#xff0c;并将其放大到需要的水平&#xff0c;以便进行分析和处理。 随着生物医学技术的不断发展&#xff…

ARMv7-A 那些事 - 7.栈回溯浅析

By: Ailson Jack Date: 2023.10.14 个人博客&#xff1a;http://www.only2fire.com/ 本文在我博客的地址是&#xff1a;http://www.only2fire.com/archives/159.html&#xff0c;排版更好&#xff0c;便于学习&#xff0c;也可以去我博客逛逛&#xff0c;兴许有你想要的内容呢。…

C++ STL之容器(使用方法)

目录 1. 容器简介2. String2.1 构造操作2.2 赋值操作2.3 常用操作&#xff08;存取字符串、拼接、 查找、替换、比较、插入、删除&#xff09; 3. Vector3.1 构造操作3.2 赋值操作3.3 常用操作&#xff08;大小、 查找、替换、比较、插入、删除&#xff09; 4. Deque4.1 构造操…