0 valutazioniIl 0% ha trovato utile questo documento (0 voti)
310 visualizzazioni134 pagine
This manual describes how to use the Windows SCADA ICCP Master-to-Master data exchange software. The content of this manual has been carefully checked for accuracy, but if you find any errors, please notify Survalent Technology Corporation.
This manual describes how to use the Windows SCADA ICCP Master-to-Master data exchange software. The content of this manual has been carefully checked for accuracy, but if you find any errors, please notify Survalent Technology Corporation.
This manual describes how to use the Windows SCADA ICCP Master-to-Master data exchange software. The content of this manual has been carefully checked for accuracy, but if you find any errors, please notify Survalent Technology Corporation.
Users Guide Contents Windows SCADA ICCP ii 2.2.5 ICCP Client Specific Information............................................................................................... 2-4 2.2.6 Server Status Points.................................................................................................................... 2-4 2.2.7 Server Analog Points.................................................................................................................. 2-4 2.2.8 Server Control Points.................................................................................................................. 2-5 2.2.9 Server Setpoints.......................................................................................................................... 2-5 3 ICCP Server Quick Start 3-1 3.1 Server Status Point......................................................................................................................... 3-1 3.2 Local ICCP Nodes.......................................................................................................................... 3-2 3.3 ICCP Server.................................................................................................................................... 3-3 3.4 Dataset............................................................................................................................................ 3-4 3.5 Status Points................................................................................................................................... 3-5 3.6 Analog Points................................................................................................................................. 3-6 3.7 Control Points................................................................................................................................. 3-7 3.8 Setpoints......................................................................................................................................... 3-8 3.9 Virtual RTU.................................................................................................................................... 3-9 3.10 Start Server ............................................................................................................................... 3-10 3.11 ScanMon................................................................................................................................... 3-10 4 ICCP Client Quick Start 4-1 4.1 Communication Line Status Point.................................................................................................. 4-1 4.2 Local ICCP Nodes.......................................................................................................................... 4-2 4.3 Remote ICCP Nodes....................................................................................................................... 4-3 4.4 Communication Line...................................................................................................................... 4-4 4.5 RTU Status Point............................................................................................................................ 4-5 4.6 RTU................................................................................................................................................ 4-5 4.7 Status Points................................................................................................................................... 4-6 4.8 Analog Points................................................................................................................................. 4-8 4.9 Start Scan Task............................................................................................................................... 4-9 4.10 ScanMon..................................................................................................................................... 4-9 5 ICCP Data Structures 5-1 5.1 Bilateral Table................................................................................................................................ 5-1 5.1.1 Server.......................................................................................................................................... 5-1 5.1.2 Client........................................................................................................................................... 5-2 5.2 Data Values.................................................................................................................................... 5-2 5.2.1 Data Value Objects..................................................................................................................... 5-2 5.2.2 Scope........................................................................................................................................... 5-2 5.2.3 Analog Data Value Types........................................................................................................... 5-3 5.2.4 Analog Quality Codes................................................................................................................. 5-4 5.2.5 Status Data Value Types............................................................................................................. 5-4 5.2.6 Status Quality Codes................................................................................................................... 5-5 5.3 Datasets........................................................................................................................................... 5-6
Users Guide Contents Windows SCADA ICCP iii 5.3.1 Dataset Objects........................................................................................................................... 5-6 5.3.2 Scope........................................................................................................................................... 5-6 5.4 Transfer Sets................................................................................................................................... 5-6 5.4.1 Transfer Set Objects.................................................................................................................... 5-6 5.4.2 Scope........................................................................................................................................... 5-6 5.4.3 Special Transfer Set Variables.................................................................................................... 5-7 5.5 Devices........................................................................................................................................... 5-7 5.5.1 Device Objects............................................................................................................................ 5-7 5.5.2 Scope........................................................................................................................................... 5-7 5.5.3 Device Types.............................................................................................................................. 5-7 5.6 Miscellaneous Variables................................................................................................................. 5-8 5.6.1 Bilateral_Table_ID...................................................................................................................... 5-8 5.6.2 Supported_Features..................................................................................................................... 5-8 5.6.3 TASE2_Version.......................................................................................................................... 5-9 6 ICCP Server Data Entry 6-1 6.1 Client Capabilities.......................................................................................................................... 6-2 6.2 Server Editor................................................................................................................................... 6-2 6.2.1 Server Data Fields General Section......................................................................................... 6-2 6.2.2 Server Data Fields ICCP General Parameters.......................................................................... 6-4 6.2.3 Server Data Fields ICCP Server Parameters............................................................................ 6-5 6.2.4 Server Data Fields ICCP Client Parameters............................................................................. 6-6 6.3 Virtual RTU.................................................................................................................................... 6-7 6.4 Datasets......................................................................................................................................... 6-11 6.5 Status Points................................................................................................................................. 6-12 6.6 Analog Points............................................................................................................................... 6-14 6.7 Accumulator Points...................................................................................................................... 6-16 6.8 Control Points............................................................................................................................... 6-16 6.9 Setpoints....................................................................................................................................... 6-18 6.10 ICCP Nodes.............................................................................................................................. 6-20 7 Operation of ICCP Server 7-1 7.1 Operation as Server ........................................................................................................................ 7-2 7.1.1 Association Control .................................................................................................................... 7-2 7.1.2 Datasets....................................................................................................................................... 7-4 7.1.3 Transfer Sets............................................................................................................................... 7-7 7.1.4 Data Values............................................................................................................................... 7-11 7.1.5 Device Control .......................................................................................................................... 7-13 7.2 Operation as Client....................................................................................................................... 7-15 7.2.1 Creation of Data Sets and Transfer Sets................................................................................... 7-15 7.2.2 Information Reports.................................................................................................................. 7-16 8 ICCP Client Data Entry 8-1
Users Guide Contents Windows SCADA ICCP iv 8.1 Communication Line...................................................................................................................... 8-2 8.1.1 Communication Line Data Fields - General Tab........................................................................ 8-3 8.1.2 Communication Line Data FieldsChannel Tab....................................................................... 8-5 8.1.3 Communication Line Data FieldsICCP Tab........................................................................... 8-6 8.2 RTU................................................................................................................................................ 8-8 8.2.1 RTU Data Fields - General ......................................................................................................... 8-8 8.2.2 ICCP: Edit Options..................................................................................................................... 8-9 8.3 Analog Point................................................................................................................................. 8-12 8.4 Status Point................................................................................................................................... 8-15 8.5 Control Point - Command............................................................................................................ 8-17 8.6 Control Point - Setpoints.............................................................................................................. 8-19 9 Operation of ICCP Client Scan Task 9-1 9.1 Initialization.................................................................................................................................... 9-1 9.2 Association..................................................................................................................................... 9-1 9.3 Creation of Data Sets and Transfer Sets......................................................................................... 9-4 9.4 Information Reports........................................................................................................................ 9-5 9.5 Device Control................................................................................................................................ 9-6 9.6 Deactivation and Reactivation of Points........................................................................................ 9-9 9.7 Deactivation and Reactivation of RTUs......................................................................................... 9-9 9.8 Deactivation and Reactivation of Communication Lines............................................................... 9-9 10 ICCP Conformance Summary 10-1 10.1 BLOCK 1 - Basic Services....................................................................................................... 10-2 10.2 BLOCK 2 - Extended Data Set Condition Monitoring............................................................. 10-3 10.3 BLOCK 3 - Blocked Transfers................................................................................................. 10-3 10.4 BLOCK 4 - Operator Stations................................................................................................... 10-3 10.5 BLOCK 5 - Device Control ...................................................................................................... 10-4 10.6 BLOCK 6 - Programs............................................................................................................... 10-4 10.7 BLOCK 7 - Events.................................................................................................................... 10-4 10.8 BLOCK 8 - Accounts................................................................................................................ 10-5 10.9 BLOCK 9 - Time Series........................................................................................................... 10-5 11 MMS Services Supported 11-1
Users Guide Introduction Windows SCADA ICCP 1-1
1 Introduction
This document describes Windows SCADA ICCP. This package is based on the description of ICCP that is contained in the following documents that were originally published in August 1996 by the Utility Communications Specification Working Group for Version 1996-8 and again in 2002 with amendments in 2005 for Version 2000-8:
Table 1-1 ICCP Documents Document Number Title IEC 870-6-503 TASE.2 Services and Protocol IEC 870-6-702 TASE.2 Profiles IEC 870-6-802 TASE.2 Object Models
1.1 Required Reading
If you are not going to read this document, at least read this and the following chapters. This will give you a basic understanding of ICCP and what is required to configure your system.
The rest of this chapter provides an overview of how Windows SCADA ICCP works.
Chapter 2, Preparing For ICCP, provides a checklist for everything you will need to prepare your system for ICCP. It also gives suggestions for testing network connectivity.
Chapter 3, ICCP Server Quick Start, describes how to quickly configure an ICCP Server.
Chapter 4, ICCP Client Quick Start, describes how to quickly configure an ICCP Client.
Users Guide Introduction Windows SCADA ICCP 1-2
1.2 Advanced Reading
The remaining chapters provide a more in depth discussion of ICCP configuration and implementation.
Chapter 5, ICCP Data Structures, describes how ICCP data structures are implemented in Windows SCADA ICCP.
Chapter 6, ICCP Server Data Entry, describes in detail how to configure an ICCP Server.
Chapter 7, Operation of ICCP Server, describes how the ICCP Server works.
Chapter 8, ICCP Client Data Entry, describes in detail how to configure an ICCP Client.
Chapter 9, Operation of ICCP Client Scan Task, describes how the ICCP Client works.
Chapter 10, ICCP Conformance Summary, contains the ICCP conformance table for Windows SCADA ICCP.
Chapter 11, MMS Services Supported, describes the MMS services used by Windows SCADA ICCP.
1.3 Abbreviations
This manual makes use of the following abbreviations and terms:
ICCP Inter Control Center Communication Protocol
MMS Manufacturing Messaging Specification
PDU Program Data Unit
RTU Remote Terminal Unit
UCA Utilities Communication Architecture
1.4 Overview
Windows SCADA ICCP consists of both Client and Server software.
The Client software connects to other members on the network to receive point data and forward control requests from operators and application programs.
The Server software responds to Client requests by sending the requested data and executing the requested controls. Quality codes, such as manual set and telemetry failed, are transmitted along with the data. In device control operations, tags on the Server system are respected.
Any member of the ICCP network can act as either a Client or a Server or both. The relationship between any pair of members may be fully bi-directional. That is, both members may act as both Client
Users Guide Introduction Windows SCADA ICCP 1-3 and Server to each other. Furthermore, any member may act as a Server to multiple Clients, and at the same time act as a Client with multiple Servers.
Establishment of the connections is the responsibility of the Client software.
The Client and Server software consists of two separate programs. A separate copy of the Server program runs for each remote Client member that it sends data to. Similarly, a separate copy of the Client program runs for each remote Server member that it receives data from. In a bi-directional link between two partners, this means that each partner runs both a Client program and a Server program connected to the other partner.
Although polling is possible, data exchange in ICCP is not normally based on polling. Instead, the Client defines a dataset and enables transfer sets in the Server and then just waits for data to arrive from the Server.
A transfer set is an entity that specifies a dataset and a set of transmission parameters (conditions for transmitting the dataset). A dataset is a group of status and/or analog points.
For each transfer set that is enabled, the Server monitors the conditions that would trigger a transfer. Whenever any of the conditions are true, the Server transmits the dataset. Report by exception, with or without periodic integrity transmissions, is supported.
1.5 ICCP Versions
The Client and Server support Versions 1996-8 and 2000-8.
ICCP Version 2000-8 does everything that ICCP Version 1996-8 does with the addition of supporting some analog and status data types that have millisecond resolution timestamps and the handling of multiple status changes.
The Client can specify in the transmission parameters for the dataset that the Server is to return ALL state changes for points during the interval. See All Changes in section 8.2.2, ICCP: Edit Options.
In Version 1996-8, the Server would only check the state of the points at the end of the interval, if the point was in the same state as the last interval it does not detect a change. For example, if a point was in the close position at the end of interval n and a trip/close occurred during the interval, the Server would see the point in the close state at the end of interval n+1 and would not detect a change and therefore would not report the point.
1.6 Server
The Data Exchange section of SCADA Explorer defines, for the Server, which points in the SCADA database are accessible to remote Client member systems on the network.
Analog, status, accumulator, setpoint and control points are grouped together into Datasets. Each entry in a Dataset specifies a point that a remote Client may access. A Dataset is assigned or mapped to a Server via the Virtual RTU editor.
The ICCP Node editor defines the ICCP addresses for both the Client and Server. See section 6.10, ICCP Nodes.
Users Guide Introduction Windows SCADA ICCP 1-4 The Server, Virtual RTU, Dataset and ICCP Node editors in the Data Exchange section of the SCADA Explorer are described in detail in chapter 6, ICCP Server Data Entry. Chapter 7, Operation of ICCP Server, describes how the ICCP Server works.
1.7 Client
The Communication Line and RTU sections of SCADA Explorer define, for the Client, the points that are to be retrieved from the remote Server.
Analog, status and accumulator points defined on an RTU make up an ICCP dataset. The Client downloads the dataset definition to the remote Server. Then it uses the transmission parameters defined on the ICCP tab of the Edit RTU window to enable a transfer set.
The ICCP Node editor defines the ICCP addresses for both the Client and Server. See section 6.10, ICCP Nodes.
The Communication Line, RTU, Analog and Status editors of SCADA Explorer are described in detail in chapter 8, ICCP Client Data Entry. Chapter 9, Operation of ICCP Client Scan Task, describes how the ICCP Client works.
Users Guide Preparing For ICCP Windows SCADA ICCP 2-1
2 Preparing For ICCP
This chapter describes the information that should be considered when preparing your system for ICCP.
The implementation of ICCP requires the coordinated effort of two control centers to successfully exchange data. They must agree upon the network connectivity, what data to exchange and the setting of certain parameters. They must also agree upon who will be sending data and who will be receiving data or if they will both be sending and receiving data.
2.1 Network Connectivity
The physical network connection is usually the first item agreed upon, as equipment procurement, installation and configuration may be necessary. Get an early start on this, as it may take weeks before equipment installation is complete.
If the connection is going through a router, a route will be required on each SCADA host. Routes are added via the Command Prompt window. For example, presuming the router address is 172.26.1.150, the IP Address 207.68.171.244 can be added in such a way that all addresses that begin with 207.68.171 can be routed through the router with the following command:
route p add 207.68.171.0 mask 255.255.255.0 172.26.1.150
Existing routes can be displayed with the command route print.
Users Guide Preparing For ICCP Windows SCADA ICCP 2-2 Note that if the connection is going through a firewall, port 102 should be opened, as this is the port ICCP listens for incoming connections.
Once the physical network has been installed and configured, you will need to re-visit this section to verify the network connectivity. This may be done in several ways:
From the Command Prompt window, ping the remote node. For example, ping 207.68.171.244. Ping will send a packet to the remote node and expect a response. Verify there is 0% packet loss. Note that ping may not work if a firewall has been installed and pings have been disabled. If a firewall is installed, it is strongly suggested that pings be enabled at least for the connectivity test. If pings cannot be enabled on the firewall, then try the telnet option below to verify network connectivity.
If ping is unable to receive a response from the remote node, trace route may be used to monitor the routing of the packet as it hops across the network. For example, tracert 207.68.171.244. Trace route will send a ping packet to each node along the route as it hops to the final node. This can be useful in determining if a firewall or router is not forwarding the packet.
Another option is to telnet to port 102 of the remote node. This is a network trick to determine if anything is listening on the port or if a firewall is blocking the port. Port 102 is the port ICCP uses to listen for incoming connections. However, depending on the program used to telnet, it can be difficult to determine if there actually is connectivity. Using the command prompt with the command telnet 207.68.171.244 102 for example, one of the following scenarios should apply:
1. Telnet connects fairly quickly and stays connected. When you press enter, it does one or more line feeds with an underscore then disconnects. This implies you have connectivity to the remote node and ICCP is listening on port 102.
2. Telnet displays connecting and within a moment it disconnects and displays the message Unable to connect to <TCP/IP Address>port 102. This implies you may have connectivity to the remote node but ICCP is not listening on port 102. Have the remote node start ICCP to listen for connections and re-try telnet.
3. Telnet displays connecting for some time and when it finally disconnects (times out), it displays the message Unable to connect to <TCP/IP Address>port 102. This implies you do not have connectivity to the remote node or a firewall is blocking port 102.
2.2 Bilateral Table Agreement
A document should be created and shared between the two control centers, that at least contains the sections described below. Both control centers should agree on who will create and maintain the document or if this will be a collaborative effort. Once completed, this document is your Bilateral Table Agreement (BTA).
For the purpose of the remainder of this discussion, the two control centers will be called Company A and Company B. The following sections describe the information required for Company As ICCP Server to send data to Company Bs ICCP Client.
If at a future date, Company Bs ICCP Server is to send data to Company As ICCP Client, then the bilateral table agreement would need to be amended to include similar information as below, but for the direction of data flow from Company B to Company A.
Users Guide Preparing For ICCP Windows SCADA ICCP 2-3 2.2.1 Company Information
This section describes information about the companies and company contacts. It should at least contain the following information:
Company A name and address Company A contact person(s), phone, email, etc. Acronym for Company A. For example, CMPA. Company B name and address Company B contact person(s), phone, email, etc. Acronym for Company B. For example, CMPB.
2.2.2 Direction Of Data
This section indicates which direction the data is flowing:
Company As ICCP Server is sending data to Company Bs ICCP Client
2.2.3 Node Independent Information
This section describes general information about the ICCP connection that is common to all ICCP node(s). It should at least contain the information listed below. See section 6.2.2, Server Data Fields ICCP for more information on Server data fields.
Company As ICCP Server Domain name which Company Bs ICCP Client will use to access data at Company As ICCP node(s). This typically takes one of two formats: the acronym of the remote Clients name. For example, CMPB. Or the combination of both companies acronyms with direction of dataflow. For example, CMPA_CMPB with data flowing from Company A Server to Company B Client.) Company As ICCP Server Bilateral Table ID when Company Bs ICCP Client is accessing data on Company As ICCP node(s). For example, V1.0. Company As maximum MMS PDU size. Size in bytes of the maximum MMS Protocol Data Unit. Typically 32000 bytes. Company As version of ICCP. 1996-8 or 2000-8. Company Bs maximum MMS PDU size. Company Bs version of ICCP.
2.2.4 ICCP Server Specific Information
This section describes information about the ICCP Server. This section should be repeated for each node running an ICCP Server. It should at least contain the information listed below. See section 6.10, ICCP Nodes, for more information on ICCP addressing (AP Title, etc.).
The name by which Company A refers to this node. This field is not electronically transmitted during any ICCP transactions, but is only here to facilitate verbal communication between Company A and Company B. Company As TCP/IP network address of this node. Company As ICCP Server AP Title.
Users Guide Preparing For ICCP Windows SCADA ICCP 2-4 Company As ICCP Server AE Qualifier. Company As ICCP Server Presentation Selector (Psel). Company As ICCP Server Session Selector (Ssel). Company As ICCP Server Transport Selector (Tsel).
2.2.5 ICCP Client Specific Information
This section describes information about the ICCP Client. This section should be repeated for each node running an ICCP Client. It should at least contain the information listed below. See section 6.10, ICCP Nodes, for more information on ICCP addressing (AP Title, etc.).
The name by which Company B refers to this node. This field is not electronically transmitted during any ICCP transactions, but is only here to facilitate verbal communication between Company A and Company B. Company Bs TCP/IP network address of this node. Company Bs ICCP Client AP Title. Company Bs ICCP Client AE Qualifier. Company Bs ICCP Client Psel. Company Bs ICCP Client Ssel. Company Bs ICCP Client Tsel.
2.2.6 Server Status Points
This section describes information about the status points that Company As ICCP Server will allow Company Bs ICCP Client to access. It should at least contain the information listed below. See section 6.5, Status Points, for more information on Server status points.
The ICCP data type. For simplicity, all the status points should have the same data type. The most common data type for status points is DataStateQ. The scope of all the status points, either VMD or Domain. Again, for simplicity, all the status points should have the same scope. The most common scope is VMD. A list of all the status points. For each point, the list should include the points ICCP variable name and access (Read Only or Read/Write).
2.2.7 Server Analog Points
This section describes information about the analog points that Company As ICCP Server will allow Company Bs ICCP Client to access. It should at least contain the information listed below. See section 6.6, Analog Points, for more information on Server analog points.
The ICCP data type. For simplicity, all the analog points should have the same data type. The most common data type for analog points is DataRealQ. The scope of all the analog points, either VMD or Domain. Again, for simplicity, all the analog points should have the same scope. The most common scope is VMD. A list of all the analog points. For each point, the list should include the points ICCP variable name and access (Read Only or Read/Write).
Users Guide Preparing For ICCP Windows SCADA ICCP 2-5
2.2.8 Server Control Points
This section describes information about the control points that Company As ICCP Server will allow Company Bs ICCP Client to control. It should at least contain the information listed below. See section 6.8, Control Points, for more information on Server control points.
The scope of all the control points, either VMD or Domain. For simplicity, all the control points should have the same scope. The most common scope is VMD. A list of all the control points. For each point, the list should include the points ICCP variable name.
2.2.9 Server Setpoints
This section describes information about the setpoints that Company As ICCP Server will allow Company Bs ICCP Client to control. It should at least contain the information listed below. See section 6.9, Setpoints, for more information on Server setpoints.
The ICCP data type. For simplicity, all the setpoints should have the same data type. The most common data type for analog points is DataRealQ. The scope of all the setpoints, either VMD or Domain. Again, for simplicity, all the setpoints should have the same scope. The most common scope is VMD. A list of all the setpoints. For each point, the list should include the points ICCP variable name.
Users Guide ICCP Server Quick Start Windows SCADA ICCP 3-1
3 ICCP Server Quick Start
This chapter describes how to quickly configure an ICCP Server to send data to a remote ICCP Client. A more detailed description is available in chapter 6, ICCP Server Data Entry. As a prerequisite, you should have read chapter 2, Preparing For ICCP and completed the Bilateral Table Agreement (BTA) document, as you will be referencing the BTA to configure your ICCP Server.
Although an ICCP Server can have the qualities of both a Server and a Client, only the configuration of a Server is described here. Only in rare cases will it be required to configure Client qualities for a Server. See Chapter 6, ICCP Server Data Entry for Client quality configuration of a Server.
The ICCP Server is configured via SCADA Explorer. If the SCADA Explorer is not currently active, then open it now and login.
3.1 Server Status Point
Create a new SCADA status point for the Up/Down state of the ICCP Server link to the remote Client. Similar points are used for the Up/Down state of communication lines.
Users Guide ICCP Server Quick Start Windows SCADA ICCP 3-2
3.2 Local ICCP Nodes
Under Data Exchange, click ICCP Nodes and create a new local ICCP Node. If you have a dual system, one Server ICCP Node will usually be sufficient for both hosts, unless the remote system requires unique addresses for each of your hosts. The required fields are listed below.
AR Name (Must be unique, typically the acronym of the remote company and SV for Server, for example CMPB_SV Local checked Shared unchecked. AP Title (Must be unique. For example, 1 3 9999 1 100 for the first local Node (Client or Server), then increment the last number by 1 for each local Node added.) AE Qualifier (Typically the last number of the AP Title. For example, 100) Psel (Must be unique for all local Nodes (Client and Servers) assigned to this host. For example, 0001. If you have a dual system and you are creating an ICCP Node for each host, the selectors should be the same for both hosts.) Ssel (See Psel) Tsel (See Psel)
Figure 3-1 Local ICCP Node
Users Guide ICCP Server Quick Start Windows SCADA ICCP 3-3
3.3 ICCP Server
Under Data Exchange, click Servers and create a new ICCP Server. The required fields are as follows:
General Section
Server Name (Must be unique) Link Status (Status point created in step 1) Protocol (ICCP) Autostart checked
ICCP General Section
Listen for Connection selected Bilateral Table ID (Enter a text string for the Bilateral Table agreement version. For example, V1.0) Max PDU Size (Typically 32000 bytes) Life Check Interval (Typically 20 to 30 seconds) Local Server Node (ICCP Node(s) created in step 2). If a dual system, select an ICCP Node for A and B. If a quad system, select ICCP Nodes for A, B, C and D. (The same Node can be selected for all)
ICCP Server Parameter Section
Domain Name (Typically takes one of two formats: the acronym of the remote Clients name. For example, CMPB. Or the combination of both companies acronyms with direction of dataflow. For example, CMPA_CMPB with data flowing from Company A Server to Company B Client.) Critical Response Time (Typically not used) Minimum Interval (Typically 4 seconds, ignored if 0)
Users Guide ICCP Server Quick Start Windows SCADA ICCP 3-4 Figure 3-2 ICCP Server
3.4 Dataset
Under Data Exchange, click Datasets and create a new Dataset. The required fields are as follows:
Dataset Name (must be unique)
Figure 3-3 ICCP Server Dataset
Users Guide ICCP Server Quick Start Windows SCADA ICCP 3-5 3.5 Status Points
Click the + to expand the tree for the Dataset you created in step 4. Now click Status and create a new mapping to each SCADA status point that the remote Client will have access to. The required fields are as follows:
Point (Select via Drag-n-Drop SCADA Point browser)
Identity (ICCP variable name assign to the point)
Identity Type (ICCP scope, most common scope is VMD. 0=Domain, 1=VMD)
Data Type (Most common status type is 2=DataStateQ)
Figure 3-4 ICCP Server Status Point
Users Guide ICCP Server Quick Start Windows SCADA ICCP 3-6
3.6 Analog Points
Click on Analog for the Dataset you created in step 4 and create a new mapping to each SCADA analog point that the remote Client will have access to. The required fields are as follows:
Point (Select via Drag-n-Drop SCADA Point browser)
Identity (ICCP variable name assigned to the point)
Identity Type (ICCP scope, most common scope is VMD. 0=Domain, 1=VMD)
Data Type (Most common analog type is 3=DataRealQ)
Scaling (Default is Use Alternate 1 and 0 to send engineering value)
Figure 3-5 ICCP Server Analog Point
Users Guide ICCP Server Quick Start Windows SCADA ICCP 3-7
3.7 Control Points
Click on Control for the Dataset you created in step 4 and create a new mapping to each SCADA status point that the remote Client will have control access to. The required fields are as follows:
Point (Select via Drag-n-Drop SCADA Point browser)
Identity (ICCP variable name assigned to the point)
Identity Type (ICCP scope, most common scope is VMD. 0=Domain, 1=VMD)
Select before operate required (Optional but typically selected)
Parameter 2 is checkback value (Typically the ID in the Control section of the dataset)
Figure 3-6 ICCP Server Control Point
Users Guide ICCP Server Quick Start Windows SCADA ICCP 3-8
3.8 Setpoints
Click on Setpoint for the Dataset you created in step 4 and create a new mapping to each SCADA analog point that the remote Client will have control access to. The required fields are as follows:
Point (Select via Drag-n-Drop SCADA Point browser)
Identity (ICCP variable name assigned to the point)
Identity Type (ICCP scope, most common scope is VMD. 0=Domain, 1=VMD)
Data Type (Most common setpoint type is 1=Real)
Scaling (Default is Use Alternate 1 and 0 to send engineering value)
Select before operate required (Optional but typically selected)
Parameter 2 is checkback value (Typically the ID in the Setpoint section of the dataset)
Figure 3-7 ICCP Server Setpoint
Users Guide ICCP Server Quick Start Windows SCADA ICCP 3-9 3.9 Virtual RTU
Under Data Exchange, click the + on Servers to expand the tree, then click the ICCP Server you created in step 3. Create a new Virtual RTU that will map the Dataset created in step 4 to the Server created in step 3. The required fields are as follows:
Virtual RTU Name (Must be unique)
Address (Start at 1 and increment for each Virtual RTU added to this Server)
Modify Enable (Optionally check if remote Client has write access)
Control Enable (Optionally check if remote Client has control access)
Server (Select Server created in step 3)
Dataset (select Dataset created in step 4)
Select Output Dataset
Figure 3-8 ICCP Server Virtual RTU
Users Guide ICCP Server Quick Start Windows SCADA ICCP 3-10
3.10 Start Server
Assuming network connectivity has been established with the remote Client nodes, under Data Exchange, click on Servers and select the Server created in step 3. Click Start Server to activate the ICCP Server and listen for incoming connections from the remote Client. If network connectivity has not been established, see section 2.1, Network Connectivity, before proceeding.
3.11 ScanMon
Verify communications by enabling logging with ScanMon. Task name is ICCPSVn, where n is the Server ID. Use Log Type of Default and RTU Address 0.
Users Guide ICCP Client Quick Start Windows SCADA ICCP 4-1
4 ICCP Client Quick Start
This chapter describes how to quickly configure an ICCP Client to receive data from a remote ICCP Server. A more detailed description is available in chapter 8, ICCP Client Data Entry. As a prerequisite, you should have read chapter 2, Preparing For ICCP, and completed the Bilateral Table Agreement (BTA) document, as you will be referencing the BTA to configure your ICCP Client.
The ICCP Client Scan Task is configured via SCADA Explorer. If the SCADA Explorer is not currently active, then open it now and login.
4.1 Communication Line Status Point
Create a new SCADA status point for the Up/Down state of the ICCP Client link to the remote Server.
Users Guide ICCP Client Quick Start Windows SCADA ICCP 4-2
4.2 Local ICCP Nodes
Under Data Exchange, click ICCP Nodes and create a new local Client ICCP Node. If you have a dual system, one Client ICCP Node will be sufficient for both hosts, unless the remote Server requires unique addresses for each of your hosts. The required fields are as follows:
AR Name (Must be unique, typically the acronym of the Server company plus CL. For example, CMPA_CL)
Local checked
Shared unchecked
AP Title (Must be unique. For example, 1 3 9999 55 222 for the first local Node (Client and Server), then increment the last number by one for each local Node added.)
AE Qualifier (Typically the last number of the AP Title. For example, 222)
Psel (Must be unique for all local Nodes (Client and Servers) assigned to this host. Typically, Psel, Ssel and Tsel are set to the same value. For example, 0002. If you have a dual or quad system and you are creating an ICCP node for each host, the selectors should be the same for both hosts.)
Ssel (See Psel)
Tsel (See Psel)
Figure 4-1 ICCP Client Local Node
Users Guide ICCP Client Quick Start Windows SCADA ICCP 4-3
4.3 Remote ICCP Nodes
Create a new remote ICCP Node for each remote Server node that the ICCP Client will be connecting to. The required fields are as follows:
AR Name (Must be unique, typically the acronym of the Server node plus RM and SV. For example, RM_CMPA_SV.)
Remote checked
Host Name (Name of host if entered in the HOSTS file or an IP Address.)
AP Title (Must be unique. For example, 1 2 8888 3 50)
AE Qualifier (Typically the last number of the AP Title. For example, 50)
Psel (Typically, Psel, Ssel and Tsel are set to the same value. For example, 0001)
Ssel (See Psel)
Tsel (See Psel)
Figure 4-2 ICCP Client Remote Node
Users Guide ICCP Client Quick Start Windows SCADA ICCP 4-4
4.4 Communication Line
Click Communication Lines and create a new ICCP Client Communication Line. The required fields are as follows:
General Tab
Name (Must be unique) Protocol (ICCP) Autostart checked Status Point (Select point created in step 1)
Channel Tab
Network (TCP/IP) Long response timeout (Typically 10,000 milliseconds) Mode (Poll)
ICCP Tab
Bilateral Table ID (J ust text for the Bilateral Table agreement version. For example, V1.0. Must match remote Server) Domain Name (Typically takes one of two formats: the acronym of the remote Clients name. For example, CMPB. Or the combination of both companies acronyms with direction of dataflow. For example, CMPA_CMPB with data flowing from Company A Server to Company B Client.) Max PDU Size (Typically 32000 bytes) Life Check Interval (Typically 20 seconds) Connection Interval (Typically 5 seconds) Connection Retry (Typically 3) Version (1996-8 or 2000-8. Must match the remote Server) Local Client Nodes for A and B (ICCP Node(s) created in step 2. If a dual system, select an ICCP Node for both A and B. The same Node can be selected for both.) Remote Server Nodes (ICCP Node(s) created in step 3.)
Create a new SCADA status point for the Up/Down state of the RTU.
4.6 RTU
Click the + on Communication Lines to expand the tree and click the Communication Line created in step 4 and create a new RTU. The required fields are as follows:
General Tab
Name (Must be unique) Comm. Line (Select Communication Line created in step 4) Network (Select Use ComLine) RTU Addr (Start at 1 and increment for each new RTU added to this Communication Line) Status (Select SCADA status point created in step 5)
ICCP Tab
Interval checked (Typically 4 seconds for status points, 8 seconds for analog) Integrity checked (Typically 120 seconds or more) Report By Exception checked
Click the + on the Communication Lines to expand the tree. Click the + for Communication Line created in step 4 to expand the tree. Click the + for the RTU created is step 6 to expand the tree. Then click Status and create a new SCADA status point for each ICCP status point to be received from the remote Server. Survalent suggests that you create only one status point, verify that the point is properly received, and then use that point to model all of the others. The required fields are as follows:
General Tab
Name (Select station and unique point name) User Type Device Class Zone Group Command-State
Telemetry Tab
Address checked (Select RTU created in step 6) A (Start at 1 for the first status point and increment for each new status point) B (302=DataStateQ most common status data type) C=0 D=0 External Name (ICCP variable name assigned to the point by the remote Server) Type (ICCP Scope, most common scope is VMD. 0=Domain, 1=VMD) Format Code (Select entry that corresponds to status format code 1) Control-0 (Optionally checked) A (Checkback value if SBO required. Typically start at 1 for the first control point and increment for each new control point. Verify with remote Server.) B=400
Users Guide ICCP Client Quick Start Windows SCADA ICCP 4-7 C (1=SBO Required, 0=SBO Not Required) D (Command value, usually 1) Control-1 (Optionally checked) A (Checkback value if SBO required. Typically start at 1 for the first control point and increment for each new control point. Verify with remote Server.) B=400 C (1=SBO Required, 0=SBO Not Required) D (Command value, usually 0) Control External Name (ICCP control variable name assigned to the point by the remote Server) Type (ICCP Scope, most common scope is VMD. 0=Domain, 1=VMD)
Alarms Tab
Normal State Alarm Format
Figure 4-5 Status Point - Telemetry
Users Guide ICCP Client Quick Start Windows SCADA ICCP 4-8
4.8 Analog Points
Click the + on the Communication Lines to expand the tree. Click the + for Communication Line created in step 4 to expand the tree. Click the + for the RTU created is step 6 to expand the tree. Then click Analog and create a new SCADA analog point for each ICCP analog point to be received from the remote Server. Survalent suggests creating only one analog point, verifying the point is properly received then use that point to model all the others. The required fields are as follows:
General Tab
Name (Select station and unique point name) User Type Device Class Zone Group Format Code (Select entry that corresponds to analog format code 1) Address checked (Select RTU created in step 6) A (Start at 1 for first point and increment for each new analog point) B (103=DataRealQ most common analog data type) C=0 D=0 External Name (ICCP variable name assigned to the point by the remote Server) Type (ICCP Scope, most common scope is VMD. 0=Domain, 1=VMD)
Figure 4-6 Analog - General
Users Guide ICCP Client Quick Start Windows SCADA ICCP 4-9
4.9 Start Scan Task
Assuming network connectivity has been established with remote Server nodes, click on Communication Lines and select the Communication Line created in step 4. Click Start Scan Task to activate the ICCP Client and attempt connections to the remote Server. If the Client cannot connect to the remote Server, please see section 2.1, Network Connectivity.
4.10 ScanMon
Verify communications with ScanMon. Task name is ICCPn, where n is the Communication Line ID. Use Log Type of Default and RTU Address 0.
Users Guide ICCP Data Structures Windows SCADA ICCP 5-1
5 ICCP Data Structures
5.1 Bilateral Table 5.1.1 Server
The Bilateral Table used by the Windows SCADA ICCP Server program is defined largely by the contents of the Virtual RTU and Server editors. These two together specify:
the points accessible to each Client, with their
corresponding data types access control (read, modify, control)
configuration parameters
version of the Bilateral Table
Users Guide ICCP Data Structures Windows SCADA ICCP 5-2 5.1.2 Client
The Windows SCADA ICCP Client program is a scan task where the communication line is a network link. A separate Client runs for each link to a remote Server member of the network.
The Bilateral Table used by each Client is defined by its Scan Table, which is a Windows SCADA data structure that contains an ordered list of the points telemetered by the Client. The Scan Table is edited and maintained by the SCADA Explorer.
5.2 Data Values 5.2.1 Data Value Objects
A Data Value object in a Windows SCADA ICCP Server system corresponds to an entry in the analog, status or accumulator section of the Virtual RTU editor.
Each Client can be assigned access to the Virtual RTUs. (The collection of Virtual RTUs assigned to the Client is essentially the Servers instantiation of the Bilateral Table.)
The Client may create any number of datasets from each Virtual RTU. Each dataset may contain data values from more than one Virtual RTU.
The accumulator objects were designed for use by RTU protocol servers, but can also be used in ICCP. They are treated as regular analog data values.
A Data Value object is instantiated and mapped to an actual SCADA point at the Server.
5.2.2 Scope
The Windows SCADA Client and Server both support a mix of VMD-specific and Domain-specific data values.
Users Guide ICCP Data Structures Windows SCADA ICCP 5-3
5.2.3 Analog Data Value Types
Both Client and Server support the following ICCP data types for analog points:
Table 5-1 Analog Data Value Types Data Type Code ICCP Data Type Comment 1 Data_Real 2 Data_Discrete 3 Data_RealQ 4 Data_DiscreteQ 5 Data_RealQTimeTag 6 Data_DiscreteQTimeTag 7 Data_RealExtended 8 Data_DiscreteExtended 9 Data_RealQTimeTagExtended ICCP Version 2000-8 only 10 Data_DiscreteQTimeTagExtended ICCP Version 2000-8 only
On the Server side, the data type code of the desired data type must appear in the points Data Type field in the Data Exchange Dataset editor. This specifies to the Server the data type to use when sending the point's value.
On the Client side, the data type code of the desired data type is part of the points telemetry address. This code specifies to the Client the data type to use when unpacking and storing the points received value.
For analog data types 5 to 10, the Server sets the UTC/GMT TimeStamp component to the time the point was last updated. If the timestamp is invalid, the Client uses the time of the report.
The TimeStamp component for analog data types 5 and 6 have resolution to the second.
The TimeStamp component for analog data types 9 and 10 have resolution to the millisecond.
Neither the Client nor the Server make any use of the COV Counter component of analog data types 7 and 8. The Client ignores the COV counter and the Server sets it to zero.
Users Guide ICCP Data Structures Windows SCADA ICCP 5-4
5.2.4 Analog Quality Codes
The Data_Flags component of transmitted analog data values is prepared by the Server according to the table given below.
Table 5-2 Analog Quality Codes Windows SCADA Quality ICCP Validity ICCP Current Source NORMAL VALID TELEMETERED TELEMETRY FAILED (OLD) HELD TELEMETERED MANUALLY SET VALID ENTERED CALC FROM MANSET VALID TELEMETERED
The Windows SCADA NORMAL quality code shown in the table above is not the normal state of the point. Its a quality code that means the point is being updated normally.
The Server does not use the ICCP CALCULATED current source code.
The Server sets the ICCP NormalValue flag to 0 if the points transmitted value is within the point's Windows SCADA alarm limits. The flag is set to 1 if the point is in violation of its pre-emergency, emergency or reasonability limits.
If the required data type is discrete (integer), the Server converts the analog points floating point value to integer by truncation. If the result does not fit into the integer, the Server sends a value of zero with a validity code of NOTVALID. In this case, the Windows SCADA ICCP Client will ignore the new value and just set the receiving points quality code to TELEMETRY FAILED (i.e. old).
5.2.5 Status Data Value Types
Both Client and Server support the following ICCP data types for status points:
Table 5-3 Status Data Value Types Data Type Code ICCP Data Type Comment 1 Data_State 2 Data_StateQ 3 Data_StateQTimeTag 4 Data_StateExtended 5 Data_StateQTimeTagExtended ICCP Version 2000-8 only
For status data types 3 to 5, the Server sets the UTC/GMT TimeStamp component to the time the point was last updated. If the timestamp is invalid, the Client uses the time of the report.
The TimeStamp component for status data type 3 has resolution to the second.
Users Guide ICCP Data Structures Windows SCADA ICCP 5-5
The TimeStamp component for status data types 5 has resolution to the millisecond.
The translation of Windows SCADA status values to ICCP status values is shown in Table 5-4.
Table 5-4 Translation of Windows SCADA States to ICCP States Windows SCADA State Typical Windows SCADA Meaning ICCP State 0 Open 1 1 Closed 2 2 Travel 0 3 Error 3
Neither the Client nor the Server make any use of the COV Counter component of status data type 4. The Client ignores the COV counter and Server sets it to zero. 5.2.6 Status Quality Codes
The Validity and Current Source components of transmitted status data values are prepared by the Server according to the table given below.
Table 5-5 Status Quality Codes Windows SCADA Quality ICCP Validity ICCP Current Source NORMAL VALID TELEMETERED TELEMETRY FAILED (OLD) HELD TELEMETERED MANUALLY SET VALID ENTERED CALC FROM MANSET VALID TELEMETERED
The Windows SCADA NORMAL quality code shown in the table above is not the normal state of the point. Its a quality code that means the point is being updated normally.
The Server does not use the ICCP CALCULATED current source code.
The Server sets the ICCP NormalValue flag to 0 if the point's transmitted value is the points normal state. Otherwise, the flag is set to 1.
Users Guide ICCP Data Structures Windows SCADA ICCP 5-6
5.3 Datasets 5.3.1 Dataset Objects
The names of the datasets that the Windows SCADA Client creates at the Server are of the form:
Domai nName_DSn
where:
DomainName =Name of the Domain-specific work space n =RTU number
5.3.2 Scope
The Windows SCADA Server creates dataset objects with the scope requested by the Client.
When it requests that datasets be created, the Windows SCADA Client specifies the scope to be Domain- specific.
5.4 Transfer Sets 5.4.1 Transfer Set Objects
In a Windows SCADA ICCP Server, the object names of transfer sets are of the form:
Domai nName_TSn
where:
DomainName =Name of the Domain-specific work space n =transfer set number
(Example: COES_TS5 for transfer set 5)
The Server allocates object space for 32N transfer sets for its Client, where N is the number of Virtual RTUs mapped to the Server via the Virtual RTU editor.
5.4.2 Scope
Transfer sets and special transfer set variables are Domain-specific.
Users Guide ICCP Data Structures Windows SCADA ICCP 5-7
5.4.3 Special Transfer Set Variables
The following special transfer set variables are used by both the Client and the Server. All of these variables are Domain-specific.
Table 5-6 Special Transfer Set Variables Variable Name Type Next_DSTransfer_Set MMS ObjectName Transfer_Set_Name MMS ObjectName DSConditions_Detected DSConditions Transfer_Set_Time_Stamp GMTBasedS Transfer_Report_ACK MMS ObjectName Transfer_Report_NACK MMS ObjectName
Only the first of these variables can be read using an MMS Read request. For the others, an MMS Read request is NAKed, with an error code OBJ ECT-ACCESS-DENIED, error class ACCESS.
5.5 Devices 5.5.1 Device Objects
A Device object in a Windows SCADA ICCP Server system corresponds to an entry in the control section of the Virtual RTU editor.
5.5.2 Scope
Both the Windows SCADA Client and Server support a mix of VMD-specific and Domain-specific device objects.
5.5.3 Device Types
The ControlPointType of an instantiated Device object depends on the type of Windows SCADA point.
The ControlPointType is:
COMMAND if the Windows SCADA point is a status point
SETPOINT if the Windows SCADA point is an analog point
In the case of SETPOINT, the SetPointType is determined at the Server by the Data Type code in the Setpoint section of the Dataset editor as shown in the table below:
Users Guide ICCP Data Structures Windows SCADA ICCP 5-8 Table 5-7 Setpoint Types Data Type Code Setpoint Type 1 Real 2 Discrete
At the Client, the Setpoint Type is determined by the B field of the points Telemetry Address. See section 8.6 Control Point - Setpoints.
The SBO attribute (ICCP DeviceClass) for both control points and setpoints is determined at the Server by the Select before operate required checkbox in the Control and Setpoint sections of the Virtual RTU editor.
At the Client, the SBO attribute for both control points and setpoints is determined by the C part of the control address. See sections 8.5, Control Point - Command, and 8.6, Control Point - Setpoints.
This is a Domain-specific variable of type Visible-String-32. Valid characters for this are alphanumeric, $, or underscore, but not spaces. The maximum length of this variable is 32 characters.
5.6.2 Supported_Features
This is a VMD-specific variable of type SupportedFeatures.
When the Client issues a read request for this variable, the Windows SCADA Server returns a 12-bit string as follows:
Table 5-8 Supported Features Block Description Supported 1 Basic services Yes 2 Extended dataset condition monitoring Yes 3 Blocked transfers No 4 Operator stations No 5 Device control Yes 6 Programs No 7 Events No 8 Accounts No 9 Time series No 10 Undefined No 11 Undefined No 12 Undefined No
Users Guide ICCP Data Structures Windows SCADA ICCP 5-9
5.6.3 TASE2_Version
This is a VMD-specific variable of type TASE2Version. In Windows SCADA ICCP the Client and Server support 1996-8 and 2000-8.
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-1
6 ICCP Server Data Entry
This chapter describes how to use the Data Exchange section of the SCADA Explorer to define Servers, Virtual RTUs, Datasets and ICCP nodes for use by the ICCP Server program.
This is not a complete description of Windows SCADA Data Exchange. This presentation is limited to only those data fields that are of interest in an ICCP context.
The inter-relationship of the Data Exchange components are displayed in the figure below. The Server is the main component that can have multiple Virtual RTUs mapped to it. A Virtual RTU maps one Data Exchange Dataset to one Server.
Virtual RTU 2 Virtual RTU n Server ICCP Nodes Virtual RTU 1
Dataset 1 Dataset 2 Dataset n
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-2 6.1 Client Capabilities
The Windows SCADA ICCP Server has the capabilities to also act as an ICCP Client. That is, the Server can send and receive points from the remote system. This type of connection is extremely rare and usually only required when the remote system does not support dual connections and must send and receive points through a single connection.
The ICCP Servers capability to act as an ICCP Client is limited to receiving points only. It is not possible to issue controls or setpoints to the remote system. Also, activating a point on a map or a viewer will NOT cause the point to be read from the remote system.
For dual or bi-directional connections, Survalent strongly recommends using the Windows SCADA ICCP Client Scan Task (see chapter 8, ICCP Client Data Entry) for receiving data and the Windows SCADA ICCP Server for sending data.
If you are in doubt of how you should configure your ICCP Client and Server, please contact Survalent Customer Support for clarification.
6.2 Server Editor
The Server editor is used to define a protocol Server that will respond to requests and exchange data with a remote system. The Server contains a collection of points that are grouped into Virtual RTUs. These are the only points that are accessible to the remote system.
6.2.1 Server Data Fields General Section
Server Name
A unique name to readily identify the Server.
Description
A text string to describe the Server.
Link Status
The name of a status point used by the Server to indicate the Connected or Disconnected status of the communication link. The Link Status is required and must already exist in the database.
To create the points you could abandon the editing of this Server, and go to the desired station in the SCADA Explorer. But, you may prefer to temporarily start a second copy of SCADA Explorer, and use it to create the point, then quit the second SCADA Explorer as soon as you are done with it.
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-3 Figure 6-1 Server Editor
Protocol
This is the name of the protocol to be used to communicate with the remote system. It specifies which Server will be used. For ICCP, choose the name ICCP.
Auto Start
Set this flag if you want the Server to start automatically when the SCADA system starts or when failover occurs.
Configuration Switches
This field allows you to specify certain command line switches to control the behavior of the Server. The switches that are supported by the ICCP Server are described below. Specify each switch you need by entering /name=value in this field. You do not need to add a space or other punctuation between switches. The switch names or values are not case sensitive.
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-4
/LogPath
The LogPath option specifies the folder where the Server is to log communications to a file. If not specified, the Server will use the folder specified when Windows SCADA was installed. The default folder name is C:\Program Files\Quindar\ScadaServer. If this option is specified, it must precede the /Log option and the folder must already exist.
/Log
The Log option specifies the Server is to log communications to a file. The file will be created in the folder specified when Windows SCADA was installed. The default folder name is C:\Program Files\Quindar\ScadaServer. The file name is comprised of the protocol name, the Server id and the current date. For example, a file name from Server ID 1 on August 2, 2007 would be ICCPSV1- 2007-08-2.log.
Care should be taken when using this option and should only be enabled for short periods of time, as the file will continue to grow and consume all the free space on the disk.
The valid values for this option are as follows:
Default Log all communication.
Start Server
Clicking the Start Server button will cause the Server to start. If the Server was already active, it will exit and then re-start.
Stop Server
Clicking the Stop Server button will cause the Server to exit.
6.2.2 Server Data Fields ICCP General Parameters
Listen for Connection / Initiate Connection
Select Listen for Connection, as this is the standard behavior of an ICCP Server. Otherwise, select Initiate Connection for the rare case where the Server will initiate the connection to the remote Client. If initiating the connection then Remote Node(s) must also be selected.
Bilateral Table ID
This is a text string that represents the version of the Bilateral Agreement. Valid characters are alphanumeric, $ and underscore, but not spaces. The maximum length is 32 characters.
Max PDU Size
This is the maximum Program Data Unit or packet size the Server will send or receive. The packet size is negotiated with the remote Client and the lesser of the two will be used. Typically 32,000 bytes.
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-5
Life Check Interval
This is the interval in seconds that the Server checks the health of the connection to the Client. This is useful to determine when a Client may not be responding or to expedite a lost TCP/IP socket connection.
Once an association has been established, every interval the Server will issue an Identify request to Client. The Client must respond to this request within the same amount of time or else the Server will abort the association. Typical interval is 20 seconds.
If the interval is zero, the Server will NOT check the health of the connection and recovery of a lost TCP/IP socket is left to the operating system to notify the Server. This may take several minutes or even hours before the system notifies the Server.
Version
This is the version of ICCP the Server is to support. The Server and the remote system must agree which ICCP version is to be used. Select the version from the drop down list.
Local Nodes
The local nodes are the AR Names that the Server is to use to register and identify itself on the network. The selectable AR Names in the drop down list are those ICCP Nodes that have been defined as local. In a single master system you only need to select an AR Name for A (HOSTA). In a dual-redundant master system you need to select an AR Name for A (HOSTA) and B (HOSTB). In a quad-redundant master system, you need to select an AR Name for A (HOSTA), B (HOSTB), C (HOSTC) and D (HOSTD). The same AR Name can be selected for all entries.
Remote Nodes
The remote nodes are only required when the Server is Initiating the Connection to the remote system. If the Server is Listening for a connection leave the Remote Nodes set to <None>.
The Remote Nodes are the AR Names that the Server will attempt to connect to. The selectable AR Names in the drop down list are those ICCP Nodes that have been defined as remote. At startup the Server will attempt to connect to the remote system specified in A. If the Server fails to connect to A, it will then try to connect to B. If the Server fails to connect to B, it will then try to connect to C. If the Server fails to connect to C, it will then try to connect to D. The Server will continue cycling through all the Servers until a connection is made.
6.2.3 Server Data Fields ICCP Server Parameters
Domain Name
This is the name of the Domain that Domain-specific entities will be created in for the remote Client. The Server creates the Domain or working space, and then creates and instantiates each Domain-specific variable. The remote Client can access these variables and create datasets in this Domain.
Valid characters are alphanumeric, $ and underscore, but not spaces and must begin with an alphabetic character. The maximum length is 32 characters.
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-6 Care should be taken when deciding on the Domain name, as the Domain name will be included in information reports for EVERY Domain-specific point. Survalent recommends use of short Domain names not much more than 6 characters in length.
Typically, this takes one of two formats:
1. The acronym of the remote Clients companys name. For example, CMPB. 2. The combination of both companys acronyms with direction of dataflow. For example, CMPA_CMPB with data flowing from Company A to Company B.
Critical Response Time
This is the maximum amount of time in seconds that the Server will wait for an acknowledgement of a critical information report. Typically 30 seconds.
Minimum Interval
This is the minimum allowable interval or integrity value the Client can use for transfer sets. If the Client writes to a transfer set with an interval or integrity value less than the allowable, the Server will not accept (NACK) the write request. Typically 4 seconds. If zero is entered, the Server will allow any interval the Client specifies.
6.2.4 Server Data Fields ICCP Client Parameters
These parameters are only required in the rare case where the Server will also be acting as Client. That is, the Server will both be sending and receiving points from the remote system. Leave these fields empty or zero if the Server is NOT acting as a Client. If you want to receive points from the remote system, Survalent recommends configuring a Windows SCADA ICCP Client scan task. See chapter 8 ICCP Client Data Entry.
Domain Name
This is the name of the Domain that Domain-specific entities will be created in for the Client at the remote Server. The remote Server creates the Domain or working space, and then creates and instantiates each Domain-specific variable. The Client can access these variables and create datasets in this Domain.
Valid characters are alphanumeric, $ and underscore, but not spaces and must begin with an alphabetic character. The maximum length is 32 characters.
Care should be taken when deciding on the Domain name, as the Domain name will be included in information reports for EVERY Domain-specific point. Survalent recommends use of short Domain names not much more than 6 characters in length.
Typically, this takes one of two formats:
1. The acronym of the your companys name. For example, CMPA. 2. The combination of both companys acronyms with direction of dataflow. For example, CMPB_CMPA with data flowing from Company B to Company A (your company).
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-7
Connection Interval
This specifies the time delay between re-connect attempts after the first Connection Retry attempts. Typical interval is 5 seconds.
Connection Retry
This specifies the number of immediate re-connect attempts to perform on loss of association. If an association is still not established after this number of attempts, the Client continues to try to connect, but it executes the Connection Interval delay between each attempt. If the remote system has redundant nodes, the Client switches target nodes after each Connection Retry attempts. Typical retry count is 3.
6.3 Virtual RTU
The Virtual RTU editor is used to map a Dataset to a Server. In ICCP, usually only one Virtual RTU per Server is sufficient. However, if you are serving more than one Client then you may require multiple Virtual RTUs. One Virtual RTU for points common to all Clients and another Virtual RTU for points only of interest to that Client.
A Virtual RTU maps to only one Dataset. For convenience, all the points in the Dataset can be directly accessed under the Virtual RTU tree in the SCADA Explorer.
Figure 6-2 Virtual RTU Editor Output Dataset
Virtual RTU Name
A unique name to readily identify the Virtual RTU.
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-8
Description
A description of the Virtual RTU.
Address
This is the station address that uniquely identifies the Virtual RTU on the Server. Even though the concept of an RTU is not present in ICCP, the Data Exchange facility of Windows SCADA requires this field. Simply start with 1 and increment the address for each Virtual RTU added to the Server.
Modify Enable
All analog, accumulator and status points on a Virtual RTU automatically have read access. If you want a Client to have write access to these points you must check this box. By checking this box doesnt mean that the Client has write access to ALL points on the Virtual RTU. Each point must also be individually enabled. This two step approach is done to allow write access by one Client and not another in the event of Datasets being shared with multiple Clients.
Control Enable
Check this box if you want the Client to be able to issue controls and setpoints on your system. All setpoint and control points in the corresponding Dataset will be accessible to the Client.
Server
This drop down menu is a list of all the protocol servers defined in Data Exchange. Select the ICCP Server that this Virtual RTU will be attached to. The Server must be defined before creating the Virtual RTU.
Dataset
This drop down menu is a list of all the Datasets defined in Data Exchange. Select the Dataset that this Virtual RTU maps to. The Dataset must be defined before creating the Virtual RTU. However, the points in the Dataset may be defined at any time.
Output Dataset
Select Output Dataset if the points in the Dataset are to be sent to the remote Client. This is the normal selection. In this case the Transmission Parameters have been disabled as they are not required.
Input Dataset
Select Input Dataset only in the rare case where the Server will be also be acting as Client and this Dataset represents points that will be received from the remote Server. In this case, the Transmission Parameters are also required.
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-9 The Transmission Parameters are only required in the rare case, where the Server will also be acting as Client and Input Dataset is selected.
Figure 6-3 Virtual RTU Editor - Input Dataset
Typical Transmission Parameters configured are Interval, Integrity and Report By Exception. In the example in Figure 6-3, the Remote Server is instructed to check for changes every 4 seconds and only send those points that have changed and every 60 seconds the Remote Server is to send all the points.
Interval
This is the time interval in seconds for the Remote Server to send periodic reports. Used if the Interval checkbox is enabled. Typical interval is 4 seconds.
Integrity
This is the time interval, in seconds, that the Remote Server is to send all-data reports. Used if the Integrity checkbox is enabled. Typical interval is 60 seconds.
Time Limit For Execution
This is the time limit within which the Remote Server must report. It is supported by the Client in the sense that it is included in the transfer set requests made to the Remote Server, but the Client does not check whether transfer reports are late. Not typically used, normally set to 0.
Buffer Time
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-10 This is the time, in seconds that the Remote Server is to use for buffering Object Change conditions. If a change is detected, the Remote Server will delay this amount of time before reporting the change. Not typically used, normally set to 0.
Event Condition Requested
This is a code describing an external event that will trigger the Remote Server to send a report. Used if the Other External Event checkbox is enabled. Not typically used, normally set to 0.
Block Data
If this checkbox is enabled, transfer reports are to be blocked (i.e. use a mutually agreed block data reporting format). Not supported by the Client in this implementation of Windows SCADA ICCP, leave this checkbox disabled.
Critical
If this checkbox is enabled, the Client will send an acknowledgement to the Remote Server for each transfer report received. Not typically used, normally unchecked.
Report By Exception
If this checkbox is enabled, the Remote Server is to send only exceptions (points that have changed value or quality), in its transfer reports. However, in the case of integrity timeout, all-data will be included in the transfer report. Typically enabled to reduce the data packet size.
Object Change
If this checkbox is enabled, the Remote Server is to send transfer reports when ANY object in the dataset changes in either value or quality. Actual transmission is delayed by the Buffer Time delay, if specified. The values transmitted are those that are available at the end of the buffer time delay.
If Object Change is enabled, the Remote Server will constantly scan the dataset for changes. This differs from Interval reports that only scan for changes once at the end of each time period. This can create more overhead on the Remote Server and/or more network packets being generated but also allows for instantaneous reporting of changes. Not typically enabled.
Operator Request
If this checkbox is enabled, the Remote Server is to send transfer reports if requested by the operator. Not typically enabled.
Other External Event
If this checkbox is enabled, the Remote Server is to send transfer reports whenever some external event occurs. Not typically enabled.
All Changes
The All Changes option is available for selection when ICCP version 2000-8 is selected on the Server. If this checkbox is enabled, the Remote Server is to send ALL state changes for status points not just the current state. When this option is enabled, Report By Exception, Object Change
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-11 and Buffer Time must also be enabled and Interval must be disabled. Integrity is optional but recommended. See Figure 6-4 for an example.
Figure 6-4 All Changes Settings
6.4 Datasets
The Dataset editor creates a definition for a group of analog, accumulator, status, setpoint and control points. The points themselves are edited with their corresponding editor.
A Dataset may be mapped to one or more Virtual RTUs.
Figure 6-5 Dataset Editor
Dataset Name
A unique name to readily identify the Dataset.
Description
A description of the Dataset.
In ICCP, points in a Dataset are referenced by name. The points name is included in most requests and responses with the remote system. If throughput or speed of the connection to the remote system is an issue, you may want to consider using shorter names. You may also want to consider using a scope of VMD-specific or use a short Domain name, as the Domain name for Domain-Specific variables is included FOR EVERY point transmitted.
Valid characters are alphanumeric, $ and underscore, but not spaces and must start with an alphabetic character. The maximum length of a variable name in ICCP is 32 characters.
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-12 Survalent recommends using a scope of VMD-specific. 6.5 Status Points
The Status section contains the status points that are assigned to the Dataset.
Figure 6-6 Dataset Editor - Status Section
Point
This is the name of a SCADA status point whose state and condition will be monitored and sent to the Client. The status point is selected via the Drag-n-Drop SCADA window. Only status points may be dropped into this location.
Identity
The identity is used to uniquely identify the point within the Dataset. ICCP only supports Name and Use Points External Name to identify a point. All other methods are not supported by ICCP. Name
When selected, the text box contains the ICCP name that the remote Clients will use to access the point. Valid characters are alphanumeric, $ and underscore, but not spaces and must start with an alphabetic character. The maximum length of a variable name in ICCP is 32 characters. If Name is selected then a numeric Type code must also be specified to select the scope of the point. The most common scope is VMD or 1. See Table 6-1 for Type codes.
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-13 Use Points External Name
When selected, the External Name and Type code defined for the point will be used. This may be useful when the value for this SCADA status point is being received from another system, it is a way to propagate the point name without having to re-enter it.
Parameters
The parameters provide additional criteria for an instance of a point. In ICCP only parameter 1 is used for status points, leave all other parameters set to 0.
Parameter 1 Warn on Modify Error
If set to 1, the Server will warn the Client if an attempt to modify a data value fails because the point is manually set at the Server. When set to 0, the default behavior, the Server will not update the point and will NOT notify the Client of the error.
The purpose of this is to allow point values at the Server to be overridden by the operators without disturbing the Client.
Data Type
The Data Type code specifies how the points value, quality codes and timestamps are formatted for transmission. See Table 6-2 for the Data Type codes for status points. The most common Data Type is Data_StateQ or 2.
ICCP Data Types Data_StateQTimeTag and Data_StateExtended use timestamps with second resolution while Data_StateQTimeTagExtended use timestamps with millisecond resolution. The Server sets the TimeStamp component to the time of the last status change in UTC/GMT and sets the TimeStampQuality attribute to VALID.
Table 6-2 Status Point Data Types Data Type Code ICCP Data Type Comment 1 Data_State 2 Data_StateQ 3 Data_StateQTimeTag 4 Data_StateExtended 5 Data_StateQTimeTagExtended ICCP Version 2000-8 only
Data Format
This field defines how the state of the SCADA status point will be translated. In ICCP this translation has been defined by the protocol and therefore this field is not required. Leave this field set to the default value of Single Bit. The SCADA status state is translated to the ICCP state via the following table.
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-14
Table 6-3 Translation of Windows SCADA States to ICCP States SCADA State Typical SCADA Meaning ICCP State 0 Open 2 1 Closed 0 2 Travel 1 3 Error 3
Modify Enable
If this box is checked the Client has write access to this point only if the corresponding Virtual RTU also has its Modify Enable box checked.
6.6 Analog Points
The Analog section contains the analog points that are assigned to the Dataset.
Point
This is the name of a SCADA analog point whose value and condition will be monitored and sent to the Client. The analog point is selected via the Drag-n-Drop SCADA window. Only analog points may be dropped into this location.
Identity
The identity is used to uniquely identify the point within the Dataset. ICCP only supports Name and Use Points External Name to identify a point. All other methods are not supported by ICCP.
Name
When selected, the text box contains the name that remote Clients will use to access this point. Valid characters are alphanumeric, $ and underscore, but not spaces and must start with an alphabetic character. The maximum length of a name in ICCP is 32 characters. If Name is selected then a numeric Type code must also be specified to select the scope of the point. The most common scope is VMD or 1. See Table 6-4 for Type codes.
When selected, the External Name and Type code defined for the point will be used. This may be useful when the value for this SCADA analog point is being received from another system. Its a way to propagate the point name without having to re-enter it.
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-15 Figure 6-7 Dataset Editor - Analog Section
Parameters
The parameters provide additional criteria for an instance of a point. In ICCP only parameter 1 is used for analog points, leave all other parameters set to 0.
Parameter 1 Warn on Modify Error
If set to 1, the Server will warn the Client if an attempt to modify a data value fails because the point is manually set at the Server. If set to 0, the Server will NOT warn the Client of the error.
The purpose of this is to allow point values at the Server to be overridden by the operators without disturbing the Client.
Data Type
The Data Type code specifies how the points value, quality codes and timestamps are formatted for transmission. See Table 6-5 for the analog Data Type codes. The most common analog Data Type is Data_RealQ or 3.
ICCP Data Types Data_RealQTimeTag, Data_DiscreteQTimeTag, Data_RealExtended and Data_DiscreteExtended use timestamps with second resolution while Data_RealQTimeTagExtended and DataDiscreteQTimeTagExtended use timestamps with millisecond resolution. The Server sets the TimeStamp component to the time of the last analog change in UTC/GMT and sets the TimeStampQuality attribute to VALID.
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-16
Table 6-5 Analog Data Types Data Type Code ICCP Data Type Comment 1 Data_Real 2 Data_Discrete 3 Data_RealQ 4 Data_DiscreteQ 5 Data_RealQTimeTag 6 Data_DiscreteQTimeTag 7 Data_RealExtended 8 Data_DiscreteExtended 9 Data_RealQTimeTagExtended ICCP Version 2000-8 only 10 Data_DiscreteQTimeTagExtended ICCP Version 2000-8 only
Data Format
This field defines how the value is formatted. In ICCP the Data Type is sufficient and this field is not required. Leave this field set to 0.
Scaling
Scaling is not currently used in ICCP. The values transmitted to the Client are in engineering units. Select Use Alternate with a Scale factor of 1 and Offset of 0.
Deadband
The Deadband is not currently used in ICCP. Uncheck the Enabled box and set the value to 0.
Modify Enable
If this box is checked the Client has write access to this point only if the corresponding Virtual RTU also has its Modify Enable box checked.
6.7 Accumulator Points
The Accumulator section contains the accumulator points that are assigned to the Dataset. In ICCP there is no accumulator definition, so this is basically another list of analog points. See section 6.6 Analog Points.
6.8 Control Points
The Control section contains the controllable points that are assigned to the Dataset.
The Client has control access to all the points in the Control section only if the corresponding Virtual RTU has its Control Enable box checked.
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-17
Figure 6-8 Dataset Editor - Control Section
Point
This is the name of a SCADA status point whose state and condition will be modified or controlled by the Client. The status point is selected via the Drag-n-Drop SCADA window. Only status points may be dropped into this location.
Identity
The identity is used to uniquely identify the point within the Dataset. ICCP only supports Name and Use Points External Name to identify a point. All other methods are not supported by ICCP.
Name
When selected the text box contains the name that remote Clients will use to access this point. Valid characters are alphanumeric, $ and underscore, but not spaces and must start with an alphabetic character. The maximum length of a name in ICCP is 32 characters. If Name is selected then a numeric Type code must also be specified to select the scope of the point. The most common scope is VMD or 1. See Table 6-6 for Type codes.
When selected the Control External Name and Type code defined for the point will be used. This may be useful when controlling a point from another system, it is a way to propagate the point name without having to re-enter it.
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-18 Parameters
The parameters provide additional criteria for an instance of a point. In ICCP, only parameters 1 and 2 are used for control points, leave all other parameters set to 0.
Parameter 1 Warn on Modify Error
If set to 1, the Server will warn the Client if an attempt to modify a data value fails because the point is manually set at the Server. If set to 0, the Server will not update the point and will NOT notify the Client of the error.
The purpose of this is to allow point values at the Server to be overridden by the operators without disturbing the Client.
Parameter 2 Checkback Value
This is the value the Server is to send to the Client when the Client issues a Select request. Survalent recommends that a Checkback Value always be entered even if Select before operate required is not checked, as the Client may choose to issue a Select request regardless of what the Server requires. Suggest using the ID number of the control point as the Checkback Value.
Data Type
This field is not currently used in ICCP, enter 0.
Data Format
This field is not currently used in ICCP, enter 0.
Select before operate required
If this box is checked the Client is required to perform a Select request before performing an Operate request.
6.9 Setpoints
The Setpoint section contains the setpoints that are assigned to the Dataset.
The Client has control access to all the points in the Setpoint section only if the corresponding Virtual RTU has its Control Enable box checked.
Point
This is the name of a SCADA analog point whose value can be modified by the Client. The analog point is selected via the Drag-n-Drop SCADA window. Only analog points may be dropped into this location.
Identity
The identity is used to uniquely identify the point within the Dataset. ICCP only supports Name and Use Points External Name to identify a point. All other methods are not supported by ICCP.
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-19 Name
When selected the text box contains the name that remote Clients will use to access this point. Valid characters are alphanumeric, $ and underscore, but not spaces and must start with an alphabetic character. The maximum length of a name in ICCP is 32 characters. If Name is selected then a numeric Type code must also be specified to select the scope of the point. The most common scope is VMD or 1. See Table 6-7 for Type codes.
When selected the External Name and Type code defined for the point will be used. This may be useful when controlling a point from another system, it is a way to propagate the point name without having to re-enter it.
Figure 6-9 Dataset Editor - Setpoint Section
Parameters
The parameters provide additional criteria for an instance of a point. In ICCP only parameters 1 and 2 are used for setpoints, leave all other parameters set to 0.
Parameter 1 Warn on Modify Error
If set to 1, the Server will warn the Client if an attempt to modify a data value fails because the point is manually set at the Server. If set to 0, the Server will not update the point and will NOT notify the Client of the error.
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-20 The purpose of this is to allow point values at the Server to be overridden by the operators without disturbing the Client.
Parameter 2 Checkback Value
This is the value the Server is to send to the Client when the Client issues a Select request. Survalent recommends that a Checkback Value always be entered even if Select before operate required is not checked, as the Client may choose to issue a Select request regardless of what the Server requires. Suggest using the ID number of the setpoint as the Checkback Value.
Data Type
The transmitted Data Type code specifies to the Server what Data Type to use when receiving the points value from the Client. The most common Data Type is Real or 1. See Table 6-8 for Data Type codes.
Table 6-8 Setpoint Data Value Types Data Type Code ICCP Data Type 1 Real 2 Discrete
Data Format
This field is not currently used in ICCP, enter 0.
Scaling
Scaling is not currently used in ICCP. The values transmitted to the Client are in engineering units. Select Use Alternate with a Scale factor of 1 and Offset of 0.
Select before operate required
If this box is checked the Client is required to perform a Select operation before performing an Execute operation.
6.10 ICCP Nodes
The ICCP Node editor defines local and remote ICCP application addresses. Much the same way an IP address is used to identify a computer, the information provided here is used to address an application.
AR Name
A unique name to readily identify the ICCP node. The AR Name is only used within Windows SCADA and is not exchanged with remote systems.
AR Names appear in the Local Nodes section for Servers and in the Local Client Nodes and Remote Server Nodes sections for Communication Lines. AR Names also appear in the Remote Nodes section for Servers but are not used except in the rare case when the Server also acts as a Client.
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-21 Figure 6-10 ICCP Node Editor
Description
A text string to describe the ICCP Node.
Local
If checked, this is for an ICCP node on your Windows SCADA system. The Host Name is not required, leave it blank.
Shared
The Shared box is applicable for Local connections only. If this box is checked, it indicates that both the Local Client and Local Server will use this ICCP Node and present a single application address to the remote system. If this box is unchecked, Local Clients and Local Servers must each use a unique ICCP Node.
Typically, this field is unchecked, requiring separate connections to be established for Client and Server.
Remote
If checked, this is for an ICCP node on another system. The Host Name is required.
Host Name
The Host Name is only required if Remote has been checked. The Host Name may be entered as a meaningful name or a dotted IP address. If entered as a meaningful name, that name must also appear in the HOST file or must be able to be resolved by a DNS server.
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-22 The following fields are used to address ICCP applications. Some installations may enforce strict addressing policies while others may not. There are no standards for addressing, therefore what is listed here is a guideline only.
Typically the AP Title, AE Qualifier, Psel, Ssel and Tsel are specified, while the AP Invoke ID and the AE Invoke ID are left blank.
AP Title
The Application Process Title is a sequence of integers and can be up to 15 integers in length. Each integer is separated by a space.
Typically an AP Title would like something like 1 3 9999 1 101. Then to make the AP Title unique, simply increment the last integer. For example, 1 3 9999 1 102.
While not currently enforced, it is best to define a unique AP Title for each local and remote definition. Future system updates may require uniqueness.
AP Invoke ID
The Application Process Invoke ID is an optional integer. Its use is not clearly defined and Survalent suggests you leave this field blank.
AE Qualifier
The Application Entity is an optional integer.
Typically the AE Qualifier is usually the last integer of the AP Title. From the example above this would result in an AE Qualifier of 101.
While not currently enforced, it is best to define a unique AE Qualifier for each local and remote definition. Future system updates may require uniqueness.
AE Invoke ID
The Application Entity Invoke ID is an optional integer. Its use is not clearly defined and Survalent suggests you leave this field blank.
Psel, Ssel and Tsel
The Presentation and Session Selectors represents a hexadecimal octet string and can be up to 16 octets (bytes). The Transport Selector represents a hexadecimal octet string and can be up to 32 octets. Octets may or may not include a space between them. Two hexadecimal characters are required to represent one octet.
Typically all three selectors are set to the same value, for example 0001. Then for each node increment the selectors by 1, for example 0002.
Local selectors on a Survalent Windows system MUST be unique or the address registration may fail.
Remote selector definitions are based upon restrictions of the remote system. Check with the system manager of the remote system for guidelines.
Users Guide ICCP Server Data Entry Windows SCADA ICCP 6-23 Local selectors are independent from Remote selectors and therefore may have the same settings.
Users Guide Operation of ICCP Server Windows SCADA ICCP 7-1
7 Operation of ICCP Server
Each link to a remote Client is served by a separate instance of the Server.
The Servers Bilateral Table for each remote Client is defined in the Server, Virtual RTU, Dataset and ICCP Node editors in the Data Exchange section of the SCADA Explorer.
The functions of the Server are as follows:
At startup:
Read the Bilateral Table (the Server record and all associated Virtual RTU definitions), and instantiate all the data value objects assigned to the remote Client.
Set the Link Status point to Disconnected.
Register the Servers AR Name for the appropriate Host (A, B, C or D) from the Local Nodes field of the Server record.
Create a Domain for the remote Client from the ICCP Server Parameters Domain Name of the Server record.
Either listen for a connection from the remote Client or initiate the connection to the remote Client.
Perform the necessary handshaking and validation on initial association with the remote Client.
Validate received definitions of datasets and transfer sets.
Users Guide Operation of ICCP Server Windows SCADA ICCP 7-2 Perform the condition monitoring specified in the transmission parameters of all the enabled transfer sets. Transmit data when transmission conditions are true.
Service control requests from the remote Client.
For a SBO control, the Server validates the Select request and returns a checkback reply. The remote Client then issues the Operate request. The Server then initiates a Windows SCADA control operation for the appropriate control point specified in the dataset.
This causes other software in the master station to forward a control message sequence to the RTU specified by the control points Windows SCADA control address (as defined via the SCADA Explorer). Controls on the RTUs on this communication line may or may not involve a two-step control procedure.
When the Server is also acting as a Client the additional functions are as follows:
For each Virtual RTU marked as Input Dataset, define the corresponding dataset at the remote Server and then start the transfer set.
Process received data (information reports) from the remote Server.
7.1 Operation as Server
This section describes the behavior of the ICCP Server interacting with a remote Client.
7.1.1 Association Control 7.1.1.1 Associate
This function is mapped to the MMS Initiate service. It can be issued by the remote Client or by the Server depending on the selection in the Server record. The default ICCP behavior is for the Server to listen for connections and the remote Client to initiate the connection.
On reception of an MMS Initiate indication,
The Server ACKs the request (positive MMS Initiate reponse), with the following arguments:
Local Detail Called =max PDU size Negotiated Max Serv Outstanding Calling =5 Negotiated Max Serv Outstanding Called =5 Negotiated Data Structure Nesting Level =4 Init Response Detail =see below
The negotiated maximum PDU size that the Server returns in the Local Detail Called argument is determined as the lesser of the value that was proposed by the remote Client (via the Local Detail Calling argument) and the value of Max PDU Size on the Server editor.
Users Guide Operation of ICCP Server Windows SCADA ICCP 7-3
The Init Response Detail consists of:
Negotiated MMS Version Number
=provided by the MMS provider
Negotiated Parameter CBB
=same as that proposed by the Windows SCADA ICCP Client scan task (see section 9.2 Association)
Services Supported Called
=bitstring formed to represent the Server column of the Table in chapter 11.
The Server then sets the Link Status point to Connected.
When the remote Client sends an MMS Read service request for the variable Bilateral_Table_ID, the Server returns the value defined in its Server record.
When the remote Client sends an MMS Read service request for the variable TASE2_Version, the Server returns the version selected in its Server record, either 1996-8 or 2000-8.
When the remote Client sends an MMS Read service request for the variable Supported_Features, the Server returns a 12-bit bitstring representing the ICCP conformance table of chapter 10:
Table 7-1 ICCP Conformance Table Block Description Supported 1 Basic services Yes 2 Extended dataset condition monitoring Yes 3 Blocked transfers No 4 Operator stations No 5 Device control Yes 6 Programs No 7 Events No 8 Accounts No 9 Time series No 10 Undefined No 11 Undefined No 12 Undefined No
If the Server is initiating the connection and the Server receives a negative MMS Initiate response, the Server performs N retries, where N is given by its Server record Connection Retry. After N retries, the Server continues to attempt to connect, but executes a delay between each attempt. The delay time is specified by the value by its Server record Connection Interval. If there are multiple Remote nodes, the Server switches target AR Names after each delay. The Server continues its connection attempts until it receives a positive MMS Initiate response and handles the response as above.
Users Guide Operation of ICCP Server Windows SCADA ICCP 7-4 7.1.1.2 Conclude
This function is mapped to the MMS Conclude service.
This request is issued to the remote Client by the Server when Stop Server or Start Server on the Server editor is clicked. If the remote Client fails to respond to the Conclude, the Server will issue an immediate Abort request.
When a Conclude indication is received from the remote Client, the Server:
ACKs the request (positive MMS Conclude response).
Deselects any SBO controls that are presently selected by the remote Client.
Stops all condition monitoring and destroys all transfer set objects.
Sets the Link Status point to Disconnected.
When the connection is re-established, the remote Client must re-issue Start Transfer Set requests to restart the transfer sets. For each transfer set, the remote Client must use the Get Next Transfer Set Name function to obtain a new transfer set name.
Note that the Server preserves the dataset definitions across loss of connections. See section 7.1.2.3, Persistence of Dataset Definitions.
7.1.1.3 Abort
This function is mapped to the MMS Abort service.
This request is issued to the remote Client by the Server when the remote Client fails to respond to the Conclude request.
In Windows SCADA, a failover from master to standby causes the equivalent of a reset.
When an Abort indication is received from the remote Client, the Server performs the same processing as for Conclude.
7.1.2 Datasets 7.1.2.1 Create Dataset
This function is mapped to the MMS DefineNamedVariableList service.
When the Server receives an MMS DefineNamedVariableList service request containing a list of correctly formed Data Value object identifiers,
It checks that the new proposed dataset name is unique (i.e. does not already exist). If the new dataset name is not unique, the request is NAKed (negative MMS DefineNamedVariableList response, error =OBJ ECT-EXISTS, error class =DEFINITION).
Users Guide Operation of ICCP Server Windows SCADA ICCP 7-5 It then checks that the remote Client has not exhausted its allowed number of dataset definitions (each remote Client is allowed 32N datasets, where N is the number of Virtual RTUs it has access to). If all the allowed datasets are used up, the request is NAKed (negative MMS DefineNamedVariableList response, error =MEMORY-UNAVAILABLE, error class =RESOURCE).
It then checks that all the Data Value objects contained in the request are in fact instantiated and mapped to the Server for this remote Client. If any requested object does not exist, the request is NAKed (negative MMS DefineNamedVariableList response, error = OBJ ECT-UNDEFINED, error class =DEFINITION).
If the request is for a Domain-specific dataset, the Server checks that the Domain name is the one assigned to the remote Client in the Server editor. If the Domain name is incorrect, the request is NAKed (negative MMS DefineNamedVariableList response, error = OBJ ECT-ACCESS- UNSUPPORTED, error class =ACCESS).
If there are no errors, the Server creates the requested dataset object, with scope specified by the remote Client, and returns a positive MMS DefineNamedVariableList response.
Note that if the remote Client wants any of the special transfer set variables in the information reports, it must include these transfer set variables in the dataset definitions. The Server allows any combination of the following special transfer set variables to be included in dataset definitions:
This function is mapped to the MMS DeleteNamedVariableList service.
When the Server receives an MMS DeleteNamedVariableList service request for a dataset object,
It checks that the dataset to be deleted is an existing dataset for the remote Client. If it does not exist, the request is NAKed (negative MMS DeleteNamedVariableList response, error =OBJ ECT- NON-EXISTENT, error class =ACCESS).
The Server then checks that there is no transfer set presently enabled for the dataset. If there is, the request is NAKed (negative MMS DeleteNamedVariableList response, error =OBJ ECT-ACCESS- DENIED, error class =ACCESS).
If there are no errors, the Server deletes the dataset object, and returns a positive MMS DeleteNamedVariableList response.
7.1.2.3 Persistence of Dataset Definitions
Although transfer sets are destroyed on loss of connection, the Server does retain any dataset definitions that it may have received from the remote Client. It is up to the remote Client to re-use these definitions on reconnection or to delete them and re-create them.
Users Guide Operation of ICCP Server Windows SCADA ICCP 7-6 7.1.2.4 Get Dataset Element Values
This function is mapped to the MMS Read service for a Named Variable List.
When the Server receives an MMS Read service request for a Data Set object,
It locates the dataset object in its list of datasets for the remote Client. If there is no such dataset, the request is NAKed (negative MMS Read response, error =OBJ ECT-NON-EXISTENT, error class = ACCESS).
The Server then returns the values of all the points in the dataset.
As in the case of an individual data value, the Server transmits each data value in accordance with the transmitted data type assigned to it via the Data Type code of the corresponding point section of the Dataset editor in the Data Exchange section of the SCADA Explorer.
When the request contains a dataset object identifier, it must contain one and only one object identifier. If the request contains a list of dataset object identifiers, or a mix of a dataset object identifier and some data value object identifiers, the request is NAKed.
7.1.2.5 Set Dataset Element Values
This function is mapped to the MMS Write service for a Named Variable List.
When the Server receives an MMS Write service request for a Dataset object,
It locates the dataset in its list of datasets for the remote Client. If there is no such dataset, the request is NAKed (negative MMS Read response, error =OBJ ECT-NON-EXISTENT, error class = ACCESS).
For each point in the dataset, the Server checks the Modify Enable checkbox in the corresponding point section of the Dataset editor in the Data Exchange section of the SCADA Explorer. If the Modify Enable checkbox is not checked for every point in the dataset, the request is NAKed (negative MMS Write response, error =OBJ ECT-ACCESS-DENIED, error class =ACCESS).
Then, for the corresponding Virtual RTU for each point in the dataset, the Server checks the Modify Enable checkbox in the Virtual RTU editor. If the Modify Enable checkbox is not checked, the request is NAKed (negative MMS Write response, error =OBJ ECT-ACCESS-DENIED, error class = ACCESS).
It then checks the Windows SCADA quality code of every point in the dataset. For each one that is manually set, the Server checks the Warn on Modify Error flag (Parameter 1 in the corresponding point section of the Data Exchange Dataset editor). If a point that is manually set has Parameter 1 set to 1, the request is denied (negative MMS Write response, error =OBJ ECT-ACCESS-DENIED, error class =ACCESS).
If there are no errors, the Server sets the values of the points that are not manually set to those sent by the remote Client. The Server returns a positive MMS Write service response.
Note that only the values are used. The quality codes of the points are set to normal. The quality codes transmitted by the remote Client are ignored.
Users Guide Operation of ICCP Server Windows SCADA ICCP 7-7 When the request contains a dataset object identifier, it must contain one and only one object identifier. If the request contains a list of dataset object identifiers, or a mix of a dataset object identifier and some data value object identifiers, the request is NAKed.
7.1.2.6 Get Dataset Names
This function is mapped to the MMS GetNameList service for Data Set objects.
When the Server receives an MMS GetNameList service request for Data Set objects,
It transmits the list of dataset names created by the remote Client.
7.1.2.7 Get Dataset Element Names
This function is mapped to the MMS GetNamedVariableListAttributes service.
When the Server receives an MMS GetNamedVariableListAttributes request for a Data Set object,
It locates the dataset in its list of datasets for the remote Client. If there is no such dataset, the request is NAKed (negative MMS Read response, error =OBJ ECT-NON-EXISTENT, error class = ACCESS).
For each point defined in the dataset, the Server sends the corresponding data value object identifiers in alphabetical order.
The MMS Deletable flag included in the response is set to True.
7.1.3 Transfer Sets 7.1.3.1 Get Next DSTransfer Set Value
The Windows SCADA ICCP Server allocates a pool of 32N transfer set object names for its remote Client, where N is the number of Virtual RTUs assigned to the remote Client.
The remote Client can obtain the names of the transfer set objects via the Get Next DSTransfer Set Value function. This function is mapped to the MMS Read request for named variable Next_DSTransferSet.
When the Server receives an MMS Read service request for named variable Next_DSTransferSet,
It identifies the first available transfer set object in its pool of transfer sets and returns the name of this object as the value of the variable Next_DSTransferSet.
The transfer set object is immediately instantiated, with a status of disabled.
If all transfer sets are used up, the Server denies the request (negative MMS Read service response, error =OBJ ECT-NON-EXISTENT, error class =ACCESS).
Users Guide Operation of ICCP Server Windows SCADA ICCP 7-8 7.1.3.2 Start Transfer
This function is mapped to the MMS Write service request to a transfer set variable. The remote Client may obtain the next available transfer set by issuing an MMS Read service request for named variable Next_DSTransferSet (see previous section). In a Start Transfer request, the Status component of the specified transfer set variable is Enabled.
When the Server receives an MMS Write service request for a correctly formed transfer set object name, where the request contains a Status of Enabled,
It checks that the transfer set is not already enabled. If so, the request is denied (negative MMS Write response, error =OBJ ECT-STATE-CONFLICT, error class =SERVICE).
The Server then checks its list of datasets for the remote Client. If there is no such dataset, the request is denied (negative MMS Write response, error =OBJ ECT-NON-EXISTENT, error class = ACCESS).
The Server then checks whether it can transmit the entire dataset in the form of a Named Variable List within one maximum sized PDU, where the maximum size of a PDU is the value negotiated at the time of association (see section 4.1.1, Associate). If the maximum PDU size is too small, the request is denied (negative MMS Write response, error =OBJ ECT-CONSTRAINT-CONFLICT, error class = SERVICE, additional code = 5). Note that this check is made regardless of what the transmission parameters are.
If the transmission parameters specify Block Data reporting, the request is denied (negative MMS Write response, error =OBJ ECT-CONSTRAINT-CONFLICT, error class =SERVICE, additional code =0).
The Server then schedules Condition Monitoring to start immediately.
(The Start Time component of the Transmission Parameters is not supported in this implementation, by either the Client or the Server.)
7.1.3.3 Stop Transfer
This function is mapped to the MMS Write service request to the Status component of a transfer set variable.
When the Server receives an MMS Write service request for a correctly formed transfer set object name, where the request contains a Status of Disabled,
It checks that the transfer set is presently enabled. If not, the request is denied (negative MMS Write response, error =OBJ ECT-STATE-CONFLICT, error class SERVICE).
The Server then destroys the transfer set object and returns the transfer set name to the list of available transfer set names. Condition Monitoring stops immediately. The Server returns a positive MMS Write service response.
When the remote Client wishes to restart the transfer set, it must re-issue a Get Next DSTransfer Set Value request to get another transfer set name. It cannot simply use the one it used before.
Users Guide Operation of ICCP Server Windows SCADA ICCP 7-9 7.1.3.4 Transfer Condition Monitoring
The Server handles the transfer conditions as follows:
IntervalTimeOut
If this condition is specified, the Server reports periodically at an interval given by the Interval component of the Transmission Parameters.
If RBE (report by exception) is specified, only exceptions are transmitted.
ObjectChange
If this condition is specified, the Server checks all points in the dataset for changes since the last transmission. If any value or quality code has changed, then the dataset is transmitted.
If RBE is specified, only exceptions are transmitted.
The ObjectChange transfer condition is the only one that causes the Server to make use of the Buffer Time delay in the Transmission Parameters. If this parameter is non-zero, the Server waits this amount of time after the condition is detected before actually reporting the data.
Note that despite the name Buffer Time, the Server does not actually capture and buffer the data values at the time the transfer condition is first detected. It captures and sends the data values when the Buffer Time timer actually expires.
The Server does not restart the Buffer Time timer if a second transfer condition is detected while the Buffer Time timer is already active.
OperatorRequest
In the present implementation, there are no operator requests that cause a report.
IntegrityTimeout
If this condition is specified, the Server periodically reports all the data values of the dataset at an interval given by the Integrity Check component of the Transmission Parameters. Note that all values are sent, not just exceptions.
OtherExternalEvent
In the present implementation, there are no other external events that cause a report.
All Changes
This condition is only available in ICCP Version 2000-8. If this condition is specified, the Server checks all status points in the dataset for multiple changes that occurred during the Buffer Time and sends ALL state changes.
Users Guide Operation of ICCP Server Windows SCADA ICCP 7-10
7.1.3.5 Transfer Reporting
The Server issues transfer reports using the MMS InformationReport service.
An Information Report contains:
transfer set name
conditions that triggered the transfer
timestamp of the report
data values in dataset
The first three variables are special transfer set objects that are included in the information report only if they are included in the dataset definition.
If Report By Exception (RBE) is enabled, some of the transfer conditions produce an exception report, whereas some of the conditions produce an all-data report. If conditions of both kinds are true simultaneously, then an all-data report results.
When producing an exception report, the Server:
First attempts to send the exceptions via a List of Named Variables
If this cannot be sent in one maximum-sized PDU, the Server then attempts to send all the points in the dataset via a Named Variable List
If this still cannot be sent, the Server returns an error. (This should not happen since the Server checks for this when the transfer set is first enabled, but you never know.)
If the Critical attribute of the Transmission Parameters is True, the Server expects an acknowledgement from the remote Client. This acknowledgement is also an MMS Information Report. A positive acknowledgement contains:
MMS variable Transfer_Report_ACK, containing the transfer set name
MMS variable Transfer_Set_Time_Stamp, containing the timestamp of the report that the Server sent to the remote Client
If the Server receives a negative acknowledgement (MMS variable Transfer_Report_NACK) or does not receive any acknowledgement at all within a time specified by Critical Response time on the Server editor, then the Server raises an alarm on the Server system:
mm/ dd hh: mm: ss XXXXXX: NO ACK FOR CRI TI CAL DATA
where XXXXXX is the remote Client node name.
In the present implementation, the Time Limit for Execution component of the Transmission Parameters is simply ignored by the Server.
Users Guide Operation of ICCP Server Windows SCADA ICCP 7-11 7.1.4 Data Values 7.1.4.1 Get Data Value
This function is mapped to the MMS Read service for a Named Variable.
When the Server receives an MMS Read service request for an object with a correctly formed Data Value object name,
It checks that the object has been instantiated. If not, the request is NAKed (negative MMS Read response, error =OBJ ECT-NON-EXISTENT, error class =ACCESS).
It then checks the corresponding Virtual RTU to verify that it is accessible for reading by the remote Client. If it is not accessible, the request is NAKed (negative MMS Read response, error =OBJ ECT- ACCESS-DENIED, error class =ACCESS).
If there are no errors, the Server returns the value of the specified point in accordance with the transmitted data type assigned to it via the Data Type code in the corresponding point section of the Dataset editor in the Data Exchange section of the SCADA Explorer.
If the request contained a list of data value object identifiers, and there is an error in any of them, the request is NAKed.
7.1.4.2 Set Data Value
This function is mapped to the MMS Write service for a Named Variable.
When the Server receives an MMS Write service request for an object with a correctly formed Data Value object name,
It checks that the object has been instantiated. If not, the request is NAKed (negative MMS Read response, error =OBJ ECT-NON-EXISTENT, error class =ACCESS).
It then checks the corresponding Virtual RTU to verify that it is accessible for writing by the remote Client. To be accessible for writing, the Virtual RTU must have its Modify Enable checkbox checked. If it is not accessible, the request is NAKed (negative MMS Read response, error = OBJ ECT- ACCESS-DENIED, error class =ACCESS).
It then checks the individual points Modify Enable checkbox in the corresponding point section of the Dataset editor in the Data Exchange section of the SCADA Explorer. If the Modify Enable checkbox is not checked, then no remote Client is allowed to modify this point, and the request is NAKed (negative MMS Write response, error =OBJ ECT-ACCESS-DENIED, error class =ACCESS).
It then checks the quality code of the point. If it is manually set by the operator, the Server cannot update it. If the points Warn on Modify Error flag (Parameter 1 of the corresponding point section in the Data Exchange Dataset editor) is set to 1, then this is considered to be an error, and the request is denied (negative MMS Write response, error = OBJ ECT-ACCESS-DENIED, error class = ACCESS). If Parameter 1 is set 0, then this is not considered to be an error.
If there are no errors, and the point is not manually set, the Server sets the value of the point to that sent by the remote Client.
Users Guide Operation of ICCP Server Windows SCADA ICCP 7-12
Only the value is used. The quality code of the point is set to normal. The quality code transmitted by the remote Client is ignored.
The data type transmitted by the remote Client is assumed to be the one specified by the points Data Type code in the corresponding point section of the Dataset editor in the Data Exchange section of the SCADA Explorer.
The Server returns a positive MMS Write service response.
If the request contained a list of data value object identifiers, and there is an error in any of them, the request is NAKed.
If the list contained a number of points that were manually set, but none of them had Warn on Modify Error flags set, then the request will be ACKed even though some of the points were not updated.
7.1.4.3 Get Data Value Names
This function is mapped to the MMS GetNameList service for class Named Variables.
When the Server receives an MMS GetNameList service request for class Named Variables,
It obtains a list of all the Virtual RTUs accessible for reading or writing by the remote Client.
For each status, analog and accumulator point defined in these Virtual RTUs, the Server sends the corresponding data value object identifiers in alphabetical order. Note that the control and setpoint section of the Virtual RTU are not included in this list.
7.1.4.4 Get Data Value Type
This function is mapped to the MMS GetVariableAccessAttributes service.
When the Server receives an MMS GetVariableAccessAttributes service request for an object with a correctly formed Data Value object name,
It checks that the object has been instantiated. If not, the request is NAKed (negative MMS Read response, error =OBJ ECT-NON-EXISTENT, error class =ACCESS).
It then checks the corresponding Virtual RTU to verify that it is accessible for reading by the remote Client. If it is not accessible, the request is NAKed (negative MMS Read response, error =OBJ ECT- ACCESS-DENIED, error class =ACCESS).
If there are no errors, the Server returns the data type specification of the requested point (as defined by the point's Data Type code in the corresponding point section of the Dataset editor in the Data Exchange section of the SCADA Explorer). The MMS Deletable attribute, which is also returned, is always set to False.
If the request contained a list of data value object identifiers, and there is an error in any of them, the request is NAKed.
Users Guide Operation of ICCP Server Windows SCADA ICCP 7-13 7.1.5 Device Control 7.1.5.1 Select
This function is mapped to the MMS Read service request directed to the device. Devices are specified via the control section of the Virtual RTU editor.
When the Server receives an MMS Read service request for an object with a correctly formed Device object name,
It checks that the object has been instantiated. If not, the request is NAKed (negative MMS Read response, error =OBJ ECT-NON-EXISTENT, error class =ACCESS).
It then checks the corresponding Virtual RTU to verify that it is accessible for control by the remote Client. To be accessible for control, the Virtual RTU must have its Control Enable checkbox checked. If it is not accessible, the request is NAKed (negative MMS Read response, error = OBJ ECT- ACCESS-DENIED, error class =ACCESS).
If the point is not actually a control point (i.e. does not have control addresses defined for it), the Server will, on the subsequent Operate request, just update the point's value in the database. If this is the case, the Server checks that the point is not manually set. If it is manually set, the request is NAKed (negative MMS Read response, error =OTHER, error class =SERVICE).
If there are no errors, the Server returns a positive MMS Read response. The returned value, which is treated by the remote Client as a checkback value, is Parameter 2 in the Control or Setpoint section of the Dataset editor in the Data Exchange section of the SCADA Explorer.
The Server time-limits the selection by starting a timer. The timeout value of the timer is 100 seconds.
7.1.5.2 Operate
This function is mapped to the MMS Write service request directed to the device.
When the Server receives an MMS Write service request for an object with a correctly formed Device object name,
It checks that the object has been instantiated. If not, the request is NAKed (negative MMS Read response, error =OBJ ECT-NON-EXISTENT, error class =ACCESS).
It then checks the corresponding Virtual RTU to verify that it is accessible for control by the remote Client. To be accessible for control, the Virtual RTU must have its Control Enable checkbox checked. If it is not accessible, the request is NAKed (negative MMS Read response, error = OBJ ECT- ACCESS-DENIED, error class =ACCESS).
If the Select before operate required checkbox is checked in the Control or Setpoint section of the Data Exchange Dataset editor, the Server then checks for a previously received Select request for this point from the same remote Client. If there is no such Select still outstanding, the request is NAKed (negative MMS Write response, error =OBJ ECT-ACCESS-DENIED, error class =ACCESS).
Users Guide Operation of ICCP Server Windows SCADA ICCP 7-14 If the point is controllable (i.e. has control addresses defined for it), the Server checks that the command value is either a 0 (open) or 1 (close). If not, the request is NAKed (negative MMS Write response, error =OTHER, error class =SERVICE).
If the point is not actually a control point, the Server checks that the command value is 0 or 1 for a two-state device, or 0 - 3 for a four-state device. If not, the request is NAKed (negative MMS Write response, error =OTHER, error class =SERVICE).
If the point is controllable, the Server forwards the control request to the Windows SCADA control program and waits for a reply.
The control program checks that the point is not already selected for control. If it is already selected for control, the request is NAKed to the Server, which causes the Server to NAK the remote Client (negative MMS Write response, error =OTHER, error class =SERVICE).
The control program then checks that the point is not tagged to inhibit control. If the point is tagged to inhibit control, the request is NAKed to the Server, which causes the Server to NAK the remote Client (negative MMS Write response, error =OTHER, error class =SERVICE).
If there is no error so far, the control program forwards the control request to the appropriate scan task for transmission to the RTU. The control program times both the checkback and the expected status change.
The scan task performs the control sequence according to the rules of the RTU protocol. This may or may not involve a Select-Operate sequence with the RTU. Checkback success or failure is forwarded back to the control program.
If a checkback failure is reported, the control program alarms it and notifies the Server. This causes the Server to NAK the remote Client (negative MMS Write response, error =OTHER, error class = SERVICE).
If a checkback success is reported, the control program notifies the Server, which causes the Server to ACK the remote Client via a positive MMS Write response.
If the point is not actually a control point, the Server just updates the points value in the database and sets its quality code to normal. It returns a positive MMS Write response to the remote Client.
7.1.5.3 Timeout Action
When the Server times out a remote Clients device selection, it just terminates the selection. No MMS event notification is performed.
7.1.5.4 Local Reset Action
The Server does not perform any local reset action.
7.1.5.5 Success or Failure Action
Users Guide Operation of ICCP Server Windows SCADA ICCP 7-15 The remote Client is responsible for determining the success or failure of a control by watching for expected status changes. On a control failure, the Windows SCADA control program raises an alarm on the Server system.
The Server does not perform any MMS event notification on either success or failure.
7.2 Operation as Client
This section describes the behavior of the ICCP Server when it is also acting as Client to a remote Server.
7.2.1 Creation of Data Sets and Transfer Sets
After a successful association has been made, the Client proceeds to create datasets and start transfer sets at the remote Server.
The Client first issues a Get Data Set Names service request to find out what datasets already exist at the remote Server.
Then, for each Virtual RTU marked as Input Dataset, the Client:
Obtains a complete list of Data Value identifiers that correspond to the points defined for that Virtual RTU. All the status, analog and accumulator points defined for the Virtual RTU make up the ICCP dataset.
At the front of each dataset, the Client inserts the names of the following special transfer set variables:
The names of the datasets defined by the Client are:
Domai nName_DSn
where:
DomainName =Domain name from ICCP Client Parameters of Server record n =Virtual RTU number
If the required dataset does not already exist at the remote Server, the Client issues a Create Data Set request to create it.
If the dataset already exists at the remote Server, and the Client is just starting up and this is the first association with the remote Server, the Client first deletes the dataset and then creates it.
If a Create Data Set request is NAKed, the Client marks all of the associated data value points telemetry failed.
Users Guide Operation of ICCP Server Windows SCADA ICCP 7-16
Then, for each dataset that was successfully created, the Client attempts to create a transfer set.
The Client issues a Get Next DSTransfer Set Value request to the remote Server.
If this request is NAKed, the Client fails all of the associated data value points.
The Client then obtains the transmission parameters for each dataset from the Virtual RTU and issues a Start Transfer request to the Server. The request contains:
the name of the dataset
transmission parameters
status =ENABLED
If the transfer set has been successfully started, then the Client issues a Get Dataset Element Values request to make sure all of the values in the dataset are up to date.
After having performed these functions for all of the RTUs, the Client sits back and waits for things to happen.
7.2.2 Information Reports
When the Client receives an Information Report from the remote Server, it decodes the data values according to the transmitted data types defined in the B field of the Telemetry Address.
If the Critical flag of the transmission parameters is True, the Client acknowledges the report as described in section 7.1.3.5, Transfer Reporting.
In general, the displayed quality (condition) code of a Client point that receives data from a remote Server is governed by the usual rules in Windows SCADA:
Table 7-2 Windows SCADA Quality Codes Display Quality Code Meaning Blank NORMAL Point is being updated normally M MANUAL SET Point is manually set at the Client * CALCULATED FROM MANUALLY SET DATA Point is manually set or estimated at the Server F TELEMETRY FAILED The link to the remote Server is down, or the point is telemetry failed at the Server itself (i.e. value is old)
Note that the quality codes at the Client do reflect manual set and telemetry failed quality codes at the remote Server.
Specifically, the received ICCP Validity and CurrentSource attributes are mapped to Windows SCADA as shown in the table below:
Users Guide Operation of ICCP Server Windows SCADA ICCP 7-17
Table 7-3 ICCP Validity and CurrentSource Processing Validity Current Source Processing VALID TELEMETERED Point is updated, Windows SCADA quality code is set to NORMAL VALID CALCULATED Point is updated, Windows SCADA quality code is set to CALCULATED FROM MANUALLY SET DATA VALID ENTERED Point is updated, Windows SCADA quality code is set to CALCULATED FROM MANUALLY SET DATA VALID ESTIMATED Point is updated, Windows SCADA quality code is set to CALCULATED FROM MANUALLY SET DATA HELD any Point is updated, Windows SCADA quality code is set to TELEMETRY FAILED SUSPECT any Point is NOT updated, Windows SCADA quality code is set to TELEMETRY FAILED NOTVALID any Point is NOT updated, Windows SCADA quality code is set to TELEMETRY FAILED
The received ICCP NormalSource and NormalValue attributes are ignored.
For analog points, the COV counter contained in data types 7 and 8 are ignored. For status points, the COV counter contained in data type 4, is ignored.
Users Guide ICCP Client Data Entry Windows SCADA ICCP 8-1
8 ICCP Client Data Entry
This chapter describes how to use the Windows SCADA Explorer to define database points for use by the ICCP Client program.
This is not a complete description of Windows SCADA point editing. This presentation is limited to only those point data fields that are of interest in an ICCP context. For additional information you should refer to the series of documents described in Table 8-1, especially the Point Database Editing Guide. If you have other scan tasks installed in your system, you should also consult the Users Guides published for those scan tasks.
Users Guide ICCP Client Data Entry Windows SCADA ICCP 8-2
Table 8-1 Windows SCADA Database Documentation Document Number
The ICCP Client program is modeled on the Windows SCADA scan task program, which is the lowest level data acquisition unit.
A separate instance of the ICCP Client is activated for each remote ICCP Server member from which data is received. In other words, each ICCP Client process communicates with only one remote Server.
The function of the Client, in general, is to retrieve point data from its designated Server and to copy the data into corresponding points in the Clients own database. The Client obtains data by creating datasets, defining a transfer set for each dataset and then just wait for data from the Server.
For the ICCP Client, a dataset is all the status, analog and accumulator points defined on a RTU.
8.1 Communication Line
In ICCP, each Client must have a communication line defined for it. Attributes of a communication link are, to varying degrees depending on the protocol, specified via attributes of the links communication line.
The SCADA Explorer is used to create or modify a communication lines definition. The dialog box that allows you to do that has several tabs, each of which includes different data. You will normally begin on the General tab, which is illustrated in.
After creating or changing a communication line definition, or editing the telemetry address of any points on the communication line, remember to come back to this dialog to build the scan table.
Users Guide ICCP Client Data Entry Windows SCADA ICCP 8-3
8.1.1 Communication Line Data Fields - General Tab
The key attributes of a Windows SCADA communication line for ICCP are as follows:
Figure 8-1 Communication Line Editor - General Tab
Protocol
This is the name that identifies the protocol to be used on this communication line. It is the name of the scan task that will be used. For the ICCP Client, select the name ICCP.
Auto Start
Set this flag if you want the scan task to start automatically when the SCADA system starts up, either initially, or as the result of a failover.
Associated Points
This area includes fields for the Status point (which is required) and for five other points. The Status point is the only associated point used by the ICCP Client at this time. Please leave all other associated point fields blank. The Status point must already exist in the database.
To create the Status point you could abandon the editing of this communication line, and go to the desired station in the SCADA Explorer. But, you may prefer to temporarily start a second copy of
Users Guide ICCP Client Data Entry Windows SCADA ICCP 8-4 SCADA Explorer, and use it to create the Status point. Quit the second SCADA Explorer as soon as you are done with it.
The Status point is not telemetered; its value will be written by the Client. Therefore, it will not need a telemetry address. Since it is special in this regard, you should consider designating a separate User Type for this kind of point.
Status Point
The first Associated Point is not optional, and must be a status point. This point will be used by the Client to indicate the Up or Down status of the communication line.
The Client will set the point to its normal state when a connection has been established to the Server and to the abnormal state when it is disconnected.
Polling Parameters
For RTU protocols, various timers are specified to control the rate of certain events. In ICCP, none of these polling parameters are used. Please enter zero for all polling parameters.
Configuration Switches
This field allows you to specify certain command line switches to control the behavior of the Client. The switches supported by the ICCP Client are described below. Specify each switch you need by entering /name=value in this field. You do not need to add a space or other punctuation between switches.
/Log
The Log option specifies the Client is to log communications to a file. The file will be created in the folder specified when Windows SCADA was installed. The default folder name is C:\Program Files\Quindar\ScadaServer. The file name is comprised of the protocol name, the communication line ID and the current date. For example, a file name from communication line ID 1 on J uly 31, 2007 would be ICCP1-2007-07-31.log.
Care should be taken when using this option and should only be enabled for short periods of time as the file will continue to grow and consume all the free space on the disk.
The valid values for this option are as follows:
Default Log all communication Debug Log all communication and enable MMS logging
/DeleteDataset
The DeleteDataset option specifies how the Client handles persistence of datasets over reconnections. If this option is set to zero or does not exist, the Client on a reconnection will re-use the dataset. If this option is set to one, the Client on a reconnection will delete the dataset and re- create it.
Users Guide ICCP Client Data Entry Windows SCADA ICCP 8-5 8.1.2 Communication Line Data FieldsChannel Tab
Figure 8-2 Communication Line Editor - Channel Tab
Long Response Timeout
In ICCP, this is used to specify the time allowed, in milliseconds, for a read response. If this time expires before a read response for data values is received, the points requested are marked telemetry failed. Typically 10,000 milliseconds.
Network
This specifies the type of communication network to be used. ICCP relies on the TCP/IP network. Select TCP/IP.
Mode
This is the mode of operation for the communication line. For the ICCP Client, choose Poll.
No other fields on the Channel tab are used by the ICCP Client. Please leave them blank.
Users Guide ICCP Client Data Entry Windows SCADA ICCP 8-6
8.1.3 Communication Line Data FieldsICCP Tab
Figure 8-3 Communication Line Editor - ICCP Tab
Bilateral Table ID
This is a text string that represents the version of the Bilateral Agreement. Valid characters are alphanumeric, $ and underscores, but not spaces. The maximum length is 32 characters.
Domain Name
This is the name of the Domain that Domain-specific entities will be created in. The Server creates the Domain or working space then creates and instantiates each Domain-specific variable. The Client can access these variables and datasets in this Domain. Valid characters are alphanumeric, $ and underscore, but not spaces and must begin with an alphabetic character. The maximum length is 32 characters.
Care should be taken when deciding on the Domain name, as the Domain name will be included in information reports for EVERY Domain-specific point. Survalent recommends short Domain names up to 6 characters in length be selected.
Typically, this takes one of two formats:
1. The acronym of your (Clients) companys name. For example, CMPA. 2. The combination of both companys acronyms with direction of dataflow. For example, CMPB_CMPA with data flowing from Server Company B to Client Company A.
Users Guide ICCP Client Data Entry Windows SCADA ICCP 8-7
Max PDU Size
This is the maximum Program Data Unit or packet size the Client will send or receive. The packet size is negotiated with the remote Server and the lesser of this size or the Servers size is used. Typically 8000 bytes or more.
Life Check Interval
This is the interval in seconds that the Client checks the health of the connection to the Server. This is useful to determine when a Server may not be responding or to expedite a lost TCP/IP socket connection.
Once an association has been established, every interval the Client will issue an Identify request to the Server. The Server must respond to this request within the same amount of time or else the Client will abort the association. If the interval is zero, the Client will not perform a health check. Typical interval is 20 to 30 seconds.
Connection Interval
This specifies the time delay between re-connect attempts after the first Connection Retry attempts. Typical interval is 5 seconds.
Connection Retry
This specifies the number of immediate re-connect attempts to perform on loss of association. If an association is still not established after this number of attempts, the Client continues to try to connect, but it executes the Connection Interval delay between each attempt. If the Server has redundant nodes, the Client switches target nodes after each Connection Retry attempts. Typical retry count is 3.
Version
This is the version of ICCP that the Client is to support. The Client and the remote Server must agree on which ICCP version is to be used. Select the version from the drop down list.
Local Client Nodes
The Local Client Nodes are the AR Names that the Client is to use to register and identify itself to the Remote Server. The selectable AR Names in the drop down list are those ICCP Nodes that have been defined as local. In a single master system you only need to select an AR Name for A (HOSTA). In a dual redundant master system you need to select AR Names for A (HOSTA) and B (HOSTB). In a quad redundant master system you need to select AR Names for A, B, C & D. The same AR Name can be selected for all entries. See section 6.10 ICCP Nodes.
Remote Server Nodes
The Remote Server Nodes are the AR Names that the Client will attempt to connect to. The selectable AR Names in the drop down list are those ICCP Nodes that have been defined as remote. At startup the Client will attempt to connect to the Server specified in A. If the Client fails to connect to A, it will then try to connect to B. If the Client fails to connect to B, it will then try to connect to C. If the Client fails to connect to C, it will then try to connect to D. The Client will continue cycling through all the Servers until a connection is made. See section 6.10, ICCP Nodes.
Users Guide ICCP Client Data Entry Windows SCADA ICCP 8-8 8.2 RTU
ICCP data value points are grouped into datasets. In a Windows SCADA ICCP Client, the data value points are addressed in terms of RTUs. All status, analog and accumulator points contained within the RTU will make up the ICCP dataset.
8.2.1 RTU Data Fields - General
Figure 8-4 RTU Editor - General Tab
The key attributes of a Windows SCADA RTU for ICCP are as follows:
Communication Line
This is the field where you specify which of the existing ICCP communication lines is used to communicate with this RTU.
Status Point
This is the name of a status point that exists in the database. This point will be used by the Client to indicate the communication status of the RTU. You must define this point, it is not optional. The Status point must already exist in the database.
To create the Status point you could abandon the editing of this communication line, and go to the desired station in the SCADA Explorer. But, you may prefer to temporarily start a second copy of SCADA Explorer, and use it to create the Status point. Quit the second SCADA Explorer as soon as you are done with it.
Network
The network type on the RTU is not used in ICCP, select Use ComLine.
Users Guide ICCP Client Data Entry Windows SCADA ICCP 8-9
RTU Addr.
In RTU based protocols, this is the station address of the RTU. In ICCP, even though the concept of an RTU doesnt exist, a station address is required. Simply start with address 1 and increment the address for each RTU added to the communication line.
No other fields on the General tab are used for ICCP. Please leave all other fields blank or set to 0.
8.2.2 ICCP: Edit Options
Clicking on the ICCP: Edit Options button displays the ICCP RTU Option editor. See Figure 8-5. This editor allows you to specify the transmission parameters to use for this ICCP dataset (all the status, analog and accumulator points defined on this RTU). The parameters defined here are sent to the remote Server to indicate under what conditions and how often to send the points to the Client. You may select all the options that apply.
Figure 8-5 ICCP RTU Options
Typical transmission parameters configured are Interval, Integrity and Report By Exception, as seen in Figure 8-5. The Server will check for changes every 4 seconds and only send those points that have changed, then every 60 seconds the Server will send all the points.
Interval
This is the time interval in seconds for the Remote Server to send periodic reports. Used if the Interval checkbox is enabled. Typical interval is 4 seconds.
Integrity
This is the time interval, in seconds, that the Remote Server is to send all-data reports. Used if the Integrity checkbox is enabled. Typical interval is 60 seconds.
Users Guide ICCP Client Data Entry Windows SCADA ICCP 8-10 Time Limit For Execution
This is the time limit within which the Remote Server must report. It is supported by the Client in the sense that it is included in the transfer set requests made to the Remote Server, but the Client does not check whether transfer reports are late. Not typically used, normally set to 0.
Buffer Time
This is the time, in seconds that the Remote Server is to use for buffering Object Change conditions. If a change is detected, the Remote Server will delay this amount of time before reporting the change. Not typically used, normally set to 0.
Event Condition Requested
This is a code describing an external event that will trigger the Remote Server to send a report. Used if the Other External Event checkbox is enabled. Not typically used, normally set to 0.
Block Data
If this checkbox is enabled, transfer reports are to be blocked (i.e. use a mutually agreed block data reporting format). Not supported by the Client in this implementation of Windows SCADA ICCP, leave this checkbox disabled.
Critical
If this checkbox is enabled, the Client will send an acknowledgement to the Remote Server for each transfer report received. Not typically used, normally unchecked.
Report By Exception
If this checkbox is enabled, the Remote Server is to send only exceptions (points that have changed value or quality), in its transfer reports. However, in the case of integrity timeout, all-data will be included in the transfer report. Typically enabled to reduce the data packet size.
Object Change
If this checkbox is enabled, the Remote Server is to send transfer reports when ANY object in the dataset changes in either value or quality. Actual transmission is delayed by the Buffer Time delay, if specified. The values transmitted are those that are available at the end of the buffer time delay.
If Object Change is enabled, the Remote Server will constantly scan the dataset for changes. This differs from Interval reports that only scan for changes once at the end of each time period. This can create more overhead on the Remote Server and/or more network packets being generated but also allows for instantaneous reporting of changes. Not typically enabled.
Operator Request
If this checkbox is enabled, the Remote Server is to send transfer reports if requested by the operator. Not typically enabled.
Users Guide ICCP Client Data Entry Windows SCADA ICCP 8-11 Other External Event
If this checkbox is enabled, the Remote Server is to send transfer reports whenever some external event occurs. Not typically enabled.
All Changes
The All Changes option is available for selection when ICCP version 2000-8 is selected on the Communication Line. If this checkbox is enabled, the Remote Server is to send ALL state changes for status points not just the current state. When this option is enabled, Report By Exception, Object Change and Buffer Time must also be enabled and Interval must be disabled. Integrity is optional but recommended. See Figure 8-6 for an example.
Figure 8-6 All Changes Settings
Users Guide ICCP Client Data Entry Windows SCADA ICCP 8-12
8.3 Analog Point
The key attributes of a Windows SCADA analog data value point that receives its values from an ICCP Server are as follows:
Figure 8-7 Analog Point Editor - General Tab
Device Class
Select Analog to indicate this is an input point.
Telemetry Address
The telemetry address specifies the type and location of the point within the RTU. It is made up of the fields labeled A, B, C, D, External Name and Type.
A For RTU based protocols, this is usually the point number of the point within the analog or accumulator section of the RTU. ICCP requires a unique point number for each analog or accumulator point. Simply start at 1 or 0 for the first point and increment the point number for each point added.
B This must be set to the sum of two components:
An Analog Base value, which specifies whether the value comes from the Analog section or the Accumulator section of the RTU, plus
A Data Type Code, which specifies the transmitted data type.
Users Guide ICCP Client Data Entry Windows SCADA ICCP 8-13 Allowed Base and Code values are listed in Table 8-2 Analog Base Codes and Table 8-3 Analog Data Value Types
For example, B =103 specifies an analog point of data type Data_RealQ (floating point with quality flags). The most common data type is Data_RealQ.
C This is not used by ICCP, set to zero.
D This is not used by ICCP, set to zero.
Table 8-2 Analog Base Codes Base Point Type 100 Analog 200 Accumulator
Table 8-3 Analog Data Value Types Data Type Code ICCP Data Type Comment 1 Data_Real 2 Data_Discrete 3 Data_RealQ 4 Data_DiscreteQ 5 Data_RealQTimeTag 6 Data_DiscreteQTimeTag 7 Data_RealExtended 8 Data_DiscreteExtended 9 Data_RealQTimeTagExtended ICCP Version 2000-8 only 10 Data_DiscreteQTimeTagExtended ICCP Version 2000-8 only
External Name
This is the ICCP object name of the analog or accumulator point on the Server system. Valid characters are alphanumeric, $ and underscore, but not spaces and must begin with an alphabetic character. The maximum length is 32 characters.
(External Name) Type
This is the scope of the analog or accumulator point on the Server system. The most common scope is VMD or 1.
Table 8-4 ICCP Scope Type Scope 0 Domain 1 VMD
Users Guide ICCP Client Data Entry Windows SCADA ICCP 8-14 Format Code
This field specifies how the Client should process the input data from the Server. You have a choice of two format codes. They specify whether received values are to be scaled or not. See Scale Factor and Offset below.
Below, the formats are referred to by code (ID) number, but you will choose them from a list of user-defined names. If you are in doubt about which format code is which, look at their definitions using SCADA Explorer. If you have only one scan task on your system, the format can be given names that describe their function. But if multiple scan tasks are being used, they may use the same format number for different purposes, so you may not be able to come up with a better name.
Table 8-5 Analog Format Codes Format Code Meaning 1 Scale by applying scale factor and offset 2 Dont scale
Scale Factor and Offset
The value transmitted from the Server is already scaled in the Servers engineering units. Further scaling may be defined at the Client, if desired, by entering these fields. The re-scaling, if defined, would consist of multiplying the received value by the Scale Factor and adding the Offset.
If you specify a format code of 2, the Client does not apply any scaling on the received value. In this case, the scale factor and offset, if they are defined, are ignored.
One reason for defining a scale factor and offset on a point coming in from a remote ICCP Server but specifying format code 2 is if the points value is to be forwarded on to another Client using an RTU protocol (such as DNP). In this case, the scale factor can be used by your RTU protocol server to unscale the points engineering value into an integer value that will fit into the message format of the RTU protocol.
Users Guide ICCP Client Data Entry Windows SCADA ICCP 8-15
8.4 Status Point
The key attributes of a Windows SCADA status data value point that receives its values from an ICCP Server are as follows:
Figure 8-8 Status Point Editor - Telemetry Tab
Telemetry Address
The telemetry address specifies the type and location of the point within the RTU. It is made up of the fields labeled A, B, C, D, External Name and Type.
A For RTU based protocols, this is usually the point number of the point within the status section of the RTU. ICCP requires a unique point number for each status point. Simply start at 1 for the first point and increment the point number for each point added.
B This must be set to the sum of two components:
a Base value, which must be set to 300, plus
a Code, which specifies the transmitted data type
Allowed Base and Code values are listed in Table 8-6 Status Base Codes and Table 8-7 Status Data Value Types.
Users Guide ICCP Client Data Entry Windows SCADA ICCP 8-16 For example, B =302 specifies a status point of data type Data_StateQ (state with quality flags). The most common data type is Data_StateQ.
C This is not used by ICCP, set to zero.
D This is not used by ICCP, set to zero.
Table 8-6 Status Base Codes Base Point Type 300 Status
Table 8-7 Status Data Value Types Data Type Code ICCP Data Type Comment 1 Data_State 2 Data_StateQ 3 Data_StateQTimeTag 4 Data_StateExtended 5 Data_StateQTimeTagExtended ICCP Version 2000-8 only
External Name
This is the Data Value object name of the status point on the Server system. Valid characters are alphanumeric, $ and underscore, but not spaces and must begin with an alphabetic character. The maximum length is 32 characters.
(External Name) Type
This is the scope of the point on the Server system. The most common scope is VMD or 1.
Table 8-8 ICCP Scope Type Scope 0 Domain 1 VMD
Format Code
The formats are referred to by code (ID) number, but you will choose them from a list of user defined names. If you are in doubt about which format code is which, look at their definitions using SCADA Explorer. If you have only one scan task on your system, the format can be given names that describe their function. But if multiple scan tasks are being used, they may use the same format number for different purposes, so you may not be able to come up with a better name.
This must be set to the value 1.
A Windows SCADA status point also has two control addresses, one for open and one for close. Entering valid control addresses, turns the point into a combined status indication and control point. Definition of the control addresses is described in the next paragraph.
Users Guide ICCP Client Data Entry Windows SCADA ICCP 8-17
8.5 Control Point - Command
An ICCP Command in Windows SCADA is a status point that has valid control addresses defined.
Figure 8-9 Status Point Editor - Telemetry Tab (Control Section)
Control Address
The control address specifies the type and location of the point within the RTU. It is made up of the fields labeled A, B, C, D, External Name and Type.
Two control addresses may be defined, one for an open command and one for a close command. You must tick the checkbox next to any control address you intend to use.
A This is the expected checkback value the Server will return if using Select Before Operate commands. See the C field.
B This must be set to the value 400.
C This is the Select Before Operate flag as required by the Server:
0 =Issue Operate command without issuing Select command 1 =Issue Select command, validate checkback value (A field), issue Operate command
D This is the command value (0-255). Typically 0 for trip and 1 for close.
Users Guide ICCP Client Data Entry Windows SCADA ICCP 8-18
(Control) External Name
This is the ICCP object name of the control point on the Server system. Valid characters are alphanumeric, $ and underscore, but not spaces and must begin with an alphabetic character. The maximum length is 32 characters. The same name will be used for both the open and close commands.
(Control External Name) Type
This is the scope of the control point on the Server system. The most common scope is VMD or 1.
Table 8-9 ICCP Scope Type Scope 0 Domain 1 VMD
The Control Interval is not used by the ICCP Client. If a control interval is defined at the Server, that value will be used at the Server.
Users Guide ICCP Client Data Entry Windows SCADA ICCP 8-19
8.6 Control Point - Setpoints
An ICCP Setpoint in Windows SCADA is an analog point with a Device Class of Setpoint.
Figure 8-10 Analog Point Editor - General Tab (Setpoint)
Telemetry Address
For a setpoint the telemetry address is used as a control address. The telemetry address specifies the type and location of the point within the RTU. It is made up of the fields labeled A, B, C, D, External Name and Type.
A For RTU based protocols, this is usually the point number of the point within the setpoint section of the RTU. ICCP requires a unique point number for each setpoint. Simply start at 0 or 1 for the first point and increment the point number for each point added.
B This must be set to the sum of two components:
a Base value, which must be set to 400, plus
a Code, which specifies the transmitted data type
Users Guide ICCP Client Data Entry Windows SCADA ICCP 8-20 Allowed Base and Code values are listed in the tables below:
Table 8-10 Control Base Codes Base Point Type 400 Control
Table 8-11 Setpoint Data Value Types Code Setpoint Type 1 Real 2 Discrete
For example, B =401 specifies a setpoint of data type Real (floating poibnt). The most common data type is Real.
C This is the Select Before Operate flag as required by the Server:
0 =Issue Operate command without issuing Select command 1 =Issue Select command, validate checkback value (D field), issue Operate command
D This is the expected checkback value the Server returns if using Select Before Operate commands. See the C field.
External Name
This is the ICCP object name of the setpoint on the Server system. Valid characters are alphanumeric, $ and underscore, but not spaces and must begin with an alphabetic character. The maximum length is 32 characters.
(External Name) Type
This is the scope of the setpoint on the Server system. The most common scope is VMD or 1.
Table 8-12 ICCP Scope Type Scope 0 Domain 1 VMD
Format Code
The formats are referred to by code (ID) number, but you will choose them from a list of user defined names. If you are in doubt about which format code is which, look at their definitions using SCADA Explorer. If you have only one scan task on your system, the format can be given names that describe their function. But if multiple scan tasks are being used, they may use the same format number for different purposes, so you may not be able to come up with a better name.
This must be set to the value 1.
Users Guide ICCP Client Data Entry Windows SCADA ICCP 8-21 Scale Factor and Offset
If these are defined, the Client unscales the setpoint value before sending it to the Server. The unscaling consists of subtracting the Offset and then dividing by the Scale Factor.
Users Guide Operation of ICCP Client Scan Task Windows SCADA ICCP 9-1
9 Operation of ICCP Client Scan Task
The function of the ICCP Client scan task is summarized as follows:
Create an association with a Server on the target node.
For each RTU, define the corresponding dataset at the Server, and then start the transfer set
Process received data (information reports) from the Server.
Forward operator control requests to the Server.
9.1 Initialization
At startup, the Client:
Reads the Scan Table for the communication line to obtain a list of the RTUs and all the points on each RTU.
Obtains the local AR Name and the target Server AR Name(s) and the assigned Domain name from the communication line.
9.2 Association
After initialization, the Client issues an MMS Initiate service to the target Server system.
The initiate request contains the following parameters:
Users Guide Operation of ICCP Client Scan Task Windows SCADA ICCP 9-2 Table 9-1 Initiate Request Parameters Initiate Request Parameter Value Local Detail Calling Max PDU Size Proposed Max Serv Outstanding Calling 5 Proposed Max Serv Outstanding Called 5 Proposed Data Structure Nexting Level 4 Init Request Detail see below
The Client obtains the proposed maximum PDU size from Max PDU Size of the Communication Line.
The Init Request Detail parameter consists of three structures:
Proposed MMS Version Number
=supplied by the MMS provider
Proposed Parameter CBB
=bitstring representing the table below:
Table 9-2 Proposed Parameter CBB Parameter Supported Data of type Array Yes Data of type Structure Yes Named Variables Yes Alternate access No Address of variables No Scattered access No Third party operations No Variable lists Yes Floating point Yes Ack event condition No Evaluation interval No
Services Supported Calling
=bitstring formed to represent the Client column of the MMS Services Supported Table in chapter 11 MMS Services Supported.
If the Client receives a negative MMS Initiate response, the Client performs N retries, where N is given by its communication lines Connection Retry (see section 8.1.3, Communication Line Data FieldsICCP). After N retries, the Client continues to attempt to connect, but executes a delay between each attempt. The delay time is specified by the value of the communication line Connection Interval. If there are multiple Server nodes, the Client switches target AR Names after each delay. The Client continues its connection attempts indefinitely.
Users Guide Operation of ICCP Client Scan Task Windows SCADA ICCP 9-3 When the Client receives a positive MMS Initiate response from the Server, it handles the returned parameters as follows:
Local Detail Called
This is the negotiated maximum PDU size returned by the Server. The Client will use the lesser of the value returned by the Server and the one it had proposed.
Negotiated Max Serv Outstanding Calling
The Client will use the lesser of the value returned by the Server and the one it had proposed.
Negotiated Max Serv Outstanding Called
The Client will use the lesser of the value returned by the Server and the one it had proposed.
Negotiated Data Structure Nesting Level
The Client will use the lesser of the value returned by the Server and the one it had proposed.
Init Response Detail
In the present implementation, this is ignored by the Client.
The Client then uses an MMS Read service to read the following variables from the Server:
Bilateral_Table_ID
TASE2_Version
Supported_Features
The Client gets the Bilateral Table ID from the communication line (see section 8.1.3, Communication Line Data FieldsICCP). If the Bilateral Table ID from the Server does not match, the Client issues an MMS Abort service request and exits.
In the present implementation, the Clients TASE2_Version can be configured to be:
Major version number =1996 Minor version number =8 or Major version number =2000 Minor version number =8
If the Client receives from the Server an ICCP version that does not exactly match its own, the Client issues an MMS Abort service request and exits.
The Supported_Features variable returned by the Server (see section 7.1.1.1, Associate) is only used to determine if Block 5, Device control operations is supported by the Server. The Client does not forward requests to a Server that does not support them.
Users Guide Operation of ICCP Client Scan Task Windows SCADA ICCP 9-4
9.3 Creation of Data Sets and Transfer Sets
After a successful association has been made, the Client proceeds to create datasets and start transfer sets at the Server.
The Client first issues a Get Data Set Names service request to find out what datasets already exist at the Server.
Then, for each RTU defined for this communication line, the Client:
Obtains a complete list of Data Value identifiers that correspond to the points defined in the Scan Table for that RTU. All the status, analog and accumulator points defined for the RTU make up the ICCP dataset.
At the front of each dataset, the Client inserts the names of the following special transfer set variables:
The names of the datasets defined by the Client are:
Domai nName_DSn
where:
DomainName =Name of the Domain-specific work space n =RTU number
If the required dataset does not already exist at the Server, the Client issues a Create Data Set request to create it.
If the dataset already exists at the Server, and the Client is just starting up and this is the first association with the Server, the Client first deletes the dataset and then creates it.
If the /DeleteDataset option is set 0 or does not exist and the dataset already exists at the Server, and this is not the first association with the Server, the Client will just use the existing dataset definitions at the Server.
If the /DeleteDataset option is set to 1 and the dataset already exists at the Server regardless if this is the first association with the Server, the Client always deletes the dataset and then creates it.
If a Create Data Set request is NAKed, the Client marks all of the associated data value points telemetry failed.
Then, for each dataset that was successfully created, and for which the RTU point is not manually set to DOWN, the Client attempts to create a transfer set.
The Client issues a Get Next DSTransfer Set Value request to the Server.
Users Guide Operation of ICCP Client Scan Task Windows SCADA ICCP 9-5 If this request is NAKed, the Client fails all of the associated data value points.
The Client then obtains the transmission parameters for each dataset from the ICCP Options editor on the RTU and issues a Start Transfer request to the Server. The request contains:
the name of the dataset
transmission parameters
status =ENABLED
If the RTU is manually shut down, the Client does not issue a Start Transfer request. It just marks all of the datasets points to telemetry failed.
If the transfer set has been successfully started, then the Client issues a Get Dataset Element Values request to make sure all of the values in the dataset are up to date.
After having performed these functions for all of the RTUs, the Client sits back and waits for things to happen.
Processing of Information Reports from the Server is described in section 9.4, Information Reports.
Processing of control requests is described in section 9.5, Device Control.
Processing of deactivations and reactivations of points, RTUs and communication links by the operators is described in sections 9.6 to 9.8.
If the Client receives a Kill request from the SCADA Explorer, the Client issues a Conclude request to the Server and then exits.
9.4 Information Reports
When the Client receives an Information Report from the Server, it decodes the data values according to the transmitted data types defined in the B field of the Telemetry Address.
If the Critical flag of the transmission parameters is True, the Client acknowledges the report as described in section 7.1.3.5, Transfer Reporting.
In general, the displayed quality (condition) code of a Client point that receives data from a Server is governed by the usual rules in Windows SCADA:
Table 9-3 Windows SCADA Quality Codes Display Quality Code Meaning Blank NORMAL Point is being updated normally M MANUAL SET Point is manually set at the Client * CALCULATED FROM MANUALLY SET DATA Point is manually set or estimated at the Server F TELEMETRY FAILED The link to the Server is down, or the point is telemetry failed at the Server itself (i.e. value is old)
Users Guide Operation of ICCP Client Scan Task Windows SCADA ICCP 9-6
Note that the quality codes at the Client do reflect manual set and telemetry failed quality codes at the Server.
Specifically, the received ICCP Validity and CurrentSource attributes are mapped to Windows SCADA as shown in the table below:
Table 9-4 ICCP Validity and CurrentSource Processing Validity Current Source Processing VALID TELEMETERED Point is updated, Windows SCADA quality code is set to NORMAL VALID CALCULATED Point is updated, Windows SCADA quality code is set to CALCULATED FROM MANUALLY SET DATA VALID ENTERED Point is updated, Windows SCADA quality code is set to CALCULATED FROM MANUALLY SET DATA VALID ESTIMATED Point is updated, Windows SCADA quality code is set to CALCULATED FROM MANUALLY SET DATA HELD any Point is updated, Windows SCADA quality code is set to TELEMETRY FAILED SUSPECT any Point is NOT updated, Windows SCADA quality code is set to TELEMETRY FAILED NOTVALID any Point is NOT updated, Windows SCADA quality code is set to TELEMETRY FAILED
The received ICCP NormalSource and NormalValue attributes are ignored.
For analog points, the COV counter contained in data types 7 and 8 are ignored. For status points, the COV counter contained in data type 4, is ignored.
9.5 Device Control
On a Windows SCADA Client system, when an operator or an application program issues a control, the request first goes to a control program. This program performs a number of checks on the request, including a check for control inhibiting tags local to the Client. If all checks pass, the request is forwarded to the appropriate ICCP Client.
Users Guide Operation of ICCP Client Scan Task Windows SCADA ICCP 9-7 On a digital Open/Close-Execute control, a digital output request is sent to the Client. On a setpoint control, the Client receives an analog output request.
On reception of either of these requests, the Windows SCADA ICCP Client performs the following:
Obtains the Data Value object name from the Control External Name field of the status point.
If Select before operate is required (C part of the point's control address =1), then the Client issues a Select request to the Server. This consists of an MMS Read request directed to the Device object whose name was obtained above.
This is where the Server verifies the existence and accessibility of the specified device by this Client.
If the Server returns a negative MMS Read response, the Client in turn returns a checkback failure message to the control program, and as far as the Client is concerned, the operation is terminated.
If the Server returns a positive MMS Read response, the returned value is supposed to be a checkback value. The Client expects the returned checkback value to be an integer value equal to the A part of the points control address.
If the returned checkback value does not match, the Client returns a checkback failure message to the control program, and the operation is terminated.
If the returned checkback value does match, the Client issues an Operate request to the Server. This consists of an MMS Write service request directed to the device object.
This is where:
the Server again verifies the existence and accessibility of the specified device by this Client, and if interlocked, checks that the point was first Selected, and then forwards the request to the control program (at the Server)
the control program at the Server checks for control inhibiting tags, and forwards the control request to the Client handling the physical RTU at the Server
the Client handling the physical RTU at the Server executes the control, and returns the execute checkback result to the control program at the Server
the control program at the Server forwards the execute checkback result to the Server program
depending on the checkback result, the Server sends either a positive or negative MMS Write response back to the Client.
If a negative MMS Write response is received, the Client returns a checkback failure message to the control program, and the operation is terminated.
If a positive MMS Write response is received, the Client returns a checkback success message to the control program, and as far as the Client is concerned, the operation is terminated. If it was a digital control, the control program at the Client now starts a timer to check for the expected status change.
Users Guide Operation of ICCP Client Scan Task Windows SCADA ICCP 9-8 If Select before operate is not required (C part of the points control address =0), then the Client skips the Select request and just issues an Operate request. The reply to the Operate is handled in the same way as for Select before operate controls.
Users Guide Operation of ICCP Client Scan Task Windows SCADA ICCP 9-9
9.6 Deactivation and Reactivation of Points
Deactivate Point
The operator at a Client can deactivate an individual data value point that receives its values from a Server by manually setting the point. The point will have its quality code changed to Manually Set and will have an M displayed beside its value. Its value will no longer be updated because the Client will discard any new values it receives from the Server for this point.
Reactivate Point
You can reactivate the point by performing an Activate function on the point. If the RTU status point is UP, the Client issues a Get Data Value request to the Server and processes the received data as for an information report.
If you reactivate a point that was not deactivated, the Client issues a Get Data Value request anyway. This provides a mechanism for the operator to request a point update at any time.
If you reactivate a point for which the RTU is DOWN, the Client will not send any request to the Server.
9.7 Deactivation and Reactivation of RTUs
Deactivate RTU
The operator at a Client can deactivate reception of an entire RTU by manually setting the RTU status point to DOWN. This causes the Client to issue a Stop Transfer request to the Server for the dataset. All the points on the RTU will be marked Telemetry Failed and have an F displayed beside them.
Reactivate RTU
You can reactivate the RTU by performing an Activate function on the RTU status point. The Client issues a Get Next DSTransfer Set Value request to the Server, followed by a Start Transfer request. The Client then sets the RTU status point's value to UP. When the data values are received, the Telemetry Failed quality codes of the data value points will revert to NORMAL (if they are not HELD or SUSPECT at the Server).
If you reactivate a RTU status point that is already UP, the Client does not restart the transfer sets. It just issues a Get Data Set Element Values request to the Server and processes the received data as for information reports. This provides a mechanism for the operator to request a complete RTU update at any time.
9.8 Deactivation and Reactivation of Communication Lines
Deactivate Communication Line
The operator at a Client can deactivate the link to the Server by manually setting the communication line status point to DOWN. This causes the Client to issue a Conclude request to the Server. All RTUs will
Users Guide Operation of ICCP Client Scan Task Windows SCADA ICCP 9-10 be set to DOWN and all data value points will be marked Telemetry Failed and have an F displayed beside them.
The Client will not attempt to reconnect to the Server until the operator reactivates the link (see next paragraph).
Reactivate Communication Line
You can reactivate the link by performing an Activate function on the communication line status point. The Client re-establishes the link by:
Reconnect i ng t o t he Ser ver For each RTU t hat i s not manual l y set t o DOWN: Rest ar t t r ansf er set Set RTU t o UP End
If you activate a communication line status point that is already UP, the Client does not do anything.
Users Guide ICCP Conformance Summary Windows SCADA ICCP 10-1
10 ICCP Conformance Summary
In the following tables, an X means the function is implemented, a - means the function is not implemented.
The function implementations in the tables below are specified in terms of both Request and Indication:
If there is an X in the Request column of a function, it means that the program issues MMS requests to cause the function to be executed by the other program
If there is an X in the Indication column of a function, it means that the program is capable of receiving and honoring requests to execute the function
Not surprisingly, on the Client side, most (but not all) of the Xs are in the Request column, while on the Server side, most of the Xs are in the Indication column.
Table 10-1 Association Control Client Request Client Indication Server Request Server Indication Function X - X X Initiate X X X X Conclude X X X X Abort
Table 10-2 Data Value Objects Client Request Client Indication Server Request Server Indication Function X - X X Get Data Value - - - X Set Data Value - - - X Get Data Value Names - - - X Get Data Value Type
Table 10-3 Data Set Objects Client Request Client Indication Server Request SERVER Ind Function X - X X Create Data Set X - X X Delete Data Set X - X X Get Data Set Element Values - - - X Set Data Set Element Values X - X X Get Data Set Names - - - X Get Data Set Element Names
Table 10-4 Transfer Set Objects Client Request Client Indication Server Request Server Indication Function X - X X Start Transfer X - X X Stop Transfer - X X X Transfer Condition Monitoring - IntervalTimeout - X X X Transfer Condition Monitoring - OperatorRequest
Users Guide ICCP Conformance Summary Windows SCADA ICCP 10-3
Table 10-5 Next Transfer Set Object Client Request Client Indication Server Request Server Indication Function X - X X Get Next DSTransfer Set Value
10.2 BLOCK 2 - Extended Data Set Condition Monitoring
Table 10-6 Extended Data Set Condition Monitoring Client Request Client Indication Server Request Server Indication Function - X X X Transfer Condition Monitoring - ObjectChange - X X X Transfer Condition Monitoring - IntegrityTimeout
10.3 BLOCK 3 - Blocked Transfers
Table 10-7 Blocked Transfers Client Request Client Indication Server Request Server Indication Function - - - - Transfer Reporting with blockdata
10.4 BLOCK 4 - Operator Stations
Table 10-8 Operator Stations Client Request Client Indication Server Request Server Indication Function - - - - Output
Users Guide ICCP Conformance Summary Windows SCADA ICCP 10-4 10.5 BLOCK 5 - Device Control
Table 10-9 Device Objects Client Request Client Indication Server Request Server Indication Function X - X X Select X - X X Operate - - - X Timeout - - - - Local Reset - - - - Failure
Table 10-11 Device Objects Client Request Client Indication Server Request Server Indication Function - - - - Success - - - - Failure
Table 10-12 Event Condition Objects Client Request Client Indication Server Request Server Indication Function - - - - Event Notification
Users Guide ICCP Conformance Summary Windows SCADA ICCP 10-5
Table 10-13 Event Enrollment Objects Client Request Client Indication Server Request Server Indication Function - - - - Create Event Enrollment - - - - Delete Event Enrollment - - - - Get Event Enrollment Attributes
10.8 BLOCK 8 - Accounts
Table 10-14 Accounts Client Request Client Indication Server Request Server Indication Function - - - - Interchange Schedule objects - - - - Accounting Information objects - - - - Transfer Account objects
10.9 BLOCK 9 - Time Series
Table 10-15 Time Series Client Request Client Indication Server Request Server Indication Function - - - - Transfer Reporting of Time Series
Users Guide MMS Services Supported Windows SCADA ICCP 11-1
11 MMS Services Supported
The table given below indicates the MMS services that are supported by the Windows SCADA ICCP Client (column C) and Server (column S).
The MMS-provider used in the Windows SCADA ICCP supports all of the MMS services listed below. What the table represents is the intersection of the support by the MMS-provider and that of the MMS- user (i.e. the Client and Server programs).
As described in paragraph 8.2.4.3 of ISO/IEC 9506-1: 1990(E), support for a confirmed service is defined as the ability to receive an indication primitive and properly execute the service procedure defined for the responder role. Support for an unconfirmed service is defined as the ability to accept an indication primitive and to pass the parameters to the service interface.
Users Guide MMS Services Supported Windows SCADA ICCP 11-2 In the tables below, an X means that the service is supported, a - means that it is not supported.
Client Server Code MMS Service - - 0 Status - X 1 GetNameList X X 2 Identify - - 3 Rename - X 4 Read - X 5 Write - - 6 GetVariableAccessAttributes - - 7 DefineNamedVariable - - 8 DefineScatteredAccess - - 9 GetScatteredAccessAttributes
Client Server Code MMS Service - - 10 DeleteVariableAccess - X 11 DefineNamedVariableList - X 12 GetNamedVariableListAttributes - X 13 DeleteNamedVariableList - - 14 DefineNamedType - - 15 GetNamedTypeAttributes - - 16 DeleteNamedType - - 17 Input - X 18 Output - - 19 TakeControl