IEC 60870-6 ICCP/TASE.2 communication protocol
Description
Communication line configuration
Communication line protocol parameters
Communication station configuration
Station protocol parameters
I/O tag configuration
I/O address
Tell commands
Literature
Changes and modifications
Document revisions
Kotva | ||||
---|---|---|---|---|
|
...
IEC 60870 part 6 belongs to the IEC 60870 set of standards that are used for remote control, monitoring, and telemetry in both the telecommunication networks of electric (power) systems and the applications for control of energy centers. IEC 60870-6 standard is based on the functional-profile theory. A description of the functional profiles, their classification, and defining is taken from IEC 60870-6-1.
A profile for the Telecontrol Application Service Element 2 (TASE.2) is known as ICCP - Inter-Control Centre Communications Protocol. TASE.2 in the application layer is defined in the IEC 60870-6-503 standard. This standard defines the protocol of the application layer so that it accomplish accomplishes the requirements for functional cooperation. It also defines the requirements for both the presentation and relation layers that provides TASE.2 provides.
TASE.2 protocol is based on MMS (Manufacturing Message Specification). The basic functions of ICCP are specified as a set of so-called "Conformance Blocks".
...
- Periodic System Data: Status points, analogue analog points, quality flags, time stamptimestamp, change of value counter. Association objects to control ICCP sessions.
- Extended Data Set Condition Monitoring: Provides report-by-exception capability for the data types that block 1 is able to transfer periodically.
There is implemented a A transmission layer ISO over TCP/IP is implemented according to RFC 1006 specification.
...
- 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) or the text "ALL"
- Port: TCP port number (0 to 65535), port 102 is used by default.
- Line number: not used, set 1
If the ICCP connection is initiate initiated by D2000 (the address Initiate address parameter Initiate), you must enter a valid host name hostname of the ICCP server according to the above-mentioned rules. If, on the contrary, D2000 accepts the received request for ICCP connection, you must enter the text "ALL" to the Host field. It means , that the D2000 System will listen on all interfaces that belongs belong to the particular server (with running the D2000 KOM process). If the listening is required only on the particular interface, enter the IP address of this server interface in INET format.
Note: When the D2000 KOM process works as an ICCP Server, it is able to handle multiple ICCP Clients at the same time (it is multiserver).
If D2000 System initiate initiates this connection (the address parameter Initiate address parameter), you must also enter the port number on which a target ICCP server listens. The protocol ISO over TCP/IP protocol uses the port 102. If D2000 System only accepts the incoming connections, the port number is not used (enter for example 1). The number of bound TCP port number is defined by the line protocol parameter "Bind TCP port". This feature enables the operation of ICCP protocol as a client and server simultaneously.
For redundant systems, the user may set more names/addresses separated by a comma. When the connection has failedfails, the communication process tries will try to reconnect to the server on the given address. If it failed fails again, the process tries will try to establish the a connection with to the next address. It repeats this action cyclically until it establishes the connection with one of the servers.
...
Communication lines - configuration dialog box - tab Protocol parameters.
These parameters influence some optional parameters of the protocol. You can define the following parameters:
...
Parameter | Meaning | Unit | Default value | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Name of the bilateral table. The basic data for the identification of the connection between centers. | - | ||||||||||||||||||||||||||||||||
| Maximum size of MMS messages. | bytes | 32000 | |||||||||||||||||||||||||||||||
| Maximum proposed transactions that could be sent and unacknowledged. The value can be reduced if a co-center suggests a lower value at during negotiation. | 1 .. 32 | 5 | |||||||||||||||||||||||||||||||
| Maximum proposed transactions that could be received without sending an acknowledge. The value is sent to a partner. | 1 .. 32 | 5 | |||||||||||||||||||||||||||||||
| Maximum The maximum level of nesting for MMS data structures. | 1 .. 10 | 5 | |||||||||||||||||||||||||||||||
| IP address at which the D2000 KOM listens for incoming connection requests from external centers (if the Bind TCP Port is non-zero). If the value is not specified, it listens on all IP addresses that are available on the computer with the D2000 KOM process. | - | - | |||||||||||||||||||||||||||||||
| TCP port number where the D2000 KOM process process accepts the incoming requests for connection from the external centers. If the value is 0, the D2000 KOM process process does not accept external requests for connection. | 0 .. 65535 | 102 | |||||||||||||||||||||||||||||||
| 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 ICCP message Identify request to Remote control center 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, the fast detection ensures its faster restoring. This parameter is recommended in situations when transmitting data via large networks , when the less fewer data are transmitted via the active connection or there are high timeouts for transmission of Reports (e.g. value of Interval parameter). The value 0 (implicit) turns out HeartBeat timertimer off. Other positive values means mean the seconds to send a Heartbeat message. If any some message is sent, the Heartbeat timer is reset and the Heartbeat message is sent only after a timeout elapses without any communication between partners. | sec | 0 | |||||||||||||||||||||||||||||||
| Delay inserted before repeated attempt to establish the connection after it has been broken (if D2000 System activated this connection). If the connection should be restored as fast as possible, set the low 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 partner center are checked. As the communication with the partner center is executed handled via one thread, the high value can reduce the speed of interaction between centers. The recommended value is 50 to 150 milliseconds. | msec | 100 msec | |||||||||||||||||||||||||||||||
| Hexadeciml Hexadecimal number (0000-80FF) defining a bitmask for declaration of supported protocol functionality, which is divided into blocks (Conformance Blocks). Default value of 00C0 (binary 1100_0000 i.e support for blocks 1 and 2). Bits are numbered from the lowest (1st bit) to the highest (8th bit).
| - | 00C0 | |||||||||||||||||||||||||||||||
| A mode of reading values of I/O tags for Remote Control Center station:
| Subscribe/Read | Subscribe | |||||||||||||||||||||||||||||||
| The way ICCP flags are mapped into D2000 flags FA A..FH. ICCP protocol has the following quality flags mapped into 8 bits of Quality attribute:
Mapping can be:
| None / Simple / Sinaut | None | |||||||||||||||||||||||||||||||
| Enables debug information on the level of binary packets. See Note 1. | YES/NO | NO | |||||||||||||||||||||||||||||||
| Enables debug information on the ISO OSI layer. See Note 1. | YES/NO | NO | |||||||||||||||||||||||||||||||
| Enables debug information on the MMS data level. See Note 1. | YES/NO | NO | |||||||||||||||||||||||||||||||
| Enables debug information on the top level of TASE.2 data. See Note 1. | YES/NOO | NO | |||||||||||||||||||||||||||||||
| Enables a detail debug detailed debugging information about incoming values (data values). See Note 1. | YES/NO | NO | |||||||||||||||||||||||||||||||
| Enables a detail debug detailed debugging information about outgoing values (data values). See Note 1. | YES/NO | NO |
Kotva | ||||
---|---|---|---|---|
|
If all debug debugging info are is enabled, it could cause an overload of communication workstation server and a decrease of in data transfer rate between the centers. After setting and debugging the communication we recommend you minimize the amount of debug debugging information.
Kotva | ||||
---|---|---|---|---|
|
...
- Communication protocol "IEC 60870-6 ICCP/TASE.2".
- Polling parameters are not used.
- Protocol The protocol does not support time synchronization between the control centers.
...
Station address configuration (in ICCP terminology - Control Centre) requires to set setting the following data:
- Control Center type
Local Control Center (LCC)Kotva lcc lcc
In LCC, there are only data values that are transmitted to the partner centers. It means, that only the output I/O tags (Ao, Co, Dout) are relevant for this station. If the I/O tag value is changed, by the control objects, data are then published outward out of D2000 System. In the opposite direction - to LCC, the values can be transmitted by the commands. These objects could be the input values (Ai, Ci, Di, Qi).
Exactly one station of LCC type must be configured on the line.
Remote Control Center (RCC)Kotva rcc rcc
In RCC, there are only data values that are transmitted form from the partner centers to the D2000 System. It means, that only the input I/O tag values (Ai, Ci, Di, Qi) are relevant for this station. The values of output I/O tags are transmitted as commands via RCC from the D2000 System (MMSWriteRequest message).
One or more stations of RCC type can be configured on the line.
- Domain
- For LCC - Local Domain
It is a domain name that executes the Local Control Center for the remote client (center). The text string is max. 32 characters. It consists of alphanumeric characters ("a…z", "A…Z", and "0…9"), underscore ("_") or dollar sign ("$"). The first sign must be a letter. - For RCC - Remote Domain
It is a domain name that executes Remote Control Center for a local client (D2000). The text string is max. 32 characters. It consists of alphanumeric characters ("a…z", "A…Z", and "0…9"), underscore ("_") or dollar sign ("$"). The first sign must be a letter.
- For LCC - Local Domain
The Browse button, which is enabled only for RCC, enables (if a D2000 KOM process is running and if a communication is established) to obtain a list of domains from a remote control center. For browsing functionality to work, the remote control centre center must support the handling of getNameList request with parameter ObjectClass=DOMAIN.
- Remote Control Centre Parameters
Permitted only for RCC.
InitiateKotva initiate initiate
It enables an active initiation of TCP connection to the remote control center. It means, D2000 System initiates this connection.- Role
The parameter Service Role belongs to Bilateral Table Agreement. It indicates the ICCP activity that is required for the Remote Control Center - Client, Server, or Client & Server. The value is set according to an agreement with the partner local center. Usually, when enabling the parameter Initiate, you should set a pro-active communication, i.e. Client or Client & Server value.
If the Initiate parameter is on, a handler task is created for every RCC with Client or Client & Server role and connects to the ICCP server according to the line configuration.
If the Initiate parameter is off, the D2000 KOM process is waiting for the ICCP client to connect, and according to the station's protocol parameters (TSEL, SSEL, PSEL, AP Title, AE Qualifier) is matching an ICCP client to a an RCC with Server or Client & Server roles.
...
Communication station - configuration dialog box - tab Protocol parameters.
These parameters influence some optional parameters of the protocol. You can set the following station parameters:
...
Object group | Parameter | Meaning | Unit / size | Default value | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Address parameters |
| Octet string that represents the Transport Selector. It identifies the Transport SAP. The maximum size is 32 octets (64 ASCII encoded hexadecimal digits). | octet string | 00 01 | ||||||
| Octet string that represents the Session Selector. It identifies the Session Session SAP. The maximum size is 16 octets (32 ASCII encoded hexadecimal digits). | octet string | 00 01 | |||||||
| Octet string that represents the Presentation Selector. It identifies the Presentation SAP. The maximum size is 16 octets (32 ASCII encoded hexadecimal digits). | octet string | 00 00 00 01 | |||||||
| 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 | |||||||
Data Set parameters (only for RCC) |
| Data Set (DS) name. Data The data set is a group of all I/O tags, i.e. data values, which are configured on the RCC station. You can create only one data set within the RCC station. | string | |||||||
| It enables the transmission of the DS Name in each message with an Information report. The reserved MMS object name is "Transfer_Set_Name". | YES/NO | YES | |||||||
| It enables the transmission of DS Time Stamp in each Information report message with data Information report. A time stamp timestamp is a time , when the Information report was generated. The reserved MMS object name is "Transfer_Set_Time_Stamp". | YES/NO | YES | |||||||
| It enables the transmission of conditions of data report creation in each Information report. The reserved MMS object name is "DS_Conditions_Detected". | YES/NO | YES | |||||||
Data Set Transfer Set parameters (only for RCC) |
| Time parameter for the TASE.2 server that defines a delay of data monitoring. If Start Time is 0, then TASE.2 server starts the data monitoring immediately. | sec | 0 | ||||||
| Required The required time interval between Data Set Transfer Reports. The Interval starts after Start Time. If RBE is set on NO, the current status of all objects in the data set is sent every time after "Interval". If RBE = YES, the current status of objects, which were changed since the last sending of the Data Set Transfer Report, is sent. If one object was changed several times during the "Interval", only the last value is sent. See Note 2. | sec | 10 | |||||||
| Time Limit for Execution (in seconds). It is used for the TASE.2 server. It is a timeout during which the TASE.2 server tries to send Data Set Transfer Report TASE.2 to a client. If the TASE.2 server founds finds out that it cannot send Data Set Transfer Report TASE.2 to the client till the TLE timeout, it could remove these data. It means, the client cannot receive data older then than TLE. If the problem is the communication line, the connection probably breaks up and must be restored. There is no reason to decrease this timeout under a limit of 60 seconds in TCP/IP communication. | sec | 60 | |||||||
| Time The time interval for data buffering if "ObjectChange condition" occurs before sending them to TASE.2 client. Buffer Time starts when the first condition "ObjectChange condition" occurs. If RBE = NO, the current status of all objects in the Data Set is sent after "Buffer Time". If RBE = YES, the values of objects, which were changed till the expiration of "Buffer Time", are sent. If "Buffer Time" is 0, the report is generated for each value change. If one object was changed several times during the "Buffer Time", only the last value is sent. Warning: When the parameter "Buffer Time" is 0 seconds, it can cause the an overload of the system or communication line because of the large number of messages (reports). | sec | 2 | |||||||
| Time The time interval for "integrity check", if "DS Conditions - Integrity Timeout" and RBE are set on YES. See Note 2. | sec | 30 | |||||||
| Enables the TASE.2 server to send reports after elapsing the "Interval". See Note 2. | YES/NO | YES | |||||||
| Enables the TASE.2 server to send a complete Data Set of all objects after elapsing "Integrity Timeout". It is relevant only if RBE is set on YES. See Note 2. | YES/NO | YES | |||||||
| Enables the TASE.2 server to send the report after the value of any object has changed in Data Set. It involves the change of value, status, or quality flags. See Note 2. | YES/NO | YES | |||||||
| Enables the TASE.2 server to send the report when an operator on the TASE.2 server control center sends a request. | YES/NO | NO | |||||||
| Enables the TASE.2 server to send the report , if an external incident occurs. | YES/NO | NO | |||||||
| Control type of Transfer Report. The setting on YES means that Transfer Report is critical and needs an acknowledgement acknowledgment from the TASE.2 client back to the TASE.2 server. | YES/NO | NO | |||||||
| A flag that controls the mechanism of "Report By Exception". See Note 2. | YES/NO | YES | |||||||
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) |
...
The identification of incoming client clients is executed performed according to all address parameters, i.e. TSEL, SSEL, PSEL, AP Title, and AE Qualifier. If the connected ICCP client provides different address parameters which that do not match parameters configured on any RCC-type station configured in the D2000 system, the connection is rejected.
...
So many parameters needed for setting the "Data Set Transfer Set" can seem complicated. To set the RBE (Report By Exception) parameter (i.e. the functionality of "Conformance Block" No. 2, "Extended Data Set Condition Monitoring") is, however, very important.
- RBE = NO
Report All object values from Data Set are sent in each Report. After elapsing the "Start Time", the Reports are sent with a period "Interval". The parameter "DS Conditions - Interval Timeout" must be enabled. - RBE = YES
More effective data transmission. Only the changed values are transmitted. After elapsing the "Start Time" timeout, a complete Report with all object values of the Data Set are is sent. Thereafter Report is sent after elapsing the "Buffer Time", which contains only changed object values of the Data Set. Report with all object values of the Data Set is sent with period the "Integrity Timeout" period. The parameters "DS Conditions - Integrity Timeout", "DS Conditions - Object Change" must be enabled. The parameter "DS Conditions - Interval Timeout" must be set on NO.
...
The configuration of Data Values (according to ICCP terminology) requires the following data:
Name
A unique text string which identify that identifies Data Value. Maximum size is 32 characters. The maximum size is 32 characters. The maximum size is 32 characters. According to IEC 60870-6-503, the name can contain the characters A..Z a..z 0..9 $ _ and cannot begin with a number.
Note: if the I/O tag's address is specified as %IGNORE, such an I/O tag will be ignored.
...
Data Type | Meaning |
State | Discrete 2-bit value |
StateQ | Discrete 2-bit value + ICCP Validity |
StateQTimeTag | Discrete 2-bit value + ICCP Validity + Time stampTimestamp |
StateExtended | Discrete 2-bit value + ICCP Validity + Current Source + Extended time stamp |
Discrete | Integer 32-bit value signed |
DiscreteQ | Integer 32-bit signed value + ICCP Validity |
DiscreteQTimeTag | Integer 32-bit signed value + ICCP Validity + Time stampTimestamp |
DiscreteExtended | Integer 32-bit signed value + ICCP Validity + Current Source + Extended time stamp |
Real | Float 32 |
RealQ | Float 32 + ICCP Validity |
RealQTimeTag | Float 32 + ICCP Validity + Time stampTimestamp |
RealExtended | Float 32 + ICCP Validity + Current Source + Extended time stamp |
--- Autodetect --- | For I/O tags on a Local Control Center station the Data Type will be derived from the Value Type:
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. Note 2: data types State and StateQ are undistinguishable by this mechanism, therefore objects of these types are detected as StateQ. Note 3: the same mechanism for data type detection is used in browsing. |
ICCP Validity is converted to D2000 UniVal as follows:
...
- VMD Specific - Data Value is defined on a Virtual Manufacturing Device level
- Domain Specific - Data Value is defined on inside within a specific domain inside a device
Note: The Domain Specific setting was used for communication with the Siemens Sinaut Spectrum system, the VMD Specific setting was used for communication with the OSI Monarch system.
Read Only
Enables only the reading of Data Value, the writing by the command is disabled.
Kotva | ||||
---|---|---|---|---|
|
For I/O tags on a Remote Control Center station, it is possible to query a list of objects and their data types from the ICCP server, if a KOM process is running and if a communication is established.
After a Browse button is clicked, an ICCP Browser window is opened and the KOM process starts to query a list of objects using a message GetNameList-Request and thereafter their data types using GetVariableAccessAttributes-Request messages.
...
If this choice is active, the Data Type will be set to Autodetect, otherwise to value discovered during browsing, e.g. StateQ, StateQTimeTag ..
Scope
Sets the 17280050 scope of browsing - VMD Specific or Domain specific objects will be browsed (the domain is defined in the configuration of RCC).
Copy all to clipboard
Copies the displayed objects and their respective data types into the Windows Clipboard.
...
By pressing the Refresh button it is possible to enforce re-querying of the list of objects from the ICCP server. By default, the KOM process reads the list of objects and their respective data types only during the first browse request (once for VMD Specific and once for Domain specific objects) and stores them in memory. This reading can take a longer time, depending on the number of ICCP objects and the speed of the ICCP server. These cached lists are sent to the CNF process(es), so that consecutive filling of the Browse window is fast.
Filtering in the list of objects
The browse windows window enables filtering by the object name and data type. Tt It is not necessary to enter the full text in the filter field. Notation The notation "*FILTERED EXPRESSION*" is supported. The symbol * represents any text before and after the expression (e.g. *momen*).
...
Besides the user-defined objects with supported data types (StateQ, StateQTimeTag .. RealExtended) a list of objects can contained pre-defined protocol objects with different types (Bilateral_Table_ID, DSConditionDetected, DSEventCodeDetected, DSTransferSetName, DSTransferSetTimestamp, NextDSTransferSet, Supported_Features, Tase2_Version, Transfer_Report_ACK, Transfer_Report_NACK). These objects cannot be used in I/O tag configuration and they are listed only due to a completeness and verification that browsing is functional even when there are no user-defined object objects configured on the ICCP server.
Note 2
In the versions from 20th December 2018 and newer, the recycling of browser dialogue has dialog has been implemented. If the dialog is closed by the Cancel button or after selecting an object, it is actually only hidden and it is available for browsing by another I/O tag within the same station so that the tree structure of the browsed objects is preserved. Clicking on the close icon at the top right corner will cause the dialog to be really closed.
...