Fisher ControlWave Designer Programmer's Handbook Manuals & Guides

ControlWave Designer Programmer’s Handbook
ControlWave™ Designer Programmer’s Handbook
D301426X012
January 2022
Remote Automation Solutions
ControlWave Designer Programmer’s Handbook
D301426X012 January 2022
Application Safety Considerations
Protecting Operating Processes
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 Designer Programmer’s Handbook
D301426X012
January 2022
Contents
Introduction ..................................................................................................................... 1
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
Alarm Configuration ......................................................................................................... 9
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
Application Licensing ...................................................................................................... 23
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
Application Parameters ................................................................................................... 27
Archive Configuration ..................................................................................................... 29
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
Array Configuration ......................................................................................................... 41
Audit Configuration ........................................................................................................ 43
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
Compiling ....................................................................................................................... 95
Conditional Logic ............................................................................................................ 97
DataView ...................................................................................................................... 101
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
Downloading ................................................................................................................ 113
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 (EBSAP) Communications ..................................................................... 127
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
Starting the Flash Configuration Utility 149
Flash File Access ............................................................................................................ 155
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
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
I/O Configurator............................................................................................................ 169
Tables of Board Types 174 Analog Boards 179 Digital Boards 183 High Speed Counter (HSC) Boards 185 Remote I/O Status Board 186 System Controller Board 186 CWM_RTU Board 187 Notes About Ethernet I/O Boards 187 HART Interface Board (CWM_HIB) 193
I/O Mapping .................................................................................................................. 197
Common Device Map 197 Local I/O - ControlWave 198 Ethernet I/O 206 ControlWave I/O Expansion Rack Boards 218 Local I/O – ControlWave MICRO-series 229 Local I/O – ControlWave GFC-CL and ControlWave XFC 242 Local I/O – ControlWave Express and ControlWave GFC 248 Local I/O – ControlWave CW10, CW30, CW35 256 I/O – ControlWave CW_31 261 ControlWave MICRO I/O Expansion Rack 269
I/O Simulator ................................................................................................................ 283
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
Libraries ........................................................................................................................ 315
Memory Usage .............................................................................................................. 319
Some Background - What is Memory? 319 What is Downloading? 319 Types of Memory in the ControlWave Process Automation Controller (CW PAC) 320
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
Modbus Configuration .................................................................................................. 335
Configuring Your ControlWave Controller as a Modbus Master Device 335 Configuring Your ControlWave Controller as a Modbus Slave or Enron Modbus Slave Device 339
Modbus Ports ................................................................................................................ 341
Configuring Modbus Ports 341
Reset ControlWave Utility ............................................................................................. 343
Security ........................................................................................................................ 345
Other Security-Related Issues 351
Security Protocols (CHAP and PAP) ................................................................................ 355
Security Protocols (CHAP and PAP) Used on PPP Links 355 Challenge Handshaking Authentication Protocol (CHAP) 355 Password Authentication Protocol (PAP) 358
System Tasks (Warm/Cold Starts) .................................................................................. 361
System Variables ........................................................................................................... 363
Using the System Variable Wizard 363 System Variable Mapping Charts 367 Static Memory Area: 393 Using the System Variable Viewer 396
Variable Extension Wizard ............................................................................................. 399
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
Variable Naming Conventions ....................................................................................... 423
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
Versions and Compatibility ............................................................................................ 425
Virtual Ports .................................................................................................................. 441
VSAT Slave Port – Configuration .................................................................................... 443
Configuring Flash Parameters 443 Configuring System Variables 444 VSAT Master Ports 446
Web Pages – Notes About Using .................................................................................... 447
Other Notes About Using Web Pages 448 Calling Up Web_BSI Pages 449 Creating Your Own Web Pages to Use with the ControlWave 451
Appendix A: Troubleshooting Tips ................................................................................. 453
Using the Debug Information Tool 458 Other Debugging Tools (BTCP Spy, DLM Monitor) 462
Appendix B: ControlWave Designer Compatibility Issues ................................................ 463
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

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
project into the ControlWave controller.
What Related Documentation is Available?
(part D301416X012)
Projects, Project Tree, POUs, Tasks, Resources
ACCOL3 library
PROCONOS library
ActiveX controls used with ControlWave
into ControlWave Projects
Controller
ControlWave MICRO Controller ControlWave Micro Quick Setup Guide (part
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.
14 Alarm Configuration
ControlWave Designer Programmer’s Handbook
Parameter
Suggested Variable Name
Variable
Value
Notes
iaAlarmVar
WATER_TEMP
REAL, SINT,
None
The actual process
iaHiHiLimit
WATER_HH_LIMIT
REAL, SINT,
90.0
High-high alarm limit
Setting Alarm Limits (iaLoLimit, iaLoLoLimit, iaHiLimit, iaHiHiLimit)
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
10.0 for both the low and high deadbands.
D301426X012
January 2022
Setting Alarm Priorities (iiLoPriority, iiLoLoPriority, iiHiPriority, iiHiHiPriority)
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
D301426X012
January 2022
1.
2.
Start Programs OpenBSI Tools ControlWave Tools Application Licensing
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:
Start Programs OpenBSI Tools ControlWave Tools Application Licensing
24 Introduction
ControlWave Designer Programmer’s Handbook
D301426X012
January 2022
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
Non­periodic
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 on­demand 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 on­line 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 'in­alarm' 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, right­click 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.
AddRTU 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.
BSAP - Underlying Technical Details (For ADVANCED USERS)
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.
includes: Performing debugging operations. Downloading ControlWave project.
DataView, Downloader, etc.)
DataView, Downloader, etc.)
Aperture Terminal (VSAT)
Master / Slave
80 Communication Ports
NetView
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
Rate
Port COM1
Port COM2 Serial Port COM3
Port COM4
Serial Port COM5
Communication Ports 83
9600 8 1 NONE BSAP Slave/
9600 8 1 NONE BSAP Slave/
Character
Bits
ControlWave Designer
ControlWave Designer
ControlWave Designer
ControlWave Designer
Interface
modem cable
modem cable
RS485 cable Configured via CPU
modem cable
RS485 cable OPTIONAL –
1.1.1.1. See Note below
switch SW3.
requires ECOM Board in chassis slot
3.
requires ECOM Board in chassis slot
3. Configured by
ControlWave Designer Programmer’s Handbook
Name
Baud
Bits Per
Stop
Parity
Protocol
Cable /
Notes
switch SW1 on
Serial
9600
8 1 NONE
BSAP Slave/
RJ11
OPTIONAL –
Serial
9600
8 1 NONE
BSAP Slave/
RS485 cable
OPTIONAL –
Serial
9600
8 1 NONE
BSAP Slave/
Requires
OPTIONAL –
Serial
9600
8 1 NONE
BSAP Slave/
RJ11
OPTIONAL –
Name
Baud
Bits Per
Stop
Parity
Protocol
Cable /
Notes
Serial
9600
8 1 NONE
Gould MODBUS
RS232 null
D301426X012 January 2022
Serial Port COM6
Port COM7
Serial Port COM8
Port COM9
Rate
9600 8 1 NONE BSAP Slave/
9600 8 1 NONE BSAP Slave/
Character
Bits
ControlWave Designer
ControlWave Designer
ControlWave Designer
ControlWave Designer
Interface
Requires coaxial RF cable to connect MDS / FreeWave® spread spectrum modem (radio).
connector for connecting to 56K PSTN modem RS232 null modem cable
ECOM board. OPTIONAL – requires ECOM Board in chassis slot
3.
See 2.3.3.5 in CI­ControlWave MICRO for radio installation steps.
requires ECOM Board in chassis slot
3.
OPTIONAL – requires ECOM Board in chassis slot
4.
requires ECOM Board in chassis slot
4. Configured by switch SW1 on ECOM board
Port COM10
Port COM11
ControlWave Designer
ControlWave Designer
coaxial RF cable to connect MDS / FreeWave® spread spectrum modem (radio).
connector for connecting to 56K PSTN modem
Factory Defaults for ControlWave MICRO I/O Expansion Rack Serial Ports
Rate
Character
Bits
Interface
requires ECOM Board in chassis slot
4.
See 2.3.3.5 in CI­ControlWave MICRO for radio installation steps.
requires ECOM Board in chassis slot
4.
84 Communication Ports
ControlWave Designer Programmer’s Handbook
Name
Baud
Bits Per
Stop
Parity
Protocol
Cable /
Notes
Port
Slave – RTU
modem cable
Serial
115200
8 1 NONE
BSAP Slave/
RS485 cable
Configured via CPU
Serial
115200
8 1 NONE
BSAP Slave/
RS232 null
OPTIONAL –
Serial
115200
8 1 NONE
BSAP Slave/
RS485 cable
OPTIONAL –
Serial
115200
8 1 NONE
BSAP Slave/
Requires
OPTIONAL –
Serial
115200
8 1 NONE
BSAP Slave/
RJ11
OPTIONAL – Serial
115200
8 1 NONE
BSAP Slave/
RS232 null
OPTIONAL –
Serial
115200
8 1 NONE
BSAP Slave/
RS485 cable
OPTIONAL – Serial
115200
8 1 NONE
BSAP Slave/
Requires
OPTIONAL –
D301426X012
January 2022
COM1 Serial Port COM2
Port COM3
Port COM4
Port COM5
Port COM6
Rate
115200
Character
8 1 NONE BSAP Slave /
Bits
mode.
ControlWave Designer
ControlWave Designer
ControlWave Designer
ControlWave Designer
ControlWave Designer
Interface
RS232 null modem cable
modem cable
coaxial RF cable to connect MDS / FreeWave® spread spectrum modem (radio).
switch SW3.
requires ECOM Board in chassis slot
3.
requires ECOM Board in chassis slot
3. Configured by switch SW1 on ECOM board.
requires ECOM Board in chassis slot
3.
See 2.3.3.5 in CI­ControlWave 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...