Main Content

CAN Replay

回放记录的 CAN 报文

  • CAN Replay block

库:
Vehicle Network Toolbox / CAN Communication

描述

CAN Replay 模块将记录的报文从 .mat 文件回放到 CAN 网络或 Simulink®。您需要 CAN Configuration 模块才能回放到网络。

要在 Simulink 模型中回放在 MATLAB® 命令行窗口中记录的报文,请使用 canMessageReplayBlockStruct 将其转换为兼容格式并将结果保存到单独的文件。有关详细信息,请参阅记录和回放 CAN 报文

注意

您需要 Vehicle Network Toolbox™ 和 Simulink 软件的许可证才能使用此模块。

回放时间

回放记录的报文时,Simulink 使用报文上的原始时间戳。回放到网络时,时间戳对应于真实时间;回放到 Simulink 输入端口时,它对应于仿真时间。如果报文中的时间戳均为 0,则仿真开始后将立即回放所有报文,因为仿真时间和真实时间将超过回放报文中的时间戳。

其他支持的功能

CAN Replay 模块支持使用 Simulink Accelerator™ 和快速加速模式。使用此功能,可以加快 Simulink 模型的执行速度。

有关此功能的详细信息,请参阅 Simulink 文档。

CAN Replay 模块支持使用代码生成和 packNGo 函数将所需的源代码和依赖共享库打包。有关详细信息,请参阅代码生成

代码生成

Vehicle Network Toolbox 提供的 Simulink 模块支持您生成代码,使包含这些模块的模型可在加速、快速加速、外部和已部署模式下运行。

使用 Simulink Coder 进行代码生成

您可以将 Vehicle Network Toolbox、Simulink Coder™ 和 Embedded Coder® 软件结合使用,以在您用来实现模型的主机端生成代码。有关代码生成的详细信息,请参阅生成代码编译 (Simulink Coder)

共享库依存关系

这些模块生成的代码可移植性有限。它使用预编译的共享库(如 DLL)来支持特定类型设备的 I/O。使用此模块,您可以使用 Simulink Coder 支持的 packNGo 函数来设置和管理模型的编译信息。packNGo (Simulink Coder) 函数允许您将模型代码和依赖共享库打包到一个 zip 文件中进行部署。您不需要在目标系统上安装 MATLAB,但需要 MATLAB 支持目标系统。

要设置 packNGo,请执行以下代码:

set_param(gcs,'PostCodeGenCommand','packNGo(buildInfo)');

在此示例中,gcs 是您要编译的当前模型。编译模型会创建一个与模型同名的 zip 文件。您可以将此 zip 文件移至另一台机器,并在该机器中编译 zip 文件中的源代码以创建可独立于 MATLAB 和 Simulink 运行的可执行文件。生成的代码使用 C 和 C++ 编译器进行编译。有关详细信息,请参阅代码编译自定义 (Simulink Coder)

注意

在 Linux® 平台上,您需要将用于解压缩库的文件夹添加到环境变量 LD_LIBRARY_PATH

端口

输出

全部展开

此输出端口包含在该特定时间步记录的打包的 CAN 报文,以 CAN_MESSAGECAN_MESSAGE_BUS 类型的信号总线形式输出。

数据类型: CAN_MESSAGE | CAN_MESSAGE_BUS

当模块接收到新报文时,此端口向函数调用子系统提供触发。您可以将其连接到 Function-Call Subsystem (Simulink) 以解包和处理报文。

数据类型: function-call event

参数

全部展开

提示

在配置 CAN Receive 模块参数之前,请配置 CAN Configuration 模块。

指定包含可以回放的已记录 CAN 报文的文件的名称和路径。您可以点击浏览以浏览到文件位置并选择文件。

指定 MAT 文件中保存 CAN 报文信息的变量。

指定要在模型中回放报文的次数。您可以指定任何正整数,包括 Inf。指定 Inf 会不断回放报文,直到仿真停止。

指定模型是将报文回放到 CAN 网络还是输出端口。当回放到 CAN 网络时,您还必须选择一个设备

选择 CAN 网络上作为报文回放目标的设备。如果为将报文回放给参数选择了 Output port,则此字段不可用。

指定仿真期间模块的采样时间。该值定义在仿真期间 CAN Replay 模块运行的频率。如果模块位于触发子系统内或要继承采样时间,则可以将 –1 指定为采样时间。您还可以为采样时间指定一个 MATLAB 变量。默认值为 0.01 仿真秒。有关详细信息,请参阅硬件接口模型中的计时

选择此选项可使模块将 CAN 报文作为 Simulink 总线信号输出。有关 Simulink 总线对象的详细信息,请参阅合成接口 (Simulink)

扩展功能

版本历史记录

在 R2011b 中推出