Skip to content

Introduction

Version: 1.0.0

What is the IEC61850 protocol?

IEC 61850 is an international communication protocol designed for Intelligent Electronic Devices (IED). This protocol works over TCP/IP ethernet and provides high-speed communication between power generation facilities and substations. The standardization of the protocol is designed to improve interoperability between equipment provided by different vendors. Check out the references section for more information.

The ESF IEC 61850 driver embeds a Java IEC61850 library to expose as an ESF driver an IEC 61850 MMS client.

What IEC61850 Data looks like

IEC61850 provides data in a treelike structure. A piece of data can be read/written by using an object reference string. Each data object is also tagged with a functional constraint. A Functional Constraint acts as a data qualifier, indicating what kind of data to expect and what access rights are applied to it.

DataModel

How to use the IEC61850

  1. Driver Setup
    • Server Address: address for IEC61850 server
    • Server Port: The port the IEC61850 service is running on. By default this port is 102. iec-driver
  2. Asset Setup

    • Create a New Channel and fill out the following fields.
      • Type: Determine whether ESF will attempt to read, write, or read & write.
      • Value.Type: The data type of the object you are attempting to read of from IEC61850 server.
      • To JSON: When checked, ESF will represent the IEC61850 data values in JSON format
      • Object Reference: refers to the String reference of the data object you wish to access from the IEC61850.
      • Constraint: refers to the Functional Constraint of the data object you wish to access from the IEC61850 server. iec-asset

    Warning

    Channel Listen mode is not supported in the current driver implementation. The current suggested interaction mode is by using polling with a Timer component triggering the reads from the specified asset.

  3. After the channel and driver have been configured. The data can be read/written to by going to the 'Data' tab.

    • The following is an example of a channel configured for read. The value is shown on the right side, and the status of the value is visible in the middle column. iec-read

    • The following is an example of a channel configured for write. A value can be updated by filling in the textbox on the right hand side, then the changes can be submitted by pressing the write button on the top left. iec-read-write

How ESF Interprets IEC61850 Data types

The IEC61850 standard provides standard data types for data objects. When reading/writing from a data model, ESF will convert the IEC61850 datatype to the closest standard EC supported type and back.

ESF/EC Data Type IEC 61850 DataType
BOOLEAN boolean
INTEGER INT8, INT16, INT32, INT64, INT128, INT8U, INT16U, INT32U
FLOAT FLOAT32, FLOAT64
STRING OCTET_STRING, VISIBLE_STRING, UNICODE_STRING, TIMESTAMP, QUALITY
BYTE_ARRAY No Explicit Mappings available
DOUBLE No Explicit Mappings available
LONG No Explicit Mappings available
No ESF/EC Mappings ENTRY_TIME, CHECK, DOUBLE_BIT_POS, TAP_COMMAND, TRIGGER_CONDITIONS, OPTFLDS, REASON_FOR_INCLUSION

How ESF Interprets IEC61850 functional constraints

Functional constraints are used by the IEC61850 to qualify data objects. The following is a list of all functional constraints supported by the current IEC61850 implementation and will describe any special functionally ESF can perform for some constraints.

  • [BL] - Blocking
  • [BR] - Buffered Reporting
  • [CF] - Configuration
  • [CO] - Control
  • [DC] - Description
  • [EX] - Extended definition
  • [MX] - Measurands - analogue values
  • [OR] - Operate received
  • [RP] - Unbuffered Reporting
  • [SE] - Setting group editable
  • [SG] - Setting group
  • [SP] - Setpoint
  • [SR] - Service response / Service tracking
  • [ST] - Status information
    • ST Functional Constraints have a special mapping with the ESF.
    • when object reference is set to the root of a ST val the wire record will be build with the following characteristics.
      1. WireRecord timestamp will be set from ST object.
      2. WireRecord will only be created if quality is '0000'/'Good'.
      3. WireRecord value will be set to stVal with the ST object.
  • [SV] - Substitution