Main Content

Bus Selector

从输入总线中选择元素

  • Bus Selector block

库:
Simulink / Commonly Used Blocks
Simulink / Signal Routing
HDL Coder / Signal Routing

描述

Bus Selector 模块从输入总线层次结构中按名称提取您选择的元素。该模块可以分别输出选定的各个元素或在一个新的虚拟总线中输出所有选定元素。当模块分别输出选定元素时,每个选定元素对应于一个输出端口。当模块输出新的虚拟总线时,对于包含所有选定元素的虚拟总线,该模块具有一个与之对应的输出端口。

虽然多个元素在总线层次结构中的不同位置可以具有相同的名称,但每个元素都有唯一的完全限定名称供 Bus Selector 模块使用。例如,顶层总线和一个嵌套总线都可以有名为 chirp 的元素。顶层总线中该元素的完全限定名称为 chirp。嵌套总线中该元素的完全限定名称为 nestedbus.chirp,其中 nestedbus 是嵌套总线的名称。

提示

对于子系统和模型接口上的总线,请使用 In Bus Element 模块,而不要使用搭配 Bus Selector 模块的 Inport 模块。In Bus Element 模块能够:

  • 减少模块图中线的复杂度和杂乱无章。

  • 允许您更轻松地逐步更改接口。

  • 允许访问更靠近使用点的总线元素,避免使用 Bus SelectorGoto 模块配置。

示例

全部展开

Bus Selector 模块允许您按名称从总线中提取元素。

打开并编译名为 BusElementSelection 的示例模型。要编译模型,请在 Simulink 工具条的建模选项卡上,点击更新模型运行。编译模型会更新线型,您可以使用线型来直观地标识总线。

The output signal from a Bus Selector block connects to one of the three Out Bus Element blocks.

Bus Creator 模块根据源信号创建一个总线层次结构。

  • 名为 Bus Creator 的 Bus Creator 模块将名为 sinechirp 的信号组合到一个名为 sinusoidal 的总线中。

  • 名为 Bus Creator1 的 Bus Creator 模块将名为 pulsesaw 的信号组合到一个名为 nonsinusoidal 的总线中。

  • 名为 Bus Creator2 的 Bus Creator 模块将这两个总线和名为 constant 的信号组合到一个名为 sources 的总线中。

Bus Selector 模块接收名为 sources 的总线作为输入,并返回名为 chirp 的信号作为输出。

在此示例中,Bus Selector 模块输出连接到一个 Out Bus Element 模块。另有两个 Out Bus Element 模块未连接任何输入输出。

要向 Bus Selector 模块添加输出端口,请点击 Bus Selector 模块的输出边。

Cursor on the edge of the block

开始键入要选择的元素的名称,例如 nonsinusoidal

Menu that provides input elements with optional filtering

使用箭头键选择名为 nonsinusoidal 的元素。然后按 Enter 键。或者,点击菜单中的元素名称。

将新端口连接到一个 Out Bus Element 模块。(可选)编译模型以显示选定总线的总线线型。

The nonsinusoidal bus connects to the second Out Bus Element block.

要将模块连接到 Bus Selector 模块上的一个新输出端口,请从模块未连接的输入端口拖拽一条线到 Bus Selector 模块的输出边。

例如,从剩下的最后一个 Out Bus Element 模块的输入端口拖拽一条线到 Bus Selector 模块的输出边。

A line is dragged from the third Out Bus Element block to the output side of the Bus Selector block.

开始键入要选择的元素的名称,例如 saw

Menu that provides input elements with optional filtering

使用箭头键选择名为 nonsinusoidal.saw 的元素。然后按 Enter 键。或者,点击菜单中的元素名称。

The saw signal connects to the third Out Bus Element block.

在此示例中,完全限定的元素名称为 nonsinusoidal.saw,因为名为 saw 的信号位于名为 nonsinusoidal 的嵌套总线中。

虽然此示例说明了如何从模块图的输入总线中选择元素,但您也可以双击 Bus Selector 模块,并在打开的对话框中选择输出元素。

端口

输入

全部展开

输入虚拟或非虚拟总线包含要选择的元素。

对于总线数组,请使用 Selector 模块来选择要与 Bus Selector 模块结合使用的总线。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | string | Boolean | fixed point | enumerated | bus
复数支持:

输出

全部展开

默认情况下,模块将每个选定元素从一个单独的输出端口输出,该端口上标有对应总线元素的名称。

当选中以虚拟总线输出参数时,模块从一个端口输出以虚拟总线形式绑定在一起的所有选定元素。

数据类型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | string | Boolean | fixed point | enumerated | bus
复数支持:

参数

全部展开

要以交互方式编辑 Bus Selector 模块参数,请双击该模块。

