Documentation Home Page ◇ RT-LAB Home Page
Pour la documentation en FRANÇAIS, utilisez l'outil de traduction de votre navigateur Chrome, Edge ou Safari. Voir un exemple.
Auto-Connection in RT-LAB
Introduction
Auto-connection is an RT-LAB feature facilitating manual connection creation between Models and IOs. (This module will be extended to cover automatic creation between Panels, Models and IOs.)
Users no longer need to add connections manually to the model. Instead, Auto-connection (callable from RT-LAB's interface and the Python API) creates the connections based on the Simulink model.
Various configurations are provided to create the most suitable connections for the user. During model compilation, Auto-connection can be enabled using the methods below.
This document explains the Auto-connection mechanism, configurations and modes, as well as how to call these functionalities, with an example provided.
Using Auto-connection
To perform Auto-connection, connection points are acquired for both the Model and IOs.
Auto-connection is implemented in the Controller, and the RT-LAB API contains the following functions, linked to the Controller:
OpalGetAutoConnectionConfiguration | Get the configuration and mode of the Auto-connection |
---|---|
OpalSetAutoConnectionConfiguration | Set the Configuration and mode of the Auto-connection |
OpalDoAutoConnection | Perform Auto-connection |
About Auto-connection
The RT-LAB interface and Python API use the above functionalities (GET, SET, DO) to perform Auto-connection from various programming interfaces.
To perform Auto-connection, a matching algorithm locates the best candidates between the various IO and Model points, in order to help users optimize the connect.
Auto-connection's matching algorithm currently considers a full match after removing white spaces and replacing / (forward slash) by _ (underscore).
Configuration
Auto-connection has properties defined per model:
Auto-connect Mode | Defined as OP_AUTOCONNECT_MODE enum in the model |
---|---|
| |
Auto-connect Configuration | Defined as OP_AUTOCONNECT_CONFIG enum in the model |
|
Using Auto-connection
Auto-connection can be called from various interfaces:
- Through the RT-LAB Interface
- Through RT-LAB's Python API
Using RT-LAB Interface
Auto-connection controls are located at the top of the model configuration page.
To access the configuration page, expand the project in the RT-LAB project explorer and double-click Configuration.
Two options are available in Connection mode:
Keep all current connections | Keeps the user-defined connection, even if they are not found matched during Auto-connection process |
---|---|
Disconnect unmatched connections prior to performing Auto-connections | Modifies and reconnects all user-defined connections |
Users can also perform Auto-connection during model compilation. If auto_connection mode is enabled, build the model to execute Auto_Connection.
NOTE: Auto-connection during compilation is disabled by default. It must be enabled through RT-LAB's Python API.
Using RT-LAB's Python API
There are three functions in RT-LAB python API responsible for the Auto-connection process.
GetAutoConnectionConfiguration() | Returns Mode and Config of the Auto-connection values of the opened model. |
---|---|
SetAutoConnectionConfiguration(OP_AUTOCONNECT_MODE pmode, OP_AUTOCONNECT_CONFIG pconfig) | Sets the Auto-connection mode and config of opened model. |
DoAutoConnection(OP_AUTOCONNECT_CONFIG pconfig) | Performs Auto-connection based on the config which passed as a function parameter. |
The function SetAutoConnectionConfiguration( ) can be used in the following ways:
- Without any argument : The previous/default values of OP_AUTOCONNECT_MODE and OP_AUTOCONNECT_CONFIG are retained.
- With only one MODE argument : SetAutoConnectionConfiguration(RtlabApi.AUTO_MODE_ENABLED) or SetAutoConnectionConfiguration(RtlabApi.AUTO_MODE_DISABLED)
- With only one CONFIG argument: SetAutoConnectionConfiguration(<OP_AUTOCONNECT_CONFIG>) with the values of <OP_AUTOCONNECT_CONFIG> taken from one of the three values shown in next table.
The function DoAutoConnection( ) can be called without any argument. In that case it used the previous/default value of OP_AUTOCONNECT_CONFIG.
In order to pass the enumerator inputs in Auto_Connection, the following values are available in Python API:
OP_AUTOCONNECT_MODE | RtlabApi.AUTO_MODE_ENABLED RtlabApi.AUTO_MODE_DISABLED |
---|---|
OP_AUTOCONNECT_CONFIG | RtlabApi.AUTO_KEEP RtlabApi.AUTO_CLEAN RtlabApi.AUTO_CLEAN_ALL |
These functions are available in Python RT-LAB API.
Example of Usage
In this section, an example is provided in order to demonstrate the functionality of Auto-connection.
The model used in this example is Rtdemo1 and the I/O Interface is IEC 60870-5-104 Slave.
To perform the AutoConnection, we first need to edit the Simulink model:
- In IEC 60870-5-104 Slave, the uiName of one of the connection points is IEC 60870-5-104 Slave/Slaves/Slave_1/Regulating steps/Output 1.
- In the Rtdemo1 Simulink model, we will add an OpOutput, connect it to the desired module and rename it to IEC60870-5-104Slave_Slaves_Slave_1_Regulatingsteps_Output1
NOTE: The Auto-connection matching algorithm currently considers a full match after removing white spaces and replacing / (forward slash) by _ (underscore) .
After model modification, the Rtdemo1 model looks like the following:
After saving the model, open the Configuration page of the model in RT-LAB and click Perform Auto connections. The following is the result:
The same behavior occurs when Auto-connection is called through the Python API or during the compilation of the model (if Auto-connectin Mode is set to AUTO_MODE_ENABLED).
To differentiate between Auto_Connection modes AUTO_KEEP and AUTO_CLEAN, we need to add another OpOutput to the model: IEC60870-5-104Slave_Slaves_Slave_1_Normalizedpoints_Output1.
By performing Auto-connection, the Configuration page looks as follows:
Now delete the Normalized points connection and substitute it with an unmatched customized connection by executing the following API command:
r.CreateConnection('IEC 60870-5-104 Slave/Slaves/Slave_1/Normalized points/Output 1','rtdemo1/sm_computation/OpOutput6/OpOutput/port1',True)
After this step, the configuration table appears as below:
The following are the results when performing Auto-connection with each Configuration option:
Keep all current connections (AUTO_KEEP) | Auto-connection keeps both connections even if the Normalized output point is not matched. |
Disconnect unmatched connections prior to performing Auto-connections (AUTO_CLEAN) | This option will delete unmatched connections and replace them with matched ones. |
OPAL-RT TECHNOLOGIES, Inc. | 1751, rue Richardson, bureau 1060 | Montréal, Québec Canada H3K 1G6 | opal-rt.com | +1 514-935-2323
Follow OPAL-RT: LinkedIn | Facebook | YouTube | X/Twitter