A failure of this application – for whatever reason – may leave an operating process without appropriate
protection and could result in possible damage to property or injury to persons. To protect against this, you
should review the need for additional backup equipment or provide alternate means of protection (such as alarm
devices, output limiting, fail-safe valves, relief valves, emergency shutoffs, emergency switches, etc.).
CAUTION
When implementing control using this product, observe best industry practices as suggested by applicable and
appropriate environmental, health, and safety organizations. While this product can be used as a safety component in
a system, it
NOT intended or designed to be the ONLY safety mechanism in that system.
ControlWave Product Line 1
Manuals You Should Read Before You Read This One 1
What is Covered in this Manual? 1
What Related Documentation is Available? 2
ACCOL III Function Block Library ........................................................................................ 5
What are Alarms? 9
Where can I get detailed information about these function blocks? 11
Configuring an Analog Alarm 12
Using the ALARM_ANALOG function block 13
Configuring a Logical Alarm 17
Using the ALARM_LOGICAL_ON function block 17
Configuring a Change of State Alarm 19
Granting a License for a Controller to Run a Standard Application 23
Removing an Application License from a Controller: 24
Viewing a History of Dongle Issue / Remove Operations: 25
What Are Archive Files? 29
Archive configuration involves four basic steps: 30
What can be done with the data from the Archive File(s)? 31
Step 1. Define Archive Files(s) in the Flash Configuration Utility 31
Step 2. In Your ControlWave Designer Project, Identify the variables you want to archive in the
Archive List 36
Step 3. Create an Output List for Accessing the Most Recent Archive Record (OPTIONAL) 37
Step 4. Configure the ARCHIVE Function Block 38
Step 1. Set parameters in the Flash Configuration Utility 43
Step 2. In ControlWave Designer, identify Variables for which you want to maintain Audit Logging46
Step 3. Configure an AUDIT Function Block 47
BSAP Addressing and Networks ....................................................................................... 49
What is BSAP? 49
Adding A ControlWave to an OpenBSI BSAP Network in the RTU Wizard 51
Setting the BSAP Local Address and EBSAP Group 52
What is Client/Server Communication? 53
BSAP - Underlying Technical Details (For ADVANCED USERS) 53
BSAP Master Port ............................................................................................................ 55
Configuring A BSAP Master Port 56
BSAP Slave Port ............................................................................................................... 61
Configuring a BSAP Slave Port 61
Communication Ports ..................................................................................................... 67
Contents iii
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
How do I configure the Ports on the ControlWave? 81
What are the factory default settings for communication ports? 81
How can the port configuration be changed? 92
Dialing - An Overview 92
Serial Port Sharing between the BSAP Slave and Custom Slave Protocols: 92
Before you begin: 101
Calling up ControlWave Data in DataView 102
Debugging – An Overview ............................................................................................. 105
Starting Debug Mode 105
Using the Watch Window 105
Using the Cross-Reference Window 107
On-line Editing with Patch POU 108
Using the Force/Overwrite Options 109
Setting a Breakpoint 110
Exiting Debug Mode 112
Two Methods Available for Downloading 113
Downloading from within ControlWave Designer 114
Downloading Your ControlWave Project from Within ControlWave Designer 117
Downloading using the OpenBSI ControlWave Downloader 119
Starting the ControlWave Downloader 121
Using the ControlWave Downloader 122
Creating Download Scripts for Batch Downloading of ControlWave Controllers 123
Expanded BSAP – The Concept 128
General Requirements for Expanded BSAP (EBSAP): 129
Creating an EBSAP Master 130
OpenBSI Workstation is EBSAP Master 130
ControlWave-series Controller is the EBSAP Master 131
Configuring the Control and Status Arrays 132
Defining the Virtual Nodes 141
Defining the EBSAP Slave Nodes 142
Example 1 – OpenBSI Workstation is EBSAP Master to 1000 ControlWave controllers 143
Example 2 – ControlWave Controller is EBSAP Master to 300 ControlWave EBSAP Slaves 146
Flash Configuration Utility – An Overview ...................................................................... 149
Viewing a List of Files in the Flash File Area: 156
Uploading a File from the ControlWave to Your OpenBSI Workstation: 156
Copying a File from the OpenBSI Workstation to Your ControlWave: 157
Deleting a File from the ControlWave User Flash Files Area: 157
Refreshing the List of Files: 158
Function Blocks – Creating ............................................................................................ 159
Function Block Parameter Name Prefixes ....................................................................... 165
Historical Data .............................................................................................................. 167
iv Contents
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
What is Historical Data Used For? 167
What types of Historical Data can be saved in the ControlWave Controller? 167
How is Audit Trail and Archive Data Retrieved from the ControlWave Controller? 168
What is the I/O Simulator? 283
Starting the I/O Simulator 283
Analog Boards 287
Digital Boards 288
Counter Boards 288
Viewing the Board Configuration Status 289
Configuring a Pin 289
Viewing Simulated Alarms 290
Shutting Down the I/O Simulator 290
Troubleshooting Tip 290
IP Addressing and Networks .......................................................................................... 293
What is the Format of IP Addresses? 293
Adding a ControlWave to an IP Network with the RTU Wizard 298
Setting up IP Ports in the Flash Configuration Utility 299
Recommended Ranges for IP Addresses 299
IP Parameters ................................................................................................................ 301
IP Ports - Ethernet ......................................................................................................... 307
IP Ports – PPP ................................................................................................................ 309
IP Routes ....................................................................................................................... 311
Some Background - What is Memory? 319
What is Downloading? 319
Types of Memory in the ControlWave Process Automation Controller (CW PAC) 320
Contents v
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
What happens in the event of a power failure or the power switch is turned off? 323
What happens in the event of a watchdog condition? 323
What happens on restart after a power failure or watchdog? 324
Variations when using ControlWave MICRO/EFM 327
Variations when using ControlWave GFC/GFC-CL, XFC, Corrector, Express or ExpressPAC 328
Variations when using ControlWave_10/ _30/ _35 (CW_10, CW_30, CW_35) 329
Memory Allocation Issues 330
Determining POU Size at Compilation Time 330
Resolving “Not Enough Memory” Messages 330
Configuring Your ControlWave Controller as a Modbus Master Device 335
Configuring Your ControlWave Controller as a Modbus Slave or Enron Modbus Slave Device 339
Before You Begin 399
Starting the Variable Extension Wizard 399
Using the Variable Extension Wizard 400
Marking a Variable for Report by Exception (RBE) Collection 403
Configuring a Variable as an Alarm 404
Creating / Editing a List 406
Setting initial values for Manual or Alarm Inhibit/Enable Flags 408
Assigning Units Text (Analog Variables ONLY) 409
Assigning ON/OFF Text (BOOL Variables ONLY) 410
Creating Descriptive Text for the Variable 411
Saving the Initialization Files and Exiting the Wizard 412
Format of Initialization Files 412
Troubleshooting Tips 417
Variables and Data Types .............................................................................................. 419
Global Variables Vs. Local Variables 419
Variable Addressing 420
System Variables 421
Data Types 421
Notes about STRING variables ......................................................................................................... 422
Bringing an Older ControlWave Project into a Newer Version of ControlWave Designer 463
Warning - I/O Configurator and Multiple Copies of ControlWave Designer 464
Index .......................................................................................................................... 465
Contents vii
Introduction
ControlWave Product Line
Unless otherwise noted, the information in this manual applies to any controller in the
ControlWave product line, including:
ControlWave Process Automation Controller
ControlWave Low Power (LP) Controller
ControlWave Redundant Controller
ControlWave MICRO Controller
ControlWave Electronic Flow Meter (EFM)
ControlWave Gas Flow Computer (GFC)
ControlWave Gas Flow Computer Plus (GFC Plus)
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
ControlWave Explosion-Proof Gas Flow Computer (XFC)
ControlWave Express / Express Process Automation Controller
ControlWave Corrector
Manuals You Should Read Before You Read This One
Before you read this document, we strongly recommend you read, and try out, the
example presented in the Getting Started with ControlWave Designer Manual (part
number D301416X012). It is designed to explain various concepts to first-time
ControlWave users.
In addition, please review the quick setup guide for your particular controller (see next
page for the proper document) which contains notes about how to initially set up your
ControlWave Controller, and how to configure certain parameters for first-time use.
The ControlWave Designer Programmer’s Handbook (which you are reading right now)
builds on the information contained in these other documents, so it is essential that you
are familiar with the material included in them.
What is Covered in this Manual?
The ControlWave Designer Programmer’s Handbook is intended to provide you the
information you need to get the most out of your ControlWave Designer software. It
includes:
Introduction 1
ControlWave Designer Programmer’s Handbook
For information on this…
Please consult this…
ControlWave Designer
Getting Started with ControlWave Designer
IEC 61131 terminology and languages
Online help in ControlWave Designer,
Flash Configuration
Chapter 5 of the OpenBSI Utilities Manual
Web Pages
Web_BSI Manual (part number
Converting ACCOL II source files (*.ACC)
ACCOL Translator User’s Guide (part number
ControlWave Process Automation
ControlWave Quick Setup Guide (part number
ControlWave Low Power (LP) Controller
ControlWave LP Quick Setup Guide (part
ControlWave I/O Expansion Rack
ControlWave I/O Expansion Rack Quick Setup
ControlWave Redundant Controller
ControlWave Redundancy Setup Guide (part
ControlWave Gas Flow Computer (GFC)
ControlWave Gas Flow Computer (GFC)
D301426X012
January 2022
Examples of how to configure various sub-systems of ControlWave software, which
are commonly required in process control applications, such as: alarming, and
historical data collection.
Instructions for how to create your own function blocks, and how to create a library of
them, so they can be re-used in other projects.
Notes about how to use OpenBSI, and BSAP, or IP, to include your ControlWave in a
network.
Explanations about how ControlWave memory works, and how I/O points can be
configured.
Discussions of communication options, as well as how to download your ControlWave
ControlWave Electronic Flow Meter (EFM) ControlWave Electronic Flow Meter (EFM)
accessible through the question mark [?]
menu item.
(part number D301414X012) contains full
details on flash configuration.
D301418X012).
D301417X012)
D301415X012)
number D301422X012)
Guide (part number D301423X012)
number D301424X012).
number D301425X012)
Instruction Manual (part number
D301383X012)
2 Introduction
Instruction Manual (part number
(D301387X1012)
ControlWave Designer Programmer’s Handbook
For information on this…
Please consult this…
ControlWave Explosion-Proof Gas Flow
ControlWave Explosion-Proof Gas Flow
ControlWave Express
ControlWave Express RTU Instruction Manual
ControlWave Express PAC
ControlWave Express PAC Instruction Manual
ControlWave Corrector
ControlWave Corrector Instruction Manual
ControlWave Gas Flow Computer Plus
ControlWave Gas Flow Computer Plus
ControlWave Ethernet I/O
ControlWave Ethernet I/O Instruction Manual
D301426X012
January 2022
Computer (XFC)
ControlWave Industrial Ethernet Real
Time Switches
Computer (XFC) Instruction Manual (part
number D301396X012)
(part number D301386X012)
(part number D301384X012)
(part number D301382X012)
Instruction Manual (part number
D301389X012)
(part number D301395X012)
ControlWave Industrial Ethernet Real-time
Switches Instruction Manual (part number
D301390X012)
Note:
Because the existing ControlWave install-base includes customers with older hardware
and software, for support purposes this manual includes references to older un-supported
operating systems and devices.
Introduction 3
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
4 Introduction
ControlWave Designer Programmer’s Handbook
Function block or
Minimum Firmware
Description
AGA3
2.00.00
Computes natural gas volume flow rate through an orifice plate in
Computes mass and volume flow rate for fluids (gases or liquids) in
AGA3I
1.00.00
Computes natural gas volume flow rate according to the Factors
AGA3SELECT
5.50.00
Combines the functions of the AGA3I and AGA3TERM function
AGA3TERM
2.00.00
Computes natural gas volume flow rate through an orifice plate in
AGA5
2.00.00
Performs AGA-5 calculations for conversion of computed gas
AGA7
2.00.00
Performs AGA-7 calculations for base volume rate.
AGA8_DET2017
6.00.00
Computes Base compressibility, Flowing compressibility and
AGA8DETAIL
2.00.00
Computes Base compressibility, Flowing compressibility and
AGA8_GRS2017
6.00.00
Computations for natural gas mixtures according to the Gross
ACCOL III Function Block Library
The ACCOL III Function Block Library is a set of functions and function blocks created by
Emerson and included with ControlWave Designer. ACCOL III function blocks are designed
to provide ControlWave Designer with the capabilities of ACCOL II modules used in our
previous ACCOL II language. This library also includes several newer functions which were
not available in ACCOL II.
Note
Other function block libraries are available for liquids calculations, and NIST23 calculations.
Contact Emerson Remote Automation Solutions division for more information.
For instructions on how to use any of these function blocks, please consult the online help
in ControlWave Designer.
D301426X012
January 2022
Function
AGA3DENS 4.10.00
Revision Required
thousands of cubic feet per hour (MSCFH) according to American
Gas Association (AGA) Report #3 1985 Edition.
lbs/hour and cubic ft per hour, for orifice plates, with flange taps
ONLY, according to the method explained in the American Gas
Association (AGA) Report #3 of August, 1992, 3rd Edition (Part 1
and Part 4).
Method in AGA Report #3.
blocks into a single function block.
thousands of cubic feet per hour (MSCFH) according to AGA
Report #3 1985 Edition. Allows factor substitution and display.
volume to energy equivalents.
Supercompressibility for natural gas mixtures, according to the
Detail Characterization Method in the 2017 AGA Report 8 Part 1.
AGA8GROS 1.00.00 Computations for natural gas mixtures according to the Gross
ACCOL III Function Block Library 5
Supercompressibility for natural gas mixtures, according to the
Detail Characterization Method in AGA Report 8.
Characterization method in AGA Report 8.
Characterization method in the 2017 AGA Report 8 Part 1.
ControlWave Designer Programmer’s Handbook
Function block or
Minimum Firmware
Description
AGA8_PART2
6.00.00
Performs calculations specified by 2017 AGA Report 8 Part 2,
AGA10
4.50.00
Computations for natural gas mixtures according to AGA Report
ALARM
4.70.00
Used to batch process alarms defined in the Variable Extension
ALARM_ANALOG
1.00.00
Monitors a process variable and sends a notification message to a
ALARM_LOGICAL_ON
1.00.00
Monitors a Boolean process variable and sends a notification
ALARM_LOGICAL_OFF
1.00.00
Monitors a Boolean process variable and sends a notification
ANOUT
1.00.00
Converts and scales signals for hardware analog output.
ARCHIVE
1.00.00
Provides historical storage of signal values.
ARRAY_ANA_GET
4.50.00
Function. Returns the REAL value of the specified array element.
ARRAY_ANA_SET
4.50.00
Function. Writes a REAL value to the specified array element.
ARRAY_LOG_GET
4.50.00
Function. Returns the BOOL value of the specified array element.
ARRAY_LOG_SET
4.50.00
Function. Writes a BOOL value to the specified array element.
AUDIT_SELECTED
5.40.00
Allows you to log events for value changes of individual variables or
AUTOADJUST
2.00.00
Performs adjusted volume and self check calculations for an
BTI
4.70.00
Allows CW_10, CW_30, and CW_35 controllers with the BBTI
CALC_DENSITY
June 22, 2009 library or
Calculates the mass density of a gas using the real gas relative
CLIENT
2.00.00
Communicates with other ControlWave controllers that have
COMMAND
1.00.00
Pulse Delayed Output.
COMPARATOR
1.00.00
Analog signal comparison.
CRC
2.00.00
Calculates CRC of data stored in an array.
CUSTOM
1.00.00
Custom Communications Interface.
DACCUMULATOR
1.00.00
Performs Double Precision Arithmetic.
DEMUX
1.00.00
Copies a signal value into a list of signals.
D301426X012
January 2022
Function
ALARM_STATE 1.00.00 Monitors a Boolean process variable and sends a notification
Revision Required
Thermodynamic Properties of Natural Gas and Related Gases,
GERG–2008 Equation of State.
Number 10.
Wizard.
remote computer when the variable’s value exceeds user defined
limits.
message to a remote computer when the variable is TRUE.
message to a remote computer when the variable is FALSE.
message to a remote computer when the variable changes state.
AUDIT 1.00.00 Provides historical storage of alarms and events.
log customized events. The customized events can include
standard value change information, alternate values, or NOTE
events. You can use the AUDIT_SELECTED FB independently of the
AUDIT FB.
Invensys Auto-adjust Turbine Meter.
AVERAGER 1.00.00 Computes the time-average and integral.
board to collect data from the Bristol TeletransTM Model 3508
Transmitter.
newer.
DB_LOAD 4.00.00 Loads variable information (LISTS) from a text file.
density (specific gravity)
implemented the Server Function Block.
DIAL_CTRL 4.00.00 Establishes a dial-up connection on a given port, or interface to a
6 ACCOL III Function Block Library
ControlWave Designer Programmer’s Handbook
Function block or
Minimum Firmware
Description
modem.
DIFFERENTIATOR
1.00.00
Differentiates an analog signal.
DISPLAY
4.20.00
Provides support for the keypad display.
ENCODE
1.00.00
Set/Read System Time, Julian /Wall Time Conversions.
EVP
4.50.00
Calculates the equilibrium vapor pressure for a liquid.
FIELDBUS
5.10.00
Interfaces with Foundation Fieldbus devices via a bridge server.
FILE_CLOSE
2.20.00
Function – End access to a flash file.
FILE_DELETE
2.20.00
Function – Remove a file from flash.
FILE_OPEN
2.20.00
Function – Start access to an existing flash file or create a new one.
FILE_READ_STR
2.20.00
Function – Read a line from a file and load into a string.
FILE_WRITE
2.20.00
Function – Send a buffer of binary data to a flash file.
FILE_WRITE_STR
2.20.00
Function – Send a formatted string to a flash file.
FPV
2.00.00
Computes Super Compressibility Factor (FPV) of a gas per AGA
GENERIC_SERIAL
2.00.00
Generic Serial communications serves as a means to buffer user
GPA8173
4.50.00
Converts the mass of natural gas liquids to equivalent liquid
GSV
4.50.00
Converts the gross standard volume for a liquid.
HART
5.00.00
Interface to HART field devices via serial port or I/O board.
HILOLIMITER
1.00.00
Compares a signal against a high and low limit.
HILOSELECT
1.00.00
Finds highest and lowest REAL values in a signal list.
HSCOUNT
1.00.00
High Speed Counter.
HWSTI
4.80.00
Honeywell Smart Transmitter Interface
IEC62591
5.50.00
Allows a ControlWave Micro controller with an IEC62591 Interface
INTEGRATOR
1.00.00
Computes an integral approximation.
ISO5167
2.00.00
Calculates flow rate for Orifice plates, Nozzles, Venturi tubes, and
LEAD_LAG
1.00.00
Adds a controlled delay effect.
LICENSE
4.90
Determines application licenses for the RTU.
LIQUID_DENSITY
4.50.00
Calculates the density of liquid at flowing conditions.
LISTxxx
1.00.00
Define/Expand a list.
MUX
1.00.00
Extracts the value of a signal from a list of signals
PDO
1.00.00
Pulse Duration Output.
PID3TERM
1.00.00
3 Mode PID Control.
PORTATTRIB
4.40.00
Allows the user to set the port characteristics online (except for the
PORT_CONTROL
4.20.00
Communications port manual control.
D301426X012
January 2022
Function
FILE_DIR 2.20.00 Function Block – Get a listing of files. Retrieve file attributes.
FILE_READ 2.20.00 Function – Read binary data from file.
FUNCTION 1.00.00 Table lookup and interpolation with arrays.
Revision Required
Report NX-19.
defined data through a serial port.
volumes at base conditions.
LIST_ELE_NAME 3.00.00 Returns the variable name for a given list element.
ACCOL III Function Block Library 7
module to communicate to IEC62591 wireless devices.
Venturi-nozzle Primary Devices per ISO 5167-1980 (E), 1980
edition
MODE).
ControlWave Designer Programmer’s Handbook
Function block or
Minimum Firmware
Description
R_INT
1.00.00
Function to Truncate to Integer.
RBE
4.40.00
Supports Report by Exception
REDUN_SWITCH
2.00.00
Function to perform programmed fail-over to Redundant Standby.
REG_ARRAY
1.00.00
Register Arrays – For HMI Access.
SCHEDULER
3.00.00
Equalizes the elapsed running time of a number of external
SEQUENCER
1.00.00
Provides sequential output control.
SERVER
2.00.00
Communicates with other ControlWave controllers that have
STEPPER
1.00.00
Sequence up to 255 Boolean Outputs.
STORAGE
04.40
Stores and retrieve historical data.
TCHECK
4.70.00
Provides status checking and data processing for a 3508 Teletrans
USERS_ACTIVE
5.20
Returns information on all currently signed-in users.
USERS_DEFINED
5.20
Allows encrypted access to the security configuration of the
V_ATTRIB_GET
04.50
This function returns the value of the specified attribute of a
V_ATTRIB_SET
04.50
This function sets the value of the specified attribute of a variable.
VAR_ATTRIB_GET
2.10.00
Retrieves the value of an attribute for a variable.
VAR_ATTRIB_SET
2.10.00
Sets the value of an attribute for a variable.
VAR_CI_PROC
2.10.00
Performs the CI (Control Inhibit) processing for the given variable.
VAR_FETCH
3.00.00
This function block fetches complete information about a variable
VAR_SEARCH
3.00.00
This function searches the PDD for variables, both with a given
VIRT_PORT
2.20.00
This function block creates a virtual port by defining a connection
VLIMIT
1.00.00
Limit an input’s rate of change.
VMUX
3.00.00
Extracts the value of a signal from a list of signals and ramps the
WATCHDOG
5.60
Activates a watchdog output based on user-defined criteria.
XMTR
4.70.00
Provides read/write access to the memory of a TeleTrans
D301426X012
January 2022
Function
R_RND 1.00.00 Function to Round to nearest Integer.
RBE_DISABLE 5.60.00 Disables selected RBE variables to prevent RBE reporting from
TOT_TRND 1.00.00 Computes totals from input and slope of input.
Revision Required
them.
devices.
implemented the Client Function Block.
Transmitter.
ControlWave.
variable.
given its name.
index, and by name.
to a terminal server.
output to match the input.
Transmitter, or other compatible device.
8 ACCOL III Function Block Library
Alarm Configuration
What are Alarms?
Alarms are messages generated by the controller
when one or more process variables changes, and
that change violates some pre-defined limit or state.
There are three types of alarms:
Analog Alarms– These alarms are generated when
an analog variable (type REAL, INT, etc.) exceeds a
pre-defined
message is generated when the variable returns to
within the pre-defined limit.
established around the alarm limits so that variables
can fluctuate slightly near the alarm limit without
constantly going into and out of an alarm state, and
thereby flooding the system with repetitive alarms.
Analog alarms are configured using the
ALARM_ANALOG function block.
alarm limit. A return-to-normal
Deadbands can be
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
Logical Alarms – These alarms are generated when a
variable of type BOOL enters its 'in-alarm' state. A
return-to-normal message is generated when the
variable returns to its opposite (non-alarm) state The
user chooses which state is the 'in alarm' state by the
choice of alarm function block. If its 'in-alarm' state
occurs when the BOOL variable becomes TRUE, then
the ALARM_LOGICAL_ON function block should be
used. if the variable's 'in-alarm' state occurs when the
BOOL variable becomes FALSE, then the
ALARM_LOGICAL_OFF function block should be used.
Note: The ALARM_LOGICAL_ON and
ALARM_LOGICAL_OFF function blocks are identical
except that the ALARM_LOGICAL_ON function block
generates an alarm when the associated process
variable (iaAlarmVar) is TRUE, whereas the
ALARM_LOGICAL_OFF function block generates an
alarm when the associated process variable
(iaAlarmVar) is FALSE.
Alarm Configuration 9
ControlWave Designer Programmer’s Handbook
Alarm Variable
This is the actual process variable which is to be monitored by the alarm
Alarm Priority
The alarm priority is basically a number which indicates the importance
Priority
Value
Meaning
Operator
1
Operator guide alarms are used to indicate everyday
Non-Critical
2
Non-critical alarms are used to indicate problems,
Critical
3
Critical alarms are used to indicate dangerous
Descriptive
Text
Up to 64 characters of descriptive text may be stored along with any
Disable
Alarm processing for a particular process variable can be turned OFF.
Status
Every alarm function block maintains error and status information.
D301426X012
January 2022
Change-of-State Alarms – These alarms are
generated whenever a variable of type BOOL
changes state. In this case, there is no such thing as
a return-to-normal condition. Change-of-State
alarms are configured using the ALARM_STATE
function block.
All three types of alarms have various inputs and
outputs associated with them. These inputs and
outputs are configured within the alarm function
block. The following information is common to all
three types of alarms:
function block. Analog (REAL, INT, etc.) can only be monitored via the
ALARM_ANALOG function block. Boolean variables can be monitored
by either the ALARM_LOGICAL_ON, ALARM_LOGICAL_OFF, or
ALARM_STATE function block(s).
of the alarm. There are four priorities supported in the system:
Event 0 Event alarms are used to indicate normal, everyday
occurrences.
Guide
occurrences which are slightly more important than
events.
which, while not serious enough to cause damage to
a plant or process, require corrective action.
problems that require immediate attention and/or
corrective action.
The choice of which alarm priorities are to be assigned to a particular
alarm variable is entirely at the discretion of the user.
alarm message. This text may be changed dynamically by control logic.
This prevents any alarm messages for that process variable from being
generated. This might be used in the case of system maintenance or
troubleshooting.
Improper configuration is indicated by negative status values, and will
prevent execution of the alarm function block. Positive values indicate
the variable is in an alarm state. A value of ‘0’ indicates there are no
10 Alarm Configuration
ControlWave Designer Programmer’s Handbook
configuration errors, and the variable is NOT in an alarm state. For a full
Alarm
Sequence #
An alarm sequence number is assigned to each alarm message to
Global
Sequence #
A global sequence number is assigned to each audit record, archive
D301426X012
January 2022
description of status values, see the on-line help files.
uniquely identify it within the Alarm System. Alarm sequence numbers
range from 0 to 65,535 and are shared among all alarm function blocks
in the alarm system to maintain proper ordering of messages.
record, or alarm message to uniquely identify it within the ControlWave
controller. Global sequence numbers range from 0 to 65,535 and are
shared by all of these sub-systems to maintain proper ordering of
messages.
The remaining inputs/outputs configured within the Alarm function block vary depending
upon the type of alarm function block being used.
Note
Some parameters in the alarm function block may not be required, depending upon your
specific application. In addition, if you do NOT intend to change the value of a particular
input value, and its parameter only supports a single data type (i.e., its parameter name
does NOT have an “ia” or “iany” prefix), you can enter it as a constant, instead of assigning
a variable name.
Alternatively, the OpenBSI Alarm Router can be used to view alarms, and offers an
interface to custom alarm applications. See the Open BSI Utilities Manual (part number
D301414X012) for information on Alarm Router.
Where can I get detailed information about these function
blocks?
On-line help is provided within ControlWave Designer for every ACCOL3 function block. To
access this, you can right click on the ACCOL3 library icon, and choose
Library…” from the pop-up menu.
Important
This section describes the standard method for alarm configuration. Beginning with
OpenBSI Version 5.4, an alternate way to create alarms is to use the Variable Extension
Wizard and the ALARM function block for batch processing. The Variable Extension Wizard
configures the alarms in the controller, but they do NOT appear within your project. For
information on this method, see the Variable Extension Wizard section, later in this
manual.
“Help on ACCOL 3
Alarm Configuration 11
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
Configuring an Analog Alarm
For this example, let’s say we have a tank full of water which must be maintained at a
certain temperature range. A temperature transmitter is mounted on the tank to measure
the current temperature of the water, and it has been decided that the water temperature
should be kept between 40.0
that range indicates an alarm condition.
The figure, below, shows a plot of the value of the variable measuring Celsius temperature
in the tank, as it fluctuates over time. Four alarm limits and two deadbands have been
defined. Starting from the left of the graph, the value of the variable increases until it
reaches 70.0
0
C, the high alarm limit (see Item 1). At this point a high alarm message is
generated, and the variable is considered to be in a ‘high alarm’ state.
The value of the variable continues to increase. When it passes the high-high alarm limit of
0
90.0
C a ‘high-high’ alarm message is generated (see Item 2). At this point, the variable is
considered to be in a high-high alarm state.
0
C and 70.00 Celsius. Any temperature reading outside of
The value of the variable then starts to decrease. Although the value passes below 90.0
it is still considered to be in a ‘high-high’ alarm state because there is a 10.0
0
high
0
C,
deadband in effect (deadbands are shown as shaded areas on the graph.) When the
variable value falls lower than 80.0
deadband of 10.0
0
C) the variable is no longer in a ‘high-high’ alarm state (See Item 3). It is
0
C point (90.00 C high alarm limit minus the high
still however in a ‘high’ alarm state.
12 Alarm Configuration
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
As the value of the variable decreases below 70.00 C, it remains in a ‘high’ alarm state until
its value falls below 60.0
0
C (70.00 C alarm limit, minus a 10.00 C high deadband). (See Item
4). At this point, the variable is in its normal range, and a ‘return-to-normal’ alarm message
is sent.
Then, however, the value of the variable continues to drop. When it reaches 40.0
0
C, a ‘Low
Alarm’ message is generated (See Item 5).
The variable remains in a ‘Low Alarm’ state until the variable value drops to 20.0
0
C. (See
Item 6). This causes a ‘Low Low Alarm’ message to be generated.
The variable remains in a ‘Low-Low Alarm’ state until the variable rises above 30.0
0
(20.0
C low-low alarm limit plus low deadband of 10.00 C). (See Item 7). The variable is still
0
C,
in a ‘Low Alarm’ state, however.
Once the variable rises above 50.0
0
C (40.00 C low alarm limit + low deadband of 10.00 C), it
has left the low-alarm state, and a ‘return to normal’ alarm message is sent (See Item 8).
As long as the variable remains in the normal range (between 40.0 and 70.0
0
C), no more
alarm messages will be generated.
Using the ALARM_ANALOG function block
Where you insert your ALARM_ANALOG function block depends upon the overall
construction of your project:
The ALARM_ANALOG function block can only detect an alarm condition when it is executed.
Therefore, when constructing your project, you should think about how and when you
want to execute the function block.
You might choose to place the ALARM_ANALOG function block in the same POU which
holds primary control logic for the process variable. This is always required if the
variable being monitored is not global. Typically, the ALARM_ANALOG function block
would be placed at the end of the POU. If you require timestamps to reflect the exact
moment the alarm condition occurred, you could place the ALARM_ANALOG function
block immediately following the logic which manipulates the process variable.
Alternatively, you could place the ALARM_ANALOG function block in a separate POU,
which could even be executed at a different task interval. This approach may be
convenient if you want to organize your project such that all alarm function blocks are
in the same place.
Step 1. Following the considerations discussed above, insert an ALARM_ANALOG function
block into your program. A separate ALARM_ANALOG function block is required
for every analog variable you want to configure as an alarm.
Alarm Configuration 13
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
Step 2. Based on our example of monitoring water temperature in a tank, assign
meaningful variable names, and where applicable, initial values to each of the
parameters of the ALARM_ANALOG function block.
The actual process variable being monitored for alarm conditions must be assigned
to the iaAlarmVar parameter. In this case we will call it WATER_TEMP since that is
the process I/O variable from the temperature transmitter.
Now we need to assign alarm limits and deadbands based on our previous discussion of
the proper range for the water temperature.
Important
You must use the same variable type for alarm limits and alarm deadbands as you use for
your alarm variable. For example, if the alarm variable is defined as type REAL, then every
alarm limit and alarm deadband for that ALARM_ANALOG function block must also be
defined as type REAL. Type mismatches of any kind will prevent the ALARM_ANALOG
function block from working and will generate errors on the odiStatus parameter.
We want to generate an alarm when the temperature goes out of the range 40.00 Celsius
to 70.0
0
Celsius, so 40.0 will be our low alarm limit (iaLoLimit parameter) and 70.0 will be
our high alarm limit (iaHiLimit parameter). We can also assign Low-Low and High-High
alarm limits to generate additional alarm messages if the variable goes much higher or
much lower than the Low and High limits. These are on the iaHiHiLimit and iaLoLoLimit
parameters, respectively. NOTE: You do not need to use all four limits. Only one alarm limit
is required to configure an analog alarm.
Setting Deadbands (iaHiDeadBand, iaLoDeadBand)
We strongly recommend that you define deadbands around your alarm limits. Two
deadbands are supported, iaHiDeadBand is applied to the high and high-high alarm limits,
and iaLoDeadBand is applied to the low and low-low alarm limits. Deadbands are ranges
above a low limit, or below a high limit, in which a return-to-normal message will NOT be
sent, even though a process variable has returned inside the range defined by the alarm
limits. This is to prevent the system from being flooded with alarm messages if a process
variable is fluctuating around the alarm limit. Without a deadband defined, every time the
process variable enters or leaves the normal range, a return-to-normal or alarm message
would be generated, thereby flooding the system with repetitive alarms, even though the
process variable has changed very little. For this example, we have chosen a deadband of
Alarm priorities indicate the severity of the alarm condition triggered by passing one of the
pre-defined alarm limits. For this example, passing either the low or high alarm limits is
considered NON-CRITICAL, and passing either the low-low or high-high alarm limits is
considered CRITICAL. The alarm priority has no effect on the operation of the alarm
system, and is defined strictly at the user’s discretion. Priorities are displayed as part of the
alarm message.
Units Text, Descriptive Text (istrUnitsText, istrDescText)
These parameters are strictly for the convenience of the user. They specify engineering
units for the alarm variable, and descriptive text for the alarm condition.
The table, below, summarizes the values for the various parameters used in this example:
Name
ibDisable WATER_TEMP_ALARM_DISABLE BOOL FALSE For disabling/ enabling
Type
INT, DINT,
USINT, UINT, or
UDINT
alarm processing.
variable measuring
temperature in the
tank.
Alarm Configuration 15
USINT, INT,
ControlWave Designer Programmer’s Handbook
Parameter
Suggested Variable Name
Variable
Value
Notes
UINT, DINT, or
iaHiLimit
WATER_H_LIMIT
REAL, SINT,
70.0
High alarm limit
iaLoLimit
WATER_L_LIMIT
REAL, SINT,
40.0
Low alarm limit
iaLoLoLimit
WATER_LL_LIMIT
REAL, SINT,
20.0
Low low alarm limit
iaHiDeadBand
WATER_HDB
REAL, SINT,
10.0
High alarm deadband
iaLoDeadBand
WATER_LDB
REAL, SINT,
10.0
Low alarm deadband
iiPriority
CRITICAL_PRIORITY
INT 3 High-High Priority
iiHiPriority
NON_CRITICAL_PRIORITY
INT 2 High Priority
iiLoPriority
NON_CRITICAL_PRIORITY
INT 2 Low Priority
iiLoLoPriority
CRITICAL_PRIORITY
INT 3 Low-Low Priority
istrUnitsText
TEMP_UNITS
STRING
'DEG_C'
Engineering units (up
istrDescText
WATER_TEMP_DESC_TEXT
STRING
'WATER
Descriptive text (up to
odiStatus
WATER_TEMP_ALARM_STATUS
DINT
None
Status of the execution
ouiAlarmSeq
WATER_TEMP_ALARM_SEQ_NUM
UINT
None
Alarm sequence
ouiGlobalSeq
WATER_TEMP_GLOBAL_SEQ_NUM
UINT
None
Global sequence
D301426X012
January 2022
Name
Type
UDINT
USINT, INT,
UNIT, DINT or
UDINT
USINT, INT,
UINT, DINT or
UDINT
USINT, INT,
UINT, DINT or
UDINT
USINT, INT,
UINT, DINT or
UDINT
USINT, INT,
UINT, DINT or
UDINT
16 Alarm Configuration
to 6 characters)
TEMPERAT
URE'
64 characters)
of this function block.
number.
number.
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
The configured alarm block appears, below:
Configuring a Logical Alarm
For this example, let’s say we have an electrical switch which turns ON in the event of a
compressor power failure. When the switch turns ON, we want to generate an alarm.
When the power is restored, the switch turns OFF and a return-to-normal message will be
generated.
Because the alarm condition occurs when the switch turns ON, we must use an
ALARM_LOGICAL_ON function block. (If we wanted to generate an alarm when the switch
turned OFF, we would have used an ALARM_LOGICAL_OFF function block.)
Using the ALARM_LOGICAL_ON function block
Where you insert your ALARM_LOGICAL_ON function block depends upon the overall
construction of your project:
The ALARM_LOGICAL_ON function block can only detect an alarm condition when it is
executed. Therefore, when constructing your project, you should think about how and
when you want to execute the function block.
You might choose to place the ALARM_LOGICAL_ON function block in the same POU
which holds primary control logic for the process variable. This is always required if the
variable being monitored is not global. Typically, the ALARM_LOGICAL_ON function
block would be placed at the end of the POU. If you require timestamps to reflect the
Alarm Configuration 17
ControlWave Designer Programmer’s Handbook
Parameter
Suggested Variable Name
Variable
Value
Notes
ibDisable
POWERFAIL_ALARM_DISABLE
BOOL
FALSE
For disabling/ enabling
iaAlarmVar
COMPRESSOR_POWER_FAILURE
BOOL
None
The ON/OFF status of
iiPriority
CRITICAL_PRIORITY
INT 3 Priority of this alarm
istrOnText
POWER_FAIL_ONTEXT
STRING
'FAILED'
ON message text (up
istrOffText
POWER_FAIL_OFFTEXT
STRING
'NORMAL'
OFF message text (up
istrDescText
POWERFAIL_DESC_TEXT
STRING
'WATER
Descriptive text (up to
D301426X012
January 2022
exact moment the alarm condition occurred, you could place the
ALARM_LOGICAL_ON function block immediately following the logic which
manipulates the process variable.
Alternatively, you could place the ALARM_LOGICAL_ON function block in a separate
POU, which could even be executed at a different task interval. This approach may be
convenient if you want to organize your project such that all alarm function blocks are
in the same place.
Step 1. Following the considerations discussed above,
insert an ALARM_LOGICAL_ON function block
into your program. A separate
ALARM_LOGICAL_ON (or ALARM_LOGICAL_OFF)
function block is required for every variable you
want to configure as a logical alarm.
Step 2. Based on our example of detecting a change of
state of a pump, assign meaningful variable
names, and where applicable, initial values to
each of the parameters of the
ALARM_LOGICAL_ON function block.
The actual process variable being monitored for alarm conditions must be assigned to the
iaAlarmVar parameter. In this case we will call it COMPRESSOR_POWER_FAILURE since
that is the process I/O variable from the switch.
Name
The table, below, summarizes the values for the various parameters used in this example.
Type
alarm processing.
the switch used to
indicate power failure
of the compressor.
NOTE: Alarms are only
generated when
iaAlarmVar is ON.
condition.
to 6 characters)
to 6 characters)
TEMPERAT
URE'
64 characters)
18 Alarm Configuration
ControlWave Designer Programmer’s Handbook
Parameter
Suggested Variable Name
Variable
Value
Notes
odiStatus
POWERFAIL_ALARM_STATUS
DINT
None
Status of the execution
ouiAlarmSeq
POWERFAIL_ALARM_SEQ_NUM
UINT
None
Alarm sequence
ouiGlobalSeq
POWERFAIL_GLOBAL_SEQ_NUM
UINT
None
Global sequence
D301426X012
January 2022
Name
Type
of this function block.
number
number
The configured alarm block appears, below:
Configuring a Change of State Alarm
For this example, let’s say we have a pump which is critical to the operation of a water
plant. Whenever it starts or stops, we want to generate an alarm message. NOTE: In
change-of-state alarms, there is NO return-to-normal state; every change from ON-to-OFF
or OFF-to-ON generates an alarm message.
Using the ALARM_STATE function block
Where you insert your ALARM_STATE function block depends upon the overall
construction of your project:
The ALARM_STATE function block can only detect an alarm condition when it is
executed. Therefore, when constructing your project, you should think about how and
when you want to execute the function block.
You might choose to place the ALARM_STATE function block in the same POU which
holds primary control logic for the process variable. This is always required if the
variable being monitored is not global. Typically, the ALARM_STATE function block
would be placed at the end of the POU. If you require timestamps to reflect the exact
moment the alarm condition occurred, you could place the ALARM_STATE function
block immediately following the logic which manipulates the process variable.
Alternatively, you could place the ALARM_STATE function block in a separate POU,
which could even be executed at a different task interval. This approach may be
Alarm Configuration 19
ControlWave Designer Programmer’s Handbook
Parameter
Suggested Variable Name
Variable
Value
Notes
ibDisable
DISABLE_WATERPMP_STATALRM
BOOL
FALSE
For disabling/ enabling
iaAlarmVar
WATER_PUMP_STATUS
BOOL
None
The ON/OFF status of
iiPriority
CRITICAL_PRIORITY
INT 3 Priority of this alarm
istrOnText
WATER_PUMP_ONTEXT
STRING
'ACTIVE'
ON message text (up
istrOffText
WATER_PUMP_OFFTEXT
STRING
'IDLE'
OFF message text (up
istrDescText
WATER_PUMP_DESC_TEXT
STRING
'WATER
Descriptive text (up to
odiStatus
WATER_PUMP_ALARM_STATUS
DINT
None
Status of the execution
ouiAlarmSeq
WATER_PUMP_ALARM_SEQ_NUM
UINT
None
Alarm sequence
ouiGlobalSeq
WATER_PUMP_GLOBAL_SEQ_NUM
UINT
None
Global sequence
D301426X012
January 2022
convenient if you want to organize your project such that all alarm function blocks are
in the same place.
Step 1. Following the considerations
discussed above, insert an
ALARM_STATE function block into
your program. A separate
ALARM_STATE function block is required
for every variable you want to configure
as a change-of-state alarm.
Step 2. Based on our example of detecting a change of state of a water pump, assign
meaningful variable names, and where applicable, initial values to each of the
parameters of the ALARM_STATE function block.
The actual process variable being monitored for alarm conditions must be assigned to the
iaAlarmVar parameter. In this case we will call it WATER_PUMP_STATUS.
Name
The table, below, summarizes the values for the various parameters used in this example:
Type
alarm processing.
the water pump.
condition.
to 6 characters)
to 6 characters)
PUMP
STATE
CHANGE'
64 characters)
of this function block.
number
20 Alarm Configuration
number
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
The configured alarm block appears, below:
Alarm Configuration 21
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
22 Alarm Configuration
ControlWave Designer Programmer’s Handbook
Application Licensing
Certain standard applications sold by Emerson Remote Automation Solutions are licensed
to prevent unauthorized duplication. When you purchase the application(s), you will
receive a license key (also known as a USB dongle), that will allow you to manage which
controllers will be license recipients for the standard applications.
Note:
Only ControlWave-series controllers with firmware 04.90 or newer support application
licensing.
Granting a License for a Controller to Run a Standard
Application
Install the dongle in your PC’s USB port, and allow it to be recognized.
Start the Application Licensing Tool, using the following sequence:
3. The Application Licensing Tool will read the dongle, and display the following
information:
Application A list of all the standard application licenses originally issued via this
dongle.
RTU State The license status of a particular controller for a particular standard
application. If the controller has not been queried yet, this will
display ‘Unknown’.
Ordered The total number of licenses included on this dongle, for a given
application, when it left the factory.
Available The total number of licenses, for a given application, which have
not yet been issued to controller(s).
Application Licensing 23
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
4. Select the controller to which you want to issue the license, using the [Browse] button.
(If communication is via NetView, the controller must exist in the current NETDEF file;
otherwise select the locally connected ‘RTU’.)
5. Enter a valid username / password combination for that controller, and click on the
[Query RTU License State] button.
6. The application window will be updated to show which applications have been
licensed for this controller. Select the application you want to issue to the controller.
There must be at least 1 or more listed in the
7. Click on [Issue License]. The license will be granted to the controller, and the
“Available” count will be decremented by 1.
8. Repeat this process for any other controllers you want to issue licenses to. When
finished, click on
[Exit].
“Available” field.
Removing an Application License from a Controller:
You might want to remove a license from a controller, for example, if you have to take it
out of service, for repairs, and want to use its license in a replacement unit. Follow the
steps, below:
1. Install the dongle in your PC’s USB port, and allow it to be recognized.
2. Start the Application Licensing Tool, using the following sequence:
3. The Application Licensing Tool will read the dongle, and display the following
information:
Application A list of all the standard application licenses originally issued via this
dongle.
RTU State The license status of a particular controller for a particular standard
application. If the controller has not been queried yet, this will display ‘Unknown’.
Ordered The total number of licenses included on this dongle, for a given
application, when it left the factory.
Available The total number of licenses, for a given application, which have not yet
been issued to controller(s).
4. Select the controller for which you want to revoke the license, using the [Browse]
button. (If communication is via NetView, the controller must exist in the current
NETDEF file; otherwise select the locally connected ‘RTU’.)
5. Enter a valid username / password combination for that controller, and click on the
[Query RTU License State] button.
6. The application window will be updated to show which applications have been
licensed for this controller. Select the application you want to remove from the
controller.
7. Click on [Remove License]. The license will be removed from the controller, and
restored onto the dongle. The
“Available” count will be incremented by 1.
Viewing a History of Dongle Issue / Remove Operations:
The Application Licensing Tool maintains, on the dongle, a list of the last 150 license
operations. To view this history, click on
[View Event Log].
Application Licensing 25
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
26 Introduction
Application Parameters
Goal Idle
This is a goal expressing the percentage of time the ControlWave CPU
Idle Min Ticks
This is the minimum number of 1 millisecond clock ticks to be left between
Minimum Idle
If this percentage of free CPU time is not maintained within the
The Application Parameters page is accessible from the "Application Parameters" tab in the
Flash Configuration Utility. For instructions on calling up the Flash Configuration Utility,
see Flash Configuration – An Overview, later in this manual. These parameters apply only to
ControlWave-series units that are configured as IP nodes.
Note:
Unless you are using redundancy or have a specific need to edit these parameters (for
example, if you are running an application with special memory requirements, or if you are
encountering performance problems related to CPU activity), leave these parameters at
their defaults. Users should exercise particular caution when modifying the application
parameters for memory. Making a significant change to these parameters without
understanding how the parameters interact could actually reduce the amount of available
memory, even though you have increased the values of the parameters. When changing
these parameters, use
only small incremental changes.
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
CPU:
should be idle. The default value is 30%. If this goal cannot be met, the
DEFAULT task period will automatically be adjusted to free up CPU time.
executions of the DEFAULT task. The default value is 2.
ControlWave CPU, an overload exception is reported. The default value is
5%.
Application Parameters 27
ControlWave Designer Programmer’s Handbook
Prog RAM
In kilobytes, this is the amount of memory reserved (at system start) for
Data RAM
This is the size of storage reserved for variables in kilobytes. This can
Retain RAM
This is the size of storage space (in kilobytes) reserved at system start for
Unit A Addr
This must be an IP address corresponding to an Ethernet port on the A
Unit B Addr
D301426X012
January 2022
Memory:
storing the generated code for the ControlWave project. This value
should NOT be set significantly larger than the amount of memory
actually needed for the project, because any unused reserved memory
will be unavailable for data or other purposes. NOTE: If the system does
not have sufficient memory to hold the user requests, the requests will
be reduced proportionally. This defaults to 1024k in the ControlWave
and ControlWave MICRO, and 256k in the ControlWaveLP. This can range
from 10k to 1024k.
range from 10k to 1024k.This defaults to 256k in the ControlWave and
ControlWave MICRO, and 64k in the ControlWaveLP. NOTE: This amount
does not include historical data (audit/archive).
variables marked as ‘RETAIN’. The values of variables marked as ‘RETAIN’
are preserved in the event of a warm start download. This can range from
0k to 1024k, and defaults to 256k in the ControlWave and ControlWave
MICRO, and 64k in the ControlWaveLP.
Redundancy Transfer
controller in a redundant pair.
This must be an IP address corresponding to an Ethernet port on the B
controller in a redundant pair.
Variations when using the ControlWave I/O Expansion Rack
For the ControlWave I/O Expansion Rack, the 'Memory' and 'CPU' sections of the Application
Parameters page are omitted, and a 'Timeouts' section is added.
The "Power Fail Timeout" determines how outputs of the I/O rack should be set when power is
restored following a power failure, or under certain circumstances, during a restart following a
CPU watchdog.
"Host Comm Loss Timeout" specifies how the outputs of the I/O Rack should be affected in the
event of a communication failure with the host ControlWave controller.
For a full description of these options, please see the ControlWave I/O Expansion Rack Quick
Setup Guide (part number D301423X012).
28 Application Parameters
Archive Configuration
What Are Archive Files?
Archive information is saved at the ControlWave-series controller in structures called
archive files. The archive files are essentially tables of data stored in rows and columns.
Each row has a timestamp, and sequence numbers, associated with it, and each column is
associated with a process variable. A row of process variable values, along with its
associated timestamp and sequence numbers is called a
A record constitutes a 'snapshot' of the values for those variables at that particular time.
Depending upon how you configure the archive file, the values saved may be just
instantaneous values, or they may be the result of calculations performed on data received
during the collection interval (integration, averaging, etc.)
Data is stored in the archive file either at a specified interval (periodic storage) or based on
settings in the ARCHIVE function block.
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
record.
Some Background - Archive Calculations (Weight Factors, Intervals, and Samples)
Optionally, calculations can be performed on the data prior to its being saved in the
archive file. These calculations could be averaging, integration, etc.
The calculations performed using the Archive system are particularly useful in fluid flow
applications, for fluids in either the gas or liquid state. The calculations are intended to
assist in meeting the requirements of the American Petroleum Institute Manual of Measurement Standards, Chapter 21, by supporting some of the averaging techniques
described in that document. If desired, these same calculations may be utilized for other
applications (besides the fluid flow applications for which they were originally intended).
In the following explanations some mathematical terminology is used that is directly
connected to the execution rate of the ARCHIVE function block. The Archive will have been
declared to have a periodic type and an Interval of 1 day or less. Within this Periodic
Interval the ARCHIVE function block will be executed at an execution interval established
by the task execution.
Some of the calculations make use of a “Weight factor”. The weight factors are set as input
parameters of the ARCHIVE function block, and can be any REAL number values. The
weight factors are used to control whether a sample is used in the calculation performed.
The weight factors are typically used to control the number of samples included in the
averaging calculations, so that, for example, Pressure or Temperature is only averaged
when the weight factors indicate that it is valid to use the samples.
The averaging methods also provide an automatic switch from one type of averaging to
another anytime after the start of a periodic interval. If a periodic interval begins with
Weight Factor2 in a non-zero state then throughout the interval Weight Factor2 controls
the averaging – samples are only used if Weight Factor2 is not zero. If the Interval begins
with Weight Factor2 already zero then each sample is weighted using Weight Factor1, but
Archive Configuration 29
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
if at any time during the interval Weight Factor2 becomes non-zero, all samples taken with
Weight Factor1 are discarded and a new average is started under control of Weight
Factor2. For the rest of the interval Weight Factor2 is in control and Weight Factor1 has no
more effect.
For example, if Weight Factor1 represents the delta time between ARCHIVE function block
executions, and Weight Factor2 represents the delta flow time between ARCHIVE function
block executions, then for those archive intervals where no flow time occurred, the result
is a straight time average. For those archive intervals where flow time has occurred, the
result is a flow time average.
Defining a Straight-time Average Archive
To set up a simple straight-time averaged archive, there are two methods available:
Method 1: Set Weight Factor1 to the delta time between ARCHIVE function block
executions each time the ARCHIVE function block is executed. (Note: The
delta time between each execution of the ARCHIVE function block must be
dynamically calculated by user-created logic in your program. Do NOT simply
enter a constant based on the rate of execution of the task, because that will
not account for any slippage in execution time.)
Method 2: Set Weight Factor1 to 1.0 each time the ARCHIVE function block is executed.
This provides an average based on the number of samples taken. (This is
equivalent to a time-based average.)
Archive configuration involves four basic steps:
1. Define the archive file(s) using the Flash Configuration Utility. This includes
specifying the number of rows (records) and columns, the types of calculations
performed, etc.
2. Identify in ControlWave Designer, every variable you want to have archived. This is
accomplished by including these variables in a LIST function block.
3. Create another LIST to hold the current archive record. (THIS IS OPTIONAL). This
allows the current archive record data to be used within your ControlWave project; if
you don’t want to do this, skip this step.
4. Configure an ARCHIVE function block in your ControlWave project. This function
must be executed frequently enough to collect an adequate number of samples.
30 Archive Configuration
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
What can be done with the data from the Archive File(s)?
Once archiving has been fully configured, and the ControlWave project has been
downloaded and has been running, archive data will be collected, and the Archive File(s)
will be populated with data. There are various methods for extracting this Archive data:
The Archive Collection web page control may be used to display archive data. This web
page is included in the standard Web_BSI set, and allows you to display the archive
data in Microsoft® Internet Explorer.
The OpenBSI DataView utility can display archive data on the screen of your OpenBSI
Workstation.
The PocketBSI Data Viewer can display archive data on the PocketBSI AccessPack.
The OpenBSI Harvester can collect the archive data, and store it in files on the OpenBSI
Workstation, which the OpenBSI Data File Conversion Utility can export to human
machine interface (HMI) packages such as OpenEnterprise.
Step 1. Define Archive Files(s) in the Flash Configuration
Utility
The individual columns of the archive file, and various parameters that define how
archiving is performed, are specified in the Archive page of the Flash Configuration Utility.
Changes made in the Archive page will NOT take effect until the unit has been powered off
and back on.
Archive Configuration 31
ControlWave Designer Programmer’s Handbook
Number
This is a unique ID number for this Archive File. It can range from 1 to 32767.
Name
This is the archive file name. Up to 8 alphanumeric characters, beginning with
Records
This determines how many rows of 'snapshot' data will be retained in this
Columns
This is the number of columns in the Archive File. Each column corresponds to
Flash
When selected, all Archive records will be stored in FLASH memory. FLASH
RAM
When selected, all Archive records will be stored in static RAM. If the
1 Min, 5 Min,
15 Min, 1 Hour,
1 Day
Only applies when the "Timestamp Mode" is "Periodic". This specifies how often
Archive recor
At Store
When "At Store" is chosen, the timestamp assigned to this archive record is
D301426X012
January 2022
To begin defining an Archive File, click on the [New] button, then complete the fields as
discussed, below:
File Definition
a letter, can be used.
Archive File. For example, if you want to save 24 rows (records) enter 24 here.
The upper limit on the number of records is based on the size of each record.
The maximum size of an Archive File is fixed. This means that as the size of the
archive record increases (based on number of columns, types of data, etc.)
fewer records can be saved in the Archive File. NOTE: Each archive record
includes 14 bytes to store the timestamp and sequence numbers, in addition
to the bytes used to store the actual column data. Because the sizing of
Archive Files can change based on firmware revision, consult the online help
files for archives in ControlWave Designer. Also, there is a
Histsize_Calculator.xls file included with OpenBSI if you need more detailed
information on Archive File size.
data for a particular variable. The number of columns can range from 1 to 64.
Note: OpenBSI programs such as DataView and Harvester cannot collect
archive records larger than 220 bytes. For all floating point (REAL) data, this
means no more than 53 columns should be specified.
Location
memory is preserved in the event the ControlWave unit loses power, or if the
unit's backup battery fails.
ControlWave unit is reset, for any reason, Archive records will be preserved
only so long as the unit's backup battery continues to operate, or the user
does not perform a system cold start. See the Memory Usage section for a
discussion of system cold starts.
Interval
ds 'snapshots' should be stored.
Mode
32 Archive Configuration
the time at which the record is stored.
Start of
Period
When "Start of Period" is chosen, the timestamp assigned to this archive
Type
Nonperiodic
When this is chosen, archive records are stored when the ARCHIVE function
Periodic
When this is chosen, archive records are stored when the ARCHIVE function
Title
Is a description for the column. It can range from 1 to 16 characters.
Characteristics
Determines the type of calculation to be performed on the collected data for
Column Definitions
To begin defining a column, click on the [Add] button. The Archive Column Definition
dialog box will appear. Descriptions of the various fields are included, below; click on
when finished defining the column, and you will return to the Archive page of the Flash
Configuration Utility.
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
record is the time at the beginning of the interval.
block executes, if the criteria determined by the iiMode terminal is met.
block executes, and the chosen interval (either 1 minute, 5 minute, 15
minute, 1 hour, 1 day) has expired.
[OK]
If you need to change the definition of a column after you’ve clicked on [OK], click on the
column number, then click on the
dialog box will be recalled.
If you need to delete a column you have defined, click on the number for the column, then
click on the
[Remove] button.
this variable. Choose from the list box.
[Modify] button, and the Archive Column Definition
Archive Configuration 33
ControlWave Designer Programmer’s Handbook
In these formulas, the following notation is used:
Avg for time when Wfactor2 !=0
Arith Mean Over Wfactor1
Avg of Sqrt(var) for time when Wfactor2 !=0
D301426X012
January 2022
is the time at which the ARCHIVE function block executes and reads or
'samples' the variable.
is the number of module executions or samples that can occur within the
defined Periodic Interval e.g., with a one second Task execution and a one
Hour Periodic Interval “I” will be 3600.
The term 'Wfactor' used in these formulas refers to the Weight Factor. Weight
Factors are specified in the ARCHIVE function block.
The choices are:
This performs a simple sum and divide averaging calculation, but a weight
factor is applied to each sample as it is read. The weight factor is set by other
program logic, as required, to control the averaging done by the function
block; it would typically be used to ensure that the variable being read is only
averaged while another condition is valid. The equation is shown below:
Perform a simple sum and divide average with each sample weighted by
WeightFactor1. See the equation below:
34 Archive Configuration
During the periodic interval, sample the variable, take the square root of the
sample, multiply it by WeightFactor2, and sum it. At the end of the interval,
calculate the average square root and store the result in the Archive. See the
equation, below:
Sqr of (Avg of sqrt(var))
Note
Instantaneous Place value in log
Min observed value for period
Max observed value from period
Place value in log, and 0 signal
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
During the periodic interval, sample the variable, take the square root of the
sample, multiply it by WeightFactor2 and sum it. At the end of the interval,
calculate the average square root, then square it and store the result in the
archive. The equation is shown below:
: The result is zero if Weight Factor 2 is zero for the entire interval.
Archive Configuration 35
No calculation performed. At the end of the periodic interval, simply store the
current value of the variable in the archive.
At the end of the periodic interval, store the lowest value of the variable among all
values collected during this interval.
At the end of the periodic interval, store the highest value of the variable among
all values collected during this interval.
At the end of the periodic interval, store the current value of the variable, and reset
ControlWave Designer Programmer’s Handbook
the variable to zero.
Integration over Wfactor2
Data Type
Choose any one of the data types. The default is Real. The other choices are:
Precision
Specify the numerical precision in which values should be displayed.
D301426X012
January 2022
Sum the samples taken during the periodic interval after multiplying each
sample by WeightFactor 2. Perform the following calculation:
Boolean, Short Int, Int, Double Int, Long Int, Bit String-Byte, Bit String-Word,
Bit-String-Dword.
Deleting An Existing Archive File Definition
To delete an existing archive file definition, which will also delete the columns and records
of the archive file, click on the file name in the list box in the left part of the page, then click
on the
[Delete] button. NOTE: The actual file deletion does not take place until the
ControlWave-series unit is powered off, and then re-started.
Working with String-Based Archives
See the ControlWave Designer online help for instructions on configuring string-based
archives.
Step 2. In Your ControlWave Designer Project, Identify the
variables you want to archive in the Archive List
All variables for which you would like to archive data must be included in the Archive List.
Important
The variables in the Archive List must have a direct one-for-one correspondence with the
columns of the archive file, as defined in the Archive page of the Flash Configuration Utility
(Step 1). For example, the first variable in the archive list corresponds with column 1 of the
archive file, the second variable in the archive list corresponds with column 2 of the archive
file, etc.
36 Archive Configuration
Also note that the timestamp, global sequence number, and archive sequence number
which are included at the beginning of every archive record, do not count as columns
when specifying this correspondence.
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
To create the Archive List, insert one of the LIST function blocks (LIST010, LIST020,
LIST030, LIST050, or LIST100) in your ControlWave Designer program. The choice of which
LIST function block is determined by how many variables you want to include in the
Archive List; for example, if you want to include 37 variables in your Archive List, you
should choose LIST050, which can hold up to 50 variables; if you want to include 63
variables in your Archive List, you should choose LIST100, since it can hold up to 100
variables.
Note: Archive files cannot hold more than 64
columns of data, therefore, your archive list
should not include more than 64 variables.
The figure, at right, shows an Archive List with
5 variables.
You should insert the ARCHIVE function block
in one of your POUs. The POU you choose
must be part of a task which executes faster
than the rate at which you want your archive
calculations and storage to occur, since
archive calculations and storage only occur
when the ARCHIVE function block is executed.
Notes:
Typically, you would want to define control logic to only execute the list once. For
information on how to do this, see the Conditional Logic section of this manual.
All variables in your Archive List must be marked as ‘PDD’ in order to be collected by
external archive collection programs such as DataView, or the Harvester.
The variables you want to include in the Archive List must reside in the same POU as
the LIST function block used for the Archive List, or they must be global variables.
Step 3. Create an Output List for Accessing the Most Recent
Archive Record (OPTIONAL)
Optionally, you can create a list
which will hold a specified Archive
record. This allows the specified
archive record data to be accessible
within your ControlWave program.
The figure at right shows the Output
list. The table, below, details the
Archive Configuration 37
ControlWave Designer Programmer’s Handbook
Parameter
Suggested Variable
Variable Type
Value
Notes
iiListNumber
(no variable, entered as a
INT 8 The list number (must be
odiStatus
LIST8_STAT
DINT
None
OPTIONAL – This reports status
ianyElement1
TIMESTAMP
REAL
None
The timestamp associated with
ianyElement2
ARCHSEQNUM
DINT
None
The local archive sequence
ianyElement4 to
(desired variable names)
Match the data
None
These elements of the list
D301426X012
January 2022
data type requirements of the output list used in this example.
Name
ianyElement3 GLOBALSEQNUM DINT None The global sequence number
ianyElement n
Name
constant)
type to the
corres-ponding
variable in the
Archive List
entered on the iiOutList
parameter of the ARCHIVE
function block)
values regarding the Output
List. Negative values indicate
errors.
the archive record.
number associated with the
archive record.
associated with the archive
record.
contain the values of the
associated process variables for
the archive record.
Step 4. Configure the ARCHIVE Function Block
Insert an ARCHIVE function block in one of your POUs of your project. The POU you choose
must be part of a task which executes fast enough to produce valid archive calculations. If,
for example, you want to calculate average flows for the past hour, for all variables in the
Archive List, you must have executed the ARCHIVE function block enough times to obtain
a valid average, based on your requirements. This might be once a minute, once every 10
seconds, etc. So, even though the calculation is stored hourly, the ARCHIVE function block
must be executed faster.
When the ARCHIVE function block executes, it performs any intermediate calculations,
and then only stores the archive data if the specified interval has been reached, or if ondemand archiving has been specified (MODE 2 or 3). Once the most recent archive data
has been stored, it will be accessible in the Output List (if the Output List was configured).
38 Archive Configuration
ControlWave Designer Programmer’s Handbook
Parameter Name
Variable Name
Variable Type
Value
Notes
iiArchiveNumber
(in this case we entered no
INT 1 This must match the archive
iiArchiveList
(no variable, entered as a
INT 7 This must match the
iiOutList
isiMode
ARCH1_MODE
SINT 1 In this particular mode (Mode
isiContractHour
CONTRACT_HOUR
SINT 8 If interval configured on the
irWFactor1
WF1
REAL
None
This weight factor is used in
D301426X012
January 2022
The table, below, summarizes the configuration details for the parameters in the ARCHIVE
function block for this particular example. More detailed information on the ARCHIVE
function block is included in the on-line help.
variable, we used a constant
instead)
constant)
(no variable, entered as a
constant)
number defined for the
archive file on the Archive
page of the Flash
Configuration Utility.
iiListNumber of the Archive
List defined in Step 2.
INT 8 This must match the
iiListNumber of the Output
List defined in Step 3.
1), archiving occurs at the
interval specified for the
archive file on the Archive
page of the Flash
Configuration Utility. This is
the default mode; for
information about other
modes, see the on-line help.
web page is daily, this is the
contract hour at which the
daily collection should occur.
This can range from 0 to 23.
Archive Configuration 39
certain averaging
calculations. This is discussed
earlier in this section.
ControlWave Designer Programmer’s Handbook
Parameter Name
Variable Name
Variable Type
Value
Notes
irWFactor2
WF2
REAL
None
This weight factor is used in
idiSequenceIndex
SEQ_INDEX
DINT
None
This is only used in Mode 5 or
odiStatus
ARCHIVE1_STAT
DINT
None
OPTIONAL – This reports
ouiNumRecords
ARCH_REC_TOTAL
UINT
None
This is the total number of
ouiOldestRecord
OLDEST_ARCH_SEQNUM
UINT
None
OPTIONAL – This reports the
ouiNewestRecord
NEWEST_ARCH_SEQNUM
UINT
None
OPTIONAL – This reports the
D301426X012
January 2022
certain averaging
calculations. This is discussed
earlier in this section..
6. The user can specify the
sequence number of a
particular record, and its data
will be reported in the output
list (Mode 5), or the user can
choose an indexed (fixed)
position in the Archive file
(Mode 6), and the data from
that record will be reported in
the output list. See the online help for the ARCHIVE
function block for more info.
status values regarding the
execution of the ARCHIVE
function block. Negative
values indicate errors.
archive records currently in
the archive file.
Local (Archive) Sequence
number of the oldest record
in the archive file.
Local (Audit) Sequence
number of the newest record
in the archive file.
40 Archive Configuration
Array Configuration
Instead of storing data exclusively in individual variables, you may find it more convenient,
for some applications, to store some of the data in tabular form, such as in a
data array is really variables which are part of a more complex structure. The structure is
organized in rows and columns. It must be defined in the
project tree, because it is considered to be a user-defined data type.
Arrays are most easily manipulated in POUs defined in the Structured Text (ST) language.
Defining an Array Data Type
Let's say, for example, that we wanted to save 3 temperature values (of type REAL), every
hour, for an entire day. We need to define a data type for the columns of the array (which is
type TEMPS), and an array of rows (which is type TODAYS_TEMPS). The 3 column by 24
row array is defined by entering the following in the
tree:
TYPE
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
data array. A
"Data Types" portion of the
"Data Types" section of the project
TEMPS : ARRAY[1..3] OF REAL;
TODAYS_TEMPS : ARRAY[1..24] OF TEMPS;
END_TYPE
Important
You should define this data type in your own data type worksheet. Do NOT use the
SYS_VAR_WZ_TYPES sheet, because if you subsequently change your system variables,
any data types you add to that sheet would be overwritten by the changes. To add your
own data type worksheet, right-click on the ‘Datatypes’ item in the project tree, then
choose
worksheet.
“Insert Datatypes” from the pop-up menus, then supply a name for the
Creating an Array Using Your User-Defined Type
On one of your variable worksheets, create a variable using your newly defined data type.
The text, below, creates an array called WEDNESDAY, which uses the data type we just
defined.
VAR_EXTERNAL (*AUTOINSERT*)
WEDNESDAY :TODAYS_TEMPS;
END_VAR
Array Configuration 41
ControlWave Designer Programmer’s Handbook
Parameter Name
Variable Name
Variable Type
Value
Notes
arrayDescriptor
WEDNESDAY
User-defined
None
Indicates the name of your array,
iiArrayNumber
1 (just entered a constant
INT 1 Indicates the array number you are
odiStatus
ARRAY_1_STAT
DINT
None
Reports status values regarding
ouiNumRows
ARRAY_1_NUMROWS
UINT
None
Indicates the number of rows in
ouiNumColumns
ARRAY_1_NUMCOLS
UINT
None
Indicates the number of columns
D301426X012
January 2022
Using the Array
In your structured text POU, you can assign values to elements of your array. Note that in
the text shown, T1_TEMP, T2_TEMP, and T3_TEMP MUST be variables of type REAL, since
each cell of the WEDNESDAY array holds a REAL value.
WEDNESDAY[1][1] :=T1_TEMP;
WEDNESDAY[1][2] :=T2_TEMP;
WEDNESDAY[1][3] :=T3_TEMP;
Making the Array Accessible to OpenBSI Collection Programs
In ControlWave Designer, data arrays are defined by a name. In the OpenBSI Utilities such
as DataView, the Data Collector, and the Scheduler, however, data arrays are referred to
by a number, since in Network 3000-series products, arrays only have numbers, not
names.
To collect arrays from a ControlWave controller, using OpenBSI, the named array must be
assigned a number using the REG_ARRAY function block. In addition, the array variable
must be marked
"PDD".
For this example, the following table details the usage of each parameter in the
REG_ARRAY function block:
array type, in
this case
TODAYS_TEMPS
here)
which is of some data type you
defined.
assigning to your array. When you
collect this array using OpenBSI,
this is the number which you use
to refer to it in the OpenBSI
utilities.
the REG_ARRAY function block.
Negative values indicate errors.
this array to be reported.
in this array to be reported.
42 Array Configuration
ControlWave Designer Programmer’s Handbook
Audit Configuration
Audit logging is one of the historical storage capabilities of the ControlWave-series
controllers. It allows a record to be kept of significant events such as alarms, operator
setpoint changes, operator logins, and system events.
There are three basic steps to configuration of Audit logging:
1. Define audit parameters on the ‘Audit’ page of the Flash Configuration Utility.
2. Define an Event list in your ControlWave project that lists non-alarm variables you
want to monitor for changes.
3. Configure the AUDIT function block and execute it at the desired frequency.
What can be done with the data from the AUDIT data once it has been logged?
Once audit logging has been fully configured, and the ControlWave project has been
downloaded and has been running, audit data will be collected, as events and alarms
occur. There are various methods for extracting the Audit data:
D301426X012
January 2022
The Audit Collection web page control may be used to display audit data. This web
page is included in the standard Web_BSI set, and allows you to display the audit data
in Microsoft® Internet Explorer.
The OpenBSI DataView utility can display audit data on the screen of your OpenBSI
Workstation.
The OpenBSI Harvester can collect the audit data, and store it in files on the OpenBSI
Workstation, which the OpenBSI Data File Conversion Utility can export to human
machine interface (HMI) packages such as OpenEnterprise.
Step 1. Set parameters in the Flash Configuration Utility
Configuration parameters for audit logging are set on the Audit page of the Flash
Configuration Utility.
Note:
Changes made in the Audit page will NOT take effect until the unit has been powered off
and back on.
Audit Configuration 43
ControlWave Designer Programmer’s Handbook
Flash
When selected, all Audit records will be stored in FLASH memory. FLASH
RAM
When selected, all Audit records will be stored in static RAM. If the
Continuous
When Logging Type is specified as ‘Continuous’, if the storage area for audit
records becomes full, the oldest records will be erased (overwritten) as new
records come in.
Stop on Full
When Logging Type is specified as ‘Stop on Full’, if the storage area for audit
recor
impact on the variables themselves; they will continue to change, only their
changes will not be logged to the Audit system.
Number of
Events
Specifies the number of events to be logged. This value can range from 0
Number of
Alarms
Specifies the number of alarms to be logged. This value can range from
D301426X012
January 2022
Storage Location
Logging Type
Sizing
memory is preserved in the event the ControlWave-series unit loses power, or
if the unit's backup battery fails.
ControlWave-series unit is reset, for any reason, Audit records will be
preserved only so long as the unit's backup battery continues to operate, or
the user does not perform a system cold start. See the ‘Memory Usage’ section
for a discussion of system cold starts.
ds becomes full, all logging will stop. NOTE: This does not have any
to 584. 0 is the default, which means that no events will be logged.
0 to 584. 0 is the default, which means that no alarms will be logged.
44 Audit Configuration
Number of
Records in the
Output Buffer
[% of
corresponding
log]
When "Flash" is chosen as the storage location for the Audit Trail records,
“Number of Alarms”
“Number of Records
in the Output Buffer”
"Number of Alarms"
"Number of Records
in the Output Buffer"
Port
Logging
Master
Port
Defines the only port which is capable of deleting the audit records
“Stop on Full”
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
the Audit system cannot write data into the Alarm or Event logs when a
flash log becomes full. Should alarm(s) or event(s) be generated during
that time, it must be temporarily stored in the Output Buffer, until such
time as the new useful records can be written into an Alarm or Event log
in flash. The Output Buffer size specifies (as a percentage of the log file
size) how much temporary storage is available during such operations.
For example, if
is 300, and the
is set to 20, it means that up to 20% of 300 alarms
(or 60 alarms) can be stored in the output buffer, before alarm data
could be lost. If the
is 300 and
is set to 100, it means that 100% of the 300 alarms
(or 300 alarms) can be stored in the output buffer, before alarm data
could be lost. The default is 100.
from the audit logs. The Logging Master Port is only meaningful when
the recording mode is set to
logging master port can be one of the following values:
Value Port
0 Serial Port 1
1 Serial Port 2
2 Serial Port 3
3 Serial Port 4
4 Serial Port 5
5 Serial Port 6
6 Serial Port 7
7 Serial Port 8
8 Serial Port 9
9 Serial Port 10
10 Serial Port 11
11-14 currently unused
IP Port (any IP port on the unit)
. The port number for the
Audit Configuration 45
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
Step 2. In ControlWave Designer, identify Variables for
which you want to maintain Audit Logging
If there are several non-alarm variables for which you would like to maintain Audit logging,
they must be included in the
value changes, every time the AUDIT function block is executed.
Note
If you have a small number of event variables, instead of using the Event List, you can, if
you choose, configure a separate AUDIT function block for each of the variables, and then
assign each variable to the ianyEventVar parameter of its associated AUDIT function block.
Important
We strongly recommend you do NOT include in the Event List any variables tied to
process I/O points or calculated variables which change frequently, because several
minor fluctuations of a process I/O variable or calculated variable would generate
multiple event records, thereby quickly filling up your event log. The Event List should
be reserved for operator setpoints, configuration parameters, and other variables
which change infrequently.
Event List. This is a list of variables which is scanned for any
Alarm variables are automatically included in the Audit alarm log.The Audit alarm log,
however, only includes the alarm messages generated when a variable enters its 'inalarm' state, and when it returns to normal. Intermediate value changes to the alarm
are NOT included in the alarm log. If you need to log this information, for example, for
an operator setpoint variable, which is also configured as an alarm, you must include
that variable in the event list. Again, however, this should only be done if the alarm
changes infrequently. If you do not need this intermediate information, we
recommend you do NOT include alarm variables in the Event List, since 'in alarm' and
'return to normal' messages are always stored in the Audit alarm log.
When the Audit alarm log and event log become full, they can be configured either to
overwrite the oldest records when new data comes in, or to stop logging completely
until one or more audit records are deleted by the user. You should configure the
OpenBSI Harvester to periodically extract audit data and export it to your HMI
software; to help prevent your audit logs from filling up.
DO NOT make on-line changes to the contents of the Event List as this will cause
discrepancies in detection of value changes. If you want to change the Event List,
make the changes off-line, then download the new project and execute a cold start of
the unit.
46 Audit Configuration
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
To create the Event List, insert one of the LIST function blocks (LIST010, LIST020, LIST030,
LIST050, or LIST100) in your ControlWave Designer program.
The choice of which LIST function block
is determined by how many variables
you want to include in the Event List;
for example, if you want to include 15
variables in your Event List, you should
choose LIST020, which can hold up to
20 variables; if you want to include 63
variables in your Event List, you should
choose LIST100, since it can hold up to
100 variables.
The figure, at right, shows an Event List
with 9 variables.
If larger lists are required, you can chain multiple LIST function blocks together by simply
specifying the same
iiListNumber on each one.
Notes:
All variables in your Event List must be marked as ‘PDD’ in order to be collected by
external audit collection programs such as DataView, or the Harvester.
The variables you want to include in the Event List must reside in the same POU as the
LIST function block used for the Event List, or they must be global variables.
Typically, you would want to define control logic to only execute the list once. See the
‘Conditional Logic’ section for more information on this subject.
Step 3. Configure an AUDIT Function Block
Insert an AUDIT function block into one of your POUs. The POU you choose must be part of
a task which executes fast enough to handle your Audit logging requirements, since the
Audit logging only occurs when the AUDIT function block is executed.
Audit Configuration 47
ControlWave Designer Programmer’s Handbook
Parameter Name
Suggested Variable Name
Variable Type
Value
Notes
ibDisable
AUDIT_LOGGING_DISABLE
BOOL
FALSE
For disabling/ enabling
iiAuditList
ianyEventVar
left unused – only applies when
REAL, SINT, INT, or
none
This parameter is only used
odiStatus
AUDIT_STATUS
DINT
none
OPTIONAL – This reports
ouiNumEvents
ouiOldestEvent
OLDEST_EVENT_SEQ_NUM
UINT
none
OPTIONAL - This reports the
ouiNewestEvent
NEWEST_EVENT_SEQ_NUM
UINT
none
OPTIONAL - This reports the
ouiNumAlarms
NUM_ALARMS
UINT
none
OPTIONAL – This reports
ouiOldestAlarm
ouiNewestAlarm
NEWEST_ALARM_SEQ_NUM
UINT
none
OPTIONAL - This reports the
D301426X012
January 2022
The following table summarizes the configuration details for the parameters in the AUDIT
function block for this particular example. More detailed information on the AUDIT
function block is included in the online help.
here, we have entered a constant
of ‘5’ since the LIST function
block we configured in Step 2 is
numbered ‘5’
audit logging.
INT 5 Identifies the iiListNumber
of the LIST function block
we are using.
there is no Event List. Used only
when a single variable is to be
monitored in the event log.
NUM_EVENTS UINT none OPTIONAL – This reports
OLDEST_ALARM_SEQ_NUM UINT none OPTIONAL - This reports the
DINT
if there is only one variable
for which you want to
maintain event logging.
That single variable is
identified by ianyEventVar.
status values regarding the
execution of the AUDIT
function block. Negative
values indicate errors.
the number of events in the
event log.
Local (Audit) Sequence
number of the oldest event
in the event log.
Local (Audit) Sequence
number of the newest
event in the event log.
the number of alarms in the
alarm log.
Local (Audit) Sequence
number of the oldest alarm
in the alarm log.
48 Audit Configuration
Local (Audit) Sequence
number of the newest
alarm in the alarm log.
ControlWave Designer Programmer’s Handbook
Network Master PC
running Open BSI
and HMI/SCADA
software
Level 0
Level 1
Level 2
Level 3
Radio connection
Cable or dial-up
connections
Network 3000 Flow
computers/correctors
Network 3000
controller
Network 3000
controller
Network 3000
controller
Pseudo Master Device
running UOI or Open BSI
ControlWave
controller
ControlWave
controller
BSAP Addressing and Networks
What is BSAP?
The Bristol Synchronous / Asynchronous Protocol (BSAP) is used for communication within
ControlWave and Network 3000 controller networks. BSAP has been used in a wide variety
of applications, and is particularly suited to networks where several controllers are
connected via a multi-drop cable. It has also been used successfully with several different
modes of data transmission including direct cable connections, dial-up modems, radios
and satellite links.
At the top of a BSAP network is a host computer, called the network master. The network
master is usually a PC workstation running
control and data acquisition (SCADA) software such as Emerson OpenEnterprise™
software, or a third-party HMI package such as Intellution
HMI software communicates using the communications driver provided in the
Bristol System Interface (OpenBSI) software. The HMI/SCADA software at the Network
Master allows the operator to view what is going on in the network through graphical
displays, trends, or printed logs and reports.
human-machine interface (HMI) or supervisory
D301426X012
January 2022
®
FIX® or Iconics Genesis™. The
Open
Note
Pseudo master devices can be connected to lower levels of the network to view data.
These are similar to Network Masters, however, they are not considered to be “nodes” in
the network, and so do NOT appear in the NETDEF files.
Below the Network Master are the remote process controllers.
BSAP Addressing and Networks 49
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
The controllers in the network are organized into a hierarchical structure of one or more
levels. A BSAP network can support up to six levels (not including the Network Master
referred to as level 0.) The number of levels required varies depending upon the size and
scope of your project.
Each controller (node) serves as a master to the nodes connected to it on the level
immediately below, and as a
above. A node can have many slaves but only one master. Each master
data, which it retains in memory until it is polled by its master. In this way, data flows from
slave to master, slave to master, etc. until it reaches the Network Master, where it is made
accessible to the operator via HMI software.
Note
Initially, the ControlWave series could only serve as BSAP slave devices. Beginning with
ControlWave firmware release CWP02.0, ControlWave-series controllers may also serve as
BSAP master devices.
The user assigns each controller under a given master node a unique 7-bit local address
(from 1 to 127). OpenBSI will automatically assign the controller a unique 15-bit global
address (
GLAD), based on its location in the network. Addresses and network structure are
specified in the Network Definition (
program. They must also be specified in the controller; either by switch settings (for
certain Network 3000 controllers) or by parameters stored in FLASH memory (for
ControlWave controllers, and certain Network 3000 controllers).
slave to the node connected to it on the level immediately
polls its slaves for
NETDEF) files generated by the OpenBSI NetView
The network information stored internally by a node is called its Node Routing Table (NRT).
The NRT is updated whenever a valid time synchronization message (TS/NRT) message is
received from the master node. Typically, this occurs when the Master is downloaded, but
TS/NRT transmission can also be forced by the user via a menu selection in NetView.
The level of a given controller specifies how many intervening communication lines there
are between it, and the network master. The first level controllers are called
top-level
nodes because data must travel over only 1 communication line to reach the Network
Master. A communication line can consist of a direct cable connection, a radio or satellite
link, or a dial-up modem connection. Each communication line is configured
independently with its own
baud rate, poll period, timeout, etc.
From a given node, BSAP client/server communication (transferring array or list data) is
only possible to its Master node, any connected slave nodes, and any siblings (nodes on
the same level which share the same master). If communication is required to any node
not in these categories, it must be routed up using client / server function blocks
(Master/Slave modules in Network 3000) at each individual level of the network, until it
reaches either the Network Master, or a Master which is a sibling to another Master. The
message can then be routed down, again, in the same way, until it reaches the desired
node.
50 BSAP Addressing and Networks
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
Within OpenBSI's NetView, the ControlWave can be added to an existing BSAP network in
the same way as you would add any other controller.
Adding A ControlWave to an OpenBSI BSAP Network in the
RTU Wizard
Simply choose the icon for the network to which you want to add the ControlWave, rightclick on the icon, and choose
In the RTU Wizard, be sure you specify the appropriate node type (such as ControlWave,
CWave_LP or CWave_Micro), and also specify the full path of the ControlWave project.
AddRTU to call up the RTU Wizard.
In addition, you can optionally specify the startup web page for the controller. Because this
is a BSAP network, the startup web page must reside on the PC, and you must specify its
full path. Web pages residing within the ControlWave are not accessible within a BSAP
network so the
You will also need to specify a local address for the ControlWave. The local address must
match whatever local address you defined for the ControlWave on the 'Soft Switches' page
of the Flash Configuration Utility. For information on configuring soft switches, see the
discussion of the Flash Configuration Utility in Chapter 5 of the OpenBSI Utilities Manual
(part D301414X012).
Access startup page from RTU check box is NOT available.
Full details on creating a BSAP network, and adding controllers to OpenBSI networks are
included in Chapter 6 of the OpenBSI Utilities Manual (part D301414X012).
BSAP Addressing and Networks 51
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
Tuning the BSAP Network
Instructions on tuning a BSAP network and troubleshooting communication problems are
included in Chapter 14 of the OpenBSI Utilities Manual (part D301414X012). Additional
information on BSAP networks is included in the Network 3000 Communications Configuration Guide (part D301413X012). For developers requiring information on the
internal structure of BSAP networks, please the Network 3000 Communications Application Programmer’s Reference, (part D301401X012).
Setting the BSAP Local Address and EBSAP Group
The BSAP local address, and the expanded BSAP (EBSAP) group number are set on the ‘Soft
Switches’ page of the Flash Configuration Utility.
BSAP Local Address
Every controller in a BSAP network has a “Local address” that ranges from 1 to 127, which
is entered on the ‘Soft Switches’ page of the Flash Configuration Utility. This address
identifies the controller’s location within its level in the network, and is used for network
routing. The local address entered here must match the local address specified for the RTU
(controller) in OpenBSI’s NetView program.
EBSAP Group Number
If your network uses expanded BSAP, in which more than 127 nodes exist on the same
BSAP network level, each controller is assigned to a particular expanded node addressing
group. The group is identified by an
Switches’ page of the Flash Configuration Utility. For more information on EBSAP, please
refer to the Expanded BSAP (EBSAP) Communications section of this manual. If you are NOT
using Expanded node addressing (EBSAP) you MUST leave the
“EBSAP Group” number, which is entered on the ‘Soft
“EBSAP Group” at 0.
For both the local address and EBSAP group number, changes will not take affect until after
you have clicked
52 BSAP Addressing and Networks
[Save to Rtu], and powered the controller off and then and back on.
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
What is Client/Server Communication?
If desired, you can configure CLIENT and SERVER function blocks to transfer data arrays or
lists from one controller to another.
A CLIENT function block requests array or list data from a SERVER function block in another
controller. The SERVER function block processes the request, and sends the array or list
data to the CLIENT.
Instructions for configuring the CLIENT / SERVER function blocks are included in the
ControlWave Designer online help.
This sub-section summarizes various aspects of BSAP. For a full explanation of BSAP
messages, please see the Network 3000 Communications Application Programmer’s Reference (part D301401X012).
Polling:
The polling function of the BSAP Master is cyclic. It is repeated at the rate specified by the
_P1_POLL_PER system variable, in seconds. During a polling cycle all slave nodes
belonging to the polling master are polled. If, for any reason, a complete pass cannot be
completed within this period the next polling cycle is started immediately after the end of
the current polling cycle. Only the nodes that are active, see _SLAVE_POLL_DIS, are
considered for polling.
Poll and Response Sequence:
The BSAP Master sends the poll message to its slaves. When a slave node receives a poll
message it takes one of the following actions:
1.
2.
3.
It transmits an alarm message if one is waiting and the poll message has a flag that
indicates that the Master will accept the alarm messages (polling for alarm), or
It transmits a data response message if one is waiting, or
It transmits an Acknowledgement with No Data to send protocol message.
Data Message Routing:
Local Messages: The local messages are the ones generated by an application, such as a
BSAP Client/Server function block, in this node. Such messages arrive at the appropriate
BSAP Master after the application sends these messages and the message routing has
been completed. BSAP Master does not have to track such messages, as response
messages are destined for local applications. Applications are responsible for performing
the application response timeout.
Global Messages: The BSAP Slave may receive global messages that are addressed to the
slaves in the network below this node. The message recipient performs the routing on
these global messages and selects the appropriate Master for forwarding them to the
BSAP Addressing and Networks 53
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
target node. The BSAP Master transmits these messages to the target nodes. A tracking
structure is also created for each global message. If a response is not received to a tracked
global message within the passthrough timeout (_MSG_TIMEOUT) the tracking structure
is freed and any future response to that particular global message is discarded.
Response Messages:
The BSAP Master receives messages in response to the poll messages. It performs routing
on these messages and they are forwarded to the proper destinations, local applications,
BSAP Slave/Pseudo slaves, or Ethernet slaves.
Network Slave Port:
A ControlWave/ControlWaveLP port can have multiple slave ports which can be BSAP or IP.
Among all of these ports, however, only one can serve as the
The Network Slave Port is the default route for upward traffic to global address (GLAD) 0
(Network Master).
To specify which port will serve as the Network Slave Port, the user must set the
_SLAVE_PORT system variable to the port number.
Network Slave Port.
TS/NRT Message:
Any Slave port can receive and process the Time Synchronization/Node Routing Table
(TS/NRT) message. Separate system variables are available per serial port (_Px_TS_DIS and
_Px_NRT_DIS) to allow each Slave to selectively determine whether it can or cannot
process the Time Synch and/or NRT portion of the TS/NRT message. A flag is also available
which causes the BSAP Slave to generate a request to its master for a TS/NRT message. All
TS/NRT messages are accepted that are different than the current TS/NRT in this node. As
the name implies the TS/NRT message is made up of two distinct entities:
1. TIME SYNCH: This part of the TS/NRT includes the complete system time and calendar
2. NRT: Node Routing Table - This part of the TS/NRT message is the heart of the BSAP
The BSAP Master sends a TS/NRT to its slave nodes as a result of the following:
information. When the Time Synch is processed the system time/calendar information
is updated.
message routing mechanism.
A new valid NRT has been received at any of the slave ports
A slave node explicitly requests a TS/NRT message.
After completion of a global download of one of its slaves. (Sends only to the node
which received the download).
54 BSAP Addressing and Networks
BSAP Master Port
Starting with release CWP02.0, the ControlWave-series of controllers support the BSAP
Master mode of communication. The following functionality is possible:
The ControlWave-series controller acts as the BSAP Master node to any ControlWave
or Network 3000 controller with a BSAP Slave Port or Pseudo Slave port. This makes it
possible for this node to be placed anywhere in the BSAP network, i.e. as a Network
master or at any other level in the BSAP network.
Multiple master ports are possible in the same controller.
Each Master port can be assigned any consecutive numbered slaves from 1 to 127; e.g.
slaves 1-10 to Master port 5, slaves 11-25 to Master port 2, and slaves 26-127 to
Master port 4.
It is possible to have gaps in the assigned slave numbers, e.g. slaves 1-5 to Master port
4, slaves 14-17 to Master port 5, and slaves 50-55 to Master port 2.
A particular slave number cannot be assigned to more than one Master port, e.g.
slaves 1-5 to Master port 2 and slaves 5-12 to Master port 4 would not work, because
slave 5 is assigned to two different ports.
Note: This slightly differs from Network 3000 configuration rules.
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
Local download to the ControlWave-series controller is NOT supported.
Global download of any Network 3000 slave controllers at any layer below a Master
port is supported.
BSAP Client/Server (similar to ACCOL II Peer-Peer) communication is supported.
All BSAP global communication, including the pass through of report by exception
(RBE) messages from the network below is supported.
Supports all BSAP Alarm message communication from the network below. Alarm
handling is as follows:
a. All global alarm report messages are logged with the local alarm system.
b. This ControlWave controller alarm system will forward these global alarm
messages, interspersed with the local alarm reports, to all active alarm
destinations.
c. If, at any time, the local alarm report pool becomes full the Master port will
stop polling for alarms from the slave nodes.
d. Alarm polling will be resumed as soon as space is freed up in the local alarm
report pool. Thus the loss of any alarm report from the slaves is
prevented.
e. The global alarm reports carry the global network address of the reporting
controller.
f.
The ControlWave controller routes the global alarm acknowledgements,
like any other global message, to the designated RTU.
BSAP Master Port 55
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
Configuring A BSAP Master Port
BSAP Master Port configuration is divided into two parts:
Configuring Flash Parameters
Configuring System Variables for the Port
Note:
This section assumes your controller is either already part of a BSAP network (if you are
using NetView), or that you established local communications using LocalView, and you
have configured a local address, etc.
Configuring Flash Parameters
Step 1. In the Flash Configuration Utility, click on the 'Ports' tab, and choose the
ControlWave port you want to configure (COM1, COM2, etc.) Then select 'BSAP
Master' as the
"Mode".
Step 2. Enter the baud rate for the communication line in the "Baud Rate" field. 1200,
2400, 4800, 9600, 19200, 38400, 57600, or 115200 are all valid. The default is
9600.
Step 3. Define the range of BSAP local addresses used by the slave nodes of this BSAP
master port. Enter the lower and upper ends of this range in the
"Low Slave" and
"High Slave" fields. These numbers must be integers in the range 1 to 127.
Step 4. Click on the [Save to Rtu] button, and respond to any sign-on prompts.
56 BSAP Master Port
Step 5. At this point, you can optionally make additional changes on other pages of the
First, check the box
Next, click on the
Flash Configuration Utility. When you are finished, turn off the ControlWave,
then turn it back on, for the new port definition to come into effect.
Configuring System Variables
Within ControlWave Designer, start the System Variable Wizard by clicking on View
System Variable Wizard.
When the wizard has successfully established communications with ControlWave
Designer, and your project is open, do the following:
1. Choose the 'Port Detail' tab.
2. Select the "Enable" box for the port which will serve as the BSAP Master.
3. Click [Configuration].
of the port you want
to configure.
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
“Configuration”
button for that port.
4. In the Configuration page, select only the items shown in the following figure
and enter appropriate values. A discussion of the various items appears below:
BSAP Master Port 57
ControlWave Designer Programmer’s Handbook
Poll Time
(_Px_POLL_PER)
This is the frequency (in seconds) at which the Master
Write Delay
(_Px_WRITE_DEL)
This specifies a delay (in milliseconds) which must elapse
The items checked
Once you select an
field.
D301426X012
January 2022
item, you can
specify its value in
the corresponding
are used with BSAP
Master ports.
58 BSAP Master Port
port will attempt to poll all of its slave nodes. For
example, if the poll time is set to 30 seconds, then
every 30 seconds, the Master port will attempt to poll
all of its slaves nodes for data. If the Master port cannot
complete a complete polling cycle within the specified
poll time, it will start the new polling cycle as soon as it
completes the current cycle.
before this master port attempts to communicate with its
ControlWave Designer Programmer’s Handbook
slave. This is useful if the slave hardware has a slower CPU-type
Write (CTS)
Timeout
(_Px_WRITE_T
MO)
Since the Clear-To-Send (CTS) must be received in order to
Retries
(_Px_RETRIES)
This is the number of data link level retries if a transmission
Data Link
Timeout
(_Px_TIMEOUT)
This is the data link level response timeout. Message
Idle Polling
(_Px_IDLE_POLL
)
RESERVED FOR FUTURE USE.
Passthru Timeout
(_MSG_TIMEOUT)
All messages passing through the controller are tracked. This timeout
Master - Dead Slaves
(_SLAVE_DEAD)
This references an array of 127 BOOL variables. Array elements
Don't Poll Array
(_SLAVE_POLL_DIS)
This references an array of 127 BOOL variables. Array elements
D301426X012
January 2022
(e.g. 186) and requires more turn-around time to respond to
messages from its master.
transmit, this timeout (in milliseconds) is added to the
expected message transmission time at the effective Baud Rate
for this port. The message must be completely transmitted
before the resulting timeout. The default is dynamic and
calculated based on the current baud rate.
fails. The default is 0, i.e. only 1 transmission attempt, and no
retries.
transmission must start before expiration of this timeout.
Click on [OK] when finished.
Optionally, you can then click on the [Information] button in the Port Detail page, to
specify variables used to store communication port statistics. (This page is not shown
here).
Once you have configured all Port Detail parameters, you need to set global port
parameters. Click on the 'Port - Globals' tab. Select only the items shown on the next page,
and enter appropriate values. A discussion of the various items follows:
applies to each passthrough message. If the value is <=0, the default
timeout of 30000 milliseconds (30 seconds) is assumed.
correspond to slave nodes of this Master Port. If a slave node is not
responding to poll messages from the Master Port, its corresponding
array element is set by the system to TRUE, and the node is declared
'dead'. This array is to report status.
correspond to slave nodes of this Master Port. Any element set to
TRUE indicates that the corresponding slave node should NOT be
polled by the Master Port. The default is FALSE. The user can turn off
polling for a particular node by setting its corresponding array
element to TRUE.
BSAP Master Port 59
ControlWave Designer Programmer’s Handbook
Select these items
D301426X012
January 2022
when you configure
a BSAP Master Port.
60 BSAP Master Port
BSAP Slave Port
Configuring a BSAP Slave Port
BSAP Slave Port configuration is divided up into two parts:
Configuring Flash Parameters
Configuring System Variables for the Port
Configuring Flash Parameters
Step 1. In the Flash Configuration Utility, click on the 'Ports' tab, and choose the
ControlWave serial port you want to configure (COM1, COM2, etc.) Then select
'BSAP Slave' as the
Enter the baud rate for the communication line in the "Baud Rate" field. 1200,
2400, 4800, 9600, 19200, 38400, 57600, or 115200 are all valid. The default is
9600.
"Mode".
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
Step2. Click on the [Save to Rtu] button, and respond to the sign-on prompts.
Step 3. Turn off the ControlWave, then turn it back on for the new port definition to come
into effect.
BSAP Slave Port 61
ControlWave Designer Programmer’s Handbook
First, check the box
Next, click on the
D301426X012
January 2022
Configuring System Variables
Within ControlWave Designer, start the System Variable Wizard by clicking on View
System Variable Wizard.
When the wizard has successfully established communications with ControlWave
Designer, and your project is open, do the following:
1. Choose the Port Detail tab.
2. Select the "Enable" box for the port which will serve as the BSAP Slave.
3. Click [Configuration].
of the port you want
to configure.
“Configuration”
button for that port.
62 BSAP Slave Port
ControlWave Designer Programmer’s Handbook
Poll Time
This defines a period of time (in seconds) during which this Slave node
Check these
Once you select an item, you can
D301426X012
January 2022
items for a BSAP
Slave Port.
specify its value in the corresponding
field.
4. In the Configuration page, select only the items shown in the figure above and enter
appropriate values. A discussion of the various items appears, below:
(_Px_POLL_PER)
BSAP Slave Port 63
expects to receive a poll message from its Master. If a poll message
ControlWave Designer Programmer’s Handbook
does not arrive within this period of time, the Master is assumed to
Write Delay
This specifies a delay (in milliseconds) which must elapse, before this
Write (CTS)
Timeout
Since the Clear-To-Send (CTS) must be received in order to transmit,
Time Sync Disable
When set to TRUE, any time synchronization (TimeSync) message
Time Sync Needed
When set to TRUE, the Slave sends a request to the Master Port for a
Node Routing
Table Disable
When set to TRUE, any Node Routing Table (NRT) message arriving at
Alarm Disable
This allows you to disable alarm transmissions through this port.
D301426X012
January 2022
have failed, and all messages queued to go up to the Master are
discarded. If you are experiencing discards for transmission on this
slave port (as reported by a nonzero value on the _Px_DISC_TRANS
statistic system variable), it is recommended that you increase this
value until no further discards occur. The default value of 5 should
generally be increased to a larger number, e.g. 20, especially, if you
are experiencing this problem.
(_Px_WRITE_DEL)
(_Px_WRITE_TMO)
(_Px_TS_DIS)
(_Px_TS_FORCE)
(_Px_NRT_DIS)
Slave port attempts to communicate with its Master. This is useful if
the Master hardware has a slower CPU-type (e.g. 186) and requires
more turn-around time to accept responses from the Slave.
this timeout (in milliseconds) is added to the expected message
transmission time at the effective Baud Rate for this port. The
message must be completely transmitted before the resulting
timeout. The default is dynamic and calculated based on the current
baud rate.
arriving at this slave port will be ignored. The default is FALSE which
means TimeSync messages received at this port will be accepted and
processed.
TimeSync/Node Routing Table (TS/NRT) message. Once the TS/NRT is
received, this is cleared.
this slave port will be ignored. The default is FALSE which means NRT
messages received at this port will be accepted and processed.
(_Px_ALM_DIS)
Click [OK] when finished.
64 BSAP Slave Port
Identifying the Network Slave Port:
Although you may define multiple Slave Ports in your controller, only one of these ports
can be the
Slave Ports and IP ports, that is defined as the upward route for message traffic to the
Network Master. To identify this Slave Port as the Network Slave Port, click on the 'Port Globals' tab. Select only the item shown in the figure, below, and enter the port number of
the Network Slave Port.
Valid entries for the Network Slave Port are:
Network Slave Port. The Network Slave Port is the only port, among all the serial
1 = COM1
2 = COM2
3 = COM3
4 = COM4
5 = COM5
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
6 = COM6
7 = COM7
8 = COM8
9 = COM9
10 = COM10
11 = COM11
12 = currently unused
13 = IP (covers Ethernet as well as PPP serial ports)
14 = IP (covers Ethernet as well as PPP serial ports)
15 = IP (covers Ethernet as well as PPP serial ports)
BSAP Slave Port 65
ControlWave Designer Programmer’s Handbook
There can only be one
D301426X012
January 2022
Network Slave Port. Here
we are choosing COM2
as the Network Slave
Port.
66 BSAP Slave Port
ControlWave Designer Programmer’s Handbook
D301426X012
Communication Ports
Communication Ports
ControlWave Process Automation Controller, ControlWave Redundant Controller
Both the ControlWave Process Automation Controller, and the ControlWave Redundant
Controller have from 2 to 4 serial communication ports, and from 1 to 3 Ethernet
communication ports.(NOTE: The Redundant Version actually has twice the number of
physical ports, but the second set serve in standby mode, unless there is a failure of the
primary unit.) These ControlWave units have COM1 and COM2 (both serial). Depending
upon the options you purchase, you may have up to two additional serial ports (COM3 and
COM4) and from one to three Ethernet Ports (Ethernet Port 1, Ethernet Port 2 and Ethernet
Port 3).
January 2022
ControlWave Process Automation Controller
(ControlWave Redundant Controller Port locations are similar)
ControlWave MICRO Process Automation Controller
The ControlWave MICRO Process Automation Controller CPU Module (CPU board) in
Chassis Slot 2 may be ordered with different combinations of communication ports.
One option allows for three serial ports on the CPU board where COM1 and COM2 are
RS-232 and COM3 is RS485. Another option allows for the same three serial ports, with
the addition of a single Ethernet port. A third available option for the CPU board is two
serial ports, where COM1 is RS-232 and COM3 is RS-485 and two Ethernet ports; with
this option, there is no COM2.
If, instead of installing an I/O Module (board) in Chassis Slot 3, you install an Expansion
Communication Module (ECOM board) in Chassis Slot 3, 4 additional serial ports are
available. COM4 is RS-232, COM5 is RS-485, COM6 is for radio communication, and
COM7 is for a modem. (OPTIONAL)
Communication Ports 67
ControlWave Designer Programmer’s Handbook
Chassis Slot
Numbers
Ethernet Port
Comm Port 1 (RS-232)
Comm Port 2 (RS-232)
Comm Port 3 (RS-485)
Comm Port 5 (RS-485)
Comm Port 4 (RS-232)
Comm Port 6 (Radio)
Comm Port 7 (Modem)
Comm Port 8 (RS-232)
Comm Port 9 (RS-485)
Comm Port 11 (Modem)
Comm Port 10 (Radio)
Power Switch
RUN/REMOTE/
LOCAL switch
Status LEDs
PSSM
Module
CPU
Module
I/O Modules
with Bezel
I/O Modules
with Bezel
I/O Modules
with Bezel
1
2
3
4
5
6
7
8
(OPTIONAL)
(OPTIONAL)
(OPTIONAL)
(OPTIONAL)
(OPTIONAL)
(OPTIONAL)
(OPTIONAL)
(OPTIONAL)
(OPTIONAL)
D301426X012
January 2022
If, instead of installing an I/O Module (board) in Chassis Slot 4, you install an Expansion
Communication Module (ECOM board) in Chassis slot 4, another 4 additional serial
ports are available. COM8 is RS-232, COM9 is RS-485, COM10 is for radio
communication, and COM11 is for a modem. (OPTIONAL). NOTE: This board can only be
installed if there is already an Expansion Communication Module (ECOM board) in Chassis
Slot 3; it cannot be installed if there is an I/O module in Chassis Slot 3.
68 Communication Ports
ControlWave MICRO controller with 1 Ethernet port
ControlWave Designer Programmer’s Handbook
Chassis Slot
Numbers
Ethernet Port 1
Ethernet Port 2
Comm Port 1 (RS-232)
Comm Port 3 (RS-485)
Comm Port 5 (RS-485)
Comm Port 4 (RS-232)
Comm Port 6 (Radio)
Comm Port 7 (Modem)
Comm Port 8 (RS-232)
Comm Port 9 (RS-485)
Comm Port 11 (Modem)
Comm Port 10 (Radio)
Power Switch
RUN/REMOTE/
LOCAL switch
Status LEDs
1
2
3
4
5
6
7
8
(OPTIONAL)
(OPTIONAL)
(OPTIONAL)
(OPTIONAL)
(OPTIONAL)
(OPTIONAL)
(OPTIONAL)
(OPTIONAL)
D301426X012
January 2022
ControlWave MICRO controller with 2 Ethernet ports
ControlWave MICRO I/O Expansion Rack
ControlWave Electronic Flow Meter (EFM)
ControlWave Gas Flow Computer Classic (GFC-CL)
The number and location of communication ports on the ControlWave MICRO I/O
Expansion Rack matches those of the ControlWave MICRO.
Communication port options for the EFM are identical to those of the ControlWave
MICRO described on the previous page. The main difference is that EFM units may
have fewer chassis slots.
The ControlWave Gas Flow Computer Classic comes standard with three serial ports
on the CPU board. COM1 is RS-232. COM2 can be RS-232 or RS-485, and COM3 is
RS485. NOTE: COM1 has different connector types for you to choose from, depending
on usage.
The GFC-CL does NOT have any Ethernet ports, but serial IP can be done via PPP.
Communication Ports 69
ControlWave Designer Programmer’s Handbook
W28
W9
W12
W10
W11
W8
W16
1
1
1
1
1
1
1
1
1
J1
P2
J15
J12
J11
J6
J10
J7
J8
J19
COM1
COM1
COM3
W13
1
W15
1
W4W5W3
W7
1
1
1
1
J18
1
2
9
10
1
2
9
10
W20
W19
W24
111
W22
1
W23
1
J16
1
1
W21
1
S1 = 3V, 1200mA-hr Lithium Coin Cell Battery
W2
CR35
CR40
CR39
CR38
CR37
CR36
1A
F1
R164
LCD Contrast
1
J9
RJ-11
S1
1
TB1
TB3
TB2
COM2
1
COM1
Power
Radio
Daughter Bd.
Modem
Connectors
(J7, J8, J10, J11)
Modem
Phone
Intf.
J15
PLD JTAG
Header
Emulator
Connector
Factory use
Factory
Use
PLD JTAG
Header
J16 = MSP430
JTAG Header
P2 = LCD Display Intf. (On Reverse Side)
W27
W26
1
1
12 3 4
ON
ON
12 3 4
5
67 8
SW1
SW2
W26/W27
Factory
Use
Recovery
DIP
Switch
General
Purpose
DIP
Switch
COM3
RS-485
Config.
W2: Enable/Disable Pwr. On LED: (1 to 2 = Enable, 2 to 3 = Disable)
W3: Pwr. Supply Shutdown Voltage: (1 to 2 = 12V, 2 to 3 = 6V)
W4: Pwr. Supply Shutdown Voltage: (1 to 2 = 12V, 2 to 3 = 6V)
W5: Pwr. Fail Trip Point Hysterisis: (1 to 2 = 12V, 2 to 3 = 6V)
W7: Pwr. Fail Trip Point: (1 to 2 = 12V, 2 to 3 = 6V)
W8: Radio/Modem Configure: (1 to 2 = Radio, 2 to 3 = Modem)
W9: Mds/FreeWave Selection: (IN = MDS, OUT = FreeWave Radio, Modem or RS-232)
W10: Radio/Modem DTR Power Control: (OUT = Remove Pwr., IN = Power Always On)
W11: Radio/Modem Installed: (IN= Modem, OUT = Radio or RS-232)
W12: COM2 Config.: (IN = RS-485, OUT = RS-232, Radio or Modem)
W13: Keypad/2 Pushbutton: (1 to 2 = 5x5 Keypad, 2 to 3 = 2 Pushbutton)
W15: Enable/Disable SPI Receive Termination: (In = Enable, Out = Disable)
W16: Enable/Disable Status LEDs: (In = Enable, Out = Disable)
W19: COM2 Port Config.: (1 to 2 = Modem or RS-485, 2 to 3 = RS-232 or Radio)
W20: COM2 CTS Control: (1 to 2 = CTS Source from Device, 2 to 3 = RTS to CTS Loopback)
W21: COM2 Port Config.: (1 to 2 = RS-232 or Radio, 2 to 3 = RS-485)
W22 through W24: Same as W21
W25: Enable/Disable Comm. Status LEDs: (In = Enable, Out = Disable)
W28: Battery Back-up Enable/Disable: (In = Enable, Out = Disable)
CR35 - CR40: Status LEDs 1 through 6
CR22: DTR
Active
CR21:
DCD ON
CR42: Idle LED
CR13: Power Good
CR41: Watchdog LED
J5
I/O Bus Connector
ON
1
2
34 5
67
8
J13
J21
SW3
Isolated
RS-485
Daughter Bd.
ON
1
2
34 5 6
7
8
J2
J14
W25
SW4
Keypad
COM2
RS-485
Config.
2-Key
Pushbutton
CR43: TX Comm. 3
CR44: RX Comm. 3
CR47: TX Comm. 2
CR45: TX Comm. 1
CR48: RX Comm. 2
CR46: RX Comm. 1
COM1 has a choice of different connectors
(either of these, or the Local Port, below).
COM2
COM1 connector when using
LOCAL PORT. (Local port is
wired to TB1.) NOTE: Only one
of the COM1 connectors can be
used at any one time.)
COM3
D301426X012
January 2022
ControlWave GFC-CL
70 Communication Ports
COM1 connector when using
LOCAL PORT. (Local port is
wired to this connector.) NOTE:
Only one of the COM1 connectors
can be used at any one time.)
COM1
COM2
COM3
ControlWave Gas Flow Computer (GFC)
The ControlWave Gas Flow Computer comes standard with three serial ports on the
CPU board. COM1 and COM2 support RS-232 and COM3 can support either RS-232 or
RS485.
on usage.
Some models of the ControlWave GFC support an Ethernet port; for those that do not,
serial IP can be done via PPP using the serial port(s).
Note: COM1 has different connector types for you to choose from, depending
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
ControlWave GFC
Communication Ports 71
ControlWave Designer Programmer’s Handbook
COM1
COM2
COM3
Ethernet
D301426X012
January 2022
ControlWave Express
The ControlWave Express comes standard with three serial ports on the CPU board.
COM1 and COM2 support RS-232 and COM3 can support either RS-232 or RS485.
Some models of the ControlWave Express support an Ethernet port; for those that do
not, serial IP can be done via PPP using the serial port(s).
ControlWave Express
72 Communication Ports
ControlWave Express PAC
COM1
COM2
COM3
Ethernet
Port
The ControlWave Express PAC comes standard with three serial ports on the CPU
board. COM1 and COM2 support RS-232 and COM3 can support either RS-232 or
RS485.
Some models of the ControlWave Express PAC support an Ethernet port; for those that
do not, serial IP can be done via PPP using the serial port(s).
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
ControlWave Express PAC
Communication Ports 73
ControlWave Designer Programmer’s Handbook
RTD Input
RTD+ (Excitation)
RTD+ (Sense)
RTD (Return)
_
RTD
DI1
TR-
TR+
RXD
RXD
RTS
CTS
DTR
DCD
TXD
TXD
G
G
DI2
D01
P1
P2
G
G
+V
+V
AI2
AI3
AO
+V
+V
G
G
G
AI1
POWE R
NETWORK
LO CA L
RS4 85
+
+
+
_
_
+V
G
G
G
Ex ter n al
Signa l
Generator
400m A
Max . Lo ad
D02
D03
D04
+
AI#2
(Exampl e)
Simplified
Internally
Powered
1-5 V
Analog Input
Wiring Diagram
AI#1 (E xa mple)
Externa lly
Powered
1-5 V
Analog Input
Wiring Diagram
DI#1 (E xa mple)
Dry Contact
Discrete I nput
Wiring Diagram
DO#1 (E xa mple)
Ext. Powered
Discrete Output
Wiring Diagram
HSC# 1 (Ex am ple)
Internally Sourced
High Speed Counter
Wiring Diagram
AO (E xa mpl es)
4-2 0m A
Analog Outp ut
Wiring Diagrams
Ex t.
Powered
Intern ally
Pow ered
J3
J2
J4
J5
J6
or
RS -2 32
COM 2
to/from
Model
3 808
10 = RT S
11 = C TS
12 = DT R
13 = DC D
To V-
8
14
J2
RXD
RTS
CTS
DTR
DCD
TXD
G
NETWORK
14 = G ND
8 = T XD
To R
9 = R XD
To T
}
RS -4 85
COM 3
to/from
Model
3 808
}
To +
3 = T R+
To -
2 = T R-
TR-
TR+
G
RS4 85
J2
1
COM2
COM1
COM3
Communication Ports
D301426X012
January 2022
ControlWave Explosion-Proof Flow Computer (XFC)
The ControlWave Explosion-Proof Flow Computer’s communication ports are wired inside
the cover with wires brought in through a conduit; there are no external connectors due to
the explosion-proof rating.
74 Communication Ports
ControlWave XFC
COM6
(formerly BIP_1)
(formerly BIP2)
COM1
(formerly PORT_A)
RS-232
COM2
(formerly PORT_B)
RS-485/Modem
RS232 / RS485
COM3
(formerly PORT_C)
RS232 / RS485
COM4
(formerly PORT_D)
RS232 / RS485
COM5
RS232 / RS485
ControlWave CW_10
The ControlWave_10 (CW_10) is an RTU 3310 chassis and I/O upgraded with new
ControlWave CPU and multi-function interface boards (MFIB).
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
CW_10
Communication Ports 75
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
ControlWave CW_30
The ControlWave_30 (CW_30) is a DPC 3330 chassis and I/O upgraded with new
ControlWave CPU and communication boards.
CW_30
76 Communication Ports
I/O M ODU LE
I/O M ODU LE
I/O M ODU LE
I/O M ODU LE
I/O M ODU LE
I/O M ODU LE
I/O M ODU LE
I/O M ODU LE
I/O M ODU LE
COM9
COM10
COM3
COM4
COM5
COM6
Ethernet
Port 1
Ethernet
Port 2
NOTE: There is
no COM1, COM2
or COM7, COM8.
ControlWave CW_35
The ControlWave_35 (CW_35) is a DPC 3335 chassis and I/O upgraded with new
ControlWave CPU and communication boards.
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
CW_35
Communication Ports 77
ControlWave Designer Programmer’s Handbook
I/O M ODU LE
I/O M ODU LE
I/O M ODU LE
I/O M ODU LE
I/O M ODU LE
I/O M ODU LE
I/O M ODU LE
I/O M ODU LE
I/O M ODU LE
I/O M ODU LE
COM5
COM6
NOTE: There is
no COM1, COM2
COM3 or COM4.
Ethernet
Port 1
D301426X012
January 2022
ControlWave CW_31
The ControlWave_31 (CW_31) is an RIO 3331 Remote I/O Rack chassis and I/O upgraded
with new ControlWave communication boards.
CW_31
78 Communication Ports
ControlWave I/O Expansion Rack
CO M 2 (J2 )
(RS-232)
CO M 3 (J1 )
(RS485)
CO M 4 (J2 )
(RS-485)
Ethernet
Port 1 (J3)
CO M 6 (J4 )
(RS-232)
CO M 5 (J3 )
(RS-232)
The ControlWave I/O Expansion Rack is a chassis containing additional I/O boards for a
ControlWave host. It is also used as the shared I/O in certain redundancy configurations.
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
ControlWave I/O Expansion Rack
Methods for Communicating with ControlWave-series Controllers.
There are several ways to communicate with the ControlWave-series controllers including:
Bristol Synchronous / Asynchronous Protocol (BSAP) - The ControlWave can be part of
an OpenBSI BSAP network, and beginning with firmware release CWP02, it can serve
as a BSAP Master node.
Internet Protocol (IP) - The ControlWave can be connected to an IP network of
ControlWave or Network 3000 nodes. This can utilize Ethernet or serial Point-to-Point
Protocol (PPP). Other IP options are available as well, e.g. Open Modbus. NOTE: Not all
units include Ethernet ports.
ControlWave Designer Protocol - The ControlWave has its own native protocol for
communication with ControlWave Designer software. ControlWave Designer protocol
can be transmitted via serial links, TCP/IP or OpenBSI.
Communication Ports 79
ControlWave Designer Programmer’s Handbook
Protocol
Reasons to Use
Which software is used?
Bristol
Collect data from ControlWave using OpenBSI.
OpenBSI Utilities suite (NetView,
Internet Protocol
Collect data from ControlWave using OpenBSI.
OpenBSI Utilities suite (NetView,
ControlWave
Run ControlWave Designer in on-line mode, which
ControlWave Designer
Very Small
Send data via satellite links.
ControlWave Designer, OpenBSI
Allen-Bradley DF1
Exchange data with other Allen-Bradley DF1 devices
ControlWave Designer CUSTOM
DNP3
Industry-standard protocol for SCADA, etc.
ControlWave Designer CUSTOM
CIP
Allen-Bradley protocol.
ControlWave Designer CUSTOM
D301426X012
January 2022
Serial Modbus - This industry standard protocol allows communication between a
ControlWave controller configured for MODBUS, and another MODBUS device.
The table, below, summarizes the major communication options. NOTE: Different units of
the ControlWave series support different numbers of ports.
Synchronous /
Asynchronous
Protocol (BSAP)
(IP)
Designer Protocol
(using either
OpenBSI DLL,
serial DLL or
TCP/IP DLL)
Download the ControlWave project.
View web pages.
Update FLASH parameters and soft switches
NOTE: Peer-to-peer communication with other
ControlWave or Network 3000 controllers requires Client
/ Server function blocks (firmware 02.00 or newer).
Client/Server function blocks are discussed in the
ControlWave Designer on-line help.
Download the ControlWave project.
View web pages.
IP MODBUS communication
NOTE: Peer-to-peer communication with other
ControlWave or Network 3000 controllers requires Client
/ Server function blocks (firmware 02.00 or newer).
Client/Server function blocks are discussed in the
ControlWave Designer on-line help.
function block. Port configured for
DF1 within the Ports page of the
Flash Configuration Utility.
function block. Port configured for
DNP3 within the Ports page of the
Flash Configuration Utility.
This protocol requires 4.40 (or
newer) firmware. It is NOT
supported for ControlWave LP.
ControlWave Designer Programmer’s Handbook
Protocol
Reasons to Use
Which software is used?
function block.
HART
Exchange data with HART devices through HART Interface
ControlWave Designer HART
Foundation
Exchange data with FFbus devices through ControlWave
Fieldbus function block
Serial MODBUS Exchange data with other MODBUS devices (including
another ControlWave configured for MODBUS
communication.)
D301426X012
January 2022
This protocol requires 4.40 (or
newer) firmware. It is NOT
supported for ControlWave LP.
ControlWave Designer CUSTOM
function block. Port configured for
MODBUS within the Ports page of
the Flash Config. Utility.
Fieldbus
Board (HIB) or a serial port – ControlWave Micro / EFM
only.
Foundation Fieldbus Interface
function block
This protocol requires 5.00 (or
newer) firmware.
Field Interface Configurator
software.
This protocol requires 5.10 (or
newer) firmware.
.It is NOT supported for
ControlWave LP.
How do I configure the Ports on the ControlWave?
The Flash Configuration Utility, available in LocalView and NetView, is used to configure
the ports on any ControlWave unit, as well as for setting other parameters such as the
BSAP local address. The Flash Configuration Utility is discussed in detail in Chapter 5 of the
OpenBSI Utilities Manual (document# D5081).
What are the factory default settings for communication
ports?
Factory Defaults for Ethernet Ports
Depending upon the type of ControlWave, there may be up to three Ethernet ports.
Ethernet ports are pre-configured at the factory with initial IP addresses and masks, as
follows:
ETH1 IP Address: 10.0.1.1 IP Mask: 255.255.255.0
ETH2 IP Address: 10.0.2.1 IP Mask: 255.255.255.0
ETH3 IP Address: 10.0.3.1 IP Mask: 255.255.255.0
Because each unit shipping from the factory will have these initially pre-programmed, you
Communication Ports 81
should only use these addresses for ‘bench’ testing and configuration. These addresses
ControlWave Designer Programmer’s Handbook
Name
Baud
Bits Per
Stop
Parity
Protocol
Cable
Notes
Serial
115200
8 1 NONE
Serial IP (PPP)
RS232 null modem
Use IP address
Serial
9600
8 1 NONE
BSAP Slave/
RS232 null modem
Serial
9600
8 1 NONE
BSAP Slave/
Either RS232 null
CHOICE OF
Serial
9600
8 1 NONE
BSAP Slave/
Either RS232 null
CHOICE OF
D301426X012
January 2022
must be changed before putting ControlWave units on an actual network, since an address
conflict would exist as soon as the second ControlWave unit was placed online.
Factory Defaults for Serial Ports
Default configuration for ControlWave Serial ports is included in the table, below. These
default settings are activated any time the default switch is in the OFF position:
The default switch on the ControlWave Process Automation Controller, ControlWave
I/O Expansion Rack and ControlWave XFC is (SW1-3).
The default switch on the ControlWave LP Controller is (SW4-3).
The default switch on the ControlWave MICRO Controller, EFM, GFC, GFC-CL, Express,
Express PAC, ControlWave_10, ControlWave_30, ControlWave_35, and
ControlWave_31 is (SW2-3).
The ControlWave, ControlWave MICRO, ControlWave Redundant Controller, and EFM
initially ship from the factory with serial COM port 1 set to BSAP at 115,200. Once the
default switch is OFF however, a factory default of PPP at 115,200 applies.
More details on the factory default settings of communication ports are included in the
hardware manual.
Factory Defaults for ControlWave, CW Redundant Controller Serial Ports
Port
COM1
Port
COM2
Port
COM3
Port
COM4
Rate
Character
Bits
ControlWave
Designer
ControlWave
Designer
ControlWave
Designer
cable
cable
modem cable OR
RS485 cable
depending upon
how ordered from
factory. Cable
connectors vary
depending upon
type ordered.
modem cable OR
RS485 cable
depending upon
how ordered from
factory.
1.1.1.1.
RS232/RS485
MADE WHEN
ORDERED FROM
FACTORY.
CANNOT BE
CHANGED IN THE
FIELD.
RS232/RS485
MADE WHEN
ORDERED FROM
FACTORY.
CANNOT BE
CHANGED IN
FIELD.
82 Communication Ports
ControlWave Designer Programmer’s Handbook
Name
Baud
Bits Per
Stop
Parity
Protocol
Cable
Notes
Serial
9600
8 1 NONE
Serial IP (PPP)
RS232 null
Use IP address
Serial
9600
8 1 NONE
BSAP Slave/
RS-232 cable
Serial
9600
8 1 NONE
BSAP Slave/
RS485 cable
Serial
9600
8 1 NONE
BSAP Slave/
RS485 cable
Serial
9600
8 1 NONE
BSAP Slave/
RS232 cable
Serial
9600
8 1 NONE
BSAP Slave/
RS232 cable
Name
Baud
Bits Per
Stop
Parity
Protocol
Cable /
Notes
Serial
115200
8 1 NONE
Serial IP (PPP)
RS232 null
Use IP address
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Serial
9600
8 1 NONE
BSAP Slave/
RS232 null
OPTIONAL –
Factory Defaults for ControlWave I/O Expansion Rack Serial Ports
D301426X012
January 2022
Port
COM1
Port
COM2
Port
COM3
Port
COM4
Port
COM5
Port
COM6
Rate
Character
Bits
ControlWave
Designer
ControlWave
Designer
ControlWave
Designer
ControlWave
Designer
ControlWave
Designer
modem cable
1.1.1.1.
Factory Defaults for ControlWave MICRO, ControlWave EFM Serial Ports
See 2.3.3.5 in CIControlWave
MICRO for radio
installation steps.
Port
COM7
Port
COM8
Port
COM9
Port
COM10
Communication Ports 85
ControlWave
Designer
ControlWave
Designer
ControlWave
Designer
ControlWave
Designer
connector for
connecting to
56K PSTN
modem
modem cable
coaxial RF
cable to
connect MDS /
FreeWave®
requires ECOM
Board in chassis slot
3.
requires ECOM
Board in chassis slot
4.
requires ECOM
Board in chassis slot
4. Configured by
switch SW1 on
ECOM board
requires ECOM
Board in chassis slot
4.
ControlWave Designer Programmer’s Handbook
Name
Baud
Bits Per
Stop
Parity
Protocol
Cable /
Notes
spread
See 2.3.3.5 in CI-
Serial
115200
8 1 NONE
BSAP Slave/
RJ11
OPTIONAL –
Name
Baud
Bits Per
Stop
Parity
Protocol
Cable /
Notes
Serial
115200
8 1 NONE
BSAP Slave /
RS232 null
Can also serve as
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Can serve as either
Name
Baud
Bits Per
Stop
Parity
Protocol
Cable /
Notes
Serial
115200
8 1 NONE
BSAP Slave /
RS232 null
Can also serve as
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
This port supports
D301426X012
January 2022
Port
COM11
Rate
Character
Bits
ControlWave
Designer
Interface
spectrum
modem
(radio).
connector for
connecting to
56K PSTN
modem
ControlWave
MICRO for radio
installation steps.
requires ECOM
Board in chassis slot
4.
Factory Defaults for ControlWave Gas Flow Computer Classic (GFC-CL) Serial Ports
Port
COM1
Port
COM2
Serial
Port
COM3
Rate
9600 8 1 NONE BSAP Slave/
Character
Bits
ControlWave
Designer
ControlWave
Designer
ControlWave
Designer
Interface
modem cable
modem cable
or RS485 cable
RS485 cable Configured via CPU
Local Port. Different
connectors are
available depending
on usage.
RS232 or RS485. If
using RS485, switch
SW4 used for
configuration. This
port supports radio
/ modem option.
switch SW3.
Factory Defaults for ControlWave Gas Flow Computer (GFC) / ControlWave Express /
ControlWave Express PAC Serial Ports
Rate
Port
COM1
Port
COM2
86 Communication Ports
Character
Bits
ControlWave
Designer
ControlWave
Designer
Interface
modem cable
modem cable
Local Port. Different
connectors are
available depending
on usage.
radio / modem
option.
ControlWave Designer Programmer’s Handbook
Name
Baud
Bits Per
Stop
Parity
Protocol
Cable /
Notes
Serial
9600
8 1 NONE
BSAP Slave/
RS232 null
Can serve as either
Name
Baud
Bits Per
Stop
Parity
Protocol
Cable /
Notes
Serial
115200
8 1 NONE
BSAP Slave /
RS232 null
Local Port
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Network Port
Name
Baud
Bits Per
Stop
Parity
Protocol
Cable /
Notes
Serial
115200
8 1 NONE
BSAP Slave /
RS232 null
Configured by
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Configured by
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Configured by
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Configured by
D301426X012
January 2022
Rate
Port
COM3
Character
Bits
ControlWave
Designer
Interface
modem cable
or RS485 cable
Factory Defaults for ControlWave Gas Flow Computer (XFC) Serial Ports
Port
COM1
Port
COM2
Serial
Port
COM3
Rate
9600 8 1 NONE BSAP Master/
Character
Bits
ControlWave
Designer
ControlWave
Designer
ControlWave
Designer
Interface
modem cable
modem cable
RS485 cable Configured as BSAP
RS232 or RS485. If
using RS485,
configured via CPU
switch SW3.
Master for
communication
with 3808 MVT
Transmitter.
Factory Defaults for ControlWave_10 (CW_10) Serial Ports
Port
COM1
Port
COM2
Port
COM3
Rate
Character
Bits
ControlWave
Designer
ControlWave
Designer
ControlWave
Designer
Interface
modem cable
modem cable
or RS485
modem cable
or RS485
jumper W4 on
CMFIB. On original
RTU 3310 known as
Port A.
jumpers W5 and W7
and switch SW2 on
CMFIB. On original
RTU 3310 known as
Port B.
jumpers W8
through W14 and
switch SW3 on
CMFIB. On original
RTU 3310 known as
Port C.
Port
Communication Ports 87
ControlWave
modem cable
jumpers W15
ControlWave Designer Programmer’s Handbook
Name
Baud
Bits Per
Stop
Parity
Protocol
Cable /
Notes
COM4
Designer
or RS485
through W21 and
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Configured by
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Configured by
Name
Baud
Bits Per
Stop
Parity
Protocol
Cable /
Notes
Serial
115200
8 1 NONE
BSAP Slave /
RS232 null
Port 1 on the first
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Port 2 on the first
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Port 3 on the second
D301426X012
January 2022
Rate
Port
COM5
Port
COM6
Character
Bits
ControlWave
Designer
ControlWave
Designer
Factory Defaults for ControlWave_30 (CW_30) Serial Ports
Interface
modem cable
or RS485
modem cable
or RS485
switch SW4 on
CMFIB. On original
RTU3310 known as
Port D.
jumpers W9
through W15 and
switch SW3 on
CCPU board. On
original RTU 3310
known as BIP1.
jumpers W16
through W22 and
switch SW4 on
CCPU board. On
original RTU 3310
known as BIP2.
Port
COM1
Port
COM2
Port
COM3
Rate
Character
Bits
ControlWave
Designer
ControlWave
Designer
ControlWave
Designer
Interface
modem cable
or RS485
modem cable
or RS485
modem cable
or RS485
CCB. Configured by
jumpers W2
through W8 and
switch SW1 on CCB.
On original DPC
3330 known as Port
A.
CCB. Configured by
jumpers W9
through W16 and
switch SW3 on CCB.
On original DPC
3330 known as Port
B.
CCB. Configured by
jumpers W2
through W8 and
switch SW1 on CCB.
On original DPC
88 Communication Ports
ControlWave Designer Programmer’s Handbook
Name
Baud
Bits Per
Stop
Parity
Protocol
Cable /
Notes
3330 known as Port
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Configured by
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Configured by
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Port 7 on the first
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Port 8 on the first
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Port 9 on the second
D301426X012
January 2022
Serial
Port
COM4
Port
COM5
Port
COM6
Rate
9600 8 1 NONE BSAP Slave /
Character
Bits
ControlWave
Designer
ControlWave
Designer
ControlWave
Designer
Interface
RS232 null
modem cable
or RS485
modem cable
or RS485
modem cable
or RS485
C.
Port 4 on the second
CCB. Configured by
jumpers W9
through W16 and
switch SW3 on CCB.
On original DPC
3330 known as Port
D.
jumpers W9
through W15 and
switch SW3 on
CCPU board. On
original DPC 3330
known as BIP1.
jumpers W16
through W22 and
switch SW4 on
CCPU board. On
original DPC 3330
known as BIP2.
Port
COM7
Port
COM8
Port
COM9
ControlWave
Designer
ControlWave
Designer
ControlWave
Designer
modem cable
or RS485
modem cable
or RS485
modem cable
or RS485
CCB. Configured by
jumpers W17
through W23 and
switch SW2 on CCB.
On original DPC
3330 known as Port
G.
CCB. Configured by
jumpers W24
through W30 and
switch SW4 on CCB.
On original DPC
3330 known as Port
H.
CCB. Configured by
jumpers W17
through W23 and
switch SW2 on CCB.
On original DPC
3330 known as Port
Communication Ports 89
ControlWave Designer Programmer’s Handbook
Name
Baud
Bits Per
Stop
Parity
Protocol
Cable /
Notes
I.
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Port 10 on the
Name
Baud
Bits Per
Stop
Parity
Protocol
Cable /
Notes
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Port 3 on the CCB.
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Port 4 on the CCB.
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Port on the CCPU.
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Port on the CCPU.
D301426X012
January 2022
Rate
Port
COM10
Character
Bits
ControlWave
Designer
Factory Defaults for ControlWave_35 (CW_35) Serial Ports
Note: Because the CW_35 does NOT support a communications board in Slot 13, and for
firmware compatibility purposes, the following ports do NOT exist on these units: COM1,
COM2, COM7, and COM8.
Port
COM3
Rate
Character
Bits
ControlWave
Designer
Interface
modem cable
or RS485
Interface
modem cable
or RS485
second CCB.
Configured by
jumpers W24
through W30 and
switch SW4 on CCB.
On original DPC
3330 known as Port
J.
Configured by
jumpers W2
through W8 and
switch SW1 on CCB.
On original DPC
3335 known as Port
C.
Port
COM4
Port
COM5
Port
COM6
90 Communication Ports
ControlWave
Designer
ControlWave
Designer
ControlWave
Designer
modem cable
or RS485
modem cable
or RS485
modem cable
or RS485
Configured by
jumpers W9
through W15 and
switch SW3 on CCB.
On original DPC
3335 known as Port
D.
Configured by
jumpers W10
through W16 and
switch SW3 on
CCPU. On original
DPC 3335 known as
Port BIP1.
Configured by
jumpers W18
ControlWave Designer Programmer’s Handbook
Name
Baud
Bits Per
Stop
Parity
Protocol
Cable /
Notes
through W24 and
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Port 9 on the CCB.
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Port 10 on the CCB.
Name
Baud
Bits Per
Stop
Parity
Protocol
Cable /
Notes
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Port on the CCPU.
Serial
9600
8 1 NONE
BSAP Slave /
RS232 null
Port on the CCPU.
D301426X012
January 2022
Port
COM9
Port
COM10
Rate
Character
Bits
ControlWave
Designer
ControlWave
Designer
Interface
modem cable
or RS485
modem cable
or RS485
switch SW4 on
CCPU. On original
DPC 3330 known as
Port BIP2.
Configured by
jumpers W16
through W23 and
switch SW2 on CCB.
On original DPC
3335 known as Port
I.
Configured by
jumpers W24
through W30 and
switch SW4 on CCB.
On original DPC
3335 known as Port
J.
Factory Defaults for ControlWave_31 (CW_31) Serial Ports
Port
COM5
Port
COM6
Rate
Note: Because the CW_31 does NOT support a communications board in Slot 13 or Slot
10, and for firmware compatibility purposes, the following ports do NOT exist on these
units: COM1, COM2, COM3, COM4, COM7, COM8, COM9, COM10.
Character
Bits
ControlWave
Designer
ControlWave
Designer
Interface
modem cable
or RS485
modem cable
or RS485
Configured by
jumpers W10
through W16 and
switch SW3 on
CCPU. On original
RIO 3331 known as
Port BIP1.
Configured by
jumpers W18
through W24 and
switch SW4 on
CCPU. On original
RIO 3331 known as
Port BIP2.
Communication Ports 91
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
How can the port configuration be changed?
If you want to use port settings other than the defaults, you must connect to the
ControlWave unit, and change the port configuration settings. The new settings are saved
in the 512K FLASH BIOS of the ControlWave unit. Port configurations may be changed via
the Flash Configuration Utility.
Important
When you make changes to port configurations, some of the changes will take effect
immediately after you exit the Flash Configuration Utility. Other changes will not take
effect until after you have reset the ControlWave unit (turned it off and then back on).
Dialing - An Overview
Beginning with ControlWave firmware version 04.00, dialing is supported via the
DIAL_CTRL function block. To configure dialing, you must:
Configure the communication port from the 'Ports' page of the Flash Configuration
utility.
Identify the communication port used for dialing via the _Px_DIAL_PORT system
variable, in your ControlWave project. Dialing will NOT function unless the port is identified as a dial port. System variables are configured in the System Variable Wizard.
Configure your ControlWave project to handle dialing. Use the DIAL_CTRL function
block to specify the various dialing parameters. See the on-line help in ControlWave
Designer for more information. Any RS-232 port can be a dial port, and you can have
multiple dial ports and multiple DIAL_CTRL function blocks in your project, but each
port must have a dedicated modem.
Configure the external modem which will perform the dialing. Currently, we offer the
MultiTech® Systems Embedded Data FAX Modem. See the documentation
accompanying this modem for configuration details.
Serial Port Sharing between the BSAP Slave and Custom
Slave Protocols:
Normally, when you configure a serial port on a ControlWave-series controller, the port
only uses a single protocol, such as BSAP or Modbus and that protocol has full control over
that port. Under certain circumstances, though, you can configure serial port sharing
which allows a single port to serve as both a BSAP slave, and as a custom slave using a
custom protocol.
92 Communication Ports
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.