CANoe中的离线回放+Trace回放

前言:首先介绍两种不同回放方式的不同使用场景。首先需要明确的是这两种方式都是利用已经存在的数据文件(blf,asc,vsb等常见数据帧的格式)。从新播放一遍的手段。

但是二者的使用场景却非常不同,同时他们实现的方法也是不同的。

(1)首先来看Trace回放

 1.1Trace回放前提条件

trace回放,需要在home界面,将整体状态设置为online(在线转态),对real bus或者simulation没有要求。

1.2 trace回放的设置

trace回放,需要在simulation中添加一个ReplayBlock模块。

如上图所示,选择图标右单击,出现选择diagram,选择configuration,如下图

1.2.1 先看General设置项

(1)General-->General 下有两个设置项 ReplayBlockName,就是反馈模块的名称,没啥好说的,唯一注意的点是,因为CANoe目前对简体中文支持度比较差,尽量使用英文字符来命名。

(2)General-->SourceFlie ,就是选择需要Trace回放的源文件,这里必须是设置好的。这个也比较简单。唯一需要注意的是Edit按键,它会将导入文件以二进制文本的形式打开。对常见的BLF,VSB等文件是没有作用的。它只支持asc格式的导入文件起作用。

一个比较冷门的注意点:如果我们导入的是mdf类型的文件,那么如果该源文件录制时存在报文间隔>240s的帧间隔,那么Trace回放时,将无法正确按照源文件的时间戳回放。基于此,我们尽量避免录制时,使用MDF格式的文件。如果必须要用,建议先将MDF格式转换为其他格式。

1.2.2 outputModes和StartTimingCondition

outputModes和StartTimingCondition这两部分相互关联,相互影响。

(1)OutputModes是配置报文输出方式,有以下几种方式

(1.1)standard标准模式,此模式下,trace报文按照录制时的顺序和节奏输出

(1.2)step模式下,此模式下,重播在启动时暂停。
它在replayResume()CAPL调用或Pause/Resume键上输出一条消息,然后再次进入挂起状态。也就是说,此模式下,除了使用replayResume函数外,还可以通过按键控制使得回放按帧输出(实测发现,每按下一次自定义的pause按键,报文输出一帧)。此模式下我们可以非常缓慢的去观察报文。

(1.3)animate with 模式下,报文原有的时间戳将不能再使用,而是按照设置好的周期依次往外发送。比如我们想更快或以更慢的速速来,回放报文。

(1.4)Repetitive output sending Mode ,此模式就是循环的回放。此模式下,在step模式下不可用

(2)StartTiming Condition

(2.1)immediately立即开始,在我们打开主界面的start,也就是这个图标。后就开始回放数据。

(2.2)with the first event time 根据第一次事件时间,暂时不知道是什么意思。

(2.3)After Time out of

如上图,这个就是启动工程后,延时xxxms后,开始数据回放。这个xxx就是我们输入的值。在模拟仿真时,系统上电初始化,就可以这样来模拟。

(2.4)这几个选项 ,第一个strat replay on measurement start勾选后,就是

在点击测量开始后,开始trace回放

1.2.2 channelMaping

如上图,此选项主要是配置通道映射的关系,不过可能有部分同学感到不解。这个ReplayBlock就是按照总线(严格来说是逻辑总线)放置的,相对应的(映射)物理总线已经配置好。

如:在工程中添加一路Steer CAN.将其余CANoe上的物理通道can1映射。此时在SteerCan的simulation中添加一个ReplayBlock。所有信息不是都应该发送到can1通道上吗?

这里非常有必要说明:目前已知的两种模块 IG和 ReplayBlock这两种。虽然是添加到逻辑总线上。但是它们却可以对其他总线上产生影响。准确来说,是可以向其他总线上发送数据。

可以看到通道的映射是基于物理通道的,分为source和Target通道。也就是说我们可以将回放文件can1通道上的数据,回放到can2,can3上去。其余不使用的通道,我们一律使用ignore。

1.2.3 CANoe Option

此选项三个勾选项是选择把那些数据发送到总线上

