解析 Simulink 信号对象的数据属性
此示例说明 Stateflow® 图中的局部数据和输出数据如何从模型工作区或基础工作区中的 Simulink.Signal 对象显式继承属性。此过程称为信号解析,要求解析的信号与图输出或局部数据具有相同的名称。
有关 Simulink® 信号解析的信息,请参阅符号解析 (Simulink)和符号解析过程 (Simulink)。
继承的属性
当 Stateflow 局部数据或输出数据解析为 Simulink 信号对象时,它们会继承以下属性:
大小
复/实性
类型
最小值
最大值
初始值
存储类
存储类控制图数据在生成的代码中的外观。请参阅使用 Struct 存储类将参数数据组织为结构体 (Embedded Coder)。
启用信号解析
要启用显式信号解析,请执行下列步骤:
打开“配置参数”对话框,在诊断 > 数据有效性窗格中,将信号解析设置为
None以外的值。有关其他选项的详细信息,请参阅Signal resolution (Simulink)。在模型工作区、基础工作区或数据字典中,使用您要 Stateflow 数据继承的属性定义一个
Simulink.Signal对象。有关创建 Simulink 信号的详细信息,请参阅Simulink.Signal(Simulink)。添加图输出或局部数据。对您的数据使用与
Simulink.Signal对象相同的名称。启用数据必须解析为信号对象属性,如设置数据属性中所述。选择此属性后,对话框将删除或灰显数据从信号继承的属性。
简单示例
此模型显示图如何将局部数据和输出数据解析为 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.Signal (Simulink)
主题
- 符号解析 (Simulink)
- 使用 Struct 存储类将参数数据组织为结构体 (Embedded Coder)