默认情况下,对话框以垂直布局打开,选定元素位于总线中的元素列表下。要并排查看总线中的元素和选定输出元素,请点击 Change layout

此 参数 为只读。

总线中的元素列表提供进入模块的元素,包括嵌套总线及其元素。元素旁边的箭头表示输入元素是总线。要显示该总线的内容,请点击箭头。

要按名称过滤总线中的元素(使用或不使用正则表达式均可),请在过滤器框中输入搜索词。请勿将搜索词括在引号内。(可选)通过点击 Show filtered results as a flat list 将过滤后的结果显示为扁平列表。扁平列表使用圆点表示法来反映总线层次结构。默认情况下,过滤结果显示在层次结构树中。

要突出显示进入模块的元素的来源,请在列表中选择该元素。然后,点击 Highlight source blocks。或者,右键点击该元素。然后,选择突出显示源模块

要刷新进入模块的元素的列表,请点击 Refresh。例如,在对话框打开的情况下更改元素名称时,点击此按钮。

提示

  • 绿色复选标记图标出现在选定输出元素旁边。

  • 当您将鼠标暂停在一个选定输出元素上方时,会在括号中会显示 Bus Selector 模块选定该元素的次数。

  • 正则表达式允许您根据输入元素是否匹配某个模式进行过滤。例如,在滤波器框中输入 t$,以显示名称以小写字母 t 结尾的所有元素。有关详细信息,请参阅正则表达式

编程用法

要以编程方式获取模块参数值,请使用 get_param 函数。

参数: InputSignals
值: cell array of element names

示例: get_param(gcb,'InputSignals')

所选元素的列表提供退出模块的元素。该列表对每个元素使用完全限定名称。

在 Simulink® 编辑器中,当取消选中以虚拟总线输出选项时,通过向模块添加端口来从输入总线中选择元素。

  1. 点击 Bus Selector 模块的输出边。或者,当模块接收到一个总线且所有输出端口都连接到其他端口时,在靠近 Bus Selector 模块的输出边处绘制一条新信号线。

  2. 指定一个要选择的元素。

在“模块参数”对话框中,将元素添加到输出元素列表,以此方式从输入总线中选择元素。

  1. 总线中的元素列表中,选择一个或多个要添加到模块输出的元素。

    当您从总线中的元素列表中选择多个元素时,您将它们添加到输出元素列表时的顺序将设置它们在列表中的顺序。

  2. (可选)在输出元素列表中,选择您要在下面添加元素的元素。如果未选择任何元素,软件会将元素添加到列表的末尾。

  3. 根据对话框的布局,点击 Add to output (vertical layout)Add to output (horizontal layout)。或者,右键点击选定元素之一。然后,点击添加到输出

要更改输出元素的顺序,请将输出元素列表中的元素拖到一个不同位置。当您更改元素顺序时,端口会保持连接。

要从模块输出中删除元素,请从输出元素列表中选择要删除的元素。然后,点击 Remove。或者,右键点击选定元素之一。然后,选择删除

如果列表中的某个元素不在输入总线中,则该元素名称显示为红色。从选定元素列表中删除该元素,或修改输入总线以包含具有指定名称的元素。要删除不在输入总线中的所有输出元素,请右键点击红色元素名称。然后,选择删除所有无效元素

限制

为了避免递归限制,请为每个 Bus Selector 模块选择少于 500 个元素。

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: OutputSignals
值: 'signal1,signal2' (默认) | comma-separated list of element names in quotes
数据类型: char | string

示例: set_param(gcb,'OutputSignals','constant,sine')

默认情况下,模块将每个选定元素从一个单独的输出端口输出,该端口上标有对应总线元素的名称。要从一个端口输出所选元素,这些元素组合在一个虚拟总线中,请选择此参数。

要将输出转换为非虚拟总线,请在 Bus Selector 模块后插入一个 Signal Conversion 模块。将 Signal Conversion 模块的输出参数设置为非虚拟总线,并将数据类型设置为 Simulink.Bus 对象。

输出元素列表中只包含一个元素,而您又选中了此参数时,则该元素不会包装在总线中。例如,如果元素是一个总线,则输出元素是该总线。如果该元素不是总线,则输出元素不是总线。

依存关系

要使用此参数,模块输出不能包含消息。

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: OutputAsBus
值: 'off' (默认) | 'on'

示例: set_param(gcb,'OutputAsBus','on')

模块特性

数据类型

Boolean | bus | double | enumerated | fixed point | half | integer | single | string

直接馈通

多维信号

可变大小信号

过零检测

提示

默认情况下,对话框以垂直布局打开,选定元素位于总线中的元素列表下。要并排查看总线中的元素和选定输出元素,请点击 Change layout

扩展功能

PLC 代码生成
使用 Simulink® PLC Coder™ 生成结构化文本代码。

版本历史记录

在 R2006a 之前推出

全部展开