Introduction to the ICCP: Data Exchange Between Utilities

The ICCP, or Inter Control-Center Communications Protocol, is used to transmit datasets between control centers, and it’s commonly found across the electrical power industry.


Technical Article one hour ago by Munir Ahmad

In the past, communication protocols were designed to carry data from sensors, transducers, and IEDs to the PLC/RTU, SCADA servers, and HMI for the first, second, and third generations of SCADA systems. These protocols were designed for isolated control systems that lacked basic cyber and network security features. ICS protocols like Modbus RTU/TCP, IEC-101/104, PROFINET, and DNP are widely recognized and still being used in plants.

 

Overview of Protocols

In the context of the electrical industry, such as power plants, grids, and the National Control Centers (NCC), the protocols describe the set of rules for the exchange of electrical data (measurand and status) of power generation, transmission, and distribution over Ethernet or any communication media. The data communication could be 2-way, like plant-to-plant, plant-to-NCC, or vice versa. For example, the protocols serve real-time monitoring of the remote grid and command operation from the control center to the switchyard, or AGC/ALFC for plant unit regulation.

The ICCP (Inter Control-Center Communications Protocol) implementation is a set of software that provides data exchange capabilities with other control centers. The ICCP functions are divided into sub-functions called blocks, and the details of each block are explained below. However, the basic block called Block #1 is a mandatory block that allows establishing associations and exchanging data using Datasets and Transfer sets on a periodic basis or upon operator request.

 

 Figure 1. ICCP is a standard in the power generation industry.

Figure 1. ICCP is a standard in the power generation industry. Image used courtesy of Canva

 

Functions of ICCP

At a high level, the protocol is responsible for a number of related tasks.

  • Establishing and maintaining associations automatically with the remote utility sites as per data configuration
  • Reporting events and alarms for remote connections
  • Sending and receiving data values between the control center and remote sites.
  • Remote control and operation of local devices.
  • Automatic initialization of transactions when the communication link is established.

 

ICCP Client/Server Model

ICCP is a client-server model built on the manufacturing message specification (MMS) that enables control centers to share real-time data and control.

ICCP Server: often called the data provider, the ICCP server provides telemetry data to one or more remote control centers. Telemetry values include megawatts, megavars, voltage, frequency, etc. These servers entertain the requests from the remote ICCP clients. The client requests are verified and authenticated via associations managed by the association management function. The function of association management is to establish and maintain the connections and communication sessions between client and server. The servers perform the operations according to the client requests and send the response back to the client.

ICCP Client: The client, or data consumer, connects to the ICCP server and, after a successful connection, can request and receive telemetry data. The same protocol can be used for remote commands and for the automatic generation control of the plant.

 

 Figure 2. ICCP client/server model.

Figure 2. ICCP client/server model. Image used courtesy of the author

 

The ICCP is modular in design and offers services for different types of objects. To handle the different types of objects, the functions of the protocol are divided into subsets called conformance blocks, or often just blocks.

Block 1 is the basic service block, and it allows for the management of associations (connections) and the basic transfer of SCADA (point) data. The operational data values are exchanged through datasets and transfer sets, with periodic or on-operator-request conditions.

Block 2 is the extended dataset block. This allows for reporting data value changes by exception.

Block 3 is identical to Block 2 with the addition that Transfer Set Blocking is supported.

Block 4 is the information block. It allows the sending and receiving of text and other application-defined data to or from an application at a remote control center.

Block 5 is called the device control block. It provides for the selection and operation of devices, including both Commands (e.g., Close, Open) and Set-Points.

Block 6, called programs, is used for the control of application programs on remote systems. For example, services to start/stop, etc.

Block 7 supports event notification from the server to the client. For example, it is used to report the feedback status of previously issued Block 5 requests. It enables a client to receive notification of events that occur on the server.

Block 8 allows the client to receive several different types of pre-defined data structures like Scheduling & Accounting, device outage, and general data.

Block 9 is used for historical data.

 

ICCP Objects and Services

The objects in ICCP refer to the type of data exchanged between control centers, and services mean what type of operations are allowed to be performed on these objects and what aren't. The table given below shows the list of ICCP objects and related services.

 

Table 1. Objects and the associated services provided by each.
Objects Services
Association An association is a communication link between 2 control centers. The association includes the network addresses used at each end of the link and other characteristics. There can be several associations defined in the database for one or more remote systems.

The association includes the Initiate, Conclude, and Abort services

Data Values A data value is an object that an ICCP client can read from an ICCP server. It is usually mapped to and corresponds with a point in the SCADA database.

You can both get and set data values.

Data Sets A dataset is a list of data values
Transfer set A transfer set defines how data may be transferred from a server to a client. For example, dataset SET1 is transferred every 10 seconds, or it may specify that dataset SET2 is transferred only when a data value within it changes.
Transfer Report This is the delivery mechanism for actually sending data from the server to the client. After the client has requested a start on the transfer set, the server sends transfer reports back to the client as specified by the transfer set. E.g., every 10 seconds or on other conditions.
Device (or Control Point) A device that can be controlled on the remote site, or that can be controlled on the local site by the remote site
Bilateral Table This is the database that defines all the associations, data values, and other objects that may be exchanged between two ICCP sites. Typically, the database contains both client and server objects.

 

Conclusion

The ICCP is specially designed for the exchange of operational data between the control centers. For successful implementation of ICCP services at the client and server stations, the essential ICCP services and modules shall be implemented, including the agreed bilateral table.