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.
IEC61850 Introduction
- 1 Description
- 2 Supported Features
- 2.1 General aspects
- 2.2 SCL/SCD/ICD file manipulations
- 2.3 GOOSE publishing & subscribing
- 2.4 Sampled Values publishing & subscribing
- 2.4.1 9-2LE
- 2.4.2 IEC 61869-9
- 2.5 Reports
- 2.6 MMS server
- 2.6.1 Control services
- 3 Configuration
- 3.1 General
- 3.2 Data Logger
- 3.3 SCL/SCD/ICD files
- 3.4 IED
- 3.4.1 MMS server configuration
- 3.4.2 Access points
- 3.4.3 Data sets
- 3.5 GOOSE
- 3.6 Sampled Values
- 3.7 Reports
- 4 Connections
- 4.1 Time synchronization
- 4.2 GOOSE
- 4.2.1 Publishers
- 4.2.2 Subscribers
- 4.3 Sampled Values
- 4.3.1 Publishers 9-2LE
- 4.3.2 Publishers IEC 61869-9
- 4.3.3 Subscribers 9-2LE
- 4.3.4 Subscribers IEC 61869-9
- 4.3.5 Quality word in Sampled Values messages
- 4.4 Reports
- 4.5 MMS data points
- 4.6 Sampled Values Fault Injection
- 4.6.1 Stop Transmission
- 4.6.2 Delay Transmission
- 4.6.3 Duplicate Transmission
- 4.6.4 smpCnt Manipulation
- 4.6.5 smpSynch Manipulation
- 4.6.6 Quality Manipulation
- 5 Limitations
Description
IEC 61850 is a standard for the design of electrical substation automation. It is part of the International Electrotechnical Commission's (IEC) Technical Committee 57 reference architecture for electric power systems. The abstract data models defined in IEC 61850 can be mapped to a number of protocols. Current supported mappings in the standard are to GOOSE (Generic Object Oriented Substation Event), SV (Sampled Values) and MMS (Manufacturing Message Specification). GOOSE and SV can run over substation LANs using high-speed Ethernet switches to obtain the necessary response times of less than 4 ms for protective relaying.
RT-LAB implements the exchange of GOOSE messages (based on chapter IEC 61850-8-1), exchange of SV messages (based on documents IEC 61850-9-2LE and IEC 61869-9) and MMS mapping services (including reporting, also based on chapter IEC 61850-8-1).
Migration details
This interface was introduced in RT-LAB 2022.1 as a redesigned IEC 61850 solution, with added support for the Manufacturing Message Specification (MMS) feature. It is meant to replace the previous implementation, which hereafter will be considered legacy. The legacy interface's documentation can be found here.
In order to facilitate the migration from the legacy solution to the new one, a converter tool was made. It permits porting the configuration of the interface along with its created connections. The converter can be reached by clicking on the legacy interface's Convert to new I/O interface button, as seen in the image below:
The documentation for the converter tool can be found here.
NOTE: Support for the legacy interface will be dropped in version 2024.1. Please ensure to have done the migration to the new interface by that point, either by using the converter tool described above or by recreating the configuration manually.
NOTE: As of RT-LAB 2022.1, the legacy interface can no longer be used to create new configurations. However, all previously made configurations will continue to be supported until version 2024.1.
IEC 61850-8-1 GOOSE
GOOSE is a control model mechanism in which data (status, values) are grouped into data sets and transmitted within a time period of 4 milliseconds. GOOSE data is directly embedded into Ethernet data packets and is exchanged on a publisher-subscriber mechanism on multicast or broadcast MAC addresses.
The same GOOSE message is retransmitted with increasing retransmission time intervals until an event occurs among the data set's elements. At that point, a new message will begin to be broadcast at high speeds containing the most up to date data. Therefore, a message is considered retransmitted if its state number (stNum) is the same as the one of the previous message. Conversely, when the stNum changes, it means that a change has occurred among the GOOSE data set's elements.
Please refer to the IEC 61850-8-1 chapter for further information about the support of GOOSE messages in the IEC 61850 standard.
The contents of GOOSE messages are described in SCL (Substation Configuration Language) files. For more information about the SCL file format, please refer to the IEC 61850-6 chapter of the IEC 61850 standard.
IEC 61850-9-2LE Sampled Values
To facilitate easy synchronization and efficient combination in substations for some signals, the so-called logical merging unit (MU) was introduced. It combines the currents and voltages from three phases along with the neutral currents and voltages into one data set, to transmit them as Sampled Values messages to all subscribing IED (Intelligent Electronic Devices).
The UCA international users group has published the “Implementation guideline for digital interface to instrument transformers using IEC 61850-9-2“. This guideline is an agreement of the vendors participating in the UCA users group on the implementation specifics of digital interfaces to instrument transformers. IEC 61850-9-2 leaves both the grouping of signals into data sets and the sampling rate as free engineering parameters. To reduce acceptance problems, the user convention IEC 61850-9-2LE has recommended values for the most common applications i.e. using 80 samples per cycle for protection and 256 samples per cycle for power quality.
IEC 61869-9 Sampled Values
This standard extends the use of Sampled Values to customizable data sets and sampling rates. The content of an IEC 61869-9 SV message must be described in an SCL file, similarly to GOOSE messages.
IEC 61850-8-1 MMS
MMS is an international standard dealing with messaging systems for transferring real time process data and supervisory control information between networked devices or computer applications. In the IEC 61850 standard, it is the communication protocol chosen to implement a client-sever TCP/IP communication link.
There are two ways to exchange data between clients and servers: through reporting (initiated by servers) or polling (initiated by clients).
A report is an event based transmission of a data set's contents, according to specific trigger options. Its definition is found in an SCL file, similarly to GOOSE and SV IEC 61869-9. The file contains information about the data set the report uses, what its triggers are and which optional fields to include in the packet. When one of the trigger conditions is met, the server IED will send a report containing all data attributes of the concerned data set to all connected clients.
On the other hand, polling is done by the client by performing a direct read of a data attribute that is part of the server.
Supported Features
General aspects
Simulation is supported on Windows and Linux.
The user interface can display the entire data model as well as all data sets of all IED found in any given SCL file
The user interface can display all GOOSE, SV or Report control blocks found in any given SCL file
The values of all data points can be logged to a file or monitored with ScopeView, through an automatically started DataLogger instance.
SCL/SCD/ICD file manipulations
A copy of all SCL files inputted is saved in the project folder. As such, the full portability of projects is ensured.
A file entry can be changed, whether to re-upload the same file whose contents might have been modified, or to change the file entirely. In both these scenarios a change detection mechanism will help the user make an informed decision about whether or not the SCL file entry should be updated.
GOOSE publishing & subscribing
The simulator can transmit and receive GOOSE messages (command, control or status). Publishing and subscribing is configured by providing an SCL/SCD/ICD file and creating connection points for all attributes comprised within the selected GOOSE message's data set.
Sampled Values publishing & subscribing
9-2LE
The simulator can become a merging unit and/or a subscriber in an IEC 61850 architecture. The logical device referred to as Merging Unit (MU) performs a time coherent combination of the current and/or voltage data. The MU contains the Logical Nodes TVTR (voltage transformer) and TCTR (current transformer). It combines the currents and voltages from three phases along with the neutral currents and voltages into one data set, to transmit them as Sampled Values messages to all subscribing IED.
This version of Merging Unit follows the recommendations of the UCA International Users Group, published in the user convention IEC 61850-9-2LE. Mainly, the SV data set is composed of 4 CT/VT transmitted using 80 or 256 samples per cycle. The input data is computed and sent/received by a driver application that runs at a frequency determined by the configured sample rate and nominal frequency.
This I/O interface also supports data integrity manipulation of publisher values.
Simulator throughput
About the size of 9-2LE messages (by SEL)
One 9-2LE Sampled Values stream represents 4.8 Mbps of data throughput. Our simulators support 1 Gbps throughput per Ethernet adapter and provide a minimum of 2 adapters (additional Ethernet cards are optionally available). In a typical configuration, the first adapter is reserved for communication with the host and the second adapter can be used by the simulation. Thus the most basic simulator hardware configuration supports up to 213 9-2LE Sampled Values streams. Considering that the driver runs the asynchronous process at a time step of 208 us and that each message takes approximately 5 us to process, a maximum of 41 streams can be managed per physical core. The driver adapts automatically to the user's needs and reserves additional cores when more than 41 streams are configured. To achieve 213 streams, 6 physical cores are required. By using additional Ethernet cards, expansion chassis and larger CPU, there is no theoretical limit to the number of streams our simulators can manage. Please consider the potential limits imposed by the number of ports of the Ethernet switch(es) or other devices in the network.
Note that these guidelines do not consider mixing GOOSE messages, MMS server communication or other communication protocols on the same Ethernet interface.
IEC 61869-9
Contrary to Sampled Values 9-2LE, the SV data set is composed of a custom number of current and voltage values, usually associated to a quality value. In this standard, the transmission rate is not limited to 80 or 256 samples per cycle. Publishing and subscribing is configured by providing an SCL/SCD/ICD file and creating connection points for all attributes comprised within the selected SV message's data set.
Reports
The simulator can become an MMS server that sends reports to connected clients according to the triggers established for data attributes of interest. Reporting is configured by providing an SCL/SCD/ICD file and creating connection points for all attributes comprised within the selected report's data set.
The trigger options and the optional fields are initially populated with information from the SCL file but are fully configurable to adapt to the simulation's needs.
MMS server
Any IED added as a result of parsing an SCL/SCD/ICD file can be used as an MMS server. Here is a summary of the supported features:
Apart from the reporting feature, clients can also access server data by direct request. As such, they can directly read (though polling) or write (FC permitting) data attributes present in the server.
Clients can send control commands (provided the IED contains controllable objects); the scope of the feature is detailed below.
On Linux systems, the server will bind to the network interface specified in the IED's configuration parameters.
On Linux systems, the IP aliasing functionality can be used to permit multiple IED that use different IP addresses to use the same network interface.
The MMS server's asynchronous computation can be migrated to a dedicated core.
Data sent by the model can be accumulated to compute their RMS value before placing them in the server; this computation is done outside the real time loop.
Control services
The implementation of this feature was done following chapters IEC61850-7-2 (section 20), IEC61850-7-3 (section 7.5) and IEC61850-8-1 (section 20).
IEC61850-7-2 defines 5 models of control, specified as elements of an enumeration:
Mode (enum value) | Details | Commands possible | Notes |
|---|---|---|---|
Status only (0) | In this mode, the server will not accept any commands from the client | None | |
Direct control with normal security (1) | An IED receiving a command will implement it as is | Operate: acts on the Oper attribute Cancel: acts on the Cancel attribute | |
Select-before-operate (SBO) with normal security (2) | Helps prevent against concurrent accesses on the same IED | Select: acts on the SBO attribute Operate: acts on the Oper attribute Cancel: acts on the Cancel attribute | Make sure that the sboTimeout attribute has a value higher than 0. This attribute denotes the amount of time to wait between a select command and an operate command. If that time passes, the object is unselected and the process has to be started over. |
Direct control with enhanced security (3) | Same as the second mode mentioned above but with added feedback upon command completion | Operate: acts on the Oper attribute Cancel: acts on the Cancel attribute | |
Select-before-operate (SBO) with enhanced security (4) | Same as the third mode mentioned above but with added feedback upon command completion | Select: acts on the SBOw (select-with-value) attribute Operate: acts on the Oper attribute Cancel: acts on the Cancel attribute | Make sure that the sboTimeout attribute has a value higher than 0. This attribute denotes the amount of time to wait between a select command and an operate command. If that time passes, the object is unselected and the process has to be started over. |
The table below offers an overview of the controls possible, depending on the common data class (CDC) of the object:
Type of object | Controlled attribute | Type of controlled attribute | Possible outcomes |
|---|---|---|---|
Controllable single point (SPC) | stVal | boolean | stVal can be forced to change its value to 0 or 1 |
Controllable double point (DPC) | stVal | enumerated (interpreted as integer) | stVal can be forced to change its value to 1 (off) or 2 (on) |
Controllable integer status (INC) | stVal | integer | stVal can be forced to change its value to any valid integer |
Controllable enumerated status (ENC) | stVal | enumerated (interpreted as integer) | stVal can be forced to change its value to any valid enumeration index |
Binary controlled step position information (BSC) | valWTr.posVal | integer | valWTr.posVal can be forced to step a value up or down, depending on the received command. The attribute can change values within the range from -64 to 63 (included). |
Integer controlled step position information (ISC) | valWTr.posVal | integer | valWTr.posVal can be forced to any valid integer in the range from -64 to 63 (included) |
Controllable analogue process value (APC) | mxVal.i mxVal.f (either both or just one) | mxVal.i - integer mxVal.f - floating point | mxVal.i and/or mxVal.f can be forced to any valid integer/floating point value. The presence of one or the other depends on what has been included in their SCL file of origin. Most of the times, they are both present. |
Binary controlled analogue process value (BAC) | mxVal.i mxVal.f (either both or just one) | mxVal.i - integer mxVal.f - floating point | mxVal.i and/or mxVal.f can be forced to step a value up or down, depending on the received command. The presence of one or the other depends on what has been included in their SCL file of origin. Most of the times, they are both present. |
Connected clients can send control commands to the objects in the server, provided that:
the objects' common data class is appropriate (as mentioned in the table above)
the control model is different from status only (0)
the control command is appropriate for the control model chosen (e.g. Select cannot be sent when the control model is direct operate)
Configuration
The IEC 61850 communication protocol can be configured through the I/O configuration panel. Adding an instance is done in the Project Explorer (Project Explorer > YOUR_PROJECT > I/Os > Right-click + New I/O > IEC 61850).
General
Time synchronization | Choice for the time synchronization to use for all GOOSE and SV messages. The options are:
To synchronize with a Spectracom TSync card, the only possible option to use is Use connection in model. To synchronize with an Oregano card, both the Use connection in model and Poll synchronization hardware options are possible. |
|---|---|
Use an RT core for the MMS server | If enabled, the driver will reserve a real-time CPU core for its MMS server communication system. Otherwise, it will default to using core 0 (running with the operating system). |
Advanced options | The options below require advanced knowledge of the IEC 61850 standard. |
Enable fixed-length encoding for GOOSE messages (61850-8-1 Ed.2 A.3) | If enabled, the encoding of GOOSE messages will be done according to 61850-8-1 Ed.2 A.3. Some specific fields of the header and some data types will be encoded with a fixed-length, avoiding the compression done by ASN.1. |
Enable simulation flag (Reserved 1) in every SV and GOOSE telegrams | If enabled, the simulation bit in the Reserved 1 field of the header of each transmitted SV and GOOSE message will be set to 1. This will identify the data as being transmitted by a simulated device. |
Enable use of VLAN for SV and GOOSE telegrams | If enabled, all SV and GOOSE frames will be VLAN tagged with the identification number provided as a configuration parameter. |
Enable Sampled Values data integrity manipulation | If enabled, data integrity manipulation mechanisms will be available for the transmission of SV 9-2LE messages. Additional information on all the possible error injection features are described in this document. |
Data Logger
This feature permits recording the values of all data points of this I/O interface during the simulation.
Enabling its use will add all available connectable points of the interface to the recorded signal group. As such, setting up the feature is done entirely in the view shown above.
The information below is taken from the DataLogger Documentation | RT-LAB v.11.3.5 and up.
Record data | If enabled, all data points of the I/O interface will be recorded during the simulation. They can be monitored with ScopeView while the simulation is running. |
|---|---|
Recorder log level | Select the level of verbosity for displaying user messages concerning the DataLogger feature. |
Mode |
|
Export format | Choice for the format of the file containing the recorded values of the monitored signals:
|
Output file auto naming | If selected, the name of the output file will be automatically generated. Naming collisions are therefore avoided as name uniqueness is ensured by appending the timestamp to the filename. Note that the seconds in the generated file name correspond to the time at which the DataLogger prepares the recorded/saved file. This may occur just before the recording starts, or at some time before when a trigger is configured. To provide a custom name for the file, the field must be unchecked. As a result, the Output file name and Append Timestamp fields are made available. |
Output file name | Provide the custom name of the output file. |
Append Timestamp | Activate this to append the timestamp to the end of the filename in the following format: <Year>-<Month>-<Day>-<Hour><Minutes><Seconds>. |
Decimation Factor | Specifies the logging frequency based on a factor of the simulation time step. |
Frame length | The Frame length parameter specifies how many steps are to be recorded without any data loss. A frame corresponds to the number of consecutive steps without loss. Depending on the hardware configuration, some steps may be lost between two frames. |
Frame length unit | Defines the unit of the Frame length parameter. Default unit is in Seconds. |
Number of frames to record | Specifies how many frames to record. Note that there is no data loss within a frame but it may happen between frames. |
Show trigger configuration | If enabled, the trigger configuration parameters will be made available. |
Trigger level | Level value that activates the trigger. For example, a value of 80 means the recording starts when the trigger-signal rises past 80. |
Trigger function | Specifies when a trigger event is generated, depending on the Trigger level or Trigger polarity fields.
|
Trigger polarity | Recording starts when the trigger signal is greater (Positive) or less (Negative) than the parameter Trigger level. Together with the Trigger function and Trigger level, this parameter determines the trigger condition: When the Trigger function is set to Edge:
When the Trigger function is set to Level:
|
Pre-trigger percentage | Percentage of frame length allocated to values occurring before the trigger event. In all cases the trigger event itself is recorded. |
Trigger holdoff | Number of steps to ignore after a frame is completed before re-arming the trigger detection. |
SCL/SCD/ICD files
Adding a file in this list is in most cases the first step to take when building an IEC 61850 configuration in the context of an OPAL-RT simulation. The exception is when only using 9-2LE SV messages, as this type of communication is not defined in an SCL file.
Files are parsed to extract all IED information, including their data model, data sets, and all GOOSE, Sampled Values and Report control blocks.
Each file added is copied into a folder named scl/ found in the project. If the next time RT-LAB is opened the original SCL file is no longer found, the interface will fall back upon using the back-up saved in the scl folder.
When a file is removed, all IED added as a result of its parsing will be removed. This means that all data sets, data model and control blocks associated with those IED will also be removed.
The image below shows an example of a list of SCL/SCD/ICD files:
File path | The selected file will be parsed to retrieve all IED data models as well as all control blocks. |
|---|---|
File name | For ease of use, this field shows only the name of the file provided in the File path field. |
Updating an SCL file entry
A file entry can be changed, whether to re-upload the same file whose contents might have been modified, or to change the file entirely. In both these scenarios a change detection mechanism will help the user make an informed decision about whether or not to continue with the update of the SCL file.
SCL file change workflow
1. Click on a valid entry to browse and select an SCL file (the same or different). This will bring up the refresh menu, asking how to proceed with the configuration's editable parameters that originated from the initial SCL file. The parameters affected by this choice are the ones marked as keep or reset in the table below, in the Updating common elements section.
Keep all modified values | The values of the editable parameters that originated from the initial SCL file will be unaltered. This will ensure that any user modifications are maintained. |
|---|---|
Reset all modified values | The values of the editable parameters that originated from the initial SCL file will be reset to the values found in the new file. All user modifications will be lost. |
2. Select the type of refresh and click OK. A pop-up window will appear, listing all the changes and requesting user input on whether or not to apply them.
3. Click Yes to apply the changes.
Detecting changes within IED
The unique identifier of an IED is its name. Therefore, if its name is no longer found in the new file, the IED in question will be removed; conversely, new IED can be added as a result of parsing the new file. The same principle applies to all layers of the data model: access points, logical devices, logical nodes, data objects and data attributes.
For data sets, their unique identifier is their full path within the IED. For FCDA, the identifier is considered to be the combination of their parameters: node path, data object, data attribute and functional constraint.
This is best illustrated in the two examples below:
Example 1: SCL file A contains information about IED1 and IED2; SCL file B contains information about IED2 and IED3. When file A is changed for file B, the following happens:
IED1 along with its data model, data sets and control blocks will be removed: it was part of file A, but not part of file B
IED2 will be kept: it was part of both files
IED3 along with its data model, data sets and control blocks will be added: it was not part of file A, but it is part of file B
Example 2: Starting with the same two files as above, assume IED2's definition in file A contains a logical device LD10. In file B, IED2's definition sees this logical device change name from LD10 to LD20. When file A is changed for file B, the following happens in the structure of IED2:
LD10 will be removed along with its logical nodes, and consequently its data objects and attributes
LD20 will be added with its own structure of nodes, data objects and attributes
Note that the same principle applies if a file is refreshed i.e. its own content is re-applied after a modification.
Detecting changes within control blocks
A GOOSE, SV or Report control block is considered the same either if its ID is the same or if its path within the IED is the same. Let's look at a few examples:
Example 3: Keeping with the same setup as in the examples above, assume IED2 (which was found in both files A and B) has a GOOSE control block that changed its ID from GoID10 to GoID20. Its name and path within the IED have not changed.
In this scenario, the GOOSE control block will be considered the same and its ID will be successfully changed to GoID20.
Example 4: Now assume that IED2 has another GOOSE control block, whose ID is the same in both files but whose name has changed from gcb_name30 to gcb_name40. As a result, its path within the IED is considered changed.
In this scenario, as in the one above, the GOOSE control block will be considered the same and its name will be successfully changed to gcb_name40.
Example 5: In file A, GOOSE message with ID GoID50 was defined within IED2; However, in file B, GoID50 is now part of IED3. As in the example above, the GOOSE ID is unchanged, but the path is different.
Again, the GOOSE control block will be considered the same and its path will be successfully updated to show that it is published by IED3.
Example 6: Finally, according to file A, IED2 is publishing a GOOSE message with ID GoID60; according to file B, there no longer is any IED publishing a GOOSE message with that ID.
Moreover, according to file B, IED2 is now publishing a GOOSE message with ID GoID70, which was not previously defined in file A.
When file A is changed for file B, the following happens:
GOOSE message with ID GoID60 (published by IED2) will be removed from the configuration: it was part of file A, but not part of file B
GOOSE message with ID GoID70 (published by IED2) will be added to the configuration: it was not part of file A, but it is part of file B
Updating common elements
The parameters of the elements that were deemed common to both files according to the constraints explained above (such as IED2 in the examples) can be divided into 3 categories:
keep: applies to parameters that did not originate from an SCL file, such as the MMS server configuration parameters. The values of these parameters will remain unaltered during SCL file changes
reset: applies to read-only parameters that did originate from an SCL file, such as the dataset path of GOOSE items. Their value will be reset to the value found in the new SCL file
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