信号存储在Matlab CAN数据库中

时间:2016-06-02 12:35:53

标签: matlab can-bus

我是Matlab的新人之前从未使用它,试图在Matlab中编写一个程序来绘制信号。 我有" CAN.dbc"作为CAN消息结构的文件,其中包含消息ID和消息中信号的属性

使用canDatabase()我可以加载想要的消息的dbc 并获得有关信号的信息

messageInfo(db,' EngineMsg') ans =

    Name: 'EngineMsg'
 Comment: ''
      ID: 100
Extended: 0
  Length: 8
 Signals: {2x1 cell} 

我的消息以正确的顺序存储在txt文件中

" timestamp 2871634 appId 0x64 length 12 data 0x00 0xe7 0x0b 0x9c 0x40 0x00 0x00 0x00 0x46 0x00 0x25 0x1f"

是否可以将文本文件中的所有消息加载/存储到CAN数据库中,以便以后绘制它们?

最好的问候。

1 个答案:

答案 0 :(得分:0)

将CANoe中的CAN跟踪(ASCII或BLF文件)从日志记录块导出到.mat文件。然后在工作区this link之后绘制与MATLAB中loading中语法对应的.mat文件。在命令窗口中键入命令图(YOUR_SIGNAL)或将其写入您运行的MATLAB脚本(.m文件)中。在绘制之前验证您要绘制的信号是.mat文件中的(N x 2) - 矩阵,其中N是您最初跟踪的时间戳数。当它们在CANoe中解释您的CAN跟踪消息时,您不需要在MATLAB中导入或引用您的DBC(每个CAN通道至少有一个DBC,其中包含您希望稍后在MATLAB中绘制的信号的消息)。 DBC只是CAN信号的数据库,而不是跟踪。您不能将时间为x轴的CAN信号绘制为没有跟踪作为mat文件,因为DBC不包含信号过程。换句话说,DBC不包含实时标记的信号值,例如在汽车中进行跟踪或运行模拟时获得的信号值。