其他分享
首页 > 其他分享> > 使用CANoe的IL层构建总线仿真系统

使用CANoe的IL层构建总线仿真系统

作者:互联网

以下内容为自己学习笔记,若看不懂,可以去b站看视频,链接如下。
https://www.bilibili.com/video/BV1n7411n7Tm?t=2188
其中包括CANdb++创建DBC数据库文件,PANEL设计控制面板,一些简单的CAPL语言介绍。
使用软件CANoe10.0,其他版本可能会有点不一样,仅供参考。

CANdb++创建DBC数据库文件

1、在Tools下打开CANdb++界面。
在这里插入图片描述
2、创建一个数据库文件

在这里插入图片描述
创建好后,会弹出下图,选择Vector_IL_……选项。,根据提示保存(我这里是保存到工程的文件夹下)。
在这里插入图片描述
3、创建message(个人理解是报文帧)
在这里插入图片描述
默认会弹出以下界面,其中Name、ID是必须设置的。除此之外还可以设置默认循发送的周期,见第二张图。如果后期想要修改发送周期,可以通过canoe里面设置,详细见后面。
在这里插入图片描述
在这里插入图片描述
4、创建信号–>绑定到报文帧–>分配到对应节点

创建一个新的信号(方法与上面创建messages移植),会弹出以下界面。可以根据需要设置信号名称、数据长度、数据类型、最大、最小值等。
在这里插入图片描述
变量类型自己不仔细踩的小坑:需要变量的范围是0~4000,12位就够了,但是定义时未注意,变量类型选择默认的有符号,当我调整变量时,超过2048后(panel中设置变量范围是0 ~ 4000),结果就显示跳到0了,后来才发现是数据类型不对。

信号创建好后,直接在左边拖拽信号到需要的messages中即可。
在这里插入图片描述

messages设置好后,将对应的报文帧,一样的拖拽到对应的网络节点中(完了后,没有展开是看不到任何变换的,点击“+”展开后,就可以检查是否成功)。

到这里,数据的创建已经完成,下面是添加数据库文件(创建canoe工程,自行百度了解)。这里我们选择第二个添加方式(他可以直接将对应的网络节点一起添加)。
在这里插入图片描述
下图是添加完成的效果图。
在这里插入图片描述

PANEL设计控制面板

这里就简单的介绍Analog Gauge与Track Bar控件。
在这里插入图片描述

CAPL语言

1、本程序使用到的CAPL语言

在这里插入图片描述

2、学习CAPL笔记

①常用的事件类型
在这里插入图片描述
②定时器
Timer(s):s级别定时器
Mstimer(ms):ms级别定时器
备注:该定时器与单片机定时器不同,定时器时间到后,定时器就关闭了,若要一直定时,需要在定时触发中重新初始化。针对ms级别定时器,有一个
setTimer(myTimer1,500);//设置定时器myTimer1为一个500ms定时器;
setTimerCyclic(myTimer2,1);//设置定时器myTimer2为一个1s为周期的循环定时器;
在这里插入图片描述
Eg:常见循环定时的方法
在这里插入图片描述
③消息触发
总线上接收到该ID号后,默认触发该事件,这里用到了“this”,具体使用,看下面解释。(有些事件不需要this,看具体情况)
在这里插入图片描述
消息过滤
在这里插入图片描述
④发送报文
过程
在这里插入图片描述
具体代码
在这里插入图片描述
⑤信号/变量触发事件
在这里插入图片描述
⑥对变量赋值/读取
这里write函数与printf函数使用未看出区别。
在这里插入图片描述
备注:CAPL中的定义局部变量与C语言不同,具体为c语言定义变量前加上了static。

效果

实现用滑竿控制一个变量的大小。
具体演示效果去看上面网站的视频。

标签:定时器,变量,CANoe,创建,报文,总线,CAPL,IL,设置
来源: https://blog.csdn.net/weixin_42438100/article/details/115344950