3BSE041488R101 - en Compact Control Builder AC 800M Version 5.0 Extended Control Software Binary and Analog Handlin PDF
3BSE041488R101 - en Compact Control Builder AC 800M Version 5.0 Extended Control Software Binary and Analog Handlin PDF
In no event shall ABB be liable for direct, indirect, special, incidental or consequential
damages of any nature or kind arising from the use of this document, nor shall ABB be
liable 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 used
for any unauthorized purpose.
The software or hardware described in this document is furnished under a license and
may 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 Low
Voltage Directive 72/23/EEC.
TRADEMARKS
All rights to copyrights and trademarks reside with their respective owners.
TABLE OF CONTENTS
Section 1 - Introduction
Extended Control Software .............................................................................................17
Libraries and Types .........................................................................................................18
Section 2 - Libraries
Introduction .....................................................................................................................19
Types and Libraries ..............................................................................................20
Advantages When Using Libraries and Types.................................................................25
Type Solutions......................................................................................................25
Libraries ...............................................................................................................26
Building Complex Solutions With Types ........................................................................27
Library Management .......................................................................................................30
Tips and Recommendations .................................................................................31
Reserved Names...................................................................................................33
Parameter Keywords ............................................................................................33
Library Command Summary ...........................................................................................34
3BSE041488R101 5
Section 3 - Standard Libraries
Introduction ..................................................................................................................... 37
Ready-Made Objects, Templates and Building Stones........................................ 37
Standard Library Types........................................................................................ 39
Where to Find Information About Standard Library Types................................. 39
Common Properties ............................................................................................. 40
Library Overview ............................................................................................................ 42
Basic Library........................................................................................................ 42
Icon Library ......................................................................................................... 42
Alarm and Event Library ..................................................................................... 42
Signal Library ...................................................................................................... 43
Process Object Libraries ...................................................................................... 43
Group Start Library.............................................................................................. 44
Control Libraries.................................................................................................. 44
Communication Libraries .................................................................................... 45
Batch Library ....................................................................................................... 46
Hardware Overview ........................................................................................................ 47
Basic Hardware.................................................................................................... 47
PROFIBUS........................................................................................................... 47
PROFIBUS Devices............................................................................................. 47
Master Bus 300 .................................................................................................... 48
INSUM................................................................................................................. 48
DriveBus .............................................................................................................. 48
S200 I/O System .................................................................................................. 49
Satt Rack I/O System ........................................................................................... 49
S800 I/O System .................................................................................................. 49
Serial Communication ......................................................................................... 50
Printer and Modem .............................................................................................. 50
FOUNDATION Fieldbus H1 ............................................................................... 50
Templates ........................................................................................................................ 51
Execution of Copied Complex Types .................................................................. 55
6 3BSE041488R101
Section 4 - Analog Process Control
Introduction .....................................................................................................................61
Concept............................................................................................................................62
Control Libraries Overview..................................................................................62
Functions and Other Libraries Used for Analog Control.....................................65
ControlConnection ...............................................................................................65
Controller Types...................................................................................................74
Basic Controller Principles ..................................................................................77
Controller Algorithms ..........................................................................................78
Hysteresis vs Dead Zone ......................................................................................83
Fuzzy Control.......................................................................................................85
How to Use Fuzzy Controller Templates .............................................................89
Internal Data Flow of Fuzzy Controllers..............................................................90
Controller Modes .................................................................................................92
Design..............................................................................................................................93
General Design Issues ..........................................................................................93
Control Strategies.................................................................................................96
Remarks on the Design of Control Loops............................................................98
Controller Library Types......................................................................................99
Industrial Controller Types.................................................................................104
Signal Handling..................................................................................................107
Getting Started with ControlConnection .......................................................................107
What is ControlConnection? ..............................................................................107
Dealing with Data Flow Directions....................................................................108
Open the Gates to ControlConnection ...............................................................112
Creating a Control Module with ControlConnection (CC template) .................114
What next?..........................................................................................................124
3BSE041488R101 7
Advanced Functions ...................................................................................................... 124
General............................................................................................................... 126
Anti-Integrator Wind-Up Function .................................................................... 126
Bumpless Transfer ............................................................................................. 127
Deviation Alarms ............................................................................................... 131
Feedforward ....................................................................................................... 132
Autotuning ......................................................................................................... 133
Adaptive Control................................................................................................ 140
Gain Scheduling................................................................................................. 144
Gain Scheduling versus Adaptation................................................................... 146
Additional Control Functions ............................................................................ 148
Input and Output Signal Handling ..................................................................... 154
Supervision ........................................................................................................ 162
Calculation ......................................................................................................... 166
Signal Handling ................................................................................................. 168
Branch Objects................................................................................................... 176
Selector Objects ................................................................................................. 180
Limiter Objects .................................................................................................. 185
Conversion ......................................................................................................... 188
Miscellaneous Objects ....................................................................................... 191
Basic Control Loop Examples ...................................................................................... 192
Signal Selection Example .................................................................................. 193
Common Range Example .................................................................................. 196
Split Range Examples ........................................................................................ 196
Level Detection Example................................................................................... 199
Application Examples ................................................................................................... 201
Simple Loop Examples ...................................................................................... 204
Cascade Loop Examples .................................................................................... 206
Fuzzy Control Loop Examples .......................................................................... 209
8 3BSE041488R101
Section 5 - Binary Process Control
Introduction ...................................................................................................................211
Concept..........................................................................................................................212
Process Object Libraries Overview....................................................................213
Process Object Template Concept (Core Objects) .............................................216
Core Object Functions and Parameters (UniCore and BiCore) .........................220
Control Module Icons ........................................................................................236
Interaction Windows ..........................................................................................236
Interaction Parameters........................................................................................237
Design............................................................................................................................238
Choose the Correct Type ....................................................................................239
Use Standard Library Types...............................................................................240
Use Standard Library Types to Create Self-defined Types ................................241
Group Start Interface..........................................................................................241
Voting Interface ..................................................................................................242
Alarm Handling..................................................................................................243
Generic Uni- and Bi-Directional Control...........................................................245
Motor and Valve Control....................................................................................249
Examples .......................................................................................................................254
Create a Library and Insert a Copy of a Type ....................................................254
Add Functions to Self-defined Types.................................................................259
Connect to a Control Panel in Panel Mode ........................................................262
Advanced Functions ......................................................................................................266
Level Detection, Commands and Alarm Texts...................................................266
ABB Drives Control...........................................................................................269
INSUM Control..................................................................................................289
3BSE041488R101 9
Section 7 - Surveillance
Introduction ................................................................................................................... 305
Signal and Vote Loop Concept...................................................................................... 305
Overview............................................................................................................ 305
Example ............................................................................................................. 309
Standard Object Types that Support Voting Logic............................................. 311
Vote Control Module Types ............................................................................... 315
Vote Structure Control Module Types ............................................................... 316
10 3BSE041488R101
Control Libraries ...........................................................................................................363
ControlBasicLib .................................................................................................363
ControlSimpleLib...............................................................................................366
ControlStandardLib............................................................................................369
ControlObjectLib ...............................................................................................379
ControlSolutionLib ............................................................................................383
ControlExtendedLib ...........................................................................................385
ControlAdvancedLib..........................................................................................388
ControlFuzzyLib ................................................................................................389
Batch Library.................................................................................................................394
Process Object Libraries................................................................................................395
ProcessObjBasicLib ...........................................................................................396
ProcessObjExtendedLib .....................................................................................401
ProcessObjDriveLib ...........................................................................................405
ProcessObjInsumLib ..........................................................................................407
Signal Library ................................................................................................................411
Group Start Library .......................................................................................................418
INDEX
3BSE041488R101 11
12 3BSE041488R101
About This Book
General
This manual describes how to create re-usable automation solutions using the ABB
standard libraries that are supplied with Compact Control Builder. It is a
continuation of the two manuals Basic Control Software, Introduction and
Configuration, and Application Programming, Introduction and Design, which
describes basic configuration and programming functions that are accessed through
the Project Explorer interface.
The libraries described in this manual conform to the IEC 61131-3 Programming
Languages standard, except for control modules, which are not supported by this
standard.
This manual is organized in the following sections:
• Section 1, Introduction, a short introduction to the contents of the manual.
• Section 2, Libraries, which describes the concepts behind using libraries when
developing automation solutions.
• Section 3, Standard Libraries, which contains a general description of the
libraries delivered with the system, how to use them, and their common
properties.
• Section 4, Analog Process Control, which describe how to create control loops
and other analog control functions using the Control libraries.
• Section 5, Binary Process Control, which describes how to create binary
control solutions using the Process Object and Signal Object libraries.
• Section 6, Synchronized Control, which describes how to create start and stop
sequences for different automation solutions using the Group Start Library.
• Section 7, Surveillance, which describes the Signal and Vote Loop Concept.
3BSE041488R101 13
Document Conventions About This Book
Document Conventions
Microsoft Windows conventions are normally used for the standard presentation of
material when entering text, key sequences, prompts, messages, menu items, screen
elements, etc.
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.
Tip icon indicates advice on, for example, how to design your project or how to
use a certain function
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,
fully comply with all Warning and Caution notices.
14 3BSE041488R101
About This Book Terminology
Terminology
The following is a list of terms associated with Compact Control Builder. You
should be familiar with these terms before reading this manual. The list contains
terms and abbreviations that are unique to ABB, or have a usage or definition that is
different from standard industry usage.
Term/Acronym Description
(M) (M) is used to refer to function block type and a control
module type with similar functionality, for example,
MotorBi(M).
Application Applications contain program code to be compiled and
downloaded for execution in a controller. Applications
are displayed in Project Explorer.
Control Builder A programming tool with a compiler for control software.
Control Builder is accessed through the Project Explorer
interface.
Control Module (Type) A program unit that supports object-oriented data flow
programming. Control modules offer free-layout
graphical programming, code sorting and static
parameter connections. Control module instances are
created from control module types.
IndustrialIT ABB’s vision for enterprise automation.
Interaction Window A graphical interface used by the programmer to interact
with an object. Available for many library types.
MMS Manufacturing Message Specification, a standard for
messages used in industrial communication.
OPC/DA 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.
3BSE041488R101 15
Terminology About This Book
Term/Acronym Description
Process Object A process concept/equipment e.g. valve, motor,
conveyor or tank.
Project Explorer The Control Builder interface. Used to create, navigate
and configure libraries, applications and hardware.
Type A type solution that is defined in a library or locally, in an
application. A type is used to create instances, which
inherit the properties of the type.
16 3BSE041488R101
Section 1 Introduction
IEC 61131-3
code
Basic
System
Figure 1. Basic and extended control software - standard libraries (some support
libraries have been left out).
3BSE041488R101 17
Libraries and Types Section 1 Introduction
Functions and types belonging to the Basic part of the system are described in the
manual Basic Control Software, Introduction and Configuration.
This manual contains the following sections and supporting appendixces.
• Section 2, Libraries discusses what to consider when planning your own library
structure, and how to use the standard libraries that are installed with Compact
Control Builder.
• Section 3, Standard Libraries, contains an overview of the AC 800M standard
libraries. It also explains the use of templates.
• Section 4, Analog Process Control, describes the types of the Control libraries,
and how to build control loops using these.
• Section 5, Binary Process Control, describes the types of the Process Object
libraries, and how to build process object control solutions using these.
• Section 6, Synchronized Control, gives a short introduction to the Group Start
library.
• Section 7, Surveillance, describes the Signal and Vote Loop Concept.
• Appendix A, Customized Online Help, describes the requirements for creating
help for your own libraries and applications.
• Appendix B, Library Objects Overview, gives an overview of all library
objects.
18 3BSE041488R101
Section 2 Libraries
Introduction
This section describes the library concept, as implemented in the Compact Control
Builder. The description is split into the following parts:
• An introduction (this part), which introduces some important concepts and
discusses things such as what a type is, what a library is, different kinds of
types and their intended use, and when it is suitable to use type solutions and
libraries.
• Advantages When Using Libraries and Types on page 25 is a summary of the
advantages of using types and libraries as a basis for all your automation
system development.
• Building Complex Solutions With Types on page 27 describes the three
different basic ways of building automation solutions using types from the
standard libraries. This part covers important concepts such as templates.
• Library Management on page 30 discusses how to plan your library structure
and maintain your libraries over a longer period of time, including version
handling. This part also discusses some risks and potential problems that you
have to be aware of.
• Library Command Summary on page 34 lists useful actions and commands
when working with libraries.
3BSE041488R101 19
Types and Libraries Section 2 Libraries
20 3BSE041488R101
Section 2 Libraries Types and Libraries
Hardware Types
Hardware types represent the physical hardware units and communication protocols
that can be added to AC 800M. It can be a CPU unit, a communication interface or
an I/O unit (see Hardware Overview on page 47). Hardware types can be defined in
libraries only.
There are some advantages by organizing hardware types in libraries:
• It is easy to upgrade to newer system versions and to let a new version of a
hardware type coexist with an older version (but in different versions of the
library).
• New library versions can be delivered and inserted to the system.
• Only used hardware types, in controller configuration(s), allocate memory in
the system.
A hardware type contains a hardware definition file, that is, the source code of the
hardware unit. Changing and replacing a type in a library may affect all instances of
the hardware unit. For example, changing a hardware type of a I/O unit that is used
in more than one positions in a controller, affects all positions there the I/O unit is
used in the hardware tree (I/O connections and parameters may be incorrect).
This means that changes made to a hardware type affect all instances.
3BSE041488R101 21
Types and Libraries Section 2 Libraries
When replacing a hardware type, the user is requested to either replace or to check
the affected hardware units in the hardware configuration editor (recommended).
Libraries
A library is a collection of types. Libraries are presented as objects in Project
Explorer (Figure 2)
22 3BSE041488R101
Section 2 Libraries Types and Libraries
A library in Libraries folder may contains the following (see Figure 3):
• Data types,
• Function block types,
• Control module types,
• Project constants.
3BSE041488R101 23
Types and Libraries Section 2 Libraries
24 3BSE041488R101
Section 2 Libraries Advantages When Using Libraries and Types
Type Solutions
Whenever an automation solution contains a large number of similar objects, which
perform similar function, but in different locations or contexts, there is reason to
consider using type solutions.
This is one of the most important decisions you have to make before you start
programming your automation solution: “Which types do I need?”
Some things to consider are:
• Which parts of my plant are likely to change? Typically, something might be
added to a production line, or another production line might be added.
• Which objects can be said to be variations on a theme, that is, can be seen as
instances of a certain type solution? Typically, this would be objects such as
motors, tanks, valves.
• Which objects does my process contain that correspond to types already
contained in the standard libraries that are installed with Compact Control
Builder? If you can identify such objects, you only have to configure them for
use in your particular environment, most of the programming work is already
done.
• In which situations could it happen that one object changes, while all other
similar objects remain the same?
• Standard libraries might be upgraded, as well as your self-defined ones. Type
and library upgrades might cause problems in running applications.
3BSE041488R101 25
Libraries Section 2 Libraries
If you plan your types carefully, you will benefit from it in a number of ways:
• Re-usable solutions save development time, as well as memory.
• Well-tested type solutions will increase the reliability of your automation
system. It is also easier to test a system that is based on type solutions.
• You can change the type in one place and it will have effect on all instances,
instead of having to make the same change for many (maybe thousands of)
identical objects.
Libraries
Once you have decided on which types to use in your automation solution, you
should also consider how to organize them. Well-defined libraries give you the
following advantages:
• All automation engineers within your organization will have access to the same
type solutions. This will save development time and result in consistent
automation systems.
• The knowledge of experienced programmers and specialists can be packaged
and distributed to all automation engineers through libraries.
• A common standard can be implemented via the libraries, for example, a name
standard.
• Complex solutions can be built with a high degree of control by using library
hierarchies.
• A large number of applications can be updated by simply updating a library.
• Version control of standard libraries makes it possible to upgrade some
applications, but leave others unchanged.
26 3BSE041488R101
Section 2 Libraries Building Complex Solutions With Types
Master
AI Level
Slave
AO
AI
3BSE041488R101 27
Building Complex Solutions With Types Section 2 Libraries
28 3BSE041488R101
Section 2 Libraries Building Complex Solutions With Types
In addition to the types in the standard libraries, you can also define your own types,
both on a higher level and low-level objects.
Most low-level objects are already available to you as types, in the Basic library
and via system firmware functions. Make sure that you check if there already is a
type or function that fulfills your needs before starting to design your own types.
An application can be based on a mix of types from standard libraries, self-defined
types from your own libraries, and locally defined types. See Figure 7 for an
example.
Type A1
Type A2 Type X1
Type A3 Type X2
3BSE041488R101 29
Library Management Section 2 Libraries
Library Management
When working with libraries, it is important to be aware of how libraries are version
handled, how libraries are connected, and what happens if a certain library is
changed.
It is not possible to change library version of a library in the Libraries folder.
However, library versions of libraries in the Hardware folder can be changed.
See also the manual Library Objects Style Guide, Introduction and Design,
(3BSE042835Rxxxx).
The following important rules apply:
• Libraries may exist in different versions in the same project. Different versions
of libraries with hardware types may coexist in a controller, but it is not
possible to connect libraries with different versions to the same application.
If you try to connect multiple versions of a library to an application, a warning
dialog will be displayed, stating which library and which versions that cause the
problem. Please note that multiple versions might occur through dependencies.
• Libraries in the Libraries folder may depend on each other in a number of
layers.
Do not interconnect libraries unless it is absolutely necessary. There is always a
risk of upgrade problems if there are many dependencies between libraries.
30 3BSE041488R101
Section 2 Libraries Tips and Recommendations
3BSE041488R101 31
Tips and Recommendations Section 2 Libraries
a.
Data types that are only used internally should be hidden and stored in a
separate support library containing hidden types only. The name of the
library should then include the word ‘Support’, for example,
‘TankSupportLib’.
b.
Data types that are used for parameters that are connected to other types
and to the surrounding code should be stored in a common library
containing visible types. The name of this library should then include the
word ‘Basic’, for example, ‘TankBasicLib’.
• Simple function blocks and control modules that are used as formal instances1
in several complex types, in several libraries, should be placed in a separate
support library (this library then has to be connected to all libraries where these
types are used).
• Document your libraries. Use the Project Documentation function, see Where
to Find Information About Standard Library Types on page 39.
1. Formal instances are objects (instances of another type) that are located inside a type. Formal instances are
executed when objects based on the type execute in applications.
32 3BSE041488R101
Section 2 Libraries Reserved Names
Reserved Names
In addition to names reserved for use in code (IF, etc. see online help or the manual
Application Programming, Introduction and Design), the use of the following
names is also reserved1, and should be avoided for other purposes.
Name Description
Template Use for templates only.
Core Use for Core objects only.
HSI Use for graphics calculation objects only.
Icon Use for icons only.
Info Use for interaction windows only.
Parameter Keywords
All parameters in control module types and all IN_OUT parameters in function
block types are recommended to contain an indication of its use in the
corresponding Description field. The use is indicated by keywords, see Table 2.
They must contain at least one of the first four keywords. The keyword should be
placed before the following descriptive text, see Figure 8.
1. These names are intended for use in instance names, for example, an UniCore instance would be called Core.
3BSE041488R101 33
Library Command Summary Section 2 Libraries
34 3BSE041488R101
Section 2 Libraries Library Command Summary
3BSE041488R101 35
Library Command Summary Section 2 Libraries
36 3BSE041488R101
Section 3 Standard Libraries
Introduction
• This section describes the standard AC 800M libraries, that is, the AC 800M
libraries that are installed with Compact Control Builder.This part of the
section, the Introduction, describes the different types in the standard libraries,
including ready-made types, templates, and types intended to be used as
building-stones in complex solutions.
• Library Overview on page 42 gives an overview of all standard libraries, with a
short description of each.
• Hardware Overview on page 47 gives an overview of all libraries with
hardware types.
• Templates on page 51 describes the template concept, and how to use template
objects and libraries to create re-usable and flexible solutions.
The library concept and how to build and manage a library structure for your
organization is described in Section 2, Libraries.
3BSE041488R101 37
Ready-Made Objects, Templates and Building Stones Section 3 Standard Libraries
• Objects that should be seen as templates. These template types are not
protected and they can therefore be copied to your application, or to your own,
self-defined library. They can then be modified to fit your specific
requirements.
In a template type, there are core functions that are protected. These core
functions cannot be changed (with the exception of parameter connections), but
you can add other functions, both by using other types from the standard
libraries, and by adding code.
Typical template objects are the objects in Control loop solution library. Other
objects are Uni and Bi process objects in the Process Object Extended library,
which can be used to build process control objects for any uni- or bi-directional
object. See Group Start Library on page 44 and Control Libraries on page 44.
• Low-level objects that can be seen as building stones to be used for building
more high-level, complex solutions. These objects can be used to add functions
to an existing template, or to build a complex solution from scratch.
Typical building stones are types for signal handling, which can be added to the
output and input of, for example, control loops. See Building Complex
Solutions With Types on page 27.
If the standard libraries do not contain any type that fits one of your specific
requirements, you have two options:
• You can build your own type, based on objects from the standard libraries. If
the type is application-specific, you can define it directly in the application.
However, if it is likely that you in the future will want to use it in other
applications as well, then you should create a library and store your type
solution in this library. Then, all you have to do to use the type in another
application is connect the library to that particular application.
Say that you discover that you want to use a type in another application, but you
have defined it in an application only. Then you should simply create a library
and copy the type to this library (you can, of course, also copy it to one of your
existing libraries). Then you can connect the library to all applications where you
want to use the type and make sure that all instances refer to the library type. You
can then delete the original type definition from your application.
38 3BSE041488R101
Section 3 Standard Libraries Standard Library Types
• You can build your own type from scratch. This is not recommended, but might
be necessary if you have a process with very specific requirements. In this case,
it is strongly recommended that you store your types in a self-defined library.
3BSE041488R101 39
Common Properties Section 3 Standard Libraries
Common Properties
InteractionPar
Most function block types and control module types having an interaction window
also have a parameter, called InteractionPar. This parameter is a structured data type
with components where some of them have the attribute coldretain.
Things that can be done in interaction windows/faceplates can also be done via the
InteractionPar parameter from the surrounding application code. However, if no
such code is implemented you should not connect the InteractionPar parameter (in
the connection editor), just leave the connection field empty. The reason is to ensure
that the InteractionPar is only controlled by the faceplate.
40 3BSE041488R101
Section 3 Standard Libraries Common Properties
Consider InteractionPar as an option for connecting a local variable that can, from
the application code, reach any of the components inside the InteractionPar
parameter. But remember, connecting the InteractionPar to your code, means that
you also take over the responsibility of handling coldretain values etc.
The main purpose of InteractionPar parameter is to manipulate values from graphics
(interaction windows and faceplates) only, thus not from code. Calling the
InteractionPar (in code) will override any inputs given by the operator. The
InteractionPar should be controlled by graphics, and only in exceptional cases from
code.
ParError
ParError is a function that performs diagnostic tests inside an object in run-time
mode. It is only SIL marked objects that can contain ParError. You recognize if an
object contains ParError, by the output parameter ParError.
The function returns a Boolean output value if a user writes an 'out of range' value
via the objects faceplate(s). For example, severity and class for alarms are wrong, or
a high level input value is lower than the low level value in a level monitor module,
etc. These are two common examples but basically it could test all kinds of input
values.
The general idea of ParError is to provide you with a possibility to anticipate certain
actions and handle them from your code. One drastic action may be to call the Error
handler function and perform a controller shut-down.
However, ParError requires a lot of CPU load each time the diagnostics are
executed. For that reason, all objects that contain ParError also have an input
parameter EnableParError which is set to false by default. The input parameter
guarantees that ParError will not be executing in non-SIL applications unless you
want to (change the input parameter EnableParError to true).
3BSE041488R101 41
Library Overview Section 3 Standard Libraries
Library Overview
This part describes each standard library briefly. For a list of all types in a library
and a short description of each type, see the Appendix B, Library Objects Overview.
In addition to the standard libraries, there are also firmware functions that can be
used in your applications. You find these in the System folder in Project Explorer.
For a complete list of the system functions, please refer to Control Builder online
help.
Basic Library
The Basic library (BasicLib) contains basic objects such as converters, counters,
timers, pulse generators and edge detectors. This library is described in more detail
in the manual Basic Control Software, Introduction and Configuration.
The Basic library is automatically added to all control projects, via the control
project template.
Icon Library
The Icon Library (IconLib) contains icons that are used in Control Builder graphics
in most other libraries.
The Icon library is automatically added to all control projects, via the control project
template.
42 3BSE041488R101
Section 3 Standard Libraries Signal Library
Signal Library
The Signal library (SignalLib) contains types for adding supervision, alarm
handling and error handling to I/O signals. SignalLib also contains types to define
different rules that make it possible to control the process to predetermined states
(vote objects). Types from this library can be used together with both binary and
analog control applications.
3BSE041488R101 43
Group Start Library Section 3 Standard Libraries
Control Libraries
The Control libraries contain types and ready-made solutions for analog control.
See Section 4, Analog Process Control. There are a number of Control libraries:
• Control Simple Library (ControlSimpleLib)
The Control Simple library contains a number of types that are intended to be
used for building simple control loops.
• Control Basic Library (ControlBasicLib)
The Control Basic library contains function block types that are ready-made
PID loops. The only thing you have to do with those function blocks is to
connect them to your I/O variables.
• Control Standard Library (ControlStandardLib)
The Control Standard library contains control module types for building
control loops, both stand-alone loops and cascade loops using master and slave
configurations. They can be used together with types from other Control
libraries, as well as together with objects from other libraries.
• Control Extended Library (ControlExtendedLib)
The Control Extended library contains a number of control modules for
arithmetics and signal handling. These types are intended to be used for
building advanced control loops, together with objects from other Control
libraries.
• Control Advanced Library (ControlAdvancedLib)
The Control Advanced library contains control module types intended to be
used to build continuous control loops with advanced PID functions and
decouple filter functions. The types from this library supports adaptive control
and can be used to build dead-time control loops.
• Control Object Library (ControlObjectLib)
The ControlObjectLib provides function blocks and control modules to define
templates for using the control connection data type.
44 3BSE041488R101
Section 3 Standard Libraries Communication Libraries
Communication Libraries
The communication libraries contain function block types for reading and writing
variables from one system to another. Typical communication function block types
are named using the protocol name and function, for example, COMLIRead or
INSUMConnect.
Communication is described in more detail in the manual Basic Control
Software, Introduction and Configuration.
All supported protocols are described in the manual Communication, Protocols
and Design (3BSE035982Rxxxx).
3BSE041488R101 45
Batch Library Section 3 Standard Libraries
Batch Library
The Batch library (BatchLib) contains control module types for batch control and
for control of other discontinuous processes. It can be used together with any batch
system which communicates via OPC Data Access and which supports the S88 state
model for procedural elements.
The control module types in the Batch library are used for the interaction between
the control application for an Equipment Procedure Element (for example, a phase
or an operation) and the Batch Manager.
This library is described in more detail in Control Builder online help (select the
library in Project Explorer and press F1).
The BatchAdvTemplatesLib contains functionality for Batch Handling using batch
advanced control modules. Templates for these control module types are provided in
this library.
46 3BSE041488R101
Section 3 Standard Libraries Hardware Overview
Hardware Overview
This part describes each standard library with hardware types briefly. For a list of all
hardware types in a library and a description of each type, see Control Builder
online help.
Hardware libraries that contain Profibus CI851 or Foundation Fieldbus CI852 are
merely for updating reasons, hence they should not be used in new projects.
Basic Hardware
The Basic Hardware Library (BasicHWLib) contains basic hardware types such as
controller hardware (for example AC 800M), CPU units, Ethernet communication
links, Com ports, ModuleBus etc.
The Basic hardware library is automatically inserted to all control projects and
automatically connected to the controller, via the control project template.
PROFIBUS
The PROFIBUS hardware libraries contain PROFIBUS DP communication
interfaces for the AC 800M.
• The CI851 PROFIBUS hardware library (CI851PROFIBUSHWLib) contains
the communication interface for PROFIBUS DP-V0 (CI851).
• The CI854 PROFIBUS hardware library (CI854PROFIBUSHwLib) contains
the communication interface for PROFIBUS DP, with redundant PROFIBUS
lines and DP-V1 communication.
PROFIBUS Devices
The PROFIBUS device libraries contain hardware types that can be used to
configure ABB Drive hardware and ABB Process Panels.
• The ABB Drive NPBA CI851 hardware library (ABBDrvNpbaCI851HwLib)
contains hardware types to be used when configuring ABB Drive NPBA-12,
using PROFIBUS DP-V0 (CI851).
• The ABB Drive NPBA CI854 hardware library (ABBDrvNpbaCI854HwLib)
contains hardware types to be used when configuring ABB Drive NPBA-12,
using PROFIBUS DP (CI854).
3BSE041488R101 47
Master Bus 300 Section 3 Standard Libraries
INSUM
The CI857 INSUM hardware library (CI857InsumHwLib) contains the
communication interface (CI857) and other hardware types to be used when
configuring INSUM.
DriveBus
The CI858 DriveBus hardware library (CI858DriveBusHwLib) contains the
communication interface (CI858) and other hardware types to be used when
configuring DriveBus.
48 3BSE041488R101
Section 3 Standard Libraries S200 I/O System
3BSE041488R101 49
Serial Communication Section 3 Standard Libraries
Serial Communication
The Serial Communication libraries contain a hardware types for serial
communication.
• The CI853 Serial Communication hardware library (CI853SerialComHWLib)
contains the communication interface for RS-232C serial.
• The Serial hardware library (SerialHWLib) contain the serial communication
protocol for SerialLib.
• The COMLI hardware library (COMLIHWLib) contain the serial
communication protocol for COMLI.
• The ModBus hardware library (ModBusHWLib) contain the serial
communication protocol for ModBus.
• The S3964 hardware library (S3964HWLib) contain the serial communication
protocol for Siemens 3964R.
FOUNDATION Fieldbus H1
The CI852 FOUNDATION Fieldbus H1 hardware library (CI852FFh1HwLib)
contain the communication interface for the FOUNDATION Fieldbus H1 bus
(CI852) and FF Devices.
50 3BSE041488R101
Section 3 Standard Libraries Templates
Templates
A template is characterized by the fact that it is not protected. It is intended to be
copied to one of your own libraries, and modified inside that library. For an example
of how to copy a template object to one of your own libraries, see Create a Library
and Insert a Copy of a Type on page 254.
The moment you copy a type to your own library, the connection to the original
template type is lost. This means that your copy does not reflect updates to the
template.
However, a template type often consists of a number of objects from the standard
libraries. Some of those might be protected (or even hidden), while some of them
can be modified to suit the requirements of a particular organization, plant, or
process. This also means that sometimes standard libraries still have to be
connected to your library, due to the fact that they contain sub-types used inside
the template type you copied. See Figure 12 on page 54.
For information on the execution of objects based on template types and copies of
template types, see Execution of Copied Complex Types on page 55.
To help you understand how this works, we will study a typical template type, the
Uni function block from the Process Object Extended library.
Figure 9. Uni function block type, with sub types and formal instances.
3BSE041488R101 51
Templates Section 3 Standard Libraries
The Uni function block type contains the following objects (formal instances):
• GSC (based on the type GroupStartObjectConn from the Basic library),
• Faceplate (based on the type FacePlateUni from the Process Object Extended
library),
• InfoPar (based on the type InfoParUni, from the Process Object Basic library),
• InfoParGroupStart (based on the type InfoParUniGroupStart, from the Process
Object Basic library),
• Pres (based on the type GroupStartIconUni),
• OEText (based on the type OETextUni from the Process Object Extended
library)
• Core (based on the UniCore type from the Process Object Basic library),
• ObjectAE (based on the type ProcessObjectAE).
This means that the Uni type depends on the Basic library, the Process Object Basic
library, and Process Object Extended library.
If we create our own library, TemplateLib, and copy the Uni function block type to
this library, with the intention of modifying the Uni template into a uni-directional
type that fits our process, it will look like Figure 10. The new function block type
has been named TemplateUni
52 3BSE041488R101
Section 3 Standard Libraries Templates
The red error triangles on the type and sub types come from the fact that our new
library, TemplateLib, is not connected to the libraries that contain some of the sub
types.
If we connect those libraries to our new library, everything will be ok.We have now
created a copy of Uni, which we can modify to fit our specific requirements. For an
example of how to add functions to a type, see Add Functions to Self-defined Types
on page 259.
Once we are done adding to and modifying our type, we can use it in an application,
see Figure 11. All we need to do to be able to use our new type in the application is
to connect TemplateLib to the application and create an instance (TestUni) from the
TemplateUni type.
3BSE041488R101 53
Templates Section 3 Standard Libraries
Note that all sub types (the formal instances) retain a relation to their corresponding
types. For example, a change to the OETextUni type in the Process Object Basic
library will also affect the TemplateUni type, since this type contains an instance of
OETextUni.
Library A
Type A1
Type A2
Type A3
Type X1
Type X2
1.User Library X will still depend on Library B and Library C, since X31 and X32 are instances
of B1and B2, and X33 is an instance of C2.
2.User Library X will not depend upon Library A. Changes to A3 will not affect X2.
54 3BSE041488R101
Section 3 Standard Libraries Execution of Copied Complex Types
Code
If Condition Then Template type T1
a:=a+1
.....
A B C Formal instances
3BSE041488R101 55
Execution of Copied Complex Types Section 3 Standard Libraries
A B C
Call
Instance InstT1
56 3BSE041488R101
Section 3 Standard Libraries Execution of Copied Complex Types
A B C Formal instances
Code
If Condition Then Template type MyT1
a:=a+1
.....
A B C Formal instances
3BSE041488R101 57
Execution of Copied Complex Types Section 3 Standard Libraries
A B C
Call
Instance InstMyT1
58 3BSE041488R101
Section 3 Standard Libraries Execution of Copied Complex Types
Code
If Condition Then Type MyT1
a:=a+1
.....
A B C Formal instances
Figure 17. Copy of template type with formal instances, modified by replacing one
of the formal instances (circled in the figure).
It is of course also possible not only to replace formal instances, but also to
modify your copied type by adding or removing formal instances, and by adding
to the code or changing it.
When an object based on this type is executed, what happens is the following, see
Figure 18:
1. The object (InstMyT1) calls the type (MyT1).
2. When the type MyT1 is called, the code executes and calls are made to all types
(T1A, V2B and T1C) corresponding to the formal instances (A, B and C).
3. Each type that is called (T1, T1A, V2B, T1C) executes, operating on data from
the corresponding instance.
3BSE041488R101 59
Execution of Copied Complex Types Section 3 Standard Libraries
A B C
Call
Instance InstMyT1
60 3BSE041488R101
Section 4 Analog Process Control
Introduction
This section describes how to use types from the Control libraries to create analog
control solutions for your automation system. The section contains:
• A description of the concept behind the Control libraries, see Concept on page
62.
• Advice and instructions on how to implement analog control solutions using
the types in the Control libraries, see Design on page 93.
• Examples on how to implement analog control solutions using the types in the
Control libraries, see Getting Started with ControlConnection on page 107.
• Detailed information on individual library types for signal handling, see
Advanced Functions on page 124.
For a discussion on the difference between function blocks and control modules,
and how to choose between the two, see the manual Basic Control Software,
Introduction and Configuration .
Throughout this section, the word “controller” refers to a type used in control
loops, for example, a PID controller.
3BSE041488R101 61
Concept Section 4 Analog Process Control
Concept
The Control libraries contain a number of function blocks and control modules that
are designed to help you construct complex signal systems and control loops with
high functionality and flexibility. Some of them can be used as is, while some of
them have to be combined to suit a specific application.
The Control libraries contain the PID controllers and analog signal handling
functions you need to handle analog signals and to construct control loops, both
simple control loops, including cascade control loops, and very advanced ones.
This section describes the concept behind the Control libraries, split on the
following sub-sections.
• Control Libraries Overview on page 62 gives an overview of all Control
libraries.
• Functions and Other Libraries Used for Analog Control on page 65 is a
summary of AC 800M firmware functions and functions from other libraries
that can be used in connection with analog control. Here, you will find
references to other parts of the manual that describe individual function and
objects.
• ControlConnection on page 65 describes the ControlConnection structured
data type, which is used to simplify communication between different control
objects and their environment.
62 3BSE041488R101
Section 4 Analog Process Control Control Libraries Overview
For a short description of each of these libraries, see the following sub-sections.
The Control libraries are also supported by a number of firmware functions that are
included in AC 800M firmware and in other libraries. For information on those, see
Functions and Other Libraries Used for Analog Control on page 65.
3BSE041488R101 63
Control Libraries Overview Section 4 Analog Process Control
64 3BSE041488R101
Section 4 Analog Process Control Functions and Other Libraries Used for Analog Control
ControlConnection
ControlConnection is a data structure which contains all signals that are sent
between the objects of a signal system or control loop. Some of the signals are sent
in the forward direction of the loop and some are sent backwards, such as value,
status and range. The complexity of the signal systems and control loops can then be
reduced considerably for the signals between the objects.
Introduction
Data is generated by a source, computed in one or several objects, and finally
forwarded to a consumer of data. This is the most common kind of data flow. If each
object is to operate independently, and be able to connect with the other objects, a
number of conditions must be fulfilled.
Learn how to build your own control module types with ControlConnection in
Getting Started with ControlConnection on page 107 and Creating a Control
Module with ControlConnection (CC template) on page 114.
Each object has to ask its succeeding object if it is ready to receive data and do
whatever it is that the object does. The succeeding object must issue an acceptance
when ready to receive data.
3BSE041488R101 65
ControlConnection Section 4 Analog Process Control
This means that the question must be computed, before it is possible to give the
answer. This is achieved by using code sorting. To interconnect objects of this type,
you have to use the type of parameters that simply carry data, irrespective of their
direction. These type of parameters cannot have values of their own.
This is the basis for connections between the control modules in the control
libraries, and the interconnecting data type called ControlConnection.
Figure 19. The principle of the data flow between control modules.
SP
PID
AI PID AO
AI
66 3BSE041488R101
Section 4 Analog Process Control ControlConnection
When connected to each other, the control modules have the following
characteristics.
• Information is transferred between the modules, forward as well as backward
in the control loop, during the same cycle of execution. This is used, for
example, to achieve bumpless transfer upon a change from Manual to Auto
mode, and to prevent integrator wind-up in the entire control loop.
• Signal flow without delay, in both directions, is obtained through automatic
sorting of code blocks in the control modules.
• If a signal is not valid, for example < 4 mA, it is possible to consider this in
succeeding control modules. Examples of this are transfer to Manual mode or
setting a predetermined value on the output.
.
The chain of control modules in a control loop and/or during analog handling
must start with a control module handling input signals, and the chain going to
the right must end with a control module handling output signals.
3BSE041488R101 67
ControlConnection Section 4 Analog Process Control
AI Branch AO
Figure 21. A chain of connected control modules for analog signal handling.
In the chain of connected control modules, as seen in Figure 21, the main signal
flow is from left to right, as illustrated by the bold arrows in Figure 22. The main
signal flow may have divergent and convergent branches. Thin vertical arrows
represent operator interactions.
A B C
D E F
Figure 22. The main signal flow between the control modules.
Information propagates during one scan, without any delay in the main signal flow.
For example, the effect of an event in control module A is perceived in control
module F in the same scan.
The connected control modules are influenced by their surroundings, for example,
the operator interface or the surrounding application program. The effect of such an
influence propagates ,without delay in the main signal flow, to outside of the control
module in which the influence occurs.
68 3BSE041488R101
Section 4 Analog Process Control ControlConnection
The effect of such an influence also propagates, without delay, in the opposite
direction to the main signal flow, to outside of the control module in which the
influence occurs. This is called backtracking (see Backtracking on page 72). This
effect does not, however, influence the main signal flow until one scan later. For
example, the effect of an influence, shown by the thin arrow on block E, propagates
to F in the same scan. It also propagates to D, B and A in the same scan, but not to
C. In B, calculations are carried out on the effect before it is forwarded to A. In the
next scan, the effect is used in the calculation of the main flow.
3BSE041488R101 69
ControlConnection Section 4 Analog Process Control
Figure 23. Example of when a succeeding control module has reached a limit value;
the preceding control module stops further integration (anti-windup).
Figure 24. A graphical connection of ControlConnection type with its main signal
flow forward and a flow backward.
The Value component in the forward structure represents the main signal flow of the
loop. The Status component contains information about the quality of the loop.
70 3BSE041488R101
Section 4 Analog Process Control ControlConnection
3BSE041488R101 71
ControlConnection Section 4 Analog Process Control
Backtracking
The behavior of a control module that has ControlConnection connections depends
on which mode the succeeding control module in the chain is in. A control module
in Backtracking mode when succeeding control modules indicate that they, for
example, are in Manual mode. This means that integrator wind-up of a controller is
prevented (see section, Anti-Integrator Wind-Up Function on page 126) and that
bumpless transfer, for example, between Manual and Auto, is achieved (see
Bumpless Transfer on page 127).
In Control Builder, control modules are dimmed if backtracking is active.
Fraction
In all interaction windows of control modules, which have a ControlConnection,
you can set the fraction, which is a local variable in each control module for setting
of the decimals shown in the interaction window(s).
When an I/O signal from, for example a PT100 transmitter, has a wider physical
range than desired you can enter a narrower range in the AnalogInCC control
module.
When signals go through a number of arithmetic calculation control modules the
ranges can easily take large positive or negative values. Also, units of measure may
become long compound words that are unabridged, for example in multiplications.
Therefore, it is important to set the range to acceptable values. Also, check that the
unit of measure is correct and simplify it by abridgement. Do this in the last
calculation control module before the signal goes to a control module that does not
send range value and its unit of measure backward such as the controller, derivative,
integral or piecewise linear control module types.
72 3BSE041488R101
Section 4 Analog Process Control ControlConnection
3BSE041488R101 73
Controller Types Section 4 Analog Process Control
Controller Types
This section describes controller principles and main controller functions. Advanced
built-in functions and objects for signal handling are described under Advanced
Functions on page 124.
A process may be of many types. The process may be rapid or slow, have dead time,
involve non-linear process characteristics, have many different cases and/or
conditions of operation, or depend on valve characteristics. The process may also
involve viscous media, the process may be exothermic, or dependent on various
calculations, etc.
The process requirements may also be to achieve a certain production quality.
Manual intervention must be carried out in a smooth, so-called bumpless way. In
addition, there are information and communication demands on the operators and/or
other systems regarding momentary values, alarms, data history in short and long
perspectives, and the presentation of these in a clear way.
To fulfill all the process demands, many functions must be carried out by the
controller. The solution may involve anything from a single controller to several
controllers with internal relationships, for which the system has complete control
modules and function blocks.
The core of the PID controllers in the control libraries is based on PID algorithms.
The only exception is the fuzzy controller, which has a design of its own. Additional
functions are added by setting parameters, or by combining a controller with other
control modules.
74 3BSE041488R101
Section 4 Analog Process Control Controller Types
PPI Controller
If a process has long dead time in comparison with the process time constant, a
predictive PI controller configuration, PPI (based on a simplified Otto Smith
controller), can be used. The process dead-time delay is added, but the parameter
values for P and I correspond to the same values as in a PI controller.
Fuzzy Controller
The fuzzy controller can handle one input and one output, as well as many inputs
and many outputs. You may be able to use a fuzzy controller where PID control
fails, or does not work well.
A fuzzy controller has most of the functions of a PID controller, together with the
possibility of defining fuzzy logic rules for process control.
Included Function 1 2 3 4 5 6 7 8
Belongs to ControlSimpleLib No No No No No No Yes Yes
Belongs to ControlBasicLib Yes Yes Yes Yes No No No No
Belongs to ControlStandardLib No No No No Yes No No No
Belongs to ControlAdvancedLib No No No No No Yes No No
3BSE041488R101 75
Controller Types Section 4 Analog Process Control
Included Function 1 2 3 4 5 6 7 8
PID algorithm Yes Yes Yes Yes Yes Yes Yes Yes
Tunable Beta-factor No No No No Yes Yes No No
Backtracking Yes Yes Yes Yes Yes Yes Yes Yes
Setpoint Backtracking Yes Yes Yes Yes Yes Yes Yes Yes
Integrator wind-up prevention Yes Yes Yes Yes Yes Yes Yes Yes
Bumpless transfer Yes Yes Yes Yes Yes Yes Yes Yes
Tracking Yes Yes Yes Yes Yes Yes Yes Yes
Internal setpoint ramping No No No No Yes Yes No No
Offset Adjustment No No No No Yes Yes No No
Deviation alarm limits Yes Yes Yes Yes Yes Yes No No
Pv alarm limits No No No No Yes Yes No No
Limitation of output Yes Yes Yes Yes Yes Yes No No
Feedforward Yes Yes Yes Yes Yes Yes No No
P-start Yes Yes Yes Yes Yes Yes No No
Predictive PI control No No No No No Yes No No
Autotuner relay Yes Yes Yes Yes Yes Yes No No
Autotuner extension (step) No No No No No Yes No No
Autotuner structure and design selection No No No No Yes Yes No No
Oscillation detection No No No No No Yes No No
Sluggish control detection No No No No No Yes No No
Gain scheduler No No No No No Yes No No
Adaptive control No No No No No Yes No No
Compensation for redundant I/O deviation Yes Yes Yes Yes No No No No
on process value
76 3BSE041488R101
Section 4 Analog Process Control Basic Controller Principles
Setpoint, Sp
PID Output
Process
controller
Process value, Pv
Figure 25. A control loop with the function block of a PID controller.
The most simple P controller may be described as follows. The controller compares
the setpoint value with the process value and the difference is called the control
deviation, ε. This is amplified by G (the amplification or gain factor) and an offset
signal is added to obtain a working point. See figure below. The result is the output
signal.
P controller
Setpoint
Adder
+ ε G*ε Output
+
- +
Process value
G = Gain factor
Offset
3BSE041488R101 77
Controller Algorithms Section 4 Analog Process Control
Controller Algorithms
The PID controller algorithms used are of ideal type. The controller input from the
process Pv and the setpoint Sp are regularly read by the controller. A read is also
called a sample, and the time between two samples is called the sampling time. The
required output signal value is calculated, for each sample, by comparing samples of
the input and setpoint values. The sample time is equal to the task cycle time of the
current task. The process value may be filtered before it enters the derivative part of
a control algorithm, by a first-order, low-pass filter. See the algorithms below, and
Figure 27 and Figure 28.
1. The P controller has the following algorithm:
Out = G × ( Sp – Pv ) + Offset
78 3BSE041488R101
Section 4 Analog Process Control Controller Algorithms
Abbreviations in the
Description
Algorithms
Sp Setpoint
Pv Process value
G G is defined as:
G = Gain x (OutRange) / (PvRange)
Gain The gain you enter in the interaction window or by code via
the InteractionPar parameter.
Gain is normalized and dimensionless according to the
above definition.
Thus the gain can be influenced by the settings of the
ranges for the process and the output values.
OutRange The range (maximum – minimum) of the Out value
PvRange The range (maximum – minimum) of the Pv process value
β Setpoint weight: 0 or 1
Ti Integral time of the controller
Td Derivative time of the controller
Tfil Filter time of the low-pass filter for the derivative part
FilterOf (x,y) The expression x is sent through a low-pass filter.
The filter time is equal to y.
Out Output from the controller
Out(t-L) Output value delayed by the dead time, L.
3BSE041488R101 79
Controller Algorithms Section 4 Analog Process Control
d
G × Td × ( FilterOf ( – Pv, T fil ) )
– Pv d dt
Filter G Td ×
dt
Out
β∗Sp – Pv G × ( β × Sp – Pv )
G Σ
Sp – Pv
G 1 ⁄ T i × ∫ dt
G × 1 ⁄ T i × ∫ ( Sp – Pv ) dt
β∗Sp – Pv G × ( β × Sp – Pv ) Out
G Σ
G × 1 ⁄ T i × ∫ ( Sp – Pv ) dt – 1 ⁄ T i × ∫ ( O ut ( t ) – Out ( t – L ) )dt
Sp – Pv
G Σ 1 ⁄ T i × ∫ dt
Out(t)
–1
Out(t - L) Out(t)
Delay
80 3BSE041488R101
Section 4 Analog Process Control Controller Algorithms
Offset Adjustment
The P and PD controller types do not have an integrator, but they have an offset
instead. The offset is a tuning parameter of the controller and used to determine its
working point. It is normally constant, but may be automatically adjusted if the
offset adjustment function is enabled.
If offset adjustment in enabled the offset is automatically adjusted in some modes
and also when the controller parameters, for example the gain or integration time,
are changed. The adjustment of the offset is always done in such a way that the
output of the controller becomes continuous.
Details on how the offset is adjusted are discussed in the section Bumpless Transfer
on page 127.
The offset adjustment function must be used with care! When offset is adjusted,
the behavior of the controller changes. For example, the control deviation at a
certain working point may change. This is, in many cases, not acceptable.
3BSE041488R101 81
Controller Algorithms Section 4 Analog Process Control
The switching between the two setpoint weight factors is automatic, depending on
whether the setpoint signal is continuous or discontinuous. The setpoint weight is in
the discontinuous case by default 0 (zero). Otherwise, at continuous setpoint signals,
the setpoint weight factor is by default 1 (one).
At normal usage, the controller provides the appropriate default value for the
setpoint weight factors. However, in PidCC and PidAdvancedCC, these two
parameters are editable. In some special cases, the user may tune the setpoint weight
factor by editing these parameters to real values between the 0 and 1 limits. An
example is when an externally calculated tuning is to be applied to the controller.
82 3BSE041488R101
Section 4 Analog Process Control Hysteresis vs Dead Zone
The controller output may then be limited, to ensure that the process is not badly
disrupted if the controller is poorly tuned. The output range may also be changed in
the controller parameter window. This is usually done when there is no I/O
connection editor.
Hysteresis
To avoid frequent activations at a level, a hysteresis value can be set in some control
modules, for example, when a signal is close to an alarm limit.
In Figure 29, activation is desired when a signal exceeds a high alarm level. The
activated and the deactivated conditions are separated by the hysteresis below the
high alarm level. Depending on the direction of the signal, the hysteresis is added to
either the activated or deactivated condition.
The alarm is first deactivated and the signal increases to the high alarm level. The
alarm is then activated. It remains activated until the signal falls below the hysteresis
and is then deactivated. The next time the signal exceeds the high alarm level, the
alarm is activated. For a low alarm level, the situation is the reverse with the
hysteresis above it.
Figure 29. Activation is desired when a signal exceeds a high alarm level.
3BSE041488R101 83
Hysteresis vs Dead Zone Section 4 Analog Process Control
Dead Zone
To allow a signal a certain noise level without causing activation, a dead zone can be
set around it in some control modules, for example, for a control deviation. A small
fluctuation in the signal is then allowed. The signal is not active when it is within the
dead zone. When the signal exceeds or falls below the dead zone limits the signal is
active. Figure 30 showing a dead zone on both sides of a desired signal value.
84 3BSE041488R101
Section 4 Analog Process Control Fuzzy Control
Fuzzy Control
A fuzzy controller is based on fuzzy logic which is a generalization of the common
Boolean logic.
3BSE041488R101 85
Fuzzy Control Section 4 Analog Process Control
86 3BSE041488R101
Section 4 Analog Process Control Fuzzy Control
• The fuzzy logic part of the controller receives one or more signals from the
linear part. It may receive the control deviation, the process value or their
derivatives from the linear part. Each of these signals is entered into a number
of input membership functions. The output from an input membership function
is a signal, which assumes values between 0 and 1. This value indicates the
degree of membership of the signal from the linear part to this particular
membership function.
• The outputs from the input membership functions are combined into fuzzy
conditions using the fuzzy operators NOT and AND. The fuzzy operator NOT
is defined as NOT X = 1 – X. The fuzzy operator AND is defined as X AND Y
= Min(X,Y). The result has a value between 0 and 1.
• The fuzzy conditions may then be combined into fuzzy rules using the fuzzy
operators NOT and OR. The fuzzy operator OR is defined as X OR Y =
Max(X,Y). The output from a fuzzy rule also has a value between 0 and 1 and
is called the degree of satisfaction of the rule.
3BSE041488R101 87
Fuzzy Control Section 4 Analog Process Control
Figure 33.
Typical configuration where a fuzzy controller is used as part of the control loop. A
fuzzy controller operates as a master controller, the output of which is connected to
the setpoint of a PidAdvancedCC.
88 3BSE041488R101
Section 4 Analog Process Control How to Use Fuzzy Controller Templates
Introduction
Your copy of a template can be modified in the following ways: the number of
inputs, outputs, membership functions, conditions and rules can be changed, and
these items can be grouped in different ways.
The fuzzy control modules have one input and one output, but they can be
configured for many inputs and many outputs.
Select the fuzzy control module which best suits your needs.
Step-by-Step Instructions for Using Templates
1. Copy a fuzzy controller template from the library. Select a template (for
example FuzzyController1CC).
2. Paste the copied fuzzy controller in the Control Module Types in the
applications folder.
3. Rename it, for example, Own_FuzzyController1.
4. Create a new empty control module called, for example, SM1 and take
Own_FuzzyController1 into use by the Create/Control Module command.
It is now possible to make changes to the fuzzy controller. You can change the
number of inputs, outputs, membership functions, conditions or rules. These items
can also be grouped in different ways.
The steps presented above describe how the user is able to make a new control
module type in an application, but if the modified fuzzy controller is needed in
many projects it is recommended that the user creates a module type in a new
library which can then be included in many projects.
3BSE041488R101 89
Internal Data Flow of Fuzzy Controllers Section 4 Analog Process Control
90 3BSE041488R101
Section 4 Analog Process Control Internal Data Flow of Fuzzy Controllers
3BSE041488R101 91
Controller Modes Section 4 Analog Process Control
Controller Modes
A controller has a number of different working modes. The controller may be
switched from one mode to another with a minimum of disturbance in the process.
The modes are listed in the table below with the lowest priority first.
92 3BSE041488R101
Section 4 Analog Process Control Design
Design
Before using objects from the Control libraries, there are a number of choices that
have to be made regarding which type of object to use for a specific purpose. The
following information is designed to help you design reliable and effective analog
control solutions:
• General Design Issues on page 93 describes things to consider and choices to
be made before starting to create your analog control solutions.
For a more general discussion of design issues, see the manual Application
Programming, Introduction and Design.
• Control Strategies on page 96 discusses what control strategy (what type of
control loop, etc.) to use for different types of processes.
• Controller Library Types on page 99 contains an introduction to all controller
types in the Control libraries.
• Industrial Controller Types on page 104 discusses how to build common
industrial controller applications, such as cascade controllers, using types from
the Control libraries.
• Signal Handling on page 107 gives an overview of where to find signal
handling information.
3BSE041488R101 93
General Design Issues Section 4 Analog Process Control
Table 5. Guide for choosing between function blocks and control modules.
94 3BSE041488R101
Section 4 Analog Process Control General Design Issues
3BSE041488R101 95
Control Strategies Section 4 Analog Process Control
Control Strategies
When a process is to be controlled, one of the most important questions is to select a
controller strategy. Control strategies can be classified into the following main
groups:
• Processes with no or short dead time, see Processes with No or Short Dead
Time on page 96.
• Processes with long dead time, see Processes with Long Dead Time on page
97.
• Processes that do not fit the above two descriptions, see Special Processes on
page 97.
• Rules of Thumb and Limitations on page 98 gives advice when using several
controllers.
96 3BSE041488R101
Section 4 Analog Process Control Control Strategies
Special Processes
In special processes with several input and output signals which may not be possible
to control, or when the strategies above, have proved unsuccessful, you may try a
fuzzy controller.
The fuzzy controller is based on fuzzy logic which is a generalization of the
common Boolean logic by something between true and false. See the section Fuzzy
Controllers on page 103.
3BSE041488R101 97
Remarks on the Design of Control Loops Section 4 Analog Process Control
Connection to Tasks
The basic strategy for connections to tasks is to have all the control modules in a
control loop running in the same task. If there is a need for faster action, particularly
at the end of the control loop, these control modules can be connected to a quicker
task, for example, in three-position control or for the slave controller in a cascade
control loop.
98 3BSE041488R101
Section 4 Analog Process Control Controller Library Types
Backtracking
In a control loop with several PID functions, where backtracking occurs, try to
locate control modules that have an internal state as late as possible in the control
loop chain. Otherwise when backtracking, a control module with internal state
influences any succeeding TapCC and TapRealCC control module in a faulty way.
The latter control modules would then tap off values and set levels based on the
backtracked value (which is collected by the control module with an internal state)
instead of a value from the preceding control module as expected.
3BSE041488R101 99
Controller Library Types Section 4 Analog Process Control
Simple Controllers
The simple controller objects work according to Basic Controller Principles on page
77.
100 3BSE041488R101
Section 4 Analog Process Control Controller Library Types
Standard Controllers
Standard controller types work according to Basic Controller Principles on page 77.
The PidCC control module type has the following main functions:
• Autotuner of relay type, see Autotuning on page 133.
• Feedforward, see Feedforward on page 132.
• Tracking, see Backtracking on page 72.
• Deviation alarm generation, see Deviation Alarms on page 131.
• Limitation of output, see Limitation of Controller Output on page 82.
• Anti-integrator wind-up, see Anti-Integrator Wind-Up Function on page 126.
• Bumpless transfer, Bumpless Transfer on page 127.
• Dead zone for the control deviation, Additional Control Functions on page 148.
• Setpoint ramping, see Internal Setpoint Ramping on page 82.
• Autotuner structure selection, see Autotuning on page 133.
• Automatic offset adjustment, see Offset Adjustment on page 81.
3BSE041488R101 101
Controller Library Types Section 4 Analog Process Control
To supervise the control deviation, relative alarms can be given by two control
deviation alarm limits, one for positive and one for negative deviation. Information
is given for each level in two forms; as alarms and as Boolean parameters.
Code
Extended Functions
Input with Control Modules Controller Output
Process
Figure 35. A control loop with all functions defined by control modules from the
control libraries.
Advanced Controllers
PidAdvancedCC works according to Basic Controller Principles on page 77.
102 3BSE041488R101
Section 4 Analog Process Control Controller Library Types
Fuzzy Controllers
A fuzzy controller may handle the case of one input and one output, as well as many
inputs and many outputs. It has most of the functions of a PID controller together
with the possibility of defining fuzzy logic rules for process control.
A fuzzy controller should not be used in cases where PID control works well. In
these cases it is much easier to tune a PID controller.
3BSE041488R101 103
Industrial Controller Types Section 4 Analog Process Control
However, in cases where PID control fails or works poorly a fuzzy controller may
be successful, for example when the process:
• is truly multi-variable, with many coupled inputs and outputs,
• has non-linearities that are difficult to handle with PID control and gain
scheduling,
• is difficult to describe analytically, and operators control it manually, by
experience.
For a short introduction to fuzzy control, see Fuzzy Control on page 85.
Cascade Controller
A cascade controller is constructed as a combination of control modules, using input
and output modules, and two controller modules. Two controllers are connected in
cascade; the output of one controller, called the master, is connected to the external
setpoint of the other controller, called the slave.
Master Slave
Sp2 Out2=Sp1
Out1 Pv1 Pv2
Outer Inner
Pv2 Pv1 Process 1 Process 2
controller controller
Inner loop
Outer loop
104 3BSE041488R101
Section 4 Analog Process Control Industrial Controller Types
Three-Position Controller
A three-position controller is constructed as a combination of control modules: a
controller module, an analog input module and a three-position output module,
which gives two digital output signals. Use a three-position controller when a digital
output is required for an increasing, decreasing or no digital signal at all to be sent,
for example, to an electrical actuator. See the section Three-Position Output on page
148.
Pulse Controller
A pulse controller is constructed as a combination of control modules: a controller
module, an input module and an output module, which gives a digital output signal
with a pulse width proportional to the analog controller output.
Sp
PID Output Pulse
Pv Digital
controller width Output
Figure 38. Pulse control with the digital pulse width output proportional to the
analog output.
Ratio Controller
A ratio controller can be constructed from a combination of control modules: input
and output modules, controller modules, arithmetic modules and tap modules. The
ratio between two different process values may be controlled by two or more
controller modules, according to Figure 39. A RatioCC control module is then used
for the ratio between the setpoints. Ratio controllers are often used for recipe
handling.
3BSE041488R101 105
Industrial Controller Types Section 4 Analog Process Control
Sp1
PID Output
Pv1
controller 1
Sp2
X
PID Output
Ratio controller 2
RatioCC
Pv2
Figure 39. Example of ratio controllers where the setpoint from the first controller is
multiplied by a factor to obtain the setpoint for the second controller.
Split-Range Controller
A split-range controller is constructed as a combination of the following control
modules: input and output modules, a controller module and any of the branching
modules. The output from a controller is then divided into two ranges which can be
set independently, and may overlap each other. An example of the use of split-range
control is when two control valves are used. The valves may be of different sizes
working in the same direction. The lower range is connected to the smaller valve
and when it is fully open, the upper range opens the larger valve. The valves may
also work in opposite directions. For example, when a tank level is to be controlled.
At lower levels, one valve opens, and at higher levels, the other valve opens.
Analog
Output
Sp
PID Output Split-
Pv
controller range
Analog
Output
Figure 40. Example of split-range control where the output range from the
controller is divided into two branches with different ranges.
106 3BSE041488R101
Section 4 Analog Process Control Signal Handling
Signal Handling
The Control libraries contain a number of function blocks and control modules for
signal handling. There are also types for signal handling in the Basic and Signal
libraries.
For a list and description of available signal handling objects, see Advanced
Functions on page 124.
Control Builder online help also contains additional information on specific
signal handling objects. Select the object in Project Explorer, and press F1 to
display online help for a type.
What is ControlConnection?
ControlConnection is a structured data type for handling signals between control
modules in both forward and backward directions. Or equally correct a very
beautiful and effective structured data type from the outside, but difficult to connect
inside an object!
The difficulties lie in the structure itself, which means that other control modules
must fulfil the relation and condition specification for (ControlConnection) signal
traffic. For that reason you are going to be introduced to the ControlConnection
Gate modules that will transform your local signals automatically to
ControlConnection.
3BSE041488R101 107
Dealing with Data Flow Directions Section 4 Analog Process Control
At the end of this subsection you will also learn how to create a ControlConnection
template (CC template) from scratch. The template will help you overcome the most
common difficulties there is by having local code reading/writing signals to/from
ControlConnection.
For a more theoretical presentation of ControlConnection, see ControlConnection
on page 65.
Forward
code block
CC CC
code block
Backward
Figure 41. A control module prepared with two code blocks for handling forward
and backward directions.
This guideline of having one code block for each direction, should apply to all
control modules that are processing signals of Control Connection. However, there
are some exceptions (as always), first object in the chain, the Source (AI object) and
the last object the Sink (AO object) only needs one code block. You will learn more
about this under Code Sorting Order Backwards on page 109.
108 3BSE041488R101
Section 4 Analog Process Control Dealing with Data Flow Directions
My created CC template
Figure 42. ControlConnection will always start with forward block (1), and then
execute forward block (2), your forward block (3) and then (4), (5) etc. Always!
3BSE041488R101 109
Dealing with Data Flow Directions Section 4 Analog Process Control
My generic CC template
Forward code block Sink
Forward Forward
Outer Object
2
1 3
4
7 5
6
Backward Backward code block Backward
Figure 43. My generic CC template object has a generic solution which simply
passes information forward to the next forward object.
As you can see in Figure 43 the Sink object contains both forward code and
backward code in one code block. The backward direction sort order starts at the
end of the Sink’s common code block. The Sink is writing to the backward block, in
this case No (5) in Figure 43.
110 3BSE041488R101
Section 4 Analog Process Control Dealing with Data Flow Directions
Building an end object solution is done by start declaring a "dummy" variable (for
example CodeSortVar). Then you let the variable CodeSortVar read (in the
backward code block) a value that was previously written (for example OldValue1)
in the corresponding forward code block. See Figure 44.
My end CC template
Forward code block
Outer Objects
8 7 6 CodeSortVar := OldValue1 5
Backward Backward Backward Backward code block
Figure 44. My end CC template object has an end solution. It stop passing
information forward and begins passing information backwards to the next
backward block.
The end CC template object has created a dependency between the forward block
and the backward block. Since the backward block is reading the variable
(OldValue1) must the forward block be executed before the backward block. The
variable OldValue1 was previously written in the forward block.
You will be able to study more of this in the subsection Creating a Control Module
with ControlConnection (CC template) on page 114.
Next, you will learn about the Gate modules and how they transform local signals to
ControlConnection.
3BSE041488R101 111
Open the Gates to ControlConnection Section 4 Analog Process Control
My CC template
Forward Sink
Forward Forward
Outer Object
2
1 3
In Gate Out Gate 4
7 5
6
Backward Backward Backward
Figure 45. My CC template object is protected by the Gate modules on both sides to
ensure a secure signal traffic with ControlConnection.
There are no code-blocks illustrated in the Gate modules (see Figure 45) although
they contain both forward and backward blocks. They are merely there in the
background for syntax control reasons.
112 3BSE041488R101
Section 4 Analog Process Control Open the Gates to ControlConnection
CC template
InForward F OutForward
CC In CC Out
In Gate Out Gate
InBackward B OutBackward
3BSE041488R101 113
Creating a Control Module with ControlConnection (CC template)Section 4 Analog Process Control
114 3BSE041488R101
Section 4 Analog Process ControlCreating a Control Module with ControlConnection (CC template)
3BSE041488R101 115
Creating a Control Module with ControlConnection (CC template)Section 4 Analog Process Control
116 3BSE041488R101
Section 4 Analog Process ControlCreating a Control Module with ControlConnection (CC template)
3BSE041488R101 117
Creating a Control Module with ControlConnection (CC template)Section 4 Analog Process Control
118 3BSE041488R101
Section 4 Analog Process ControlCreating a Control Module with ControlConnection (CC template)
(* Updates *)
OldValue3 := OldValue2;
OldValue2 := OldValue1;
OldValue1 := InForward.Value;
3BSE041488R101 119
Creating a Control Module with ControlConnection (CC template)Section 4 Analog Process Control
6. Select the Backward tag and write the following programming code.
(* Backward information to the Input Gate *)
InBackward.Backtrack := OutBackward.Backtrack;
InBackward.BacktrackValue := OutBackward.BacktrackValue;
InBackward.LowerLimit := OutBackward.LowerLimit;
InBackward.LowerLimitActive := OutBackward.LowerLimitActive;
InBackward.Range := OutBackward.Range;
InBackward.UpperLimit := OutBackward.UpperLimit;
InBackward.UpperLimitActive := OutBackward.UpperLimitActive;
120 3BSE041488R101
Section 4 Analog Process ControlCreating a Control Module with ControlConnection (CC template)
Graphical nodes
Rectangle
Graphical Node
3BSE041488R101 121
Creating a Control Module with ControlConnection (CC template)Section 4 Analog Process Control
3. Select icon for Text (Figure 55) and write CCTemplate (Figure 54).
Before you can add a graphical node, first declare the corresponding parameters. In
this case you have already declared your parameters (In and Out) in the CCTemplate
parameter editor.
Adding a graphical node is done with three (left) mouse-clicks. First click will add a
node, second click will start a rectangle field (move the cursor), and third mouse-
click will release the rectangle. After the third click, type in the parameter name.
4. Select icon for Graphical Node (Figure 55) and add two nodes on both sides of
your Text area (see exact location in Figure 54). Type in parameter In and Out
in the rectangle.
5. Close the CMD Editor when done. The CMD Editor should look like
Figure 54.
Figure 56. Global variables for connecting the CCTemplate object in the
application.
122 3BSE041488R101
Section 4 Analog Process ControlCreating a Control Module with ControlConnection (CC template)
3. Open the CMD Editor in the Application and select the icon for New Control
Module (see Figure 55).
4. In the dialog select CCTemplateLib and then select CCTemplate as your
control module type. Name your Instance to CCTemplate.
5. OK.
6. Left mouse-click a box to a suitable size and release left mouse-click. A
connection window will open.
7. Connect In and Out with InCC and OutCC, respectively. Save and Close.
Done!
3BSE041488R101 123
What next? Section 4 Analog Process Control
What next?
After completing the CC template example, you have hopefully learned how the
Gate modules work and how to adapt the CC template to your own solutions on
ControlConnection.
However, if you need more functionalities the Control Object library contains three
additional ControlConnection templates (MIMOXYCC) with more advanced
functionalities.
Advanced Functions
This section describes a number of functions that are built into the types in the
Control libraries. It also describes of a number of functions and library types from
other standard libraries that can be used when building control loops. The
description is split on the following functional areas:
• Anti-Integrator Wind-Up Function on page 126 describes the anti-integrator
windup function that is built into the control types.
• Bumpless Transfer on page 127 describes the bumpless transfer function,
which is used to smoothen controller output.
• Deviation Alarms on page 131 describes the alarm and event functions that are
built into standard and advanced controller types.
• Feedforward on page 132 describes the feed-forward function, which is used to
accelerate controller response by adding to or subtracting from controller
output.
• Autotuning on page 133 describes how to use autotuning functions to improve
controller settings.
• Adaptive Control on page 140 describes how to achieve adaptive control, for
complex processes.
• Gain Scheduling on page 144 describes how to use gain scheduling to adapt
settings to predictable variations in your process.
• Gain Scheduling versus Adaptation on page 146 discusses when to use gain
scheduling, and when to use adaptation.
124 3BSE041488R101
Section 4 Analog Process Control Advanced Functions
3BSE041488R101 125
General Section 4 Analog Process Control
General
All function blocks and control modules in the Control libraries have been designed
to provide robust behavior over sampling time. As long as the (In) parameter Enable
is true, the object will execute and the OUT value will ramp over a sampling time.
However, if the object stops executing between a numbers of scans and then start
executing again, it will have calculated and compensated for the non-ramping
sampling time. This means that OUT will jump to the compensated value and start
ramping from that point.
Please note, OUT will not start ramping from where it was last stopped
(Enable=false) at the previous execution.
126 3BSE041488R101
Section 4 Analog Process Control Bumpless Transfer
Bumpless Transfer
Bumpless transfer means that the controller output is made as smooth as possible,
even when conditions within the controller change abruptly. Examples of such
changes are mode changes and parameter value changes.
Bumpless transfer may be achieved in different ways. First of all, the integrator, if
one exists, of the controller is adjusted so that the output becomes as smooth as
possible. For controllers without integrator, the same effect is achieved (if offset
adjustment is enabled) by adjusting the offset.
If the controller has no integrator, but any of the control modules preceding the
controller has an integrator, this integrator is adjusted instead. If none of these
options are available, the output may be temporarily ramped to achieve smoothness.
In some cases, discontinuities in the output may be accepted.
The maximum increase and decrease ramping speed must be adapted to the
process. If they are too slow, it might take a very long time before the ramp
terminates. If they are too fast, the control actuator may be damaged.
3BSE041488R101 127
Bumpless Transfer Section 4 Analog Process Control
1. The output is ramped, at the rate of change set by the parameters OutIncLim
and OutDecLim, until the output tracking value (TrackValue) is reached.
2. The manual value attains the value of the output upon the change to Manual
mode.
3. The mode change can behave in any of the following ways:
a. If the controller has an integrator (PI, PID, PPI) and the Pstart parameter
is disabled, or if offset adjustment is enabled for P and PD controllers, the
controller starts controlling from the value of the output, before the mode
change. In this case, Pv Tracking may occur. See Process Value Tracking
on page 129.
b. If the controller has an integrator (PI, PID, PPI) and the Pstart parameter
is enabled, then the case is the same as above, but with the Pstart function
added. At the instant of the mode change, Pstart internally adds a step (=
G(Sp – Pv)), to which the output is then ramped.
c. If the controller has no integrator (P, PD), and offset adjustment is
disabled, the following will occur:
If external setpoint is used and the connected control module can
backtrack, or if internal setpoint is used and internal setpoint backtracking
is enabled, then the setpoint will be adjusted so that the output becomes
continuous.
Otherwise the output may be discontinuous.
4. The output of the controller becomes equal to the backtracking value.
5. Tuning starts from the current value of the output.
6. The output returns to the value before tuning started.
128 3BSE041488R101
Section 4 Analog Process Control Bumpless Transfer
3BSE041488R101 129
Bumpless Transfer Section 4 Analog Process Control
130 3BSE041488R101
Section 4 Analog Process Control Deviation Alarms
Deviation Alarms
Deviation alarms are generated by the standard and the advanced controller objects,
but not by the simple ones. The control deviation is defined as the difference
between the process value and the setpoint value.
An alarm condition state and a Boolean alarm condition parameter are set when the
deviation is higher or lower than the positive or negative limits set. To prevent
alarm flicker, a suitable time filter and degree of hysteresis are used. Before going to
Auto mode, you can set a certain start delay time, to give the controller time to tune
before alarms are activated.
For information on the use of the inhibit and disable parameters for the alarm
functions, see alarm and event information in the Basic Control Software,
Introduction and Configuration manual.
+ Deviation Alarm
Deviation alarm
positive
Deviation limit
Hysteresis
Deviation limit
- Deviation
Start
delay time Delay time
Start
delay time
3BSE041488R101 131
Feedforward Section 4 Analog Process Control
Feedforward
The feedforward signal is used to compensate for measurable disturbances, to
achieve faster and smoother control of a process. Feedforward means that a signal is
either added to or subtracted from the output signal of the controller. The
feedforward signal may also be amplified or reduced.
The feedforward process accelerates the controller response by anticipating changes
and acting to neutralize any disturbance, before it occurs.
Feedforward can also be used to suppress changes in the input signal that must not
be allowed to influence the controller output.
Feedforward is selected as a positive (+) or a negative (–) value of FFGain in the
algorithm.
OutPID = Outfrom PID algorithm + FFGain * FF
FF = Feedforward
PID controller
FFGain
Sp
PID
Limitations OutPID Pv
∑ and anti- Process
Out
Pv algorithm wind-up
from PID
algorithm
132 3BSE041488R101
Section 4 Analog Process Control Autotuning
Autotuning
Introduction
Autotuning is a simple way to obtain suitable controller parameters. It is
recommended to use the Autotuner function, otherwise, a great deal of time can be
spent in manual tuning of many controllers in large process plants. Manual tuning
time can be increased even more when retuning becomes necessary, due to changes
in the process conditions.
Several autotuning iterations do not improve the information from one tuning to
the next iteration. However, it does increase the speed for next autotuning
iteration.
You are advised to repeat autotuning a couple of times to rule out possible
disturbances that might have affected the first autotuning iteration. Furthermore,
if a number of controllers affect the same process, it is necessary that all
controllers have been correctly autotuned and holds accepted process values
while autotuning a single controller.
When the process is in steady state, start the Autotuner. It then identifies the
dynamic parameters of the process automatically, and from these, the Autotuner
calculates and suggests appropriate PID parameters. When autotuning is complete,
the controller reverts to previous mode. It uses the old controller parameters, but
suggests the new autotuned parameters, and you have the choice to apply them.
The user may also select another controller structure and design than used for
calculating the controller parameters from the autotuning results. Some users want a
specific controller structure, for example, a PI controller, and that the result of an
autotuning should comply with this selection. Then, the autotuner recalculates the
controller parameters based on the autotuning results.
Autotuning is based on a relay (ON/OFF) identification method, with feedback
measurements, as illustrated in Figure 59. To obtain extended autotuning, it is also
possible to complete process identification by means of an automatic subsequent
setpoint step. Choose between the following three autotuning methods.
3BSE041488R101 133
Autotuning Section 4 Analog Process Control
PID controller
Output
Setpoint PID
algorithm
Parameter Process
Process values
value
Autotuner
Figure 59. The principle of autotuning in a PID controller with the Autotuner
function.
134 3BSE041488R101
Section 4 Analog Process Control Autotuning
Process
value Autotuning oscillation
Noise
measurement
Start of
Exponential increase
autotuning
Figure 60. After a few periods of oscillation the time period and the process value
are determined. The PID parameters are then automatically calculated.
3BSE041488R101 135
Autotuning Section 4 Analog Process Control
Autotuning Process
Autotuning can be started with the controller in Manual or Auto mode. During the
autotuning process, the Autotuner controls the output. The following two conditions
must be fulfilled before starting autotuning.
• The process must be in steady state. It is not possible to start the Autotuner
during a load disturbance or a setpoint change.
• It is also important that no major load disturbance occurs during the autotuning
process.
• The control deviation (Sp – Pv) must be less than 5% of the actual Pv range.
When these conditions are fulfilled, you can start the Autotuner. If the process is not
in a steady state, autotuning may fail. Autotuning is interrupted by a load
disturbance.
During the first part of the autotuning process, the output signal is kept constant and
the noise level is measured, in order to calculate the necessary oscillation amplitude.
Note that it is important to choose a shorter sampling time (task cycle time) for fast
processes than for slow processes, otherwise, the period used for noise calculation
will be unnecessarily long, autotuning will be less accurate, and the resulting control
will be unnecessarily slow. If the process is not stationary, the Autotuner will
interrupt and give a warning that the noise level is higher than the true level.
When the noise level has been calculated, the Autotuner determines the relay
hysteresis, no larger than necessary, but sufficiently above the noise level. Then, the
output from the relay is introduced into the loop, but no larger than the maximum
relay value set. This causes the process value to oscillate around the setpoint, and
the relay output amplitude is adjusted to give the desired amplitude of the process
value. It may be necessary to limit the amplitude of the first output signal increase,
for example, in processes with significant dead times.
136 3BSE041488R101
Section 4 Analog Process Control Autotuning
The period and amplitude of the oscillation are determined for the process value.
Slow processes can have oscillation periods between minutes and hours, while fast
processes have oscillation periods of a few seconds. When the oscillation amplitude
is stable, the PID parameters are calculated. If the autotuning method selected is
relay only, autotuning is complete at this point. The new parameter values may be
applied. If tuning fails, the controller continues to use the old parameters.
After the relay method has been used, you may select setpoint step identification
only, or relay and setpoint step identification. After the user has started a setpoint
step, the process value will finally reach the new setpoint according to the figure
below. When steady state is reached, the output signal is restored to its previous
value. The process goes back to its initial state and autotuning is complete. The
process gain, time constant and dead-time are calculated from the setpoint step
response. With these process parameters identified, the Autotuner recalculates the
PID parameters obtained from the relay method. When autotuning is complete, the
new parameters are shown in the interaction window. If you want to accept the
suggested PID parameters, apply them before closing the interaction window.
Process
value
Setpoint step Steady state
Pv
Steady state
Figure 61. After autotuning with the relay method, a setpoint step is performed and
at steady state, the output is restored to the previous value.
3BSE041488R101 137
Autotuning Section 4 Analog Process Control
The Autotuner saves the values of the noise level and the relay amplitude from the
previously performed autotuning. Autotuning may then be repeated more quickly.
To start from the beginning, reset the Autotuner.
PI or PID Controller
During relay tuning, the Autotuner chooses a controller type, PID or PI,
automatically. The normal Autotuner choice is a PID controller. In some cases,
where processes contain integrators, for example, for level control, the Autotuner
may decide to use a PI controller.
PPI Controller
If Setpoint step only, or a complete relay and Setpoint step autotuning is performed,
the Autotuner compares the process dead time with the process time constant. If the
dead time dominates (about twice the time constant) the Autotuner may suggest the
PPI design. A PPI controller is never chosen if autotuning is configured for relay
only. The Autotuner detects the process dead-time during the setpoint step method
only. However, you may manually select the PPI type to handle processes with a
known dead-time, which then has to be specified.
138 3BSE041488R101
Section 4 Analog Process Control Autotuning
Pre-settings
No prior information has to be supplied for successful autotuning, but some pre-
settings can be made as follows.
• The maximum limit of the relay amplitude, expressed in engineering units, is
initialized to 10% of the output range. The Autotuner automatically chooses a
suitable relay amplitude, so that the parameter for maximum relay amplitude
needs to be used only if too high output signal levels cause critical situations.
• The maximum limit of the setpoint step, expressed in engineering units, is
initialized to 10% of the process value range. The Autotuner automatically
chooses a suitable step amplitude, so that the parameter for maximum step
amplitude needs to be used only if too high setpoint values cause critical
situations.
• Warning time is selected, if you want a warning for excessive autotuning time.
Resetting
If you set the Reset parameter, the values of the noise level and the relay amplitude
saved by the Autotuner from the previous autotuning are rejected. A new estimate of
the noise level is then made. Reset is recommended when a condition of the process,
such as dynamics or noise properties, has changed. It should also be used when
earlier autotuning has failed.
3BSE041488R101 139
Adaptive Control Section 4 Analog Process Control
Adaptive Control
There are many kinds of processes. Some are very simple to control, and some are
far more complex, with changing dynamics. An example of a complex system is
maintaining a constant value of the pH in a tank. A combination of an adaptive
controller and gain scheduling gives good results in such applications.
An adaptive controller is used to continuously update controller parameters. The
variations in process dynamics must, however, be slow in comparison with the time
constant of the process. An adaptive controller adapts the PID and feedforward gain
parameters.
The adaptation function is enabled by the operator. The operator must first perform
an initial start-up autotuning. When the tuned parameters have been accepted,
adaptive supervision is started by continuously monitoring the input and output
signals to/from the process. Adaptation is then activated only when both signal
values exhibit large enough variations. The activated adaptation function then
calculates and implements new controller parameters.
140 3BSE041488R101
Section 4 Analog Process Control Adaptive Control
3BSE041488R101 141
Adaptive Control Section 4 Analog Process Control
Specification PvBPF
Controller BPf
Estimator OutBPF
Sp design BPf
Limitations Out Pv
and anti- Process
wind-up
Pv
PID
algorithm
142 3BSE041488R101
Section 4 Analog Process Control Adaptive Control
BPf
Estimator
BPf
Sp
Load
disturbance
FF
FFGain
OutFF=FFGain*FF
Pv
Limitations Out
Pv
PID ∑ and anti- Process
algorithm Outfrom PID
wind-up
3BSE041488R101 143
Gain Scheduling Section 4 Analog Process Control
Gain Scheduling
When your process has predictable non-linear dynamics, time variations, or
demands on changes in operating conditions, you can use gain scheduling. To use
the gain scheduling technique, you first have to choose a reference signal that
correlates well with the changes in process dynamics. The reference signal can be:
• Pv – the process value signal
• Out – the output signal
• Sp – the setpoint signal
• Ext – an external signal
The reference signal can be divided into up to five ranges, separated by adjustable
limits. The gain scheduling function is a table, containing one set of all the
parameters for the PID controller for each range. One set of parameters is active
when the reference signal is within the current range. When the reference signal
passes a value between two parameter set ranges, the next set of parameters takes
over.
144 3BSE041488R101
Section 4 Analog Process Control Gain Scheduling
75 T1 T2
Reference signal
50 T1
Set 1 Set 1
25 T1 T1
0
Procedure steps
Figure 64. Example of the procedure for gain scheduling in two sets.
3BSE041488R101 145
Gain Scheduling versus Adaptation Section 4 Analog Process Control
2. You can then split Set 2 in half. Set 3 is added above Set 2, with the same
autotuned T2. You can then select Set 3 and autotune this to T3. The limit is by
default set to half the height of the set that was divided. You can change this
before autotuning the new set.
100
Set 2 Set 3 Set 3
T2 T3
75 T2
Set 2 Set 2
Reference signal
T2 T2
50
Set 1 Set 1 Set 1
25 T1 T1 T1
0
Procedure steps
Figure 65. Example of the procedure for gain scheduling in three sets.
146 3BSE041488R101
Section 4 Analog Process Control Gain Scheduling versus Adaptation
Process dynamics
Varying Constant
Figure 66. Procedure used to decide which controller to use, adaptive control
and/or gain scheduling.
3BSE041488R101 147
Additional Control Functions Section 4 Analog Process Control
Three-Position Output
Three-position action from a controller with increasing, or decreasing, or no signal
at all, for example, to an electrical motor actuator, is achieved by a function with
two digital output signals, which are never active at the same time.
This three-position output control module is an extension of a controller, when two
digital outputs are required. A comparison is made between the controller’s analog
output signal and an analog signal from the control device or actuator, which gives
the so-called position feedback signal.
When the difference is greater than a set dead zone, either of the two digital output
signals, Increase (increment output) or Decrease (decrement output) of BoolIO
type, is activated in the following manner, see Table 12.
148 3BSE041488R101
Section 4 Analog Process Control Additional Control Functions
controller Decrease
Active
Not active
Stiction Compensator
It is always important to know how a control loop will perform, because it
influences the process output. Performance checks may be carried out in many
ways. One method of detecting deficiencies in the process control is to detect
oscillations. Oscillations above a certain amplitude and within a certain frequency
range are probably caused by sticking control valves, due to too high static friction,
called stiction. This phenomenon usually increases gradually during operation with
fluids that are difficult to handle, for example, viscous fluids. Stiction then gives rise
to oscillations of a particular character in the process control loop.
There may also be other reasons for the oscillations, for example, badly tuned
control loops or oscillating load disturbances. However, in this section, only
methods of detecting and minimizing stiction problems will be dealt with. Methods
implemented in the PID controllers and as an add-in control module, are described
in the figure below and in the succeeding sections.
If the process handles products which cause friction problems in a pneumatic
control valve, an add-in function, called a stiction compensator, should be added to
the analog output signal used in the control loop.
This method of keeping pneumatic valves free from clogging and seizing involves
activating them regularly by adding short pulses, to “knock” the valve. The stiction
compensator function compensates for static friction and hysteresis which may
increase gradually with time.
3BSE041488R101 149
Additional Control Functions Section 4 Analog Process Control
Enable
Stiction
Advanced PID controller module compensator
Setpoint PID
algorithm
AO
Output
Pneumatic
process valve at
risk of stiction
Oscillation Detection
Automatic monitoring of control loop performance is built into the advanced PID
controller module. When activated, this oscillation detector function detects
oscillations in the process value around the setpoint, often caused by friction in a
control valve. Oscillation is detected when the process value oscillates a certain
number of times around the setpoint with an amplitude of about 1% or greater, and
with a period of about the length of the process time constant.
If you are uncertain about the cause of oscillation, you may undertake a diagnostic
procedure according to the flow chart in Figure 69, which helps you to find and
eliminate the source of oscillation.
150 3BSE041488R101
Section 4 Analog Process Control Additional Control Functions
Oscillation detection can be sent from the PID AdvancedCC object (parameter
VoteOut) to receiving Voting objects (parameter Inx). You then configure the value
of Inx parameter to be for example oscillation detection from the Vote object's
parameter InxLevelConfig. See also Signal and Vote Loop Concept on page 305.
3BSE041488R101 151
Additional Control Functions Section 4 Analog Process Control
3. If you are uncertain of the reason for the oscillation you may undertake a
stiction diagnostic procedure according to the succeeding steps. These guide
you in finding and eliminating the oscillation.
4. Put the output signal to the pneumatic valve into forced mode.
5. If the oscillation stops, check the pneumatic valve for friction. If the valve is
sticking, perform the required maintenance to retrieve the problem, or replace
the valve.
6. If it is not suitable at the moment to carry out maintenance on the valve, wait
for a later occasion. Meanwhile, you are advised to activate the stiction
compensator to reduce the influence of static friction in a pneumatic valve.
7. If there is no friction, check the tuning of the controller. There may have been
accidental changes in the process parameters.
8. If the oscillation persists, the process value may be influenced by a disturbance.
Search for the source. It may be useful to use the feedforward function.
152 3BSE041488R101
Section 4 Analog Process Control Additional Control Functions
Pulse width
Output
signal
Pulse amplitude
Hysteresis
Pulse period
Time
Figure 70. The stiction compensator signal is superimposed on the analog output
signal.
Sluggish control
3BSE041488R101 153
Input and Output Signal Handling Section 4 Analog Process Control
154 3BSE041488R101
Section 4 Analog Process Control Input and Output Signal Handling
Interface
objects
I/O Code or
Input
unit presentation
3BSE041488R101 155
Input and Output Signal Handling Section 4 Analog Process Control
156 3BSE041488R101
Section 4 Analog Process Control Input and Output Signal Handling
Table 13. Standard library types for input signal handling (Continued).
3BSE041488R101 157
Input and Output Signal Handling Section 4 Analog Process Control
158 3BSE041488R101
Section 4 Analog Process Control Input and Output Signal Handling
3BSE041488R101 159
Input and Output Signal Handling Section 4 Analog Process Control
160 3BSE041488R101
Section 4 Analog Process Control Input and Output Signal Handling
Manual-Auto Control
The ManualAutoCC control module lets you view the status of a signal of
ControlConnection data type, at any location, but preferably before an output, and
then change its value in Manual mode.
3BSE041488R101 161
Supervision Section 4 Analog Process Control
Supervision
A level detector is a trip switch (low or high) for supervision of an analog signal. A
low-level trip indicates when the input signal drops below any of several defined
low detect levels, and a high trip correspondingly indicates when the supervised
signal exceeds any of several defined high detect levels.
162 3BSE041488R101
Section 4 Analog Process Control Supervision
3BSE041488R101 163
Supervision Section 4 Analog Process Control
164 3BSE041488R101
Section 4 Analog Process Control Supervision
3BSE041488R101 165
Calculation Section 4 Analog Process Control
Calculation
There are a large number of system functions and control modules for mathematical
calculations of signals as well as mean, median and majority calculations.
166 3BSE041488R101
Section 4 Analog Process Control Calculation
3BSE041488R101 167
Signal Handling Section 4 Analog Process Control
Signal Handling
Derivative Objects
Derivative objects are normally used to detect changes in a signal, to predict a
control activity. A derivative object may also act as a high-pass filter.
168 3BSE041488R101
Section 4 Analog Process Control Signal Handling
Integrator Objects
Integrators accumulate the input signals and present the sum as an output. For
instance, a flow may be integrated, in order to compute a volume. The input signal is
integrated as long as the integrator is enabled. See Figure 76.
Output
signal
Set to a
∫ In Set at preset Enable=
a level value FALSE
Time
Figure 76. The integrator function sums the input signal (In) value over time.
3BSE041488R101 169
Signal Handling Section 4 Analog Process Control
Flow Calculation
Flow measurements can be made by meters giving an analog signal directly
proportional to the flow, or by differential pressure measurement across a measuring
flange.
170 3BSE041488R101
Section 4 Analog Process Control Signal Handling
Signal Reshaping
If a transmitter signal is non-linear, a piecewise linear signal object can be used to
reshape and linearize it. Linearization is performed before the signal is connected to
the controller or a calculator function. A piecewise linear signal object is also useful
in cases of non-linear relations between values in one or two dimensions, for
example, absolute and relative humidity, or pressure versus density for a liquid or
for steam.
3BSE041488R101 171
Signal Handling Section 4 Analog Process Control
The above control modules are suitable for changing signals according to non-
linear static functions.
A setpoint curve may be generated by a PiecewiseLinearCC control module to a
succeeding controller by having a preceding IntegratorCC control module.
172 3BSE041488R101
Section 4 Analog Process Control Signal Handling
The inverse of the f(In) function can be calculated with the InInverse and OutInverse
parameters:
• The relation is OutInverse = f--1(InInverse). The inverse calculation is
performed on the specified data points, where OutInverse is in the interval x1 -
xn, and xn is the last point used. All functions can of course not be inverted. In
such cases a pseudo inverse is calculated using the curve between the
maximum and minimum defined values of y.
• If the inverse is still not unique, the smallest value is chosen. This is illustrated
in Figure 77, which shows the inverse calculation for two different InInverse
values, y1 and y2. For y1 there are two possible inverse values. The rightmost
is chosen, since the inverse is calculated from the curve between the maximum
and minimum values. For y2, there are four possible inverse values, three of
which are inside the inverse range. The leftmost of these is chosen. If InInverse
is greater than the maximum defined value of y or less than the minimum
defined value of y, the inverse calculation is based on using the maximum or
minimum value respectively.
3BSE041488R101 173
Signal Handling Section 4 Analog Process Control
Filters
First-order, low-pass filters can be used to, for example, reduce the amount of high-
frequency noise in analog signals created by an analog transmitter or the control
system environment. A filtering time can be set.
174 3BSE041488R101
Section 4 Analog Process Control Signal Handling
Low-pass filter control modules may be used to flatten a signal step with a high
derivative component into a continuous signal, without steps. This filter function
is also included in the analog input control module described in Input and Output
Signal Handling on page 154.
Delays
Dead-time control and loop calculation are required in control systems with long
transport lags, such as conveyor feed systems.
3BSE041488R101 175
Branch Objects Section 4 Analog Process Control
Branch Objects
There are a number of branch objects that split signals into two or several branches
and manage different aspects of the splitting procedure.
Also, many processes work with large differences in product flows. It may then be
necessary to use two valves in parallel, one for small flows and one for large flows.
In other processes, there might be a need to split a signal into two branches, one
slow and one fast.
To ensure that two process valves working in parallel, together give the required
flow a signal range might need to be divided into two output signal ranges, each of
which is an output part of the input signal.
The Control libraries contain a number of types for these purposes.
176 3BSE041488R101
Section 4 Analog Process Control Branch Objects
3BSE041488R101 177
Branch Objects Section 4 Analog Process Control
Signal Tapping
There are functions for tapping off signals in the same signal range. One function
taps off signals of the ControlConnection type. Another can tap off signals of the
real type from a signal of the ControlConnection type. A signal tap is a kind of
listening control module on the main signal flow. The tapped signal is an exact copy
of the input signal. Modules connected to the tap output must not, under any
circumstances, influence the main signal flow.
178 3BSE041488R101
Section 4 Analog Process Control Branch Objects
Demultiplexors
A demultiplexor has one input and several outputs. It is possible to select the output
that will forward the input value.
3BSE041488R101 179
Selector Objects Section 4 Analog Process Control
Selector Objects
In signal handling and in control loop applications it is often necessary to choose
between two or more signals. This subsection describes a number of functions,
function blocks and control modules for this purpose.
Table 29. Standard functions and library objects for signal selection .
180 3BSE041488R101
Section 4 Analog Process Control Selector Objects
Table 29. Standard functions and library objects for signal selection (Continued).
3BSE041488R101 181
Selector Objects Section 4 Analog Process Control
Table 29. Standard functions and library objects for signal selection (Continued).
182 3BSE041488R101
Section 4 Analog Process Control Selector Objects
Table 29. Standard functions and library objects for signal selection (Continued).
The MinCC and Min4CC selector control modules select the minimum value of two
and up to four connected input signals, respectively. MaxCC and Max4CC select the
maximum value of two and up to four connected input signals, respectively. At least
two inputs have to be connected but unconnected inputs are not considered in the
selection. The inputs may have different measuring ranges.
If the output is backtracked from succeeding control modules all connected inputs
are backtracked to the same value.
The user defines a tolerance for each input. An unselected input can deviate at most
by that tolerance from the output. When an input is limited by the tolerance, that
input value is sent to preceding control modules having an internal state. No value is
sent backward as long as the input is within its tolerance from the output.
Assume for a MinCC that input one is the minimum signal and is consequently sent
to the output.
3BSE041488R101 183
Selector Objects Section 4 Analog Process Control
To avoid input two drifting away it is limited by its tolerance from the output. If
input two exceeds the output plus the input two tolerance, input two is limited to that
value. This means that outputs of preceding control modules with internal states do
not exceed that limited input two value. Consequently, if the input two value is
within its tolerance of the output signal, no value is sent to preceding control
modules. The opposite is true if instead input two signal is the smallest.
The same is valid for MaxCC. It selects the maximum of two input signals and
sends it to the output. Accordingly, if the smaller input signal reaches its tolerance
limit, the smaller input is assigned the output signal value minus its tolerance value.
This means that outputs of preceding control modules with internal states do not fall
below that limited input two value.
In control modules with four inputs the discussion is exactly the same. The three
unselected inputs are treated in the same way as described above. These control
modules can be used if, for example, controllers are connected to the inputs. The
unselected controller output signal will stay close (differing by the tolerance at
most) to the selected controller output. It is then ready to be the active controller.
See the example for maximum and minimum selectors.
Do not set the tolerance values too low. Problems may occur if any of the input
signals starts to oscillate or has a noise jamming overlay. If the tolerance
parameters are set too narrow and a controller starts to oscillate, with an
amplitude greater than the tolerance, problems may occur. The output signal from
MaxCC and Max4CC can start to "integrate" up to 100% (MinCC and Min4CC
lead to integration to 0).
184 3BSE041488R101
Section 4 Analog Process Control Limiter Objects
Limiter Objects
In many cases it is necessary to limit a signal value, or to limit the rate of change of
a signal.
3BSE041488R101 185
Limiter Objects Section 4 Analog Process Control
186 3BSE041488R101
Section 4 Analog Process Control Limiter Objects
3BSE041488R101 187
Conversion Section 4 Analog Process Control
Conversion
The conversion function blocks in the Basic library convert signals of various data
types to and from signals of other data types.
The conversion control modules in the Standard Control library convert data types
used in control loops to and from other data types for connections to application
programs. These control modules are like an adaptor interface between an ordinary
data type signal and a control loop signal of ControlConnection data type.
The following conversion functions are available. See also online help for detailed
information on individual objects (select the object in Project Explorer and press
F1).
188 3BSE041488R101
Section 4 Analog Process Control Conversion
3BSE041488R101 189
Conversion Section 4 Analog Process Control
There are more functions for similar conversions in the Basic library. See online
help for complete information.
190 3BSE041488R101
Section 4 Analog Process Control Miscellaneous Objects
Miscellaneous Objects
There are some additional types in the standard libraries that are useful when
building control loops.
3BSE041488R101 191
Basic Control Loop Examples Section 4 Analog Process Control
Figure 78. Example of a cascade control loop consisting of function blocks, with
signal ranges added.
192 3BSE041488R101
Section 4 Analog Process Control Signal Selection Example
3BSE041488R101 193
Signal Selection Example Section 4 Analog Process Control
Figure 80. Example of a Max4CC control module with inputs from controller
outputs.
In Figure 80, controller PID1 has no control deviation, its inputs are stable and the
PID1 output signal is constant. The other three controllers have a control deviation
causing the controller outputs to show a decreasing tendency. This situation will
force each of the non-selected PID2, PID3, and PID4 outputs to a value, assigned
for each input to Max4CC, close to the selected controller output determined by the
PID1 output minus the tolerance value. The controller output signals will then
remain close to the selected controller output, ready to be the selected one. For
example, if you use control modules to solve a selection of controller outputs for
override control of a heat pump, the solution with a minimum selector control
module may be as shown in Figure 81.
194 3BSE041488R101
Section 4 Analog Process Control Signal Selection Example
Master
controllers
Minimum
selector
Slave
controller
Figure 81. Example using control modules for override control in a heat pump using
a minimum selector control module.
All the components of ControlConnection are transmitted unaffected between the
selected master controller and the slave controller. The backward component, of the
non-selected inputs to the minimum selector are computed from the forward
components of the selected input in such a way that integrator wind-up is managed,
even in noisy cases. The inputs to the minimum selector are computed from the
backward components of the slave controller output in order to handle bumpless
transfer when the slave controller goes from manual to automatic mode.
In the forward direction, the range of measurement of the minimum selector output
is computed as the union of the ranges of the minimum selector inputs. In the
backward direction, the range of measurement of the output is transmitted to all the
inputs.
3BSE041488R101 195
Common Range Example Section 4 Analog Process Control
Example 1
Figure 82 describes the conditions in a SplitRangeCC control module when the
input value giving the maximum output 1 is greater than the input value giving
minimum output 1, that is imax1 > imin1. The input value giving maximum output
2 is also greater than the input value giving minimum output 2, that is imax2 >
imin2.
196 3BSE041488R101
Section 4 Analog Process Control Split Range Examples
Example 2
An example of a case in which the SplitRangeCC control module may be used is
heating or cooling of a material flow. In the setup illustrated below in Figure 83,
there are two valves, one for the cooling medium and one for the heating medium. If
both valves are closed, there is no need to change the temperature. A low-level input
signal means cooling and a high-level signal means heating.
In the temperature control case, imin1 and imin2 may be equal so that heating takes
over when cooling stops.
3BSE041488R101 197
Split Range Examples Section 4 Analog Process Control
Figure 83.
In applications such as this, the input value giving the maximum value of output 1 is
smaller than the input value giving the minimum value of output 1, that is imax1 <
imin1. When the input value giving maximum output 2 is greater than the input
value giving minimum output 2, that is imax2 > imin2, the conditions are as shown
in Figure 84. However, imin1 and imin2 are not equal, as suggested above. The
figure shows possible overlapping valve openings.
198 3BSE041488R101
Section 4 Analog Process Control Level Detection Example
Figure 84.
3BSE041488R101 199
Level Detection Example Section 4 Analog Process Control
200 3BSE041488R101
Section 4 Analog Process Control Application Examples
Application Examples
The examples in this section are installed with your Compact Control Builder. They
are located in the ControlExamples folder which is installed in the Examples folder.
For more information on how to open the examples, see the manual Basic
Control Software, Introduction and Configuration.
The control loop example applications all reside in the TankControl project, which
is created when the ControlExamples file is imported. Each application is
implemented in four ways, using:
• control modules
• function blocks
• control modules in a function block
• a control loop function block.
The variables of each application are connected to simulated processes, with I/O
units according to Figure 86
Figure 86. The principle for control applications, the simulated processes and I/O
units.
The first application example consists of basic, simple control loops. The second
example is based on the simple example but expanded to include a cascade
controller. The third application example has fuzzy controllers. See Figure 87.
The processes used in the examples are simulated process models, all designed by
means of control modules. The process object models, such as the tanks and valves,
have their own interaction windows. The advanced user may then alter these objects
and see the resulting behavior of the control loop.
3BSE041488R101 201
Application Examples Section 4 Analog Process Control
Control modules
Figure 87. The four methods of designing an application and the simulated process.
The purpose of these control loop examples is to show the functions of the function
blocks and control modules from the Control libraries, and their use. It is assumed
that the user has basic knowledge about the system, Project Explorer and application
graphics, as well as general knowledge about process control systems.
The purpose is also to show the user how to use controller interaction windows,
perform tuning and parameter settings, apply and view the result of disturbances,
etc. The examples will increase your understanding of the process dynamics. Run
the TankControl project and gradually find and explore the features on your own.
If you want to construct a similar control system application yourself, start from
these control examples. You may, in offline mode, also insert any of the application
examples into your own project. Alternatively, you can copy some example objects,
with their connections, to your own application, from an inserted application
example.
202 3BSE041488R101
Section 4 Analog Process Control Application Examples
3BSE041488R101 203
Simple Loop Examples Section 4 Analog Process Control
Figure 88. The Simple Loop application in online mode with its four methods of
programming.
204 3BSE041488R101
Section 4 Analog Process Control Simple Loop Examples
Tank Process
The example consists of two tanks. The upper tank has an inlet pipe. The flow in the
inlet pipe is controlled by a control valve. The outlet from the upper tank is a free
drain outlet to another lower tank, also with a free drain outlet.
The tank process is created, in each of the four methods, with control modules from
the TankLib library; one control module for each tank and one for the valve, which
can be seen in the Project Explorer. In the application interaction window, you have
a view of the process.
The input and output of the simulation model are of real data type. Because the
input and output control signals to and from the control loop are of RealIO type they
are connected via control modules from the TankLib to simulate the I/O system. You
can see these control module types, AnalogInIOSim and AnalogOutIOSim, in the
lower left hand corners of the application window. In offline mode, you can view
their connections. In test and online mode, you can view them in the interaction
windows.
3BSE041488R101 205
Cascade Loop Examples Section 4 Analog Process Control
Figure 89. The Cascade Loop application in online mode showing four methods of
programming.
206 3BSE041488R101
Section 4 Analog Process Control Cascade Loop Examples
Master Slave
Sp2 Out2=Sp1
Out1 Pv1 Pv2
Outer Inner
Pv2 Pv1 Process 1 Process 2
controller controller
Inner loop
Outer loop
Figure 90. Illustration of two PID function blocks or controller modules connected
in cascade.
The inner loop should be faster than the outer loop. It should also be possible to
have high gain in the inner loop. Starting from scratch, perform the tuning of two
controllers in cascade according to the following basic steps.
1. Put both controllers in Manual mode.
2. Begin with the inner controller and adjust the internal setpoint, Sp1, to the
inner process value, Pv1.
3. Start the Autotuner of the inner controller, and accept the tuned PID
parameters. See Autotuning on page 133.
4. Select the external setpoint for the inner controller and set it to Auto mode.
5. In the outer controller adjust the setpoint, Sp2, to the outer process value, Pv2.
6. Start the Autotuner of the outer controller and accept the tuned PID parameters.
See Autotuning on page 133.
7. Switch the outer controller to Auto mode.
3BSE041488R101 207
Cascade Loop Examples Section 4 Analog Process Control
208 3BSE041488R101
Section 4 Analog Process Control Fuzzy Control Loop Examples
Figure 91. The Fuzzy Control Loop application in online mode showing two
methods of programming.
3BSE041488R101 209
Fuzzy Control Loop Examples Section 4 Analog Process Control
210 3BSE041488R101
Section 5 Binary Process Control
Introduction
This section describes how to use types from the Process Object libraries to create
binary control solutions for your automation system. The section contains:
• A description of the Process Object concept that will help you understand the
thinking behind the library types in the Process Object libraries, see Concept
on page 212.
• Advice and instructions on how to implement binary control solutions using
the types in the Process Object libraries, see Design on page 238.
• Examples on how to implement binary control solutions using the types in the
Process Object libraries, see Examples on page 254.
• Detailed information on how to implement ABB Drives and INSUM control,
see Advanced Functions on page 266.
All other Uni and Bi types that are based on the UniCore and BiCore types exist in a
function block and a control module version. Throughout this section, the notation
UniSimple(M) etc. is used when referring to both the function block type and the
control module type.
For a discussion on the difference between function blocks and control modules,
and how to choose between the two, see the Basic Control Software, Introduction
and Configuration manual.
3BSE041488R101 211
Concept Section 5 Binary Process Control
Concept
A process object is a representation of a real physical object, which can be in
different states and can be controlled by commands. Throughout this section,
process objects are usually motor or valve objects, but they can also represent other
objects, such as a tank.
With process objects, there is a need for scalability, down to single process objects.
However, they must never be too specific or too complex, they must be so small and
fit so smoothly that they do not interfere with the programmer’s own valve or motor
parameters, but at the same time, they must be intelligent enough to work directly by
themselves, without any additional programming efforts.
In order to satisfy this need, the Process Object libraries contain a number of types
that are designed to be either:
• Used in the application as is, in which case you only have to connect it to the
application, to interaction windows, etc., see Process Object Libraries
Overview on page 213.
• Used as a template, when new valve object types or motor object types are to
be created in your libraries and applications, see Process Object Template
Concept (Core Objects) on page 216.
When using process objects, as is or as templates, you will also need to know:
• How to use the basic parameters of the core objects to configure the different
types in the Process Object library types, see Core Object Functions and
Parameters (UniCore and BiCore) on page 220.
• Which graphics and icons that are used to represent control modules, Control
Module Icons on page 236.
• How the interaction windows that can be used in Control Builder work, see
Interaction Windows on page 236.
• How communication with graphics and code works, see Interaction Parameters
on page 237.
212 3BSE041488R101
Section 5 Binary Process Control Process Object Libraries Overview
3BSE041488R101 213
Process Object Libraries Overview Section 5 Binary Process Control
Figure 92. Relations between a function block or control module and the remote
objects
214 3BSE041488R101
Section 5 Binary Process Control Process Object Libraries Overview
3BSE041488R101 215
Process Object Template Concept (Core Objects) Section 5 Binary Process Control
216 3BSE041488R101
Section 5 Binary Process Control Process Object Template Concept (Core Objects)
The above core function blocks (BiCore and UniCore) are protected and form a
basis for all object types. The core is not copied when a process object type is
copied, instead it refers (points) to its type in the Process Object Basic library. This
means that then using types that have a core object embedded, this core object is
referenced whenever this
Since types based on core objects reference the core objects, the Process Object
Basic library must always be connected to your project when you have used
standard types based on core objects or created your own types based on core
objects.
Figure 93 shows how core objects form the basis of other, application-specific
objects.
3BSE041488R101 217
Process Object Template Concept (Core Objects) Section 5 Binary Process Control
The Process Object Basic library must always be connected to your project when
using self-defined types based on types from the Process Object libraries. This is
necessary since this library contains data types used that are used in the Process
Object Extended library. It is necessary even if parameters of those data types not
are explicitly used, due to their DEFAULT declaration.
Core objects can only be updated when the standard libraries are upgraded. If core
objects are updated, the core functions of all types based on these core objects are
updated as well.
All types based on the core objects exist in two variations, as a function block
type and a control module type.
218 3BSE041488R101
Section 5 Binary Process Control Process Object Template Concept (Core Objects)
Commands to UniCore and BiCore objects are reset inside the core, and process
objects shall only set them to activate operation. Examples on commands are switch
to auto mode or manual mode, but also the manual operation commands like
ManCmdx.
3BSE041488R101 219
Core Object Functions and Parameters (UniCore and BiCore) Section 5 Binary Process Control
220 3BSE041488R101
Section 5 Binary Process Control Core Object Functions and Parameters (UniCore and BiCore)
Operation Parameters
The operation parameters of the UniCore object can be used to configure feedback
signals, set feedback error time, and disable error handling. The PulseOut parameter
governs whether outputs should be pulsed or level, depending on the hardware used
for the process object in question. UniCore also calculates information to be
presented in interaction windows.
• Modes
An object is activated when the Enable parameter is set to true, signifying that
the function block will be executed. When the parameter Enable is false, Out1,
Out0, Out1Level, StatAct, StatDeact, and ObjErr will be set to false, regardless
of the status of other signals. The object can be activated or deactivated in all
modes. After deactivation, the object is switched into Manual mode.
UniCore has seven different operation modes:
Manual, Auto, Panel, Priority, Group Start, Local and Out of Service Mode.
Manual mode and Auto mode are examples of output mode indication
parameters (ManMode and AutoMode).
3BSE041488R101 221
Core Object Functions and Parameters (UniCore and BiCore) Section 5 Binary Process Control
Manual mode is set as the default start-up mode using the parameter
ManModeInit. The initial value is set to true, meaning that Manual will be the
default mode. The parameter ManModeInit is copied to the parameter
ManMode at every cold start.
The output parameter ObjMode also indicates the different modes:
ObjMode = 0 -> Local mode
ObjMode = 1 -> Priority mode
ObjMode = 2 -> Panel mode
ObjMode = 3 -> Manual mode
ObjMode = 4 -> Auto mode
ObjMode = 5 -> Group start mode
ObjMode = 6 -> Out of service mode
Figure 94 shows the different operation modes and their relationships. The
longer from the middle the higher the priority.
222 3BSE041488R101
Section 5 Binary Process Control Core Object Functions and Parameters (UniCore and BiCore)
3BSE041488R101 223
Core Object Functions and Parameters (UniCore and BiCore) Section 5 Binary Process Control
*
AutoCmd1
AutoCmd0
Out1Level
224 3BSE041488R101
Section 5 Binary Process Control Core Object Functions and Parameters (UniCore and BiCore)
When returning to Auto mode from another mode, the status of the output
signals will be returned from the previous mode, but adjusted directly by
the signals AutoCmd1 or AutoCmd0, if one or both are set to true.
– Panel Mode - The object is controlled locally from a control panel, via the
UniCore function block
The function block has a set of signals for maneuvering the object from a
control panel. Setting the PanMode parameter activates Panel mode. The
PanMode parameter is level detected.
This mode is active only as long as the PanMode parameter is true. If
PanMode is changed to false, the system exits Panel mode immediately,
and return to the previous mode.
For examples of Panel mode, see Connect to a Control Panel in Panel
Mode on page 262.
– Priority Mode
The object is in Priority Mode when any of PriorityCmd0, PriorityCmd1,
PriorityCmdMan0 and PriorityCmdMan1 are active. This is described in
section Priority and Interlocking Parameters on page 228.
– Group Start Mode
Changing mode to Group start mode is done via the structured parameter
GroupStartIn of type GroupStartObject. In this mode the object is
controlled via this parameter. The parameter GroupStartIlock prevents the
possibility to transfer to Group start mode. In this mode output parameter
GroupStartMode is active.
– Local Mode - The object is controlled locally from a local control panel,
bypassing the UniCore function block
Local mode is used when the object is controlled locally from a local
control panel and the function block does not have any signals for
controlling the object from the local control panel. All signals from the
local control panel are physically connected directly to the object (motors,
valves, etc.), see Figure 96.
In this mode, the object statuses are updated using the feedback signals.
Objects return to the previous mode when local mode is disabled.
3BSE041488R101 225
Core Object Functions and Parameters (UniCore and BiCore) Section 5 Binary Process Control
Start LocMode
Stop
226 3BSE041488R101
Section 5 Binary Process Control Core Object Functions and Parameters (UniCore and BiCore)
• Feedback Signals
The parameter FBConfig informs the function block of how feedback is
configured, by transferring the combination of feedback signals of the object to
the function block. Possible combinations of feedback signals are listed in
Table 33.
0 FB1 FB0
1 FB1 (none)
4 (none) FB0
6 (none) (none)
The values of the feedback signals FB1 and FB0 are transferred to the StatAct
and StatDeact output parameters respectively, in condition with Out1Level.
If an object has no, or only a single, feedback signal, StatAct and StatDeact will
still be set. The signals StatAct and StatDeact are set to zero if double feedback
is used and both are true at the same time.
• Output Settings
The output signals include Out1, Out0 and Out1Level. Out1 and Out0 can be
configured as pulsed command or level-detected command, by means of the
PulseOut parameter.
The pulse is sustained by the parameters Out1 and Out0, until the
corresponding feedback is detected or the maximum feedback error time is
exceeded. Out1Level is intended to indicate the output state when the Out1 and
Out0 parameters are pulsed. If there is no feedback from a position, the pulse
duration is set to the object error time. Only one pulse is generated upon each
status change.
3BSE041488R101 227
Core Object Functions and Parameters (UniCore and BiCore) Section 5 Binary Process Control
• Object Test
When the parameter Object Test is activated, the feedback error calculation is
disabled and the Out1 and Out0 signals are set to false. The signals StatAct and
StatDeact are set according to the status of Out1Level.
When Object Test is deactivated, the status of the object reverts to that in the
mode prior to Object Test and the Out0 signal is set to true.
228 3BSE041488R101
Section 5 Binary Process Control Core Object Functions and Parameters (UniCore and BiCore)
3BSE041488R101 229
Core Object Functions and Parameters (UniCore and BiCore) Section 5 Binary Process Control
The object internal status is updated from the feedback signals after a warm restart:
• Effective Feedback
The EffectiveFB1 and EffectiveFB0 parameters, of the in/out type, give the
calculated result from FBConfig and the values of FB1 and FB0.
Effective feedback signals are connected to the interaction window and are
displayed under the Status tab.
• Output IOLevel
The parameter Out1IOLevel, of the in/out type, is calculated from the actual
values of the binary I/O (Out1IO, Out0IO), in relation to the selected pulse
functionality.
Out1IO
Out0IO
Out1IOLevel
230 3BSE041488R101
Section 5 Binary Process Control Core Object Functions and Parameters (UniCore and BiCore)
3BSE041488R101 231
Core Object Functions and Parameters (UniCore and BiCore) Section 5 Binary Process Control
AutoCmd1
AutoCmd2
AutoCmd0
Out1Level
Out2Level
Figure 98. Status relations of OutLevel parameters and Auto commands (BiCore).
• There are additional parameters for feedback configuration: FB2, EffectiveFB2
and StatAct2, see Table 34. If an object has no, or only one or two, feedback
signals, StatAct1, StatAct2 and StatDeact are still set. The signals StatAct1,
StatAct2, and StatDeact are set to false, if FBConfig = 0, 1, 2 or 3, and more
than one feedback is True at the same time.
232 3BSE041488R101
Section 5 Binary Process Control Core Object Functions and Parameters (UniCore and BiCore)
xxxCmd1
xxxCmd2
xxxCmd0
Out1
(not pulsed)
ChangeOverTime
Out2
(not pulsed)
ChangeOverTime
3BSE041488R101 233
Core Object Functions and Parameters (UniCore and BiCore) Section 5 Binary Process Control
(C)
State 1 State 2
(Start/Forward) (D) (Start/Reverse)
(B) (E)
234 3BSE041488R101
Section 5 Binary Process Control Core Object Functions and Parameters (UniCore and BiCore)
PriorityCmd0 has the highest priority of the three priority commands and
affects Out0. Similarly, PriorityCmd1 and PriorityCmd2 affect Out1 and Out2.
Priority1
Priority2
Priority0
Inhibit
Out1
Out2
Out0
Out1IO
Out2IO
Out0IO
Out1IOLevel
Out2IOLevel
3BSE041488R101 235
Control Module Icons Section 5 Binary Process Control
Interaction Windows
Interaction windows are used for maintenance purposes. Through an interaction
window, the service engineer or programmer may manipulate the process object. All
types in the Process Object standard libraries have at least one pre-made interaction
window.
For example, the Bi process object has three Control Builder interaction windows,
one for manual control, one for indications and one for Group Start (see
Figure 104). The main interaction window is displayed first.
236 3BSE041488R101
Section 5 Binary Process Control Interaction Parameters
Interaction Parameters
Interaction parameters are used to interact with the process object. Interaction
parameters can be accessed from the code (this is not recommended, since it might
shut out the operator interface) and from the graphical interface. Interaction
parameters are identified by the syntax InteractionPar.ComponentName.
For more information on interaction parameters, see Control Builder online help
for the Process Object libraries. Interaction parameters for process objects are
also described in connection with instructions on how to configure the objects,
see Advanced Functions on page 266.
3BSE041488R101 237
Design Section 5 Binary Process Control
Design
The types in the Process Object libraries can be used in a number of ways. There are
also a number of choices that have to be made regarding which type of object to use
for which purpose.
This sub section contains information designed to help you:
• Decide which type to use, see Choose the Correct Type on page 239.
• Configure standard types to be used in your application as is, see Use Standard
Library Types on page 240.
• Create your own types based on core objects, see Use Standard Library Types
to Create Self-defined Types on page 241.
• Connect process objects to a group start configuration, see Group Start
Interface on page 241.
• Configure alarm handling, see Alarm Handling on page 243.
• Create uni-directional and bi-directional control solutions using the Uni(M)
and Bi(M) template objects, see Generic Uni- and Bi-Directional Control on
page 245.
• Configure motor control and valve control solutions using objects from the
Process Object libraries, as templates or as is. See Motor and Valve Control on
page 249.
238 3BSE041488R101
Section 5 Binary Process Control Choose the Correct Type
3BSE041488R101 239
Use Standard Library Types Section 5 Binary Process Control
If the process object is to be used for a uni-directional object, (an object with two
states) several choices are possible. If it is not a motor or a valve, choose the Uni
object type or the UniSimple(M) type if you do not need alarm handling. If it is a
uni-directional motor object, choose MotorUni(M) and if it is a uni-directional valve
object, choose ValveUni(M).
Figure 105 contains a flow chart for selecting the correct type for your process
objects.
Bi
Bi/Uni
Uni
No No
Motor/Valve Alarm UniSimple
Yes Yes
No No
Uni Motor Alarm BiSimple
Yes Yes
Motor No ValveUni MotorBi Bi
Yes
MotorUni
240 3BSE041488R101
Section 5 Binary Process Control Use Standard Library Types to Create Self-defined Types
For examples of how to do this, see Examples on page 254. For detailed information
about parameters for the different types, see Level Detection, Commands and Alarm
Texts on page 266.
3BSE041488R101 241
Voting Interface Section 5 Binary Process Control
The parameter GroupStartIn is the structured parameter, that connects the process
object to the group start environment and is in the control module cases
implemented as a node to allow a graphical connection. The out parameter
GroupStartMode indicates Group Start mode with a true value in the corresponding
boolean parameter. When the parameter GroupStartILock is true, transfer to group
start mode is inhibited.
These parameters are optional and only implemented in the more complex motor
objects. The purpose is to halt the start or stop sequence if any external signal
requests it and all Txt-parameters are strings, telling the Group Start environment
the reason of the halt.
• ContinueStartSeq *
• ContinueStartSeqTxt *
• ContinueStopSeq *
• ContinueStopSeqTxt *
* One for each connection (Uni types have one connection and Bi types have two
connections).
For a description of the Group Start library, see Section 6, Synchronized Control.
Voting Interface
Several process objects support Voting; for more information about these objects
and their corresponding Voting parameters, see Signal and Vote Loop Concept on
page 305.
242 3BSE041488R101
Section 5 Binary Process Control Alarm Handling
Alarm Handling
For more information on alarm and event handling, see the manual Basic Control
Software, Introduction and Configuration, and online help for the Alarm and
Event library.
Some process objects contain an alarm and event handling function block. The
alarm handling interface consists of the following parameters:
• AlarmDisabled
• ExtErr
• ObjErr
• AlState
• AlarmAck
• AEConfig
• AESeverity
• AEClass
• EnableSupOut
When an error occurs, motor objects normally and automatically enter Priority
mode and reset the start signals. It is possible to leave the motor running, by setting
the interaction parameter KeepAtErr. For other template objects, this is the normal
functionality.
For the alarm to work properly, the Name parameter of each object has to be
unique throughout the whole plant.
The alarm function is based on the AlarmCond function block, with acknowledge
rule (AckRule=1). This acknowledge rule includes six possible alarm states. For
further information about alarm states, see online help on the AlarmCond function
block. The alarm is activated by a feedback error.
The AlarmCond function block incorporates an alarm Control Builder interaction
window, displayed by a clicking the alarm icon in the Control Builder interaction
window. See Figure 106.
3BSE041488R101 243
Alarm Handling Section 5 Binary Process Control
Error Texts
Error text strings can be added by the OETextUni, OETextBi, and OETextValveUni
function block that are included in their corresponding process object types. These
function blocks generate a text message from the feedback and output signals of the
AlarmCond function block. The text message is displayed in the Alarm Control
Builder interaction window.
The text is put together by adding the name of the object that created the alarm to
information about status and feedback. If the error has been generated from an
ExtErr parameter, an external error text is also displayed.
For more information on the OEText function blocks, see Level Detection,
Commands and Alarm Texts on page 266. More information about parameters is
also found in online help for the Process Object libraries.
244 3BSE041488R101
Section 5 Binary Process Control Generic Uni- and Bi-Directional Control
3BSE041488R101 245
Generic Uni- and Bi-Directional Control Section 5 Binary Process Control
Uni(M)
Uni(M) object is a UniCore application.
Uni(M) includes an alarm function,
Control Builder interaction windows.
Uni(M) is intended for uni-directional
control and can be used as a template
for developing your own uni-directional
types, see Create a Library and Insert a
Copy of a Type on page 254.
For Uni(M), it is possible to control
Panel mode of the object from both a
workplace, and from a switch on a
control panel. The interaction window
has a button that can toggle Panel mode.
There is also a parameter (PanMode)
intended to be connected to an
activation signal from the panel. If you
connect PanMode to the panel, it is still
possible to use the button in the
interaction window to activate Panel
mode.
It is not possible to deactivate Panel
mode from the interaction window if it
has been activated from the control
panel. For an example of a panel control
configuration, see Connect to a Control
Panel in Panel Mode on page 262.
246 3BSE041488R101
Section 5 Binary Process Control Generic Uni- and Bi-Directional Control
Bi(M)
Bi(M) is an example of a BiCore
application. Bi(M) includes an alarm
function, Control Builder interaction
windows.
Bi(M) is intended for bi-directional
control and can be used as a template for
developing your own bi-directional types,
see Create a Library and Insert a Copy of a
Type on page 254.
For Bi(M), it is possible to control Panel
mode of the object from both a workplace,
and from a switch on a control panel. The
interaction window has a button that can
toggle Panel mode.
There is also a parameter (PanMode)
intended to be connected to an activation
signal from the panel. If you connect
PanMode to a panel it is still possible to
use the button in the interaction window to
activate the Panel mode.
It is not possible to deactivate Panel mode
from the interaction window if it has been
activated from the control panel. For an
example of a panel control configuration,
see Connect to a Control Panel in Panel
Mode on page 262.
3BSE041488R101 247
Generic Uni- and Bi-Directional Control Section 5 Binary Process Control
UniSimple(M)
UniSimple(M) is a UniCore application. It
includes Control Builder interaction windows.
UniSimple(M) has the same functions as Uni(M),
except for the fact that there is no alarm and event
handling.
BiSimple(M)
BiSimple(M) is a BiCore application. It includes
Control Builder interaction windows.
BiSimple(M) has the same functions as Bi(M),
except for the fact that there is no alarm and event
handling.
248 3BSE041488R101
Section 5 Binary Process Control Motor and Valve Control
3BSE041488R101 249
Motor and Valve Control Section 5 Binary Process Control
MotorUni(M)
MotorUni(M) is an example of a UniCore
application. It includes an alarm function,
Control Builder interaction windows. It is
intended to be used to control a uni-directional
motor object (stop and run).
This section only discusses functions that have
been added, compared to the functions of
UniCore and Uni(M). You should also read Core
Object Functions and Parameters (UniCore and
BiCore) on page 220.
Auto mode can be set from the program,
interaction windows. Since Auto mode implies
automatic operation, the program controls the
object via AutoCmd1 and AutoCmd0.
Each of these parameters is supplied with a value
of FBTime, connected to the interaction window,
via interaction parameter components. The value
of FBTime can be changed from the
corresponding graphical window. The interaction
parameter components have the cold retain
attribute to retain their values following a cold
restart. FBTime for AutoCmd1 has the same
setting as AutoCmd1 and AutoCmd0, because the
same local variable is used.
For MotorUni(M), it is possible to control Panel
mode of the object from both a workplace, and
from a switch on a control panel. The interaction
window has a button that can toggle the Panel
mode.
250 3BSE041488R101
Section 5 Binary Process Control Motor and Valve Control
3BSE041488R101 251
Motor and Valve Control Section 5 Binary Process Control
MotorBi(M)
MotorBi(M) is an example of a BiCore application,
with an alarm function, interaction windows.
This section only discusses functions that have
been added, compared to the functions of BiCore
and Bi(M).You should also read Core Object
Functions and Parameters (UniCore and BiCore)
on page 220.
Auto mode can be set from the program,
interaction windows. Since Auto mode is the
automatic operation, the program controls the
object via AutoCmd1, AutoCmd2 and AutoCmd0.
AutoCmd1 and AutoCmd2 are supplied with an
OnDelayTime interaction parameter, AutoCmd0 is
supplied with an OffDelayTime interaction
parameter, connected to the interaction window,
via interaction parameter components. The value of
OnDelayTime and OffDelayTime can be changed in
the graphical window.
Interaction parameter components have the cold
retain attribute to retain their values at cold restart.
OnDelay for AutoCmd1 and AutoCmd2 has the
same setting as AutoCmd1, AutoCmd2 and
AutoCmd0, since the same local variable is used.
Just like for MotorUni(M), it is possible to control
Panel mode of the object from both a workplace,
and from a switch on a control panel. The
interaction window has a button that can toggle the
Panel mode.
252 3BSE041488R101
Section 5 Binary Process Control Motor and Valve Control
ValveUni(M)
The ValveUni(M) process object is a
simple example of the UniCore
function block. ValveUni(M) includes
an alarm function, Control Builder
interaction windows.
The ValveUni(M) object is
incorporated with only one output I/O
for open command.
When using the ValveUni(M) as is, the
only thing you have to do is to connect
the parameters that do not have default
values.
3BSE041488R101 253
Examples Section 5 Binary Process Control
Examples
This sub section contains a number of examples that have been included to show
how to implement process objects, how to create your own, application-specific
types, and to illustrate some important concepts and relations:
• Create a Library and Insert a Copy of a Type on page 254 gives an example of
how to create a library and copy Process Object library types into this library.
• Add Functions to Self-defined Types on page 259 gives an example of how
functions can be added to a type.
• Connect to a Control Panel in Panel Mode on page 262 shows how to connect
UniCore and BiCore to a control panel (Panel mode).
254 3BSE041488R101
Section 5 Binary Process Control Create a Library and Insert a Copy of a Type
7. Type the desired name of the object, in the New name text field, in this
example, MotorBiMod. Click the OK button.
Process object types in the Process Object libraries contain a number of control
modules, for example, the FaceplateMotorBi control module, which can be
used as an interaction window for the MotorBi(M) process object type. The
control modules refer (or point) to their types in ProcessObjExtLib.
If these control module types are to be changed in your application, the updated
control module types must also to be copied to your library.
8. Expand the folder of the copied process object type, and identify the control
module types that refer to the control modules used in the process object type.
For example, the control module type MotorLib.FacePlateMotorBi refers to
control module FaceplateMotorBi used in the MotorBi(M) process object type.
Figure 107. The control module type is copied to your own created library.
3BSE041488R101 255
Create a Library and Insert a Copy of a Type Section 5 Binary Process Control
9. In the Control Module Types folder of the Process Object Extended library,
select the control module type that is to be copied (for example,
FaceplateMotorBi).
10. Right-click on the control module type and select Copy (Ctrl+C).
11. Right-click on the Control Module Types folder in your newly created library
(in this example MotorLib). Select Paste (Ctrl+V). (See steps 6 and 7 if you
wish to change the name of an object type.)
12. Select the control module type that is to be replaced, under the process object
type, in your own created library (MotorLib), in this example,
FaceplateMotorBiMod under MotorBiMod. See Figure 107.
13. Right-click and select Replace Type.
256 3BSE041488R101
Section 5 Binary Process Control Create a Library and Insert a Copy of a Type
A copy of the
MotorBi type,
pasted into the
MotorLib.
3BSE041488R101 257
Create a Library and Insert a Copy of a Type Section 5 Binary Process Control
14. In the Libraries/Application list, select your self-defined library and in the
Control module type list, select the control module type that is to replace the
original type. (It is possible to rename the control module in the Instance name
field). Click the OK button.
258 3BSE041488R101
Section 5 Binary Process Control Add Functions to Self-defined Types
3BSE041488R101 259
Add Functions to Self-defined Types Section 5 Binary Process Control
Figure 110. Level detection functionality added to the MotorBiMod function block
type
It is now possible to use the MotorBiMod function block type in a program, with the
new added functionality.
6. In the Program folder under Applications, right-click on a program, for
example Program2, and select Editor (ENTER).
7. Declare a function block of the type MotorBiMod (in this example called
MotorBi).
8. Insert the function block in the code pane, connect the desired parameters and
declare the required variables. (In this example the Function Block Diagram
language is used).
260 3BSE041488R101
Section 5 Binary Process Control Add Functions to Self-defined Types
3BSE041488R101 261
Connect to a Control Panel in Panel Mode Section 5 Binary Process Control
UniCore Examples
Figure 112 shows how to connect UniCore to a control panel in a small application.
Controller
Control Panel
Motor
Switch Process object
PanMode
Start
PanCmd1
Stop PanCmd0
Figure 112. Control steps in Panel mode. This solution is recommended for small
applications, where all three panel parameters are connected from a control panel.
In large applications, the best solution is to connect the PanMode parameter, via
variables, to interaction window. The PanCmd1 and PanCmd0 parameters are still
connected to the physical Start/Stop buttons (see Figure 113). Changes in the Panel
mode are therefore approved centrally, that is, a local operator must first obtain
permission from the central control operator.
262 3BSE041488R101
Section 5 Binary Process Control Connect to a Control Panel in Panel Mode
Controller
Operator workplace
Switch on screen Motor
Process object
PanMode
PanCmd1
Control Panel
PanCmd0
Start
Stop
Figure 113. Control steps in Panel mode. This solution is recommended for large
applications, where the PanMode parameter is connected to an operator workplace.
The status of the object is controlled by the signals PanCmd1 and PanCmd0, which
are level signals and function in the same way as AutoCmd signals, as illustrated in
Figure 95. The PanCmd1 and PanCmd0 parameters should be connected to push
buttons. It may be advisable to use an R_Trig function block (trigger, parameter and
push button) between PanCmd1 and PanCmd0, in case the push button
malfunctions.
BiCore Examples
A control panel is a natural choice for smaller applications. The PanMode
parameter is connected to the switch on the control panel; PanCmd1, PanCmd2 and
PanCmd0 are connected to the Start/Stop buttons (see Figure 114)
3BSE041488R101 263
Connect to a Control Panel in Panel Mode Section 5 Binary Process Control
Controller
PanCmd1
Forward
PanCmd2
Reverse
PanCmd0
Stop
Figure 114. The Panel mode control diagram. A general solution for smaller
applications, where all four Panel parameters are connected from a control panel.
The PanMode parameter is connected via variables to interaction window.
The PanCmd1, PanCmd2 and PanCmd0 parameters are still connected to
the physical Start/Stop buttons. Changes in the Panel mode are therefore
approved centrally, that is, a local operator must first obtain permission
from the central control operator (see Figure 115).
264 3BSE041488R101
Section 5 Binary Process Control Connect to a Control Panel in Panel Mode
Controller
PanCmd1
PanCmd2
Control Panel
PanCmd0
Forward
Reverse
Stop
Figure 115. The Panel mode control diagram. A general solution for large
applications, where the PanMode parameter is connected to an operator workplace.
The status of the object is controlled by the signals PanCmd1, PanCmd2
and PanCmd0, which are level detected signals and function in the same
way as AutoCmd signals, as illustrated in Figure 95. The PanCmd1,
PanCmd2 and PanCmd0 parameters should be connected to push buttons.
It may be advisable to use an R_Trig function block (trigger parameter and
push button) between PanCmd1, PanCmd2 and PanCmd0, in case the
push button malfunctions.
3BSE041488R101 265
Advanced Functions Section 5 Binary Process Control
Advanced Functions
This sub section contains information about the more advanced functions of the
process objects. It also contains reference information for those who need to use all
functions offered by the Process Object libraries:
• Level Detection, Commands and Alarm Texts on page 266 contains
information on the use of parameters for all types in the Process Object
libraries.
• ABB Drives Control on page 269 explains how to configure process objects for
controlling ABB Drives.
• INSUM Control on page 289 describes how to configure process objects for
INSUM control.
For detailed information on the use of individual parameters, beyond the contents
of this manual, see online help and the Control Builder editor. To open the editor,
right-click the type and select Editor.
266 3BSE041488R101
Section 5 Binary Process Control Level Detection, Commands and Alarm Texts
If, for example, a level detector informs an object to start, a disturbance pulse
should not be able to start the object. The object shall not start until the detector
delivers a reliable, constant signal stating that the start level is reached. If the
object is a motor, this behavior is very important, in order not to wear it out.
• The DriveStatusReceive and DriveCommandSend function block types are
used for ABB Drives communication, see Examples on page 254.
• The PrioritySup function block type supervises the commands and sets the
mode to Priority mode if any of the inputs are active. It also supervises the
alarm status. Some are active and automatic priority to zero is performed, if
KeepOutAtErr is false.
It can be used, together with the OEText function blocks, to generate error
messages.
3BSE041488R101 267
Level Detection, Commands and Alarm Texts Section 5 Binary Process Control
The following situations are taken care of and the corresponding texts are built:
– 'Name' Unit error
– 'Name' Channel error
– 'Name' Too low value
– 'Name' Too high value
– 'Name' Underflow
– 'Name' Overflow
– 'Name' Out of service
– 'Name' OE External error;
– 'Name' OE 'PriorityCmd02Txt'
– 'Name' OE 'PriorityCmd03Txt'
– 'Name' OE 'MotorValueTxt'
– 'Name' OE Out1/Out0; FB1=1/0; FB0=1/0
The OEText functions block have open code and may be copied and changed
in a user-defined library.
268 3BSE041488R101
Section 5 Binary Process Control ABB Drives Control
3BSE041488R101 269
ABB Drives Control Section 5 Binary Process Control
270 3BSE041488R101
Section 5 Binary Process Control ABB Drives Control
• DCStdDrive(M)
Supports the control and supervision of ABB
DC Standard Drives.
It is based on UniCore for process logic
handling, and on DriveCommandSend and
DriveStatusReceive for handling ABB Drive
interface/communication. Blocks for alarm
handling are also included, for display of drive
trips, drive alarms and object errors, such as
communication and feedback errors from the
device.
The function of DCStdDrive(M) and
ACStdDrive(M) is very similar.
3BSE041488R101 271
ABB Drives Control Section 5 Binary Process Control
• EngDrive(M)
Supports the control and supervision of ABB
Engineered Drives.
EngDrive(M) is based on UniCore for process
logic handling, and on DriveCommandSend
and DriveStatusReceive for handling ABB
Drives interface/communication. Blocks for
alarm handling are also included, for display of
drive trips, drive alarms and object errors, such
as communication and feedback errors from the
device.
EngDrive(M) operation modes work the same
way as for DCStandardDrive(M).
Operation Modes
The Enable parameter is by default set to true,
meaning that the function block or control module is
executed. When Enable is False, the function block
or control module is disabled, including all internal
instances. All output signals are inactivated or set to
zero.
ABB Drives process objects are based on UniCore,
with the following operation modes.
• Manual Mode
In Manual mode, the operator controls the drive
from the operator station, or from interaction
windows in Control Builder.
Manual mode can be set via the interaction
parameter. In Manual mode, the drive can only
be started and stopped by setting the parameters InteractionPar.Manstart and
InteractionPar.ManStop.
The output parameter ManMode is true when the drive is in Manual mode. The
speed reference is set with InteractionPar.ManSpdRefInput.
272 3BSE041488R101
Section 5 Binary Process Control ABB Drives Control
The default startup mode after a cold start is set via ManModeInit. The initial
value is set to true, which means that manual mode will be the default mode.
By writing 'false' in the actual parameter column, you can change to auto mode
instead. The parameter ManModeInit is copied to parameter ManMode at every
cold start. Manual mode is always active when the Enable signal state goes
from False to True.
• Auto Mode
Auto mode is set by setting InteractionPar.SetAuto or SetAuto to True.
In Auto mode, the status of the drive (start or stop) is controlled via the
parameters AutoStart and AutoStop. The output parameter AutoMode is True
when an object is in Auto mode. The speed reference is set using the parameter
AutoSP1.
• Panel Mode
Panel mode is set by setting InteractionPar.SetPan or SetPan to True.
In Panel mode, the drive is controlled via the parameters PanStart and PanStop.
The speed reference is set using the parameter PanSP1. The output parameter
PanMode is active when the object is in this mode.
Sometimes a panel connection is not available in the system. The displays and
control logic for PanMode must not be activated. This is prevented by setting
the parameter InteractionPar.PanelExists to False.
• Priority Mode
The drive is in Priority mode whenever a priority Start or Stop interlock is
active. See Priority and Interlocking on page 278.
• Group Start Mode
Group Start mode is set by setting the parameter InteractionPar.SetGroupStart.
In Group Start mode, the object is controlled via the parameter GroupStartIn.
The interlocking parameter GroupStartIlock prevents transfer to Group Start
mode. In this mode, the output parameter GroupStartMode is active. The speed
reference in this mode is AutoSP1.
3BSE041488R101 273
ABB Drives Control Section 5 Binary Process Control
• Local Mode
In Local mode, the drive is controlled directly from CDP312 on the drive,
bypassing the controller. Local mode can only be set and reset at the Drive. In
Local mode, all inputs from Auto mode and Manual mode, as well as all
priority interlocks, are ignored. The object will return to the previous active
mode when Local mode is disabled. The output parameter Remote is false
when a drive is in Local mode.
• Out of Service Mode
Out of Service mode is set by setting the parameter InteractionPar.SetOos.
In Out Of Service Mode, the drive is stopped, and the operator controls the on
the machine to which the drive belongs.
To exit Out of Service mode, change the mode to Manual, Auto, Group Start or
Panel. The output parameter OutOfService is active when the object is in this
mode.
Drive States
The current state of a drive is available in the Status Word received from the drive
(see DriveStatusReceive and DriveCommandSend on page 281). The drive can be in
any one of the following states, the active state is set to true in the object output:
• ReadyToSwitchOn: The drive is ready to be switched On.
• ReadyToRun: The drive is energized and ready to run
(EngDrive(M) only).
• Run: The drive is operating with a speed reference.
• Fault: The drive has tripped on an internal error.
• Alarm: The drive is reporting an internal warning, but it is not severe enough to
stop the operation of the drive.
• AboveLimit: The actual frequency/speed is equal to or above supervision limit
set by a parameter (for example, parameter 32.02 in ACS800).
274 3BSE041488R101
Section 5 Binary Process Control ABB Drives Control
3BSE041488R101 275
ABB Drives Control Section 5 Binary Process Control
276 3BSE041488R101
Section 5 Binary Process Control ABB Drives Control
3BSE041488R101 277
ABB Drives Control Section 5 Binary Process Control
278 3BSE041488R101
Section 5 Binary Process Control ABB Drives Control
• Start/Stop Interlocks
The IlockStop and IlockStart are Start/Stop interlocks that prevent the drive
from being manually forced to certain states. IlockStop blocks the drive from
being stopped in ManMode and IlockStart blocks a manual start signal.
IlockStart does not stop a drive that is already running. The Inhibit parameter
overrides these Interlocks also.
• Inhibit
The Inhibit parameter overrides all active interlocks when set to True.
3BSE041488R101 279
ABB Drives Control Section 5 Binary Process Control
Both a feedback error from the drive and drive having tripped will force the object
to go to state Stop (Run is false). EngDrive(M) will switch off, that is,
ReadyToSwitchOn is False. That means that whenever the drive returns to normal
mode, a start command will never be active until the command has been reactivated.
The following parameters are associated with alarm handling:
• AEConfigX (where X is any of the alarms above), sets the behavior when there
is an active alarm.
• AESeverityX (where X is any of the alarms above), sets the severity of the
alarm.
• ALStateX (where X is any of the alarms above), displays the state of the alarm.
• AEClass, the class which all alarms belong to.
• Warnings, active output when there is a Warning alarm active.
• Trips, active output when there is a Trip alarm active.
• ObjErr, active output when there is an ObjectError alarm active.
For more information on alarm and event parameters and alarm and event
handling, see alarm and event information in the manual Basic Control Software,
Introduction and Configuration, and online help for the object in question.
280 3BSE041488R101
Section 5 Binary Process Control ABB Drives Control
DriveStatusReceive are used to retrieve the status from a drive, after which the
program or operator makes a decision based on this information. A command can
then be issued to the drive using DriveCommandSend.
ABB Drives process object types can also be used to build custom ABB Drives
control solutions. In this case, you should consider the following:
3BSE041488R101 281
ABB Drives Control Section 5 Binary Process Control
• Execution Order
The execution order is always DriveStatusReceive, UniCore,
DriveCommandSend. In this way, communication delays are avoided. The start
parameter (Start) is a level signal with a hold function.
• Status and Control Word
The Command, RawSP1, RawSP2, Status, RawPV1 and RawPV2 parameters
are to be connected to the drive, independent of the media through which data
is transferred. The drive communicates with the controller though drive data
sets and the parameters are to be connected to the drive according toTable 35 .
The drive data set number may differ between different types of ABB Drives, see
ABB Drives documentation for the drive in question.
• Emergency Stop
There are two command parameters that can cause an emergency stop, Off2
and Off3. If the application demands an emergency stop through one of these
parameters, the drive stops according to local emergency settings on the drive.
The priority for emergency stops is controlled by the drive. The priority of
emergency stop is higher than that of the stop and start commands.
The Off2 and Off3 parameters do not have any effect on the drive, if it is not in
its remote state (locally controlled drive).
282 3BSE041488R101
Section 5 Binary Process Control ABB Drives Control
3BSE041488R101 283
ABB Drives Control Section 5 Binary Process Control
284 3BSE041488R101
Section 5 Binary Process Control ABB Drives Control
Figure 116 and Figure 117 shows communication between an AC 800M Controller
and an ABB Standard Drive.
Figure 116. Overview of the connections between an ABB Standard Drive and an
AC 800M Controller, part A-B
3BSE041488R101 285
ABB Drives Control Section 5 Binary Process Control
Figure 117. Overview of the connections between ABB Drive and AC 800M
Controller, part C-A (black arrow = fixed connection)
286 3BSE041488R101
Section 5 Binary Process Control ABB Drives Control
To configure communication:
a. Establish the communication channels (part A in Figure 116 and
Figure 117).
The communication protocols between AC800M and ABB Drives may be:
- ModuleBus,
- PROFIBUS DP-V0,
- PROFIBUS DP-V1,
- DriveBus.
The setting must be done either in AC 800M, or in the ABB Drive, so that
they use the same protocol and define the same communication channels.
For AC 800M, the setting is defined in the Hardware Editor of the applied
communication interface. Refer to online help and the manual
Communication, Protocols and Design for further information. The
Hardware Editor for different protocols might use different names for the
same communication channel. For ABB Drive configuration, refer to ABB
Drives documentation.
b. Define the data to be sent and received in AC 800M Controller (part B in
Figure 116).
In AC 800M, this is done by making variable connections between the
ACStdDrive function block and the Hardware Editor of the applied
communication interface, using variable connections. The most important
thing is that the required process data on the Drive side must be connected
on the same communication channel used by the corresponding data in
ACStdDrive function block. For example, in Figure 116, Actual Speed in
ACStdDrive function block must be connected to DS4 ch 2, so that the
parameter can get the correct information.
3BSE041488R101 287
ABB Drives Control Section 5 Binary Process Control
c. Define the data to be sent and received in the ABB Standard Drive (part C
in Figure 117).
For example, define the connection between parameter index 01.02
(ActSpeed) with parameter index 92.05 (DS4 word 2) in ABB Standard
Drive. How to connect those parameter indexes in the Drive is described in
ABB Drives documentation. A black arrow in Figure 116 indicates a fixed
connection that is not configurable.
The same method is also used to establish communication with EngDrive(M).
The differences are only the number of communication channels and the data
to be sent and received.
288 3BSE041488R101
Section 5 Binary Process Control INSUM Control
INSUM Control
This section describes control INSUM devices using the process objects
InsumBreaker(M), MCUBasic(M), and MCUExtended(M):
• INSUM Process Object Types on page 290 contains a short description of each
of the INSUM process objects in the INSUM Process Object library.
• Additional information on the behavior, configuration and operation of the
INSUM process objects can be found under Operation Modes on page 293,
Circuit Breaker and MCU States on page 295, MCU Types on page 296, Motor
Starter Types on page 296, Priority and Interlocking on page 297, Priority and
Interlocking on page 297, Alarm and Event Handling on page 298, Supervision
on page 300, and Control Builder Interaction Windows on page 301.
3BSE041488R101 289
INSUM Control Section 5 Binary Process Control
290 3BSE041488R101
Section 5 Binary Process Control INSUM Control
• MCUBasic(M)
Used for control and supervise an
INSUM MCU. It supports the control of
two starter types, NR-DOL and REV-
DOL and two MCU types, MCU1 and
MCU2.
MCUBasic(M) is based on BiCore for
process logic and INSUMRead, and on
INSUMWrite blocks for the
communication with the device. Blocks
for alarm handling are also included, for
the display of trips, warnings and other
errors, that is, communication errors and
feedback errors from the device.
3BSE041488R101 291
INSUM Control Section 5 Binary Process Control
• MCUExtended(M)
Used to control and supervise an INSUM
MCU. It supports the control of four
starter types, NR-DOL, REV-DOL, NR-
SD and NR-2N.
McuExtended(M) is developed for the
control of an MCU2 and has options of
reading/writing to general purpose I/Os.
It is based on BiCore for process logic,
and includes INSUMRead and
INSUMWrite blocks for communication
with the device.
Blocks for alarm handling are also
included, for the display of trips,
warnings and other errors, such as
communication errors and feedback
errors from the device.
292 3BSE041488R101
Section 5 Binary Process Control INSUM Control
Operation Modes
The Enable parameter is by default set to True, meaning that the object is executed.
When Enable is False, the object is disabled, including all internal types. All output
parameters are inactivated or set to 0.
All three INSUM process objects have the same modes (with the exception of Soft
Local mode, which is not valid for circuit breakers). There are only minor
differences, which are pointed out below.
• Manual Mode
The input parameter ManModeInit sets the default startup mode after a cold
start. If this parameter is True, control will be manual (Manual mode),
otherwise it will be automatic (Auto mode). When an object returns from being
disabled, it is always in Manual mode.
Manual mode is activated via InterationPar.SetMan. In Manual mode, the
parameter ManMode is True.
Open and Close commands to circuit breakers in manual mode are sent via the
InteractionPar variables InteractionPar.ManOpen and
InteractionPar.ManClose.
Manual control of MCUs is possible via the parameters
InteractionPar.ManStartRun1, InteractionPar.ManStartRun2 and
InteractionPar.ManStop.
In Manual mode, the operator can switch to Auto, Soft Local (McuBasic(M)
and MCUExtended(M) only), Out of Service, and Group Start mode. The
operator is also able to reset trips from a circuit breaker or MCU
(InteractionPar.Reset) and activate TOL bypass for MCUs (set
InteractionPar.TOLBypassActive to True).
• Auto Mode
Auto mode is activated via the parameter SetAuto or the interaction parameter
InteractionPar.SetAuto. In Auto mode, the status of a circuit breaker (open or
closed) is controlled by the parameters AutoOpen and AutoClose, while the
status of an MCU is controlled by the parameters AutoStartRun1,
AutoStartRun2, and AutoStartStop.
3BSE041488R101 293
INSUM Control Section 5 Binary Process Control
In Auto mode, active trips can be reset and it is possible to override the
parameters in InteractionPar. The output parameter AutoMode is True as long
as the object is in Auto mode.
• Priority Mode
Priority mode is active when any of the process interlock or priority interlock
parameters described in Priority and Interlocking on page 278 are True.
Priority mode can be overridden by the Inhibit parameter, by manual
commands, or by setting the circuit breaker or MCU in Local mode.
• Group Start Mode
Group Start mode is activated via the InteractionPar.SetGroupStart parameter.
In Group Start mode, the object is controlled by the parameter GroupStartIn
(circuit breakers), or by the parameters GroupStartIn1 and GroupStartIn2
(MCUs). The parameter GroupStartIlock prevents changes to Group Start
mode. In Group Start mode, the output parameter GroupStartMode is True.
For more information about the Group Start library, see Section 6,
Synchronized Control.
• Local Mode
Local mode means that the circuit breaker or MCU is not controlled from the
process object, but via direct input, bypassing the controller. Local mode can
only be set or reset directly at the circuit breaker or MCU. In this mode, all
input from Auto mode and Manual mode is ignored.
When local mode is disabled, the object will return to its previous mode. The
output parameter LocMode is True when in Local mode.
Priority mode and priority manual commands cannot be executed in this mode.
• External Mode
If you activate External mode it will provide other objects like the MMI all
rights reserved of sending commands to a MCU. Thus, preventing a user (via
faceplates) to interfere with an action given from the MMI. Although, an Insum
object in External mode cannot send commands to a MCU, it can still read the
MCU status.
External mode is activated via the InteractionPar.SetExternal and is indicated
in the parameter External mode.
294 3BSE041488R101
Section 5 Binary Process Control INSUM Control
3BSE041488R101 295
INSUM Control Section 5 Binary Process Control
MCU Types
As McuBasic(M) supports the use of both MCU1 and MCU2, the configuration in
the object must indicate which one is being used (via InteractionPar.MCU) as some
functionality provided by McuBasic only is available for MCU2 types. This is not
necessary for McuExtended(M), since this type is intended for use with MCU2
only.
McuBasic(M) supports the object is made via InteractionPar.StarterType (0 = NR-
DOL, 1=REV-DOL). As NR-DOL is a starter type that only activates two states
(Runs1 and Stopped), all commands and input parameters associated with output
parameter Runs2 do not have any function for this starter type, that is, if the
InteractionPar.StarterType is set to 0, activating AutoStartRun2 will not affect the
object in any way.
296 3BSE041488R101
Section 5 Binary Process Control INSUM Control
Instead, an active output Runs1 indicates that the MCU is in its running state
and the speed is indicated via the outputs Star and Delta, where Star is the low-
speed and Delta the high-speed indication.
3BSE041488R101 297
INSUM Control Section 5 Binary Process Control
298 3BSE041488R101
Section 5 Binary Process Control INSUM Control
• Object Errors
Object errors can be any of the following, or a combination:
– Communication read error in an INSUMRead function block.
– Communication write error in an INSUMWrite function block.
– Feedback error from the circuit breaker or MCU.
– Any of PriorityOpen2 or PriorityOpen3 is True.
– PriorityCloseMan or PriorityStopMan generates an alarm
More information about which ObjectError has occurred is displayed in the
description field in the alarm list. As with other alarms, ObjectError can be
acknowledged from the alarm list or from the object (via ObjErrAck).
Both a feedback error from the device and the circuit breaker having tripped will
force the breaker/MCU to go to state Open/Stopped and the object will go to
Priority mode. That means that whenever the circuit breaker or MCU returns to
normal mode, a start command will not become active until the command has been
re-activated.
Whether alarms should be time-stamped in the circuit breaker or MCU, or not, is
controlled by the parameter ExtErrTimeStamp. If ExtErrTimeStamp is True, the
inputs CIPos and GWPos must be set in order to get the alarms from the correct
circuit breaker or MCU. Setting this parameter disables the Warning alarm, since
both warnings and trips will be included in the alarm Trip, as described above.
It is possible to acknowledge alarms from Control Builder interaction windows. To
open an interaction window, click on the relevant alarm triangle icon in the
interaction window.
The following parameters are associated with alarm handling:
• AEConfigX (where X is any of the alarms above), sets the behavior when there
is an active alarm,
• AESeverityX (where X is any of the alarms above), sets the severity of the
alarm,
• ALStateX (where X is any of the alarms above), displays the state of the alarm,
• AEClass, sets the class to which an alarm belongs,
• Warnings, active output when there is a Warning alarm active,
• Trips, active output when there is a Trip alarm active,
3BSE041488R101 299
INSUM Control Section 5 Binary Process Control
Supervision
The following NVs are read to the object from InsumBreaker(M):
• NV NodeStatus,
• NV CurrentReport,
• NV AlarmReport.
NodeStatus and AlarmReport are read every execution cycle, while CurrentReport
is read with a cyclic interval that is set by the parameter
InteractionPar.ProcessDataScanTime.
The following MCU NVs are read to the object from McuBasic(M):
• NV CurrentReport
• NV CalcProcValue
• NV TimeToReset
• NV TimeToTrip
• NV CumRunT
• NV OpCount1
• NV OpCount2
• NV OpCount3
• NV AlarmReport
• NV MotorStateExt
• NV ActualCA1
MotorStateExt, AlarmReport and ActualCA1 are read every execution cycle, while
the others are updated with a cyclic time interval set by the parameter
InteractionPar.ProcessDataScanTime.
300 3BSE041488R101
Section 5 Binary Process Control INSUM Control
3BSE041488R101 301
INSUM Control Section 5 Binary Process Control
302 3BSE041488R101
Section 6 Synchronized Control
Introduction
Group Start library can be used to build procedures for starting and stopping
processes. The library is intended to be used together with objects from the Process
Object Basic and Process Object Extended libraries.
The Group Start library is based on a control module philosophy. The stop sequence
is always the reverse of the start sequence. This makes the Group Start library
suitable for creating start and stop procedures for machines. Group Start support
several initial head control modules.
3BSE041488R101 303
Group Start Objects Section 6 Synchronized Control
The connected objects may be standard process objects from the ProcessObj
libraries, but may also be of some other kind like complete control loops that can
have an on/off situation associated. In a control loop the on/off switch may consist
of for example a set point change from one value to another.
304 3BSE041488R101
Section 7 Surveillance
Introduction
This section presents a short description about the signal and vote loop concept in
the SignalLib.
Overview
The SignalLib library consists of control modules for signal input, voting and output
signals and the ProcessObjLib libraries consist of control modules for process
control. The ControlLib libraries consist of control modules for control loops and
calculation.
A typical usage for vote control modules are applications that are divided into signal
loops, where voting with signal status diagnostics and communication to external
applications is an essential and integrated part of the application. Each loop contains
input signal control modules, vote control modules and output control modules. The
output signals in the vote control modules are latched and can be reset from the
process output signal control module or from any connected vote control module in
the loop. The latched command signals are sent via MMS to a separate (non-SIL)
application in addition to a local alarm/event.
3BSE041488R101 305
Overview Section 7 Surveillance
Figure 118 shows the principal voting data flow for a SIF (Safety Instrumented
Functions) loop and Figure 120 shows some combination possibilities between SIF
loop logic and common programmer calculation code, using the input signals from
signal objects real as well as boolean types. The vote control modules have a
possibility to combine the action together with a command number inside the
structured component VotedConnection. Then, the receiving object as e.g. a process
object like a motor or a valve may decode this command into different actions inside
the process object like PriorityCmd0 or/and perhaps ILock1. PriorityCmd0 or/and
ILock1 are defined by an input parameter (xxxConfig) for each possible action
where xxx is representing the specific action, for example PriorityCmd0Config. This
gives the possibility for different Vote control modules to take different (or equal)
actions in the process object.
The selections in xxxConfig are displayed in the faceplate of the process object and
the signal output control modules.
The voted commands are numbered from 1 to 32 to define a corresponding bit in the
xxxConfig word.
306 3BSE041488R101
Section 7 Surveillance Overview
Process Object
defines actions
3BSE041488R101 307
Overview Section 7 Surveillance
308 3BSE041488R101
Section 7 Surveillance Example
Example
3BSE041488R101 309
Example Section 7 Surveillance
Solution
Start to define the behavior of the different process objects or connected outputs at
shutdown and standby, according to following:
Behavior Action
Shutdown The upper process object shall run (use PriorityCmd)
The middle process object shall prevent the automation
program to transfer the object into the stopped position
(use ILock0)
The lower process object shall stop and when the vote
condition has been released be placed in manual mode
(use PriorityManCmd0)
Standby The upper process object shall run (Use PriorityCmd1)
The middle process object shall not be affected.
The lower process object shall prevent the automation
program to transfer the object into the started position
(Use ILock1)
Object Setting
Upper vote OutCommandNumber: 1
Lower vote OutCommandNumber: 2
Upper process PriorityCmd0Config: 2#1
object PriorityCmd0Config: 2#10
Middle process ILock0Config: 2#1
object
Lower process PriorityManCmd0Config: 2#1
object ILock1Config: 2#10
310 3BSE041488R101
Section 7 Surveillance Standard Object Types that Support Voting Logic
Sending Objects
Sending objects send the detected information into a node of VoteConnection. The
table below displays sending objects and also describes the possible detected
situations related to the InxLevelConfig parameter of the voting objects. Values of
InxLevelConfig outside the described range or on objects where the value is marked
with a “x” gives ParError in ParError detecting objects.
InxLevelConfig = -3 = -2 = -1 =0 =1 =2 =3
in Voting object
Real
Object Value
Out(1)
SignalInBoolM x x x x DiffNormal x x x
SignalBoolCalcInM x x x x DiffNormal x x x
SignalInRealM Yes LLL LL L x H HH HHH
SignalSimpleInRealM Yes x x L x H x x
SignalRealCalcInM Yes LLL LL L x H HH HHH
PidCC Yes x x DevNeg x DevPos x x
PidAdvancedCC Yes x x DevNeg x DevPos Oscillation Sluggish
detected control
detected
3BSE041488R101 311
Standard Object Types that Support Voting Logic Section 7 Surveillance
InxLevelConfig = -3 = -2 = -1 =0 =1 =2 =3
in Voting object
Real
Object Value
Out(1)
Level2CC Yes x x L x H x x
Level4CC Yes x LL L x H HH x
Level6CC Yes LLL LL L x H HH HHH
BiM x x x Object Off On Pos On Pos 2 x
error 1
UniM x x x Object Off On x x
error
ValveUniM x x x Object Closed Opened x x
error
MotorBiM x x x Object Stopped Runs Runs x
error Pos1 Pos2
MotorUniM x x x Object Stopped Runs x x
error
InsumBreakerM x Trip Warn Object Opened Closed x x
ing error
McuBasicM x Trip Warn Object Stopped Runs Runs x
ing error Pos1 Pos2
McuExtendedM x Trip Warn Object Stopped Runs Runs x
ing error Pos1 Pos2
ACStdDriveM x Trip Warn Object Stopped Runs Stopped Runs
ing error
312 3BSE041488R101
Section 7 Surveillance Standard Object Types that Support Voting Logic
InxLevelConfig = -3 = -2 = -1 =0 =1 =2 =3
in Voting object
Real
Object Value
Out(1)
DCStdDriveM x Trip Warn Object Stopped Runs Current Current
ing error Off On
EngDriveM x Trip Warn Object Stopped Runs Current Current
ing error Off On
(1) Sends a real value to be used in the statistic calculation of the vote object (highest, lowest, median and average value).
Receiving Objects
The sending objects receive the voted information and reacts on it, dependent of the
nature and possibilities of the individual object. The table below displays the
sending objects and also describes the possible different behavior.
3BSE041488R101 313
Standard Object Types that Support Voting Logic Section 7 Surveillance
314 3BSE041488R101
Section 7 Surveillance Vote Control Module Types
3BSE041488R101 315
Vote Structure Control Module Types Section 7 Surveillance
316 3BSE041488R101
Appendix A Customized Online Help
In this section you will find requirements on customized help for self-defined
libraries, applications and components of externally added applications, as well as
for non-standard hardware. Customized help can be produced using any online help
authoring tool.
How to add customized help for user-defined libraries with hardware and non-
standard hardware types, differ from how to add customized help for user-defined
libraries (with data types, function block types and control module types) and
applications.
3BSE041488R101 317
Online Help Files for User-defined Libraries with Hardware and Non-standard hardware Appendix A
4. Context-sensitive help (F1 help) must always use A keywords that are based on
the Project Explorer object name.The name of the library or application in
Project Explorer is used by Control Builder, when calling the online help file.
See External Help Files via F1 on page 320.,
Only Microsoft HTML Help files (*.chm) of version 1.3 are supported.
318 3BSE041488R101
Appendix A Customized Online Help Access Customized Online Help from Control Builder
Help Menu
The Show Help About dialog provides access to help files that have been added by
the user (if such files exist in the UserHelp folder). Use this dialog box to access
external, inserted help files. The dialog box is opened from the Project Explorer:
Help > Show Help About..., as illustrated in Figure 121.
All externally added *.chm files residing in the predefined help file folder,
...Help\UserHelp, are listed in the Show Help About dialog box. See Figure 122.
3BSE041488R101 319
Access Customized Online Help from Control Builder Appendix A Customized Online Help
To open a file from the dialog box, select (or double-click) a file from the list, or
type the name in the File name field, and click Open.
Help files displayed in the Show Help About dialog box are not a part of Control
Builder online help. This means that if a project is transferred to a new computer,
you manually will have to copy these help files from the UserHelp folder on the old
computer to the UserHelp folder on the new computer. This also means that these
help files are not included when a system backup is performed.
320 3BSE041488R101
Appendix A Customized Online Help Context-Sensitive Linking
Table 39. Control Builder files and corresponding help files (examples)
Context-Sensitive Linking
Context-sensitive linking between the help project topics and user-defined libraries
(with data types, function block types and control module types), and components
of externally added applications, in Project Explorer is done by A keyword linking.
Project Explorer objects should have their exact names specified as an A keyword in
the corresponding topic. An A keyword is a non-language-dependent text string,
sent from Control Builder (at an F1 call) to the online help system.
You must add the name of the object as an A keyword to the help topic describing
the object. Control Builder uses the name of the currently selected item and tries to
find a corresponding A keyword in the help system. If a call fails, the Control
Builder keyword is displayed under the Index Tab in the HTML Help Viewer.
3BSE041488R101 321
Context-Sensitive Linking Appendix A Customized Online Help
322 3BSE041488R101
Appendix B Library Objects Overview
This section gives an overview of all library objects, such as data types, functions,
function block types, and control module types that can be used in applications
created using the Control Builder engineering tool. Refer to the appropriate manuals
and Control Builder online help for detailed descriptions of the libraries.
Almost all library types are protected. This means that the types cannot be copied to
your own library and then modified. To determine if a library object is protected,
select the object in the Project Explorer and then try to copy it. If the object is
dimmed, it is protected.
In the following tables, the columns named “TC” (time-critical) and “SIL” (Safety
Integrity Level), shall be interpreted as follows:
“Y” (Yes) in column “TC” means that the function block / control module type can
be used in time-critical tasks. If not, there is an “N” (No) in the column.
“1-2” in column “SIL” means that the function block / control module type is SIL 1-
2 classified and can be used in SIL 1-2 applications. Otherwise, there is an “N” (No)
in the column.
Note that time-critical tasks are not allowed in SIL classified applications.
3BSE041488R101 323
System Appendix B Library Objects Overview
System
The System contains IEC 61131-3 data types and functions, as well as data types
and functions with extended functionality designed by ABB.
324 3BSE041488R101
Appendix B Library Objects Overview System
3BSE041488R101 325
System Appendix B Library Objects Overview
326 3BSE041488R101
Appendix B Library Objects Overview System
3BSE041488R101 327
System Appendix B Library Objects Overview
328 3BSE041488R101
Appendix B Library Objects Overview System
3BSE041488R101 329
System Appendix B Library Objects Overview
Other Functions
330 3BSE041488R101
Appendix B Library Objects Overview System
3BSE041488R101 331
System Appendix B Library Objects Overview
332 3BSE041488R101
Appendix B Library Objects Overview System
3BSE041488R101 333
System Appendix B Library Objects Overview
334 3BSE041488R101
Appendix B Library Objects Overview System
3BSE041488R101 335
Basic Library Appendix B Library Objects Overview
Basic Library
The BasicLib is the basic library for the Control Builder M software. It contains data
types, function block types and control module types with extended functionality
designed by ABB.
336 3BSE041488R101
Appendix B Library Objects Overview Basic Library
3BSE041488R101 337
Basic Library Appendix B Library Objects Overview
338 3BSE041488R101
Appendix B Library Objects Overview Basic Library
3BSE041488R101 339
Basic Library Appendix B Library Objects Overview
340 3BSE041488R101
Appendix B Library Objects Overview Basic Library
3BSE041488R101 341
Basic Library Appendix B Library Objects Overview
342 3BSE041488R101
Appendix B Library Objects Overview Basic Library
3BSE041488R101 343
Basic Library Appendix B Library Objects Overview
344 3BSE041488R101
Appendix B Library Objects Overview Basic Library
3BSE041488R101 345
Basic Library Appendix B Library Objects Overview
346 3BSE041488R101
Appendix B Library Objects Overview Communication Libraries
Communication Libraries
The libraries MMSCommLib, ModemCommLib, COMLICommLib,
ModBusCommLib, MB300CommLib, S3964RCommlib, SattBusCommLib,
SerialCommLib, InsumComLib, FFHSECommLib and FFH1CommLib contain a
number function block types and control modules that provide external variable
communication with protocols such as MMS, FOUNDATION Fieldbus, SattBus,
COMLI, Siemens 3964R MasterBus 300 and INSUM devices. There are also
function blocks for modem connection.
MMSCommLib
The library MMSCommLib uses the MMS function block types and control
modules to establish communication with a system supporting the MMS protocol.
When transferring variables it is important to use data types with the same range on
the client as on the server. It is, however, possible to connect variables with different
ranges, such as a dint variable on the server and an Int variable on the client. This
will only work as long as the variable values are within the range of the Int variable.
3BSE041488R101 347
MMSCommLib Appendix B Library Objects Overview
348 3BSE041488R101
Appendix B Library Objects Overview MMSCommLib
3BSE041488R101 349
MMSCommLib Appendix B Library Objects Overview
350 3BSE041488R101
Appendix B Library Objects Overview ModemCommLib
ModemCommLib
The library ModemCommLib library contains function block types used to establish
communication with a modem.
3BSE041488R101 351
COMLICommLib Appendix B Library Objects Overview
COMLICommLib
The library COMLICommLib contains the function block types to establish
communication with a system supporting the COMLI protocol.
Function block types with the COMLI prefix support both the address-oriented
COMLI and SattBus protocols. When a SattBus channel is used, the COMLI
messages are packed within SattBus messages. The protocol to be used (COMLI or
SattBus) is defined by the Channel parameter of the COMLIConnect function block.
Communication via a TCP/IP network is also supported.
352 3BSE041488R101
Appendix B Library Objects Overview ModBusCommLib
ModBusCommLib
The library ModBusCommLib contains the function block types to establish
communication with a system supporting the MODBUS protocol.
MB300CommLib
The library MB300CommLib contains objects that can be used for set up
communication with MasterBus 300 (MB300). MB300 can be used with AC 400
and AC 800M. A CI855 communication unit for AC 800M provides connectivity to
AC 400 via MB300. Refer to the relevant manuals regarding the process interface
that can be used with legacy controller AC 400.
3BSE041488R101 353
S3964RCommLib Appendix B Library Objects Overview
S3964RCommLib
The library S3964RCommlib contains the function block types to establish
communication with a system supporting the Siemens 3964R protocol.
SattBusCommLib
The library SattBusCommlib contains the function block types supporting SattBus.
They are used to communicate through a SattBus channel using the SattBus name-
oriented model. To communicate through a SattBus channel using the address-
oriented model, COMLI function block types are used. Communication via a
TCP/IP network is also supported.
354 3BSE041488R101
Appendix B Library Objects Overview SattBusCommLib
3BSE041488R101 355
SerialCommLib Appendix B Library Objects Overview
SerialCommLib
The library SerialCommLib library contains function block types for
communication with external devices via serial channels with user-defined
protocols; for example, printers, terminals, scanner pens, etc.
356 3BSE041488R101
Appendix B Library Objects Overview INSUMCommLib
INSUMCommLib
The library InsumCommLib library contains function block types for
communication with INSUM devices. INSUM (Integrated System for User-
optimized Motor control) is a system for protection and control of motors and
switch gear. The communication interface CI857 provides communication for the
AC 800M controller with the INSUM system via TCP/IP.
The INSUM system consists of devices that are connected via a LonWorks network.
3BSE041488R101 357
FFH1CommLib Appendix B Library Objects Overview
FFH1CommLib
The library FFH1CommLib library contains function block types and control
module types for communication with FOUNDATION Fieldbus H1 devices. These
function blocks are used to access data belonging to function blocks in FF device(s)
on the (FF) H1 bus (including the custom function blocks on the FF communication
interface). All function block types, except those with the extension Cyc, follow the
IEC 61131-5 standard. Some control module types are also supplied for accessing
FF devices.
358 3BSE041488R101
Appendix B Library Objects Overview FFH1CommLib
3BSE041488R101 359
Alarm and Event Library Appendix B Library Objects Overview
360 3BSE041488R101
Appendix B Library Objects Overview Alarm and Event Library
3BSE041488R101 361
Alarm and Event Library Appendix B Library Objects Overview
362 3BSE041488R101
Appendix B Library Objects Overview Control Libraries
Control Libraries
The libraries ControlBasicLib, ControlSimpleLib, ControlStandardLib,
ControlObjectLib, ControlExtendedLib, ControlAdvancedLib and ControlFuzzyLib
contain predefined function block types and control module types. The library
ControlSupportLib contains invisible objects and is used by the objects in other
Control libraries.
ControlBasicLib
The library ControlBasicLib contains predefined function block types. These are
complete working modules that can be used as-is. Therefore, you should not use
these modules to create new ones. The PID functions have feedforward, Tracking,
3-position output and Autotuner control functions. Function blocks have been used
to construct this library.
3BSE041488R101 363
ControlBasicLib Appendix B Library Objects Overview
364 3BSE041488R101
Appendix B Library Objects Overview ControlBasicLib
3BSE041488R101 365
ControlSimpleLib Appendix B Library Objects Overview
ControlSimpleLib
The library ControlSimpleLib contains a number of function blocks that are
intended to be used for designing simple control loops. All function blocks in this
library can be used in time-critical tasks.
366 3BSE041488R101
Appendix B Library Objects Overview ControlSimpleLib
3BSE041488R101 367
ControlSimpleLib Appendix B Library Objects Overview
368 3BSE041488R101
Appendix B Library Objects Overview ControlStandardLib
ControlStandardLib
The library ControlStandardLib contains control module types that can be used
when designing your own standard control loops. They are used for continuous
control; for example, PID loops. They can be used for stand-alone or cascade
control in master/slave configurations. The PID functions have Feedforward,
Tracking, Backtracking, Three-position output, Hand/Auto and Autotuner control
functions. Control modules have been used to create this library, and they have
associated engineering and operator graphics.
The control modules can be connected to other control modules in
ControlExtendedLib, ControlAdvancedLib, or ControlFuzzyLib, in order to
construct more advanced control loops. The control modules are connected using
graphical connections. Information is sent forwards as well as backwards in the
control loop. The automatic code sorting is used to obtain good performance related
to bumpless transfer and integrator wind-up in the entire control loop.
3BSE041488R101 369
ControlStandardLib Appendix B Library Objects Overview
370 3BSE041488R101
Appendix B Library Objects Overview ControlStandardLib
3BSE041488R101 371
ControlStandardLib Appendix B Library Objects Overview
372 3BSE041488R101
Appendix B Library Objects Overview ControlStandardLib
3BSE041488R101 373
ControlStandardLib Appendix B Library Objects Overview
374 3BSE041488R101
Appendix B Library Objects Overview ControlStandardLib
3BSE041488R101 375
ControlStandardLib Appendix B Library Objects Overview
376 3BSE041488R101
Appendix B Library Objects Overview ControlStandardLib
3BSE041488R101 377
ControlStandardLib Appendix B Library Objects Overview
378 3BSE041488R101
Appendix B Library Objects Overview ControlObjectLib
ControlObjectLib
The Control Object Library (ControlObjectLib) provides function blocks and
control modules to define the following three control modules Mimo22CC,
Mimo41CC and Mimo44CC (MimoXYCC).
All the control modules inside the ControlObjectLib should work as templates. The
MimoXYCC handle multiple inputs and multiple outputs in both forward and
backward communication direction.
3BSE041488R101 379
ControlObjectLib Appendix B Library Objects Overview
380 3BSE041488R101
Appendix B Library Objects Overview ControlObjectLib
3BSE041488R101 381
ControlObjectLib Appendix B Library Objects Overview
382 3BSE041488R101
Appendix B Library Objects Overview ControlSolutionLib
ControlSolutionLib
All the control module types in Control Solution library (ControlSolutionLib)
provide a complete control solution, intended to be used directly in an application.
The user requires only to connect the control module to I/Os and in some cases set
some configuration parameters.
The control module types are ready-to-use solutions for frequently occurring control
processes found at customers. They consists of a control solution with basic control
module types, alarm handling, process graphics, preconfigured trend displays with
logging, group displays, and an overview display.
The users may use the solutions directly as they are, or create own types by making
copies and change these to fit an intended usage, which may be level control, flow
control, etc. These new types can then be preconfigured with specific default values
for controller tuning, alarm limits, data collection settings etc.
l
3BSE041488R101 383
ControlSolutionLib Appendix B Library Objects Overview
384 3BSE041488R101
Appendix B Library Objects Overview ControlExtendedLib
ControlExtendedLib
The library ControlExtendedLib contains control modules for arithmetic and signal
processing for continuous control; for example, PID loops. The control functions
are available as control modules, and they also have associated engineering and
operator graphics.
The control modules can be connected to other control modules in
ControlStandardLib, ControlAdvancedLib or ControlFuzzyLib in order to construct
more advanced control loops. The control modules are connected via graphical
connections. Information is sent forward as well as backward in the control loop.
The automatic code sorting is used to obtain good performance related to bumpless
transfer and integrator wind-up in the entire control loop.
Using the control modules in ControlExtendedLib together with those in
ControlStandardLib and ControlAdvancedLib, it is possible to construct control
loops with high functionality. Arithmetic operations can be performed on the
control signals. The control signals can also be processed in several ways; for
example, filtered or integrated.
3BSE041488R101 385
ControlExtendedLib Appendix B Library Objects Overview
386 3BSE041488R101
Appendix B Library Objects Overview ControlExtendedLib
3BSE041488R101 387
ControlAdvancedLib Appendix B Library Objects Overview
ControlAdvancedLib
The library ControlAdvancedLib contains control module types for advanced,
continuous control; for example, PID loops. The control functions are available as
control modules, and they also have associated engineering and operator graphics.
The control modules can be connected to other control modules in
ControlStandardLib, ControlExtendedLib or ControlFuzzyLib in order to construct
more advanced control loops. The control modules are connected via graphical
connections. Information is sent forward as well as backward in the control loop.
The automatic code sorting is used to obtain good performance related to bumpless
transfer and integrator wind-up in the entire control loop.
The advanced PID controller has all the functionality of the previously described
PID controllers. In addition, it can be configured for continuous adaptation of the
controller parameters. It can also be configured as a predictive PI; that is, as a PPI,
controller and it has a gain scheduler (also called a parameter scheduler).
388 3BSE041488R101
Appendix B Library Objects Overview ControlFuzzyLib
ControlFuzzyLib
The library ControlFuzzyLib contains control module types, which are building
blocks for fuzzy controllers. A fuzzy controller is constructed by connecting control
modules from ControlFuzzyLib. No programming is necessary. ControlFuzzyLib
also has three templates (not protected), which consist of three different fuzzy
controllers. The control module types can be copied to your own library and then
modified.
3BSE041488R101 389
ControlFuzzyLib Appendix B Library Objects Overview
390 3BSE041488R101
Appendix B Library Objects Overview ControlFuzzyLib
3BSE041488R101 391
ControlFuzzyLib Appendix B Library Objects Overview
392 3BSE041488R101
Appendix B Library Objects Overview ControlFuzzyLib
3BSE041488R101 393
Batch Library Appendix B Library Objects Overview
Batch Library
The library BatchLib contains control module types for batch control and for control
of other discontinuous processes. It can be used together with any batch system
which communicates via OPC Data Access and which supports the S88 state model
for procedural elements.
The control modules described here are used for the interaction between the control
application for an Equipment Procedure Element (for example, a phase or an
operation) and the Batch Manager.
394 3BSE041488R101
Appendix B Library Objects Overview Process Object Libraries
Figure 123. The function blocks and the control modules in this library are
unprotected; that is, they can be used and modified in your own library.
3BSE041488R101 395
ProcessObjBasicLib Appendix B Library Objects Overview
ProcessObjBasicLib
The library ProcessObjBasicLib contains basic core function block types for valve
and motor control functions. They are to be used when designing your own function
block types. The core function block types should be encapsulated in your own
function block type. These core function block types are protected and cannot be
changed.
396 3BSE041488R101
Appendix B Library Objects Overview ProcessObjBasicLib
3BSE041488R101 397
ProcessObjBasicLib Appendix B Library Objects Overview
398 3BSE041488R101
Appendix B Library Objects Overview ProcessObjBasicLib
3BSE041488R101 399
ProcessObjBasicLib Appendix B Library Objects Overview
400 3BSE041488R101
Appendix B Library Objects Overview ProcessObjExtendedLib
ProcessObjExtendedLib
The library ProcessObjExtLib contains types that are based on the protected core
functions available in the ProcessObjBasicLib. Unprotected code is then added to
the core.
3BSE041488R101 401
ProcessObjExtendedLib Appendix B Library Objects Overview
402 3BSE041488R101
Appendix B Library Objects Overview ProcessObjExtendedLib
3BSE041488R101 403
ProcessObjExtendedLib Appendix B Library Objects Overview
404 3BSE041488R101
Appendix B Library Objects Overview ProcessObjDriveLib
ProcessObjDriveLib
The library ProcessObjDriveLib contains function block types and control module
types which can be used to control and supervise ABB Standard and Engineered
Drives.
3BSE041488R101 405
ProcessObjDriveLib Appendix B Library Objects Overview
406 3BSE041488R101
Appendix B Library Objects Overview ProcessObjInsumLib
ProcessObjInsumLib
The library ProcessObjInsumLib library contains function block types and control
module types to control and supervise the standard INSUM (INtegrated System for
User optimized Motor management) devices MCU (Motor Control Unit) and trip
unit for Circuit Breakers. The INSUM devices are connected via an INSUM
Gateway and a CI857 Interface module to the AC800M.
3BSE041488R101 407
ProcessObjInsumLib Appendix B Library Objects Overview
408 3BSE041488R101
Appendix B Library Objects Overview ProcessObjInsumLib
3BSE041488R101 409
ProcessObjInsumLib Appendix B Library Objects Overview
410 3BSE041488R101
Appendix B Library Objects Overview Signal Library
Signal Library
The library SignalLib contains function block types for analog and digital inputs
and outputs. They extend the functionality of I/O signals and application variables
with alarm and event handling. The function blocks also provide filtering and error
handling. In the faceplates it is possible to force the objects, view trim curves,
configure and enable/disable alarms and events, and view/modify parameters.
3BSE041488R101 411
Signal Library Appendix B Library Objects Overview
412 3BSE041488R101
Appendix B Library Objects Overview Signal Library
3BSE041488R101 413
Signal Library Appendix B Library Objects Overview
414 3BSE041488R101
Appendix B Library Objects Overview Signal Library
3BSE041488R101 415
Signal Library Appendix B Library Objects Overview
416 3BSE041488R101
Appendix B Library Objects Overview Signal Library
3BSE041488R101 417
Group Start Library Appendix B Library Objects Overview
418 3BSE041488R101
Appendix B Library Objects Overview Group Start Library
3BSE041488R101 419
Group Start Library Appendix B Library Objects Overview
420 3BSE041488R101
INDEX
A Auto mode 92
ABB Drives Core 224
DriveCore 283 InsumBreaker 293
AccelerationLimCC 188 Autotuner
AccelerationLimReal 186 process oscillation time 140
access autotuning 133
help from Control Builder 318
adaptation 140 B
adaptive control 140 backtracking 69, 72
adaptive controller calculation 69
feedback 142 information 70
feedforward 143 mode 69
AddCC 166 Backtracking mode 92
afw file Basic library 44, 190
import 201 BasicLib 336
Alarm and Event library 42 Batch library 44
AlarmEventLib 360 BatchLib 394
alarms BcToDint 189
relative 85, 102 beta factor 81
algorithms 78 bias 77
P controller 78 offset 77
PD controller 78 BiCore 220
PI controller 78 bi-stable function blocks (standard), see function
PID controller 78 blocks
PPI controller 78 bit shift functions (standard), see functions
amplification factor 77 bit-wise Boolean functions (standard), see functions
AnalogInCC 157 branch control modules 373
AnalogOutCC 159 Branch4CC 176
anti-integrator wind-up 126 BranchCC 176
arithmetic control modules, see control modules build
arithmetic functions (extensible), see functions complex solutions 27
arithmetic functions (non-extensible), see functions bumpless transfer 72, 127
array and queue functions 333
array and queue functions, see functions
arrays 333
3BSE041488R101 421
Index
C control loops
calculation design 93
control module types 166 graphical connection 69
function block types 166 control module types
calculations AccelerationLimCC 188
backtracking 69 AddCC 166
cascade controller 104 AnalogInCC 157
tuning 207 AnalogOutCC 159
cascade loop Branch4CC 176
example 192 BranchCC 176
CCToInteger 188 calculation 166
CCToReal 188 CCToInteger 188
character string functions (standard), see functions CCToReal 188
code blocks CommonRangeCC 177
sorting 67 DelayCC 175
code sorting 67 Filter2PCC 175
COMLI 352 FilterCC 174
COMLICommLib 352 FlowCC 170
commands LeadLagRealCC 175
libraries 34 LimiterCC 187
CommonRangeCC 177 LimiterHighCC 187
Communication libraries 45 LimiterLowCC 187
communication libraries ManualAutoCC 161, 189
library 347, 351 to 354, 356 to 358 Max4CC 183
comparison functions (standard), see functions MaxCC 183
complex solutions 27 Mean12ExcludeBadCC 167
complex types Mean4ExcludeBadCC 167
execution 55 Mean8ExcludeBadCC 167
connections MidRangeCC 177
graphical 69 Min4CC 183
context-sensitive help 320 MinCC 183
context-sensitive linking 320 MultCC 166
Control Connection 371 PidCC 101
control deviation 77, 80, 85, 131, 136 PiecewiseLinear2DCC 172
Control libraries 44, 74 PiecewiseLinearCC 172
concept 62 PiecewiseLinearExtension 172
libraries 44 PulseWidthCC 160
control library 363, 366, 369, 385, 388 to 389 RealToCC 189
SelectGood4CC 181
SelectGoodCC 181
422 3BSE041488R101
Index
3BSE041488R101 423
Index
424 3BSE041488R101
Index
3BSE041488R101 425
Index
426 3BSE041488R101
Index
I K
ideal PID controller 80 keywords
IEC 61131-3 libraries 33
function block types 336 parameters 33
standard functions 324
Ilock L
Core 228 LeadLagReal 174
import LeadLagRealCC 175
examples 201 Level6CC 164
increment 148 LevelHigh 162
index LevelLow 162
online help 321 libraries 20
industrial controller types 104 advantages of using 25
inhibit Alarm and Event library 42
Core 229 AlarmEventLib 360
instances 20 Basic 190
InsumBreaker Basic library 44
Auto mode 293 BasicLib 336
Group Start mode 294 Batch library 44
Local mode 294 BatchLib 394
Manual mode 293 COMLICommLib 352
Out of Service mode 295 commands 34
Priority mode 294 Communication libraries 45
InsumCommLib 357 Control library 62
IntegerToRealIO 189 ControlAdvancedLib 388
integrator objects 169 ControlBasicLib 363
integrator wind-up 72, 126 ControlExtendedLib 385
prevent 67 ControlFuzzyLib 389
interaction windows ControlSimpleLib 366
McuExtended 301 ControlStandardLib 369
interlock FFH1CommLib 358
Core 230 Group Start library 44, 303
interlocking GroupStartLib 418
Core 221, 228 InsumCommLib 357
internal state 69, 129 management 30
inverse function 173 MB300CommLib 353
MMSCommLib 347
ModBusCommLib 353
ModemCommLib 351
parameter keywords 33
3BSE041488R101 427
Index
428 3BSE041488R101
Index
MultCC 166 P
multivariable process 104 P controller 77
mux 180 algorithm 78
Panel mode
N Core 225
NBcdToDint 190 parameter keywords
noise libraries 33
in signals 174 parameters
measurement 135 ControlConnection 68
non-linearities 104 Pstart 128
Reset 139
O tuning 145
objects 20 PD controller
offset 78 algorithm 78
bias 77 PI controller
online help algorithm 78
context-sensitive 320 PID control modules 370, 388
context-sensitive linking 320 PID controller
F1 320 algorithm 78
index 321 ideal 80
open PidCascadeLoop 101
online help files 318 PidCC 101
operation PidLoop 101
Core 221 piecewise linear 171
operation parameters PiecewiseLinear2DCC 172
Core 221 PiecewiseLinear2DReal 171
oscillation detector 150 PiecewiseLinearCC 172
Out of Service mode PiecewiseLinearExtension 172
Core 226 PiecewiseLinearReal 171
InsumBreaker 295 position feedback 148
output PPI controller 75, 138
change rate 129 algorithm 78
limit 71 predictive PI controller 75
range 71 prevent
three-position 148 integrator wind-up 67
output IOLevel priority commands
Core 230 Core 228
output settings Priority mode
Core 227 Core 225
InsumBreaker 294
3BSE041488R101 429
Index
430 3BSE041488R101
Index
3BSE041488R101 431
Index
tuning 145
cascade controllers 207
parameter sets 145
Tuning mode 92
type conversion functions, see functions
type solutions 25
types
in libraries 20
templates 51
U
UniCore 220
V
VelocityLimiterCC 187
VelocityLimiterReal 185
Vote1oo1Q 315
VoteBranch4 316
VotedAnd4 316
VotedBranch4 316
VotedOr4 316
VoteXoo2D 316
VoteXoo3Q 315
VoteXoo8 316
X
XRaisedToYCC 166
3BSE041488R101 432
3BSE041488R101. Printed in Sweden June 2006
Copyright © 2003-2006 by ABB. All Rights Reserved
® Registered Trademark of ABB.
™ Trademark of ABB
http://www.abb.com