Upload
vankhanh
View
263
Download
1
Embed Size (px)
Citation preview
IndustrialIT800xA - System
PLC ConnectSystem Version 4.0
Configuration
Configuration
IndustrialIT800xA - System
PLC ConnectSystem Version 4.0
NOTICEThe information in this document is subject to change without notice and should not beconstrued as a commitment by ABB. ABB assumes no responsibility for any errors thatmay appear in this document.
In no event shall ABB be liable for direct, indirect, special, incidental or consequentialdamages of any nature or kind arising from the use of this document, nor shall ABB beliable for incidental or consequential damages arising from use of any software or hard-ware described in this document.
This document and parts thereof must not be reproduced or copied without written per-mission from ABB, and the contents thereof must not be imparted to a third party nor usedfor any unauthorized purpose.
The software or hardware described in this document is furnished under a license andmay be used, copied, or disclosed only in accordance with the terms of such license.
This product meets the requirements specified in EMC Directive 89/336/EEC and in LowVoltage Directive 72/23/EEC.
Copyright © 2004 by ABB. All rights reserved.Portions Copyright © 2002 Matrikon Inc. All rights reserved. Release: October 2004Document number: 3BSE035041R4001
TRADEMARKSRegistrations and trademarks used in this document include:
Microsoft Registered trademark of Microsoft Corporation.
Windows Registered trademark of Microsoft Corporation.
ActiveX Registered trademark of Microsoft Corporation.
Visual Basic Registered trademark of Microsoft Corporation.
IndustrialIT Trademark of ABB.
Aspect Object Trademark of ABB.
Advant Registered trademark of ABB.
PLC Connect Trademark of ABB.
All other trademarks are legally reserved to the exclusive use of the owner.
TABLE OF CONTENTS
About This ManualGeneral ............................................................................................................................11
Intended User .......................................................................................................11
Other Sources of Information...............................................................................12
Use of Warning, Caution, Information, and Tip Icons ....................................................12
Document Conventions ...................................................................................................13
Terminology.....................................................................................................................14
Product Documentation ...................................................................................................20
Embedded Help ...............................................................................................................21
Section 1 - IntroductionWelcome to PLC Connect ...............................................................................................23
Release Information .............................................................................................24
Section 2 - PLC ConnectivityIntroduction .....................................................................................................................25
Overview..........................................................................................................................25
Key Benefits ....................................................................................................................27
Product Description .........................................................................................................28
Signal Mapping ....................................................................................................28
PLC System Characteristics vs. DCS Characteristics..........................................30
Scaling and Options .............................................................................................31
Functionality ........................................................................................................33
Engineering an Application..................................................................................34
Using PLC Connect with ABB Controllers.....................................................................36
3BSE035041R4001 5
Table of Contents
Section 3 - Getting StartedIntroduction ..................................................................................................................... 41
Configuration Example ................................................................................................... 41
Create a New Process Object Type ...................................................................... 41
Create a New Controller ...................................................................................... 45
Create a New Process Object ............................................................................... 49
Deploy ............................................................................................................ 52
Section 4 - Create Process GraphicsIntroduction ..................................................................................................................... 53
Basic Graphic Example................................................................................................... 53
Alternative Graphic Example.......................................................................................... 70
Optimized Graphic Example........................................................................................... 73
Faceplate Example .......................................................................................................... 79
Create Faceplate Aspect....................................................................................... 81
Configure Faceplate Properties............................................................................ 95
Configure Alarm Handling .................................................................................. 95
Section 5 - Alarm and Event List Configurations
Section 6 - OpennessIntroduction ..................................................................................................................... 99
Extension Processes ...................................................................................................... 100
PLC Connect Real Time Data Access........................................................................... 101
Introduction........................................................................................................ 101
Variable Access.................................................................................................. 102
Subscription ....................................................................................................... 103
Variable Access Interface................................................................................... 104
Variable Access Properties and Methods........................................................... 104
Properties and Methods for the Class Variables ................................................ 106
Properties and Methods for the Class Variable .................................................. 111
Conditions When Writing a Variable Value....................................................... 114
Status Codes for Methods Returning a Value of the Type Long........................ 115
6 3BSE035041R4001
Table of Contents
OPC Quality(In/Out) ..........................................................................................116
Deploy ...........................................................................................................116
Notes on Variables..............................................................................................117
Sample Variable Access .....................................................................................117
Sample Subscribe ...............................................................................................120
Reading and Writing Arrays of Data .................................................................122
Communication Server Pre Treatment ..........................................................................123
Introduction ........................................................................................................123
Variable Pre Treatment.......................................................................................123
Properties and Methods for the Variable Pre Treatment ....................................124
Callback Interface ..............................................................................................127
Configure Calculation Parameters......................................................................128
Sample Pre Treatment ........................................................................................129
Sample Limit Calculation ..................................................................................129
Event Server Pre Treatment...........................................................................................130
Introduction ........................................................................................................130
DLL Interface.....................................................................................................130
Event Types ........................................................................................................137
Event States ........................................................................................................137
Initialize.............................................................................................138
ChangeOfState ...................................................................................................138
AcknowledgeEvent ............................................................................................138
AlterEventMonitoring ........................................................................................138
OpForce ...........................................................................................................139
AlterControlMonitoring .....................................................................................139
OpControl...........................................................................................................139
Limitations for sVarName ..................................................................................139
Limitations for lNewState ..................................................................................140
Limitations for lSeverity ....................................................................................141
Limitations for lClass .........................................................................................141
Limitations for lEventType ................................................................................141
Limitations for lDelay ........................................................................................141
3BSE035041R4001 73BSE035041R4001 7
Table of Contents
Sample Event DLL Interface ............................................................................. 141
Event Extended Options................................................................................................ 143
Introduction........................................................................................................ 143
OLE Interface..................................................................................................... 143
Example .......................................................................................................... 148
OLE DB Provider for Events ........................................................................................ 152
Introduction........................................................................................................ 152
Implementation Notes........................................................................................ 152
PLC Connect Properties ................................................................................................ 154
Introduction........................................................................................................ 154
Accessible Properties ......................................................................................... 154
Example - Change Signal Properties with Bulk Data Manager......................... 160
Dial Manager Server Access (Option) .......................................................................... 164
Introduction........................................................................................................ 164
Prioritized Calls ................................................................................................ 164
Accessible Methods ........................................................................................... 165
Notes on PLC Connect Real Time Data Access ................................................ 167
Sample .......................................................................................................... 167
Section 7 - MaintenanceIntroduction ................................................................................................................... 171
Troubleshooting............................................................................................................. 171
Hardware Diagnostics........................................................................................ 171
Checklist: PLC Communication ........................................................................ 172
Checklist: Configuration Tools .......................................................................... 176
Checklist: Event/Alarm...................................................................................... 177
Checklist: Open Functions................................................................................. 178
XML Import/Export ...................................................................................................... 180
Contacting Support........................................................................................................ 180
Section 8 - Configure Dialed Communication (Option)Introduction ................................................................................................................... 183
Basic Preparations ......................................................................................................... 184
8 3BSE035041R4001
Table of Contents
Setup Modems for Dialed Communication ...................................................................186
Settings for Modems at the Server End..............................................................186
Settings for Modems at the Controller End........................................................187
Basic Configuration Example........................................................................................188
Set up Protocols..................................................................................................188
Set up Connections.............................................................................................191
Set up Cyclic Calls .............................................................................................193
Set up Priorities ..................................................................................................194
Priority Guidelines .............................................................................................196
Set up Dialed Controllers ...................................................................................199
Dialed History ...............................................................................................................201
PLC Time Stamp................................................................................................203
Dialed History Configuration Example .........................................................................204
Preparations........................................................................................................204
Enter Default History Settings ...........................................................................206
Enter Signal History Settings .............................................................................208
Section 9 - Configure IEC 60870 Driver (Option)Introduction ...................................................................................................................211
Configuration Window ..................................................................................................212
Commands..........................................................................................................214
The Options Dialog Box ....................................................................................218
Server Configuration ..........................................................................................224
Alias Configuration ............................................................................................246
Saving the Configuration....................................................................................254
Clearing the Configuration.................................................................................254
Loading a Saved Configuration..........................................................................255
Notation for Accessing Data Items................................................................................255
IEC 60870 ITEMS .............................................................................................255
Technical Aspects of Low Bandwidth and Noisy Communication...............................259
Channels ...........................................................................................................259
Poll Optimization ...............................................................................................260
Transactions........................................................................................................260
3BSE035041R4001 93BSE035041R4001 9
Table of Contents
Integrity .......................................................................................................... 264
Diagnostics .................................................................................................................... 265
Logging .......................................................................................................... 265
Troubleshooting............................................................................................................. 266
Problems and Solutions ..................................................................................... 266
INDEX
10 3BSE035041R4001
About This Manual
GeneralThis manual describes how to engineer and maintain PLC Connect.
Intended User
The information in the manual is intended for:
• Application engineers. As a prerequisite, you should understand distributed automated process control, and the software functionality of Windows.
• System administrators. As a prerequisite, you should have a thorough knowledge of using and maintaining Windows software and hardware.
You are also required to be familiar with basic configuration procedures in the 800xA System.
Basic knowledge of Visual Basic is:
• recommended if you want to edit code for process graphics.
• required if you want to use the openness of PLC Connect.
You need to have Windows administrator privileges to perform the described tasks.
Basic configuration is described in the Industrial IT 800xA - System Operator Workplace Configuration, and process graphics in the Industrial IT 800xA - Engineering Graphics.
3BSE035041R4001 11
Other Sources of Information About This Manual
Other Sources of Information
To learn more about PLC Connect:
• Use the available manuals and guides, see Product Documentation on page 20.
• Use the embedded help described in Embedded Help on page 21.
• ABB University has a number of useful training courses for people involved with Industrial IT products.
Use of Warning, Caution, Information, and Tip IconsThis publication includes Warning, Caution, and Information where appropriate to point out safety related or other important information. It also includes Tip to point out useful hints to the reader. The corresponding symbols should be interpreted as follows:
Although Warning hazards are related to personal injury, and Caution hazards are associated with equipment or property damage, it should be understood that operation of damaged equipment could, under certain operational conditions, result in degraded process performance leading to personal injury or death. Therefore, comply fully with all Warning and Caution notices.
Electrical warning icon indicates the presence of a hazard which could result in electrical shock.
Warning icon indicates the presence of a hazard which could result in personal injury.
Caution icon indicates important information or warning related to the concept discussed in the text. It might indicate the presence of a hazard which could result in corruption of software or damage to equipment/property.
Information icon alerts the reader to pertinent facts and conditions.
Tip icon indicates advice on, for example, how to design your project or how to use a certain function
12 3BSE035041R4001
About This Manual Document Conventions
Document ConventionsThe following conventions are used in this manual:
• The initial letters of screen element proper names are capitalized (for example, the title in a window title bar, the label of a dialog box field).
• Capital letters are used to specify keys, if labeled on the keyboard. For example: Press the ENTER key.
• Bold face, lower case letters are used to specify a key not labeled on the keyboard. For example: space bar, comma key.
• Press CTRL+C indicates that you must hold down the CTRL key while pressing the C key (to copy a selected object in this case).
• Press ESC E C indicates that you press and release each key in sequence (to copy a selected object in this case).
• The names of push and toggle buttons are given in bold face. For example: click OK.
• The names of menus and menu items are given in bold face. For example: the File menu.
– The following convention is used for menu operations: menuName > menuItem > cascadedMenuItem. For example: select File > New > Type.
– The Start menu name always refers to the Start menu in the Windows Task Bar.
• System prompts/messages are given in Courier, and user responses/input in bold face Courier. For example, if you enter a value out of range, the following will be displayed:
Entered value is not valid. The value must be 0-30.
In a tutorial, you may be asked to enter the string TIC132 in a field. The string is shown in the procedure as follows:
TIC132
Variables are shown using lowercase letters:
sequence name
3BSE035041R4001 13
Terminology About This Manual
• File names and paths are given in bold face, for example: Setup.exe.
• Web addresses and manual names are given in italic, for example: http://www.abb.com/.
TerminologyThe following is a list of terms and abbreviations associated with PLC Connect that you should be familiar with.
Term/Acronym Description
ActiveX Microsoft standard for user interface components, based on definition of software interfaces.
Aspect An aspect is a description of some properties of a real world entity. The properties described could be mechanical layout, how the object is controlled, a live video image, name of the object, and so on.
Aspect Category A specialization of an aspect type. For example, the aspect type Graphic Display includes the categories Overview, Group and Object Display.
Aspect Objects A computer representation of a real world entity like a pump, a valve, an order or a virtual object like a service. An Aspect Object works like an information container for it’s aspects.
Aspect Object Type An Aspect Object Type defines certain characteristics that are shared between several Aspect Object instances, such as a basic set of common aspects. This makes it possible to create and efficiently re-use standardized solutions to frequently recurring problems. For example, rather than building an Aspect Object from scratch for every valve in a plant, you can define a set of valve types, and then base all valve objects on them.
Aspect Server A server that runs the central functions of the Aspect Object architecture, such as Aspect Directory, Structure and Name Server, Cross Referencing, File Set Distribution, and so on.
14 3BSE035041R4001
About This Manual Terminology
Aspect System A software system, which implements one or several aspect types by providing one or several aspect system objects.
Client Client is the part of a software that subscribes data from a server.
Client/Server Network A client/server network is used for communication between servers, and between workplaces and servers.
Composite Aspect Object
An Aspect Object instance that contains other object instances. This containment is implemented by having other objects as children in one or more structures where the composite object is placed. The set of objects placed under the composite object are the children of the composite object. Usually the term “composite object” means a composite object including all its children.
Composite Aspect Object Type
A composite Aspect Object type describes a set of Aspect Objects organized in a structure, with a parent object and one or several child objects. The children in a composite object type are called formal instances, because they inherit from object types defined elsewhere in the Object Type Structure, but they are not actual instances. When a composite object is instantiated actual instances are created for these child objects.
Connectivity Product Connectivity components, up-loader, supporting aspect systems (for the configuration), and graphical elements, faceplates, Aspect Object Types, and so on, bundled together to provide the integration of a certain type of devices into the system.
Connectivity Server A server that provides access to controllers and other sources for real-time data, historical data, and alarm and event data. A Connectivity Server runs services related to OPC/DA, OPC/AE, and OPC/HDA.
Term/Acronym Description
3BSE035041R4001 15
Terminology About This Manual
Controller Programmable device in direct contact with the supervised process via digital/analog in/output.
Control network A control network is a local area network (LAN) that is optimized for high performance and reliable communication with predictable response times in real time. Control network devices and servers are connected to the control network.
Control network device Device connected through a supported control network. Examples are controllers, robots, variable speed drives, and so on
Embedded Help A dialog box with embedded help will be enlarged when the Show Help button is clicked. Context help related to the dialog box is displayed to the right of the dialog box.
Faceplate A faceplate is an aspect that provides a graphical representation of a certain aspect object, with presentation of certain properties related to the object, and mechanism for operator interaction such as on/off, increase/decrease, and so on. Aspect Object types often include several faceplate aspects, providing different presentation and interaction possibilities.
Graphic Display A graphic display is an aspect that provides a visual presentation. It consists of static graphics representing for example tanks, pipes, and so on, and graphic elements that present dynamic information. Graphic displays are often used to present the state of a process or a part of a process, but are useful in any context where dynamic graphical information is needed.
Graphic Element A graphic element is an aspect that is associated with an Aspect Object type, to be used in graphic displays to present dynamic information for instances of that type. An object type may have several different graphic element aspects to allow the user to select among different visual presentations.
Industrial IT ABB’s vision for enterprise automation.
Term/Acronym Description
16 3BSE035041R4001
About This Manual Terminology
Industrial IT 800xA System
A computer system that implements the Industrial IT vision.
Node A computer communicating on a network, for example, the Internet, Plant, Control or I/O network. Each node typically has a unique node address with a format depending on the network it is connected to.
OPC An application programming interface defined by the standardization group OPC Foundation. The standard defines how to access large amounts of real-time data between applications. The OPC standard interface is used between automation/control applications, field systems/devices and business/office application.
Permission A permission groups a set of operations that require the same authority. For each operation defined for an aspect, the aspect category specifies the permission needed to use that interface.
Plant Explorer An application that is used to create, delete and organize Aspect Objects and Aspects within the 800xA System. The plant explorer organizes the Aspect Objects in structures according to functionality, location, and so on. You can also use it to browse and search the structures of the plant.
PLC Programmable Logic Controller. See also controller.
Process Object A process concept/equipment, for example, valve, motor, conveyor or tank.
Product Family A range of products within a Product Suite, forming a scalable offering. Examples: a range of controllers, a family of I/O Products.
Product Suite Products with similar functionality are kept together in a suite, for example, Industrial IT.
Term/Acronym Description
3BSE035041R4001 17
Terminology About This Manual
Property A data field on an aspect of an Aspect Object that can be accessed through OPC using the standard Aspect Object reference syntax.
A data field on an ActiveX control accessible from the Visual Basic editor.
RTDB Real Time Data Base.
A memory resident area in which real time data collected from the process is stored in a generic format, regardless of the communication protocol used for gathering the data.
Data is stored in a compact format and RTDB is characterized by very efficient procedures for read and write access.
Security Security controls a user’s authority to perform different operations on Aspect Objects, depending on several parameters:
• The user’s credentials, as provided by Windows
• The node where the user is logged in. This makes it possible to give a user different authority depending on where he/she is located, for example, close to the process equipment, in a control room, or at home accessing the system through Internet.
• The operation the user wants to perform.
Server A node that runs one or several Afw Services. It is the part of the software that supply data to a subscriber.
Term/Acronym Description
18 3BSE035041R4001
About This Manual Terminology
Structure A hierarchical tree organization of Aspect Objects. Each structure is used to define a certain kind of relation between Aspect Object. The functional structure defines how a function can be divided into sub functions, the location structure defines how different objects are located within each other. The control structure defines how functions are executed by tasks, controllers and so on. An Aspect Object can be located in several structures, for example both in a functional structure and in a location structure.
System Application A software component, based on the Aspect Object architecture, which provides functionality. System applications cooperate according to rules defined be the Aspect Object architecture. They are normally bundled into the system products or system extensions. System applications are implemented as client applications or services. To participate in Aspect Object operations, an application must present itself as one (or several) aspect system.
When there is no risk for confusion with user application, the term application may be used instead of system application.
System Extension A system Extension consists of one or more applications that are bundled as an extension to one or several existing System Product(s). A System extension can only be installed if (one of) the corresponding System Product(s) has been installed previously.
System Product A system product consists of applications bundled together with relevant parts of the 800xA System. Several System Products can be installed on the same physical node.
Term/Acronym Description
3BSE035041R4001 19
Product Documentation About This Manual
Product DocumentationThe following is a listing of the product documentation for PLC Connect.
User application A configuration of software and hardware components that applies to a specific problem, for example, a specific process control problem. A user application consists of a set of simple and composite Aspect Object instances, with parameter values and other configuration data for the aspects, for example control logic, process graphics, alarm and event specifications, reports, and so on.
View An Aspect can be presented in a number of ways, depending on the task performed, such as viewing or making configurations. Each presentation form is called a view.
Workplace 1. User interactive functions that are combined for a particular use, for example, Operator Workplace.
2. A node that runs one or several workplace applications.
Category Title Description
Software Industrial IT 800xA System,PLC Connect Operation
This manual describes how to operate PLC Connect functions.
Other Industrial IT 800xA System,PLC Connect Release Notes
This document describes recommendations, known problems, and workarounds regarding PLC Connect.
Term/Acronym Description
20 3BSE035041R4001
About This Manual Embedded Help
Embedded HelpEmbedded help is available when the dialog box contains a Show Help button. Click the button to open the Embedded help window which will then be displayed beside the dialog box, see Figure 1. The window offers help concerning the currently active dialog box. When the Embedded help is displayed, the help button changes to Hide Help. Click the button again to close the Embedded help window.
Figure 1. Embedded Help
You can resize the Embedded help window. Click Help in the Embedded help window to display the entire help system in a separate window.
3BSE035041R4001 21
Embedded Help About This Manual
22 3BSE035041R4001
Section 1 Introduction
Welcome to PLC ConnectPLC Connect is a connectivity option to Industrial IT 800xA that makes it possible to connect and integrate any type of remote or local installed PLC, RTU or other type of device. The information from the connected unit can be treated in the same way as information from other 800xA System connectivities.
PLC Connect includes the following:
• Object-oriented PLC Server, with alarm detection for boolean, integer and real values, data processing and scaling functions.
• Handling of calculated softpoints.
• Graphic elements, such as process object and status icons.
• Faceplate examples to match the graphic elements.
• Open interfaces for calculations, and so on.
• Basic integration of connected PLCs and RTUs.
• Configuration aspects for data stored in Aspect Directory.
• Support for multiple control networks, that is, multiple connectivity servers in separate PCs in one system.
• Support for redundant connectivity servers.
• Support for Bulk Data Manager.
• Built in protocols for Comli, SattBus, Modbus Serial and Modbus TCP/IP.
• OPC DA client functionality.
• Event OLE DB provider and Event Report template.
3BSE035041R4001 23
Release Information Section 1 Introduction
• Dialed communication (Option) for Comli and Modbus Serial.
• IEC 60870-5 protocol driver (Option).
Release Information
Read the Release Notes for information concerning the specific release of PLC Connect.
24 3BSE035041R4001
Section 2 PLC Connectivity
IntroductionController integration towards other Industrial IT controllers than AC 800M requires a connectivity option which, from a functional point of view, can be a plain OPC server or it can be more advanced with object support and integration capabilities.
Controllers are connected through connectivity components. They provide access to real time data, historical data, and alarm and event data, from different type of controllers, such as Industrial IT controllers, and ABB controllers from older system offerings. Different connectivity package options allow system functions like operator graphics, historian, and so on, to access many and varying types of control systems and devices.
The system provides access to real time data transparent to the application (that is, regardless through which connectivity package the data is accessed). Alarm and event information and historical data are supported in similar ways.
This section describes PLC Connect, the general controller integration for PLC type controllers towards the Industrial IT 800xA System.
OverviewPLC Connect acts as an integrated controller connectivity to Industrial IT 800xA. As a result, integration into the Industrial IT concept is achieved. PLC Connect thus makes it possible to configure the 800xA System as a hybrid DCS/PLC system.
Also, ABB controllers, that do not have a dedicated connectivity option available, are integrated into the Industrial IT 800xA System by means of PLC Connect.
PLC Connect adds traditional PLC type functionality as an integrated part of the Industrial IT concept. This means that traditional system capabilities, typically
3BSE035041R4001 25
Overview Section 2 PLC Connectivity
requiring a large number of process IOs to be connected through a range of controllers from different manufacturers, can be realized with an Industrial IT 800xA System.
PLC Connect provides the following services:
• Basic object types for PLC type signals and softpoint signals.
• Configuration tools for creating and editing PLC type objects.
• A full set of faceplates for the PLC type objects.
• Integrated RTDB to keep an updated image of connected process points as well as calculated softpoints.
• Communication drivers.
• Dial Manager for remote communication (Option).
• Alarms detection and OPC Alarms and Events generation for PLC binary signals.
• Limit alarms detection and OPC Alarms and Events generation for PLC integer and real signals.
• Open interface to PLC signals and softpoints from application programs in VB and C++.
PLC Connect is typically used in the following cases:
• For integration of 3rd party controllers and PLCs.
• For integration of ABB legacy controllers that do not have a dedicated controller integration available.
• For integration of AC800M/C Industrial IT controllers when full DCS controller integration is not required.
• When remote connection of controllers and PLCs is required.
26 3BSE035041R4001
Section 2 PLC Connectivity Key Benefits
Key BenefitsWith PLC Connect added to the 800xA System, both typical DCS functionality and typical PLC functionality are available in the same integrated system.
PLC Connect acts as a tightly integrated connectivity towards the 800xA System for loosely connected controllers and PLCs by adding a layer of functionality between the 800xA System and the connected controllers and PLCs. This layer adds the following capabilities to the 800xA System offering when integrating 3rd party and ABB legacy controllers into the 800xA System:
• User definable reusable PLC object types.
• Mapping a flat PLC signal structure on a user defined PLC object structure.
• True inheritance from user defined PLC object types to PLC objects.
• Configuration work is done in Plant Explorer.
• No double engineering for signal/object mapping.
• Entire configuration can be made with Industrial IT Bulk Data Manager.
• Online/off line engineering.
• Does not require any browse interface from 3rd party OPC Servers
• PLC type Graphical Elements and Faceplates.
• PLC signals as well as Softpoint signals.
• Supervisory control of multiple PLCs.
• Alarms as boolean conditions on PLC signals and arithmetical limit conditions, detection and alarm generation
• Alarms as arithmetical limit conditions on PLC signals, detection and alarm generation.
• Logic calculations and assignments to PLC signals and softpoint signals.
• Numerical Calculation and assignments to PLC signals and softpoint signals.
• RTDB is continuously updated. No need to wait for OPC server to set up subscriptions for instance at picture change in the system, as values are available directly.
3BSE035041R4001 27
Product Description Section 2 PLC Connectivity
• Transform low bandwidth communication to tight controller integration via RTDB
• Industry standard protocols (for example, when a serial connection to a PLC is required typically on Modbus or IEC 60870).
• Dialed communication (Option) with automatic or manual scheduling of calls, PLC initiated calls, local time stamp and locally stored History data.
Product Description
Signal Mapping
PLC Connect is a generic connectivity for PLCs, that exposes individual signals in any connected Controller or PLC to the 800xA System.
A flat signal structure in the controller is mapped onto an application specific object structure thus allowing the information to be handled by the process or plant operator in a uniform way with other information in operator graphics.
An object oriented representation approach is thus achieved even for third party controllers and the operator view of process status is uniform without any regard to controller make or communication protocol used.
The communication with controllers can take place over built in drivers or via OPC to connected 3rd part OPC Servers. Remote low bandwidth communication is supported via dialed lines for Modbus Serial and Comli.
Functionality, as alarm and event detection and limiter calculations for the connected signals, are added as part of the PLC connectivity. Communication with the connected controllers is handled by a communication server and an image of values is kept in an RTDB so that values are always available in an optimal way for good update performance with all types of protocols.
28 3BSE035041R4001
Section 2 PLC Connectivity Signal Mapping
Figure 2. Signal Mapping
3BSE035041R4001 29
PLC System Characteristics vs. DCS Characteristics Section 2 PLC Connectivity
PLC System Characteristics vs. DCS Characteristics
When comparing a typical PLC type system configuration with a typical DCS configuration there are some important differences:
Characteristics for DCS connectivity in the 800xA System, for example, AC800M Connectivity:
• Very high engineering support level due to tight integration with reuse of control program solutions (Controller module concept)
• Automatic upload of signal/object structure.
• Integrated synchronization of aspect object structure to Control builder structure.
Figure 3. PLC System Versus DCS System
30 3BSE035041R4001
Section 2 PLC Connectivity Scaling and Options
Characteristics for PLC Connect:
• Loose integration means that an engineering work proportional to the number of connected signals must be done to define signal and object mapping.
• Alarms and events are configured and detected in PLC Connect.
• A connected OPC server with support for OPC Alarms and Events can also be connected and the alarms can be associated with PLC objects through name association.
• OPC servers for controller communication taking full benefit of the PLC Connect functionality.
• A real time image is kept of all connected signals so that a deterministic update rate can be achieved for HSI and supervisory applications also for low bandwidth communication channels.
Scaling and Options
The 800xA System is scaled on tags. In PLC Connect, one average PLC Connect object with three external IO points connected, is counted as one tag.
Note that the total number of Aspect Objects in one 800xA System is limited.
The following options exist to PLC Connect:
• Dialed communication with controllers using Comli or Modbus Serial protocols, including scheduled dialing, event controlled dial-in, remote historical primary logs.
• Communication driver for IEC60870-5-101 and IEC60870-5-104.
PLC Connect adds the following items to the 800xA System:
• One or more PLC Connect connectivity servers.
• Configuration Aspects for PLC objects in the Aspect Server
• A Process Control Aspect and Process Graphics libraries for PLC objects to be used in operator workplaces.
3BSE035041R4001 31
Scaling and Options Section 2 PLC Connectivity
The PLC Connect product is installed on the aspect server, the PLC Connect connectivity server and all clients in the 800xA System.
Multiple PLC Connect connectivity servers can be installed in one system and PLC Connect can be used in parallel with other 800xA System connectivities. Note that the total number of Connectivity servers in one 800xA System is limited.
The PLC Connect connectivity server can run in the same node as the aspect server or in a separate node.
NLS, Security, Authentication and Redundancy (Aspect Server Redundancy, Connectivity Server Redundancy and Client/Server Network redundancy) are supported in PLC Connect.
Figure 4. 800xA System with PLC Connect
800xA W orkplaces
Aspect Server
PLC Connect Connectivity Server
Other Connectivity Server
ABB and 3rd party Controllers/PLCs
32 3BSE035041R4001
Section 2 PLC Connectivity Functionality
Functionality
PLC Connect handles all dynamic process data collected by a communication server from connected controllers, PLCs and RTUs, and keeps them in an RTDB. Event and alarm detection is added for boolean conditions and numerical limit conditions. Real time values are fed to the platform for primary historical logs.
PLC Connect has the following functionality:
• Communication Server with traditional protocol drivers for PLC/RTU protocols, including Modbus TCP/IP, Modbus RTU, IEC60870-5-101 (option), IEC60870-5-104 (option), Comli, SattBus and SattBus TCP/IP.
• The communication server has, besides protocol drivers for traditional communication protocols, also a built in OPC DA client, which makes it possible to communicate with any OPC server, ABB or third party.
• Remote communication via dialed lines using Modbus Serial or Comli is available as an option to PLC Connect. The function supports use of a modem pool and scheduled and manual dialing, possibility for event controlled dial in from controllers, local storing of history and update of central history logs.
• RTDB that holds an image of process values for process signals connected to the communication server, as well as an image of internally calculated softpoint values.
• A configuration aspect for configuring the PLC connectivity with configuration data for mapping and structuring of process signals onto PLC objects in the Aspect Directory. Object orientation is supported with PLC object types and PLC object instances. Signal properties are inherited from the object type or set individually on an object instance.
• A PLC object dialog is available automatically on each PLC object in the Plant Explorer. The dialog can be used to inspect and change value and status of any PLC signal or softpoint signal within the object.
• Alarm and event detection on process values and softpoint values. You can choose to trigger an event or an alarm whenever a boolean signal changes its state.
• Limiter supervision on numerical process values, which means you can choose to trigger an alarm if an integer or real value exceeds or falls below a preset
3BSE035041R4001 33
Engineering an Application Section 2 PLC Connectivity
value. You can also set a hysteresis for the limiter. You can configure up to 8 limiters per integer or real signal.
• Alarms can be acknowledged from the alarm list, via process graphics or via the PLC object dialog.
• Supplying process values and calculated values to historical logging.
• PLC Connect connects to the 800xA System through OPC for Data Access (OPC DA) and Alarms and Events (OPC A&E).
• COM interfaces are provided to give possibility to access (read and write) process values and softpoint values from, for example, a VB program. A program can run in any node and access multiple PLC Connect connectivity servers. Application specific pre-treatment calculations can be added for process values and alarms and events.
• An OLE/DB interface is provided with PLC Connect for reading out data from the Event and Alarms system, making it easy for third party software to extract events from the system. An Event Report aspect is available. (For History logs the general OLE/DB provider in the 800xA System can be used by Report applications).
• Event logging can be conducted for operations that are performed on PLC objects in general, such as changing a setpoint, acknowledgement of an alarm, the occurrence of an alarm and so on. The event log keeps the following information: date and time for the operation, node from which the operation was performed, user identity of the individual performing the operation, type of operation, object, property and aspect affected by the operation.
Engineering an Application
PLCs in general are typically configured with a controller specific control builder tool for the control program and IO setup in the controller.
The communication protocol used between PLC Connect and a controller is typically a standard protocol like Modbus RTU or IEC 60870-5, where PLC Connect is master and the controller is slave. If an OPC Server is available for the controller in question, PLC Connect can act as OPC client connected to the OPC Server.
34 3BSE035041R4001
Section 2 PLC Connectivity Engineering an Application
The PLC Connect configuration aspect in Plant Explorer is used to create matching PLC object types in the Object Type Structure and PLC objects in the Control Structure. The Bulk Data Manager in Engineering Studio can be used to create these objects in an efficient way for large applications.
Individual IO points in the PLC objects are then connected to variables in the control program using the address syntax that is used for the corresponding communication protocol or OPC browsing if the OPC DA client is used.
You can also use the Plant Explorer to add other required Aspects to the Object Type.
If a traditional communication protocol is used directly then, at run-time, PLC Connect will poll the controller and update an internal image, the RTDB, with values from the controller for variables that are referenced in PLC objects. Write operations will be initiated to the controller when required.
Figure 5. PLC Connect Used with 3rd Party PLC
Flow of information
AspectDirectoryPLC
OPCServer
PLCConfigu-ration
PLCConnect
Run-time
Configuration
Application data
Dynamic process data
Configuration dataControlprogram
On-line update
IEC 60870, Modbus, Comli, SattBus
OPCPLC
Controllerconfigura-tion tool
3BSE035041R4001 35
Using PLC Connect with ABB Controllers Section 2 PLC Connectivity
When an OPC server is used then, at run-time, PLC Connect will subscribe to the OPC-Server using OPC Data Access for all variables that are referenced in PLC objects and write operations will be initiated to the controller when required. The PLC server keeps updated values in the RTDB for all subscribed values.
Alarms are typically generated in PLC Connect by detecting when a polled boolean variable from the controller changes state or when a polled analog values passes an alarm limit.
Historical logging can be configured in the 800xA System to take place on any IO point or softpoint.
Using PLC Connect with ABB Controllers
AC 800M/C
PLC Connect can be used to connect AC 800M/C 3.0-3.2 versions to the 800xA System using the corresponding Control IT OPC Server 3.0-3.2.
PLC Connect can also be used to directly connect AC 800M 2.0/2.1/2.2/3.0/3.1/3.2 versions or AC 800C 2.2/3.2 versions to the 800xA System using any of the following protocols with PLC Connect acting as master and AC 800M/C as slave.
• Serial connection and the Comli protocol. (Limited Comli).
• SattBus on TCP/IP (Ethernet).
Advant Controller 250
PLC Connect can be used to connect Advant Controller 250 3.2 to the 800xA System using the corresponding Control IT OPC Server 3.2.
Alternatively, PLC Connect can be used to connect Advant Controller 250 v 2.2/3.2 versions to the 800xA System using any of the following protocols with PLC Connect acting as master and Advant Controller 250 as slave.
• Serial connection and the Comli protocol. (Limited Comli)
• Wired SattBus.
• SattBus on TCP/IP (Ethernet).
36 3BSE035041R4001
Section 2 PLC Connectivity Using PLC Connect with ABB Controllers
Advant Controller 31
The PLC Connect product together with the OPC Server for Advant Controller 31 can be used to connect an Advant Controller 250 v 3.1 to the 800xA System.
Alternatively, PLC Connect can be used to connect Advant Controller 31 using the Modbus RTU protocol with PLC Connect acting as master and Advant Controller 31 as slave.
Remote Terminal Unit 211
PLC Connect can be used to connect Remote Terminal Unit 211 to the 800xA System using any of the following protocols with PLC Connect acting as master and Remote Terminal Unit 211 as slave.
• Serial connection and the Modbus RTU protocol.
• Serial connection and the IEC 60870-5-101 protocol.
Advant Master AC 400
The AC400 Connectivity is the default for connection of AC400 to the 800xA System.
Alternatively, PLC Connect can be used to connect AC400 to the 800xA System using a serial connection and the Modbus RTU protocol with PLC Connect acting as master and AC400 as slave.
Advant Master AC 100
The AC100 Connectivity is the default for connection of AC100 to the 800xA System.
Alternatively, PLC Connect together with the Advant Fieldbus 100 OPC Server can be used to connect AC100 to the 800xA System.
SattLine
The PLC Connect product can be used to connect SattLine version v 2.3 using the option ‘OPC-SattLine Server’.
3BSE035041R4001 37
Using PLC Connect with ABB Controllers Section 2 PLC Connectivity
Alternatively, PLC Connect can be used to connect a SattLine v 2.2/2.3 Workstation to the 800xA System using any of the following protocols with PLC Connect acting as master and SattLine as slave.
• Serial connection and the Comli protocol.
• Wired SattBus.
• SattBus on TCP/IP (Ethernet).
PLC Connect can be connected to SattLine v 2.2/2.3 Controller using the following protocol with PLC Connect acting as master and SattLine as slave.
• Wired SattBus.
SattCon/PBS PLC
PLC Connect can be used to connect Advant Controller 250 v 2.2 to the 800xA System using any of the following protocols with PLC Connect acting as master and Advant Controller 250 as slave.
• Serial connection and the Comli protocol. (Limited Comli)
• Wired SattBus.
• SattBus on TCP/IP (Ethernet).
PLC Connect can be used to connect Advant Controller 250 v 1.x to the 800xA System using any of the following protocols with PLC Connect acting as master and Advant Controller 250 as slave.
• Serial connection and the Comli protocol. (Limited Comli)
• Wired SattBus.
• SattBus on TCP/IP (Ethernet).
PLC Connect can be used to connect Advant Soft Controller v 1.x to the 800xA System using any of the following protocols with PLC Connect acting as master and Advant Soft Controller as slave.
• Serial connection and the Comli protocol. (Limited Comli)
• Wired SattBus.
• SattBus on TCP/IP (Ethernet).
38 3BSE035041R4001
Section 2 PLC Connectivity Using PLC Connect with ABB Controllers
PLC Connect can be used to connect a SattCon 200 Controller to the 800xA System using any of the following protocols with PLC Connect acting as master and the SattCon 200 Controller as slave.
• Serial connection and the Comli protocol.
• Wired SattBus.
• SattBus on TCP/IP (Ethernet).
PLC Connect can be used to connect an Advant Controller 210 v 1.x to the 800xA System using any of the following protocols with PLC Connect acting as master and the Advant Controller 210 as slave.
• Serial connection and the Comli protocol.
• Wired SattBus via SBC (SattBus Connector).
PLC Connect can be used to connect any of the SattCon05, SattCon15, SattCon31, SattCon31-90, SattCon60, SattCon115 or SattCon125 controllers to the 800xA System using any of the following protocols with PLC Connect acting as master and the SattCon controller as slave.
• Serial connection and the Comli protocol.(different limitations)
• Wired SattBus via SBC (SattBus Connector).
3BSE035041R4001 39
Using PLC Connect with ABB Controllers Section 2 PLC Connectivity
40 3BSE035041R4001
Section 3 Getting Started
IntroductionThis section describes how to start engineering your system, that is create process objects and signals, and so on. However, it is assumed that you already have done a control network setup as described in Industrial IT 800xA - System Post Installation Setup.
Configuration Example
Startup
Start a Plant Explorer Workplace.
Create a New Process Object Type
Process object types are used as templates for process objects. They are created and maintained in the Object Type Structure and specifically located under the green PLC object.
1. In Plant Explorer, select the Object Type Structure.
2. Select the PLC object.
The green PLC object has a configuration aspect.
3. Select the Generic Control Network Configuration aspect.
3BSE035041R4001 41
Create a New Process Object Type Section 3 Getting Started
4. To create a new process object type, click the button.
5. In the displayed dialog box, enter the name of your new process object type.
6. Click OK.
7. The new process object type is created under the PLC object.
Figure 6. Generic Control Network Configuration Aspect
Figure 7. Created Object Type
42 3BSE035041R4001
Section 3 Getting Started Create a New Process Object Type
8. Expand the created process object type.
Notice that the process object type has an extended hierarchy. It will appear twice in this structure, the second object as a child to a formal instance list object. The formal instance list object defines in which structure the type will instantiate the object and as default the object must be created in the Control Structure. You will later see that the instantiated object in the Control Structure will not contain the formal instance list level, but only a one level structure.
9. Select the process object type. It also has a Configuration aspect.
10. Select the Process Object Configuration aspect.
Figure 8. Expanded Object Type
3BSE035041R4001 43
Create a New Process Object Type Section 3 Getting Started
In this configuration aspect, you can add signal types to the process object type. There are eight possible signal types: half of them I/O’s and the other half SoftPoints. The difference between them is that while an I/O can be connected to a hardware address in a controller, a SoftPoint cannot be externally connected.
Each category can be further divided into binary, integer, real and string signal types.
11. Click a button to add a signal type, for example, click in the I/O’s area to add a new I/O integer signal type, or the same button in the SoftPoints area to add a new SoftPoint integer signal type.
Figure 9. Process Object Configuration Aspect
44 3BSE035041R4001
Section 3 Getting Started Create a New Controller
When you add the required signal types for a process object type, you can also configure each signal type with the desired type characteristics. Each signal type has a Signal Configuration aspect that exposes all relevant engineering defaults. A process object will inherit these defaults, which later can be changed, that is, you do not have to make a new object type if a process object only has small deviations from the object type. You can also re-establish the default values from the object type.
When defaults are changed on the object type, all the objects based on the object type will be changed.
The signal types contain only the mandatory aspects at this stage. You can at this stage also consider adding additional aspect objects like Word documents with technical specifications and/or WEB references for your newly created object type and so on. It can of course be done later, as all instantiated objects will have inheritance from their object types.
Create a New Controller
Controllers are defined in the Control Structure.
12. Select the Control Structure
13. Select a control network object, that is an object of type PLC Generic Control Network. It represents a control network in the system.
14. Select the Generic Control Network Configuration aspect.
Figure 10. Signal Types
3BSE035041R4001 45
Create a New Controller Section 3 Getting Started
15. To create a new controller, click the button.
16. In the displayed dialog box, enter a controller name.
Figure 11. Control Network Object
46 3BSE035041R4001
Section 3 Getting Started Create a New Controller
17. Select a protocol to be used.
18. Click the Edit Driver button to configure the driver.
Figure 12. Selected Protocol
3BSE035041R4001 47
Create a New Controller Section 3 Getting Started
19. In the displayed dialog box, you can configure the driver.
20. When ready, click OK.
21. Click OK in the New Controller dialog box. The new controller will appear in the Control Structure under the control network object.
Figure 13. Communication Parameters for Comli
For more information on the settings, refer to the PLC Connect online help.
Figure 14. New Controller Object
48 3BSE035041R4001
Section 3 Getting Started Create a New Process Object
Create a New Process Object
Process Objects are created in the Control Structure by using process object types made in advance.
22. In the Generic Control Network Configuration aspect, click the button.
23. In the displayed dialog box, enter the name of the new object and select the object type it should be based on.
24. Select the relevant controller from the controller list.
25. Enter the number of the new objects to create at the same time.
26. When more than one object is created, the character '1' will be appended to the first object name, '2' to the second and so on. If you want the numbering to start with something else than '1', enter the number in the Starting number box.
27. Click Edit to set process object usage.
Figure 15. Create New Object Dialog Box
3BSE035041R4001 49
Create a New Process Object Section 3 Getting Started
28. In the displayed dialog box, you can set process object usage. Possible settings depend on the used controller protocol.
29. When ready, click OK.
30. Click OK. The new objects will appear in the Control Structure. Now you have some objects pre-configured according to the object type.
The I/O signals of the new object should now be connected to addresses in the controller.
31. Select an I/O signal part of a process object.
32. Select the Signal Configuration aspect.
Figure 16. Object Information for Comli
For more information on the settings, refer to the PLC Connect online help.
Figure 17. Created Objects
50 3BSE035041R4001
Section 3 Getting Started Create a New Process Object
33. Select the ID tab.
34. Click Connected.
35. Enter the signal hardware address. The format of the address is defined by the protocol in use for the specific controller.
Figure 18. Signal Configuration Aspect
Figure 19. Signal Hardware Address
3BSE035041R4001 51
Deploy Section 3 Getting Started
36. Click Apply.
Deploy
To make the changes take effect, you have to deploy the new configuration.
37. Select the control network object, that is, the object of type PLC Generic Control Network.
38. Select the Deploy aspect.
39. Click Deploy.
For more information on valid addresses, refer to the PLC Connect online help.
Figure 20. Deploy Aspect
52 3BSE035041R4001
Section 4 Create Process Graphics
IntroductionThis sub-section contains examples of how to create PLC Connect specific graphics, and a faceplate from the PLC Faceplate Templates.
Basic Graphic ExampleThis example describes how to create graphics for a single process object, exemplified by a tank object in the Control Structure. The graphics will be able to show status information on the object. However, it is assumed that the relevant process objects and signals used in the example already have been created and deployed. Figure 21 shows an example of the end result.
For more information on the PLC Connect specific graphics and relevant properties, refer to the PLC Connect online help. For more information on the basic graphic functionality in the system, including graphic elements, properties, Graphics Builder, and so on, refer to the Industrial IT 800xA - Engineering Graphics.
Figure 21. Tank Graphics
3BSE035041R4001 53
Basic Graphic Example Section 4 Create Process Graphics
Startup
1. Start a Plant Explorer Workplace.
Create Graphics in the Object Type Structure
A tank object in the Control Structure is based on a tank object type in the Object Type Structure. When you create an aspect for the tank object type, tank objects based on it will inherit the aspect. So instead of creating graphics for each tank object manually, you usually create the graphics for the tank object type. The graphics then automatically is created for each tank object based on the object type.
2. In Plant Explorer, select the Object Type Structure.
3. Select the tank object type the tank object is based on.
Create an AlarmStatus Aspect
An event is a situation when an event condition becomes true, while an alarm is a special kind of event requiring attention by an operator. The AlarmStatus aspect is required for alarm information to be propagated to the tank object.
4. Right-click the object type and select New Aspect. The New Aspect dialog box will be displayed.
5. Select the Show all and List presentation check boxes.
6. Select AlarmStatus from the list.
7. Click Create. The dialog box is closed and the aspect created.
Create a Graphic Element Aspect
Graphic Element aspects are the building blocks used in Graphic Display aspects and other graphic aspects. A Graphic Element aspect is used to create the graphics for a single process object.
8. Create a Graphic Element aspect for the tank object type.
Accept the default name, that is, do not change it.
54 3BSE035041R4001
Section 4 Create Process Graphics Basic Graphic Example
Start the Graphics Builder
The Graphics Builder is used to edit graphic aspects, and is based on Visual Basic.
9. Select the created Graphic Element aspect.
10. Right-click it and then select Edit. The Graphics Builder is started, see Figure 22.
Set Startup Options
You can set startup options for the Graphics Builder.
11. In the Graphics Builder, select Tools > Graphics Builder Options.
12. Set the desired startup options. For example, clear the Element Browser and the Expression Builder check boxes to set them to be hidden at startup.
For more information on the Graphics Builder, refer to the Industrial IT 800xA - Engineering Graphics.
Figure 22. Graphics Builder
3BSE035041R4001 55
Basic Graphic Example Section 4 Create Process Graphics
13. Click OK.
Add Graphic Libraries
The toolbox to the left of the Graphics Builder lists the available graphic elements. Basic graphic elements are included from the start, but others can be added from graphic libraries.
The libraries that contain PLC Connect specific graphic elements are:
• PLC Process Icons. This library contains optimized graphic elements, including a status box.
• PLC Subelements. This library contains basic graphic elements, alarm and warning icons, and other status indications.
14. Select Tools > Graphic Libraries.
15. Select PLC Process Icons.
16. Select PLC Subelements.
17. Click OK. In the toolbox, the added elements will be shown under the tabs PLC Process Icons and PLC Subelements, see Figure 23.
The granularity of the grid in the design window can be set under the General tab in the Options dialog box. To display it, select Tools > Options. Recommended granularity is 60 x 60.
Figure 23. Toolbox Icons
56 3BSE035041R4001
Section 4 Create Process Graphics Basic Graphic Example
Create a Graphic Element
Graphic aspects, such as the Graphic Element aspect, are built up with graphic elements from the toolbox. In this example, a status box element is used to create status indications, and a tank graphic element is used to create the tank.
18. Select the PLC Process Icons tab in the toolbox.
19. Under the tab, double-click the StatusBox icon, see Figure 27.
The graphic element, with default property settings, is created in the design window, see Figure 25. This window is used to arrange and hold the graphics.
Figure 24. StatusBox Icon
Position the cursor over an icon in the toolbox to view its name in the tooltip.
Figure 25. Design Window
3BSE035041R4001 57
Basic Graphic Example Section 4 Create Process Graphics
20. In the design window, move the element to the desired place, in this case, the upper left corner, see Figure 28.
21. Select the PLC Subelements tab in the toolbox.
22. Under the tab, double-click the tank icon, see Figure 27.
Figure 26. Moved Element
Figure 27. Tank Icon
58 3BSE035041R4001
Section 4 Create Process Graphics Basic Graphic Example
23. In the design window, move the created tank element to the desired place, see Figure 28.
24. If necessary, use the handles surrounding the created element to resize it. The handles appear any time a graphic element is clicked.
Properties Window and Expression Builder
Graphic properties control the appearance and behavior of graphic elements, for example their color. They are also used to connect the graphics to live process values, so that the graphics can indicate or show these process values.
You can set graphic properties via:
• Properties window. It is used to set graphic properties to static values, for example color properties. Some graphic properties can also be connected to process objects or signals via this window.
• Expression Builder. It is used to assign expressions to graphic properties. Expressions are used to specify the relationship between process values and graphic property values, for example, the color of a bar graph can be set to change depending on a process value.
Make Connections in the Object Type Structure
The tank element can indicate the volume of the tank in a bar graph. The tank object type should have one signal type that corresponds to the volume of the tank. Each
Figure 28. Moved Tank Element
3BSE035041R4001 59
Basic Graphic Example Section 4 Create Process Graphics
tank object based on the object type then will have one process signal of that signal type.
When you create the tank graphics for a tank object type, you connect this graphics to the volume signal type, or more to the point, you create references to the corresponding process signals in the tank objects based on the object type.
The tank graphics inherited by the tank objects then will have live connections to the actual volume signal values in the object, that is the graphics will show live process values.
Connect the Tank Element
Some graphic properties have names that ends with “Ref”, for example, “ValueRef” and “AnswerOpenedRef”. These properties can be connected to process signals via the Properties window. Only elements in the PLC Subelements library have these properties. Elements in the PLC Process Icons library are connected to process signals with the Expression Builder.
25. Select the created tank element.
26. In the Properties window, see Figure 29, select the ValueRef property, see Figure 30.
Use the Properties window to connect “Ref” properties to process signals. If you should use the Expression Builder, all functionality, such as an OPC status indication, will not be automatically included. If desired, you then have to implement it yourself. For more information on error presentation, including the OPC status indication, refer to the Industrial IT 800xA - Engineering Graphics.
Figure 29. Properties Window
60 3BSE035041R4001
Section 4 Create Process Graphics Basic Graphic Example
27. Click . The Property Pages dialog box is displayed.
28. From the left-hand list, select the dot “.”. It corresponds to the current process object type, in this case, the tank object type.
29. Click Browse. The Select Object Dialog is displayed.
Figure 30. Selected Property
Figure 31. Property Pages Dialog Box
3BSE035041R4001 61
Basic Graphic Example Section 4 Create Process Graphics
30. In the Select Object Dialog, select the signal type corresponding to the volume of the tank, see Figure 32.
31. Click OK. The dialog box is closed, and the reference to the corresponding process signal in the Control Structure is high-lighted in the Property Pages dialog box.
Figure 32. Select Object Dialog Box
62 3BSE035041R4001
Section 4 Create Process Graphics Basic Graphic Example
32. Select Value from the right-hand list, see Figure 33.
33. Click OK. The dialog box is closed and the Properties window updated, see Figure 34.
Set Other Tank Element Properties
Only some of the graphic property values are changed for the graphic elements in the example. Usually, you use the rest of the properties to achieve desired appearance, for example, set the color properties to the desired element colors and so on. For more information on the graphic properties, refer to the PLC Connect online help.
For the tank element, you can, for example, change the high limit of the tank scale, and the label format.
Figure 33. Value Reference
Figure 34. Connected ValueRef Property
3BSE035041R4001 63
Basic Graphic Example Section 4 Create Process Graphics
34. Select the tank element.
35. Select View > Expression Builder. The Expression Builder is started.
36. In the Expression builder, select the Alphabetic tab.
Figure 35. Expression Builder
64 3BSE035041R4001
Section 4 Create Process Graphics Basic Graphic Example
37. Under the tab, select the HighLimit property.
38. In the Lower part of the Expression Builder, select the Object Property tab.
39. Click Browse. The Select Object Dialog is displayed.
40. In the Select Object Dialog, select the signal type corresponding to the volume of the tank.
41. Click OK. The dialog box is closed, and the reference to the corresponding process signal in the Control Structure is high-lighted under the tab.
42. Select HighLimit from the right-hand list, see Figure 33. Make sure to select the one that ends with “PCA”.
Figure 36. Selected HighLimit Property
Figure 37. Value Reference
3BSE035041R4001 65
Basic Graphic Example Section 4 Create Process Graphics
43. Click Insert. The selected reference is inserted under the Alphabetic tab, see Figure 38.
44. In the Properties window, select the LabelFormat property.
45. Enter “#0”. This will make the scale labels show integer instead of decimal values.
Connect to Status Information
To be able to show status information, you have to connect the graphics to the relevant object type and signal type properties.
The graphics inherited by a object in the Control Structure will then have live connections to the actual status information in the object and its signals, that is, the graphics will show live status information.
Relevant properties in this example:
• AlarmState is an object type property. It is used to connect to the alarm information on a process object.
• WarningLevel is an object type property. It is used to connect to the warning information on a process object.
• IsForced is a signal type property. It is used to connect to information on whether a signal is forced or not.
Figure 38. Connected HighLimit Property
In the Graphics Builder, the high scale limit will appear to remain the same. However, in an inherited Graphic Element aspect for a tank object, the high scale limit will show the correct value when the graphics have been deployed. Deploy is described later on.
66 3BSE035041R4001
Section 4 Create Process Graphics Basic Graphic Example
Connect StatusBox Element
Previously, it was described how to use the Expression Builder to connect a tank element property to a signal reference. Such a reference is the simplest example of an expression. By expanding it, you can make more complex and useful connections. For example, a color can be set to change depending on the actual process value.
In this example, it is not described how to create such complex expressions. Only the end result is shown. For more information on expressions and how to expand and modify them, refer to the Industrial IT 800xA - Engineering Graphics.
46. Select the StatusBox element, and then use the Expression Builder to connect the following:
– IndicationAlarm property to the desired alarm expression, that is, enter an expression containing the object type property AlarmState. For example:
iif(.:AlarmStatus:AlarmState>0, True, False)
– IndicationAlarmColor to the desired alarm color expression, see also Logical Colors on page 68. For example:
iif(.:AlarmStatus:AlarmState>=8,unackHighAlarm, highAlarmSymbol)
– IndicationForced property to the relevant signal property. In this case, the relevant signal is the signal corresponding to volume in the tank, and the relevant signal property is the IsForced property.
Figure 39. Connected StatusBox Properties
3BSE035041R4001 67
Basic Graphic Example Section 4 Create Process Graphics
Logical Colors
UnackHighAlarm is a logical blinking color indicating unacknowledged alarms, and highAlarmSymbol is a logical color indicating acknowledged alarms. Logical colors can be found under the Color tab.
Set Window Properties
47. Click in an empty space in the design window to deselect any graphic element. The design window itself is selected.
48. In the Properties window, set the BackStyle property to Transparent. This will make the background of the Graphic Element aspect transparent when it’s inserted into another graphic aspect.
49. Set the Windowless property to True.
Figure 40. Logical Colors
When you create a Graphic Element aspect, make sure to set the Windowless property for the design window to True. Performance will be increased, since the aspect will have less functionality, and therefore update faster.
Be careful not to do this for a Graphic Display aspect, since the loss of functionality might make this aspect malfunction.
68 3BSE035041R4001
Section 4 Create Process Graphics Basic Graphic Example
50. Resize the design window to cover only the created graphic elements.
Deploy a Graphic Aspect
When the graphics in a graphic aspect has been changed, the aspect has to be deployed for the changes to take effect. Save is automatic when the graphic aspect is deployed.
51. In the toolbar, click . The Graphic Element aspect will be deployed, and the tank graphics finished.
Figure 41. Resized Element
When you make a change in a graphic aspect that is inserted into another graphic aspect, you have to deploy both aspects for the change to take effect. Instead, you can use the Display Tool to make all necessary updates at once. For more information on the Display Tool, refer to the Industrial IT 800xA - Engineering Graphics.
3BSE035041R4001 69
Alternative Graphic Example Section 4 Create Process Graphics
The graphics is now ready to be used in other aspects, for example, a Graphic Display aspect. Figure 42 shows part of a Graphic Display aspect with the tank graphics inserted.
Alternative Graphic ExampleIn the previous example, the status box element was used to provide status information for the tank object. Alternatively, alarm and warning icons can be used to show alarm and warning information on a process object.
This example describes how to create graphics that will be able to show alarm and warning information on a process object, exemplified by a valve object in the Control Structure. However, in this example most steps will not be described in detail. Refer to the previous example if you feel the need to review the details of a particular step. It is also assumed that the relevant process objects and signals used in the example already have been created and deployed.
Alarm and Warning Elements
Alarm and warning elements can show the alarm and/or warning status of a process object. For example, the AlarmState element can show the alarm status, the WarningLevel element can show the warning status, and the AlarmWarningCombo element can show both.
Figure 42. Inserted Tank Graphics
70 3BSE035041R4001
Section 4 Create Process Graphics Alternative Graphic Example
Startup
1. Start a Plant Explorer Workplace.
2. In Plant Explorer, select the Object Type Structure.
3. Select the valve object type the valve object is based on.
4. Create an AlarmStatus aspect for the valve object type.
Create and Connect the Graphics
5. Create a Graphic Element aspect for the valve object type.
6. Select the created Graphic Element aspect and click Edit. The Graphics Builder is started.
7. In the Graphics Builder, add the graphic library PLC Subelements to the toolbox.
8. Select the PLC Subelements tab, and then create a Valve2Way element, see the left snap-shot in Figure 43.
9. Create an AlarmState and a WarningLevel element beside the valve element.
10. Select the valve element.
11. Via the Properties window, connect the “AnswerOpenedRef” property to the process signal corresponding to whether the valve is opened or not.
12. Connect the “AnswerClosedRef property” to the process signal corresponding to whether the valve is closed or not.
Figure 43. Valve Element (Left), Alarm and Warning Elements (Right)
The direction of the valve (horizontal or vertical) is determined by the Direction property.
If desired, you need only connect one of the process signals.
3BSE035041R4001 71
Alternative Graphic Example Section 4 Create Process Graphics
Connect the Alarm Element
13. In the design window, select the AlarmState element.
14. In the Properties window, select the “AlarmStateRef” property.
15. Click . The Property Pages dialog box is displayed.
16. Select the dot (‘.’) from the left-hand list. It represents the current process object type, see Figure 44.
17. From the right-hand list, select “AlarmState”.
18. Click OK. The dialog box is closed and the Properties window updated.
Connect the Warning Element
19. Select the WarningLevel element.
20. Via the Properties window, connect the “WarningLevelRef” property to the object type property WarningLevel.
Figure 44. Process Object Type Reference
72 3BSE035041R4001
Section 4 Create Process Graphics Optimized Graphic Example
Finish the Graphics
21. Click in an empty space in the design window to deselect any graphic element. The design window itself is selected.
22. In the Properties window, set the BackStyle property to Transparent.
23. Set the Windowless property to True.
24. Resize the design window to cover only the created graphic element.
25. Deploy the aspect.
The graphics is now ready to be used in other aspects, for example, a Graphic Display aspect. Figure 45 shows part of a Graphic Display aspect with the valve graphics inserted.
Optimized Graphic ExampleSome of the PLC Connect specific graphic elements are optimized for performance, that is to execute as fast as possible. This example describes how to use such elements to create graphics for a process object, exemplified by a motor object in the Control Structure. However, it is assumed that the relevant process objects and signals used in the example already have been created and deployed.
The example is intended for advanced users with a working knowledge of how to use the Graphics Builder to create graphics, including the toolbox, the Properties window and especially the Expression Builder. If you need to review how to
Figure 45. Graphic Display Part
3BSE035041R4001 73
Optimized Graphic Example Section 4 Create Process Graphics
perform the details of a specific step in this example, refer to the Industrial IT 800xA - Engineering Graphics.
Startup
1. In Plant Explorer, select the Object Type Structure.
2. Select the relevant motor object type.
3. The object type should have an AlarmStatus aspect. If not, create the aspect.
4. Create a Graphic Element aspect.
5. Select to edit the Graphic Element aspect. The Graphics Builder is started.
6. In the Graphics Builder, add the graphic library PLC Connect Process Icons. The added elements can be found under the PLC Process Icons tab in the toolbox.
Add a StatusBox
The StatusBox element can show status information on a process object. Make a habit of using it together with the other optimized elements, since you then can show relevant status information for the process object.
7. Create a StatusBox element.
Figure 46. Toolbox Icon (Left), Created Element (Right)
74 3BSE035041R4001
Section 4 Create Process Graphics Optimized Graphic Example
8. Select the created element, and then set the following:
– Left property to 60
– Top property to 60
Add a Motor
9. Create a MotorSimple element.
10. Select the created element, and then set the following:
– Left property to 60
– Top property to 240
– MotorType property to desired motor type, in this example Fan. This property controls the appearance of the motor element. You can for example, set it to Pump, Fan, Compressor, and so on.
Figure 47. Changed Properties (Left), Affected Element (Right)
Figure 48. Toolbox Icon (Left), Created Element (Right)
3BSE035041R4001 75
Optimized Graphic Example Section 4 Create Process Graphics
Set Window Properties
11. In the Properties window, select UserControl from the top-most drop-down list.
12. Set the following:
– Width property to 615
– Height property to 795
– Windowless property to True
– BackStyle property to Transparent
Figure 49. Changed Properties (Left), Affected Element (Right)
Figure 50. UserControl Property
Figure 51. Final Appearance
76 3BSE035041R4001
Section 4 Create Process Graphics Optimized Graphic Example
Connect MotorSimple Element
13. Select the MotorSimple element, and then use the Expression Builder to connect its Value property to the relevant signal property.
– The relevant signal is the signal corresponding to whether the motor is running or not. In the example in Figure 52, the signal name is “AnswerOn”.
– The relevant signal property is the Value property.
Connect StatusBox Element
14. Select the StatusBox element, and then use the Expression Builder to connect the following:
– IndicationAlarm property to the desired alarm expression, that is enter an expression containing the object type property AlarmState. For example:
iif(.:AlarmStatus:AlarmState>0, True, False)
– IndicationAlarmColor to the desired alarm color expression, see also Logical Colors on page 68. For example:
iif(.:AlarmStatus:AlarmState>=8,unackHighAlarm, highAlarmSymbol)
– IndicationForced property to the relevant signal property. In this case, the relevant signal is the signal corresponding to whether the motor object is on or not, and the relevant signal property is the IsForced property.
Figure 52. Connected Value Property
For the optimized elements, all functionality, such as an OPC status indication, will not be automatically included. If desired, you then have to implement it yourself. For more information on error presentation, including the OPC status indication, refer to the Industrial IT 800xA - Engineering Graphics.
3BSE035041R4001 77
Optimized Graphic Example Section 4 Create Process Graphics
– IndicationManual property to the relevant signal property. In this case, the relevant signal is the one corresponding to whether the motor is running automatically or not, and the relevant signal property is the Value property. In the example in Figure 52, the signal name is “AnswerAuto”.
Since the desired value in this case is the inversion of the connected signal value, “Not” have to be entered first in the expression.
Deploy
15. Deploy the Graphic Element aspect. Figure 54 shows an example of the Graphic Element aspect inherited by a motor object in the Control Structure.
Figure 53. Connected StatusBox Properties
Figure 54. Inherited Graphic Element Aspect
78 3BSE035041R4001
Section 4 Create Process Graphics Faceplate Example
The graphics is now ready to be used in other aspects, for example, a Graphic Display aspect. Figure 55 shows part of a Graphic Display aspect with inserted motor graphics.
Faceplate ExampleFaceplates are used to control process objects. This example describes how to create an example faceplate from the PLC Faceplate Templates. The end result is the right-most faceplate in Figure 57. However, it is assumed that the relevant process objects and signals used in the example already have been created and deployed.
When you have created a faceplate you usually configure it to contain one or more of your faceplate elements. For more information on faceplate elements or on faceplates in general, refer to the Industrial IT 800xA - Engineering Graphics.
PLC Faceplate Templates
In the Object Type Structure under the PLC Faceplate Templates object type, there are some example faceplates.
Figure 55. Inserted Motor Graphics
These example faceplates have the same layout as other faceplates in the system, with one important exception. They contain lock functionality, that is, you can lock the process object and you can also force a lock. When you force a lock, you force the process object to be locked from your Workplace.
These are only example faceplates. You usually design and create your own faceplates from scratch.
3BSE035041R4001 79
Faceplate Example Section 4 Create Process Graphics
Relevant are:
• Faceplate Standard. This example faceplate shows a standard faceplate suitable for most objects, such as motors, pumps, analog pumps, valves, analog valves, and so on.
• Faceplate Advanced. This example faceplate shows a faceplate for an advanced motor.
• Faceplate 3Way Valve. This example faceplate shows a faceplate for a 3-way valve.
Figure 56. Standard, Advanced and 3Way Valve Faceplates
80 3BSE035041R4001
Section 4 Create Process Graphics Create Faceplate Aspect
Create Faceplate Aspect
In this example, the first part is to create and configure a faceplate for a process object in the Control Structure, for example, a pump object.
Startup
1. Start a Plant Explorer Workplace.
Copy and Paste a Standard Faceplate
The process object in the Control Structure is based on a process object type in the Object Type Structure. When you create an aspect for the process object type, process objects based on it will inherit the aspect. So instead of creating faceplates for each process object manually, you usually create a faceplate for the process object type. The faceplate then automatically is created for each process object based on the object type.
2. In Plant Explorer, select the Object Type Structure.
3. Select the PLC Faceplate Templates object type.
4. Right-click the Faceplate Standard aspect, and select Copy.
5. Select the process object type the process object is based on.
6. Right-click in its aspect list, and select Paste. The aspect is pasted into the aspect list.
7. Rename the aspect to the desired name.
Edit the Faceplate Aspect
8. Select the pasted aspect.
9. Select Config View from the drop-down list, see Figure 57.
3BSE035041R4001 81
Create Faceplate Aspect Section 4 Create Process Graphics
Layout Tab
Under the Layout tab, see Figure 58, the size and layout of the faceplate are set. For the PLC Faceplate Templates, this size is predefined to fit the default size of any Faceplate Element aspect you create. This means that if you don’t change the size of your faceplate elements or the predefined size of faceplates from the PLC Faceplate Templates, they will fit perfectly together.
Figure 57. Faceplate Standard Aspect
82 3BSE035041R4001
Section 4 Create Process Graphics Create Faceplate Aspect
10. Select the Indicators tab.
Figure 58. Layout Tab
3BSE035041R4001 83
Create Faceplate Aspect Section 4 Create Process Graphics
Indicators Tab
Under the Indicators tab, see Figure 59, the indicators and aspect links are set up.
Replace Default Signal Names
In the Indicators area, the Expression column shows the defined expression for each indicator. Default expressions are already defined, but you have to replace the signal names in them.
Figure 59. Indicators Tab
When needed, indicator icons for PLC Connect can be found in the folder \...\ABB Industrial IT\Operate IT\PLC Connect\Bin\Icons\Process Graphics.
84 3BSE035041R4001
Section 4 Create Process Graphics Create Faceplate Aspect
11. Click in the top-most expression box. The Expressions dialog box is displayed, see Figure 60.
12. Replace the text “AnswerAuto” with the name of the signal corresponding to whether the process object is controlled automatically or not.
13. Similarly, click in the bottom-most expression box and replace the text “AnswerOn” with the name of the signal corresponding to whether the process object is on or not.
14. Click Apply.
Select Current Object Type
In the Aspect Links area, default aspect links are already defined, but you have to connect to the correct aspects.
The Object column shows the relevant object type for each the aspect link.
15. Click in the top-most box in the column. The Select Object dialog box will be displayed.
Figure 60. Expressions Dialog Box
3BSE035041R4001 85
Create Faceplate Aspect Section 4 Create Process Graphics
16. Select the process object type, see Figure 60.
17. Click OK. The top-most box in the Object column will now show a dot “.”. It represents the current process object type, see Figure 62.
Figure 61. Selected Object Type
Figure 62. Updated Object Column
86 3BSE035041R4001
Section 4 Create Process Graphics Create Faceplate Aspect
Select Relevant Aspects
The Aspect column shows the aspect selected for each aspect link.
18. Click in the top-most box in the Aspect column, and select Operator Note from the drop-down list, see Figure 63. The list shows available aspects.
19. Click in the bottom-most box in the Object column, and again select the process object type.
20. Click in the bottom-most box in the Aspect column and select Object Dialog from the drop-down list. Figure 64 shows the result.
Figure 63. Selected Operator Note Aspect
Figure 64. Updated Aspect Links
3BSE035041R4001 87
Create Faceplate Aspect Section 4 Create Process Graphics
21. Select the Buttons Tab
Buttons Tab
Under the buttons tab, see Figure 65, button appearances and behavior are set up.
Button defaults are already defined, but you have to change the default connections.
Change Force Lock Defaults
The top-most row shows the definition of the force lock button.
22. Click in the top-most box in the Object column. The Select Object dialog box will be displayed.
23. Select the process object type, see also Figure 60.
24. Click OK. The top-most box in the Object column will now show a dot “.”. It represents the current process object.
The Property name column shows which property the force lock button affects.
Figure 65. Button Tab
88 3BSE035041R4001
Section 4 Create Process Graphics Create Faceplate Aspect
25. Click in the top-most box in the Property name column, and select LOCK from the drop-down list, see Figure 66. The list shows available properties.
The Property value column shows which value the button sets the property to when clicked.
26. Click in the top-most box in the Property value column and enter “3”. It corresponds to forcing the lock.
Change Control Button Defaults
The next four rows shows the definitions for the control buttons.
27. Click in the bottom-most box in the Object column. The Select Object dialog box will be displayed.
Figure 66. Selected LOCK Property
3BSE035041R4001 89
Create Faceplate Aspect Section 4 Create Process Graphics
28. Select the signal type that corresponds to setting the process object to start, see Figure 67.
29. Click OK. The bottom-most box in the Object column will now show the signal type.
The property name column shows which property the control button affects.
Figure 67. Selected Signal Type
90 3BSE035041R4001
Section 4 Create Process Graphics Create Faceplate Aspect
30. Click in the bottom-most box in the Property name column, and select Value from the drop-down list, see Figure 68.
When you click a control button it sets a process signal to a certain value. The Property value column shows this value, which depends on the process signal. For example, a process signal corresponds to whether a process objects is on or not. The control button that sets the process object to start should then set the signal to “TRUE”, while the control button that sets the process object to stop should set the signal to “FALSE”, and so on.
31. Click in the bottom-most box in the Property value column, and select TRUE from the drop-down list.
Figure 68. Selected Value Property
3BSE035041R4001 91
Create Faceplate Aspect Section 4 Create Process Graphics
32. Repeat Step 27 to Step 31 for each of the remaining rows. Figure 68, which shows the end result.
Input Rules
All control buttons in a faceplate have to be protected with rules that only enable the control buttons if the process object is locked by the user, that is, the faceplate has to be locked from the Workplace to make it possible for an operator to use the faceplate to control the process object.
The Enabled column under the Buttons tab is used to define input rules. Faceplates from the PLC Faceplate Templates already have implemented input rules. However, you have to change the default signal names in some of them.
Figure 69. Connected Buttons
Be sure to use input rules that require a locked process object to enable input. Use them for all control buttons in your faceplates.
92 3BSE035041R4001
Section 4 Create Process Graphics Create Faceplate Aspect
33. Click in the top-most box in the Enabled column. The Expressions dialog box is displayed, see Figure 70. The box shows the input rule for the force lock button. Since there is no signal name in it, continue with the next step.
The input rules can be expanded. For example, the rule enabling input for a button can be expanded to require both a locked object and that the object is set to be controlled manually, see Figure 71. If so, the button will be disabled when the object is controlled automatically.
Figure 70. Input Rule Example
Figure 71. Expanded Input Rule Example
3BSE035041R4001 93
Create Faceplate Aspect Section 4 Create Process Graphics
34. Click in each of the other boxes in the Enabled column. When the expression contains a default signal name, replace it with the correct signal name. For example, the dialog box in Figure 71 contains the default signal name “AnswerAuto”. Replace it with the name of the signal that corresponds to whether the process object is controlled automatically or not.
35. Select the Element tab.
Element Tab
The Element tab is used to select which of your own Faceplate Element aspects that are to be part of the faceplate. It is not used in this example.
Figure 72. Element Tab
94 3BSE035041R4001
Section 4 Create Process Graphics Configure Faceplate Properties
Configure Faceplate Properties
In this example, the next part is to configure relevant faceplate properties.
To make the faceplate pop-up when you click the graphics representing the process object in a graphic display, you have to make it the default aspect.
1. In the Object Type Structure, select the created Faceplate Standard aspect.
2. Right-click the aspect, and then select Properties. The Properties dialog box is displayed.
3. Select the Aspect Details tab, and then the Default aspect check box.
4. Click Apply.
Configure Alarm Handling
In this example, the last part is to add an AlarmControl aspect. This is necessary for the faceplate to be able to show alarm and warning graphics.
1. Select the process object type.
2. If not already created, create an AlarmStatus aspect.
3. Select the PLC Faceplate Templates object type.
4. Right-click the AlarmControl aspect, and select Copy.
5. Again, select the process object type.
6. Right-click in its aspect list, and select Paste. The aspect is pasted into the aspect list.
7. Right-click the pasted aspect and select Deploy.
8. The faceplate is now finished.
The alarm and warning indication in a faceplate is invisible when there are no alarms or warnings.
3BSE035041R4001 95
Configure Alarm Handling Section 4 Create Process Graphics
96 3BSE035041R4001
Section 5 Alarm and Event ListConfigurations
PLC Connect supplies three custom alarm and event list configurations. By associating them with Alarm and Event List aspects, you can create PLC Connect specific alarm and event lists configured to show a selection of the alarms and events.
• PLC Alarm List. This configuration shows alarms, including alarms disabled by an operator.
• List of Control Blocked Signals. This configuration shows the manually controllable signals that are disabled. The values of a control blocked signal can’t be changed by an operator.
• List of Forced Signals. This configuration shows forced signals. Forced signals are signals whose values are temporarily forced to a certain value, that is, the signal values appear to be constant regardless of the actual process values.
The custom alarm and event list configurations are located in the Library Structure under the object “Alarm & Event Configurations”, sub-object “Default Configurations”.
Alarm and event list configuration is described in the Industrial IT 800xA - System Operator Workplace Configuration.
3BSE035041R4001 97
Section 5 Alarm and Event List Configurations
98 3BSE035041R4001
Section 6 Openness
IntroductionThis section describes the openness of PLC Connect:
• Extension Processes on page 100 describes the use of extension processes in the PLC Server.
• PLC Connect Real Time Data Access on page 101 describes an interface for project specific variable access in the RTDB.
• Communication Server Pre Treatment on page 123 describes an interface for project specific variable pre treatment in the Communication Server.
• Event Server Pre Treatment on page 130 describes an interface that makes it possible to modify events before they enter the Event Server.
• Event Extended Options on page 143 describes how to set up a Special Application to execute in the case of an event.
• OLE DB Provider for Events on page 152 describes how to set up an application to access events and system messages.
• PLC Connect Properties on page 154 describes accessible properties.
• Dial Manager Server Access (Option) on page 164 describes an interface for accessing the Dial Manager Server.
3BSE035041R4001 99
Extension Processes Section 6 Openness
Extension ProcessesYou can use applications of your own together with PLC Connect. When you want such an application to start and stop synchronized with the PLC Server, you have to add the application as an extension process to the PLC Server. However, the application you add cannot have any kind of user interface that require manual input, for example, clicking an OK button. This kind of user interface will halt program execution, since extension processes (you can have more than one) run in the same service context as the PLC Server.
To add your application as an extension process:
1. Start a Plant Explorer workplace.
2. Select the Service Structure.
3. Select the object named “PLC Server, Service”.
4. Select the Service Group object for the desired control network, that is, select the Service Group object representing the computer with a connectivity server that is connected to the desired control network. See also Example of Service Structure Part on page 100.
5. Select the Service Group Definition aspect.
6. Select the Special Configuration tab.
7. Click Help and refer to the information on how to add the application as an extension process.
8. If you want to add the application as an extension process for other control networks, repeat Step 4 to Step 7 for each of these control networks.
Example of Service Structure Part
Typically, the names of the Service Group objects are the same as respective computer name. In the example in Figure 73, they are 'Computer1', 'Computer2', and 'Computer3'.
The mechanism for handling extension processes does not support the redundant connectivity server concept in PLC Connect. For this a full server process is needed. This is a far more complex matter and beyond the scope of this manual.
100 3BSE035041R4001
Section 6 Openness PLC Connect Real Time Data Access
PLC Connect Real Time Data Access
Introduction
The real time data in the RTDB is accessible for user written applications via a COM interface. This Open Interface (OIF) is available on both server and client nodes. Running the application on a server node can be done for example as an extension process, see Extension Processes on page 100, but consider the restrictions that apply to such a process. It can also be run as a standalone process with or without a user interface. On a client node it cannot be run as an extension process to the PLC Server, only as a standalone executable, with or without a user interface.
Figure 73. Service Structure Part
Figure 74. Client and Server Nodes
3BSE035041R4001 101
Variable Access Section 6 Openness
Variable Access
The variable access is performed by one or more executable files independently from the RTDB.
In the RTDB two classes are implemented: Variables and Variable.
Client means a certain instance of a Variables object, see Variable Access Interface on page 104. A program (.EXE file) can have several instances of Variables, although in most cases there is only one instance.
The RTDB is able to inform the respective EXE file when a certain variable changes its value.
An object is created based on the class Variables. Using the methods for the class it is possible to create Variable objects or direct references to PLC Connect instances.
It is possible to Lock variables before writing values to them, via methods in the Variable Access Interface, see Variable Access Interface on page 104.
The holder of a Lock is identified by NodeId and UserId.
Locking can be done on a signal level, however the whole object is then locked.
Figure 75. Variable Access
102 3BSE035041R4001
Section 6 Openness Subscription
Subscription
When a client (Variables object) is created, a queue will be allocated. In this queue variable changes will be stored. In one queue changes from all subscribed variables will be stored.
For memory reasons there is support for a maximum of 32 queues. Each client may have a queue of its own (max. 32 queues) which is independent of other clients.
It is not necessary to use the queue function, the calculation results can be written at any time, for example, cyclically.
Any number of clients can choose not to use queues.
Variable Change
A variable change is defined as an analog signal value that is changing by a value higher than the defined signal hysteresis (the hysteresis may also be 0) or a binary signal change (leading, trailing or both edges).
Figure 76. Subscription
3BSE035041R4001 103
Variable Access Interface Section 6 Openness
Variable Access Interface
This section describes the properties and methods of the interface for “Variable access”. This interface consists of two different classes: Variable and Variables. To be able to use these classes, for example in Visual Basic, references have to be done to a library included in the PLC Connect installation. The name of the library is AdsScadaHdlr 1.0 Type Library.
Variable Access Properties and Methods
The properties and methods of the classes are listed in Table 1. All properties are read only, unless anything otherwise stated in the table.
Properties such as Lower can be read both via a method and via properties. Here, the properties are considered the “normal” way to read these properties. The methods should be considered a way to optimize the performance by reading several properties with the same call.
Table 1. Properties and Methods
Class Methods/properties
Variables Init(...)
Variables Init2(...)
Variables Valid As Boolean
Variables Changed As Boolean
Variables Subscribe (…) As Boolean
Variables SubscribeByCalcType(…) As Boolean
Variables GetEvent(…) As Boolean
Variables GetQueueInfo(…) As Boolean
Variables ClearQueueInfo()
Variables Item(…) As Variable
Variables ReadValue(…) As Boolean
Variables WriteValue(…) As Long
104 3BSE035041R4001
Section 6 Openness Variable Access Properties and Methods
Variables ForceLock(…) As Long
Variables ReleaseLock(…) As Long
Variables LockedBy(…) As Long
Variables GetGUID(…) As Long
Variable ReadValue(…) As Boolean
Variable WriteValue(…) As Long
Variable ReadMeasure(…) As Boolean
Variable ReadAttributes(…) As Boolean
Variable ReadLimit(…) As Boolean
Variable WriteLimit(…) As Long
Variable ForceLock(…) As Long
Variable ReleaseLock(…) As Long
Variable LockedBy(…) As Long
Variable Lower As Double
Variable Upper As Double
Variable LowerControlLim As Double (Read/Write)
Variable UpperControlLim As Double (Read/Write)
Variable IsInverted As Boolean
Variable IsEvent As Boolean
Variable IsTimeStamped As Boolean
Variable IsBlocked As Boolean
Variable IsControllable As Boolean
Table 1. Properties and Methods (Continued)
Class Methods/properties
3BSE035041R4001 105
Properties and Methods for the Class Variables Section 6 Openness
In these methods the sVarName in-parameter is the name of the variable in the PLC Server. If the name is entered in the format “{xxxxxxxx-xxxx-xxxx-xxx-xxxxxxxxxxxx}”, it will be interpreted as a GUID for a variable in the PLC server.
The variable name must be entered in the format “<controller name>:<object name>.<signal name>”.
Examples:
• sVarName = “Controller1:Valve231.Open”
• sVarName = “Controller23:Pump1. Speed”
Properties and Methods for the Class Variables
InitSyntax: Init(pSysCtxId As AfwSystemContextId, pSGId As AfwServiceGroupId)
Used to identify the server.
pSysCtxId (in): the System Context Id.
pSGId (in): the Service Group Id.
Init2Syntax: Init2(pObject As AfwObject)
Used to identify the server.
pObject (in): an object in the PLC Generic Control Network tree.
Variable IsControlBlocked As Boolean
Variable IsForced As Boolean
Variable Name As String
Variable GUID As String
Table 1. Properties and Methods (Continued)
Class Methods/properties
106 3BSE035041R4001
Section 6 Openness Properties and Methods for the Class Variables
ValidSyntax: Valid As Boolean
Always TRUE except during deploy.
ChangedSyntax: Changed As Boolean
TRUE when there are one or several variable changes in the queue.
Subscribe Syntax: Subscribe(lQueueMaxSize As Long, sVarName As String,bFilter As Boolean ) As Boolean
Subscribes a variable for queue handling. Returns TRUE if variable found.
lQueueMaxSize (in): states the maximum number of allowed events in the queue. Is only significant at the first call. sVarName(in): returns the name of the variable.bFilter (in): if TRUE, one variable change for each signal at most is queued (the latest).
SubscribeByCalcType Syntax: SubscribeByCalcType(lQueueMaxSize As LonglCalcTypeLow As Long, lCalcTypeHigh As Long, bFilter As Boolean ) As Boolean
For future use.
GetEvent Syntax: GetEvent( sVarName As String, vntValue As Variant, OPCQuality As Integer, TimeStamp As Date, lCalculationType As Long, sVarParam As String, bOverFlow As Boolean ) As Boolean
Gets a variable change from the queue. Returns FALSE if the queue is empty.
SVarName(out): returns the name of the variable.vntValue(out): returns the value of the signal.OPCQuality(out): indicates the OPC quality of the variable.TimeStamp(out): time stamp for value changed.
3BSE035041R4001 107
Properties and Methods for the Class Variables Section 6 Openness
lCalculationType(out): selected calculation type. This user defined private data is selected in the Calculations dialog box. To access it, click Calculations under the Common tab of a Signal Configuration aspect for an I/O signal type or signal.sVarParam(out): entered subscription parameter. This user defined private data is also entered in the Calculations dialog box. To access it, see above.bOverFlow (out): is TRUE if the number of events in the queue = lQueueMaxSize.
GetQueueInfo Syntax: GetQueueInfo(lCurrentQueueSize As Long, lPeakQueueSize As Long, lTotalQueuedEvents As Long) As Boolean
Gives diagnostic information about a queue. Returns TRUE if call succeeded.
lCurrentQueueSize(out): returns size of queuelPeakQueueSize(out): returns peak size value of the queue lTotalQueuedEvents(out): returns number of queued events
ClearQueueInfoSyntax: ClearQueueInfo()
Clears diagnostic information for a queue.
Item Syntax: Item( sVarName As String) As Variable
Gets a reference to a named variable. If the variable is not found, ”Nothing” is returned.
sVarName(in): name of the variable.
ReadValue Syntax: ReadValue( sVarName As String, vntValue As Variant, OPCQuality As Integer ) As Boolean
Reads the value of a named variable. FALSE if the variable is not found or deploy is in progress.
sVarName(in): name of the variable.vntValue(out): returns the value of the signal.OPCQuality(out): indicates the OPC quality of the variable.
108 3BSE035041R4001
Section 6 Openness Properties and Methods for the Class Variables
WriteValue Syntax: WriteValue( sVarName As String, vntValue As Variant, OPCQuality As Integer ) As Long
Writes to a named variable, but not if vntValue is ”vtEmpty”. This is useful if you only want to write into the error bits. A variable is “vtEmpty” if it is declared but not assigned. If the variable is fetched from a controller, the vntValue is written to the controller if the variable is controllable. (Not valid for string variables. They aren’t written to the controller.) Otherwise, the functions connected to the signal are performed, for example the alarm function. Returns FALSE if the variable is not found, or deploy is in progress.
• If the variable is not locked, the value will be written to RTDB.
• If the variable is locked by another user the method will return vbLockedByOther (=32103) and the value is not written to RTDB.
• If the variable is locked by the RTDB, the value will be written to the RTDB.
• If the variable does not exist in the RTDB, then vbVariableNotFound(=32001) will be returned.
sVarName(in): name of the variable.vntValue (in): value to the signal.OPCQuality (in): if the variable is of the type ”Internal”, then it is written to the OPC quality of the variable, else this parameter is ignored.
ForceLockSyntax: ForceLock( sVarName As String ) As Long
Called by an application if it needs to Lock a certain variable. The Lock will be held until it is released by the application or until another application forces the Lock. If the variable is already locked by other application, this call will force the Lock. If the variable does not exist in the RTDB then vbVariableNotFound(=32001) will be returned.
sVarName(in): name of the variable.
3BSE035041R4001 109
Properties and Methods for the Class Variables Section 6 Openness
ReleaseLockSyntax: ReleaseLock( sVarName As String ) As Long
Called by an application when it wants to release a Lock for the variable. If an other application holds the Lock, the variable will remain Locked and the method will return vbLockedByOther (=32103). If the variable does not exist in the RTDB then vbVariableNotFound(=32001) will be returned.
sVarName(in): name of the variable.
LockedBySyntax: LockedBy( sVarName As String, sNodeId As String, sUserId As String ) As Long
Method that returns the identification of the user, currently holding the Lock. If the variable does not exist in the RTDB then vbVariableNotFound(=32001) will be returned.
Return code 32102 when variable isn’t locked (vbNoLock). NodeId and UserId are then set to 200.
sVarName(in): name of the variable.sNodeId(out): name of the node where the Lock is held.sUserId(out): name of the user that holds the Lock.
GetGUIDSyntax: GetGUID( sVarName As String, sGUID As String ) As Long
Method that returns the GUID of the variable. If the variable does not exist in the RTDB then vbVariableNotFound(=32001) will be returned. The method is intended to be used whenever an Event occurs and the client needs to know the Event’s guid, since the GetEvent() function returns an object name and not a guid.
sVarName(in): name of the variable.sGUID(out): GUID of the variable.
110 3BSE035041R4001
Section 6 Openness Properties and Methods for the Class Variable
Properties and Methods for the Class Variable
ReadValueSyntax: ReadValue( vntValue As Variant, OPCQuality As Integer ) As Boolean
Reads the value of the variable. Returns FALSE if Variables:Valid is FALSE.
VntValue(out): returns the value of the signal.OPCQuality(out): indicates the OPC quality of the variable.
WriteValueSyntax: WriteValue( vntValue As Variant, OPCQuality As Integer ) As Long
Writes vntValue to a named variable. Returns FALSE if Variables:Valid is false. If the variable is fetched from a controller, the value is written to the controller if the variable is controllable. (Not valid for string variables. They aren’t written to the controller.) Else, the functions connected to the signal, are performed, for example the alarm function. If the variable is of the type ”Internal”, then OPCQuality is written to the OPC quality of the variable, else this parameter is ignored. If vntValue contains ”vtEmpty”, only the quality is written, not the value. This is useful if you only want to write into the quality. A variable is “vtEmpty” if it is declared but not assigned.
• If the variable is not locked, the value will be written to RTDB.
• If the variable is locked by another user the method will return vbLockedByOther (=32103) and the value is not written to RTDB.
• If the variable is locked by RTDB, the value will be written to RTDB.
VntValue(in): value to the signal.OPCQuality(in): indicates the OPC quality of the variable.
ReadMeasureSyntax: ReadMeasure( fLower As Double, fUpper As Double,fLowerControlLim As Double, fUpperControlLim As Double, bIsControllable As Boolean, bIsControlBlocked As Boolean, bIsForced As Boolean) As Boolean
3BSE035041R4001 111
Properties and Methods for the Class Variable Section 6 Openness
Reads measuring properties of the instance. Returns FALSE if Variables:Valid is FALSE, else TRUE if the variable has a range of measurement. In that case, the range of measurement is in fLower and fUpper.
fLower(out): Returns the lower limit of the range of measurement. Raises an exception if the signal is not analog.fUpper(out): Returns the upper limit of the range of measurement. Raises an exception if the signal is not analog.fLowerControlLim(out): Returns the lower control limit. Raises an exception if the signal is not analog, or if you are trying to write a limit outside the range of measurement.fUpperControlLim(out): Returns the upper control limit. Raises an exception if the signal is not analog, or if you are trying to write a limit outside the range of measurement.bIsControllable(out): indicates if the signal is controllable.bIsControlBlocked(out): indicates if the signal is control blocked.bIsForced As Boolean(out): indicates if the signal is forced.
ReadAttributesSyntax: ReadAttributes(bIsInverted As Boolean, bIsEvent As Boolean, bIsTimeStamped As Boolean, bIsBlocked As Boolean, bIsControllable As Boolean, bIsControlBlocked As Boolean, bIsForced As Boolean) As Boolean
Returns FALSE if Variables:Valid is FALSE, else TRUE if the variable is binary. In that case, the properties of the variable are available in the parameters.
bIsInverted(out): returns TRUE if the signal is inverted. Raises an exception if the signal is not binary.bIsEvent(out): returns TRUE if the signal is an event or an alarm. Raises an exception if the signal is not binary.bIsTimeStamped(out): returns TRUE if the signal is an alarm time stamped in the controller. Raises an exception if the signal is not binary.bIsBlocked(out): returns TRUE if the signal is blocked. Raises an exception if the signal is not binary.bIsControllable(out): returns TRUE if the signal is controllable.bIsControlBlocked(out): returns TRUE if the signal is control blocked.bIsForced(out): returns TRUE if the signal is forced.
112 3BSE035041R4001
Section 6 Openness Properties and Methods for the Class Variable
ReadLimitSyntax: ReadLimit(lLimitNumber As Long,lTypeLimiter As Long, fOnLimit As Double, fOffLimit As Double) As Boolean
Returns FALSE if Variables:Valid is FALSE, else TRUE if the variable has a stated limiter. In that case, the properties of the limiter are available in the parameters.
lLimitNumber(in): state the sequence number of the limiter from 1 and up to 8, for the limiters enabled in the object, in consecutive order from top to bottom on the limiter tab in the Configuration Tools. For more info on Configuration Tools, see the PLC Connect online help.lTypeLimiter(out): has the value 0 for minimum-limiter and the value 1 for max.fOnLimit(out): fOnLimit is the limit where the alarm is activated.fOffLimit(out): is the limit where the alarm is deactivated.
WriteLimitSyntax: WriteLimit(lLimitNumber As Long,lTypeLimiter As Long, fOnLimit As Double, fOffLimit As Double) As Long
Returns 32101 (LONG) if Variables:Valid is FALSE, else TRUE if the variable has a stated limiter and the stated parameters are approved. Note that this will only influence the primary memory. The configuration is not updated. The parameters are interpreted according to ReadLimit above.
vbUnsupported returned if arg LimitNumber + Limittype is out of range, that is, not in [1,4] and [0,1] respectively.
lLimitNumber(in): states the sequence number of the limiter from 1 and upwards for the limiters enabled in the object, in consecutive order from top to bottom on the limiter tab in the Configuration Tools.lTypeLimiter(in): has the value 0 for minimum-limiter and the value 1 for max.fOnLimit(in): fOnLimit is the limit where the alarm is activated. fOffLimit(in): is the limit where the alarm is deactivated.
Return value 32009 vbCalcViolateControlLimits is returned when limits are exceeded; however limits are written anyway.
3BSE035041R4001 113
Conditions When Writing a Variable Value Section 6 Openness
ForceLockSyntax: ForceLock() As Long
Called by an application if it needs to Lock a certain variable. The Lock will be held until it is released by the application or until another application forces the Lock. If the variable is already locked by other application, this call will force the Lock.
ReleaseLockSyntax: ReleaseLock() As Long
Called by an application when it wants to release a Lock for the variable. If an other application holds the Lock, the variable will remain Locked and the method will return vbLockedByOther (=32103).
LockedBySyntax: LockedBy( sNodeId As String, sUserId As String ) As Long
Method that returns the identification of the user, currently holding the Lock
sNodeId(out): name of the node where the Lock is held.SuserId(out): name of the user that holds the Lock.
Conditions When Writing a Variable Value
For the methods WriteValue and WriteLimit, the following is valid:
1. If the signal is blocked or forced nothing happens, but error status is returned.
2. If the signal is internal, the value is written unconditionally, no check is done on ”controllable”, ”control limits” or ”range of measurement”. A check is done, however, on control limits if the signal is controllable.
3. On an internal, real or integer signal, a check is performed on limiters.
4. On an internal binary signal, which is an event or an alarm, a possible change of state will be further event handled.
5. If the signal is external and analog it is checked that the signal is controllable and that the value is within the control limits. After this, the value is written to the controller. Possible limiters are not checked (it will happen when the new
114 3BSE035041R4001
Section 6 Openness Status Codes for Methods Returning a Value of the Type Long
value is read the next time). If control is not performed, due to any of the conditions, error status is returned instead.
6. If the signal is external and binary it is checked that the signal is controllable. Then the value is written to the controller. If the signal is an event or an alarm, a possible change of state is not event handled (it will happen when the new value is read the next time). If control is not performed, due to any of the conditions, error status is returned instead.
7. If a control is performed to the controller, or internally at an internal signal, and event logging of operator’s actions in the database is selected, the control is event logged.
Status Codes for Methods Returning a Value of the Type Long
Some methods are returning “Long”, that is WriteValue, WriteLimit. This could be used as a status check of the method, see Table 2.
Table 2. Status Codes
Value Description
32000 Success; if the method involves writing, the value has been written. All other status codes indicate that the value is not written.
32001 The variable cannot be found. The reason may be a misspelled name or a deploy has not been made after changes in the database.
32002 Type error; the value that is attempted to be written is not of the same type as the variable. Example: trying to write True to an integer variable.
32003 Not used.
32004 Attempting to access a variable that has become invalid due to deploy (this can occur when an application does not adhere to the rules.)
32005 The signal is forced.
32006 The signal is blocked.
32007 The signal is control blocked.
3BSE035041R4001 115
OPC Quality(In/Out) Section 6 Openness
OPC Quality(In/Out)
This flag represent the quality state for a variable’s data value.
OPC quality is defined as (OPC_QUALITY_MASK & opcquality) = OPC_QUALITY_GOOD(C0) or OPC_QUALITY_BAD(0x).
Deploy
When a deploy is made this will impact on the variable access.
To get the deploy to work properly, the application has to behave in the following manner (provided an application running cyclically):
1. Perform a running check of the return value for some call to Variable:ReadValue, alternatively Variables:Valid.
2. As long as deploy is not in progress, the return value is TRUE.
3. When the value turns FALSE (detect edge) the deploy will be made and all ”Variable” objects should then be set to “Nothing”, which will reset the COM objects in the RTDB.
4. Now, go over to reading cyclically Variables:Valid.
32008 The signal is not controllable.
32009 The value is outside the control limits.
32100 Deploy is in progress.
32101 Attempting to access a signal in a controller object or communication object.
32103 The variable is locked by another user or node.
32104 Attempt failed to lock the variable in the RTDB.
32105 LockedBy returned empty handed (vbNoLock).
Table 2. Status Codes (Continued)
Value Description
116 3BSE035041R4001
Section 6 Openness Notes on Variables
5. When this turns TRUE (detect edge), you should wait a while, for example 1-2 minutes, so that all signals are updated with process values. Thereafter all variables should be fetched again with Variables:Item, alternatively queued with Variables:Subscribe, after which the calculations may be resumed. Now, return to step 1.
The method above guarantees that the calculation program is synchronized with the variables, which in reality are available in the RTDB.
Notes on Variables
Valid is always TRUE, except during deploy. When deploy is in progress, all calculation activities are meaningless, and none of the methods should be called. As it is impossible to avoid calls the following applies:
• For all methods returning Boolean, FALSE is returned if deploy is in progress.
• For methods returning object, Nothing is returned.
• For properties and other methods, sensible (harmless and meaningless) default values are returned, such as 0, 0.0, FALSE.
• Properties like Lower can be read both via a method and via properties. Here, the properties are considered the “normal” way to read these properties. The methods should be considered a way to optimize the performance by reading several properties with the same call.
Sample Variable Access
This is a Visual Basic 6.0 sample, ReadWrite.vbp, which can be found in the directory \…\ABB Industrial IT\Operate IT\PLC Connect\Samples\PLCVariableAccess\ReadWrite.
Private ABBSystems As ABBOBJECTAUTOMATIONINTERFACESLib.ABBSystemsPrivate ABBSystem As ABBOBJECTAUTOMATIONINTERFACESLib.ABBSystemPrivate ABBObjects As ABBOBJECTAUTOMATIONINTERFACESLib.ABBObjects
3BSE035041R4001 117
Sample Variable Access Section 6 Openness
Private ObjectTypeGUIDs As AdsConfigHelper.ObjectTypeGUIDsPrivate ControlNetwork As AFWAOHINTERFACESLib.AfwObject
Private Variables As ADSSCADAHDLRLib.Variables
Private Variable1 As ADSSCADAHDLRLib.VariablePrivate Variable1_2 As ADSSCADAHDLRLib.VariablePrivate Variable2 As ADSSCADAHDLRLib.VariablePrivate Variable2_2 As ADSSCADAHDLRLib.VariablePrivate Variable3 As ADSSCADAHDLRLib.VariablePrivate Variable3_2 As ADSSCADAHDLRLib.VariablePrivate Variable4 As ADSSCADAHDLRLib.VariablePrivate Variable4_2 As ADSSCADAHDLRLib.Variable
Private bReadSucceeded As BooleanPrivate lWriteSucceeded As LongPrivate vntTemp As VariantPrivate vntLevel As VariantPrivate vntStatus As VariantPrivate vntMessage As VariantPrivate OPCQuality As Integer
Private Sub Form_Load()
Set Variables = New ADSSCADAHDLRLib.Variables
Set ABBSystems = New ABBOBJECTAUTOMATIONINTERFACESLib.ABBSystems
Set ABBSystem = ABBSystems.DefaultSystemSet ABBObjects = ABBSystem.ObjectsSet ObjectTypeGUIDs = New AdsConfigHelper.ObjectTypeGUIDs
ABBObjects.OfObjectType ObjectTypeGUIDs.conSCADAObjectsGroupType(adsCPLCConnect)
'Initialize/Connect to Generic Control NetworkSet ControlNetwork = ABBObjects.Object(0)Variables.Init2 ControlNetwork
118 3BSE035041R4001
Section 6 Openness Sample Variable Access
Set Variable1 = Variables.Item("Tank1.Level")Set Variable1_2 = Variables.Item("Tank2.Level")Set Variable2 = Variables.Item("Tank1.Temp")Set Variable2_2 = Variables.Item("Tank2.Temp")Set Variable3 = Variables.Item("Tank1.Valv1")Set Variable3_2 = Variables.Item("Tank2.Valv1")Set Variable4 = Variables.Item("Tank1.Message")Set Variable4_2 = Variables.Item("Tank2.Message")
End Sub
Private Sub Timer1_Timer()
bReadSucceeded = Variable1.ReadValue(vntTemp, OPCQuality)
If bReadSucceeded ThenvntTemp = vntTemp / 2lWriteSucceeded = Variable1_2.WriteValue(vntTemp,
OPCQuality)Else
MsgBox ("Temperature could not be read")End If
bReadSucceeded = Variable2.ReadValue(vntLevel, OPCQuality)
If bReadSucceeded ThenvntLevel = vntLevel * 2lWriteSucceeded = Variable2_2.WriteValue(vntLevel,
OPCQuality)Else
MsgBox ("Level could not be read")End If
bReadSucceeded = Variable3.ReadValue(vntStatus, OPCQuality)
If bReadSucceeded ThenlWriteSucceeded = Variable3_2.WriteValue(vntStatus,
OPCQuality)
3BSE035041R4001 119
Sample Subscribe Section 6 Openness
ElseMsgBox ("Could not read status")
End If
bReadSucceeded = Variable4.ReadValue(vntMessage, OPCQuality)
If bReadSucceeded Then'Do something with the message
'Send it back to another String signallWriteSucceeded = Variable4_2.WriteValue(vntMessage,
OPCQuality)
ElseMsgBox ("Could not read message")
End If
End Sub
Sample Subscribe
This is a Visual Basic 6.0 sample, Subscribe.vbp, which can be found in the directory \…\ABB Industrial IT\Operate IT\PLC Connect\Samples\PLCVariableAccess\Subscribe.
Private ABBSystems As ABBOBJECTAUTOMATIONINTERFACESLib.ABBSystemsPrivate ABBSystem As ABBOBJECTAUTOMATIONINTERFACESLib.ABBSystemPrivate ABBObjects As ABBOBJECTAUTOMATIONINTERFACESLib.ABBObjectsPrivate ObjectTypeGUIDs As AdsConfigHelper.ObjectTypeGUIDsPrivate ControlNetwork As AFWAOHINTERFACESLib.AfwObject
120 3BSE035041R4001
Section 6 Openness Sample Subscribe
Private Variables As ADSSCADAHDLRLib.Variables
Private vntValue As VariantPrivate strName As StringPrivate OPCQuality As IntegerPrivate blnQueue As BooleanPrivate dtnTimeStamp As DatePrivate lngCalcType As LongPrivate strVarParam As StringPrivate blnOverflow As Boolean
Private strTime As StringPrivate strEvent As String
Private Sub Form_Load()
Set Variables = New ADSSCADAHDLRLib.Variables
Set ABBSystems = New ABBOBJECTAUTOMATIONINTERFACESLib.ABBSystems
Set ABBSystem = ABBSystems.DefaultSystemSet ABBObjects = ABBSystem.ObjectsSet ObjectTypeGUIDs = New AdsConfigHelper.ObjectTypeGUIDs
ABBObjects.OfObjectType ObjectTypeGUIDs.conSCADAObjectsGroupType(adsCPLCConnect)
'Initialize/Connect to Generic Control NetworkSet ControlNetwork = ABBObjects.Object(0)Variables.Init2 ControlNetwork
If Variables.Valid ThenVariables.Subscribe 10, "Lorry.OK", FalsetmrTimer.Enabled = True
End If
End Sub
3BSE035041R4001 121
Reading and Writing Arrays of Data Section 6 Openness
Private Sub tmrTimer_Timer()
blnQueue = Variables.GetEvent(strName, vntValue, OPCQuality, _dtnTimeStamp, lngCalcType, _strVarParam, blnOverflow)
If blnQueue ThenstrTime = dtnTimeStampIf vntValue Then
strEvent = "Lorry in place"Else
strEvent = "Lorry disconnected"End If
End If End Sub
Reading and Writing Arrays of Data
The ReadValue and WriteValue methods described in ReadValue on page 108 and WriteValue on page 109, allows you only to access one variable at a time. The ReadValues and WriteValues methods allows you to read and write arrays of variables and their values in one call. These methods are not available for usage from Visual Basic, only C++, and are declared as shown below.
HRESULT WriteValues([in] unsigned long count,[in,size_is(count)] AwfObjectId* objectIds,[in,size_is(count)] VARIANT* vntValues,[in,size_is(count)] short* wOPCQualities, [out,size_is(,count)] LONG** results);
HRESULT ReadValues([in] unsigned long count,[in,size_is(count)] AwfObjectId* objectIds,[out,size_is(,count)] VARIANT** vntValues,[out,size_is(,count)] short** wOPCQualities, [out,size_is(,count)] BOOL** results);
122 3BSE035041R4001
Section 6 Openness Communication Server Pre Treatment
Communication Server Pre Treatment
Introduction
The functions described in this section refer to an interface for project specific variable pre treatment in the Communication Server.
The interface is implemented essentially as a COM Interface.
Variable Pre Treatment
When a new value is received from the driver, the Communication Server calls a default COM-interface in a DLL. In the DLL, project-specific calculations can be entered. The Communication Server is the client.
The interfaces only support signals and not the access of total objects.
Variable Pre Treatment
It is presumed that the calls are made with ”In process” (that is to DLL) COM for best performance and Visual Basic 6.0 is used to implement the DLL. The project type have to be ”Active X DLL”. The so-called “binary compatibility” must be used to prevent the Class IDs from changing, which would require relinking of the Communication Server. The DLL, PreTreat3.dll, is located in the folder …\ABB Industrial IT\Operate IT\PLC Connect\Samples\Pretreat3\Compatibility.
Figure 77. Variable Pre Treatment
3BSE035041R4001 123
Properties and Methods for the Variable Pre Treatment Section 6 Openness
The implementation of the methods must be fast (< 1ms), that is it is out of question to make database accesses, file operations or other time-consuming operations.
If both methods (“pre calculation” and “limit pre calculation”) are called, ValueChanged is called first. The value obtained from ValueChanged is then sent to ValueLimit (see the description of the methods below).
Properties and Methods for the Variable Pre Treatment
The interfaces listed in Table 3 have to be fulfilled by the DLL. There is a standard DLL, with standard handling, which is included in the system. The DLL is located in the located in the folder …\ABB Industrial IT\Operate IT\PLC Connect\Bin. This DLL may be exchanged by a project specific DLL.
The PreTreat3.dll is loaded by the Communication Server at program start and activated if found. By default, this DLL is not registered during the installation of PLC Connect. To use it, you have to register the DLL manually with the Regsvr32.exe. (Default folder is C:\Windows\System 32). Refer to the Windows documentation for more information on how to register a DLL.
The DLL cannot have any kind of user interface that require manual input, for example, clicking an OK button. This would halt program execution.
The DLL cannot make any call to the Variable Access interface described in PLC Connect Real Time Data Access on page 101.
Calls are automatically blocked when deploy is in progress.
Table 3. Interfaces
Class Method
PLCExternal5 Initialize()
PLCExternal5 ReInitialize()
PLCExternal5 OnlineNotification()
PLCExternal5 ValueChanged(…)
PLCExternal5 ValueLimit(…)
124 3BSE035041R4001
Section 6 Openness Properties and Methods for the Variable Pre Treatment
InitializeSyntax: Initialize(obj As ADSCSCOMMSRVLIB.AdsCsRtdVariable2)
Enables the DLL to make arbitrary preparations at start-up.
Obj is a callback interface that makes it possible to read and write to signals in the RTDB, see also Callback Interface on page 127.
ReInitializeSyntax: Reinitialize()
Enables the DLL to make arbitrary preparations after deploy. Must not run too long.
OnlineNotificationSyntax: OnlineNotification()
Called prior to a deploy (as opposed to ReInitialize that is called after a deploy). Lets the user application do any preparations necessary before a deploy.
ValueChangedSyntax: ValueChanged (sSignalName as String, vntProcessValue As Variant, vntPreviousValue As Variant, vntNewValue As Variant, OPCQuality As Integer, dtTimestamp as Date, lCalculationType As Long, sPreParam As String)
Is called when the value of the variable is changed. sSignalName is the variable in the format “<controller name>:<object name>.<signal name>”. vntProcessValue is the value from the Communication driver. vntNewValue is the value pre-treated by the DLL. vntPreviousValue is the previous value. OPCQuality(out): indicates the OPC quality of the variable. dtTimestamp is the date and time. lCalculationType is the selected calculation type. sPreParam is the entered pre calculation parameter, see Calculation Parameters for Pre Treatment on page 128. The method is
PLCExternal5 OnControl(…)
PLCExternal5 Terminate()
Table 3. Interfaces (Continued)
Class Method
3BSE035041R4001 125
Properties and Methods for the Variable Pre Treatment Section 6 Openness
responsible for assigning values to vntNewValue and OPCQuality before returning.
ValueLimitSyntax: ValueLimit(sSignalName as String, vntValue As Variant, OPCQuality As Integer, lCalculationType As Long, sPreLimParam As String, bEnableLimiter1 As Boolean, lTypeLimiter1 As Long, fLimit1 As Single, fHysteresis1 As Single, bEnableLimiter2 As Boolean, lTypeLimiter2 As Long, fLimit2 As Single, fHysteresis2 As Single, bEnableLimiter3 As Boolean, lTypeLimiter3 As Long, fLimit3 As Single, fHysteresis3 As Single, bEnableLimiter4 As Boolean, lTypeLimiter4 As Long, fLimit4 As Single, fHysteresis4 As Single, bActivateAlarm1As Boolean, bActivateAlarm2 As Boolean, bActivateAlarm3 As Boolean, bActivateAlarm4 As Boolean)
Is called when the value of the variable is changed. sSignalName is the variable in the format “<controller name>:<object name>.<signal name>”. vntValue is the value. OPCQuality(out): indicates the OPC quality of the variable. lCalculationType is the selected calculation type. sPreLimParam is the entered limit pre calculation parameter, see Calculation Parameters for Pre Treatment on page 128. The following 12 parameters are the default data in the database. The method is responsible for assigning values to bActivateAlarmx and OPCQuality before returning. If bActivateAlarmx is true, the alarm is activated after returning.
OnControlSyntax: OnControl(sSignalName as String, vntValue As Variant, vntPreviousValue As Variant, vntNewValue As Variant, OPCQuality As Integer, dtTimestamp as Date, lCalculationType As Long, sPreParam As String)
Is called when the value of the variable is changed by a client. sSignalName is the variable in the format “<controller name>:<object name>.<signal name>”. vntValue is the value that the client has set. vntPreviousValue is the previous value. OPCQuality(out): indicates the OPC quality of the variable. dtTimestamp is the date and time. lCalculationType is the selected calculation type. sPreParam is the entered pre calculation parameter, see Calculation Parameters for Pre Treatment on page 128. The method is responsible for assigning value to vntNewValue before returning.
126 3BSE035041R4001
Section 6 Openness Callback Interface
TerminateSyntax: Terminate()
Enables the DLL to make arbitrary preparations at termination.
Callback Interface
The callback interface has two methods for accessing the RTDB: ReadValue and WriteValue.
ReadValue
Syntax: ReadValue (sVarName As String, iProperty As Long, vntValue As Variant, OPCQuality As Integer, dtTimestamp as Date) As Long
Read the property value of a variable. Returns less than zero if the variable cannot be read.
sVarName(in) is the variable name in the format “<controller name>:<object name>.<signal name>”. iProperty(in) is the property number in the signal PCA. “1” is the value property of the signal. vntValue(out) returns the value of the property. OPCQuality(out): indicates the OPC quality of the variable. dtTimestamp is the date and time.
WriteValue
Syntax: WriteValue (sVarName As String, iProperty As Long, vntValue As Variant, OPCQuality As Integer, dtTimestamp as Date) As Long
Writes the property value of a variable. Returns less than zero if the variable cannot be written.
sVarName(in) is the variable name in the format “<controller name>:<object name>.<signal name>”. iProperty(in) is the property number in the signal PCA. “1” is the value property of the signal. vntValue(in) is the value of the property. OPCQuality(in): indicates the OPC quality of the variable. dtTimestamp is the date and time.
3BSE035041R4001 127
Configure Calculation Parameters Section 6 Openness
Configure Calculation Parameters
Calculation Types
Calculation types are user defined private data. It is possible to select a type when you configure calculation parameters for a signal. If desired, you can use the selected calculation types to determine the type of function (in your own application) to be performed for a given signal. By selecting a certain type of calculation, the same type of calculation (for example linearization) can be performed on a collection of signals without having to keep a record of exactly which signal to calculate.
Calculation Parameters for Pre Treatment
Calculation parameters are user defined private data. These parameters can have arbitrary contents, and can be used to parameterize a certain calculation (in your own application).
To configure calculation parameters:
1. Start a Plant Explorer Workplace.
2. Select the process object with the signal from the Control structure.
Table 4. Calculation Parameters
Parameter Type Comment
Pre calculation parameter string Sent to the variable pre treatment interface. Used in the method ValueChanged (the parameter sPreParam).
Limit pre calculation parameter string Sent to the variable pre treatment interface. Used in the method ValueLimit (the parameter sPreLimParam).
You can only perform calculations on signals that are I/O:s, and not on SoftPoints.
128 3BSE035041R4001
Section 6 Openness Sample Pre Treatment
3. Select the signal.
4. Select the Signal Configuration aspect.
5. Select the Common tab, and then configure calculation parameters. Click Show Help for more information.
Sample Pre Treatment
This is a Visual Basic ActiveX DLL project, PreTreat3.vbp, which can be found in the folder …\ABB Industrial IT\Operate IT\PLC Connect\Samples\PreTreat3.
Public Sub ValueChanged (sSignalName as String, vntProcessValue as Variant, vntPriviousValue As Variant, vntNewValue As Variant, OPCQuality As Integer, lCalculationType As Long, sPreParam As String)
Select Case lCalculationTypeCase 1 ‘ Filter
vntNewValue = 0.7 * vntPreviousValue + 0.3 * vntProcessValueCase 2 ‘ Volume
VntNewValue = vntProcessValue * 3.14 * 4 ‘ Level * pi * r2Case 3 ‘ Linear
VntNewValue = sqr(vntProcessValue) * 256 ‘Flow meter sensorEnd Select
End Sub
Sample Limit Calculation
This is a Visual Basic ActiveX DLL project, PreTreat3.vbp, which can be found in the folder …\ABB Industrial IT\Operate IT\PLC Connect\Samples\PreTreat3.
Public Sub ValueLimit (sSignalName as String, vntValue As Variant, OPCQuality As Integer,lCalculationType As Long, sPreLimParam As String, bEnableLimiter1 As Boolean, lTypeLimiter1 As Long, fLimit1 As Single, fHysteresis1 As Single, bEnableLimiter2 As Boolean, lTypeLimiter2 As Long, fLimit2 As Single, fHysteresis2 AsSingle, bEnableLimiter3 As Boolean, lTypeLimiter3 As Long, fLimit3 As Single,
3BSE035041R4001 129
Event Server Pre Treatment Section 6 Openness
fHysteresis3 As Single, bEnableLimiter4 As Boolean, lTypeLimiter4 As Long, fLimit4 As Single, fHysteresis4 As Single, bActivateAlarm1 As Boolean, bActivateAlarm2 As Boolean, bActivateAlarm3 As Boolean, bActivateAlarm4 As Boolean)
bActivateAlarm1 = (vntValue >= fLimit1) And (vntValue =< fLimit2) ‘Within the forbidden zone
End Sub
Event Server Pre Treatment
Introduction
The Event DLL interface makes it possible to modify events before they enter the Event Server.
All events – that is status transition and operator actions – can be modified in a project-specific way with this interface. Most attributes of a signal can be modified in the DLL, which is called before the event is finally dealt with in the Event Server. Each type of event has its method in the DLL interface.
DLL Interface
The interfaces listed in Table 5 have to be implemented by the DLL. This is a standard DLL with standard handling and it is included in the system. The DLL,
In a real implementation, the hysteresis should be considered!
All transition times in the event handling DLL are in UTC time.
130 3BSE035041R4001
Section 6 Openness DLL Interface
PreEvent.dll, is located in the folder …\ABB Industrial IT\Operate IT\PLC Connect\Bin. The DLL can be substituted with a project-specific DLL.
Change of State
Change of state means that a binary signal, defined as event or alarm, changes its value from 0 to 1 or from 1 to 0.
The Event Server calls the method ChangeOfState. The parameters in Table 6 are included in the method call.
Table 5. Interfaces
Class Method
EventExternal Initialize()
EventExternal ChangeOfState(…)
EventExternal AcknowledgeEvent(…)
EventExternal AlterEventMonitoring(…)
EventExternal OpForce(…)
EventExternal AlterControlMonitoring(…)
EventExternal OpControl(…)
The PreEvent.dll is loaded by the Event Server at program start and activated if found.
Table 6. ChangeOfState Parameters
Parameter Meaning Limitation
sVarName Name of signal Read only
dtTransitionTime Time for event (in UTC time) Read only
lCurrentState Current state Read only
lNewState New state
3BSE035041R4001 131
DLL Interface Section 6 Openness
lSeverity Priority
lClass Alarm class
lEventType Event type
sEventText Event text
lEventTextGroup Number of event text group
bLog Logging of event, yes or no TRUE or FALSE
bPrint For future use
vntPrinters For future use
vntOleServers Name of the OLE servers
vntSummaryAlarms Name of the summary alarms
lDelay Time delay in seconds
lNoOfTransitions Number of transitions after acknowledgement
Greater than or equal to 0
sNotifyAddress When detected notify address Set at acknowledgement
sRecommendedView For future use
Table 6. ChangeOfState Parameters (Continued)
Parameter Meaning Limitation
132 3BSE035041R4001
Section 6 Openness DLL Interface
Acknowledgement of Event
The Event Server calls the method AcknowledgeEvent. The parameters in Table 7 are included in the method call.
Blocking/Deblocking of Event
The Event Server calls the method AlterEventMonitoring. The parameters in Table 8 are included in the method call.
Table 7. AcknowledgeEvent Parameters
Parameter Meaning Limitation
sVarName Name of signal Read only
dtTransitionTime Time for event (in UTC time)
Read only
lSeverity Priority Read only
lClass Alarm class Read only
lEventType Event type 1, 2 or 3; Read only
bLog Logging, yes or no TRUE or FALSE
bPrint For future use
vntOpPrinters For future use
vntOleServers Name of the OLE servers
sAckAddress When acknowledged notify address
Table 8. AlterEventMonitoring Parameters
Parameter Meaning Limitation
sVarName Name of signal Read only
dtTransitionTime Time for event (in UTC time) Read only
3BSE035041R4001 133
DLL Interface Section 6 Openness
Forcing of Signal Values
The Event Server calls the method OpForce. The parameters in Table 9 are included in the method call.
bEnable TRUE if blockedFALSE if deblocked
lSeverity Priority Read only
lClass Alarm class Read only
lEventType Event type 1, 2 or 3. Read only
bLog Logging, yes or no TRUE or FALSE
bPrint For future use
vntOpPrinters For future use
vntOleServers Name of the OLE servers
Table 9. OpForce Parameters
Parameter Meaning Limitation
sVarName Name of signal Read only
dtTransitionTime Time for event (in UTC time) Read only
bEnable TRUE if forcedFALSE if force free
Read only
bLog Logging, yes or no TRUE or FALSE
bPrint For future use
Table 8. AlterEventMonitoring Parameters (Continued)
Parameter Meaning Limitation
134 3BSE035041R4001
Section 6 Openness DLL Interface
Blocking/Deblocking of a Signal's Control Possibilities
The Event Server calls the method AlterControlMonitoring. The parameters in Table 10 are included in the method call.
vntOpPrinters For future use
vntOleServers Name of the OLE servers
Table 10. AlterControlMonitoring Parameters
Parameter Meaning Limitation
sVarName Name of signal Read only
dtTransitionTime Time for event (in UTC time) Read only
bEnable TRUE if blockedFALSE if deblocked
Read only
bLog Logging, yes or no TRUE or FALSE
bPrint For future use
vntOpPrinters For future use
vntOleServers Name of the OLE servers
Table 9. OpForce Parameters (Continued)
Parameter Meaning Limitation
3BSE035041R4001 135
DLL Interface Section 6 Openness
Control of Signal Value
The Event Server calls the method OpControl. The parameters in Table 11 are included in the method call.
Notes on the Use of the DLL and the Methods
It is presumed that the calls are made with ”In process” (that is to DLL) COM for best performance.
• Visual Basic 6.0 is used for implementation of the DLL. The project must be of type ”ActiveX DLL”. In the PLC Connect distribution a code example is enclosed, with all settings done, and a ready-to-run DLL for the Event Server to make calls to. The so-called binary compatibility should be used to prevent Class ID from changing, which would cause relinking of the Event Server.
• The implementation of the methods must be fast (<1 ms), that is it is out of question to make database accesses, file operations, or other time-consuming operations.
Table 11. OpControl Parameters
Parameter Meaning Limitation
sVarName Name of signal Read only
dtTransitionTime Time for event (in UTC time) Read only
bLog Logging, yes or no TRUE or FALSE
bPrint For future use
vntOpPrinters For future use
vntOleServers Name of the OLE servers
The DLL cannot have any kind of user interface that require manual input, for example, clicking an OK button. This would halt program execution.
136 3BSE035041R4001
Section 6 Openness Event Types
• It is prohibited to do database openings, except for in the Initialize-method. It is, however, possible to collect variables and so on from the RTDB.
• The DLL is supposed to catch and take care of all errors. It must not propagate errors to the Event Server.
Event Types
The event types are listed in Table 12.
Event States
Table 13 lists possible event states.
Table 12. Event Types
Event type 1 AlarmAn event that can be acknowledged both when active and not active.
Event type 2 EventCannot be acknowledged.
Event type 3 Event with acknowledgementMay be acknowledged when active and will then assume the state not active, and acknowledged.
Table 13. Event States
Event State Description
1 Disabled
2 Inactive and acknowledged
3 Inactive and not acknowledged
4 Active and acknowledged
5 Active and not acknowledged
6 Auto disabled by the system
3BSE035041R4001 137
Initialize Section 6 Openness
InitializeSyntax: Initialize()
Enables the DLL to make arbitrary preparations at start-up. Is called when the Event Server is started.
ChangeOfStateSyntax: ChangeOfState(sVarName As String, dtTransitionTime As Date, lCurrentState As Long, lNewState As Long,lSeverity As Long, lClass As Long,lEventType As Long, sEventText As String,lEventTextGroup As Long, bLog As Boolean,bPrint As Boolean, vntPrinters As Variant,vntOleServers As Variant, vntSummaryAlarms As Variant,lDelay As Long, lNoOfTransitions As Long,sNotifyAddress As String, sRecommendedView As String)
Called when the value of the event variable sVarName is changed. The time for the event is dtTransitionTime and the state of the variable is changed from lCurrentState to lNewState.
AcknowledgeEventSyntax: AcknowledgeEvent(sVarName As String, dtTransitionTime As Date, lSeverity As Long, lClass As Long, lEventType As Long, bLog As Boolean, bPrint As Boolean, vntOpPrinters As Variant, vntOleServers As Variant, sAckAddress As String)
Called when the event variable sVarName is acknowledged. The time for the acknowledgement is dtTransitionTime.
AlterEventMonitoringSyntax: AlterEventMonitoring(sVarName As String,dtTransitionTime As Date, bEnable As Boolean,lSeverity As Long, lClass As Long, lEventType As Long, bLog As Boolean, bPrint As Boolean, vntOpPrinters As Variant,vntOleServers As Variant)
Called when the event variable sVarName is event blocked or event deblocked. The time for the action is dtTransitionTime.
138 3BSE035041R4001
Section 6 Openness OpForce
OpForceSyntax: OpForce(sVarName As String, dtTransitionTime As Date,bEnable As Boolean, bLog As Boolean,bPrint As Boolean, vntOpPrinters As Variant,vntOleServers As Variant)
Called when the value of the variable sVarName is forced or force free. The time for the action is dtTransitionTime.
AlterControlMonitoringSyntax: AlterControlMonitoring(sVarName As String,dtTransitionTime As Date, bEnable As Boolean,bLog As Boolean, bPrint As Boolean,vntOpPrinters As Variant, vntOleServers As Variant)
Called when the variable sVarName is control blocked or control deblocked. The time for the action is dtTransitionTime.
OpControlSyntax: OpControl(sVarName As String, dtTransitionTime As Date, bLog As Boolean, bPrint As Boolean,vntOpPrinters As Variant, vntOleServers As Variant)
Called when the operator or an external program changes the value of the variable sVarName, for example a calculation program. The time for the action is dtTransitionTime.
Limitations for sVarName
The variable name consists of object name and signal name separated by a “.” sign.
3BSE035041R4001 139
Limitations for lNewState Section 6 Openness
Limitations for lNewState
Permitted changes of state for event type 1 are listed in Table 14.
Permitted changes of state for event type 2 are listed in Table 15.
Permitted changes of state for event type 3 are listed in Table 16.
Table 14. State Changes for Event Type 1
inactive + not acknowledged -> active + not acknowledged
inactive + not acknowledged -> active + acknowledged
inactive + acknowledged -> active + not acknowledged
inactive + acknowledged -> active + acknowledged
inactive + acknowledged -> inactive + acknowledged
active + acknowledged -> inactive + acknowledged
active + not acknowledged -> inactive + not acknowledged
active + not acknowledged -> inactive + acknowledged
Table 15. State Changes for Event Type 2
inactive + acknowledged -> active + acknowledged
inactive + acknowledged -> inactive + acknowledged
active + acknowledged -> inactive + acknowledged
Table 16. State Changes for Event Type 3
inactive + acknowledged -> active + Not acknowledged
inactive + acknowledged -> active + acknowledged
inactive + not acknowledged -> inactive + Acknowledged
active + not acknowledged -> inactive + acknowledged
140 3BSE035041R4001
Section 6 Openness Limitations for lSeverity
Limitations for lSeverity
A number between 1and 1000; only possible to change when the alarm occurs for the first time, that is the lCurrentState is inactive and acknowledged.
Limitations for lClass
A number between 0 and 9999; only possible to change when the alarm occurs for the first time, that is the lCurrentState is inactive and acknowledged.
Limitations for lEventType
1, 2 or 3; 0 if not alarm; only possible to change when the alarm occurs for the first time, that is the lCurrentState is inactive and acknowledged.
Limitations for lDelay
Greater than or equal to 0; for inactive alarms it means the remaining time of the delay.
Sample Event DLL Interface
This is a Visual Basic ActiveX DLL project, PreEvent.vbp, which can be found in the folder …\ABB Industrial IT\Operate IT\PLC Connect\Samples\PreEvent.
When the Maintenance switch is detected, the alarm from Pump1 is acknowledged.
Start up code:Public Sub Initialize()
On Error GoTo ErrInitialize'Create Com objectSet Variables = New VariablesExit Sub
ErrInitialize:End Sub
Change of state:Public Sub ChangeOfState(sVarName As String, dtTransitionTime As Date, lCurrentState As Long, lNewState As Long, lSeverity As Long, _ lClass As Long, lEventType As Long, sEventText As
3BSE035041R4001 141
Sample Event DLL Interface Section 6 Openness
String, _ lEventTextGroup As Long, bLog As Boolean, bPrint As Boolean, _ vntPrinters As Variant, vntOleServers As Variant, vntSummaryAlarms _ As Variant, lDelay As Long, lNoOfTransitions As Long, sNotifyAddress As String, sRecommendedView As String)Dim vntValue As VariantDim OPCQuality As IntegerDim bOK As Boolean
On Error GoTo ErrChangeOfState'Detection of status of Maintenance$Active switchbOK = Variables.ReadValue("Maintenance$Active", vntValue,OPCQuality)If bOK And CStr(vntValue) = "True" Then'Detection of event Pump1$Alarm
If sVarName = "Pump1$Alarm" ThenIf lNewState = 3 Then ' inactive and unacknowledge'Change of alarmstatus of event
lNewState = 2 ' inactive and acknowledgelEventType = 2
ElseIf lNewState = 5 Then ' active and unacknowledge'Change of alarmstatus of event
lNewState = 4 ' active and acknowledgelEventType = 2
End IfEnd If
End IfExit Sub
ErrChangeOfState:
End Sub
142 3BSE035041R4001
Section 6 Openness Event Extended Options
Event Extended Options
Introduction
In PLC Connect an application, called Special Application, can be set up to execute in the case of an event. The Special Application is called when the signal the event belongs to, changes state. Several events can refer to the same Special Application. The application that makes the call to the Special Application is EventExtendedOptions. The EventExtendedOptions communicates with a Special Application through an OLE interface. A Special Application can be written in different languages. In this document only examples in Visual Basic will be described.
To be able to use the application, you also have to:
• Add the Event Extended Options server process to the PLC Server. For more information on how to do this, refer to the information on PLC Server in the PLC Connect online help.
• Configure the application for each relevant control network. This is done under the Event Extended Options tab of Alarm Event Settings aspects. For more information, refer to the PLC Connect online help.
OLE Interface
Every Special Application must have the Configure and ChangeState functions, and the Special Application can, when needed to, call the WriteState function.
Configure
The function Configure makes it possible to save a certain setting for a Special Application. It is called when you configure your Special Application in an Alarm Event Settings aspect. The Special Application must display a dialog box for any special data input needed. PLC Connect will take care of storing this data in the configuration.
3BSE035041R4001 143
OLE Interface Section 6 Openness
The parameters are described in Table 17.
The return value is of Boolean type. The function returns TRUE if data should be saved.
ChangeState
The function ChangeState is called by the EventExtendedOptions when a signal with a Special Application event changes state. Note that the Special Application is required to return immediately after this function is called. The Special Application may not process the information before returning. It must store the information in some way and process later from a timer call or in a separate thread.
The parameters are described in Table 18.
Table 17. Configure Parameters
Parameter Description
String pstrPrivateData String describing the Special Application, max. 1000 byte. Upon entry to the function this text string is the last text string this Special Application set up for this event. Upon leaving the function, this text string must contain the new text information from the application for this event.
Long hParentWnd Handle to the main window. The special application can use this handle as the parent of the dialog box it creates, if possible.
Table 18. ChangeState Parameters
Parameter Description
String strPrivateData String describing the setting of the Special Application called (compare with the Configure function).
String strTagName The name of the signal the event relates to.
144 3BSE035041R4001
Section 6 Openness OLE Interface
The return value of the function is of Boolean type. It is important that a Special Application returns the value TRUE as soon as the application has handled a ChangeState call. If the value FALSE is returned, a new call to ChangeState with the same value of the parameters will take place.
WriteState
EventExtendedOptions has a function called WriteState, which a Special Application can call. This function is called if the state of a signal should be changed, for example you can activate/deactivate an alarm. Notice that it is only the
String strParentObject The name of the parent object the signal above belongs to.
Integer iItemNum The item number of the signal the event relates to in the parent object.
Integer iPriority The event priority. Is only applicable for alarms.
Integer iClass The event class. Is only applicable for alarms.
String strGroupText The event group text.
Integer iEventType The event type which specifies how an alarm shall be treated:
1 = Normal alarm ON, OFF, shall be acknowledged.
2 = Treated as an event ON,OFF, no acknowledge.
3 = Disappears with acknowledge ON, shall be acknowledged.
String strEventText The event text, which describes the event.
Boolean iChangeState True if the event is turning on, else FALSE.
Variant vValue For future use.
Date dTransitionTime Time and date of the event in local time.
Table 18. ChangeState Parameters (Continued)
3BSE035041R4001 145
OLE Interface Section 6 Openness
state of binary signals you can change. An instance of “AdsAeEventExtendedOptions.UPDATEEVENT” should be created by Special Application, to be able to access the function.
The parameters are described in Table 19.
The return value of the function is of Boolean type. WriteState returns TRUE if the call was successful, otherwise it returns FALSE. Note that the function should be used with caution. It is not recommended, for example, to generate showers of alarms with this function, because of high CPU load.
Windows Registry Database
A Special Application must be registered in the Windows registry database in order to inform PLC Connect that the application exists. Most programs register by themselves the first time they are started. Besides the normal registration one more key must be created:
HKEY_CLASSES_ROOT\EventInt.Document\EventServerCompatible
Table 19. WriteState Parameters
Parameter Description
String strAppName Special application name
String strTagName The name of the signal the event relates to in the format “ObjectName SignalName”.
Integer iChangeState The state of the signal. 3 = signal ON, 4 = signal OFF.
String strEventText The event text.
String strUser For future use.
String strPassword For future use.
String strOptions For future use.
Variant vValue For future use.
Date dTransitionTime Time and date of the event (in local time).
146 3BSE035041R4001
Section 6 Openness OLE Interface
where
• “EventInt.Document” is the name of the Special Application.
• “EventServerCompatible” is the key you are installing.
The key can be created in the Registry Editor. Select Start > Run and enter regedit in the Open box to open the Registry Editor.
Create the key with the Special Application, see the code procedures Main and SaveToDataRegister in Example on page 148 for an implementation example.
Notes on the Special Application
It is highly suggested that the Special Applications is an “OLE In Proc Procedure” as opposed to normal OLE. The “In Proc Procedure” is about 10 times faster than normal OLE.
3BSE035041R4001 147
Example Section 6 Openness
Example
Below follows an example of a Special Application created in Visual Basic. First a project with the following properties is created, see Figure 78.
In order to register the application in a correct way, a procedure called Main in a global module with the following appearance is created.
Sub Main()SaveToDataRegister("Test.EventOleServer\EventServerCompatible", "", HKEY_CLASSES_ROOT)End Sub
The procedure SaveDataToRegister is described at the end of the example.
Figure 78. Project Properties Dialog Box
148 3BSE035041R4001
Section 6 Openness Example
A class called EventOleServer is created with the following properties, see Figure 79.
In the class EventOleServer the procedures below are created:
Public Function Configure(ByRef strPrivateData As String, _hParentWnd As Long) As Integer
strTextToReturn = strPrivateData'Local copy of strPrivateData'must be modal!!!ConfigurationForm.Show 1strPrivateData = strTextToReturn'strTextToReturn is edited in the formConfigure = iReturnValueOK'<>0 if click OK, 0 if click CANCEL
End Function
Public Function ChangeState(strPrivateData As String, _strTagName As String, strParentObject As String, iItemNum As Integer, iPriority As Integer, iClass As Integer, strGroupText As String, iEventType As Integer, strEventText As String, iChangeState As Integer, vValue As Variant, tTransitionTime As Date) As Boolean
'ChangeState calledChangeState = TRUE
Figure 79. EventOleServer Properties Dialog Box
3BSE035041R4001 149
Example Section 6 Openness
'If FALSE a new call is made with the same values 'of the parameters!!!!
End Function
An example on how to activate an alarm (presuming that “TestObject.TestSignal” is defined as an alarm).
Public Function SetSignal()Dim oEventObject As ObjectDim strAppName As String, strTagName As String,strEventText As StringDim strUser As String, strPassword As String, strOptions AsStringDim iChangeState As IntegerDim vValue As VARIANTDim dTransitionTime As Date'Create OLE-objectSet oEventObject =
CreateObject("AdsAeEventExtendedOptions.UPDATEEVENT")strAppName = ""strTagName = "TestObject.TestSignal"strEventText = "TestSignal On"strUser = ""strPassword = ""strOptions = ""iChangeState = 3 'Only 3=ON or 4=OFFvValue = ""dTransitionTime = Now()If oEventObject.WriteState(strAppName, strTagName,
iChangeState, strEventText, strUser, strPassword,strOptions, vValue, dTransitionTime) Then'WriteState Ok
Else'WriteState Not Ok
End IfEnd Function
The application must be executed once before it functions as a Special Application, because then it is registered in the Windows registry database.
150 3BSE035041R4001
Section 6 Openness Example
Below is the source code to the function SaveDataToRegister, which is used to create a key in Windows registry database.
' -----------------' ADVAPI32' -----------------' function prototypes, constants, and type definitions' for Windows 32-bit Registry APIGlobal Const HKEY_CLASSES_ROOT = &H80000000Global Const HKEY_CURRENT_USER = &H80000001Global Const HKEY_LOCAL_MACHINE = &H80000002Global Const HKEY_USERS = &H80000003Global Const HKEY_PERFORMANCE_DATA = &H80000004Global Const REG_SZ = &H1Declare Function RegSetValue Lib "advapi32" Alias "RegSet-ValueA" (ByVal hLKey As Long, ByVal lpSubLKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As LongOption ExplicitFunction SaveToDataRegister(sClass As String, sData As String, Optional lGivenKey As Variant) As Long'The return value is the value the API function returns. See RegSetValue in the API help file for more information.
Dim hLKey As Long, lpType As Long, lpcbData As Long,sData-NullTerminated As StringDim sClassNullTerminatedsClassNullTerminated = sClass & Chr$(0)If IsMissing(lGivenKey) Then
hLKey = HKEY_CURRENT_USERElse
hLKey = lGivenKeyEnd IflpType = REG_SZIf sData = "" Then
sData = " "End IfsDataNullTerminated = sData & Chr$(0)lpcbData = Len(sDataNullTerminated)
3BSE035041R4001 151
OLE DB Provider for Events Section 6 Openness
SaveToDataRegister = RegSetValue(hLKey,sClassNull-Terminated, lpType, sData, lpcbData)
End Function
OLE DB Provider for Events
Introduction
PLC Connect provides an OLE DB interface to the saved event data. The purpose of the provider is to make it easy for an application to get data as events and system messages from the System Message. The provider parses a command text, specified by the application, and returns data according to the command.
The application can be written in, for example, C++, Visual Basic or any program language that can access the OLE DB interface to get data from the System Message.
Implementation Notes
The application should set up an ADODB.Connection and an ADODB.Recordset. The provider of the ADODB object should be connected to “SysMsgProvider.Provider.1”. Opening the recordset and supplying the command text, will return the messages that fits the filter in the command.
Command Syntax
The command text has the following syntax:
start=date1,stop=date2,lopri=n1,hipri=n2,vmode=m
where
• “date1” and “date2” is on the format “YYYY-MM-DD HH:MM:SS”.
• “date1” is less or equal to “date2”.
• “date1” and “date2” each must be 19 characters long.
152 3BSE035041R4001
Section 6 Openness Implementation Notes
• “date1” and “date2” can also be null, that is, “start=null, stop=null”. This is only possible if both dates are null. If so, the priority becomes the only valid search criteria.
• “n1” and “n2” are integers from 1 to 1000.
• “n1” is less or equal to “n2”.
• “m” is an integer from 0 to 1, where 0 means PLC Connect events and 1 means System events.
• All 5 parameters must be defined. The parameters could be in an arbitrary order.
• Any reserved word, that is, start, stop, lopri, hipri and vmode, can be in lower- or uppercase letters.
Recordset Contents
The recordset returns events and system messages as records with the field listed in Table 20.
Table 20. Record Fields
Record field Data type
Message Time Date
Object Name Char (256)
Class Integer
Priority Integer
New Value Char (256)
Previous Value Char (256)
Blocked Repetitive Boolean
Category Char (256)
Comment Char (256)
3BSE035041R4001 153
PLC Connect Properties Section 6 Openness
PLC Connect Properties
Introduction
Most properties of the different configuration aspects can be accessed from outside PLC Connect, for example via OPC or an external program such as Bulk Data Manager. Some properties can only be viewed, others can be updated with new values.
Accessible Properties
Accessible properties of the configuration aspects are described below:
• Location: indicates where in the aspect the property is set or its value viewed when you work in Plant Explorer.
• Writable: if the property is writable or not, that is, if its value can be changed.
Alarm Event Settings Aspect
Text Char (256)
User Char (256)
Property Name LocationData Type
Writable Comment
Server Data Event tab
LimitAutoDisable Limit auto disable box Integer Yes
Table 20. Record Fields (Continued)
154 3BSE035041R4001
Section 6 Openness Accessible Properties
PLC Controller Configuration Aspect
Process Object Configuration Aspect
Signal Configuration Aspect
Property Name LocationData Type
Writable Comment
CommInfo Communication information box
String Yes
DriverInfo (not shown) String No
FileName (not shown) String Yes
Property Name LocationData Type
Writable Comment
ObjectInfo Object information box String Yes
Property Name LocationData Type
Writable Comment
IsInstance (not shown) Boolean No Whether it is a signal or signal type
ID tab
ItemType Variable type box Integer No Binary = 0Integer = 1Real = 2String = 3
ItemUsage Not Connected/Connected option buttons
Integer Yes Internal = 0External = 1
Address Address box String Yes
3BSE035041R4001 155
Accessible Properties Section 6 Openness
Common tab
UseDefSignalValues Use default signal values check box
Boolean Yes
Inverted Inverted check box Boolean Yes
UpdateInterval Update interval box Integer Yes
Calculations dialog box
CalcEnabled Accessible for data access check box
Boolean Yes
CalcTypeNo Calculation type drop-down list Integer Yes
CalcEdge Edge selection box Integer Yes Leading = 0Trailing = 1Both = 2
CalcHysteresis Hysteresis box Real Yes
CalcParameter Left-hand Parameter box String Yes
CalcEnablePreCalc Enable pre treatment check box
Boolean Yes
CalcPreParameter Parameter box below Enable pre treatment check box
String Yes
CalcEnableLimCalc Enable limit pre treatment check box
Boolean Yes
CalcLimParameter Parameter box below Enable limit pre treatment check box
String Yes
Controllable tab
UseDefControllableValues Use default controllable values check box
Boolean Yes
Controllable Is controllable check box Boolean Yes
Property Name LocationData Type
Writable Comment
156 3BSE035041R4001
Section 6 Openness Accessible Properties
LogOpActions Log operator actions check box
Boolean Yes
Common - Advanced dialog box
CtrlLimEnable Control Limits check box Boolean Yes
CtrlLimHigh High box Real Yes
CtrlLimLow Low box Real Yes
CtrlResponseEnabled Response check box Boolean Yes
CtrlResponseVar Variable box String Yes
CtrlResponseDelay Delay time box Integer Yes
Range tab
UseDefRange Use default integer values check box
or
Use default real values check box
Boolean Yes
LowLimit Low limit box Real Yes
HighLimit High limit box Real Yes
LowLimitPLC Low limit in PLC box Real Yes
HighLimitPLC High limit in PLC box Real Yes
Unit Engineering unit box String Yes
Precision Single/Double Precision option buttons
Integer Yes
Property Name LocationData Type
Writable Comment
3BSE035041R4001 157
Accessible Properties Section 6 Openness
Alarm Event Configuration Aspect
The property names have an X at the end. For integer and real signals, X is a number between 1–8. For binary signal, X equals 1.
Property Name LocationData Type
Writable Comment
Limiter tab
UseDefLimValuesX Use default limiter values check box
Boolean Yes
LimNameX Name box String Yes
LimTypeX Type drop-down list Integer Yes Max = 1Min = 0
LimitX Limit box Real Yes
LimHysteresisX Hysteresis box Real Yes
Event tab
UseDefEventValuesX Use default event values check box
Boolean Yes
IsEventX Is an event check box Boolean Yes
TimeStampFromPLCX Time stamped from controller check box
Boolean Yes
LogStatusChgOffX Log status changes 'Off' check box
Boolean Yes
LogStatusChgOnX Log status changes 'On' check box
Boolean Yes
AlarmTextGroupNameX Alarm text group drop-down list
String Yes
Event2 tab
MMSNotifyVariableX Box under the When detected notify variable check box
String Yes
EventTextRow1X First row of event text box String Yes
158 3BSE035041R4001
Section 6 Openness Accessible Properties
PLC Dial Configuration Aspect
EventTextBulkX Extended event text box String Yes
Alarm tab
UseDefAlarmValuesX Use default alarm values check box
Boolean Yes
IsAlarmX Is an alarm check box Boolean Yes
AckTypeX Acknowledgement selection box
Integer Yes Normal = 0None = 1Disappears = 2
PriorityX(1) Priority box Integer Yes
TimeDelayX Time delay box Integer Yes
Alarm2 tab
MMSAckVariableX Box under the When acknowledged notify check box
String Yes
ClassX Class box Integer Yes
(1) If you update many properties of this type at the same time, and alarm priority changes are set to be automatically deployed, then the updating can take a long time.
Property Name LocationData Type
Writable Comment
IndexCorrection Index Correction box Integer Yes
IndexRegister Index Register box String Yes
NoOfRegisters Number Of Registers box Integer Yes
PhoneNumber Phone Number box String Yes
PLCNo Controller Identity box String Yes
Property Name LocationData Type
Writable Comment
3BSE035041R4001 159
Example - Change Signal Properties with Bulk Data Manager Section 6 Openness
Dial Log Configuration Aspect
Example - Change Signal Properties with Bulk Data Manager
1. Start Plant Explorer.
2. Start Excel.
Set up Options
3. In Excel, click the Activate BDM button in the Bulk Data Manager toolbar.
4. Select Bulk Data Manager > Options.
5. Under the General tab, select to Identify Objects by ARD with path.
6. Under the Transaction tab, select By Object as Transaction mode.
Protocol Protocol drop-down list String Yes
SchedTries # tries box Integer Yes
Property Name LocationData Type
Writable Comment
UseDefaultPLCValues Use Default PLC Values check box
Boolean Yes
IndexCorrection Index Correction box Integer Yes
IndexRegister Index Register box String Yes
NoOfRegisters # Registers box Integer Yes
StartRegister Start Register box String Yes
HistoryLog History Log drop-down list String Yes
Property Name LocationData Type
Writable Comment
160 3BSE035041R4001
Section 6 Openness Example - Change Signal Properties with Bulk Data Manager
Set up Properties
7. In Plant Explorer, select the Control Structure.
8. Select the desired control network object, that is, an object of type PLC Generic Control Network.
9. Select the Control Structure aspect, and then drag it from Plant Explorer to cell A1 in Excel.
10. Return to Plant Explorer and select a Signal Configuration aspect. It does not matter which one.
11. Drag the aspect from Plant Explorer to the first free cell on row 1 in Excel. In this example, it is E1.
12. In the displayed dialog box, select the properties you want to configure. For example, you can select Address, Controllable, ItemUsage and UseDefControllableValues.
13. Click OK.
Figure 80. Configuration Properties
3BSE035041R4001 161
Example - Change Signal Properties with Bulk Data Manager Section 6 Openness
14. In Excel, move the column UseDefControllableValues to a column in front of the Controllable column, see Figure 81. This is necessary since you have to set the property UseDefControllableValues to False, before you can change the value of the Controllable property.
Export Objects
15. In Plant Explorer, select the Control Structure.
16. Select the same control network object as in Step 8.
17. Drag the control network object from Plant Explorer to cell A2 in Excel. The object and all objects under it will be exported.
Filter Objects
18. In Excel, select all cells.
19. Select Data > Filter > AutoFilter. This makes it possible to filter the objects in Excel. For example, you can filter the objects on [Control Structure.Parent Object]. Then when you select one process object, you will only see its signals.
Change Property Values
20. You can now change the property values, for example:
– Change some Modbus addresses to Comli addresses
– Set some signals to be controllable
– Set ItemUsage to internal for signals with Modbus addresses. (A property value of ‘0’ means Internal, and a value of ‘1’ means External).
Figure 81. Column Order
162 3BSE035041R4001
Section 6 Openness Example - Change Signal Properties with Bulk Data Manager
21. When ready, click the Save All Objects button in the Bulk Data Manager
toolbar. The rows that the filter shows will be updated in the system.
Figure 82. Property Values
3BSE035041R4001 163
Dial Manager Server Access (Option) Section 6 Openness
Dial Manager Server Access (Option)
Introduction
The Dial Manager Server is handling dialed communication, including initiating and terminating calls requested from the Dial Panel or Dial Supervisor.
Via the Dial Manager interface it is possible for a user written standalone application to initiate and disconnect new calls. The application can be with or without a user interface, and written in, for example, Visual Basic or C++. It can be run on both server and client nodes.
Prioritized Calls
Prioritized calls makes it possible to interrupt other calls in progress, for example when there are no free connections (lines). When interrupted, a call will not be automatically re-established. Calls in progress will be disconnected as follows:
1. Time Limit
2. Manual Close
3. Permanent
4. History: Single Controller
5. Cyclic
6. Prioritized
How to configure dialed communication is described in the Section 8, Configure Dialed Communication (Option).
Prioritized calls are only accessible via the Dial Manager interface, and not at all via the PLC Connect standard aspects Dial Panel and Dial Supervisor. Hence, in order to make these call types available you must do this via a user written application. When writing such an application you should take great care, and be aware of the fact that calls in progress are disconnected unconditionally. Logical errors in such an application can for example break an ongoing collection of historic data from PLCs, or cause other unwanted behavior.
164 3BSE035041R4001
Section 6 Openness Accessible Methods
Accessible Methods
The Dial Manager interface belongs to the library ADSDIALMANAGERHDLRLib, and the accessible methods to the class AdsDialMgrHandler.
ConnectPLC
Use this method to initiate a call to a controller.
Syntax: ConnectPlc(sPLCName As String, TypeOfCall As DMTypeOfCall, lRunTimeMinutes As Long, bKeepTextFiles As Boolean)
sPLCName (in): controller name.TypeOfCall (in): type of call, see also Table 21.lRunTimeMinutes (in): the time limit in minutes for time limited calls. For other call types this parameter should be zero (0).bKeepTextFiles (in): whether or not to keep text files after an import (for debugging purposes only). This parameter is only relevant for calls of type “History: Single Controller”. For other call types this parameter should be False.
Table 21. Accessible Call Types
Type of call Enumeration
Manual Close ManualNormalDMTypeOfCall
Time Limit ManualTMODMTypeOfCall
Permanent ManualPermanentDMTypeOfCall
History: Single Controller ManualHistoryDMTypeOfCall
Prioritized PrioritizedDMTypeOfCall
3BSE035041R4001 165
Accessible Methods Section 6 Openness
DisconnectPLC
Use this method to disconnect a call.
Syntax: DisconnectPLC(lCTNReq As Long) As Boolean
Returns FALSE if the call could not be disconnected.
lCTNReq (in): CTN number (connection or line identifier) for the call.
GetLineStatus
Use this method to get information on the status of relevant connections (lines).
Syntax: GetLineStatus(lNoOfLines As Long, lNoOfCyclInQueue As Long, sLineName() As String, lTimeConnected() As Long, TypeOfCall() As DMTypeOfCall, sPLCName() As String, sOperator() As String, CallStatus() As DMCallInProgres, CTN() As Long, bAbortPoss() As Boolean, bEnablePoss() As Boolean, bDisablePoss() As Boolean, bAnyCyclicCalls As Boolean)
lNoLines (out): number of lines.lNoOfCyclInQueue (out): number of queued cyclic calls.sLineName (out)(array): line names.lTimeConnected (out)(array): how long time each call have been established.TypeOfCall (out)(array): call type for each line.sPLCName (out)(array): controller name for each line.sOperator (out)(array): For future use.CallStatus (out)(array): status for each call.CTN (out)(array): CTN numbers, that is, call identifiers.bAbortPoss (out)(array): whether or not calls can be aborted.bEnablePoss (out)(array): whether or not calls can be enabled.bDisablePoss (out)(array): whether or not calls can be disabled.bAnyCyclicCalls) (out): whether or not there are cyclic calls in progress.
166 3BSE035041R4001
Section 6 Openness Notes on PLC Connect Real Time Data Access
Notes on PLC Connect Real Time Data Access
The interface to the Dial Manager server can be used together with the interface described in PLC Connect Real Time Data Access on page 101, for example to write data to the RTDB.
Typically, it can work as follows:
1. Use subscription to wait for real time events. Subscription is available in the Real Time Data Access interface.
2. When the expected event occurs, check the status of relevant connections (lines) with the GetLineStatus method.
3. If the connection already is established, then you can perform the desired operations, for example write, straight away using the Real Time Data Access interface.
If the connection isn’t established, first use the ConnectPLC method to initiate a call, then perform the desired operations.
4. Disconnect from the controller with the DisconnectPLC method.
Sample
This is a Visual Basic 6.0 sample, DialManagerOpenness.vbp, which can be found in the directory \…\ABB Industrial IT\Operate IT\PLC Connect\Samples\DialManagerOpenness. Figure 83 shows the sample user interface.
Figure 83. Dialog Box Used in Sample
3BSE035041R4001 167
Sample Section 6 Openness
Option Explicit
Private Sub Command1_Click()Dim abbSystems As _
ABBOBJECTAUTOMATIONINTERFACESLib.abbSystemsDim abbObjectRef As _
ABBOBJECTAUTOMATIONINTERFACESLib.abbObjectRefDim adsDialHdlr As _
ADSDIALMANAGERHDLRLib.AdsDialMgrHandlerDim lTypeOfCall As AdsDialConfigHelper.DMTypeOfCall
Set abbSystems = New _ABBOBJECTAUTOMATIONINTERFACESLib.abbSystems
Set abbObjectRef = New _ABBOBJECTAUTOMATIONINTERFACESLib.abbObjectRef
abbObjectRef.System = abbSystems.DefaultSystemabbObjectRef.Path = Combo2.TextSet adsDialHdlr = New _
ADSDIALMANAGERHDLRLib.AdsDialMgrHandleradsDialHdlr.Init abbObjectRef.Object
Select Case Combo1.ListIndexCase 0
lTypeOfCall = ManualNormalDMTypeOfCallCase 1
lTypeOfCall = ManualTMODMTypeOfCallCase 2
lTypeOfCall = ManualPermanentDMTypeOfCallCase 3
lTypeOfCall = ManualHistoryDMTypeOfCallCase 4
lTypeOfCall = PrioritizedDMTypeOfCallEnd Select
adsDialHdlr.ConnectPlc txtControllerName.Text, _lTypeOfCall, 0, False
End Sub
168 3BSE035041R4001
Section 6 Openness Sample
Private Sub Command2_Click()Dim abbSystems As _
ABBOBJECTAUTOMATIONINTERFACESLib.abbSystemsDim abbObjectRef As _
ABBOBJECTAUTOMATIONINTERFACESLib.abbObjectRefDim adsDialHdlr As _
ADSDIALMANAGERHDLRLib.AdsDialMgrHandlerDim lCTN As Long
Set abbSystems = New _ABBOBJECTAUTOMATIONINTERFACESLib.abbSystems
Set abbObjectRef = New _ABBOBJECTAUTOMATIONINTERFACESLib.abbObjectRef
abbObjectRef.System = abbSystems.DefaultSystemabbObjectRef.Path = Combo2.TextSet adsDialHdlr = New _
ADSDIALMANAGERHDLRLib.AdsDialMgrHandleradsDialHdlr.Init abbObjectRef.Object
lCTN = adsDialHdlr.GetCTNForAnyCall(txtControllerName.Text)adsDialHdlr.DisconnectPLC lCTN
End Sub
Private Sub Form_Load()Dim abbSystems As _
ABBOBJECTAUTOMATIONINTERFACESLib.abbSystemsDim abbSystem As _
ABBOBJECTAUTOMATIONINTERFACESLib.abbSystemDim abbObjects As _
ABBOBJECTAUTOMATIONINTERFACESLib.abbObjectsDim abbObject As _
ABBOBJECTAUTOMATIONINTERFACESLib.abbObjectDim abbObjectRef As _
ABBOBJECTAUTOMATIONINTERFACESLib.abbObjectRef
Set abbSystems = New _ABBOBJECTAUTOMATIONINTERFACESLib.abbSystems
Set abbSystem = abbSystems.DefaultSystem
3BSE035041R4001 169
Sample Section 6 Openness
Set abbObjects = abbSystem.ObjectsabbObjects.OfObjectType "PLC Generic Control Network"
For Each abbObject In abbObjectsSet abbObjectRef = New _
ABBOBJECTAUTOMATIONINTERFACESLib.abbObjectRefabbObjectRef.System = abbSystems.DefaultSystemabbObjectRef.Object = abbObjectCombo2.AddItem abbObjectRef.Path
Next
Combo1.AddItem "Manual Normal", 0Combo1.AddItem "Manual Time Limited", 1Combo1.AddItem "Manual Permanent", 2Combo1.AddItem "Manual History", 3Combo1.AddItem "Prioritized", 4
Combo1.ListIndex = 0Combo2.ListIndex = 0
End Sub
170 3BSE035041R4001
Section 7 Maintenance
IntroductionThis section describes PLC Connect specific maintenance information:
• Troubleshooting on page 171 contains guidelines on how to deal with problems.
• XML Import/Export on page 180 describes XML import/export.
• Contacting Support on page 180 describes what to do before you contact support.
TroubleshootingThis sub-section contains guidelines on how to deal with problems that may arise when using PLC Connect.
If the problem cannot be solved, follow the instructions for the collection of necessary information to be reported to ABB, see Contacting Support on page 180.
Hardware Diagnostics
Many PC suppliers include diagnostic software with their product or provide it through their web site (for the most part free of charge). It may be useful to install such software, or at least have it available, so that you can employ it promptly should problems arise.
Basic maintenance is described in the Industrial IT 800xA - System Administration and Security.
3BSE035041R4001 171
Checklist: PLC Communication Section 7 Maintenance
Vocabulary
• ActiveX component: A DLL or *.exe file having one ActiveX automation interface or more. An ActiveX automation interface follows a Microsoft Windows standard that enables communication between different components.
• DLL: A Dynamic Link Library is an executable unit that runs only as part of a process. The purpose of a DLL is to make a certain functionality available to one or more users. Two or more processes can share the same DLL.
• Heap: The heap is the memory that a process allocates in order to store data. The heap may grow or shrink depending on the demands of the process.
• Heap size: The current amount of memory allocated by the heap.
• Memory leak: A memory leak occurs when a process continuously allocates memory without returning it to the operating system. This means that the heap grows continuously, that the applications running will sooner or later fail and that the Windows operating system will display messages such as “Your system is running low on virtual memory. Close some applications.”
• Process: A process is an executable unit (*.exe) that is presently running and thus demands CPU power and memory.
• Register: The task of updating the system registry (the Windows “Database”) so that ActiveX components are known to the system. An incorrectly registered ActiveX component cannot be used.
Checklist: PLC Communication
If PLC communication problems occur, more information can be obtained using the Communication Server’s DriverInfo operation:
1. Start the AfwAppLogViewer located in the \..\ABB Industrial IT\Operate IT\Process Portal A\bin folder.
2. Select the node, AdsScadaSrv, Operations, Communication Server - DriverInfo, and then click Invoke, see Figure 84.
172 3BSE035041R4001
Section 7 Maintenance Checklist: PLC Communication
The versions of all drivers used are displayed. For each PLC the driver used and the setup are displayed (InitString).
The current communication status is also reported (CommStatistics). If communication is not functioning correctly, the telegram causing the problem will be displayed (for Modbus, Comli and SattBus drivers).
Each time the Driver Information dialog box is opened, the Communication Server will create diagnostic files containing all messages created for Comli, SattBus, Modbus and OPC substations. The files, ComliMessages.log,
Figure 84. AfwAppLogViewer
3BSE035041R4001 173
Checklist: PLC Communication Section 7 Maintenance
SattBusMessages.log, ModbusClientMessages.log and OPCMessages.log, can be accessed from the \..\OperateITData\AdsServer\Service Group Data\Logfiles folder.
For Comli, SattBus and Modbus the file also contains dynamic information on real update frequencies for telegrams. If there are problems with the communication performance, these files should be used to investigate the configuration telegram load. For OPC the file contains information covering created groups of variables and corresponding update rates.
Information is given at the beginning of each file on how to interpret the file’s contents. See Figure 85 for an example.
One PLC is Not Responding
When configuring parameters for a PLC, the error check will not be 100%. If communication does not function, you may need to change the setup.
Possible Problems with SattBus
• Check that the Server does not have the same SattBus address as any substation. Also check that you do not have multiple PLCs with the same SattBus address on the same SattBus network.
• The standard SattBus driver is Comli compliant. This means that the driver automatically adapts message sizes to the restrictions imposed by Comli. This is necessary when an SBC, an SC05SB or an OP45 is used.
Figure 85. Part of a ComliMessages.log
174 3BSE035041R4001
Section 7 Maintenance Checklist: PLC Communication
• If problems arise after an upgrade/reinstallation, the SattBus channels must be redefined. This is performed in the setup for the substation and is found in the PLC Controller Configuration aspect:
a. Select the option SattBus Driver from the Protocol list.
b. Click Edit driver...
Possible Problems with the Modbus Driver
When using the Modbus protocol, note that some PLC systems may have other limitations on maximum size of telegrams than those in the Modbus protocol. When communicating with Advant systems, the maximum size allowed for telegrams is dependent on the Advant application. Note that you must set up the maximum sizes to be used by the driver in the Communication Parameters dialog box in the PLC Controller Configuration aspect. Also note that when using long integers, there are two ways of interpreting the incoming data for low and high word. This is selectable in the setup for the PLC and is found in the PLC Controller Configuration aspect:
1. Select the option Modbus Driver from the Protocol list.
2. Click Edit driver...
Using Digi Communication Boards and Terminal Servers
• In the Communication Parameters dialog box for Comli, some communication ports are predefined. This is selectable in the setup for the PLC and is found in the PLC Controller Configuration aspect:
a. Select the option Comli Driver from the Protocol drop-down list.
b. Click Edit driver... The communication port can be selected from the Communication port list.
These ports are named COM1: – COM99: and \\.\COM1 – \\.\COM99. When using interface boards from Digi, the latter port denominations must be used. You can also enter another denomination required by some other type of board. Note, however, that if you enter the Communication Parameters dialog box again, after having made changes such as those described above, the edit box
3BSE035041R4001 175
Checklist: Configuration Tools Section 7 Maintenance
for the port will be empty. If you make any changes in the dialog box, you must reenter the port name.
Short Haul Modems
It is not possible to use the Westermo MA42 converter for serial lines in Windows 2000 or Windows XP. Use Westermo MA54 modems instead.
Checklist: Configuration Tools
Summary Alarms
Warnings are not issued when signals have been removed or renamed or properties changed in the Configuration Tools. For example, a signal included in a sum alarm can be removed without a warning that the sum alarm is affected.
Importing XML files
When the configuration is imported as an XML file, the XML file syntax must be correct. This is the case if the file was exported using the Configuration Tools. If you edit the file, you must be sure not to alter the syntax. If you edit the file to add objects and then want to import the edited file to merge it with the existing configuration, then the object type definitions for object types already present in the configuration should be removed.
Communication Drivers
Never leave old versions of driver DLLs in the \..\ABB Industrial IT\Operate IT\Common\Bin\System\PlcDrivr folder. Even if they are given names that do not end with the .DLL file extension, they will show up in the Configuration Tools, thus making more than one driver of the same type selectable. It may then happen that the wrong driver version is selected.
It is necessary to equip Portservers with UPS to be able to handle power failures, due to lapses in Portserver functionality, Windows driver or Windows.
176 3BSE035041R4001
Section 7 Maintenance Checklist: Event/Alarm
Checklist: Event/Alarm
Alarms on Internal Signals
If you generate an alarm on an internal signal in the configuration, the alarm will not be generated again until the value “true” is written to the Communication Server when an active alarm is unblocked. Thus the value must be written repeatedly, for example once a minute, to ensure that the alarm is regenerated when the status is changed from blocked to unblocked.
Power Failure
If the Event Server does not restart after a power failure, the system must be restarted using Cold Start:
1. Start AdsColdStartConfiguration.exe from \...\ABB Industrial IT\Operate IT\PLC Connect\bin\System\Utilities.
2. In the displayed dialog box, select Cold Start.
3. Click OK.
4. Restart the computer. A cold start will be performed.
If the Event Server cannot start up, despite selecting Cold Start, the escommon2.bin file in the \..\OperateITData\AdsServer\Generic Control Network Data folder must be deleted and the system re-started using a Cold Start.
Figure 86. Cold Start Configuration Dialog Box
3BSE035041R4001 177
Checklist: Open Functions Section 7 Maintenance
Time Marked Event
Alarms time-stamped in a PLC (using Comli or SattBus) must not have a date prior to 1984-01-01. Since the default time may be a date prior to 1984, the time in the SattCon system must be reset to the correct time.
Pre-Event
It is not possible to use the pre-event handling function with delayed alarms.
Checklist: Open Functions
Pre-Event
Note that the pre-event handling function can not be used for delayed alarms.
Diagnostic Files
The PLC Connect system generates a number of log files containing diagnostic information. The diagnostic log files may contain traces of events detected during operation. A recorded event may be a non-fatal situation that is handled by the system software. Nevertheless, this information can be of importance when investigating the circumstances that may have lead to a fatal event.
The log files should always be examined when a problem arises and should always be included when a software problem is reported to ABB.
The log files may be examined using the Notepad text editor.
If a component generates a Dr. Watson message, the DrWtsn32.log file in the \..\Winnt folder will be required by ABB.
178 3BSE035041R4001
Section 7 Maintenance Checklist: Open Functions
The generated diagnostic files are listed in Table 22, and can be found in the \..\OperateITData\AdsServer\Service Group Data\LogFiles folder.
Fatal Errors
If the PLC Connect software component crashes during operation, a Dr. Watson dialog box will appear. Click OK in the dialog box. Save the Dr. Watson log file, DrWtsn32.log, in the \..\Winnt folder, to a backup folder. Collect the diagnostic files (see Diagnostic Files on page 178) and contact ABB for support. Check if the system hard disk is full or almost full.
If a PLC Connect station is running but not responding, you should, if possible, examine the Windows Task Manager to see if any program task is taking a unusually high percentage of the CPU load. Also, check if you can start any Windows program, for example the Notepad editor.
Table 22. Diagnostic Files
Generated by Log file
Deploy Server DeployManager.log
Communication Server CommServer.log
Event Server EventServer.log
Special Event Server EventExtendedOptions.log
Server ScadaServer.log
Rtdb.log
Dial Manager Server (Option) DialManager.log
3BSE035041R4001 179
XML Import/Export Section 7 Maintenance
XML Import/ExportThere is a possibility to export the PLC Connect specific configuration data to an XML file. You can:
• Export the process and controller object configuration for a specific control network. This export includes any configuration of dialed communication. (Optionally, the process object type configuration.)
• Export only the process object type configuration.
The exported configuration can also be imported. Any graphics or other user created aspects must then be manually recreated.
This tool should not be regarded as a backup tool, but rather as a tool that will permit portability and upgrading of older systems.
For more information, refer to the information on Import/Export in the PLC Connect online help.
Contacting SupportBefore contacting support, be sure that you have all information relevant to the problem at hand. In addition to the required information for the 800xA System, the following information should be supplied when PLC Connect is involved in a problem situation:
1. Are all components running in the PLC Connect connectivity servers, that is the PLC Server?
2. Is any PLC Server process in the Windows Task Manager taking an unusually high percentage of the CPU load?
3. Are any of the PLC Connect special communication drivers being used?
Process graphics and other manually created aspects, for example history aspects, will not be exported.
180 3BSE035041R4001
Section 7 Maintenance Contacting Support
If an investigation needs to be initiated by ABB to find the cause of the problem, the following information will be required for PLC Connect:
1. PLC Connect product version and license number.
2. System configuration, including PLC Connect connectivity servers and connected PLCs/Controllers.
3. A backup of DLLs and diagnostic files, see also Diagnostic Files on page 178.
4. The version numbers of external software and service packs that have been used together with PLC Connect.
3BSE035041R4001 181
Contacting Support Section 7 Maintenance
182 3BSE035041R4001
Section 8 Configure Dialed Communication(Option)
IntroductionThis sub-section describes how to configure dialed communication:
• Basic Preparations on page 184 describes what you need to do before you can start the configuration.
• Setup Modems for Dialed Communication on page 186 contains guidelines for modem setup.
• Basic Configuration Example on page 188 describes an example configuration, not including dialed history.
• Dialed History on page 201 gives an overview of how dialed history works in relation to dialed controllers.
• Dialed History Configuration Example on page 204 describes an example configuration of dialed history.
What is Dialed Communication?
Remote controllers can be dialed up and communicated with via Comli or Modbus (Serial), that is, alarm, event and historic information can be collected to a server. Provided are:
• Manually order calls, with and without a time limit.
• Permanent calls.
• Scheduled (cyclic) calls for collection of historic data.
Incoming connections are also supported, where controllers can call up the server in the case of an alarm and so on.
3BSE035041R4001 183
Basic Preparations Section 8 Configure Dialed Communication (Option)
Basic PreparationsBefore you can configure or use dialed communication, you have to start the Dial Manager server, set up the modems to use, and create the relevant objects and signals.
Add Dial Manager Server Process
1. Add the Dial Manager server process to the PLC Server. For more information on how to do this, refer to the information on PLC Server in the PLC Connect online help.
Setup Modems
2. To be able to dial up remote controllers, each communication port you want to use has to be connected to a modem.
Create Dialed Controllers
3. In Plant Explorer, select the desired control network object, that is, an object of type 'PLC Generic Control Network', that represents a control network for which you want to configure dialed communication.
4. Create the relevant dialed controllers for the control network. Refer to the PLC Connect online help for more information on how to create a dialed controller.
5. Repeat Step 3 to Step 4 for each additional control network for which you want to configure dialed communication.
Set up Communication Monitoring
6. Import the process object type CommunicationType. It can be found in the file \...\ABB Industrial IT\Operate IT\PLC Connect\Data\ObjectTypes\CommunicationType.afw. For more information on export and import, refer to the Industrial IT 800xA - System Administration and Security.
For more information on how to install a modem and set up dialing rules, refer to Setup Modems for Dialed Communication on page 186 and to the Windows documentation.
184 3BSE035041R4001
Section 8 Configure Dialed Communication (Option) Basic Preparations
7. The signal Bad is part of the process object type CommunicationType. Set the signal to be only an event, not an alarm. Otherwise, it may generate alarms when a call to a controller is initiated. Refer to the PLC Connect online help for more information on how to set a signal to be an event and/or alarm.
8. For one of the dialed controllers, create a process object based on the process object type CommunicationType. Refer to the PLC Connect online help for more information on how to create process objects. Make sure to:
– place the process object under the dialed controller you want to monitor.
– define the object as communication, that is, select Communication when entering object information for the object.
– set the update time to about 10 000 ms when entering object information for the object.
9. Repeat Step 8 for each additional dialed controller.
Create Process Objects and Signals
10. For each dialed controller, create the relevant process objects and signals. Refer to the PLC Connect online help for more information on how to create process objects and signals.
11. Deploy the configuration for each affected control network. To make a deploy, select the Deploy aspect of a control network object, and then click Deploy.
12. You are now finished with the basic preparations.
Process objects of this type are used to monitor the communication status for a dialed controller. Generally, it is hard to get informed when a cyclic call fails. However, the signal Error in process objects of type CommunicationType will generate an alarm when a cyclic call fails.
3BSE035041R4001 185
Setup Modems for Dialed Communication Section 8 Configure Dialed Communication (Option)
Setup Modems for Dialed CommunicationModems can be used to provide communication between servers and controllers. This way servers can gather information from controllers and controllers can notify servers if unusual or unexpected signal levels occur. In this section the correct and necessary settings for a couple of common modems are presented.
Settings for Modems at the Server End
When installing modems at the server end for communication with controllers, use the settings below.
Westermo TD22/TD32
The Westermo TD22 version 5 Nov 97 14:24 - B and the Westermo TD32 modems can be used at the server end to provide communication with controllers. Both modems should be installed as Standard modems.
The communication speed for the Westermo TD22 modem should be set to 2400 bits per second, while the communication speed for the Westermo TD32 modem should be set to 9600 bits per second.
Intertex IX35
The Intertex IX35 modem can be used at the server end to provide communication with controllers. If a specific driver is supplied together with the modem, install the modem using that driver. Otherwise, select the Intertex IX35 modem during installation.
No other settings are necessary.
US Robotics Sportster 28800
The US Robotics Sportster 28800 modem can be used at the server end to provide communication with controllers. If a specific driver is supplied together with the modem, install the modem using that driver. Otherwise select the US Robotics Sportster 28800 modem during installation.
For more information on how to install a modem and set up dialing rules, refer to the modem and the Windows documentation.
186 3BSE035041R4001
Section 8 Configure Dialed Communication (Option) Settings for Modems at the Controller End
No other settings are necessary.
Settings for Modems at the Controller End
When installing modems at the controller end for communication with servers the settings below should be used.
Westermo TD22/TD32
The Westermo TD22 version 5 Nov 97 14:24 - B and the Westermo TD32 modems can be used at the controller end to provide communication with servers. If desired, the modems can be programmed to automatically call a predetermined telephone number when the DTR signal level turns high. The Westermo modems should be programmed according to the instructions below.
Typical terminal settings for Comli:
• Bits per second (BPS): 2400 (TD22)/9600 (TD32)
• Parity: Odd
• Data bits: 8
• Stop bits: 1
Typical terminal settings for Modbus:
• Bits per second (BPS): 2400 (TD22)/9600 (TD32)
• Parity: Even
• Data bits: 8
• Stop bits: 1
The following Hayes command string should be sent to the modems:
ATE0B0V0Q0X4&D0&C1&K0&A1S0=2&B1&Z0=TelephoneNumberAT&W0
If possible, avoid using this modem, since it does not fully work with 11-bit characters. This means that communication with parity is not possible. Communication without parity does work, however.
3BSE035041R4001 187
Basic Configuration Example Section 8 Configure Dialed Communication (Option)
The TelephoneNumber in the Hayes command string above is the telephone number that the modem is to call when the DTR signal level turns high.
Intertex IX35
The Intertex IX35 modem can be used at the controller end to provide communication with servers. The modem should be programmed according to the instructions below.
The following Hayes command strings should be sent to the modem:
• AT&F1&D0&K0E0Q1\N1S0=1
• AT&W0
• AT\S
Basic Configuration ExampleThis example describes how to make a basic configuration of dialed communication for a specific control network. This configuration does not include dialed history. However, it’s assumed that you already have made the necessary preparations, see Basic Preparations on page 184.
Set up Protocols
The first part is to set up the protocols to use.
Startup
The Dial Editor aspect is used to configure dialed communication for a specific control network.
The underlined parts of the Hayes command string are only necessary when DTR controlled calling is to be used and may therefore be left out when DTR controlled calling is not desired.
The parity for the terminal that is used when configuring the modem should be the same as the parity for the system that is going to be used for dialed communication.
188 3BSE035041R4001
Section 8 Configure Dialed Communication (Option) Set up Protocols
1. In Plant Explorer, select the Control Structure.
2. Select the desired control network object, that is, the object of type 'PLC Generic Control Network', that represents the control network with the dialed controllers you want to configure the communication for.
3. Select the Dial Editor aspect.
4. Select the Protocol Setup tab.
Add Protocols
Under the Protocol Setup tab, see Figure 87 for an example, there is a table with information on the defined protocols.
5. Under the tab, click Add. The New Protocol dialog box is displayed.
6. Enter a protocol name.
7. Click OK. The dialog box is closed, and the protocol added to the table.
Figure 87. Protocol Setup Tab
3BSE035041R4001 189
Set up Protocols Section 8 Configure Dialed Communication (Option)
Configure the Protocol
8. Select the added protocol.
9. From the Protocol type drop-down list, select the type of protocol.
10. In the Auto disconnect box, enter the time in minutes after which a manually initiated call using this protocol is to be terminated by default.
11. Click Apply.
Configure the COM-port
12. Configure the following for each COM-port that uses the protocol:
– Communication speed (Baud-rate).
– Number of data bits. For Comli and Modbus protocols, this number is fixed to 8.
– Number of stop bits. For Comli and Modbus protocols, this number is fixed to 1.
– Parity setting.
– Flow control setting. For Comli and Modbus protocols, the flow control is fixed at “None”.
13. If desired, repeat Step 5 to Step 12 for each other protocol you want to add.
14. Select the Line Setup tab.
Use the Control Panel in Windows to enter these settings. Refer to the Windows documentation for more information.
190 3BSE035041R4001
Section 8 Configure Dialed Communication (Option) Set up Connections
Set up Connections
The next part is to set up the connections (lines) to use.
Under the Line Setup tab, see Figure 88 for an example, there is a table with information on the defined connections.
The Attached to column shows the type/name of the modem connected to the selected communication port, that is, the modem name as defined in the Windows Control Panel.
Add a Connection
1. Under the tab, click Add.
2. Enter a name in displayed dialog box.
3. Click OK. The dialog box is closed, and the connection added to the table.
Configure the Connection
4. Select the added connection in the table.
Figure 88. Line Setup Tab
3BSE035041R4001 191
Set up Connections Section 8 Configure Dialed Communication (Option)
5. Select a COM port from the Port drop-down list.
6. Select a defined protocol from the Protocol drop-down list.
7. In the Line type area, select either:
– In to dedicate the connection to incoming calls.
– Out to dedicate the connection to outgoing calls.
8. Click Apply.
Check the Modem
The Check Modem button is used to check if a modem is connected and switched on.
9. Select the configured connection in the table.
10. Click Check Modem. A dialog box will show the result, see Table 23 for examples.
11. If desired, repeat Step 1 to Step 10 for each other connection you want to add.
12. Select the Cyclic Call Setup tab.
Table 23. Modem Check Examples
Answer Description
“Modem answered OK” The text string “OK” was received as a reply.
“No answer from modem” Either the modem is not connected or the power is off.
“Modem answers incorrectly” Data was received, but could not be interpreted.
“Invalid port number” The selected port number does probably not exist in the computer.
192 3BSE035041R4001
Section 8 Configure Dialed Communication (Option) Set up Cyclic Calls
Set up Cyclic Calls
The next part is to set up the cyclic calls to use.
Cyclic calls are used to automatically collect data, including historic data, from a number of controllers at scheduled times. For example, at 3 PM the data can be scheduled to be collected from controllers A and B, while at 5 PM it can be scheduled to be collected from controllers C and D. These scheduled collections will be repeated every day until changed.
Under the Cyclic Call Setup tab, see Figure 89 for an example, there is a table with information on the defined cyclic calls. The table contains:
• a column with the dialed controllers.
• a column for each defined call time (maximum is 24).
An active (blue) cell in the table means that the controller is scheduled to be called at the call time shown in the column header.
Figure 89. Cyclic Call Setup Tab
3BSE035041R4001 193
Set up Priorities Section 8 Configure Dialed Communication (Option)
Add a Call Time
1. Under the tab, click Add.
2. Enter the call time in hours and minutes in the displayed dialog box.
3. Click Apply in the dialog box. A new call time column is added to the table.
4. If desired, repeat Step 2 to Step 3 for each other call time you want to add.
5. When ready, click OK. The dialog box is closed.
Schedule Calls
6. Click the cell in the table corresponding to the desired call time for a controller. The cell becomes active (blue).
7. Click Apply.
8. Right-click a cell in the table.
9. From the displayed context menu, select Set Column. All cells in the column will be scheduled as calls.
10. Click Apply.
11. If desired, schedule more calls as described above.
12. Select the Priority Setup tab.
Set up Priorities
The next part is to set up priorities.
Priorities are used to avoid dedicating modems for either manual or cyclic calls. This way it is possible to allocate many modems for cyclic calls when no manual calls are in progress and vice versa. Modem failures can also be handled by defining how the remaining modems are to be used.
When you want to clear a scheduled call, click in the cell again.
You can use the context menu to edit call times, schedule or clear multiple calls, and so on.
194 3BSE035041R4001
Section 8 Configure Dialed Communication (Option) Set up Priorities
Under the Priority Setup tab, see Figure 90 for an example, there is a tab for each defined protocol with information on the priorities of the outgoing connections using that protocol.
The number of priority levels corresponds to the number of modems handling cyclic and manual calls, that is, the number of outgoing connections using the protocol. For each priority level you define the primary use (1st choice) as Cyclic or Manual and a secondary use (2nd choice) as Cyclic, Manual or "Blank“.
The top-most row corresponds to the top-most priority, and so on downwards.
Set or Change Priority Levels for a Protocol
1. Under the Priority Setup tab, select the tab for the protocol.
2. In the first row, click in the 1st choice column to change the primary use.
3. In the first row, click in the 2nd choice column to change the secondary use.
4. Repeat Step 2 to Step 3 for each additional row.
Figure 90. Priority Setup Tab
The settings are for priority levels and not for specific modems.
3BSE035041R4001 195
Priority Guidelines Section 8 Configure Dialed Communication (Option)
5. Click Apply.
6. Repeat Step 1 to Step 5 for each other protocol tab.
7. Review the priority guidelines in the next sub-section, or skip directly to the next part, see Set up Dialed Controllers on page 199.
Priority Guidelines
• Begin by setting up the top-most row with Manual as 1st choice and Cyclic as 2nd.
• If more than one outgoing line is available consider to set up a row with Manual as 1st choice and an empty 2nd choice, to make sure one connection is reserved for manual calls.
• If several lines are available and it’s important that cyclic calls are not blocked by manual calls a row with Cyclic as 1st choice and 2nd choice empty can be set up.
• If a lot of lines are available the remaining can be defined as Manual as 1st choice and Cyclic as 2nd choice.
Basic Example
In this example, see Table 24, five connections have been defined as outgoing for a protocol:
• One modem has been reserved for manual calls only (no 2nd choice).
• One modem has been reserved for cyclic calls only (no 2nd choice).
• When needed, the modems on the top-most and bottom-most rows are used for manual calls, when no manual calls are requested, they can be used for cyclic calls.
• When needed, the modem on the second top-most row is used for cyclic calls, when no cyclic calls are requested, it can be used for manual calls.
196 3BSE035041R4001
Section 8 Configure Dialed Communication (Option) Priority Guidelines
Assume that four cyclic calls are in progress and four manual requests are issued, which requires the use of more modems than are currently available.
1. The first manual call is served immediately, as one modem has been reserved for manual calls only.
2. The second manual request is queued and will get a modem as soon as one of the cyclic calls completes.
3. The other two manual requests are not queued and the operator is informed that the manual requests cannot be served, because cyclic calls are in progress and no more modems are available.
Example - One Outgoing Connection
In this example, see Table 25, one connection has been defined as outgoing for a protocol. Cyclic calls can be in progress when no manual calls are in progress.
Table 24. Five Outgoing Connections
1st choice 2nd choice
Manual Cyclic
Cyclic Manual
Manual
Cyclic
Manual Cyclic
Table 25. One Outgoing Connection
1st choice 2nd choice
Manual Cyclic
3BSE035041R4001 197
Priority Guidelines Section 8 Configure Dialed Communication (Option)
Example - Three Outgoing Connections
In this example, see Table 26, three connections has been defined as outgoing for a protocol:
• When three manual calls are in progress, the calling of cyclic scheduled controllers start when any of the manually started calls in progress are stopped. When the first cyclic scheduled controller has been called, it is not possible to have more than two manual calls in progress before the queue of cyclic scheduled controllers is empty.
• When max one manual call is in progress, two cyclic scheduled controllers can be called simultaneously.
• One line is always reserved for manual calls.
Example - Many Outgoing Connections
In this example, see Table 27, many connections has been defined as outgoing for a protocol:
Table 26. Three Outgoing Connections
1st choice 2nd choice
Manual Cyclic
Cyclic Manual
Manual
Table 27. Many Outgoing Connections
1st choice 2nd choice
Manual Cyclic
Cyclic Manual
Manual
Manual Cyclic
198 3BSE035041R4001
Section 8 Configure Dialed Communication (Option) Set up Dialed Controllers
• One line is always reserved for manual calls (no 2:nd choice), and one for cyclic calls (no 2:nd choice).
• When max one manual call is in progress, four lines can simultaneously be used for cyclic calls if needed.
• If four manual calls are in progress when several controllers are to be called cyclic, one line is always available for cyclic calls. After the first manual call has stopped, the controllers queued for cyclic calls keep two lines until the queue is empty (the rows with cyclic as 1:st choice). Max three manual calls can be in progress as long as the queue of cyclic called controllers isn’t empty.
• When more lines are available they can be added with Manual as 1st choice and Cyclic as 2nd.
• If it is not so important that the calling of cyclic scheduled controllers starts immediately the row with Cyclic as 1:st and no 2:nd choice can have Manual as 2nd choice. The difference is that the calling of cyclic controllers starts on one line when the first manual call stops.
Set up Dialed Controllers
The next part is to set up the dialed controllers in the control network.
1. In the Control Structure, select a dialed controller part of the control network object.
2. Select the PLC Dial Configuration aspect, see Figure 91 for an example.
Cyclic
(...) (...)
(Manual) (Cyclic)
Table 27. Many Outgoing Connections (Continued)
1st choice 2nd choice
3BSE035041R4001 199
Set up Dialed Controllers Section 8 Configure Dialed Communication (Option)
In the aspect, you can enter communication settings for the dialed controller and also default history settings. These history settings will be set later on as part of the dialed history configuration example.
Enter Communication Settings
3. From the Protocol drop-down list, select a defined protocol to use.
4. In the Phone Number box, enter the phone number to be dialed to contact the controller. The number should be entered without spaces, for example, “0707 654321” should be entered as “0707654321”.
5. In the #tries box, enter the number of dial attempts for a cyclic call sequence that is to be carried out before the call is considered to have "failed".
6. Click Apply.
7. Repeat Step 1 to Step 6 for each other dialed controller in the control network.
Figure 91. PLC Dial Configuration Aspect
Some switchboards require a Wait command before you get an outside line, for example, 0W01234567.
200 3BSE035041R4001
Section 8 Configure Dialed Communication (Option) Dialed History
Finish the Basic Configuration Example
8. Deploy the configuration for the control network. For more information on how to deploy a configuration, refer to the PLC Connect online help.
9. Repeat the previous steps in the basic configuration example for each other control network you want to set up dialed communication for.
10. The configuration is now finished for both incoming and manually ordered calls. To also configure for dialed history, continue with Dialed History Configuration Example on page 204.
Dialed HistoryDialed history is used to collect historic data from process signals that don’t require a permanent connection, for example, for signals used for statistic analysis or status surveillance.
The server calls a controller at scheduled times to collect the historic data. These calls are denoted cyclic calls. A collection can also be ordered manually with the Dial Supervisor.
The dialed controller has to be programmed to sample each signal value periodically and store the value in a circular data buffer, see Figure 92. When a value is stored in a circular data buffer, the oldest sample value is overwritten with the new sample value. There should be one data buffer for each signal. The required buffer size depends on how often the values are collected. For example, a signal is sampled and stored every half hour and the values are collected once every day. The data buffer then should be configured to contain 48 values.
3BSE035041R4001 201
Dialed History Section 8 Configure Dialed Communication (Option)
Create one index register in the controller for each data buffer to keep track of the latest sampled value in a buffer. The index register value should be incremented each time a new value is stored in the data buffer.
Depending on how the controller is programmed, the index register can hold a number between 0 and [buffer size - 1], or between 1 and [buffer size]. In the first case, the index correction has to be 0; in the second case, it has to be 1.
The index register value together with the index correction value and the buffer start register address are used to find the stored sampled values in the controller, see Figure 93. If for example the index register holds the value 55, then this is the latest stored value and the reading starts on the following. That is, if the start address is 100, then the reading is to start on R155, go backwards through R154 to the start address and then continue from the start address + number of registers backwards to R156. This is if the Index correction is 0. When the Index correction is 1, reading starts on 154. An index correction of 0 means that the index register holds a value between 0 and the number of registers - 1. When the index correction is 1 then the index register holds a value between 1 and the number of registers.
Figure 92. Signal Sampling
202 3BSE035041R4001
Section 8 Configure Dialed Communication (Option) PLC Time Stamp
The maximal number of values that can be read each time is 32. If the number of registers is more than that they are read 32 registers at a time until all have been read.
PLC Time Stamp
When historic data is collected, the time of the last sample can be time stamped in two ways. By default, the time for the call to the controller is used as time of the last sample. When PLC time stamp is used, instead the time of the last sample is read from two registers in the controller.
Figure 93. Controller Data Buffer
3BSE035041R4001 203
Dialed History Configuration Example Section 8 Configure Dialed Communication (Option)
The two registers in the controller should be of data type integer (16 bits), and the first register should hold the date in the format MMDD. MM is the month and DD is the day. For example, 0709 equals 9 July and 1122 equals 22 November. If the date in the controller is later than the date in the computer, then the previous year is used.
The second register should hold the time in the format HHMMS. HH is the hour, MM is the minute, and S is tens of seconds. For example, 23595 equals 23:59:50, and 09203 equals 09:20:30. Midnight is 00000.
Dialed History Configuration ExampleThis example describes how to make a configuration of dialed history. However, it is assumed that the basic configuration example already is performed, see also Basic Configuration Example on page 188.
Preparations
The first part contains some preparations.
Import DialHistoryType
1. Start the Import/Export tool. Refer to the Industrial IT 800xA - System Administration and Security for more information on the Import/Export tool.
2. Use the Import/Export tool to import the process object type DialHistoryType. It can be found in the file \...\ABB Industrial IT\Operate IT\PLC Connect\Data\ObjectTypes\DialHistoryType.afw.
Figure 94. PLC Time Stamp Registers
204 3BSE035041R4001
Section 8 Configure Dialed Communication (Option) Preparations
Create DialHistoryType Objects
3. In Plant Explorer, create a process object of the process object type DialHistoryType for one of the dialed controllers. Refer to the PLC Connect online help for more information on how to create process objects. Make sure to:
– name the process object with a capital letter “X” followed by the controller name. For example, if the controller name is “Dial_TH1”, then name the object “XDialTH1”.
– define the object as a structure, that is, select Structure when entering object information for the object.
4. Repeat Step 3 for each additional dialed controller part of any control network object.
Configure History Logging
5. Configure history logging for each signal part of a dialed controller. Refer to the Industrial IT 800xA - System Operator Workplace Configuration for more information on history logging.
When the controller name is longer than 22 characters, use only the first 22 characters.
The signals in the created object are not connected. Don’t change their initial configuration.
When you create a hierarchical log (for use with dialed history), make sure to select either Average, Maximum or Minimum as aggregation. (See Figure 91 for an example). For dialed history, only these aggregations are supported.
3BSE035041R4001 205
Enter Default History Settings Section 8 Configure Dialed Communication (Option)
6. Deploy the configuration for each affected control network.
Enter Default History Settings
The next part is to enter default history settings for a dialed controller.
1. In the Control Structure, select a dialed controller.
2. Select the PLC Dial Configuration aspect, see Figure 96 for an example.
Figure 95. Hierarchical Log Configuration
206 3BSE035041R4001
Section 8 Configure Dialed Communication (Option) Enter Default History Settings
In the aspect, you can enter default history settings. The communication settings were entered earlier on as part of the basic configuration example.
3. In the Index Register box, enter the index register address. The index register is the register used in the dialed controller to keep track of where the latest historic value for the signal is stored.
4. In the No Of Registers box, enter the number of registers used in the dialed controller to store the historic values for the signal. This number is also called the data buffer size.
5. In the Index Correction box, enter the index correction value. This value is used to offset where the latest historic value is stored. It is usually equal to 0 or 1.
Figure 96. Entered History Settings
The index register address, data buffer size, index correction and PLC time stamp register address mentioned below depend on how the dialed controller is programmed. For more information, see Dialed History on page 201.
3BSE035041R4001 207
Enter Signal History Settings Section 8 Configure Dialed Communication (Option)
6. Select either:
– Use Computer Time Stamp. When historic data is collected, the time for the call to the controller is used as time of the last sample.
– Use PLC Time Stamp. When historic data is collected, the time of the last sample is read from two registers in the controller. Enter the address for the first of these two registers in the Address box.
7. Click Apply.
8. Repeat Step 1 to Step 6 for each other dialed controller in the control network.
Enter Signal History Settings
The last part is to enter history settings for a signal part of a dialed controller.
1. In the Control Structure, select the signal part of a dialed controller.
2. Create a Dial Log Configuration aspect.
3. Select the created aspect.
In the aspect, you can enter signal history settings, see Figure 97 for an example.
Figure 97. Dial Log Configuration Aspect
208 3BSE035041R4001
Section 8 Configure Dialed Communication (Option) Enter Signal History Settings
4. From the History Log drop-down list, select the relevant history log.
5. Enter the start register address in the Start register box. The start register is the first of the registers used in the dialed controller to store the historic values for the signal.
6. To use the default history settings, select the Use Default PLC Values check box, and then skip to the next step. Otherwise, clear it and then:
– In the Index Register box, enter the index register address. The index register is the register used in the dialed controller to keep track of where the latest historic value for the signal is stored.
– In the # Registers box, enter the number of registers used in the dialed controller to store the historic values for the signal. This number is also called the data buffer size.
– In the Index Correction box, enter the index correction value. This value is used to offset where the latest historic value is stored. It is usually equal to 0 or 1.
– Select either Use Computer Time Stamp or Use PLC Time Stamp. When historic data is collected, the time stamp is used to determine the time of the last sample.
Computer time stamp: the time for the call to the controller is used.
PLC time stamp: the time is read from two registers in the controller. Enter the address for the first of these two registers in the Address box.
7. Click Apply.
8. Repeat Step 1 to Step 6 for each other signal part of a dialed controller.
9. Deploy the configuration for each affected control network.
10. The dial history configuration is now finished.
The start register address, index register address, data buffer size, index correction and PLC time stamp register address mentioned below depend on how the dialed controller is programmed. For more information, see Dialed History on page 201.
3BSE035041R4001 209
Enter Signal History Settings Section 8 Configure Dialed Communication (Option)
210 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option)
IntroductionThis section describes how to configure the IEC 60870 driver for PLC Connect.
The IEC driver provides communication with controllers by the IEC60870-5 protocol suite. The protocols 101 (serial) and 104 (network) are supported.
When installed the IEC 60870 driver is accessible in the configuration aspects of PLC Connect just as any other protocol driver. The IEC driver uses an IEC 60870 protocol server to handle IEC 60870 telegram traffic. The IEC 60870 protocol server has a Configuration Window that is used to setup certain protocol server parameters.
The protocols 102 and 103 are not supported.
An IEC 60870 unit (mentioned later in this section) is the same as a controller.
3BSE035041R4001 211
Configuration Window Section 9 Configure IEC 60870 Driver (Option)
The IEC 60870 driver includes support for:
• IEC 60870 controlling station, including transmission protocols IEC 60870-5-101 and IEC 60870-5-104.
• Round-Robin polling
• Detailed polling schedule
• Optimized for low-bandwidth and noisy communication channels
Configuration WindowLimited configuration of the IEC 60870 driver is required.
The Configuration Window allows users to view and alter configuration parameters at run time. When a user views a configuration parameter, the information is retrieved and displayed. Updated parameters are sent as a group to the protocol server when submitted.
Figure 98. IEC Driver
212 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Configuration Window
To view the Configuration Window, select: (Windows XP) Start > All Programs > ABB Industrial IT 800xA > PLC Connect > IEC60870 > Configuration Utility.
Configuration can also be made by editing an XML file.
The Signal Configuration aspect within the Plant Explorer is used to connect the signal Aspect Object to an individual process signal. It is possible to use the Browse button, to browse for items in the protocol server.
Figure 99. Configuration Window
3BSE035041R4001 213
Commands Section 9 Configure IEC 60870 Driver (Option)
Commands
Table 28 describes the commands in the Configuration Window.
Table 28. Configuration Window
Command Description
Main menu Provides access to the File, Edit, View, Tools, and Help menus.
Main toolbar Provides shortcut buttons for commands in the main menu (context-sensitive).
Current configuration Displays a tree of configuration objects currently defined in the server. Select an object to display its current settings in the right-hand panel.
Server Configuration Objects under this node affect how the server communicates with the data source.
Alias Configuration Define aliases and alias groups under this node.
Object settings panel Displays the current settings of the object presently selected in the tree.
Statistics panel Displays available statistics for the object presently selected in the tree: Sent, Received, Timed out, Retried, Failed, and Overrun.
Reset Statistics Resets statistics on the object presently selected in the current configuration tree.
Clients Displays the total number of clients presently connected to the server.
Server Time Displays the current time.
214 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Commands
The File Menu
Table 29 describes the commands in the File Menu.
Table 29. File Menu
Command Description
New Clear the current configuration and start a new one.
Open Clear the current configuration and load a new one from an existing file. Displays the Open Configuration dialog box to prompt for the file name before continuing.
Save Save the current configuration to an XML file. Displays the Save Configuration dialog box to prompt for a new file name if the configuration is new and has no been saved before.
Save As Save the current configuration to an XML file. Displays the Save Configuration dialog box to prompt for a new file name.
Export Aliases Export all currently configured aliases to a CSV file. Displays the Export Aliases dialog box to prompt for a file name.
Import Aliases Clear all aliases and import new ones from a CSV file. Displays the Import Aliases dialog box to prompt for an existing file name.
Shutdown Server
Not to be used.
Close Hide the main configuration window.
3BSE035041R4001 215
Commands Section 9 Configure IEC 60870 Driver (Option)
The Edit Menu
Table 30 describes the commands that appear in the Edit Menu when the currently selected object appears under the Server Configuration node.
Table 31 describes the commands that appear in the Edit Menu when the currently selected object appears under the Alias Configuration node.
Table 30. Edit Menu in the Server Configuration Node
Command Description
Undo/Can't Undo Not implemented.
Delete Remove the currently selected object from the server configuration. Prompts the user for confirmation before continuing if references exist to items associated with the selected object or one of its children. Does not remove such objects but simply disables them and sets them to “marked for deletion”.
Define New Display the Insert New Object dialog box used to create a new configuration object under the currently selected configuration object.
Table 31. Edit Menu in the Alias Configuration Node
Command Description
Undo/Can't Undo Not implemented.
Rename Rename the currently selected alias group.
Delete Alias Group
Remove the currently selected alias group and all subordinate groups and aliases.
Delete Alias Remove the currently selected aliases.
Insert Alias Group Create a new alias group under the currently selected alias group.
Insert New Alias Display the Insert New Alias dialog box used to create a new alias under the currently selected alias group.
216 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Commands
The View Menu
Table 32 describes the commands in the View Menu.
The Tools Menu
Table 33 describes the commands in the Tools Menu.
Table 32. View Menu
Command Description
Statistics Display/hide general communication statistics for the currently selected object.
Properties Not implemented.
Reset Statistics Reset all statistics for the currently selected object to zero.
Defaults Display the Server Defaults dialog box used to configure the default settings for the various types of communication objects available in the server.
Refresh Rebuild the tree display of the server configuration and fully expand all branches.
Options Display the Options dialog box used to change general server options.
Table 33. Tools Menu
Command Description
DCOM Configuration
Not supported
3BSE035041R4001 217
The Options Dialog Box Section 9 Configure IEC 60870 Driver (Option)
The Help Menu
Table 34 describes the commands in the Help Menu.
The Options Dialog Box
The Options dialog box is used to edit the protocol server options.
General Options
The General settings allow you to edit general server options.
To view the General Options:
1. In the Configuration Window, from the View menu, select Options.
The Options dialog box appears.
2. Click the General tab to display the General Options settings dialog box.
Table 34. Help Menu
Command Description
About Display information about the software, which is re-licensed from Matrikon Inc.
Do not use the Interface Logging tab. Interface logging is not supported.
218 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) The Options Dialog Box
Table 35 describes the commands in the General Options settings dialog box.
Figure 100. General Options
Table 35. General Options
Command Description
Save current configuration on shutdown
Automatically saves the current configuration to the specified file before shutting down if selected.
Backup copies Automatically keep up to the specified number of backup copies of the configuration file when saving the configuration.
Load configuration on start-up
Automatically load a configuration from the specified file when starting up if selected.
3BSE035041R4001 219
The Options Dialog Box Section 9 Configure IEC 60870 Driver (Option)
General Logging Options
The General Logging settings allow you to edit general logging options.
To view the General Logging Options:
1. In the Configuration Window, from the View menu, select Options.
The Options dialog box appears.
2. Click the General Logging tab to display the General Logging Options settings dialog box.
Filename Full path of an existing file for load and save operations.
Click the ellipsis button to display the Open dialog box used to select an existing file name.
Launch configuration program on start-up
Automatically launch the configuration utility when starting up as a local executable (rather than a Windows service) if selected.
Restrict items to pre-configured aliases only
Prevent the client from adding items other than configured aliases if selected.
To have General Options Settings changes take effect, shut down and restart the PLC Connect node.
Table 35. General Options (Continued)
Command Description
220 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) The Options Dialog Box
Table 36 describes the commands in the General Logging Options settings dialog box.
Figure 101. General Logging Options
Table 36. General Logging Options
Command Description
Enable activity logging
Enable/disable general activity logging at the specified detail level (High, Medium, Low, or None) if selected.
Commit all log file writes
Flush the file buffer after each message logged in case the server is crashing.
Overwrite old log information
Overwrite the old log file each time the server starts up if selected. Otherwise, rename the old log file with an underscore (“_”) prefix.
3BSE035041R4001 221
The Options Dialog Box Section 9 Configure IEC 60870 Driver (Option)
Advanced Options
The Advanced settings allow you to view and edit advanced server options.
To view the Advanced Options:
1. In the Configuration Window, from the View menu, select Options.
The Options dialog box appears.
2. Click the Advanced tab to display the Advanced Options settings dialog box.
General Activity Logging Filename
Full path for the general activity log file. Click the ellipsis button to display the Open dialog box used to select an existing file name.
Filter String Match string for filtered log.
Filtering Filename Full path for the filtered log file. Click the ellipsis button to display the Open dialog box used to select an existing file name.
General Logging Options Settings take effect immediately.
Table 36. General Logging Options (Continued)
Command Description
222 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) The Options Dialog Box
The Advanced Options settings dialog box, see Figure 102, appears.
Table 37 describes the commands in the Advanced Options settings dialog box.
Figure 102. Advanced Options
Table 37. Advanced Options
Command Description
OPC Group Update Rate (minimum)
Minimum update rate (milliseconds) allowed. Prevents requesting update rates that are impossible to achieve or that cause heavy CPU loads. The default value is 100ms.
Time granularity Determines the maximum resolution for data change detection. Time granularity should always be equal to or less than the minimum group update rate.
3BSE035041R4001 223
Server Configuration Section 9 Configure IEC 60870 Driver (Option)
Server Configuration
The protocol server requires some configuration. This sub-section shows you how to create and edit objects, using the Configuration Window.
Inserting New Objects
The Insert New Object and Create New dialog boxes are used to create new objects, including new Serial, and Network Channels.
The Insert New Object Dialog Box
The Insert New Object dialog box, see Figure 103, displays a different set of options depending on the type of object selected and the types of objects already configured under it.
To have Advanced Logging Options Settings changes take effect, shut down and restart the PLC Connect node.
Figure 103. Insert New Object Dialog Box
224 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Server Configuration
Table 38 describes the types of objects that are available for insertion as a child in the Insert New Object settings dialog box, depending on which object is currently selected.
To insert a new object:
1. In the Configuration Window, from the Edit menu, click or, from the Edit menu, select Define New.
The Insert New Object dialog box appears.
2. Select the type of object you want to create from the list, and then click OK.
The Create New dialog box appears.
Table 38. Available Objects
Selected Object Insert New Object Dialog Box Options
Server Configuration
Any of:
Serial Channel
Network Channel
Fail-over Channel (not supported)
Serial Channel One of:
Radio (not supported)
Dial-up Connection (not supported)
IEC 60870 Unit
Network Channel Only: Network Host
Network Host One of:
Dial-up Connection (not supported)
IEC 60870 Unit
IEC 60870 Unit None
3BSE035041R4001 225
Server Configuration Section 9 Configure IEC 60870 Driver (Option)
The Create New Dialog Box
The middle frame of the Create New dialog box, see Figure 104, displays dynamic channel settings that contain a different set of options depending on the type of object you are creating.
Figure 104. Create New Dialog Box
226 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Server Configuration
Table 39 describes the components that are common to all version of the Create New dialog box.
To create a newly inserted object:
1. In the Create New dialog box, enter a name for the object. This name is part of the item ID that globally identifies data items under the object. You can also enter a description of the object.
2. Set the Channel Settings as required, see the following sub-sections.
3. Click OK.
The object is created.
Viewing and Editing Serial Channels
The Serial Channel Settings dialog box is used to both view and to edit channel settings. This is virtually the same as the Create New dialog box for serial channels, with the exception that it appears after the object has been created.
The Serial Channel Settings dialog box includes two tabs, the Communication tab and the Data Acquisition tab. Clicking on these tabs lead to the Communications and Data Acquisition settings respectively.
Table 39. Create New Dialog Box
Component Description
Name Name of the object, which becomes an element of the item ID for data items under the object. Automatically converted to title case for display purposes.
Enabled Enable or disable communication for the object.
Description Optional, user-defined text (64-character maximum) for documentation purposes.
In order to use the object for communication, you must enable the object. This can be done at any time.
3BSE035041R4001 227
Server Configuration Section 9 Configure IEC 60870 Driver (Option)
The Serial Channel Settings Communication Tab
The Serial Channel Settings Communication settings, see Figure 105, include those for setting the device, baud, parity, and so on.
Table 40 describes all the components of the Serial Channel Settings Communication settings.
Figure 105. Serial Channel Communication Settings
Table 40. Serial Channel Communication Settings
Component Description
Device Local communications resource name (that is COMM port).
Baud Baud rate at which the communications device operates.
Parity Parity scheme to be used: none, odd, even, mark, space.
228 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Server Configuration
To edit serial channel communications settings:
1. In the Configuration Window, select a serial channel under Server Configuration.
The Serial Channel Settings dialog box appears.
Data bits Number of bits in the bytes transmitted and received (4-8).
Stop bits Number of stop bits to be used (1, 1½, or 2).
RTS line RTS (request-to-send) line/flow control. Must be DISABLED when working with radio modems that require key up and key down delays. (Radio is not supported.)
DTR line DTR (data-terminal-ready) line/flow control.
DSR flow control Indicates whether the DSR (data-set-ready) signal is monitored for output flow control. If this option is set and DSR is turned off, output is suspended until DSR is sent again.
DSR sensitivity Indicates whether the communications driver is sensitive to the state of the DSR signal. If this option is set, the driver ignores any bytes received, unless the DSR modem input line is high.
CTS flow control Indicates whether the CTS (clear-to-send) signal is monitored for output flow control. If this option is set and CTS is turned off, output is suspended until CTS is sent again.
XON/XOFF flow control
Indicates whether XON/XOFF flow control is used during transmission and reception.
Log bytes transmitted Indicates whether bytes transmitted on this channel are logged (at medium detail level).
Log bytes received Indicates whether bytes received on this channel are logged (at medium detail level).
Table 40. Serial Channel Communication Settings (Continued)
Component Description
3BSE035041R4001 229
Server Configuration Section 9 Configure IEC 60870 Driver (Option)
2. Click the Communication tab to view and edit communication settings for this serial channel.
3. When you have edited the settings, either click the Data Acquisition tab to edit the data acquisition settings, or click Apply to apply your changes now.
The Serial Channel Settings Data Acquisition Tab
The Serial Channel Settings Data Acquisition settings, see Figure 106, include those for setting delay times and intervals.
Figure 106. Serial Channel Data Acquisition Settings
230 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Server Configuration
Table 41 describes all the components of the Serial Channel Settings Data Acquisition settings.
Table 41. Serial Channel Data Acquisition Settings
Component Description
Inter-device delay Minimum amount of time (milliseconds) between the last request/response to/from one unit and the next request to another unit on this channel.
Reconnect delay Minimum amount of time (seconds) to wait before attempting to recover communications after the communication channel itself has failed.
Threshold rate Maximum achievable scan interval (seconds) for the channel. The server polls items with update rates faster than this on a continuous basis. Changing this option requires the server to re-optimize communication with all units on this channel.
Schedule all polls When this option is set, rather than polling them continuously, the server schedules items with update rates faster than the threshold rate to poll at the threshold rate. Changing this option requires the server to re-optimize communication with all units.
Read interval timeout The maximum amount of time (milliseconds) between the reception of one character and the arrival of the next. A value of zero indicates no limit.
DCD back-off delay The minimum amount of time (milliseconds) for DCD to be low before transmitting to avoid collisions.
DCD back-off random Maximum amount of extra random time (milliseconds) for DCD to be low before transmitting. Set both to zero to ignore DCD.
3BSE035041R4001 231
Server Configuration Section 9 Configure IEC 60870 Driver (Option)
To edit serial channel data acquisition settings:
1. In the Configuration Window, select a serial channel under Server Configuration.
The Serial Channel Settings dialog box appears.
2. Click the Data Acquisition tab to view and edit data acquisition settings for this serial channel.
3. When you have edited the settings, either click the Communications tab to edit the communications settings, or click Apply to apply your changes now.
Viewing and Editing Network Channels
The Network Channel Settings dialog box is used to both view and to edit network channel settings. This is virtually the same as the Create New dialog box for network channels, with the exception that it appears after the object has been created.
The Network Channel Settings, see Figure 107, include those for setting the protocol, inter-device and reconnect delays, and threshold rate.
232 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Server Configuration
Table 42 describes all the components of the Network Channel Settings dialog box.
Figure 107. Network Channel Settings
Table 42. Network Channel Settings
Component Description
Protocol Internet protocol (IP) type. Normally use Stream for TCP/IP.
Inter-device delay Minimum amount of time (milliseconds) between the last request/response to/from one unit and the next request to another unit on this channel.
Reconnect delay Minimum amount of time (seconds) to wait before attempting to recover communications after the communication channel itself has failed.
3BSE035041R4001 233
Server Configuration Section 9 Configure IEC 60870 Driver (Option)
To edit network channel settings:
1. In the Configuration Window, select a network channel under a serial channel.
The Network Channel Settings dialog box appears.
2. Edit the network settings for this network channel.
3. When you have edited the settings, click Apply to apply your change.
Viewing and Editing Network Hosts
The Network Host Settings dialog box is used to both view and to edit network host settings. This is virtually the same as the Create New dialog box for network hosts, with the exception that it appears after the object has been created.
The Network Host Settings, see Figure 108, include those for setting the protocol, inter-device and reconnect delays, and threshold rate.
Threshold rate Maximum achievable scan interval (seconds) for the channel. The server polls items with update rates faster than this on a continuous basis. Changing this option requires the server to re-optimize communication with all units on this channel.
Schedule all polls When this option is set, rather than polling them continuously, the server schedules items with update rates faster than the threshold rate to poll at the threshold rate. Changing this option requires the server to re-optimize communication with all units.
Log bytes transmitted Indicates whether bytes transmitted on this channel are logged (at medium detail level).
Log bytes received Indicates whether bytes received on this channel are logged (at medium detail level).
Table 42. Network Channel Settings (Continued)
Component Description
234 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Server Configuration
Table 43 describes all the components of the Network Host Settings dialog box.
Figure 108. Network Host Settings
Table 43. Network Host Settings
Component Description
Host name / IP DNS host name or “dotted quad” IP address. Blank indicates that the socket binds to a local address and behaves as a server.
Service name / Port IP service name or port number.
3BSE035041R4001 235
Server Configuration Section 9 Configure IEC 60870 Driver (Option)
To edit network host settings:
1. In the Configuration Window, select a network host under a network channel.
The Network Host Settings dialog box appears.
2. Edit the network host settings for this host.
3. When you have edited the settings, click Apply to apply your change.
Viewing and Editing IEC 60870 Units
The IEC 60870 Unit Settings dialog box is used to both view and to edit IEC 60870 unit settings. This is virtually the same as the Create New dialog box for IEC 60870 units, with the exception that it appears after the object has been created.
The IEC 60870 Unit Settings dialog box includes three tabs, the Communication tab, the Data Acquisition tab, and the Advanced tab. Clicking on these tabs lead to the Communication, Data Acquisition, and Advanced settings respectively.
The IEC 60870 Unit Settings Communication Tab
The IEC 60870 Unit Settings Communication settings, see Figure 109, include those for setting the link address, protocol, base poll time, time bias, originator address, and the field sizes for the link address, cause of transmission, common address, and object address.
236 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Server Configuration
Table 44 describes all the components of the IEC 60870 Unit Settings Communication settings.
Figure 109. IEC 60870 Communication Settings
Table 44. IEC 60870 Communication Settings
Component Description
Link address IEC 60870-5 link address (0-65535). Unit disconnects and reconnects if this parameter changes.
Protocol Indicates which protocol the unit supports (IEC 60870-5-101 or IEC 60870-5-104)
Base poll time Normalization time for scheduling polls, stored as UTC HH:MM:SS. Unit re-optimizes if this parameter changes.
3BSE035041R4001 237
Server Configuration Section 9 Configure IEC 60870 Driver (Option)
To edit IEC 60870 unit settings:
1. In the Configuration Window, select a IEC 60870 unit under a Serial Channel or Network Host.
The IEC 60870 Unit Settings dialog box appears.
2. Click the Communication tab to view and edit communication settings for this IEC 60870 unit.
3. When you have edited the settings, either click the Data Acquisition or Advanced tab to edit these settings, or click Apply to apply your changes now.
Time bias Minutes to add to a timestamp from the controlled station to convert it to UTC.
Originator address Cause of transmission originator address (if cause size is 2).
Link address (Field sizes subsection)
Size (in bytes) of the link address field (0, 1, or 2).
Cause of TX Size (in bytes) of the cause of transmission field (1 or 2).
Common address Size (in bytes) of the common address field (1 or 2).
Object address Size (in bytes) of the information object address fields (1, 2, or 3)
When creating a new IEC 60870 Unit object, a check box appears next to the Link address field and, if selected, the edit box is disabled. Leave the check box selected to have the server automatically choose the next available station address on the channel.
Table 44. IEC 60870 Communication Settings (Continued)
Component Description
238 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Server Configuration
The IEC 60870 Unit Settings Data Acquisition Tab
The IEC 60870 Unit Settings Data Acquisition settings, see Figure 110, include those for setting the inter-message delay, reply time-out, retries, reconnect delay, reconnect retries, max interrogate time, command time-out and reset process delay.
Figure 110. IEC 60870 Data Acquisition Settings
3BSE035041R4001 239
Server Configuration Section 9 Configure IEC 60870 Driver (Option)
Table 45 describes all the components of the IEC 60870 Unit Settings Data Acquisition settings.
Table 45. IEC 60870 Data Acquisition Settings
Component Description
Inter-message delay Minimum amount of time (milliseconds) between the last request/response to/from this unit and the next request to this same unit.
Reply timeout Maximum amount of time (milliseconds) to wait for the response to a request.
Retries Maximum number of times to re-send a request and wait for a response before concluding that communication has failed with the unit.
Reconnect delay Minimum amount of time (seconds) to wait before attempting to reconnect after communication has failed with a unit.
Reconnect retries Maximum number of times to re-send a request and wait for a response when trying to reconnect after communication has failed with a unit.
Max interrogate time Maximum amount of time (seconds) to allow a unit to be interrogated. A value of zero indicates that interrogation must be halted manually.
Command timeout Maximum amount of time (milliseconds) to wait for the response to an application command (regardless of link communication).
Reset process delay Minimum amount of time (seconds) to wait before attempting to reconnect after receiving a reset process activation confirmation.
240 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Server Configuration
To edit IEC 60870 unit settings:
1. In the Configuration Window, select a IEC 60870 unit under a Serial Channel or Network Host.
The IEC 60870 Unit Settings dialog box appears.
2. Click the Data Acquisition tab to view and edit data acquisition settings for this IEC 60870 unit.
3. When you have edited the settings, either click the Communications or the Advanced tab to edit these settings, or click Apply to apply your changes now.
3BSE035041R4001 241
Server Configuration Section 9 Configure IEC 60870 Driver (Option)
The IEC 60870 Unit Settings Advanced Tab
The IEC 60870 Unit Settings Advanced Tab, includes settings, see Figure 111, for balanced transmission, confirm user data, send short ACK, receive short ACK, allow commands, optimistic commands, allow C_RD_NA_1, and latch monitor data.
Figure 111. IEC 60870 Advanced Settings
242 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Server Configuration
Table 46 describes all the components of the IEC 60870 Unit Settings Advanced settings.
Table 46. IEC 60870 Advanced Settings
Component Description
Balanced transmission
Indicates whether the link is balanced (any station can transmit spontaneously) as opposed to unbalanced (only the controlling station can transmit spontaneously).
Confirm user data Indicates whether to request confirmation of user data transmissions. No effect on broadcast units.
Send short ACK Indicates whether to transmit single-character acknowledgements rather than fixed-length control frames.
Receive short ACK Indicates whether to accept single-character acknowledgements from the controlled station rather than just fixed-length control frames.
Allow commands Allow/disallow output operations to unit.
Optimistic commands Indicates whether to update a command item with the written value and an uncertain (non-specific) quality immediately after issuing the activation/deactivation command and before receiving the confirmation response.
Allow C_RD_NA_1 Indicates whether to use single-read commands (C_RD) to perform instantaneous polls for monitor items. Otherwise, a device read does nothing.
Latch monitor data When true, items “freeze” at their last value/quality/timestamp rather than going to bad qualities when the unit is set off scan.
3BSE035041R4001 243
Server Configuration Section 9 Configure IEC 60870 Driver (Option)
To edit IEC 60870 unit optimization settings:
1. In the Configuration Window, select a IEC 60870 unit under a Serial Channel or Network Host.
The IEC 60870 Unit Settings dialog box appears.
2. Click the Advanced tab to view and edit advanced settings for this IEC 60870 unit.
3. When you have edited the settings, either click the Communications or Data Acquisition tab to edit these settings, or click Apply to apply your changes now.
Viewing and Editing Server Defaults
The Server Defaults dialog box, see Figure 112, is used to both view and to edit server default settings, which are used as the initial settings when creating a new object of that type. The Server Defaults dialog box includes tabs for each object type, including Serial Channel, Network Channel, IEC 60870 Unit, and Network Host. Clicking on these tabs leads to the respective server defaults for that object type.
Do not use the Fail-over Channel, Dial-up Connection or Radio tabs, since these object types are not supported.
244 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Server Configuration
To edit server default settings:
1. In the Server Default Setting dialog box, click the tab with the type of object for which you want to set server defaults to view and edit the default configuration settings.
2. When you have edited the settings, either click another tab to edit the more settings, or click Apply to apply your changes now.
Figure 112. Server Defaults Settings
3BSE035041R4001 245
Alias Configuration Section 9 Configure IEC 60870 Driver (Option)
Removing Objects
You can easily remove any object you have created, but a warning message, see Figure 113, will appear if you remove an object that has data items to which the IEC driver hold references.
To remove an object:
1. In the Configuration Window, select the object you want to remove under Server Configuration.
2. From the Edit menu, select Delete or click .
If the client holds references to data items somewhere under the selected object, a warning message appears.
3. To mark the object for later deletion, click Yes. To leave the object unmodified, click No.
Items marked for deletion are disabled and a red X appears over the icon on the right side of the window when the object is selected.
Alias Configuration
The IEC 60870 driver provides the ability to create user-defined aliases that can be used in place of regular items. This feature is particularly useful when the item path for a given server is very complex or difficult to remember (for example, Com1.R1.Unit1.41.4.123).
Figure 113. Warning Message
246 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Alias Configuration
This sub-section shows you how to create and edit aliases, using the Configuration Window.
Inserting Alias Groups
Alias Groups are used to contain one or more configured aliases.
To insert an Alias Group:
1. In the Configuration Window, select Alias Configuration or a previously configured Alias Group.
2. From the Edit menu, select Insert Alias Group or click .
A new Alias Group folder appears.
3. Enter a new name for the Alias Group, and then press ENTER.
The Alias Group is renamed.
Renaming Alias Groups
Alias Groups can be renamed after they have been created.
To rename an Alias Group:
1. In the Configuration Window, select an Alias Group.
2. From the Edit menu, select Rename or click .
The Alias Group is renamed.
3BSE035041R4001 247
Alias Configuration Section 9 Configure IEC 60870 Driver (Option)
Inserting New Aliases
Use the Insert New Alias dialog box, see Figure 114, to insert a new Alias into an Alias Group or on its own, directly under the Alias Configuration node.
Table 47 describes all the components of the Insert New Alias dialog box.
Figure 114. Insert New Alias Dialog Box
Table 47. Insert New Alias Dialog Box
Component Description
Name Name for the alias (unique within the alias group).
Item Path Fully-qualified item ID for the item to which the alias refers.
Click the ellipsis button to display the Item Path Browser dialog box used to select an existing item on the server.
Alternatively, leave the item path blank to use the alias as a general in-memory variable. When doing so, either define the data type for the alias point as something other than “Default”, or else set the requested data type for reading and explicitly define the data type when writing values to the alias.
Data Type Coerce the value of the item to the specified type unless “Default” selected. Also serves as the “canonical” data type for the alias.
248 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Alias Configuration
The Insert New Alias dialog box can be expanded to display Scaling Options, see Figure 115. Available forms of scaling include: linear, square root, gain/offset, and simple text expressions.
Read only Prevent the client from writing values to the alias if selected.
Update Rate Update rate (milliseconds) to use with the “Poll when inactive” option.
Poll when inactive Continue updating the value for the alias at the specified update rate if selected, even if the alias is not accessed.
Save Save changes to the alias and hide the dialog box.
Save & Create New Save changes to the alias and begin configuring a new one.
Default to new Pressing Enter activates the “Save & Create New” button rather than the Save button if selected.
Scaling >> Enable scaling for the alias (displays scaling options).
<< No Scaling Disable scaling for the alias (hides scaling options).
Cancel Discard changes to (abandon creation of) the alias and hide the dialog box.
Figure 115. Scaling Options
Table 47. Insert New Alias Dialog Box (Continued)
Component Description
3BSE035041R4001 249
Alias Configuration Section 9 Configure IEC 60870 Driver (Option)
Table 48 describes the Scaling Options for the Insert New Alias dialog box.
Table 48. Scaling Options
Tab Component Description
Linear & Square Root
Raw High Maximum expected raw value from the item.
Raw Low Minimum expected raw value from the item.
Scaled High Maximum desired scaled value for the alias (corresponds to Raw High).
Scaled Low Minimum desired scaled value for the alias (corresponds to Raw Low).
Clamp High Clamp the scaled value at the high limit to prevent it from going out of range.
Clamp Low Clamp the scaled value at the low limit to prevent it from going out of range.
Gain/Offset Gain Scaling factor. (No limits are assumed.)
Offset Scaling offset.
Expression Input Simple text equation to apply to incoming values
(reads). Click the ellipsis button to display the Expression Wizard dialog box used to help build a formula.
Output Simple text equation to apply to outgoing values
(writes). Click the ellipsis button to display the Expression Wizard dialog box used to help build a formula.
250 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Alias Configuration
To insert a new Alias:
1. In the Configuration Window, select Alias Configuration or a previously configured Alias Group.
The Contents table for that Alias Group is displayed on the right side of the Configuration Window, see Figure 116, listing the Aliases, if any, it contains.
2. From the Edit menu, select Insert New Alias.
Consider the following:
• The data type for scaled values is double-precision real unless the Alias data type is specified.
• The item values must be numeric for linear, square root, and gain/offset scaling to work.
• The item values must be non-negative for square root scaling to work. Otherwise, the scaled value will be -1 with a bad quality.
• The server may be unable to load configuration files containing illegal scaling expressions, and may fail to start up properly. If this occurs, rename the configuration file so that the server will not load in on start up and create a new configuration file. Alternatively, edit the XML file to correct the bad alias settings.
It is usually better to create a new alias under an Alias Group rather than directly under the Alias Configuration node.
Figure 116. Contents Table
3BSE035041R4001 251
Alias Configuration Section 9 Configure IEC 60870 Driver (Option)
The Insert New Alias dialog box, see Figure 114, appears.
3. Enter a name for the Alias in the Name text box.
4. Enter the item Path and ID for the item to which the Alias refers, or click Browse to navigate to the item.
5. Click Scaling to enable scaling for the Alias. Click No Scaling to disable scaling and hide the Scaling Options.
The Scaling Options are displayed at the bottom of the Insert New Alias dialog box, see Figure 115.
6. Configure the Scaling Options as required, see Table 48, by clicking the appropriate tab for the form of scaling you require.
Available forms of scaling include: linear, square root, gain/offset, and simple text expressions.
7. Configure the remaining fields as required, see Table 47.
8. Click Save to save the Alias.
Editing Aliases
Aliases can be edited after they have been created, using the Edit Alias dialog box. This is virtually the same as the Insert New Alias dialog box, with the exception that it appears after the Alias has been created.
To edit an Alias:
1. In the Configuration Window, select an Alias, and then double-click or press ENTER.
The Edit Alias dialog box appears.
2. Make the changes you require.
252 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Alias Configuration
Removing Aliases
You can easily remove any Alias you have created.
To remove an Alias:
1. In the Configuration Window, select one or more Aliases.
2. From the Edit menu, select Delete Alias.
The Alias is removed.
Removing Aliases
You can easily remove any Alias Group you have created.
To remove an Alias Group:
1. In the Configuration Window, select an Alias Group.
2. From the Edit menu, select Delete Alias Group or click .
The Alias Group is removed.
Exporting Aliases
Use the Export Aliases dialog box to export all currently configured aliases to a CSV file.
To export all currently configured Aliases:
1. From the File menu, select Export Aliases or click .
The Export Aliases dialog box appears.
2. Enter a file name for the CSV export file.
3. Click Save.
The Aliases are exported.
3BSE035041R4001 253
Saving the Configuration Section 9 Configure IEC 60870 Driver (Option)
Importing Aliases
Use the Import Aliases dialog box to clear all Aliases and import new ones from a CSV file.
To import Aliases from a CSV file:
1. From the File menu, select Import Aliases or click .
The Import Aliases dialog box appears.
2. Browse to the CSV file name.
3. Click Open.
The old Aliases are cleared and the new ones are imported.
Saving the Configuration
When you have completed configuration of the server, use the Save Configuration dialog box to save the configuration to an XML file.
To save the configuration to an XML file:
1. From the File menu, select Save As or click (alternatively, you can select Save or click ).
The Save Configuration dialog box appears.
2. Enter a file name if you are saving the file for the first time.
3. Click Save.
The configuration is saved.
Clearing the Configuration
You can clear the configuration if you want to start a new configuration.
To clear the configuration:
1. From the File menu, select New or click .
If the client is still connected to the server, a warning message appears.
2. Click OK.
The configuration is cleared.
254 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Loading a Saved Configuration
Loading a Saved Configuration
If you have saved a configuration, you can clear the current configuration and then load the saved configuration file.
To clear the current configuration and load a saved configuration from an existing file:
1. From the File menu, select Open or click .
The Open Configuration dialog box appears.
2. Browse for the configuration file you want to load.
3. Click Open.
If the client is still connected to the server, a warning message appears.
4. Click OK.
The old configuration is cleared and the new configuration is loaded from the file.
Notation for Accessing Data ItemsThis sub-section describes data items used in the IEC 60870 driver.
IEC 60870 ITEMS
The server supports A.T[:Q].X notation for addressing individual objects on a unit.
• The server tries to extract a valid object address from a given item ID.
• The server accepts any valid integer in the range of 1 to 65535 (as applicable) for the logical station/sector address A (the “common address” of the application service data unit).
• The server accepts any valid mnemonic for the type identifier T (that is M_ME, C_SC_NA, and so on).
• If the mnemonic is for a command or a parameter, then the server checks for and accepts any valid integer between 0 and 255 appended to the mnemonic with a colon for the command qualifier Q (that is C_IC_NA:20). The server assumes a value of 0 if the qualifier is not present.
3BSE035041R4001 255
IEC 60870 ITEMS Section 9 Configure IEC 60870 Driver (Option)
• The server accepts any valid integer in the range of 0 to 16777215 (as applicable) for the information object address X.
• The server requires at least the channel and unit names prefixed to the object address, each element separated by a period (that is COM1.RTU1.1.M_SP.1), in order to differentiate between objects on different units and different communication channels.
Data Items
The server supplies the following data items with the specified data types and access rights for each IEC 60870 unit (common address field omitted for brevity).
Monitor Items
The server supplies the following read-only data items for access to monitored information objects. The server exposes the quality descriptor fields as part of the item data quality word.
Item ID Data Type OV SB BL NT IV Comments
M_SP.X VT_BOOL * Single-point information (OFF, ON). OV only applies to packed change events (ASDU 20).
M_DP.X VT_UI1 Double-point information (INTERMEDIATE, OFF, ON, INDETERMINATE).
M_ST.X VT_I2 Step position with transient state indication.
M_BO.X VT_UI4 Bit string.
M_ME.X VT_R8 Measurement (normalized/scaled/floating point).
M_IT.X VT_I4 Integrated total.
256 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) IEC 60870 ITEMS
The server issues single-read commands (C_RD) when the client requests an instantaneous poll (read from DEVICE) for these items, with the exception of M_EI, when configured to do so.
Command Items
The server supplies the following read-write data items for issuing control commands.
Process control:
The server supplies the following data items for issuing process commands in the control direction.
M_EI.0 VT_UI1 End of initialization (most recent cause).
P_ME:Q.X VT_R8 Parameter of measurement.
Qualifier (Q): 1-63 = kind of parameter.
Item ID Data Type Qualifier (Q) Comments
C_SC_NA:Q.X VT_UI1 0 = default
4 = short pulse
8 = long pulse
12 = persistent
+128 = select
Single command
C_SC_TA:Q.X VT_UI1 Single command with time.
C_DC_NA:Q.X VT_UI1 Double command.
C_DC_TA:Q.X VT_UI1 Double command with time.
C_RC_NA:Q.X VT_UI1 Regulating step command.
C_RC_TA:Q.X VT_UI1 Regulating step command with time.
Item ID Data Type OV SB BL NT IV Comments
3BSE035041R4001 257
IEC 60870 ITEMS Section 9 Configure IEC 60870 Driver (Option)
The server issues the specified activation command when the client writes a control value to one of these items. If the controlled station responds with a positive confirmation, then the server updates the data item with the written value and a good quality and returns a success result. If the controlled station responds with a negative confirmation or error message, or does not respond at all, then the server updates the data item with a bad quality and returns a failure result.
If the controlled station issues an activation termination for the command (at a later time), then the server updates the data item with the written value, a good quality, and a "constant" limit to indicate that the command is now complete.
For single, double, regulating step, and set-point commands, the server issues a deactivation command for the last control message sent for that item when the client writes an empty value. If the controlled station responds with a positive confirmation, then the server updates the data item with an empty value and a good quality and returns a success result. If the controlled station responds with a negative confirmation or error message, or does not respond at all, then the server updates the data item with a bad quality and returns a failure result.
For single, double, and regulating step commands, the server combines the written value with the qualifier specified in the item ID using a bit-wise OR operation to create the qualifier code actually sent with the activation command. This allows the
C_SE_NA:Q.X VT_R8 0 = default
+128 = select
Set point command - normalized.
C_SE_TA:Q.X VT_R8 Set point command with time - normalized.
C_SE_NB:Q.X VT_R8 Set point command - scaled.
C_SE_TB:Q.X VT_R8 Set point command with time - scaled.
C_SE_NC:Q.X VT_R8 Set point command - floating-point.
C_SE_TC:Q.X VT_R8 Set point command with time - floating-point.
C_BO_NA.X VT_UI4 N/A Bit string command.
C_BO_TA.X VT_UI4 N/A Bit string command with time.
Item ID Data Type Qualifier (Q) Comments
258 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Technical Aspects of Low Bandwidth and Noisy
client to perform different operations on the same information object using a single data item.
The server updates the item with the written value and an uncertain quality after sending the activation/deactivation command and before receiving confirmation when configured to do so.
Technical Aspects of Low Bandwidth and Noisy Communication
In general, most PLC Connect applications involve communication with large fields of remote units over a slow medium. As a consequence, it may take a relatively long time to collect/exchange all of the necessary data from/with the field. Such applications require the use of an efficient and orderly transaction exchange mechanism in order to transfer data reliably.
This sub-section describes how the IEC 60870 driver implements reliable, optimized communication for supervisory control and data acquisition.
Channels
The IEC 60870 driver supports the channels of communication described in the following sections.
Serial
The IEC 60870 driver supports direct serial communication via RS232, RS422, RS485, and so on. In addition, the server:
• supports a variety of settings for baud rate, data bits, parity, and stop bits.
• supports RTS/CTS flow control as well as other common types of flow control (DSR/DTR, software XON/XOFF).
• supports DCD transmission collision avoidance with random back-off time.
• allows you to preset control line states (RTS, DTR) to accommodate line converters (RS232/RS485, RS232/RS485, and so on).
3BSE035041R4001 259
Poll Optimization Section 9 Configure IEC 60870 Driver (Option)
Network
The IEC 60870 driver supports network communication via Internet Protocol (IP). In addition, the server:
• establishes client connections to both TCP/IP and UDP/IP servers.
• accepts incoming connections and responds to requests from TCP/IP or UDP/IP clients.
• supports direct network communication with a single device or with multiple devices through a terminal server.
Poll Optimization
The IEC 60870 driver organizes poll requests as efficiently as possible.
The server provides values for data items in item groups at the requested update rate for those groups (fastest rate used when more than one group references the same items). If the requested update rate is too fast for the server to handle, it makes a “best effort” to update as fast as possible. Internally, the server tries to keep the data items at least as fresh as indicated by the update rate. The server will not, however, send updates to the client any faster than the update rate in order to avoid overwhelming it.
Poll optimization involves the destruction and re-creation of communication packets for reading in the most efficient manner. During the optimization process, the server gathers the requested data items into bundles with similar scan rates, and then uses those bundles to generate packets. Optimization is most successful when it generates the fewest number of packets to contain all items with the same scan rate.
Once the server has completed the optimization process and has generated the necessary packets to read the requested data, it then determines whether to queue the packets for transmission. Queued packets are transmitted to the unit at the earliest opportunity. Once all packets have been sent, the queue is emptied and the unit relinquishes control of the circuit to the next unit.
Transactions
The IEC 60870 driver employs a robust transaction exchange mechanism for supervisory control and data acquisition. The server completes all same-priority transactions for a particular unit before moving on to the next unit, but interrupts
260 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Transactions
lower-priority transactions in order to carry out higher-priority transactions, (after the current transaction has completed). Demand operations, such as writes and device reads, have the highest priority.
Continuous
The IEC 60870 driver polls all units continuously, in a cyclic, round robin fashion (one after another) in order of the unit station numbers, when configured to do so. The server optimizes together low-priority items with scan times faster than a configured threshold rate and then polls them continually.
Any packet with a scan rate less than the threshold rate is queued immediately following optimization. Also, any packets with a scan rate less than the threshold rate is immediately re-queued when the queue is emptied.
Threshold Rate
In some cases, it may take minutes or even hours for the server to perform all of the communication operations necessary to finish one complete poll of all units on a channel. This has a significant impact on the optimization and scheduling of read operations. The Threshold Rate is used by the server to distinguish between scan rates that are attainable and those that are not.
The Threshold Rate indicates the fastest scan rate (in milliseconds) that the channel can realistically provide. This allows the polling mechanism to generate larger, more efficient packets for items with scan rates faster than the Threshold Rate, to be sent “as fast as possible”. Items with scan rate equal to or slower than the Threshold Rate are optimized as normal and scheduled to send at their specified rate.
For example, if it takes approximately five minutes to collect all the desired information from a large field of units, then it is not possible for a particular item to receive an update every ten seconds without interrupting the round-robin polling sequence. In such a case, a Threshold Rate of 300,000 milliseconds would be appropriate, as it would allow the driver to optimize all items scanning faster than five-minute intervals into fewer packets.
Configuring the Threshold Rate for best performance may require some experimentation. The Poll Time and Overrun statistics may help to determine the best setting. Alternatively, select a smaller Threshold Rate and configure all fast
3BSE035041R4001 261
Transactions Section 9 Configure IEC 60870 Driver (Option)
items to have scan rates below the Threshold Rate and all slow items to have scan rates well above the selected rate.
Interrogation
Use the Interrogate control item to place a particular unit on a communication channel into interrogate mode. This has the effect of interleaving high-priority polls for that unit into the round-robin sequence. The interleaved polls only request items with scan rates less than the Threshold Rate; scheduled reads continue in the normal fashion (unaffected).
For example, in a field of ten units, if unit 3 is placed into interrogate mode, all of its continuous polls will be sent after unit 1 has finished sending, and again after unit 2 has finished sending, and again after unit 4, and so on. In other words, the polling sequence changes from 1...2...3...4...and so on to 1...3...2...3...4...3...and so on.
This option might be used when activity on a specific unit is of particular interest for a period of time, and operators are not able to wait for the complete round-robin sequence to finish. Only one unit on a channel may be placed into interrogate mode at a time. Naturally, the interleaved polls increase the total amount of time required to poll all units on the channel.
Scheduled
The polling mechanism manages the schedule during idle processing. Whenever a packet becomes due, it is placed on a queue for transmission at the earliest opportunity. The packet’s next scheduled time is then calculated, usually just by adding the scan interval to the last scheduled time.
When scheduling packets, the IEC 60870 driver calculates the absolute time at which that packet should be sent first (aside from the initial queuing). This first scheduled time is normalized to the base poll time configured for the unit. The server handles scheduled polls due for a unit first before handling continuous polls.
Scheduled packets with the initial poll option are queued immediately. The server always performs optimization when initially establishing or re-establishing communication with a unit. Therefore, the aforementioned packets are queued immediately at these times. The schedule all polls option transforms all continuous polls on a channel into scheduled polls with a scan rate equal to the Threshold Rate. This allows for finer control over precisely when these polls occur.
262 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Transactions
Priority
Certain types of operations may need to interrupt the regular round-robin polling sequence in order to carry out important tasks. To facilitate this, the “due” queue is sorted, first by the priority level of the packet, and then by the order in which they are queued. Thus, the packet at the front of the queue is also the highest-priority packet to be sent.
When a unit queries the channel to find out whether it is its turn to communicate, it also indicates the priority level of its next packet to be sent. If this level is higher than the level presently being used by any other unit, the requesting unit is granted priority override and takes over communicating on the channel. The unit will retain priority override as long as it continues sending packets at the same priority level, and no other unit requests to send at a higher level.
Once a unit has finished sending all the packets at a certain level, those packets are immediately removed from the queue, allowing them to become due again before lower-priority packets are finished, if necessary. The channel keeps track of the last unit sending at lower levels so that polling continues where it left off when a unit finishes priority override.
Overruns
Whenever it becomes a particular unit’s turn to communicate, it services all of the messages in its own queue until they have all been sent. During this time, duplicate packets cannot be entered into the queue. If a packet becomes due again before it has been removed from the queue, then this constitutes an overrun providing this occurs while communication is still good. Overruns are a symptom that there are communication problems, or that the Threshold Rate needs to be tuned.
Instantaneous
Demand (that is, user-initiated) operations, such as reading from a device or writing control values, bypass the schedule and priority queue and execute immediately, in the order indicated by the client application. These types of operations force the driver to attempt to re-establish communication with failed devices immediately, regardless of the configured re-connection delay.
3BSE035041R4001 263
Integrity Section 9 Configure IEC 60870 Driver (Option)
Integrity
The IEC 60870 driver uses specialized communication algorithms to maintain communication integrity as much as possible. This section describes how the server deals with communication integrity with regard to Transmission, Reception, and Failure and Recovery.
Transmission
Before transmitting a packet, the server may impose a short delay, based on configured settings for the port and the unit. This delay can be used to help slower devices keep up with polling, to avoid overloading the circuit, and, sometimes, to allow unsolicited messages to be received from field devices.
Inter-message delay is configured on a per-unit basis, and indicates the amount of quiet time that must be allowed to pass between receiving a response from and transmitting the next request to the same unit. Inter-device delay is configured on a per-port basis, and indicates the delay that must pass between receiving a response from one unit and transmitting a request to another unit on the same circuit. It is also used whenever a broadcast occurs on the circuit.
Reception
The IEC 60870 driver employs a sliding window algorithm in order to filter out line noise on incoming messages without always having to wait for one entire timeout interval.
The server attempts to read sufficient bytes for a fixed-size response header. If the header is not valid, then the server discards the first byte of the header and repeats the process until the timeout interval passes. If the header is valid, then the server attempts to read sufficient bytes for the remainder of the message (length in header) including the CRC. If the CRC is not valid, then the server discards the first byte of the header and repeats the process until the timeout interval passes. If the CRC is valid, then the server considers the response valid and processes the content.
Failure and Recovery
The IEC 60870 driver uses the Reply Timeout and Retry settings in order to determine when communication has failed with a particular unit.
264 3BSE035041R4001
Section 9 Configure IEC 60870 Driver (Option) Diagnostics
Whenever a request sent to a unit fails to receive a valid response within the timeout period, the polling mechanism repeats the request up to the specified number of Retries. If the proper response is still not received, the unit is considered to be in communication failure mode. The server also concludes that communication has failed with a particular unit when the number of consecutive failed demand operations is greater than the Retries setting for that unit.
The server polls units experiencing communication failure at a slower rate, based on the Reconnect Delay, using the configured number of Reconnect Retries for each attempt. However, the server attempts to re-establish communication with failed units immediately when it executes demand operations for that unit.
In addition, the server uses the reconnect delay for the channel when it cannot connect to the communication medium (for example, when it is unable to open the COMM port) to avoid pinning the CPU.
DiagnosticsThe server supplies diagnostic information to assist operators and support personnel with troubleshooting communication problems and software faults.
Logging
If difficulties occur with a server then the log files can be extremely valuable for troubleshooting. By default, the server log very little information. The General Logging tab of the Options dialog in the main configuration window contains settings to control server logging (for more information, see General Logging Options on page 220).
General Activity Logging records information about the internal workings of the IEC 60870 server. It is useful for troubleshooting problems with configuration and device communication. Interface Activity Logging records information about the client/server communication. It is useful for troubleshooting compliance issues.
The higher the log level, the more information is recorded. However, server performance may decrease at higher log levels. The recommended operating level is Medium. More log levels are available for both types of logging which record more detailed information, as well as the ability to output log statements to a console window at run time.
3BSE035041R4001 265
Troubleshooting Section 9 Configure IEC 60870 Driver (Option)
In general, the server logs all errors and other information of immediate importance to the user at the low detail level, all warnings and other information of moderate importance to the user at a medium detail level, and additional information concerning the normal functioning of the software at a high detail level. The server logs also further information of concern to support personnel at debug detail level.
The server includes an option on each communication channel to log all bytes transmitted and/or received for that channel at a medium detail level. In combination with output to a console window this may serve as a protocol analyzer. The server also logs communication events such as communication recovery, invalid CRCs, error responses, incomplete responses, and time-outs.
TroubleshootingPlease check the following list of Problems and Solutions before contacting ABB Service. The solutions are discussed in the following sub-section.
• Client unable to create or read items under configured object (device).
• Server does not retain settings
Problems and Solutions
Client unable to create or read items under configured object (device).
Problem: The client is unable to create or read items under a configured object (device).
Solution: Check the object configuration, see sub-section Server Configuration on page 224. Ensure that the Enabled check box is selected.
Server does not retain settings
Problem: The IEC 60870 server does not retain its previous settings and needs to be re-configured each time it starts up.
Solution: In the Configuration Window, select Options from the View menu. Under the General tab, ensure that the Load configuration on start-up check box is selected and that the correct file name appears in the edit box (see sub-section General Options on page 218).
266 3BSE035041R4001
INDEX
AABB University 12AC 800M/C 36ActiveX 172Address 44, 50 to 51Administrator Privileges 11Advant Controller 25 36Advant Controller 31 37Advant Master AC 100 37Advant Master AC 400 37Alarm 54, 95, 97, 154, 158, 177
Color 68Icon 56, 70, 72Status 54
Alarm and Event List 97AlarmControl Aspect 95AlarmState
Icon 70Property 66
AlarmStatus Aspect 54AlarmWarningCombo Icon 70Alias 215 to 216Application Engineer 11Aspect
AlarmControl 95AlarmStatus 54Faceplate 81Faceplate Element 82, 94Graphic Display 54Graphic Element 54, 57
Aspect Link 84 to 85Aspect Server 32Authentication 32
BBackup 180Benefits 27Binary Signal Type 44Buffer Size 201Bulk Data Manager 35, 154, 160Button 88 to 89
Rules 92
CCalculation Type 125 to 126, 128Call
Cyclic 193Disconnect 164Manually Ordered 183Permanent 183Prioritized 164Time Limited 183
Call Time 194Capitalization 13Caution Icon 12Change of State 131Character Style 13Checklists
Configuration Tool 176Event/Alarm 177Open Functions 178Windows 178
Client 32, 102Color 68Comli 187Communication
Parameter 48, 50
3BSE035041R4001 267
Index
Settings 200Communication Port 184Communication Server 212COM-port 190, 192Config View 81Configuration 11, 211
Deploy 52Configuration Tool
Checklist 176Configuration Window 211 to 214Connection 183, 191
Add 191Configure 191Setup 191
Connectivity 23, 25Connectivity Server 32ConnectPLC Method 165Control Blocked Signals 97Control Network 41
Setup 41Control of Signal Value 136Control Structure 43, 45, 49, 53 to 54Controller 44 to 45, 49 to 51, 155, 183, 186, 199,
201, 211AC 800M/C 36Address 44, 50 to 51Advant Controller 25 36Advant Controller 31 37Advant Master AC 100 37Advant Master AC 400 37Buffer Size 201Collect Historical Data 201Connectivity 25Create 45Data Buffer 201Dialed 183Driver 48Index Register 202Integration 25Name 205
Protocol 47Remote Terminal Unit 211 37SattCon/PBS PLC 38SattLine 37Setup 199, 206, 208Time Stamp 203
Controller Object 45Conventions 13Cyclic Call 183, 194
Call Time 194Setup 193
DData Buffer 201 to 202Data Items 255Database 102, 117DCOM 217DCS 25, 27, 30Deploy 52, 69, 78Design Window 57, 59, 68
Grid 56Diagnostic Files 178Diagnostic Tools 171
Vocabulary 172Dial Editor 188Dial Manager 164, 184Dial Manager Access 167Dial Supervisor 201Dialed Communication 159 to 160, 183
Configuration 188Dialed Controller 183Dialed History 186
Configuration Example 204DialHistoryType 204 to 205Dialing Rules 184, 186Digi Communication Boards 175Disabled Control Signals List 97Disconnect 164DisconnectPLC Method 166Display 54
268 3BSE035041R4001
Index
Display Tool 69DLL 123 to 125, 127, 130, 136 to 138, 141, 172
Interface 130Documentation 12, 20 to 21Driver 48, 211 to 212
EElement 56 to 57, 59, 73Element Browser 55Embedded Help 21Error Presentation 60Event 54, 97, 130, 132 to 134, 137, 141, 152, 158,
177Event Extended Options 143Export 180Expression 59, 67, 84Expression Builder 55, 59 to 60, 64, 77Extended Hierarchy 43
FFaceplate 79
Aspect Link 84 to 85Button 88Create 81Edit 81Indicator 84Layout 82Property 95
Faceplate 3Way Valve 80Faceplate Advanced 80Faceplate Element 79Faceplate Element Aspect 82, 94Faceplate Standard 80Fatal Errors 179Feature 23Features 27, 33Force
Lock 79, 88Signal List 97Signal Value 134
Formal Instance List 43Function 23Functions 27, 33
GGeneric Control Network Configuration 41GetLineStatus Method 166Graphic Aspect 55, 57
Deploy 69Graphic Display Aspect 54, 68, 70, 73, 79Graphic Element 56
Basic 56Connect 59Create 57Deploy 78Library 56List 56Optimized 56, 73Property 59Resize 59Toolbox Name 57
Graphic Element Aspect 54, 57, 68Graphic Library 56
PLC Process Icons 56, 60PLC Subelements 56, 60
Graphic Property 59 to 60, 63Window 68, 76
Graphics 53See also Process Graphics
Graphics Builder 53, 55Connect Element 59Design Window 56 to 57, 59, 68Element Browser 55Expression Builder 55, 59 to 60, 64Graphic Library 56Properties Window 59 to 60Startup Options 55Toolbox 56 to 58
3BSE035041R4001 269
Index
HHardware Address 44, 50 to 51Hardware Diagnostics 171Hayes Command 187 to 188Heap 172Help 21Hide Help 21Hierarchical Log 205Hierarchy 43Hint 12History 186, 201
Configuration Dialed 204Log 205Settings 206, 208
II/O 31, 44, 50Icon 12, 56 to 57, 66, 70, 72
Color 68Indicator 84
IEC 60870 211Configuration 211Configuration Window 211 to 214Controlling Station 212Data Items 255Driver 211 to 212Supported Features 212
IEC 60870 Server 211 to 212, 265 to 266Browse for Items 213Defaults 217Edit 216, 218, 222Settings 214
IEC 60870 Unit 211, 225, 238, 244, 256Edit 236, 238, 241, 244Settings 236 to 237, 239 to 240, 242 to 243
IEC 60870-5-101 211 to 212, 237IEC 60870-5-102 211IEC 60870-5-103 211IEC 60870-5-104 211 to 212, 237Import 180
Incoming Connection 183Index Register 202Indicator 84
Icon 84Industrial IT 800xA 23, 25Information Icon 12Inheritance 45, 54, 66Input Rules 92Integer Signal Type 44Interface 104, 123, 130, 141Intertex IX35 186, 188Introduction 101, 123, 130IsForced Property 66Items 255
LLibrary 56Line
Add 191Setup 191
Link 84 to 85List
Alarm 97Alarm and Event 97Control Blocked Signals 97Event 97Forced Signals 97Formal Instance 43
Lock 79, 88Log 205
MManual 20Manually Controllable Signals List 97Manually Ordered Call 183Memory Leak 172Method 104, 136Modbus 175, 187Modem 184, 194 to 195
Check 192
270 3BSE035041R4001
Index
Intertex IX35 186, 188Setup 186US Robotics Sportster 28800 186Westermo TD22/TD32 186 to 187
NNLS 32
OObject 81, 155
See also Process ObjectObject Type Structure 41, 54, 59OLE
ChangeState 144EventInt.Document 147OLE Interface 143WriteState 145
OLE DB 152OPC Status 60Optimized 73Optimized Graphic Elements 56Option 31, 211
Dialed Controller 183
PParameters 128Permanent Call 183PLC 23, 45, 155, 159 to 160, 201 to 202PLC Alarm List 97PLC Connect 23PLC Faceplate Templates 79, 81, 95PLC Object 41, 45PLC Process Icons 56 to 57, 60, 74PLC Server 184PLC Subelements 56, 58, 60, 71PLC Time Stamp 203Port 184, 190, 192Power Fail 177Pre Treatment 123 to 124, 128Prerequisite 11
Prioritized 164Priority 195
Guidelines 196Setup 194
Process 172, 184Process Graphics 53
Connect 59Display 54Edit 55Element 56Faceplate 79Graphics Builder 53, 55Inheritance 54, 66Object Type Structure 54, 59Process Object 53 to 54Process Object Type 54See also Graphics Builder
Process Object 59 to 60, 81, 155Alarm 54Control 79Create 41, 49Inheritance 54Process Graphics 53 to 54Template 41
Process Object Type 45, 49, 61, 81Create 41Extended Hierarchy 43Inheritance 45, 54Process Graphics 54Signal Types 44
Process Signal 59 to 60Create 41I/O 44, 50SoftPoint 44
Process Signal Type 44Properties Window 59 to 60Property 59 to 60, 63, 68, 76, 95, 104, 154
Alarm 154, 158Controller 155Dialed Communication 159 to 160
3BSE035041R4001 271
Index
Event 158Process Object 155Signal 155
Property Pages 61, 72Protocol 47, 195, 200
Add 189Configure 190IEC 60870-5-101 211 to 212, 237IEC 60870-5-102 211IEC 60870-5-103 211IEC 60870-5-104 211 to 212, 237Priority 195Server 211Setup 188
Provider 152
RReal Signal Type 44Real Time Database 101Redundancy 32Register 172Remote Controller 183Remote Terminal Unit 211 37RTDB 33, 101RTU 23Rules 92, 184, 186
SSafety 12SattBus PC Board 174SattCon/PBS PLC 38SattLine 37Scaling 31Scheduled Call 183Security 32Server 32, 102, 123, 164, 184, 186, 211 to 214, 265
to 266Short Haul Modems 176Show Help 21Signal 155
Block Control 135History 208Mapping 28See also Process Signal
Signal Type 44, 155Binary 44I/O 44Inheritance 45Integer 44Real 44SoftPoint 44String 44
SoftPoint 44Stamp 203Status
Alarm 54Codes 115Icon 56, 66OPC 60
StatusBox 67, 74, 77String Signal Type 44Subsystem 174Support 180Switchboard 200System 32System Administrator 11
TTag 31Template 41Terminal Servers 175Terminology 14Time 194, 203Time Limited Call 183Time Marked Event 178Time Stamp 203Tip Icon 12Toolbox 56 to 58Tools 217Troubleshooting 171
272 3BSE035041R4001
Index
Configuration Tool Checklist 176Contacting Support 180Diagnostic Files 178Event/Alarm Checklist 177Fatal Errors 179Open Functions Checklist 178Windows Checklist 178
UUnit 211, 225, 238Update 52US Robotics Sportster 28800 186
VVariable Access 102, 104, 117, 124Variables 141 to 142View 217Visual Basic 11, 55Vocabulary 172
WWarning Icon 12, 56, 70, 72WarningLevel
Icon 70Property 66
Westermo TD22/TD32 186 to 187Windowless 68Windows Registry Database 146Windows Settings 178Workplace 79
XXML 176
File 213Import/Export 180
3BSE035041R4001 273
Index
274 3BSE035041R4001
BackCover.fm Page 19 Wednesday, October 20, 2004 10:27 AM
3BSE035041R4001. Printed in Sweden October 2004Copyright © 2004 by ABB. All Rights Reserved® Registered Trademark of ABB.™ Trademark of ABB.
Automation Technology ProductsMannheim, Germanywww.abb.de/processautomationemail: [email protected]
Automation Technology Products Västerås, Swedenwww.abb.com/processautomationemail: [email protected]
Automation Technology ProductsWickliffe, Ohio, USAwww.abb.com/processautomationemail: [email protected]
http://www.abb.com/control