Main Content

加载 .dbc 文件和创建报文

Vector CAN 数据库支持

Vehicle Network Toolbox™ 允许您使用 Vector CAN 数据库。数据库 .dbc 文件包含 CAN 报文和信号的定义。使用数据库文件中定义的信息,您可以查找报文和信号信息,并构建报文。您还可以使用工程单位来表示报文和信号信息,这样您就不需要处理原始数据字节。

加载 CAN 数据库

要使用 CAN 数据库文件,请将数据库加载到 MATLAB® 会话中。在 MATLAB 命令提示符下,键入:

db = canDatabase('filename.dbc')

此处 db 是您为数据库句柄选择的变量,filename.dbc 是 CAN 数据库的实际文件名。如果您的 CAN 数据库不在当前工作目录中,请键入数据库的路径:

db = canDatabase('path\filename.dbc')

提示

包含非字母数字字符(如等号、& 符号等)的 CAN 数据库文件名与 Vehicle Network Toolbox 不兼容。您可以在数据库名称中使用句点。在使用任何 CAN 数据库文件之前,请使用非字母数字字符对其重命名。

此命令返回一个数据库对象,您可以使用该对象和存储在数据库中的信息来创建和解释 CAN 报文。有关详细信息,请参阅 canDatabase 函数。

创建 CAN 报文

以下示例说明如何使用数据库创建报文。此数据库包含一条名为 EngineMsg 的报文。要使用此示例进行尝试,请使用您自己的数据库中的定义创建报文和信号。

  1. 创建 CAN 数据库对象。

    d = canDatabase("C:\myVNTData\demoVNT_CANdbFiles.dbc");
  2. 使用数据库中的报文名称创建一个 CAN 报文。

    message = canMessage(d,'EngineMsg');

访问构造的 CAN 报文中的信号

您可以访问为您在示例数据库中创建的报文 (message) 定义的两个信号。您还可以更改某些信号的值。

  1. 要显示报文中的信号,请键入:

    sig = message.Signals
    sig = 
    
      struct with fields:
    
        VehicleSpeed: 0
           EngineRPM: 250
  2. 更改 EngineRPM 信号的值:

    message.Signals.EngineRPM = 300;
  3. 重新分配信号并再次显示它们以查看更改。

    sig = message.Signals
    sig = 
    
      struct with fields:
    
        VehicleSpeed: 0
           EngineRPM: 300

向 CAN 通道添加数据库

要向 CAN 通道添加数据库,请设置通道的 Database 属性。例如:

canch = canChannel("MathWorks","Virtual 1",1);
d = canDatabase("C:\myVNTData\demoVNT_CANdbFiles.dbc");
canch.Database = d;
canch.Database.Name
ans =
    'demoVNT_CANdbFiles'

更新数据库信息

当您对数据库文件进行更改时,请:

  1. 使用 canDatabase 函数将数据库文件重新加载到 MATLAB 会话中。

  2. 使用 attachDatabase 函数将数据库重新连接到报文。

另请参阅

函数

属性

相关示例

详细信息