南头专业英文网站建设公司,成都网站建设 四川冠辰,wordpress nextapp,镇江百姓网CANoe创建仿真工程 写在前面仿真工程的创建创建工程添加CAN数据库添加系统变量创建面板创建网络节点为节点添加代码工程运行测试总结 写在前面
Canoe的安装不是特别方便#xff0c;我是参加了松勤的培训课程#xff0c;不仅需要安装软件还需要安装驱动#xff0c;刚刚学习的… CANoe创建仿真工程 写在前面仿真工程的创建创建工程添加CAN数据库添加系统变量创建面板创建网络节点为节点添加代码工程运行测试总结 写在前面
Canoe的安装不是特别方便我是参加了松勤的培训课程不仅需要安装软件还需要安装驱动刚刚学习的小伙伴可以去某宝看下是否有资源。
仿真工程的创建
创建工程
在某盘下创建一个文件夹命名为testpanel在文件夹testpanel下面分别创建CANdb、Panels和Nodes CANdb文件夹存储所有的CAN数据库文件它包含了所有的CAN网络节点和信号定义。这个文件夹的意义是提供一个集中存储和管理所有CAN相关的信息的地方便于查找和修改。Nodes文件夹存储了CAN网络节点的配置文件。这些配置文件描述了CAN网络中的所有节点包括节点的名称、地址、通信参数等。这个文件夹的意义是用于管理和配置CAN网络节点以便正确地进行通信。Panels文件夹存储了用户界面面板的定义文件。这些文件描述了CANoe工程中使用的面板包括面板的布局、控件和功能等。这个文件夹的意义是用于定义和管理用户界面以方便用户进行交互和监控CAN网络的状态。 打开CANoe单击File-New,双击选择模板CAN 500KBaud 1ch,命名为testpanel.cfg,并保存到文件夹testpanel下 CAN 500KBaud 1ch的含义 CAN表示控制器区域网络Controller Area Network是一种常用于车辆和工业应用中的通信协议。 500k Baud表示通信的速率为500,000位每秒即通信传输速度为500千波特。 1ch表示仅使用一个通道进行通信即只使用一个CAN通道进行数据传输 添加CAN数据库
添加CAN数据库 单 击 Tools 功 能 区 的 CANdb Editor 〔CAN 数 据 库 编 辑 器〕在 CANdb Editor 界 面 中 单 击 File—Create database 并 选 择 CANoe Template.dbc 作 为 模 板保 存 名 字 为 testpanel.dbc 到 工 程 testpanel 下 面 的 文 件 夹 CANdb 中 数据库中添加报文和信号 2.1 在 Signals 下 面 创 建 一 个 信 号 Switch信息如下 字段的含义 Length: 信号的位数长度表示信号所占的二进制位数。Byte Order: 表示信号在字节流中的存储顺序。有两种选择 Intel低字节序Little Endian低位字节存储在低地址处。Motorola高字节序Big Endian高位字节存储在低地址处。 Value Type: 表示信号的数据类型。有几种选择 Signed有符号整数。Unsigned无符号整数。IEEE Float单精度浮点数32位。IEEE Double双精度浮点数64位。 Unit: 表示信号的单位用于描述信号所代表的物理量的量纲。Init Value: 表示信号的初始值默认值。Factor: 用于将原始的物理值转换为相应的信号值。可以是缩放因子、增益、系数等用于线性转换。Offset: 用于将原始的物理值转换为相应的信号值。可以是偏移量。Minimum: 信号的最小物理值。Maximum: 信号的最大物理值。Value Table: 为信号定义值表用于将数值映射为具体的含义例如将某个特定值映射为状态或事件。 2.2 在 Messages 下 面 创 建 一 条 报 文 Msg1 字段的含义 Type类型Type字段定义了CAN消息的类型。它有两个选项 CAN Standard标准CAN表示使用11位的标准CAN标识符。标准CAN协议允许2^112048种不同的消息标识符。CAN Extended扩展CAN表示使用29位的扩展CAN标识符。扩展CAN协议允许2^29536,870,912种不同的消息标识符。 ID标识符ID字段定义了CAN消息的唯一标识符。对于标准CAN则为11位对于扩展CAN则为29位。CAN消息的ID用于区分不同的消息。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中系统变量的作用是用于表示和控制系统的状态以及在仿真过程中进行配置和操作。系统变量通常是预定义的可以通过设置和修改来改变系统的行为。以下是系统变量的一些常见作用 时间控制系统变量可以用于表示仿真时间的流逝速度和步长以及控制仿真的开始和停止时间。状态监测系统变量可以用于监测和记录系统的各种状态和变量的值如传感器输出、控制信号、系统内部状态等。系统配置系统变量可以用于配置系统的参数和设定如模型、控制策略、仿真环境等。事件触发系统变量可以用于触发和控制系统中的事件如传感器读取、控制器更新、动作执行等。条件判断系统变量可以用于进行条件判断和逻辑控制以实现不同的仿真场景和行为。 单 击 Environment—system Variables(系 统 变 量) 鼠 标 右 键 new 设置两个系统变量如下 创建面板 创建开关面板 1 单 击 ToolsPanel Designer( 面 板 设 计 器 〕 2 新 建 一 个 panel, 命 名 为 SWITCH, 并 保 存 在 文 件 夹 panels 下 3 Panel DesignerToolbox—switch/Indicator 4 Properties 〔 属 性 〕 中 设 置 相 关 参 数 创建指示灯面板 1 单 击 ToolsPanel Designer( 面 板 设 计 器 〕 2 新 建 一 个 panel, 命 名 为 LIGHT, 并 保 存 在 文 件 夹 panels 下 3 Panel DesignerToolbox—yLED C ontrol 4 Properties 〔 属 性 〕 中 设 置 相 关 参 数
创建网络节点
在Can线上右击创建两个网络节点 为两个网络节点指定CAN文件并更改Title
为节点添加代码
为Switch节点添加代码如下
on sysvar MyNameSpace::svSwitch
{message Msg1 msg;msg.sSwitch this;output(msg);write(%d is switch,this);
}含义为 当系统变量MyNameSpace::svSwitch发生变化时执行以下代码块。声明一个名为Msg1的消息变量它的数据类型为message。这个消息变量用于存储发送给其他模块的消息。将MyNameSpace::svSwitch的值赋给msg的成员变量sSwitch也就是创建的信号。将消息msg发送出去。使用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和信号在这里面板控制的是系统变量信号接收系统变量并通过节点传给另外一个节点。
工程运行测试
Home中Simulated Bus选择Simulated模式 点击start进行测试 调出Light和switch面板 仿真测试 灯亮的状态 灯灭的状态 使用trace查看信息
总结
在Canoe当中主要包含数据网络节点和面板。其中面板用于展示节点用于逻辑控制数据包含数据库中的数据和系统中设置的环境变量适合放在candb中的数据是车辆的通信网络数据包括CAN、LIN、FlexRay等总线数据。这些数据通常是车辆的传感器数据、控制信号数据等实时产生的数据可以在Canoe中进行处理、分析和仿真。 而适合放在变量中的数据是Canoe的开发脚本中使用的变量数据例如用于控制仿真过程的参数、模型中的状态变量、测试用例中的输入和期望输出等。这些数据通常是预先定义的、静态的数据在仿真过程中根据需要进行读取和修改。