Main Content

解析 Simulink 信号对象的数据属性

图中的 Stateflow® 局部数据和输出数据可以从模型工作区或基础工作区中的 Simulink.Signal 对象显式继承属性。此过程称为信号解析,要求解析的信号与图输出或局部数据具有相同的名称。

有关 Simulink® 信号解析的信息,请参阅符号解析 (Simulink)符号解析过程 (Simulink)

继承的属性

当 Stateflow 局部数据或输出数据解析为 Simulink 信号对象时,它们会继承以下属性:

  • 大小

  • 复/实性

  • 类型

  • 最小值

  • 最大值

  • 初始值

  • 存储类

存储类控制图数据在生成的代码中的外观。请参阅使用 Struct 存储类将参数数据组织为结构体 (Embedded Coder)

启用信号解析

要启用显式信号解析,请执行下列步骤:

  1. 打开“配置参数”对话框,在诊断 > 数据有效性窗格中,将信号解析设置为 None 以外的值。有关其他选项的详细信息,请参阅信号解析 (Simulink)

  2. 在模型工作区、基础工作区或数据字典中,使用您要 Stateflow 数据继承的属性定义一个 Simulink.Signal 对象。有关创建 Simulink 信号的详细信息,请参阅 Simulink.Signal (Simulink)

  3. 添加图输出或局部数据。对您的数据使用与 Simulink.Signal 对象相同的名称。

  4. 启用数据必须解析为信号对象属性,如设置数据属性中所述。选择此属性后,对话框将删除或灰显数据从信号继承的属性。

简单示例

此模型显示图如何将局部数据和输出数据解析为 Simulink.Signal 对象。

在基础工作区中,有三个 Simulink.Signal 对象,每个对象都有一组不同属性。

  • y1 具有以下属性:类型 = double维度 = 1存储类 = Model default

  • y2 具有以下属性:类型 = uint32维度 = [2 2]存储类 = Auto

  • local 具有以下属性:类型 = single维度 = 1存储类 = ExportedGlobal

图包含三个数据对象 - 两个输出和一个局部变量,它们解析为同名信号。

当您构建模型时,每个数据对象都继承同名信号的属性。

生成的代码根据数据从相关联的 Simulink 信号继承的存储类来声明数据。例如,以下头文件将 local 声明为导出的全局变量:

/*
 * Exported States
 *
 * Note: Exported states are block states with an exported global
 * storage class designation.  Code generation will declare the memory for these
 * states and exports their symbols.
 *
 */
extern real32_T local;                  /* '<Root>/Signal Object Chart' */

另请参阅

(Simulink)

相关主题