Main Content

Bus Creator

Create bus from input elements

  • Library:
  • Simulink / Commonly Used Blocks

    Simulink / Signal Routing

    HDL Coder / Signal Routing

  • Bus Creator block

Description

The Bus Creator block combines a set of input elements into a bus. You can connect any element types to the input ports, including other buses. You can access elements in a bus by using a Bus Selector block.

Elements of a bus must have unique names. By default, each element of the bus inherits the name of the element connected to the Bus Creator block. If duplicate names are present, the Bus Creator block appends the port number to all input element names. For elements that do not have names, the Bus Creator block generates names in the form signaln, where n is the port number connected to the element. You can refer to elements by name when you search for their sources or select elements for connection to other blocks. For element naming guidelines, see Signal Names and Labels.

Ports

Input

expand all

Input element to include in the bus, specified as a scalar, vector, matrix, N-D array, or bus.

The number of input ports is driven by the Number of inputs parameter.

Data Types: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | string | Boolean | fixed point | enumerated | bus
Complex Number Support: Yes

Output

expand all

Output bus composed of the combined input elements, specified as a virtual or nonvirtual bus. For more information on the types of buses, see Types of Composite Signals.

Data Types: bus

Parameters

expand all

Number of input elements, not fewer than two, specified as an integer. Increasing the number of inputs adds empty input ports to the block. Before you simulate the model, make sure that an input element is connected to each input port.

When you modify the Number of inputs parameter, click Refresh to update the list of elements.

Tip

If all input ports are already connected, you can add an input port to the Bus Creator block by connecting another line to it.

A line is dragged near a Bus Creator block with two connected ports and a third port appears.

Interactively adding a port updates the Number of inputs parameter and adds the new element to the list of elements in the bus.

Programmatic Use

Block Parameter: Inputs
Type: character vector
Values: integer greater than or equal to 2, comma-separated list of element names
Default: '2'

By default, the Inputs parameter specifies the number of inputs. When you use it to specify the names of elements in the bus, the number of inputs matches the number of element names you specify.

List of input elements to combine into a bus. You can view all elements entering the block, including the elements contained in nested buses. An arrow next to a element indicates that an input element is a bus. To display the contents of that bus, click the arrow.

To rearrange the elements in the output bus, use the Up and Down buttons. You can select multiple top-level adjacent elements in the Elements in the bus list to reorder or remove.

To find the source of any element entering the block, select the element in the Elements in the bus list and click the Find button. Simulink® highlights the icon of the source, opening the subsystem that contains the element source, if necessary.

If you change an element name while the Block Parameters dialog box is open, you can see the updated name by clicking Refresh.

Programmatic Use

Block Parameter: Inputs
Type: character vector
Values: integer greater than or equal to 2, comma-separated list of element names
Default: '2'

By default, the Inputs parameter specifies the number of inputs. When you use it to specify the names of elements in the bus, the number of inputs matches the number of element names you specify.

Search term for filtering displayed input elements, specified as text. Do not enclose the search term in quotation marks. The filter does a partial string search.

To access the filtering options, click the Show filtering options button to the right of the Filter by name box.

Option to filter the displayed input elements by regular expression.

When this parameter is enabled, entering t$ in the Filter by name box displays all elements whose names end with a lowercase t (and their immediate parents). For details, see Regular Expressions.

Dependencies

To access this parameter, click the Show filtering options button to the right of the Filter by name box.

Option to display filtered results as a flat list that uses dot notation to reflect the hierarchy of buses. By default, the filtered elements appear in a hierarchical tree.

Dependencies

To access this parameter, click the Show filtering options button to the right of the Filter by name box.

Data type of the output bus.

If you select Bus: <object name>, replace <object name> with the name of a Simulink.Bus object. The Bus object must be accessible when you edit the model.

To define a Bus object using the Bus Editor, click the Show data type assistant button , and then click the Edit button.

If you select <data type expression>, specify an expression that evaluates to a Bus object.

Programmatic Use

Block Parameter: OutDataTypeStr
Type: character vector
Values: 'Inherit: auto' | 'Bus: <object name>'
Default: 'Inherit: auto'

Check that the input element names match the names listed in the Block Parameters dialog box. If the element names do not match, Simulink returns an error.

Tips

The Require names of inputs to match names above parameter might be removed in a future release. To enforce strong data typing, consider using the Use names from inputs instead of from bus object parameter.

Dependencies

If you select Use names from inputs instead of from bus object, the Simulink software ignores the Require names of inputs to match names above setting.

If you change the Number of inputs programmatically, this parameter reverts to 'off'.

New name for the selected input element. See Signal Names and Labels for name guidelines.

Dependencies

To display this parameter, enable the Require names of inputs to match names above parameter.

By default, the Bus Creator block uses the input element names as the output bus element names, even when you specify a Simulink.Bus object as the data type.

To inherit bus element names from the Bus object, clear this parameter. Clearing the parameter:

  • Enforces strong data typing.

  • Avoids having to enter an element name multiple times: in the Bus object and in the model. Entering the name multiple times can accidentally create element name mismatches.

  • Supports the array of buses requirement to have consistent element names across array elements.

Alternatively, you can enforce strong data typing by checking that input element names match the Bus object element names. Keep the Use names from inputs instead of from bus object check box selected and set the Element name mismatch configuration parameter to error.

Dependencies

To display this parameter, set the Output data type parameter to a Bus object.

Programmatic Use

Block Parameter: InheritFromInputs
Type: character vector
Values: 'on' | 'off'
Default: 'on'

Output a nonvirtual bus instead of a virtual bus.

All elements in a nonvirtual bus must have the same sample time, even if the elements of the associated Bus object specify inherited sample times for some elements. Any operation resulting in a nonvirtual bus containing elements with different sample rates generates an error. To change the sample time of an element or bus that has a different sample time than the other nonvirtual bus input elements, use a Rate Transition block. For details, see Modify Sample Times for Nonvirtual Buses.

To generate code that uses a C structure to define the structure of the bus that this block creates, enable this parameter.

Dependencies

To display this parameter, set the Output data type parameter to a Bus object.

Programmatic Use

Block Parameter: NonVirtualBus
Type: character vector
Values: 'on' | 'off'
Default: 'off'

Block Characteristics

Data Types

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

Direct Feedthrough

no

Multidimensional Signals

yes

Variable-Size Signals

yes

Zero-Crossing Detection

no

Tips

For buses at subsystem and model interfaces, you can use Out Bus Element blocks instead of a Bus Creator block with an Outport block. Out Bus Element blocks:

  • Reduce line complexity and clutter in a block diagram.

  • Make it easier to change the interface incrementally.

Extended Capabilities

PLC Code Generation
Generate Structured Text code using Simulink® PLC Coder™.

Introduced before R2006a