*1:Tx message是把源文件中基于CANoe为主体的发送信息接收文件,这样描述其实并不是很准确,应该说基于报文信息收集方角度来说,属于发送方。此选项勾选后,TxMessage将会被再次发送到对应的总线上。

*2:RxMessage同上,

*3:Do Not SendMeaageViaCANSimulation。在模拟总线上禁止发送数据。

1.2.4 总结说明和知识扩展

必须要说明的是,在实际工作中,有很多工程师将ReplayBlock当做一种报文回放功能使用。其实这是一种错误的用法。

如果只想实现报文回放,有两种方式

1:offline模式下,在Measurement配置窗口,使用数据回放功能。

2:在trace窗口,使用import命令,也可直接导入数据文件,并显示在Trace窗口显示。如果文本很大,需要注意可能显示的数据会产生溢出和被覆盖。

比较 1和2两种方式,建议在文件比较小的时候,直接在trace窗口添加。文件较大时使用offline模式下的数据回放。方式1可以进行筛选观察总线负载率,有无错误帧等功能。复杂分析时应该用到方式1.

知识扩展:ReplayBlock是可以基于online模式,进行全仿真或半仿真测试的。可以对总线上其他的实体节点或虚拟节点产生影响和相互交互。

(2)看看offline模式下的数据回放

前提:在home界面将模式打到offline

或在Measurement界面上,将开关打到Offline模式,然后鼠标移动到步骤2处,右单击一下。出现3菜单。有三个选项

*1:Offline FileList

*2:offline Mode Configuration (离线模式配置)

*3:Simulink AnalysisModel

首先看*1:Offline FileList,单击一下就出现以下画面。

画红线的部分,就是添加源文件的按键。需要注意的是Offline模式下的数据回放,是可以同时添加

多个源文件,同时源文件前可以勾选,被勾选的文件会自动跳转到比较靠前的位置。

最重要的是我们要选择好配置点击上图中的3位置,得到如下界面。

2.1.1 离线数据回放的配置

可以看到配置总的任务栏

分为三个部分

(1)TimeSection(时序选择)

这部分配置好很重要,尤其是之前提到过,Offline模式下是可以添加多个文件的,那么该如何处理多源文件中回放到同一个trace窗口下,就显得非常重要了。必须是避免冲突。

时间配置上也提供了我们几种选择。1)According to Time Stamp Without reference to data/time。(根据时间戳(但是不包含具体到年月时分秒的时间))这句话该怎么理解?

我们知道,在Trace窗口配置时,我们可以设置基于data(具体到年月时分秒的时间),如下图

将d:hh:mm:ss天/时/分/秒

第二个设置项:是设置回放的时间范围。配置项也提供了四个选择

*1)Use entire range from all logging files(使用所有文件的全部时间),此选项下不能定制和选择时间范围

*2)use interval specified in seconds(以秒为单位指定的使用间隔)

use interval specified in day,hours,minutes and seconds(以日/时/分/秒、为单位指定的使用间隔)

*3)use interval specified by date and time

其中2和3都是需要源文件中有day,hours,minutes and seconds这种时间格式的。

(2)channelMaping(通道映射)

如下图,依次添加通道映射即可,很好理解

需要注意的一点就是,此处的映射是一一对应的,不能出现一映射多的情况。

(3)Breaking point(断点)

在脱机模式下,您可以将数据源配置为在出现特定消息或信号值时停止脱机重播。这就是所谓的全局断点。

如上图所示:提供了两种打断点的方式,一种是按照时间戳,一种是按照特定的条件(如收到特定ID的信号,收到特定的信号=特定的值)

第二种方式点击下图中的:

点击Newcondition,下图以两个信号是否等于特定值,且相互与的关系。

(3)trace回放和离线回放中的过滤filter设置

trace回放中的过滤器添加步骤

**1) 鼠标移动到simulation界面的总线上,鼠标右单击,出现InsertFilter

**2)添加之后如图所示:

而数据回放时,能添加过滤器更多了

通过在MeasureSetup界面,鼠标右单击,热点可在弹出diagram中添加

1:PE  PassFliter

2:SE:StopFliter

3:ChannelFlier

4:CFB

具体功能后面有时间详细说明

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值