Protocol description
Communication line configuration
Communication line protocol parameters
Communication station configuration
Station protocol parameters
I/O tag configuration
I/O tag address
Comments on ABB Substation management unit COM600
Tell commands
Literature
Zmeny a úpravy
Revízie dokumentu
Protocol IEC 61850 is an IEC standard designed for communication with Intelligent Electronic Devices (IED) at electrical substations (breakers, protections, transformers, switches etc).
Protocol IEC 61850 is - like IEC 60870-6 ICCP/TASE.2 - based on the Manufacturing Message Specification (MMS) and therefore the implementation in the D2000 KOM process uses a common MMS framework.
Implementation of IEC 61850 protocol in D2000 system supports this functionality:
There is no support for processing of GOOSE and GSSE reports.
The ISO over TCP / IP transmission layer is implemented according to the RFC 1006 specification.
The protocol was tested with software simulators and with ABB Substation management unit COM600.
A valid host name or IP address of the device must be entered according to the rules above.
The port number where the device is listening must also be entered. The ISO over TCP/IP standard uses port 102.
In the case of redundant systems, it is also possible to enter multiple comma-separated names/addresses. When the connection is broken, the communication process will again attempt to establish a connection to the device at given address. If the atttempt is unsuccessful, then the process tries to establish a connection to next address. This is repeated cyclically until the connection with one server is established.
Communication lines - configuration dialog box - tab Protocol parameters.
These parameters influence some optional parameters of protocol. You can define the following parameters:
Table 1
Parameter | Meaning | Unit / Type | Default value |
---|---|---|---|
Adress parameters of local side (D2000 KOM process) | |||
Local TSEL (hex) | Octet string that represents the local Transport Selector. It identifies the Transport SAP. The maximum size is 32 octets (64 ASCII encoded hexadecimal digits). | octet string | 00 01 |
Local SSEL (hex) | Octet string that represents the local Session Selector. It identifies the Session SAP. The maximum size is 16 octets (32 ASCII encoded hexadecimal digits). | octet string | 00 01 |
Local PSEL (hex) | Octet string that represents the local Presentation Selector. It identifies the Presentation SAP. The maximum size is 16 octets (32 ASCII encoded hexadecimal digits). | octet string | 00 00 00 01 |
Local AP Title | Local Application Process Title is an identifier that is assigned by an address manager. It represents a specific application process. | string | 1.3.9999.1 |
Local AE Qualifier | Integer value used to identify the local Application Entity. | string | 1 |
Adress parameters of remote side (the IED device) | |||
Remote TSEL (hex) | Octet string that represents the remote Transport Selector. It identifies the Transport SAP. The maximum size is 32 octets (64 ASCII encoded hexadecimal digits). | octet string | 00 01 |
Remote SSEL (hex) | Octet string that represents the remote Session Selector. It identifies the Session SAP. The maximum size is 16 octets (32 ASCII encoded hexadecimal digits). | octet string | 00 01 |
Remote PSEL (hex) | Octet string that represents the remote Presentation Selector. It identifies the Presentation SAP. The maximum size is 16 octets (32 ASCII encoded hexadecimal digits). | octet string | 00 00 00 01 |
Remote AP Title | Remote Application Process Title is an identifier that is assigned by an address manager. It represents a specific application process. | string | 1.3.9999.1 |
Remote AE Qualifier | Integer value used to identify the remote Application Entity. | string | 1 |
Common adress parameters | |||
Bilateral Table ID | Name of the bilateral table. In case of IEC 61850 this can be an empt string. | - | |
Max MMS Message Size | Maximum size of MMS messages. | bytes | 32000 |
Max Requests Pending | Maximum proposed transactions that could be sent and unacknowledged. The value can be reduced if the other party suggests lower value at negotiation. | 1 .. 32 | 5 |
Max Indications Pending | Maximum proposed transactions that could be received without sending an acknowledge. The value is sent to the other party. | 1 .. 32 | 5 |
Max Nesting Level | Maximum level of nesting for MMS data structures. | 1 .. 10 | 5 |
ISO TPDU Size | The maximum packet size for "ISO over TCP" protocol level (according to RFC 1006) | 8192/4096/2048/1024/512/256/128 bytes | 1024 bytes |
Heartbeat | Timer, which permits the sending ICCP message Identify request to the communicating party to find out the validity of TCP/IP connection. To enable the timer a nonzero value must be specified. If the connection was aborted on TCP/IP level, the fast detection ensures its faster restoring. | sec | 0 |
Retry Delay | Delay inserted before repeated attempt to establish the connection after it has been broken. If the connection should be restored as fast as possible, set the low value or 0 seconds. | sec | 10 sec |
Inter Read Timeout | Maximum waiting time to receive TCP data. After this timeout elapses, the possible requirements (data) for sending to a communicating party are checked. | msec | 100 msec |
Parallel Stations | The parameter activates creating TCP connections for each station. If the device supports multiple clients, communication can be parallelised. | YES/NO | NO |
Map IEC 61850 flags | The way IEC 61850 flags are mapped into D2000 flags FA..FM. IEC 61850 protocol has quality flags mapped into 13 bits of Quality attribute, details are given in the description of the parameter Quality Index: Mapping can be:
Note: after the change of this parameter we recommend a restart of KOM process or communication partner so that all values come into the system with properly set flags. | None / Simple | None |
Report Trigger Options | Setting of Trigger prameters used to trigger reports (TrgOps). The following bits are used according to the standard (the numbering is from the highest bit, which is bit 0):
Note: ABB Substation Management Unit COM600 required 0x64, it did not support bit 3 - data-update. | 1 byte octet string | 74 |
Authentication Type | Type of authentication. These types of authentication are supported:
| None Password | None |
Password | Password used if Authentication Type = Password | string | |
Debug settings | |||
Debug I/O binary packets info | Enables debug information on the level of binary packets. See Note 1. | YES/NO | NO |
Debug ISO packet level info | Enables debug information on ISO OSI layer. See Note 1. | YES/NO | NO |
Debug MMS level info | Enables debug information on MMS data level. See Note 1. | YES/NO | NO |
Full IEC61850 level info | Enables debug information on the top level of IEC 61850 data. See Note 1 | YES/NO | NO |
Incomming values info | Enables a detail debug information about incoming values (data values). See Note 1. | YES/NO | NO |
Outgoing values info | Enables a detail debug information about outgoing values (data values). See Note 1. | YES/NO | NO |
Note 1
If all debug info are enabled, it could cause an overload of communication workstation and decrease of data transfer rate from IED to D2000. After the communication is tuned and debugged, we recommend to minimize the amount of debug information.
Img. No. 1, Station address
The station corresponds to one logical device. In one physical device, one or more logical devices can be defined. Domain is the name of the logical device values of which we want to read. Multiple statiosn can be on one line. For each station a dedicated TCP connection to defined physical device will be created.
The Browse button enables to get a list of logical devices (if the KOM process is running and communication is established). For Browsing functionality, the device must implement support for getNameList request with parameter ObjectClass = DOMAIN.
Communication station - configuration dialog box - tab Protocol parameters.
These parameters influence some optional parameters of protocol. You can set the following station parameters:
Table 2
Object group | Parameter | Meaning | Unit / size | |
---|---|---|---|---|
Interpretation of quaternary values | QERR Value | Interpretation of Quaternary value Error from the received integer value or from 2-bit State value. | 0, 1, 2, 3 | 3 (11 binary) |
QOFF Value | Interpretation of Quaternary value Off from the received integer value or from 2-bit State value. | 0, 1, 2, 3 | 2 (10 binary) | |
QON Value | Interpretation of Quaternary value On from the received integer value or from 2-bit State value. | 0, 1, 2, 3 | 1 (01 binary) | |
QTRANS Value | Interpretation of Quaternary value Transient/Moving from the received integer value or from 2-bit State value. | 0, 1, 2, 3 | 0 (00 binary) |
Permitted I/O tag types: Ai, Ao, Ci, Co, Di, Dout, TiA, ToA, TiR, ToR, Qi, TxtI, TxtO
Img. No. 2, I/O tag address (Data Value)
The configuration of I/O tag address requires the following data:
Type of I/O tag:
If the I/O tag representing the report has a text value, the value will be set to to the name of the Dataset (the $DatSet attribute) that the report publishes.
If the I/O tag representing the report has an integer or a real value, the value will be
This mechanism can be used to define "watchdogs" guarding, for example, a communication failure, connection failure or non-working sending of Information Reports.
Name
A unique text string which identifying IEC 61850 object or its attribute (a reference). Maximum size is 64 characters.
Note: if I/O tag's address is specified as %IGNORE, such an I/O tag will be ignored.
According to the standard ISO/IEC IEC 61850-8-1 the reference is in form
<LNVariableName>$<FC>$<LNDataName>$<AttributeName> (napr. XCBR1$ST$Pos$stVal)
respectively - if subattributes are used - in form
<LNVariableName>$<FC>$<LNDataName>$<AttributeName>$<subDataAttributeName> (napr. XBCR1$ST$Pos$origin$orCat)
where:
The standard defines following naming conventions for individual components of a reference:
Defined Functional Constraints according to ISO/IEC IEC 61850-8-1:
FC Name | Description |
---|---|
MX | Measurands (analogue values) |
ST | Status information |
CO | Control service parameters |
CF | Configuration |
DC | Description |
SP | Setting (outside setting group) |
SG | Setting group |
RP | Unbuffered report control blocks |
LG | Log control blocks |
BR | Buffered report control blocks |
GO | GOOSE control blocks |
GS | GSSE control blocks |
SV | Substituted values |
SE | Setting group editing |
MS | Multicast Sampled Values control block |
US | Unicast Sampled Values control block |
EX | Name space for model extension |
SR | Service tracking |
OR | Operate received |
BL | Blocking |
Names of DataObject Attributes and SubDataObject Attributes are defined in ISO/IEC IEC 61850-7-3 and following table contains only the most common ones:
Attribute Name | Description |
---|---|
ctlModel | Specifies the control model of IEC 61850-7-2 that corresponds to the behaviour of the data. |
d | Textual description of the data. |
evalTm | Time window applied to interharmonic calculations. The value shall be represented in ms. |
frequency | Nominal frequency of the power system or some other fundamental frequency in Hz. |
instMag | Magnitude of a the instantaneous value of a measured value. |
mag | Deadbanded value. Shall be based on a dead band calculation from instMag. |
numCyc | Number of cycles of power frequency, which are used for harmonic, subharmonic and interharmonic calculations. |
numHar | Number of harmonic and subharmonics or interharmonic values that are to be returned as the value attribute. |
phsAHar, phsBHar, phsCHar | This array shall contain the harmonic and subharmonics or interharmonic values related to phase A (resp. B, C). |
phsABHar, phsBCHar, phsCAHar | This array shall contain the harmonic and subharmonics or interharmonic values related to phase A to phase B (resp. B to C, resp. C to A). |
q | Quality of the attribute(s) epresenting the value of the data |
setCharact | This attribute shall describe the curve characteristic. |
setMag | The value of an analogue setting or set point. |
stVal | Status value of the data |
swRev | SW-revision |
t | Timestamp of the last change in one of the attribute(s) representing the value of the data or in the q attribute. |
units | Units of the attribute(s) representing the value of the data (ISO/IEC IEC 61850-7-3 Annex A) |
vendor | Name of the vendor. |
Data Type
The list of permitted data types:
Data Type | Popis |
--- Autodetect --- | The Data Type will be queried by a GetVariableAccessAttributes-Request message after the conection establishment. Note 1: information is currently stored only in KOM process memory, therefore after its restart and the first connection establishment the data type detection is performed for all Autodetect I/O tags. |
Discrete * | ICCP: Integer 32-bit value signed |
DiscreteQ * | ICCP: Integer 32-bit signed value + ICCP Validity |
DiscreteQTimeTag * | ICCP: Integer 32-bit signed value + ICCP Validity + Time stamp |
DiscreteExtended * | ICCP: Integer 32-bit signed value + ICCP Validity + Current Source + Extended time stamp |
Real * | ICCP: Float 32 |
RealQ * | ICCP: Float 32 + ICCP Validity |
RealQTimeTag * | ICCP: Float 32 + ICCP Validity + Time stamp |
RealExtended * | ICCP: Float 32 + ICCP Validity + Current Source + Extended time stamp |
State * | ICCP: Discrete 2-bit value |
StateQ * | ICCP: Discrete 2-bit value + ICCP Validity |
StateQTimeTag * | ICCP: Discrete 2-bit value + ICCP Validity + Time stamp |
StateExtended * | ICCP: Discrete 2-bit value + ICCP Validity + Current Source + Extended time stamp |
Boolean | Boolean value |
Float32 | 32-bit real value |
Float64 | 64-bit real value |
Integer8 | 8-bit signed integer value |
Integer16 | 16-bit signed integer value |
Integer32 | 32-bit signed integer value |
Integer64 | 64-bit signed integer value |
Unsigned8 | 8-bit unsigned integer value |
Unsigned16 | 16-bit unsigned integer value |
Unsigned24 | 24-bit unsigned integer value |
Unsigned32 | 32-bit unsigned integer value |
OctetString | Variable-length binarny string |
VisibleString | Variable-length text string |
UnicodeString | Variable-length text string in UTF8 encoding |
BitString | Variable-length bit string |
UtcTime | Absolute time (format seconds since 1.1.1970 + miliseconds) |
TimeOfDay | Absolute/relative time (format seconds and miliseconds of a day + optionally number of days since 1.1.1984) |
Array of Boolean | Array of Boolean values |
Array of Float32 | Array of 32-bit real values |
Array of Float64 | Array of 64-bit real values |
Array of Integer8 | Array of 8-bit signed integer values |
Array of Integer16 | Array of 16-bit signed integer values |
Array of Integer32 | Array of 32-bit signed integer values |
Array of Integer64 | Array of 64-bit signed integer values |
Array of Unsigned8 | Array of 8-bit unsigned integer values |
Array of Unsigned16 | Array of 16-bit unsigned integer values |
Array of Unsigned24 | Array of 24-bit unsigned integer values |
Array of Unsigned32 | Array of 32-bit unsigned integer values |
Array of OctetString | Array of variable-length binarny strings |
Array of VisibleString | Array of variable-length text strings |
Array of UnicodeString | Array of variable-length text string in UTF8 encoding |
Array of BitString | Array of variable-length bit strings |
Array of UtcTime | Array of absolute times (format seconds since 1.1.1970 + miliseconds) |
Array of TimeOfDay | Array of absolute/relative times (format seconds and miliseconds of a day + optionally number of days since 1.1.1984) |
Structure | Structure or Array. Structure can contain simple types, arrays, and nested structures. Arrays consist of elements that can be simple types (here, however, it is more efficient to use some of the Array of types), structures and arrays. If a data type of an I/O tag is configured as a Structure, the Array Index parameter specifies the complex address of the structure element to be read in the I/O tag. |
Note * - types marked with asterisk (*) are used in IEC 60870-6 ICCP/TASE.2 protocol (which uses a common MMS framework). For IEC 61850, we recommend not using these types.
Array Index
Note: For arrays of elementary types (Array of), the IEC61850 supports writing the received values to a target column of a structured variable.
If the Destination tab in the configuration of I/O tag has a Destination column set to a column of a structured variable, the corresponding array items will be written into it. This only works if the Array Index is not entered or is equal to 0.
For the Structure object type: it is necessary to specify a complex addresss of element (of simple type) within a structure.
The complex address is in form x.y.z.. e.g. 0.2. Individual indices indicate order within a structure or field, a dot indicates a descend deeper.
Example 1: Communication line log shows a structure consisting of VisibleString elements. Individual elements will be accessed by complex addresses 0.0, 0.1 and 0.2
Log line | Note | Simple element |
---|---|---|
08:08:14.322 29-06-2018|D|MMS> [1] STRUCTURE{ | Object of Structure type | |
08:08:14.323 29-06-2018|D|MMS> [1] Structure{ | Level 0 | |
08:08:14.325 29-06-2018|D|MMS> [1] VisibleString=INFO TECH | Level 0.0 | yes |
08:08:14.327 29-06-2018|D|MMS> [1] VisibleString=1.0 | Level 0.1 | yes |
08:08:14.329 29-06-2018|D|MMS> [1] VisibleString=Current harmonics measurement | Level 0.2 | yes |
08:08:14.332 29-06-2018|D|MMS> [1] } | End of structure | |
08:08:14.334 29-06-2018|D|MMS> [1] } | End of Structure object |
Example 2: Communication line log shows an array consisting of two structures that contain structures that contain elements of Float32 type. Individual elements will be accessed by complex addresses 0.0.0 and 1.0.0
Log line | Note | Simple element |
---|---|---|
08:08:14.169 29-06-2018|D|MMS> [1] ARRAY{ | Object of Array type | |
08:08:14.172 29-06-2018|D|MMS> [1] Structure{ | Level 0 | |
08:08:14.173 29-06-2018|D|MMS> [1] Structure{ | Level 0.0 | |
08:08:14.175 29-06-2018|D|MMS> [1] Float32= 0.00000E+00 | Level 0.0.0 | yes |
08:08:14.177 29-06-2018|D|MMS> [1] } | End of structure | |
08:08:14.179 29-06-2018|D|MMS> [1] } | End of structure | |
08:08:14.181 29-06-2018|D|MMS> [1] Structure{ | Level 1 | |
08:08:14.183 29-06-2018|D|MMS> [1] Structure{ | Level 1.0 | |
08:08:14.185 29-06-2018|D|MMS> [1] Float32= 1.00000E+02 | Level 1.0.0 | yes |
08:08:14.186 29-06-2018|D|MMS> [1] } | End of structure | |
08:08:14.188 29-06-2018|D|MMS> [1] } | End of structure | |
08:08:14.188 29-06-2018|D|MMS> [1] } | End of Array |
Quality Index
For the Structure object type: it is possible to specify index where IEC 61850 Quality is located. Format of Quality Index is the same as a complex address.
IEC 61850 Quality is of Bitstring type with length of 2 bytes. 13 quality bits are defined as follows (the standard numbers the bits so that the highest bit is 0 and the lowest is 15):
Bit(s) | Note | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0-1 | Validity:
| |||||||||||||||
2 | Overflow | |||||||||||||||
3 | OutofRange | |||||||||||||||
4 | BadReference | |||||||||||||||
5 | Oscillatory | |||||||||||||||
6 | Failure | |||||||||||||||
7 | OldData | |||||||||||||||
8 | Inconsistent | |||||||||||||||
9 | Inaccurate | |||||||||||||||
10 | Source ( 0-Process, 1-Substituted) | |||||||||||||||
11 | Test | |||||||||||||||
12 | OperatorBlocked | |||||||||||||||
13-15 | unused bits |
If at least one of bits number 2-12 is set, value in D2000 has a Weak attribute.
See the example in Time Index.
Time Index
For the Structure object type: it is possible to specify index where timestamp is located. Format of Time Index is the same as a complex address.
If the Time Index is not specified, the timestamp of the information report (for I/O Tag Type=Buffered/unbuffered report value) or the current time (for I/O Tag Type=Periodically polled value) will be used.
Example: information report contains a structure which contains a Bitstring value followed by qualit and timestamp. Therefore the object's address has Array Index = 0, Quality Index = 1 and Time Index = 2.
Log line | Note |
---|---|
14:35:36.198 09-07-2018|D|MMS> [1] STRUCTURE{ | Object of Structure type |
14:35:36.200 09-07-2018|D|MMS> [1] Bitstring=<80> | Value (Array Index = 0) |
14:35:36.202 09-07-2018|D|MMS> [1] Bitstring=<00><00> | Quality (Quality Index = 1) |
14:35:36.204 09-07-2018|D|MMS> [1] seconds= 1531115260 fraction= 3223372800 (09-07-2018 07:47:40.751) | Timestamp (Time Index = 2) |
14:35:36.206 09-07-2018|D|MMS> [1] } | End of Structure object |
Integrity Period
This parameter is enabled for the I/O tags of "Buffered / Unbuffered Report" type and it specifies a period (in ms) after which a report containing the values of all objects in the given datasheet is generated. Therefore, if a loss of value has occurred in some way, this Integrity Report will periodically restore the integrity of the data. Value 0 turns off the generation of Integrity Report. The non-zero value causes a write to the $IntgPd report attribute during the report activation .
Note: Not all IEC 61850 servers support this parameter.
Browse
For the I/O tags, it is possible to find a list of objects and their data types, as long as the KOM process is running and communication is established.
When a Browse button is clicked, the IEC61850 Browser window opens, and the KOM process begins to query the list of objects with the GetNameList-Request message and then their data types with the GetVariableAccessAttributes-Request message.
Img. no. 3, the IEC 61850 Item Browser window
Meaning of individual choices and buttons:
Auto
If this choice is active, the Data Type will be set to Autodetect, otherwise to value discovered during browsing , e.g. Boolean or Integer32.
Copy all to clipboard
Copies the displayed objects and their respective data types into the Windows Clipboard.
Refresh
By pressing the Refresh button it is possible to enforce re-querying of the list of objects from the device. By default the KOM process reads the list of objects and their respective data types only during the first browse request and stores them in memory. This reading can take a longer time, depending on number of objects and speed of the device. These cached lists are sent to CNF process(es), so that consecutive filling of the Browse window is fast.
Filtering in the list of objects
The browse windows enables filtering by the object name and data type. Tt is not necessary to enter the full text in filter field. Notation "*FILTERED EXPRESSION*" is supported. The symbol * represents any text before and after the expression (e.g. *momen*).
Note
In addition to objects with supported data types (Boolean, Integer32 ...), the object list can contain objects with Structure type. These are the structured objects that can not be directly read. The implementation only supports work with simple types and fields whose elements are simple types, therefore individual items of structured objects need to be communicated.
Command | Syntax | Description |
STWATCH | STWATCH StationName | Tell command sends requests for reading values of all I/O tags. |
-