Page Content
Table of Contents | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
What are the advantages?
The new I/O interfaces allows enabling the visualisation visualization and editing of IO connections within the new UI, offering improved scalability, performance, and an enhanced user experience.
How to update old projects to new I/O interfaces
Starting from RT-LAB 2025.1, the migration is carried automatically when a project is opened.
...
Open your project
Follow the migration wizard instructions
Please back up your project by keeping the corresponding checkbox selected.After clicking on the Finish button, the migration process is triggered. Next, depending on the outcome of the migration :
Your project can now be used with the new I/O Interfaces. |
|
---|
...
Close the older RT-LAB version and start using the newer RT-LAB version.
...
Open your Workspace
...
Open your project
Follow the migration wizard instructions
...
Your project now can be used with the new I/O Interfaces!
...
Your project is opened with limited access: you can only edit and build it to complete the migration on the next opening. Once all your models are successfully build, you may close and reopen it to complete migration. |
---|
Migrated project into Dashboards
Dashboards can be opened by double-clicking on “Dashboards” in the RT-LAB Project Explorer.
...
Considerations
Once the project has been migrated to Dashboards,
Functionality of the Recorder remains the same.
Dynamic LabVIEW panels are still available for consultation, but do not interact with the simulation anymore. The Dashboards panels are now to be used instead of LabVIEW panels.
Configuration view of IO Interfaces remains in RT-LAB.
Aliases are no more supported.
All RT-LAB API calls remain compatible.
GetConnectionsDescription return may differ
For IO data points:
Field name is no longer present.
Field alias has been added, it is the IO data point UI name.
For model data points:
Field level, alias and name are no more present.
Connections configuration:
Can be done via Dashboards
Is no longer accessible via the Configuration panel of RT-LAB.
Perform Autoconnections option is no more available in this version but can be used by API (for more details, please refer to Auto-Connection in RT-LAB)
Migration failure
If the project migration fails even after compiling your model(s), please read the <Project Path>/configurations/opalone/migration_report.log file and refer to the Known issues section.
If the issue persist please contact OPAL-RT support and provide the full project in a zip file or the following files
The folder located at <Project Path>/configurations
The file located at <Project Path>/Controller.logOpal Ones log files at C:/OPAL-RT/OpalOne/services/appserver/logs/appserver.log and C:/OPAL_RT/OpalOne/vX.Y.Z/server/logs/unicon.prod*.text.log
The report generated by the diagnostic tool (which can be launched in RT-LAB via the menu Help > Run Diagnostic)
Migration report
The migration_report.log (under <Project Path>/configurations/opalone) should be generated no matter the migration failed or not.
If it’s not the case, it could be because the Controller.exe of the project was not properly closed before starting migration or if unicon.exe is not running.caused by an installation issue, please use the diagnostic tool (Help > Run Diagnostic) in this case and contact OPAL-RT support.
A migration report should content contains:
Information about IO Interfaces
...
Code Block |
---|
MIG -- Synchronisation of connections -- MIG 10 connections found. MIG Connection between 'DNP3_Slave/sm_dnp3_slave/Analog_to_master/OpOutput/port1' and 'DNP3 Slave/Slaves/9FE36F43-E67A-407E-B047-38AD06272490/Analog inputs/656B6654-805D-478D-B74C-84C3B1CF553F' MIG Connection between 'DNP3_Slave/sm_dnp3_slave/Analog_from_master/In1/Value' and 'DNP3 Slave/Slaves/9FE36F43-E67A-407E-B047-38AD06272490/Analog outputs/8E8AEAA4-8ED8-4F16-87B3-8AA56D609090' ... MIG 10 connections to insert in database INF IO DNP3 Slave assigned to DNP3 Slave/sm_dnp3_slave MIG -- End synchronisation of connections -- |
Any error reported stop the migration process. It may be related to one of the previous sections, ie.
error on IO interface synchronization:
Code Block |
---|
ERR InsertBlocks error: 'error message' |
error on connections:
Code Block |
---|
ERR Invalid connection from 'path1' to 'path2'
ERR The migration cannot be completed as some connections remain unresolved. Please correct any incorrect connections before proceeding with the migration. |
Code Block |
---|
ERR FAILED to insert IO assignments 'error message' |
Code Block |
---|
ERR FAILED to create connections 'error message' |
Known issues
Use of new I/O interfaces not possible because of unresolved connections
If in a project there are unresolved connections, the migration cannot be done.
...
Errors on connections may be reported but are not critical to complete migration.
They concern unresolved connections that can be observed in the Configuration panel in RT-LAB version prior to 2025.1 when the top-level connection count is inconsistent with the sum of the connections present at the data point level. The following image illustrates what unresolved connections may look like.
...
Contrastingly, in the next image, all connections are resolved.
...
In case of DNP3 Slave the best things to do is
Export connections by using RT-LAB API
Code Block | ||
---|---|---|
| ||
r.OpenProject('projectName')
r.ExportConnections('connections.csv') |
Separate exported files in 2 files
One for DNP3 Slave connections
One for the other connections
Code Block | ||
---|---|---|
| ||
Separate connections.csv file in two files:
- connections_dnp3_slave_connections.csv
- connections_wo_dnp3_slave_connections.csv |
Remove all existing connections in the Project
Code Block | ||
---|---|---|
| ||
r.DeleteConnection('*','*') |
Import files containing all connections except the one related to DNP3 Slave
Code Block | ||
---|---|---|
| ||
r.ImportConnections('connections_wo_dnp3_slave_connections.csv') |
Note |
---|
If you have LabVIEW panels please, open them before doing those steps. |
Update and import DNP3 Slave connections
Path has change from ‘DNP3 Slave/Analog inputs/Analog input 0’ to 'DNP3 Slave/Slaves/Slave_1/Analog inputs/Analog input 0'
Update all path and use CreateConnection RtlabApi call to create connections with new path
Example:
Content of connections_dnp3_slave_connections.csv
Code Block | ||
---|---|---|
| ||
Connection Type,Datapoint 1: Primary ID,Datapoint 1: Secondary ID,Datapoint 1: Type,Datapoint 2: Primary ID,Datapoint 2: Secondary ID,Datapoint 2: Type
Model <--> IO,Analog_to_master[0],multi_drv/SS_DNP3/sm_dnp3_slave/Analog_to_master/OpOutput/port1[0],signal (out),DNP3 Slave/Analog inputs/Analog input 0,DNP3 Slave/Analog inputs/348F0769-87DB-469D-8CE2-D3F1763B995B,in
Model <--> IO,Analog_to_master[1],multi_drv/SS_DNP3/sm_dnp3_slave/Analog_to_master/OpOutput/port1[1],signal (out),DNP3 Slave/Analog inputs/Analog input 1,DNP3 Slave/Analog inputs/CACBB340-0117-4AC5-9385-29A621D4E2AC,in
Model <--> IO,Binary_to_master[0],multi_drv/SS_DNP3/sm_dnp3_slave/Binary_to_master/OpOutput/port1[0],signal (out),DNP3 Slave/Binary inputs/Binary input 0,DNP3 Slave/Binary inputs/DE660488-BA57-4916-84B7-6740AB557979,in
Model <--> IO,Binary_to_master[1],multi_drv/SS_DNP3/sm_dnp3_slave/Binary_to_master/OpOutput/port1[1],signal (out),DNP3 Slave/Binary inputs/Binary input 1,DNP3 Slave/Binary inputs/7898A36B-1C49-4318-916A-86E9DBB557FD,in
Model <--> IO,Binary_from_master[0],multi_drv/SS_DNP3/sm_dnp3_slave/Binary_from_master/In1/Value[0],parameter (in/out),DNP3 Slave/Binary outputs/Binary output 0,DNP3 Slave/Binary outputs/B64579C4-7995-4D9E-B861-BD6089F7CBC5,out
Model <--> IO,Binary_from_master[1],multi_drv/SS_DNP3/sm_dnp3_slave/Binary_from_master/In1/Value[1],parameter (in/out),DNP3 Slave/Binary outputs/Binary output 1,DNP3 Slave/Binary outputs/13C5944F-01E1-4CA1-A16B-DB36C18088D4,out
Model <--> IO,Analog_from_master[0],multi_drv/SS_DNP3/sm_dnp3_slave/Analog_from_master/In1/Value[0],parameter (in/out),DNP3 Slave/Analog outputs/Analog output 0,DNP3 Slave/Analog outputs/46D11140-359A-4763-922D-F79825342B69,out
Model <--> IO,Analog_from_master[1],multi_drv/SS_DNP3/sm_dnp3_slave/Analog_from_master/In1/Value[1],parameter (in/out),DNP3 Slave/Analog outputs/Analog output 1,DNP3 Slave/Analog outputs/A120F4DF-F4C4-4B37-9469-1332D6CE29B6,out |
New files generated dnp3_connections_path_updated.csv
Take 3rd column (Datapoint 1: Secondary ID
)
Take 5th column (Datapoint 2: Primary ID
)
Add in the column containing path of IOs Slaves/Slave_1 if your data points are related to Slave_1 of DNP3 Slave configurations
...
Code Block | ||
---|---|---|
| ||
multi_drv/SS_DNP3/sm_dnp3_slave/Analog_to_master/OpOutput/port1[0],DNP3 Slave/Slaves/Slave_1/Analog inputs/Analog input 0
multi_drv/SS_DNP3/sm_dnp3_slave/Analog_to_master/OpOutput/port1[1],DNP3 Slave/Slaves/Slave_1/Analog inputs/Analog input 1
multi_drv/SS_DNP3/sm_dnp3_slave/Binary_to_master/OpOutput/port1[0],DNP3 Slave/Slaves/Slave_1/Binary inputs/Binary input 0
multi_drv/SS_DNP3/sm_dnp3_slave/Binary_to_master/OpOutput/port1[1],DNP3 Slave/Slaves/Slave_1/Binary inputs/Binary input 1
multi_drv/SS_DNP3/sm_dnp3_slave/Binary_from_master/In1/Value[0],DNP3 Slave/Slaves/Slave_1/Binary outputs/Binary output 0
multi_drv/SS_DNP3/sm_dnp3_slave/Binary_from_master/In1/Value[1],DNP3 Slave/Slaves/Slave_1/Binary outputs/Binary output 1
multi_drv/SS_DNP3/sm_dnp3_slave/Analog_from_master/In1/Value[0],DNP3 Slave/Slaves/Slave_1/Analog outputs/Analog output 0
multi_drv/SS_DNP3/sm_dnp3_slave/Analog_from_master/In1/Value[1],DNP3 Slave/Slaves/Slave_1/Analog outputs/Analog output 1 |
Create new connections
From python command line in RT-LAB
...
language | py |
---|
...
With the new IO interfaces, these connections cannot be restored but are logged in the migration report. You need to update your IO configuration and/or recreate these connections.
...
The connection paths concerned are listed at the end of the report:
Code Block |
---|
WRN Please note that the following connections can't be etablished:
WRN ??? Invalid connection between MuSE_OP4510V2C_OP4520R_OP4200R/SM_Master/RemoteIOs_OP4612/Digital_In/Remote_OP4612_DigitalIn_Ch00-07/In1/Value[0:7] and OPAL-RT Board/Slot 2A - Digital in/Channels 0 - 7 (Static)[0:7]
WRN ??? Invalid connection between MuSE_OP4510V2C_OP4520R_OP4200R/SM_Master/RemoteIOs_OP4612/Digital_In/Remote_OP4612_DigitalIn_Ch08-15/In1/Value[0:7] and OPAL-RT Board/Slot 2A - Digital in/Channels 8 - 15 (Static)[0:7]
...
WRN 13 invalid connections |
Errors on datapoints may be reported but are not critical to complete migration, it should be the case if these datapoints are involved in invalid connections as mentioned above
Code Block |
---|
ERR Invalid datapoint OPAL-RT Board/Slot 2A - Digital in/Channels 0 - 7 (Static)[0:7]
ERR Invalid datapoint OPAL-RT Board/Slot 2A - Digital in/Channels 8 - 15 (Static)[0:7] |
Any kind of critical error may stop the migration process. In these special cases, you may try to rebuild your model(s) and reopen your project to relaunch migration. If the problem persists, please contact OPAL-RT support.