Bus Creator

Create bus from input signals

  • Library:
  • Simulink / Commonly Used Blocks

    Simulink / Signal Routing

    HDL Coder / Signal Routing

Description

The Bus Creator block combines a set of input signals into a bus. You can connect any signal types to the input ports, including other buses. You can access signals 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 signal connected to the Bus Creator block. If duplicate names are present, the Bus Creator block appends the port number to all input signal names. For signals that do not have names, the Bus Creator block generates names in the form signaln, where n is the port number connected to the signal. You can refer to signals by name when you search for their sources or select signals for connection to other blocks. For signal naming guidelines, see Signal Names and Labels.

Ports

Input

expand all

Input signal 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 | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus
Complex Number Support: Yes

Output

expand all

Output bus composed of the combined input signals, 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 signals, 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 signal is connected to each input port.

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

Tip

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

A signal 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 signal to the list of signals in the bus.

Programmatic Use

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

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

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

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

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

If you change a signal 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 signal names
Default: '2'

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

Search term for filtering displayed input signals, 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 signals by regular expression.

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

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 signals 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>', specify a Simulink.Bus object. The Bus object must be accessible when you update the diagram or simulate 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 data type. Do not specify a Bus object as the expression.

Programmatic Use

Block Parameter: OutDataTypeStr
Type: character vector
Values: 'Inherit: auto' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64''uint64''boolean' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'Enum: <class name>' | 'Bus: <object name>'
Default: 'Inherit: auto'

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

Tip

The Require input signal names to match signals above parameter might be removed in a future release. To enforce strong data typing, consider using the Override bus signal names from inputs parameter.

Dependencies

If you select Override bus signal names from inputs, the Simulink software ignores the Require input signal names to match signals above setting.

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

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

Dependencies

To display this parameter, enable the Require input signal names to match signals above parameter.

By default, the Bus Creator block overrides the names specified by the Simulink.Bus object and uses the input signal names as the output bus element names.

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

  • Enforces strong data typing.

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

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

Alternatively, you can enforce strong data typing by checking that input signal names match the Bus object element names.

  • Keep the Override bus signal names from inputs check box selected.

  • 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 signals 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 signals with different sample rates generates an error. To change the sample time of a signal or bus that has a different sample time than the other nonvirtual bus input signals, 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 | 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 signal 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