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 工具条的建模选项卡上,点击更新模型运行。编译模型会更新线型,您可以使用线型来直观地标识总线。

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 模块的输出边。

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

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

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

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

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

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

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

在此示例中,完全限定的元素名称为 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 模块参数,请双击该模块。

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

此 参数 为只读。

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

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

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

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

提示

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

  • 当您将鼠标暂停在一个选定输出元素上方时,会在括号中会显示 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. 根据对话框的布局,点击 the Select elements button (vertical layout)the Select elements button (horizontal layout)

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

要从模块输出中删除元素,请从选定元素列表中选择要删除的元素。然后,点击 the Remove button

如果列表中的某个元素不在输入总线中,则该元素名称显示为红色。当您将鼠标暂停在元素名称上方时,工具提示会指示该元素不在输入总线中。从选定元素列表中删除该元素,或修改输入总线以包含具有指定名称的元素。

限制

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

编程用法

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

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

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

默认情况下,模块将每个选定元素从一个单独的输出端口输出,该端口上标有对应总线元素的名称。要从一个端口输出绑定在一个虚拟总线中的所有选定元素,请选择 the Output as virtual bus button

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

选定元素列表中只包含一个元素,而您又选中了 the Output as virtual bus button 选项时,则该元素不会包装在总线中。例如,如果元素是一个总线,则输出元素是该总线。如果该元素不是总线,则输出元素不是总线。

依存关系

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

编程用法

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

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

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

模块特性

数据类型

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

直接馈通

多维信号

可变大小信号

过零检测

提示

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

扩展功能

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

版本历史记录

在 R2006a 之前推出

全部展开