- CANoe开发从入门到精通
- 张可晨 杨金升 唐新宇
- 3492字
- 2021-03-30 23:28:52
4.4 测量数据记录设置及处理
为了便于对测量的结果分析,CANoe允许用户将测量过程中的报文、信号和变量等数据记录到指定的日志文件中。本节将详细介绍如何设置数据保存,以及如何处理这些数据。
4.4.1 Logging文件设置
新建仿真工程之后,CANoe默认提供一路未启用的Logging Block。在Measurement Setup窗口中,右击Logging Block,选择Logging File Configuration命令可以打开Logging File Configuration对话框,如图4.15所示。
图4.15 Logging配置界面
由于Logging文件功能使用比较频繁,下面介绍如何设定这些选项。
(1)Destination folder:用于选择Logging文件的保存位置。
(2)Destination file:指定要保存的Logging文件的文件名。
(3)Field Codes:帮助用户按需求生成文件名。
(4)File format:指定Logging File的格式,具体参看4.4.2节。
(5)Advanced Settings
① Warn before overwriting logging file:选择是否在新的测量Logging文件与原有文件重名时弹出覆盖已有文件警告窗口。
② Show error message on data loss:选择是否在数据丢失时提醒用户。
③ View logging file(s) after measurement stop:选择是否在测量结束后自动打开已经记录的logging文件。
④ Global format settings:单击Settings按钮进入Option对话框。
(6)Logging Filter
① Log bus events:选择是否记录总线事件(如报文、数据帧等)。
② Log system and environment variables:选择是否记录环境变量或系统变量事件。
③ Log trigger events:选择是否记录Start/Stop触发事件。
④ Log test events:选择是否记录Test Modules和Test Units的信息。
⑤ Log internal events:选择是否记录内部程序事件。
⑥ Log statistic events:选择是否记录数据统计相关的系统变量的信息。
⑦ Log CAPL events:选择是否记录CAPL函数writeToLog和CAPL程序中的说明。
⑧ Log diagnostic events:选择是否记录诊断相关信息。
4.4.2 Logging文件格式
Logging文件格式包括ASC格式、BLF格式、MF4格式、MDF格式。
(1)ASC格式:ASC(ASCII)格式为可读的文本文件,该格式文件可以与外部程序进行数据交换,可读性强。
(2)BLF格式:BLF(Binary Logging Format)格式支持所有的总线信息/协议和环境变量。该格式保存文件较小,可以存储数据量较大的总线信息。
(3)MF4格式:MF4(Measurement Data Format)格式支持所有的总线信息/协议和环境变量。CAN、LIN和FlexRay总线信息以ASAM标准存储,其他总线系统和协议以Vector-specific标准存储。
(4)MDF格式:MDF(Measurement Data Format)格式支持环境变量、统计信息、CAN信号、LIN信号、FlexRay信号、GPS信号、J1939信号和J1587/J1708信号,但不支持MOST信号。需要注意的是,MDF文件格式分为基于报文的和基于信号的,基于报文的格式只记录报文信息,基于信号的格式只记录信号信息。
4.4.3 Filter设置
Filter(过滤器)主要在Measurement Setup窗口中使用,需要在热点处添加。Filter的主要功能是信息过滤,用户可以通过Filter分离出相关的信息,过滤掉无关的信息。Filter可以在Measurement Setup窗口的所有模块上使用,功能效果类似。本书以Logging模块为例介绍Filter设置,在热点处右击鼠标,如图4.16所示。
图4.16 添加Filter
在弹出的快捷菜单中,有三种Filter选项,分别是Channel Filter(通道过滤器)、Event Filter(事件过滤器)和Variables Filter(变量过滤器)。
(1)Channel Filter:是一个包含许多红线绿线的方块,如图4.17所示,若当前工程只记录CAN总线和LIN总线信息,过滤之后其他总线信息将不会被显示或记录。
图4.17 Channel Filter模块设置
这些红线绿线代表了当前总线系统中每个通道的状态。绿色代表允许通过的通道,红色短线代表被阻止的通道。用户可以非常清晰地通过线的颜色判断当前的设置。在Channel Filter模块中,CANoe只显示了5个通道,当用户的仿真工程所用通道数量大于5时,需要在设置窗口中查看。
(2)Variables Filter:用于过滤系统变量或环境变量,可以设置为通过或禁止。
(3)Event Filter:允许选择的事件过滤器种类取决于当前CANoe工程包含的总线种类,如当前工程包含CAN总线和LIN总线,可以插入的事件也只有CAN和LIN。本节只介绍CAN Filter,其他过滤器设置与之类似,读者可以自行尝试。CAN Filter可以用来过滤CAN总线报文,插入CFB(CAN Filter Block, CAN过滤器模块),如图4.18所示。
图4.18 Event Filter设置模块
双击CFB进入CAN Filter设置界面,如图4.19所示。在此界面下,用户可以设置Message Filter(报文过滤器)、Node Filter(节点过滤器)和Event Filter(事件过滤器)。
图4.19 CAN Filter设置界面
4.4.4 Trigger设置
用户可以通过Trigger(触发)模块配置测量数据的记录条件。可以通过在热点处插入一个Trigger模块,或直接双击Logging模块打开Trigger配置,如图4.20所示。这里以Logging模块的Trigger配置为例进行介绍。需要注意的是,手动触发只适用于Logging模块。
图4.20 Trigger触发设置
1.Trigger Mode(触发模式)
(1)Single trigger:在Single trigger模式下,所有在触发条件时间段内的数据都将被记录下来。用户可以在Time区域内设置Logging的条件,如开始触发(Toggle on)、结束触发(Toggle off)和触发次数。
(2)Toggle trigger:在Toggle trigger模式下,用户可以定义开始触发和结束触发的方式。如果用户选中Use combined toggle mode,那么开始和结束触发的条件可以保持一致。用户可以在Time区域内设置Logging的条件,如开始触发、结束触发和触发次数。
(3)Entire Measurement:在Entire Measurement模式下,所有测量数据将会被记录,因此用户无法选择触发条件和时间。
2.Trigger Condition(触发条件)
定义了基本的Logging条件,例如,起始点、结束点、Logging时间段。包括以下三种触发模式。
(1)Start:选中Start触发条件,数据将会从测量开始记录,这种情况下Pre-trigger时间将变得没有意义并设置为0,Post-trigger时间指定了记录的时间长度。若选择了Infinite post-trigger time,所有的数据将会从测量开始记录到测量结束,这等效于Entire Measurement模式。
(2)Stop:选中Stop触发条件,触发会在测量结束时开始。Pre-trigger时间定义了Logging的时间长度。在这种情况下,Post-trigger时间将变得没有意义并设置为0。
(3)CAPL:该触发条件将由CAPL程序触发,Pre-trigger和Post-trigger定义了Logging的时间长度。
(4)User defined:该触发条件将由用户自定义,包括总线报文或Attribute、统计时间、环境变量的值等。用户可以通过Define按钮进行自定义。
3.Time(时间)
在该窗口中,用户可以定义Pre-trigger和Post-trigger的值,这两个值确定了Logging的时间长度。选中Infinite post-trigger time选项时,终止事件为无穷大,这时Post-trigger的值将会变成无效。
4.Advanced Options(高级选项)
(1)Stop after n Trigger Blocks:指定在n个触发块后停止测量。
(2)Notifications in Write Window:选中此项时,在Write窗口会有与Trigger相关的通知。
5.Manual trigger(手动触发)
(1)Start/stop key:设置一个按键控制Logging的开始和结束。
(2)Apply pre- and post-trigger settings:选中此项后,Pre-trigger和Post-trigger的设置才有效。
4.4.5 Trace导入和导出
在总线的分析和验证过程中,经常需要对Trace文件进行导入和导出操作。用户通过查看Trace中的报文、信号、变量以及时间戳等信息,分析其中的逻辑关系或故障原因。
1.Trace导入
用户可以将测量记录的文件导入Trace窗口中进行分析,此时如果加载了database文件,所记录的信息可以被解析出来,方便用户分析。在Trace窗口中的空白处,右击并选择Import/Export→Import命令,如图4.21所示。
图4.21 导入Trace
在弹出的窗口中将文件类型选为BLF Frame Logging Files(*.blf),并选择Easy仿真工程的文件夹Logging下的Logging.blf文件。为了显示完整的数据,需要单击工具栏的Toggle display mode切换成滚动模式,如图4.22所示。
图4.22 查看已导入的Trace
导入完成后,在Trace窗口中可以看到,Logging.blf文件中记录的数据,由于database文件的存在,所有记录的数据会被逐条解析出来。需要说明的是,Demo版本的CANoe只允许导入1000条报文。
2.Trace导出
前面讲解了将已保存的log文件导入Trace窗口中,同样地,也可以在Trace窗口中导出用户想要的全部或部分数据信息。
用户可以在Trace窗口中选中需要导出的内容,右击并选择Import/Export→Export命令,直接导出所有数据。也可以选择Import/Export→Export Selection命令,只导出选中的部分,如图4.23所示。
图4.23 导出选中的Trace
在弹出的Trace Export窗口中,可以选择保存该Trace的位置、名称及格式,如图4.24所示。
图4.24 Trace导出设置界面
选择保存位置和文件名时,也可以选择保存的文件格式,如图4.25所示。
图4.25 导出Logging文件格式
此处为了方便介绍下文内容,选择*.asc格式,单击Save按钮可以将Trace保存。
4.4.6 Trace查看和编辑
4.4.5节中保存的Trace文件采用ASC格式,可以直接用记事本打开,如图4.26所示。
图4.26 Notepad中查看ASC格式Logging
该文件不仅可以用记事本打开,使用Excel也可以对该文件进行查看和编辑,如图4.27所示。
图4.27 在Excel中编辑Trace
在Excel中,用户可以对关注的报文、信号及事件进行加工(如添加、删除或修改),对于通过回放Trace分析问题有很大的帮助。例如,可以将此Trace文件有效报文的前20行删除,并按4.4.5节的方法重新导入CANoe Trace窗口,如图4.28所示。
图4.28 导入编辑过的Logging文件
可以看到,Trace文件从0.700134s开始,删除的前20行不会在Trace窗口中出现。
4.4.7 Trace回放
Replay Block为用户提供了一种回放已保存的测量数据文件的方法。用户可以将已保存的数据流加入Replay Block里面进行回放。目前,CANoe支持回放的总线数据有CAN、LIN、MOST和FlexRay等。CANoe同时也支持用户编辑的ASC格式的Trace文件。在回放Trace之前,用户需要首先在Simulation Setup窗口中添加Replay Block,与添加网络节点类似,只要选择Insert Replay Block CAN即可,如图4.29所示。
图4.29 添加Replay模块
添加完毕,可以看到一个Replay模块,如图4.30所示。
图4.30 Replay模块添加完毕
双击Replay模块可以进入Replay Configuration界面,Source file可以选择4.4.5节中导出的Selection_in_Trace.asc文件,如图4.31所示。
图4.31 Replay Configuration界面
在回放之前,需要将某些仿真节点禁掉,因为录制好的文件中已经包含这些节点发送的数据,若不禁掉会造成网络上数据的冲突。分别选中Engine和Light节点并按空格键,可以将这两个节点禁掉,如图4.32所示。
图4.32 回放时禁止掉其他节点模块
运行仿真工程,可以看到Replay Block在测量开始后开始回放载入的Logging文件,在Trace记录中可以看到以前执行的操作被依次回放。用户可以通过、、三个按钮手动控制回放的开始、暂停和结束。