目录
Simulink.Bus指定总线的属性
说明
Simulink.Bus
对象与Simulink.BusElement 对象结合使用,用于指定并验证总线的属性。当仿真模型或更新图时,Simulink® 会检查连接到模块的总线是否与指定的Simulink.Bus
对象匹配。
Bus
对象仅指定总线的架构属性。例如,总线对象可以指定元素名称、层次结构、顺序和数据类型。Bus
对象无法指定总线中信号的值。
Bus
对象类似于 C 语言中的结构体定义:它定义总线的成员,但不创建总线。Bus
对象也类似于电缆连接器。连接器定义所有的引脚及其配置,并控制它们可以连接哪些类型的电线。类似地,Bus
对象定义关联的总线必须具有的信号配置和属性。
Bus
对象包含Simulink.BusElement 对象。每个BusElement
对象指定总线中一个信号的属性,如信号的名称、数据类型和维度。Bus
对象中BusElement
对象的顺序决定总线中信号的顺序。
Bus
对象可以指定未由组成信号定义但会被继承的属性。
要在基础工作区或数据字典中创建和修改
Bus
对象,可以使用Bus Editor或 MATLAB® 命令。无法在模型工作区中存储Bus
对象。
要在模型中使用
Bus
对象,参考使用Simulink.Bus对象指定总线属性。
创建对象
语法
busObject = Simulink.Bus
说明
返回 busObject
= Simulink.BusBus
对象,该对象具有以下属性值:
Description: ''
DataScope: 'Auto'
HeaderFile: ''
Alignment: -1
Elements: [0×0 Simulink.BusElement]
Bus
对象的名称是向其赋予Bus
对象的MATLAB变量的名称。
属性
Description
- 总线说明
字符向量
总线说明,指定为字符向量。使用该描述来记录有关 Bus
对象的信息,例如它应用到的信号种类或使用 Bus
对象的位置。此信息不会影响 Simulink 处理。
Elements
- 总线内信号的属性Simulink.BusElement
对象的数组
总线的元素,指定为由 Simulink.BusElement
对象组成的数组。每个 BusElement
对象定义总线内信号的名称、数据类型、维度和其他属性。
DataScope
- 生成的代码中的数据类型定义模式'Auto'
(默认) |'Exported'
|'Imported'
生成的代码中的数据类型定义模式,指定为 'Auto'
、'Exported'
或 'Imported'
。此属性指定在代码生成期间是从 HeaderFile
属性指定的头文件中导入数据类型定义,还是将其导出到该头文件。
值 | 操作 |
---|---|
'Auto' (默认值) |
从指定的头文件中导入数据类型定义。如果您未指定头文件,则将数据类型定义导出到默认头文件。 |
'Exported' |
将数据类型定义导出到指定的头文件或默认头文件。 |
'Imported' |
从指定的头文件或默认的头文件中导入数据类型定义。 |
HeaderFile
- 用于数据类型定义的 C 头文件
字符向量
用于数据类型定义的 C 头文件,指定为字符向量。基于 DataScope
属性的值,在头文件中导入或导出数据类型定义。Simulink Coder™ 软件使用此属性进行代码生成。Simulink 软件将忽略此属性。默认情况下,生成的 #include
指令使用预处理器分隔符 "
,而不是 <
和 >
。要生成指令 #include <myTypes.h>
,请将 HeaderFile
指定为 <myTypes.h>
。
Alignment
- 数据对齐边界
-1 (默认) | 整数
数据对齐边界,指定为整数(以字节为单位)。Simulink Coder 软件使用此属性进行代码生成。Simulink 软件将忽略此属性。为总线分配的数据的起始内存地址是 Alignment
设置的倍数。如果对象出现在需要对齐的上下文中,则必须指定一个不超过 128 并且是 2 的幂的正整数作为 Alignment
的值。
示例
创建 Bus
对象和 BusElement
对象
此示例说明如何在基础工作区中创建 Bus
对象及其关联的 BusElement
对象。创建名为 CONTROL
的 Bus
对象。
CONTROL = Simulink.Bus;
创建并指定两个 BusElement
对象(名为 VALVE1
和 VALVE2
)的属性。
valve1 = Simulink.BusElement;
valve1.Name = 'VALVE1';
valve1.Dimensions = 1;
valve1.DimensionsMode = 'Fixed';
valve1.DataType = 'double';
valve1.SampleTime = -1;
valve1.Complexity = 'real';
valve2 = Simulink.BusElement;
valve2.Name = 'VALVE2';
valve2.Dimensions = 1;
valve2.DimensionsMode = 'Fixed';
valve2.DataType = 'double';
valve2.SampleTime = -1;
valve2.Complexity = 'real';
将元素分配给 CONTROL
Bus
对象。
CONTROL.Elements = [valve1 valve2];
替代方法
要以交互方式创建 Bus
对象,可以使用Bus Editor。要从模型中的模块、MATLAB数据和外部C代码创建Bus
对象,参考以编程的方式创建总线对象。