Specify function to be called via exporting function port
Simulink / Ports & Subsystems
The Function Element block allows a Simulink® function in a referenced model to be called by a function caller in another referenced model. The Function Element block, when placed at the root level of a model referenced by a Model block, creates an exporting function port in the Model block. When the exporting function port is connected to an invoking function port of another Model block, a function caller in that other Model block can issue function calls and receive return values through the respective function ports of the Model blocks.
By using multiple Function Element blocks, multiple Simulink functions in a referenced model can be called through a single exporting function port. All Function Element blocks that use the same port share a dialog box. A model can have more than one exporting function port.
A Function Element block must be placed at the root level of model designated as an export-function model. See Export-Function Models Overview. For each Function Element block, a port-scoped Simulink Function block should also be placed at the root level of the model, defining the function to be called through the Function Element block.
Create Port and Related Blocks
When you insert an Function Element block, the block label populates with default values. The label consists of two interactive text fields: the port name and the function element name. To change the name of the port associated with the block, edit the first text field in the label by clicking the text.
To allow multiple functions to be called through a port, create a Function
Element block for each function that you want to include. In the block
dialog box, you can click the Add a new function
button. Alternatively, hold Ctrl while you
drag an existing Function Element block to a new location. Upon
releasing the pointer, select
Use Existing Port.
If multiple blocks are associated with the same port and you change the name of the port, all blocks that share the port update to reflect the new port name.
To create a port, hold Ctrl while you drag an existing Function
Element block to a new location. Upon releasing the pointer, select
Create New Port.
Modify Port Characteristics
In the block dialog box, you can:
Change port and function element names.
Reorder function elements by dragging an element into the list of elements.
Remove blocks associated with selected function elements by clicking the Remove blocks of selected function elements button .
Use the Filter box to specify a search term to use for filtering a long list of function elements. Do not enclose the search term in quotation marks. The filter does a partial string search and supports regular expressions. To use a regular expression character as a literal, include an escape character (
\). For example, to use a question mark, type
Specify Function Element Name
To change the name of the function element associated with the block, edit the second text field in the label by clicking the text.
All function element names associated with the port must be unique. Each function element name should match the function name of one of the Simulink Function blocks to be called through the port.
Specify Service Interface
To associate the port with a service interface authored in System Composer™, in the block dialog box, pause on the name of the port where it appears at the top of the list of function elements. Then, click the pencil button that appears next to the port name.
Select a service interface from the Data type list or enter
Bus: . The
service interface name now appears in parentheses next to the port name.
You can associate a service interface definition only with the port as a whole, not with individual function elements within the port.
Port name — Name of exporting function port
server (default) | port name
Specify a port name that is not already in use by another port. The name appears as a port label on the parent Model block. The name also appears next to the block. Multiple blocks can access the same port.
Use the same port name in the Scope to port parameter of the Trigger block inside the port-scoped Simulink Function block to be called through the port.
|Type: character vector|
Port number — Position of port on parent block
1 (default) | real integer
Specify the order in which the port that corresponds to the block appears on the parent Model block.
If you add a block that creates another port, the port number is the next available number.
Deleting all blocks associated with a port deletes the port. Other ports are renumbered so that they are sequential and do not skip any numbers.
Specifying a port number that exceeds the number of ports creates a port for that number and for any skipped sequential numbers.
|Type: character vector|
|Values: real integer|
Set color — Specify block background color
Black (default) |
Light Blue |
Dark Green |
Specify the block background color. This specification sets the color of blocks associated with selected function elements, or of all blocks associated with the port if you do not select any function elements.
|Type: character vector|
C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.
Introduced in R2022a