Manage Interfaces with Data Dictionaries
Engineering systems often share interface definitions across multiple components or subsystems. Data interfaces in System Composer™ can be stored either locally in a model or in a data dictionary, depending on the maturity of your system.
For interfaces terminology, see Define Port Interfaces Between Components.
A data dictionary is a repository of data relevant to your model. The Architectural Data section of a data dictionary stores shared definitions used in Simulink® and architecture model interfaces, such as port interfaces, data types, and system wide constants. For more information, see What Is a Data Dictionary? You can save local interfaces on a System Composer model to the Architectural Data section of a Simulink data dictionary using the Interface Editor. In addition to the Interface Editor, you can also use the Architectural Data Editor to manage and modify interfaces and value types.
For more advanced data dictionary referencing techniques, see Reference Data Dictionaries.
Note
When you load existing data dictionaries, Simulink automatically migrates them to the Architectural Data section of the
Simulink data dictionary. In addition to the Interface
Editor, you can also use the Architectural Data
Editor and Simulink.dictionary.ArchitecturalData
programmatic interfaces to manage and
modify interfaces and value types. For more information on managing architectural data, see
Store Shared Data in Architectural Data Section and Store Data in Architectural Data Section Programmatically.
Mobile Robot Architecture Model with Interfaces
This example shows a mobile robot hardware architecture with interfaces defined.
Save, Link, and Delete Interfaces
By default, interfaces are stored within the architecture model and are not visible outside the model. If you are in the initial stages of building a system model, store interfaces locally to limit the number of files that need to be managed. However, if your model is mature to the point of leveraging componentization workflows like reference architectures and behaviors, storing interfaces in a data dictionary gives you the ability to share interface definitions across the model hierarchy.
Use the menu to save a data interface to a new or existing
data dictionary. To create a new data dictionary, select Save to new
dictionary. Provide a data dictionary name.
You can also add interface definitions in the model from an existing data dictionary by selecting Link existing dictionary to link the data dictionary to the model.
Use the button to import interface definitions from a
Simulink bus object, either from a MAT file or the workspace.
Delete a data interface from a data dictionary using the button. If the data interface is already being used
by ports in a currently open model, the software returns a warning message. The data
interface is then removed from any ports in the open model that are associated with the
data interface.
If a data interface is deleted from a data dictionary upon opening another model that shares the data dictionary, a warning will be presented on startup if the deleted interface is used by ports in that model. The Diagnostic Viewer offers an option to remove the deleted interface from all ports that are still using it. You can also select ports individually and delete their missing interfaces.
A System Composer model and a data dictionary are separate artifacts. Even when you link the
data dictionary to the model, you must save changes to the data dictionary (an SLDD
file) separately from changes to the model (an SLX file). To save changes to a linked
data dictionary, use the button and select Save
dictionary. Once you save a data dictionary, other models can use its
interface definitions if you link the data dictionary to those models, which allows
multiple models to share the same interface definitions.
See Also
createDictionary
| moveInterface
| openDictionary
| saveToDictionary
| linkDictionary
| unlinkDictionary
| makeOwnedInterfaceShared