...
- Periodic reading of values (polling)
- Reading of values from predefined Datasets made available in predefined Information Reports - both buffered and unbuffered
- Reading of array elements which are simple values
- Writing to simple types of values (writing to structures is not implemented yet)
- Writing to array elements of which are simple values
- Writing - control according to the "Select Before Operate With Enhanced Security" model
- Browsing - when communication is established, the following items can be browsed:
...
The protocol was tested with:
- software simulators
...
...
- ABB Feeder protection and control REF615
...
- communication adapter ABB SPA-ZC 400
Note for ABB SPA-ZC 400: when adding objects to the dataset (in Communication Enginering Tool for SPA-ZC40x), it is necessary to check the option "Export Datasets DO Level" so that the entire object (e.g. Pos) is added as one structured variable (otherwise, its components are added as independent report items, e.g. Pos$stVal, Pos$q, Pos$t).
Kotva | ||||
---|---|---|---|---|
|
...
- Communication line category: TCP/IP-TCP.
- TCP Parameters:
- Host: string max. 80 characters – server name in INET format (a name or numerical address a.b.c.d)
- Port: TCP port number (0 to 65535), port 102 is used by default.
- Line number:
...
- Communication line category: TCP/IP-TCP.
- TCP Parameters:
- Host: string max. 80 characters – server name in INET format (a name or numerical address a.b.c.d)
- Port: TCP port number (0 to 65535), port 102 is used by default.
- Line number: not used, set to 1
A valid hostname or IP address of the device must be entered according to the rules above.
...
Parameter | Meaning | Unit / Type | Default value | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Address parameters of the local side (D2000 KOM process) | ||||||||||||||||||||||||||||||||||||
| Octet string that represents the local Transport Selector. It identifies Transport SAP. The maximum size is 32 octets (64 ASCII-encoded hexadecimal digits). | octet string | 00 01 | |||||||||||||||||||||||||||||||||
| Octet string that represents the local Session Selector. It identifies Session SAP. The maximum size is 16 octets (32 ASCII-encoded hexadecimal digits). | octet string | 00 01 | |||||||||||||||||||||||||||||||||
| Octet string that represents the local Presentation Selector. It identifies Presentation SAP. The maximum size is 16 octets (32 ASCII-encoded hexadecimal digits). | octet string | 00 00 00 01 | |||||||||||||||||||||||||||||||||
| The 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 | |||||||||||||||||||||||||||||||||
| Integer value used to identify the local Application Entity. | string | 1 | |||||||||||||||||||||||||||||||||
Address parameters of the remote side (the IED device) | ||||||||||||||||||||||||||||||||||||
| Octet string that represents the remote Transport Selector. It identifies Transport SAP. The maximum size is 32 octets (64 ASCII-encoded hexadecimal digits). | octet string | 00 01 | |||||||||||||||||||||||||||||||||
| Octet string that represents the remote Session Selector. It identifies Session SAP. The maximum size is 16 octets (32 ASCII-encoded hexadecimal digits). | octet string | 00 01 | |||||||||||||||||||||||||||||||||
| Octet string that represents the remote Presentation Selector. It identifies Presentation SAP. The maximum size is 16 octets (32 ASCII-encoded hexadecimal digits). | octet string | 00 00 00 01 | |||||||||||||||||||||||||||||||||
| 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 | |||||||||||||||||||||||||||||||||
| Integer value used to identify the remote Application Entity. | string | 1 | |||||||||||||||||||||||||||||||||
Common address parameters | ||||||||||||||||||||||||||||||||||||
| Name of the bilateral table. In the case of IEC 61850, this can be an empty string. | - | ||||||||||||||||||||||||||||||||||
| Maximum size of MMS messages. Some ABB devices need to increase this parameter (e.g. to 100,000) because they do not support sending a list of objects (GetNameList message) in parts. | bytes | 32000 | |||||||||||||||||||||||||||||||||
| Maximum proposed transactions that could be sent and unacknowledged. The value can be reduced if the other party suggests a lower value at negotiation. | 1 .. 32 | 5 | |||||||||||||||||||||||||||||||||
| Maximum proposed transactions that could be received without sending an acknowledgment. The parameter value is sent to the other party. | 1 .. 32 | 5 | |||||||||||||||||||||||||||||||||
| The maximum level of nesting for MMS data structures. | 1 .. 10 | 5 | |||||||||||||||||||||||||||||||||
| The maximum packet size for "ISO over TCP" protocol level (according to RFC 1006) | 8192/4096/2048/1024/512/256/128 bytes | 1024 bytes | |||||||||||||||||||||||||||||||||
| Timer, which permits the sending of an 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 the TCP/IP level, fast detection ensures its faster restoration. | sec | 0 | |||||||||||||||||||||||||||||||||
| Delay inserted before repeated attempts to establish the connection after it has been broken. If the connection should be restored as fast as possible, set a small value or 0 seconds. | sec | 10 sec | |||||||||||||||||||||||||||||||||
| 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 | |||||||||||||||||||||||||||||||||
| The parameter activates creating TCP connections for each station. If the device supports multiple clients, communication can be parallelized. | YES/NO | NO | |||||||||||||||||||||||||||||||||
| The way IEC 61850 flags are mapped into D2000 flags A .. M. IEC 61850 protocol has quality flags mapped into 13 bits of the 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 the KOM process or communication partner so that all values come into the system with properly set flags. | None / Simple | None | |||||||||||||||||||||||||||||||||
| The setting of Trigger parameters 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 | |||||||||||||||||||||||||||||||||
| The parameter enables specifying additional names of objects to query during browsing for I/O tags. Names must be separated by a space, e.g. "Obj1 Obj2". This makes it possible to handle the situation when IED deliberately does not list some objects in the GetNameList-Response message (response to a requested list of objects within a logical device). | |||||||||||||||||||||||||||||||||||
| Type of authentication. These types of authentication are supported:
| None Password | None | |||||||||||||||||||||||||||||||||
| Password used if Authentication Type = Password | string | ||||||||||||||||||||||||||||||||||
Debug Write settings | ||||||||||||||||||||||||||||||||||||
Write Mode - Select/Execute
| Method of writing for WriteType of SelectWithValue, Operate, Cancel, and TimeActivatedOperate types:
| One structured write | ||||||||||||||||||||||||||||||||||
Control - Originator Category
| Parameter Originator Category ($origin$orCat) for WriteType of SelectWithValue, Operate, Cancel, and TimeActivatedOperate types. The parameter is a numeric value representing the category of the device performing the write:
| 0 | ||||||||||||||||||||||||||||||||||
Control - Originator Identifier
| Parameter Originator Identifier ($origin$orIdent) for WriteType of SelectWithValue, Operate, Cancel, and TimeActivatedOperate types. The parameter is a text identifier of the device that performs the write. | D2000 | ||||||||||||||||||||||||||||||||||
Debug settings | ||||||||||||||||||||||||||||||||||||
| Enables debug information on the level of binary packets | |||||||||||||||||||||||||||||||||||
Kotva | iobpd | iobpd | Debug I/O binary packets infoEnables debug information on the level of binary packets. See Note 1. | YES/NO | NO | |||||||||||||||||||||||||||||||
Kotva | isolpd | isolpd | Debug ISO packet level infoEnables debug information on the ISO OSI layer. See Note 1. | YES/NO | NO | |||||||||||||||||||||||||||||||
Kotva | mmslpd | mmslpd | Debug MMS level infoEnables debug information on the MMS data level. See Note 1. | YES/NO | NO | |||||||||||||||||||||||||||||||
Kotva | tase2lpd | tase2lpd | Full IEC61850 level infoEnables debug information on the top level of IEC 61850 data. See Note 1.YES/NO | NO | Kotva | | vilpd | vilpd | Incoming values infoEnables detailed debug information about incoming values (data values). See Note 1.YES/NO | NO | ||||||||||||||||||||||||||
| Enables detailed debug information about outgoing values (data values). See on the ISO OSI layer. See Note 1. | YES/NO | NO | |||||||||||||||||||||||||||||||||
|
...
|
...
If all debug info is enabled, it could cause an overload of a communication workstation and a decrease of the data transfer rate from IED to D2000. After the communication is tuned and debugged, we recommend minimizing the amount of debugging information.
...
| Enables debug information on the MMS data level. See Note 1. | YES/NO | NO | ||||||
| Enables debug information on the top level of IEC 61850 data. See Note 1. | YES/NO | NO | ||||||
| Enables detailed debug information about incoming values (data values). See Note 1. | YES/NO | NO | ||||||
| Enables detailed debug information about outgoing values (data values). See Note 1. | YES/NO | NO |
Kotva | ||||
---|---|---|---|---|
|
If all debug info is enabled, it could cause an overload of a communication workstation and a decrease of the data transfer rate from IED to D2000. After the communication is tuned and debugged, we recommend minimizing the amount of debugging information.
Kotva | ||||
---|---|---|---|---|
|
...
- Communication protocol "IEC 61850".
- Polling parameters are used for reading I/O tags of the "Periodically polled value" type.
- The protocol does not support time synchronization.
- in the Time parameters tab, monotonic UTC time (with offset 0) should be set, as IEC 61850 uses UTC-based timestamps (unless a specific implementation is non-compliant with this part of the standard).
Station address
Img. No. 1, Station address
The station corresponds to one logical device. In one physical device, one or more logical devices can be defined. The domain is the name of the logical device values which we want to read. Multiple stations can be on one line. For each station, a dedicated TCP connection to a defined physical device will be created.
The Browse button enables getting 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 the parameter ObjectClass = DOMAIN.
Kotva | ||||
---|---|---|---|---|
|
...
Communication station - configuration dialog box - tab Protocol parameters.
These parameters influence some optional parameters of the protocol. You can set the following station parameters:
Table 2
Object group | Parameter |
---|
- Communication protocol "IEC 61850".
- Polling parameters are used for reading I/O tags of the "Periodically polled value" type.
- The protocol does not support time synchronization.
- in the Time parameters tab, monotonic UTC time (with offset 0) should be set, as IEC 61850 uses UTC-based timestamps (unless a specific implementation is non-compliant with this part of the standard).
Station address
Img. No. 1, Station address
The station corresponds to one logical device. In one physical device, one or more logical devices can be defined. The domain is the name of the logical device values which we want to read. Multiple stations can be on one line. For each station, a dedicated TCP connection to a defined physical device will be created.
The Browse button enables getting 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 the parameter ObjectClass = DOMAIN.
...
Communication station - configuration dialog box - tab Protocol parameters.
These parameters influence some optional parameters of the protocol. You can set the following station parameters:
Table 2
Object group | Parameter | Meaning | Unit / size | |||||||
---|---|---|---|---|---|---|---|---|---|---|
Interpretation of quaternary values |
| Interpretation of Quaternary value Error from the received integer value or from 2-bit State value. | 0, 1, 2, 3 | 3 (11 binary) | ||||||
| Interpretation of Quaternary value Off from the received integer value or from 2-bit State value. | 0, 1, 2, 3 | 2 (10 binary) | |||||||
| Interpretation of Quaternary value On from the received integer value or from 2-bit State value. | 0, 1, 2, 3 | 1 (01 binary) | |||||||
| Interpretation of Quaternary value Transient/Moving from the received integer value or from 2-bit State value. | 0, 1, 2, 3 | 0 (00 binary) |
...
Log line | Note |
---|---|
14:35:36.198 09-07-2018|D|MMS> [1] STRUCTURE{ | An 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 the "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 the 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.
Period
This parameter is enabled for the I/O tags of the "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 the 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.
Write Parameters Kotva write_parameters write_parameters
This section allows you to set parameters for writing.
Write type - the type of writing. IEC-61850 defines 4 write models (IEC 61850-7-2): Kotva write_type write_type
- Direct control with normal security: services Operate, TimeActivatedOperate, Cancel
- SBO control with normal security (SBO): services Select, Cancel, Operate, TimeActivatedOperate
- Direct control with enhanced security: services Operate, Cancel, TimeActivatedOperate
- SBO control with enhanced security (SBOw): services SelectWithValue, Cancel, Operate, TimeActivatedOperate
The following options are available:
- Simple - simple, standard write
- Select (SBO) - the first phase (Select) of the two-phase writing model "Select Before Operate With Normal Security" - reading the text variable $SBO (e.g. Obj3CSWI2$CO$Pos$SBO)
- SelectWithValue (SBOw) - the first phase (SelectWithValue) of the two-phase writing model "Select Before Operate With Enhanced Security" - writing to the item $ctlVal (and others) of the control structure $SBOw (e.g. Obj3CSWI2$CO$Pos$SBOw) which contains items $ctlVal, $origin$orCat, $origin$orIdent, $ctlNum, $T, $Test, $Check, and optionally $operTm (support for TimeActivatedOperate).
- Operate (*) - the Operate phase in all models - writing to the $ctlVal item (and others) of the $Oper control structure (e.g. Obj3CSWI2$CO$Pos$Oper) which contains the items $ctlVal, $origin$orCat, $origin$orIdent, $ctlNum, $T, $Test, $Check, and optionally $operTm.
- Cancel (*) - the cancellation of the writing in all models after the 1st phase (Select/SelectWithValue) by writing to the $ctlVal item of the $Cancel control structure (e.g. Obj3CSWI2$CO$Pos$Cancel) which contains the items $ctlVal, $origin$orCat, $origin$orIdent, $ctlNum, $T, $Test, $Check, and optionally $operTm.
- TimeActivatedOperate (*) - similar to the Operate phase in all models, but a non-zero value is also written to the $operTm item, which causes the operation to be performed at the scheduled time (if Cancel is not performed by then).
The following write parameters do not apply to the Simple write type.
Synchro Check - setting the appropriate bit in the $Check item for the SelectWithValue/Operate/TimeActivatedOperate write types.
Interlock Check - setting the appropriate bit in the $Check item for the SelectWithValue/Operate/TimeActivatedOperate write types.
Test - the value written to $Test item (True/False) for the SelectWithValue/Operate/TimeActivatedOperate/Cancel write types.
Time - if the option is checked, the time of the written value is written into the $T item (otherwise zero time) for the SelectWithValue/Operate/TimeActivatedOperate/Cancel write types.
OperTm - if the option is checked, the optional item $operTm is also written to (the value 0 is written) for the SelectWithValue/Operate/Cancel write types. The $operTm item is always written for the TimeActivatedOperate write type (time of the written value).
Note:
- for WriteType = Select, the Name must end with the string $SBO, e.g. CBCSWI1$CO$Pos$SBO
- for WriteType = SelectWithValue/Operate/Cancel/TimeActivatedOperate, the Name must end with the string $ctlVal, e.g. CBCSWI1$CO$Pos$SBOw$ctlVal (SelectWithValue/TimeActivatedOperate), CBCSWI1$CO$Pos$Oper$ctlVal (Operate), CBCSWI1$CO$Pos$Cancel$ctlVal (Cancel)
Kotva | ||||
---|---|---|---|---|
|
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.
...
- Ver. 1.0 - June 20, 2018 - Creation of document.
- Ver. 1.1 - March 28, 2023 - Extension of browsing with icons for objects with time and quality
- Ver. 1.2 - June 19, 2023 - Expanding the dialog to support different types of writing (Select/Operate/Cancel)
Info | ||
---|---|---|
| ||
...