Академический Документы
Профессиональный Документы
Культура Документы
Integrated Control
Block Descriptions
Volume 1 of 3,
ACCUM – DTIME
B0193AX
Rev AB
November 30, 2011
Invensys, Foxboro, FoxCAE, FoxView, InFusion, I/A Series, the Invensys logo, and EXACT are trademarks of
Invensys plc, its subsidiaries, and affiliates.
All other brand names may be trademarks of their respective owners.
Volume 2 of 3
ECB through MOVLV
27. Equipment Control Blocks.............................................................................................. 791
28. Primary ECB (ECBP or ECB11) .................................................................................... 797
29. ECB1 – Analog Input ..................................................................................................... 805
30. ECB2 – Analog Input and Analog Output...................................................................... 813
iii
B0193AX – Rev AB Volume Set Information
iv
Volume Set Information B0193AX – Rev AB
Volume 3 of 3
MSG through VLV
89. MSG – Message Generator Block.................................................................................. 1663
90. MTR – Motor Control Block ....................................................................................... 1671
91. OUTSEL – Output Select Block................................................................................... 1693
92. PACK – Packed Long Integer Variable Block................................................................ 1705
93. PAKIN – Packed Input Block ....................................................................................... 1707
94. PAKINR – Redundant Packed Input Block .................................................................. 1719
95. PAKOUT – Packed Output Block................................................................................ 1735
96. PATALM – Pattern Alarm Block .................................................................................. 1753
97. PATT – Pattern Block .................................................................................................. 1765
98. PID – Proportional Integral Derivative Block ............................................................... 1783
99. PIDA – Advanced PID Block........................................................................................ 1819
100. PIDX – PID Extended Block ...................................................................................... 1895
101. PIDXE – PID Extended with EXACT Block .............................................................. 1933
102. PIDE – PID With EXACT Block ............................................................................... 1977
103. PLB – Programmable Logic Block............................................................................... 2019
v
B0193AX – Rev AB Volume Set Information
vi
Contents
Volume Set Information........................................................................................................ iii
Figures.................................................................................................................................. xxi
Tables.................................................................................................................................. xxv
Preface................................................................................................................................ xxix
vii
B0193AX – Rev AB Contents
viii
Contents B0193AX – Rev AB
ix
B0193AX – Rev AB Contents
x
Contents B0193AX – Rev AB
6.5.3 Error Condition and Last Good Value Functionality .............................................. 205
6.6 Manual Mode ................................................................................................................. 206
6.7 Alarming ......................................................................................................................... 207
6.8 Application Diagram ....................................................................................................... 208
xi
B0193AX – Rev AB Contents
xii
Contents B0193AX – Rev AB
xiii
B0193AX – Rev AB Contents
xiv
Contents B0193AX – Rev AB
xv
B0193AX – Rev AB Contents
xvi
Contents B0193AX – Rev AB
xvii
B0193AX – Rev AB Contents
xviii
Contents B0193AX – Rev AB
xix
B0193AX – Rev AB Contents
xx
Figures
1-1. ACCUM Block Diagram .............................................................................................. 1
1-2. ACCUM Block Operational Diagram ......................................................................... 16
1-3. ACCUM Block Algorithm .......................................................................................... 16
1-4. ACCUM Pulse Rate per Block Period ......................................................................... 17
1-5. ACCUM Pulse Count per Block Period ...................................................................... 17
1-6. ACCUM Pulse Rate per Minute ................................................................................. 18
1-7. ACCUM Pulse Count per Minute .............................................................................. 18
1-8. ACCUM CARRY Function ........................................................................................ 21
1-9. ACCUM SET, CLEAR, and HOLD Functionality .................................................... 22
1-10. ACCUM Block Alarming ........................................................................................... 23
1-11. Typical ACCUM Block Application ........................................................................... 24
2-1. AIN Block Diagram .................................................................................................... 25
2-2. AIN Block Operational Diagram ................................................................................ 44
2-3. General Analog Input Example ................................................................................... 45
2-4. Thermocouple Input Example .................................................................................... 48
2-5. RTD Input Example ................................................................................................... 50
2-6. Pulse Rate Input Example ........................................................................................... 52
2-7. Intelligent Field Device Input Example ....................................................................... 53
2-8. Typical Configuration for Intelligent Transmitters with Window ECB ...................... 55
2-9. Clamping .................................................................................................................... 58
2-10. First-Order Lag Filtering ............................................................................................. 59
2-11. Butterworth Filtering .................................................................................................. 60
2-12. Last Good Value ......................................................................................................... 64
2-13. Typical AIN Block Application ................................................................................... 66
3-1. AINR Block Diagram ................................................................................................. 75
3-2. AINR Block Operational Diagram .............................................................................. 96
3-3. General Analog Input Example ................................................................................... 97
3-4. Thermocouple Input Example .................................................................................. 100
3-5. RTD Input Example ................................................................................................. 103
3-6. Pulse Rate Input Example ......................................................................................... 104
3-7. Intelligent Field Device Input Example ..................................................................... 106
3-8. Clamping .................................................................................................................. 109
3-9. First-Order Lag Filtering ........................................................................................... 111
3-10. Butterworth Filtering ................................................................................................ 111
3-11. Last Good Value ....................................................................................................... 115
3-12. Typical AINR Block Application .............................................................................. 117
4-1. ALMPRI Block I/O Diagram .................................................................................... 127
4-2. ALMPRI, Detailed Block Diagram ........................................................................... 132
4-3. Example ALMPRI Block Connections ...................................................................... 133
5-1. AOUT Block Diagram .............................................................................................. 135
5-2. AOUT Block Operational Diagram .......................................................................... 154
5-3. Reset Balance Action ................................................................................................. 159
5-4. Typical Configuration for Intelligent Transmitters with Window ECB .................... 164
5-5. Typical AOUT Block Application ............................................................................. 171
xxi
B0193AX – Rev AB Figures
xxii
Figures B0193AX – Rev AB
xxiii
B0193AX – Rev AB Figures
xxiv
Tables
1-1. ACCUM Block Parameters ........................................................................................... 3
1-2. Units of OUT and MEAS Are the Same ..................................................................... 20
1-3. Units of OUT and MEAS Are not the Same ............................................................... 20
2-1. AIN Block Parameters ................................................................................................. 27
2-2. Alarm Nomenclature ................................................................................................... 65
3-1. AINR Block Parameters .............................................................................................. 77
3-2. Alarm Nomenclature ................................................................................................. 116
4-1. ALMPRI Block Parameters ....................................................................................... 127
5-1. AOUT Block Parameters .......................................................................................... 137
5-2. AOUT Block Destinations ........................................................................................ 157
5-3. AOUT Block Alarm Nomenclature .......................................................................... 170
6-1. AOUTR Block Parameters ........................................................................................ 176
6-2. AOUTR Block Destinations ..................................................................................... 195
6-3. AOUT Block Alarm Nomenclature .......................................................................... 207
7-1. BIAS Block Parameters ............................................................................................. 211
8-1. BIN Block Parameters ............................................................................................... 238
8-2. ALMOPT Parameter Format .................................................................................... 240
8-3. ALMSTA Parameter Format ..................................................................................... 241
8-4. INHSTA Parameter Format ...................................................................................... 245
8-5. BIN Block Alarm Parameters .................................................................................... 256
9-1. BINR Block Parameters ............................................................................................ 260
9-2. ALMOPT Parameter Format .................................................................................... 262
9-3. ALMSTA Parameter Format ..................................................................................... 263
9-4. INHSTA Parameter Format ...................................................................................... 269
9-5. AI Block Alarm Parameters ....................................................................................... 281
10-1. BLNALM Block Parameters ...................................................................................... 286
10-2. INHALM Values ...................................................................................................... 293
11-1. BOOL Block Parameters ........................................................................................... 296
12-1. BOUT Block Parameters .......................................................................................... 302
12-2. ALMOPT Parameter Format .................................................................................... 303
12-3. ALMSTA Parameter Format ..................................................................................... 304
12-4. INHSTA Parameter Format ...................................................................................... 309
13-1. BOUTR Block Parameters ........................................................................................ 328
13-2. ALMOPT Parameter Format .................................................................................... 330
13-3. ALMSTA Parameter Format ..................................................................................... 330
13-4. INHSTA Parameter Format ...................................................................................... 336
13-5. Alarm Nomenclature ................................................................................................. 350
14-1. Block Comparison .................................................................................................... 353
14-2. CALC Block Parameters ........................................................................................... 355
14-3. Arithmetic Instructions ............................................................................................. 364
14-4. Boolean Instructions ................................................................................................. 365
14-5. Input/Output Reference Instructions ........................................................................ 366
14-6. Cascade and Propagation Instructions ....................................................................... 367
14-7. Memory and Stack Reference Instructions ................................................................ 368
xxv
B0193AX – Rev AB Tables
xxvi
Tables B0193AX – Rev AB
xxvii
B0193AX – Rev AB Tables
xxviii
Preface
This document, Integrated Control Block Descriptions, provides operational and reference informa-
tion for using I/A Series® control blocks, equipment control blocks (ECBs) and window equip-
ment control blocks (window ECBs).
You use this document to gain detailed knowledge of the operation of each I/A Series Control
block. Using this knowledge, you can determine the correct block to apply to your control
strategy. You configure your control strategy using the InFusion™ Engineering Environment
(IEE), the Integrated Control Configurator (ICC), or the I/A Series Configuration Component
(IACC). While configuring your control strategy, you select the appropriate block, and connect
and/or configure the blocks individual parameters.
Before using this document you should be familiar with the concepts of the IA Series control sys-
tem. For I/A Series Release V8.0 (L03-2) and later releases, refer to Control Processor 270 (CP270)
Integrated Control Software Concepts (B0700AG). For I/A Series releases prior to Release V8.0
(L03-2), refer to Integrated Control Software Concepts (B0193AW).
NOTE
Distributed Control Interface (DCI) blocks for FOUNDATION™ fieldbus devices
(such as AI, AO, DI, DO, MAI, MAO, MDI and MDO) are provided in Integrated
Control Block Descriptions for FOUNDATION fieldbus Specific Control Blocks
(B0700EC).
Audience
This book is intended for experienced process engineers and application programmers.
Contents
The document is divided into sections. Each section describes one I/A Series block – with the
exception of Equipment Control Blocks (ECBs) and Window Equipment Control Blocks, which
describe multiple blocks of the same basic design.
Each control block section, if required, contains the following:
A brief functional summary.
A list of features and options.
A list and a description of each of the parameters used by the block.
Diagrams illustrating inputs, outputs, options and operation.
A detailed description of block operation.
xxix
B0193AX – Rev AB Preface
Revision Information
For this release of the document (B0193AX-AB), the following changes were made to this vol-
ume:
Global
Updated references to “CP60” to read “CP60 and later control processors” in
instances where all control processors released after the CP60 (such as the FCP270
and ZCP270) support the same functionality.
Chapter 1 “ACCUM – Accumulator Block”
Updated the equation for PCNTOP = 2 in “Pulse Count Option” on page 17.
Chapter 2 “AIN – Analog Input Block”
Updated the description of the DELTO1 parameter.
Added note about how BLKSTA.BAD, PNT.BAD, and BAD track each other to
“Bad Status and BAD Parameter” on page 60.
Chapter 3 “AINR – Redundant Analog Input Block”
Added note about how BLKSTA.BAD, PNT.BAD, and BAD track each other to
“Bad Status and BAD Parameter” on page 112.
Chapter 5 “AOUT – Analog Output Block”
Chapter 6 “AOUTR – Redundant Analog Output Block”
Chapter 7 “BIAS – Bias Block”
Chapter 12 “BOUT – Binary Output Block”
Chapter 13 “BOUTR – Redundant Binary Output Block”
Chapter 16 “CHARC – Characterizer Block”
Chapter 24 “DPIDA Controller”
Removed the incorrect information for setting the PRIBLK parameter in the AOUT
block to 1 and the warning ‘W48 - INVALID BLOCK OPTION’ from the
“PRIBLK and PRITIM Functionality” section in each chapter.
Chapter 5 “AOUT – Analog Output Block”
Chapter 6 “AOUTR – Redundant Analog Output Block”
Chapter 7 “BIAS – Bias Block”
Chapter 16 “CHARC – Characterizer Block”
Chapter 24 “DPIDA Controller”
Removed “PRITIM = zero” condition from ERCODE parameter fields.
Chapter 7 “BIAS – Bias Block”
Added BLKSTA.B19/ Bit 13 (PORSCHE) to BLKSTA parameter - indicates the
presence of I/A Series v8.5 controller enhancements in the block (a set of parameters
which are not available/supported on earlier versions of I/A Series software.)
Added the UNCLMP parameter to this block.
Chapter 8 “BIN – Binary Input Block”
Chapter 9 “BINR – Redundant Binary Input Block”
xxx
Preface B0193AX – Rev AB
Reference Documents
Refer to the following documents for additional information:
Integrated Control Software Concepts (B0193AW) for I/A Series releases prior to V8.0
Control Processor 270 (CP270) Integrated Control Software Concepts (B0700AG) for
I/A Series Release V8.0 and later releases
Supervisory Set Point Control (B0193RY)
Fieldbus Cluster I/O User’s Guide (B0193RB)
Enhanced PLC Block Descriptions (B0193YQ)
Integrated Control Configurator (B0193AV)
I/A Series Configuration Component (IACC) User’s Guide (B0400BP)
Integrated Control Block Descriptions for FOUNDATION fieldbus Specific Control Blocks
(B0700EC)
FOUNDATION fieldbus H1 Interface Module (FBM220/221) User Guide (B0400FD)
Field Device System Integrators (FBM230/231/232/233) User’s Guide (B0700AH)
I/A Series® System PROFIBUS-DPTM Communication Interface Module (FBM223)
User’s Guide (B0400FE)
I/A Series® System HART™ Communication Interface Modules User’s Guide
(B0400FF)
I/A Series® System Modbus® Communication Interface Module (FBM224) User’s
Guide (B0400FK)
Intrinsically Safe I/O Subsystem User’s Guide (B0700DP)
Foxboro Control Software Deployment Guide (B0750BA)
Most are available on the I/A Series Electronic Documentation CD-ROM (K0173TQ or
K0173WT). The latest revisions may also be available through the IOM Global Customer Sup-
port Center at http://support.ips.invensys.com.
xxxi
B0193AX – Rev AB Preface
xxxii
1. ACCUM – Accumulator Block
This chapter describes the Accumulator block, or ACCUM, its features, parameters and
functions.
1.1 Overview
The Accumulator block, ACCUM, provides a convenient method for accumulating values from
an analog flow signal source, without using a pulse input primary device. The block accepts a real
input, as a rate or pulse count, and then scales it to create the correct rate units. ACCUM then
integrates the input over the block period time, accumulates the value with the results of the pre-
vious block period time(s) and stores it as a real value to the output. Scaling is accomplished using
a meter factor to achieve engineering unit and time scale compatibility between the measurement
inputs and the desired output units.
Block
Period Meter
Time Factor
Pulse
Count
Convert Rate Accumulated
Integrator
to Rate Rate Value
Meas
Input
High Scale Carry
Pulse Detector
Rate
Alarming Alarm
Indication
Figure 1-1. ACCUM Block Diagram
1
B0193AX – Rev AB 1. ACCUM – Accumulator Block
The measurement input can be a pulse rate variable in terms independent of the block
period time, namely pulses per minute. Use of this option permits the meter factor to
be automatically adjusted to changes in the block period time.
The measurement input can be a pulse count variable in terms independent of the
block period time. Use of this option permits the meter factor to be automatically
adjusted to changes in the block period time.
In each of these cases, the pulse count option dictates the type of measurement the block accepts
as an input. The pulse count option determines the type of value being integrated using the algo-
rithm shown in “ACCUM Block Algorithm” on page 16. Once the integration is complete, the
algorithm scales the output using an operator-set meter factor.
SET, HOLD, and CLEAR inputs control the output state of the block. The CLEAR input sets
the accumulator output to zero, HOLD stops the accumulator output at its current value, and
SET forces the output to be set to the PRESET input value. When these inputs are in contention,
CLEAR has the highest priority, followed by SET and then HOLD.
The ACCUM block also allows for the inhibiting of alarm detection, alarm messages, or both,
and set both High and High-High alarm indicator (see “Alarming the Accumulator” on page 23).
The High alarm indicator offers a pre-target alarm state indication before the High-High value is
reached.
1.3 Features
The features are:
Manual/Auto control of the output, which can be initiated by a host process or
another block
Accumulator control: set, clear, and hold
Carry output to indicate accumulator rollover.
The options are:
Pulse count option (PCNTOP), which allows you to select the type of count totaliza-
tion (rate or count) used.
Target (High-High) alarming (HHAOPT), which allows you to configure a High-
High alarm limit.
Pre-Target (High) alarming (HAOPT), which allows you to configure a High alarm
limit.
Error propagation (PROPT), which allows you to propagate this block’s measurement
error state to other blocks.
Control Error Option (CEOPT), which allows you to enable or disable the block’s
implicit Hold action when it detects an error in the MEAS input.
Initial Clear (INITCL), when set to true, allows you to specify whether or not the
accumulated totals are cleared when the block initializes.
Inhibit Option (INHOPT), which allows you to specify the actions taken when
alarms are inhibited in the block.
Initialize Manual/Auto (INITMA), which specifies the desired state of MA input dur-
ing initialization.
2
1. ACCUM – Accumulator Block B0193AX – Rev AB
1.4 Parameters
Table 1-1. ACCUM Block Parameters
3
B0193AX – Rev AB 1. ACCUM – Accumulator Block
ABSPRI Absolute Priority is an integer input, from 1 to 5, that sets the priority
level of the absolute alarm. 1 is the highest priority.
ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use.
4
1. ACCUM – Accumulator Block B0193AX – Rev AB
For the ACCUM block, only the following unshaded bits are used
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B10
B11
B12
B13
B14
B15
B16
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit
Number*
(0 to 31) Configured Alarm Option When True
0 (Least Alarm Group 8 in Use
Significant)
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use
19 Pre-Target (High Absolute) Alarm Configured
25 Target (High-High Absolute) Alarm Configured
* Bit 0 is the least significant, low order bit.
ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the ACCUM block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B10
B11
B12
PTARG B13
B14
B15
B16
B1
UNAK B2
B3
B4
B5
B6
B7
B8
B9
CRIT PRTYPE
TARG
INH
Boolean
Bit Number Connection
(0 to 31)* Name Description When True (B32 to B1)
0 to 4 (Least PTYP_MSK Priority Type: See parame- ALMSTA.B32-
Significant) ter PRTYPE for values ALMSTA.B28
used in the ACCUM
block
5 to 7 CRIT_MSK Criticality; 5 = lowest pri- ALMSTA.B27-
ority, 1= highest ALMSTA.B25
19 PTARG Pre-Target (High) Alarm ALMSTA.B13
25 TARG Target (High-High) Alarm ALMSTA.B7
29 INH Alarm inhibit ALMSTA.B3
30 UNAK Unacknowledged ALMSTA.B2
* Bit 0 is the least significant, low order bit.
5
B0193AX – Rev AB 1. ACCUM – Accumulator Block
AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is gen-
erated.
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the ACCUM block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B10
B11
WLCK B12
B13
B14
B15
B16
B1
B2
B3
B4
B5
B6
B7
B8
B9
ACC
HLD
ON
MA
Boolean
Bit Number* Connection
(0 to 31) Name Description When True (B32 to B1)
5 ACC Accumulating BLKSTA.B27
7 HLD Holding BLKSTA.B25
11 MA Manual = 0, Auto = 1 BLKSTA.B21
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
20 WLCK Access Locked BLKSTA.B12
* Bit 0 is the least significant, low order bit.
CARRY Carry is a boolean output that is set true for one scan period to indicate
when the accumulator has rolled over (that is, has exceeded HSCO1).
When the accumulator rolls over, the difference between the block’s run-
ning total and HSCO1 is saved and used as the initial accumulator total
for the next accumulation cycle.
The CARRY parameter can be “cascaded” to the MEAS parameter of
another ACCUM block to accumulate the number of times that the first
ACCUM block has wrapped around. For example, this allows the first
block with a range 0 to 999,999 to indicate “units” and the second block
to indicate “millions”.
CEOPT Control Error Option is a short integer that specifies how the block
responds to the MEAS input when it is in error. To provide backward
compatibility, CEOPT defaults to 1. CEOPT has a range of 0 to 2 where:
0 = The block takes no implicit Hold action when it detects a control
error.
6
1. ACCUM – Accumulator Block B0193AX – Rev AB
1 = The block goes to the Hold state if MEAS: (a) has its BAD sta-
tus bit set true; (b) has its Out-of-Service status bit set true; (c)
is experiencing peer-to-peer path failure.
2 = The block goes to the Hold state if MEAS meets any of the
conditions described for CEOPT=1, or if MEAS has its
ERROR status bit set true.
CLEAR Clear is a boolean input that sets the accumulator output to zero when
CLEAR makes a zero-to-one transition. The ACCUM block automati-
cally clamps this input at zero if no connection exists.
CRIT Criticality is an integer output that indicates the priority, ranging from
1 to 5, of the block’s highest currently active alarm (1 is the highest prior-
ity). An output of zero indicates the absence of alarms.
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. In that case, no further processing of the block occurs. To return
DEFINE to a true value, correct all configuration errors and re-install the
block.
DELTI1 Change Delta for Input Range 1 is a real value that defines the minimum
percent of the input range that triggers change driven connections for
parameters in the range of RI1. The default value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.
DELTO1 Change Delta for Output Range 1 is a real value that defines the mini-
mum percent of the output range that triggers change driven connections
for parameters in the range of RO1. The default value is 1 percent.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
7
B0193AX – Rev AB 1. ACCUM – Accumulator Block
EI1 Engineering Units for Input Range 1, as defined by the parameters HSCI1
and LSCI1. EI1 provides the engineering units text for the values defined
by Input Range 1. “DEG” or “PH” are typical entries.
EO1 Engineering Units for Output Range 1 provides the engineering units text
for the values defined for the Output 1 range. The value configured for
this text string should be consistent with the values used for HSCO1 and
LSCO1.
ERCODE Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the block’s
DEFINE parameter to be set false, but not the warning situations. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. The block detailed display shows the ERCODE
on the primary page, if it is not null. For the ACCUM block, the follow-
ing list specifies the possible values of ERCODE, and the significance of
each value in this block:
ERCODE Value
W43 Invalid Period/Phase Combination
W44 HSCO1 less than LSCO1, HSCI1 less than LSCI1
W46 Invalid input connection
W48 Configured value of a block option is illegal
W53 A parameter value is not in the acceptable range
HABLIM High Absolute Alarm Limit is a real input that defines the value of the
output that initiates a high absolute alarm.
HAIND High Alarm Indicator is a boolean output set true when the measurement
exceeds the high absolute alarm limit (HABLIM). The block sets HAIND
to false when the measurement passes back through the deadband and
returns to normal operation.
HAOPT High Alarm Option is a boolean input that enables or disables high abso-
lute alarming for pre-target alarm in an ACCUM block.
0 = No alarming
1 = High alarming
HHAGRP High-High Absolute Alarm Group is a short integer input that directs
High-High Absolute alarm messages to one of eight groups of alarm
devices.
8
1. ACCUM – Accumulator Block B0193AX – Rev AB
HHAIND High-High Alarm Indicator is a boolean output set true when the block-
dependent parameter value (generally the measurement input) exceeds the
high-high absolute alarm limit (HHALIM). HHAIND is set to false when
the value is less than HHALIM. Once it is set true, it does not return to
false until the value falls below the limit less a deadband.
HHALIM High-High Absolute Alarm Limit is a real input that defines the value of
the output that triggers a High-High alarm.
HHAOPT High-High Alarm Option is a short integer input that enables High-High
absolute alarming for alarming of a block-dependent value, generally the
measurement input, or disables absolute alarming altogether. Each alarm
triggers an indicator and text message.
0 = No alarming
1 = High-High alarming
2 = High-High alarming only
HHAPRI High-High Absolute Priority is a integer input, from 1 to 5, that sets the
priority level of the high-high absolute alarm (1 is the highest priority).
HOLD Hold is a boolean input. When true, HOLD forces the block into the
Hold substate of Auto, holding the output at its last computed value.
HSCI1 High Scale for Input Range 1 is a real value that defines the upper limit of
the measurement range. EI defines the measurement unit text associated
with the value. Make the range and units consistent with the measurement
source. A typical value is 100 (percent).
HSCO1 High Scale for Output Range 1 is a real value that defines the upper range
value for the block’s output. EO defines the measurement unit text associ-
ated with the value.
INHALM Inhibit Alarm contains packed boolean values that represent alarm inhibit
requests for each alarm type or point configured in the block.
The ACCUM block uses the following bits:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B1
B2
B3
B4
B5
B6
B7
B8
B9
9
B0193AX – Rev AB 1. ACCUM – Accumulator Block
INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting. Alarms can also be inhibited based on INHALM and the com-
pound parameter CINHIB.
INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0 = When an alarm is inhibited, disable alarm messages but do not
disable alarm detection.
1 = When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the time
the alarm transitions into the inhibited state, clear the alarm
indicator.
2 = Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages may be acknowledged by explicitly setting
UNACK false.
3 = Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages may be acknowledged by explicitly setting
UNACK false.
INHSTA Inhibit Status contains packed boolean values that represent the actual
inhibit status of each alarm type configured in the block. For the ACCUM
block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B10
B11
B12
PTARG B13
B14
B15
B16
B1
B2
B3
B4
B5
B6
B7
B8
B9
HHA
10
1. ACCUM – Accumulator Block B0193AX – Rev AB
Bit boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
19 PTARG Pre-Target (High Absolute) INHSTA.B13
Alarm Inhibited
25 TARG Target (High-High Abso- INHSTA.B7
lute) Alarm Inhibited
INITCL Initialize Clear is a boolean input. When true (1), the accumulation in an
ACCUM block is cleared (that is, set to 0) when the block initializes for
any reason. When false (0), the accumulation is not initialized and will
contain one of the following:
the accumulation saved in the checkpoint file when the block ini-
tializes following a reboot of the CP station, or
the accumulation saved in the block re-initializes after a configura-
tion modification or by turning on the compound containing the
block.
INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state as specified in the checkpoint file
The block asserts this initial M/A state whenever:
It is installed into the Control Processor database.
The Control Processor undergoes a reboot operation.
The compound in which it resides is turned on.
The INITMA parameter itself is modified via the control configu-
rator. (The block does not assert INITMA on ordinary
reconfiguration.)
The Initialize M/A state is ignored if the MA input has an established
linkage.
LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.
LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier
11
B0193AX – Rev AB 1. ACCUM – Accumulator Block
LSCI1 Low Scale for Input Range 1 is a real value that defines the lower limit of
the measurement range. A typical value is 0 (percent). EI1 defines the
measurement units text associated with the value. Make the range and
units consistent with those of the measurement source.
LSCO1 Low Scale for Output Range 1 is a real value that defines the lower range
value for the block’s output. EO1 defines the measurement units text asso-
ciated with the value.
MEAS Measurement is an input identifying the source of the block’s input, or the
controlled variable. The PCNTOP allows you to select the block opera-
tion that matches the measurement input.
MRATE The Measurement Rate output represents the change in the accumulated
total per second. If the pulse count option (PCNTOP) is 1 or 3, MRATE
represents the amount by which the total changed (including MTRFAC
scaling), since the last measurement change. If PCNTOP is 2 or 4,
MRATE represents the MEAS value scaled by MTRFAC.
MTRFAC Meter Factor is a real input. The block uses this multiplier to make the
units of measurement, usually scaled in rate units, compatible with the
assigned output units, typically a scalar value.
The meter factor can be used to:
Convert time units if the input MEAS is using different time units
than those dictated by the block scan period
Convert engineering units if the input MEAS is using different
engineering units than those dictated by OUT.
Perform both of these conversions together.
12
1. ACCUM – Accumulator Block B0193AX – Rev AB
For example, if the period is 0.5 seconds and the flow rate is in cubic
feet/minute, then MTRFAC = 0.0083333, where 0.0083333 is derived
from: 0.5 (the block period in seconds) x 0.0166667 (or 1/60, to convert
minutes to seconds). For more examples, see “Meter Factor Examples” on
page 20.
OUT Output, in Auto mode, is the result of the block algorithm applied to one
or more input variables. In Manual, OUT is unsecured, and can be set by
you or by an external task.
PCNTOP Pulse Count Option is a short integer. The four values are used to adjust
the block algorithm to different types of measurement input as follows
0 = Pulse rate per block period
1 = Pulse count per block period
2 = Pulse rate per minute.
3 = Pulse count per minute
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)
Period Length Period Length
0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec
13
B0193AX – Rev AB 1. ACCUM – Accumulator Block
* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the PERIOD
parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the PERIOD
parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but the PERIOD
parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec., but the
PERIOD parameter remains 12.
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).
PRESET Preset is a real input parameter that specifies the value inserted into the
accumulator when the SET input makes a 0-to-1 transition.
PROPT Propagate Error Option is a boolean input. When true, PROPT sets the
ERROR Status bit of the output parameter if the input to the MEAS
parameter is in error while the block is in Auto. The input to the MEAS
parameter is in error when:
Its BAD status bit is set true
Its OOS (Out-of-Service) status bit is set true
Its ERROR status bit is set true
It is experiencing peer-to-peer path failure.
If a transition to Manual occurs while the ERROR status is true, it
remains true until either a set command is written to that output or until
the block transfers to Auto with the error condition returned to normal.
If PROPT is false, the block does not set the ERROR status bit of the out-
put parameter.
PRSCON Present Control state is a short integer data store that contains the sub-
states of Auto:
1 = Holding
2 = Bad Input State (holding)
3 = Controlling (not open loop)
PRSCON is set to 2 when:
The block is transitioning from the Holding state (1) or the Accu-
mulating state (3),
The MEAS input is in error, and
CEOPT is set to 1 or 2.
14
1. ACCUM – Accumulator Block B0193AX – Rev AB
During this time, the block is in the holding state, and holds the output at
its last computed value.
RI1 Range Input is an array of real values that specify the high(HSCI1) and
low(LSCI1) engineering scale and change delta of a particular real input.
The array members are configured by their individual names; however,
RI1 and its members can be accessed by user programs and task displays.
RO1 Range Output is an array of real values that specify the high(HSCI1) and
low(LSCI1) engineering scale of a particular real output. The array mem-
bers are configured by their individual names; however, RO1 and its
members can be accessed by user programs and task displays.
SET Set is a boolean input that forces the accumulator to the PRESET input
value when SET makes a 0-to-1 transition. The ACCUM block automat-
ically clamps this input at zero if no connection exists.
TYPE When you enter “ACCUM” or select “ACCUM” from the block type list
under Show, an identifying integer is created specifying this block type.
UNACK Unacknowledge is a boolean output that the block sets to true when it
detects an alarm. It is typically reset by operator action.
1.5 Functions
This section describes the functions in the ACCUM block.
15
B0193AX – Rev AB 1. ACCUM – Accumulator Block
LSCI LSCO
HOLD HOLD
SET AND High Scale
Target Detector CARRY
CLEAR
SET SET
CLEAR AND
CLEAR
HOLD
CEOPT = 1 or 2 AND OR
MEAS Error Bit
16
1. ACCUM – Accumulator Block B0193AX – Rev AB
PCNTOP = 0 MEAS is a pulse rate variable in terms of the block period time (pulses per
Pulse Rate per period) (see Figure 1-4). The equation used is as follows:
Block Period OUT = OUT + (MEAS * MTRFAC)
MTRFAC
MA
PCNTOP=0
Rate
MEAS Integrator OUT
PCNTOP = 1 MEAS is a pulse count variable in terms of the block period time (counts
Pulse Count per per period) (see Figure 1-5). The equation used is as follows:
Block Period OUT = OUT + ((MEAS - previous MEAS) * MTRFAC)
where: previous MEAS = MEAS from previous block cycle
MTRFAC
PCNTOP=1 MA
Count
MEAS Convert Integrator OUT
to Rate
PCNTOP = 2 MEAS is a pulse rate variable in terms independent of the block period
Pulse Rate Per time, namely pulses per minute (see Figure 1-6). The equation used is as
Minute follows:
OUT new = OUT previous + ((MEAS * MTRFAC /60.0) * elapsed
time)
where:
OUT new = OUT value this block cycle
OUT previous = OUT value from previous block cycle
MEAS = measurement value (pulses/minute)
MTRFAC = Meter Factor
elapsed time = elapsed time, in seconds, between block cycles
This allows the block to automatically adjust the meter factor to the block
period time when the block period time is changed.
17
B0193AX – Rev AB 1. ACCUM – Accumulator Block
MTRFAC
elapsed time
MA
PCNTOP=2
Rate
MEAS Integrator OUT
PCNTOP = 3 MEAS is a pulse count variable in terms independent of the block period
Pulse Count Per time (see Figure 1-7). The equation used is as follows:
Minute OUT = OUT + (MEAS - previous MEAS) * MTRFAC
/ (PERTIM * 60)
where: PERTIM is the block period in seconds.
This allows the block to automatically adjust the meter factor to the block
period time when the block period time is changed.
MTRFAC
PERTIM
PCNTOP=3 MA
Count
MEAS Convert Integrator OUT
to Rate
The block saves the running accumulator in extended precision format to minimize truncation
errors. However, the block stores the output (OUT) as a single precision float of 6-digit resolution
and you specify the range using the HSCO1 and LSCO1 parameters.
18
1. ACCUM – Accumulator Block B0193AX – Rev AB
NOTE
Both the Time_Conv and the EU_Conv factor must be derived by the customer
19
B0193AX – Rev AB 1. ACCUM – Accumulator Block
If the units of OUT are not the same as the units of MEAS, for example, the input is in cubic feet
per time unit and the accumulation is in pounds:
eu_conv = units_OUT/units_MEAS
Table 1-3 shows how MTRFAC is calculated when the units of OUT and MEAS are not the
same.
Table 1-3. Units of OUT and MEAS Are not the Same
EXAMPLES
For a block PERIOD of 0.5 seconds, the measurement is in cubic feet per minute and the output
is accumulated as cubic feet:
MTRFAC = 0.5 * 1/60 = 0.008333
If the output is to be accumulated as pounds (1 cubic foot = 62.4 pounds):
MTRFAC = 0.5 * 1/60 * 62.4 = 0.52
20
1. ACCUM – Accumulator Block B0193AX – Rev AB
If the PERIOD of the block is changed to 2 seconds, the meter factor must be changed to:
MTRFAC = 2.0 * 1/60 * 62.4 = 2.08
1.5.4 Carry
The CARRY parameter transitions from 0 to 1 if the HSCO1 parameter is exceeded (see
Figure 1-8). When HSCO1 is exceeded, the block calculates the difference between the actual
integrated value and HSCO1 and assigns this value as the initial accumulator total for the next
accumulation cycle. In this way, the next block cycle accumulation process begins without losing
any input by using the remainder of the previous cycle. The rollover indicator (CARRY) is set for
one block period when the high scale is exceeded. You can use this indicator to cascade accumula-
tor block integrations.
CARRY Produced
Value Added to
HSCO1 Accumulator
ACCUM
Value
Block Time
Period
Figure 1-8. ACCUM CARRY Function
21
B0193AX – Rev AB 1. ACCUM – Accumulator Block
NOTE
The HOLD input from another block takes precedence over the functioning of
CEOPT in the block
Figure 1-9 shows the functioning of the SET, CLEAR and HOLD inputs during Auto operation
and during input error detection.
Integrator
HOLD HOLD
SET AND
CLEAR
SET SET
CLEAR AND
CLEAR
HOLD
CEOPT = 1 or 2 AND OR
MEAS Error Bit
Figure 1-9. ACCUM SET, CLEAR, and HOLD Functionality
If the block is changing to Manual it is set to the holding mode, which leaves the block implicitly
open to control inputs from other blocks. In the Manual mode, the output is unsecured, the accu-
mulation process is inhibited, and the last real value read is used as the MEAS value.
If the block is changing to Auto, to avoid a bump in process control, the block is set to the hold-
ing mode, OUT is restored to the last measured value, which is the present Manual mode output,
and the CARRY flag is reset to false.
22
1. ACCUM – Accumulator Block B0193AX – Rev AB
HSCO1
HHALIM
Deadband
HABLIM
OUT
LSCO1
HAIND
HHAIND
Unacknowledge (UNACK) is a boolean output parameter which is set true, for notification pur-
poses, whenever the block goes into alarm. It is settable, but sets are only allowed to clear
UNACK to false, and never in the opposite direction. The clearing of UNACK is normally via an
operator “acknowledge” pick on a default or user display, or via a user task.
23
B0193AX – Rev AB 1. ACCUM – Accumulator Block
If the “sink” parameter has a configurable range (high and low scale values) and a change delta
value (typically DELTI1, DELTI2, etc.), then the size of the change required to trigger the update
is configurable.
Configuring a DELTI[1,2,etc.] value of zero (0.0) will NOT result in the “sink” being updated
every cycle. Within the system, the zero (0.0) will be replaced by the value 0.1 and the effective
change delta will be 0.1 percent of the "sink" parameter range (e.g. 0.1/100*(highscale-lowscale)).
When small changes must be communicated, specify an appropriate small, positive, non-zero
change delta value. e.g. DELTI[1,2,etc.] = 0.00001 on a parameter with a range of 20 to 50 would
result in an update for every change greater than [(0.00001/100)*(50-20)] = 0.0000030 units.
If the “sink” parameter does not have a configurable range or change delta value, as is the case
with the real inputs RI01 - RI08 of the CALCA and MATH blocks, then the change delta used
for peer-to-peer connections is a fixed value of 0.0001 (units of the source parameter, not percent
of range).
When very small changes must be communicated, consider scaling the value with gain and bias at
the source end. e.g. scale from tonnes to kilograms.
PNT_No PNT_No
24
2. AIN – Analog Input Block
This chapter gives a general overview of the Analog Input Block, or AIN, its features,
parameters and functions. It also covers bad input and out-of-range processes, manual mode,
alarming, and application diagrams and provides an appendix on signal conditioning and an
appendix on valid input connections.
2.1 Overview
The Analog Input Block (AIN) receives an input value from a single point of an analog, pulse
count, or Intelligent Field Device type of Fieldbus Module (FBM) or Fieldbus Card (FBC), or
from another block, and converts it into suitable form for use in an I/A Series control strategy.
The input to the block is the digitized data from the FBM’s Equipment Control Block (ECB),
and the output is a value expressed in the appropriate engineering units. See Figure 2-1.
High/Low Scale
for Output Range 1 BAD and OOR
Option
Signal
Condition Bad
ing Index output Bad & Indicator
Linear units Out-of-
Fieldbus Range High/
Module Square
Root Processing Low Out-
Identifier output of-
units Range
o
Point C Indicators
Number RTD
Scaling/
Filter Point
External Unit Con- Clamp
o version (Engineer-
Reference- Thermo- C ing Units
Option couple Value)
External
Reference o
Special C
Input Alarm
T.C.
Extender Alarming Indicators
Block counts
Characterizer
(None)
25
B0193AX – Rev AB 2. AIN – Analog Input Block
2.3 Features
Fieldbus Module option to permit configuration of AIN blocks without FBM or FBC
connections (input from another block instead of from hardware)
Processing of Pulse Rate and Pulse Count inputs
Acceptance of Hydrostatic Tank Gauge (HTG), Intelligent Field Device (IFD), and
Coriolis inputs
Connectability to Intelligent Field Device Window ECBs
Choice of Linear/Square Root, Thermocouple, RTD, or specially characterized signal
conditioning
External or FBM- or FBC-based temperature reference for thermocouple cold junc-
tion compensation
Output clamping between user-selectable output limits
Output gain and offset scaling
First order, second order, or two-sample-average filtering
Manual mode availability for disconnecting control schemes from the process, for
simulation and checkout purposes
Raw Count output availability for troubleshooting purposes, including floating point
values from HTG, IFD, and Coriolis inputs
Out-of-Range alarm option
High/Low Absolute alarm options
High-High and Low-Low Absolute alarm options
Bad point alarm option
Alarming in Manual option
Flexible bad input point and bad range detection and handling
Last Good Value output retention on certain I/O failures.
26
2. AIN – Analog Input Block B0193AX – Rev AB
2.4 Parameters
Table 2-1. AIN Block Parameters
27
B0193AX – Rev AB 2. AIN – Analog Input Block
28
2. AIN – Analog Input Block B0193AX – Rev AB
ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use.
For the AIN block, only the following unshaded bits are used
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit Number1
(0 to 31) Configured Alarm Option When True
0 (Least Alarm Group 8 in Use
Significant)
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use
16 Low Absolute Alarm Configured
17 High Absolute Alarm Configured
22 Bad I/O Alarm Configured
24 Low-Low Absolute Alarm Configured
25 High-High Absolute Alarm Configured
28 Out-of-Range Alarm Configured
1. Bit 0 is the least significant, low order bit.
29
B0193AX – Rev AB 2. AIN – Analog Input Block
ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the AIN block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
OOR B4
B5
B6
B7
B8
B9
CRIT PRTYPE
HMA
HHA
BAD
LMA
LLA
INH
Bit Boolean
Number Connection
(0 to 31)* Name Description When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: See parame- ---
(Least ter PRTYPE for values
Significant) used in the AIN block
5 to 7 CRIT_MSK Criticality; 5 = lowest pri- ---
ority, 1= highest
16 LMA Low Absolute Alarm ALMSTA.B16
17 HMA High Absolute Alarm ALMSTA.B15
22 BAD Bad I/O Alarm ALMSTA.B10
24 LLA Low-Low Absolute Alarm ALMSTA.B8
25 HHA High-High Absolute ALMSTA.B7
Alarm
28 OOR Out-of-Range Alarm ALMSTA.B4
29 INH Inhibit Alarm ALMSTA.B3
30 UNAK Unacknowledged ALMSTA.B2
AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is gen-
erated.
BAD Bad is a boolean output parameter which is set true when the input to the
block is unacceptable in any way. The BAD bit of BLKSTA (BLK-
STA.BAD) is also set true whenever BAD is true.
BADOPT Bad and Out-of-Range Option is a short integer option that specifies the
conditions that set the BAD output true. Values are:
30
2. AIN – Analog Input Block B0193AX – Rev AB
BAG Bad Alarm Group is a short integer input that directs Bad alarm messages
to one of eight groups of alarm devices. You can change the group number
through the workstation.
BAO Bad Alarm Option is a configurable option that enables alarm generation
for each state change of the BAD parameter. The parameter values are:
BAP Bad Alarm Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the Bad alarm (1 is the highest priority).
31
B0193AX – Rev AB 2. AIN – Analog Input Block
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the AIN block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
FBM
BAD
ON
MA
Boolean
Bit Number* Connection
(0 to 31) Name Description When True (B32 to B1)
8 FBM FBM or FBC Failure BLKSTA.B24
11 MA Manual = 0, Auto = 1 BLKSTA.B21
12 BAD Bad I/O BLKSTA.B20
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
20 WLCK Access Locked BLKSTA.B12
BSCALE Offset Scale is a real input which is used as the offset factor, in output
units, applied to the conditioned signal to rescale it for compatibility with
the output units. It is usually used to convert from Celsius to Fahrenheit
scales.
CRIT Criticality is an integer output that indicates the priority, ranging from 1
to 5, of the block’s highest currently active alarm (1 is the highest priority).
An output of zero indicates the absence of alarms.
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. (See ERCODE for the list of all possible validation errors in this
block.) In that case, no further processing of the block occurs, including
further validation of remaining parameters. To return DEFINE to a true
value, correct all configuration errors and reinstall the block.
If DEFINE = 0, the bit BLKSTA.UDEF = 1.
32
2. AIN – Analog Input Block B0193AX – Rev AB
DEV_ID Device Identifier is a character array data store that indicates the 6-charac-
ter letterbug of the connected FBM or FBC. In the case of IFD inputs,
DEV_ID contains the letterbug of the parent FBM (18, 43, 39, 44, 46,
243, or 246) to which the instrument interfaces.
EO1 Engineering Units for Output Range 1 provides the engineering units text
for the values defined for the output 1 range. The value configured for this
text string should be consistent with the values used for HSCO1 and
LSCO1.
ERCODE Error Code is a string data store which indicates the type of configuration
error which caused the block’s DEFINE parameter to be set false. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. For the AIN block, the following list specifies the
possible values of ERCODE, and the significance of each value in this
block:
ERCODE Value
W44 HSCO1 less than LSCO1
W48 FLOP or BADOPT out of range
W49 Invalid CHARC block extension
W50 Invalid SCI
W51 Cluster I/O specified but type is not analog input or
analog output
W52 PNT_NO out of range for the specified FBM or FBC
W54 Specified IOM_ID does not exist
EXTBLK Extender Block is a long input that specifies the pathname to the BLKSTA
parameter of a CHARC block used as an extender block. The CHARC
block must be in the same CP and compound as the AIN block and must
precede it in the compound.
FLOP Filter Option is an option parameter that specifies the type of filtering that
is applied to the signal before it is set into the PNT output. FLOP has the
following values:
0 = No Filtering
1 = First Order Lag Filtering
2 = Butterworth Filtering
3 = Two-Sample Average Filtering
FTIM Filter Time is an input that represents the time in minutes for the output
value to reach a certain percentage of its ultimate value after a step change
to the input. For first order lag filtering this percentage is approximately
33
B0193AX – Rev AB 2. AIN – Analog Input Block
HAI High Absolute Alarm Indicator is a boolean output that is true whenever
the value of PNT is greater than the value of HAL and option HLOP is
set to 1 or 2.
HAL High Absolute Alarm Limit is a real input that defines the value of the
PNT output that triggers a High Absolute Alarm.
HHAGRP High-High Absolute Alarm Group is a short integer input that directs
High-High Absolute alarm messages to one of eight groups of alarm
devices.
HHALIM High-High Absolute Alarm Limit is a real input that defines the value of
the PNT output that triggers a High-High Absolute Alarm.
HLDB High/Low Deadband is a real input that defines the size of the deadband
that applies to the high, low, high-high, and low-low absolute alarm limits
of the PNT output.
HLGP High/Low Group is a short integer input that directs High/Low Absolute
alarm messages to one of eight groups of alarm devices.
HLOP High/Low Option is a configured short integer input that enables Abso-
lute High and/or Low alarming of the PNT output, or disables absolute
alarming altogether. Values:
34
2. AIN – Analog Input Block B0193AX – Rev AB
0 = No Alarming
1 = High and Low Absolute Alarming
2 = High Absolute Alarming Only
3 = Low Absolute Alarming Only
HLPR High/Low Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the High/Low Absolute alarm (1 is the highest priority).
HOR High Out-of-Range is a boolean output that is set true if any one of the
seven high out-of-range conditions described in Section 2.6.2 (Out-of-
Range Conditions) occurs.
HSCO1 High Scale for Output Range 1 is a real value that defines the upper range
value for the block’s output.
INHALM Inhibit Alarm contains packed boolean values that represent alarm genera-
tion inhibit requests for each type of alarm configured in the block. For
the AIN block, only the following bits are used:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit Number* Boolean Connection
(0 to 15) Description When True (B16 to B1)
0 (Least Inhibit Low Absolute Alarm INHALM.B16
Significant)
1 Inhibit High Absolute Alarm INHALM.B15
6 Inhibit Bad I/O Alarm INHALM.B10
8 Inhibit Low-Low Absolute INHALM.B8
Alarm
9 Inhibit High-High Absolute INHALM.B7
Alarm
12 Inhibit Out-of-Range Alarm INHALM.B4
INHIB Suppresses all alarm message reporting, but alarm detection continues to
function (that is, alarm indicators, CRIT, PRTYPE, ALMSTA and
ALMEVT). When true, it inhibits all block alarms; the alarm handling
and detection functions are determined by the INHOPT setting.
35
B0193AX – Rev AB 2. AIN – Analog Input Block
INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do
not disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the
time the alarm transitions into the inhibited state, clear the
alarm indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.
INHSTA Inhibit Status contains packed long values that represent the current
inhibit status of each alarm type configured in the block. For the AIN
block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BAD B10
B11
B12
B13
B14
HMA B15
LMA B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
OOR B4
B5
B6
HHA B7
LLA B8
B9
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
16 LMA Low Absolute Alarm Inhibited INHSTA.B16
17 HMA High Absolute Alarm Inhibited INHSTA.B15
22 BAD Bad I/O Alarm Inhibited INHSTA.B10
24 LLA Low-Low Absolute Alarm INHSTA.B8
Inhibited
25 HHA High-High Absolute Alarm INHSTA.B7
Inhibited
28 OOR Out-of-Range Alarm Inhibited INHSTA.B4
INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
36
2. AIN – Analog Input Block B0193AX – Rev AB
1 = Auto
2 = The MA state as specified in the checkpoint file.
The block asserts this initial M/A state whenever:
It is installed into the Control Processor database.
The Control Processor undergoes a reboot operation.
The compound in which it resides is turned on.
The INITMA parameter itself is modified via the Integrated Con-
trol Configurator. (The block does not assert INITMA on
ordinary reconfiguration.)
INITMA is ignored if MA has an established linkage.
IOMOPT FBM Option is a short integer specifying whether an FBM or FBC con-
nection to the block exists, and if not, whether signal conditioning is to be
applied to the alternate source of the block input. Values:
0= The AIN block obtains input values from the MEAS
parameter and conditions them as specified by the value of SCI.
1= The block obtains input values from the FBM or FBC input
point specified by IOM_ID and PNT_NO.
2= The block obtains input values from the MEAS parameter. No
signal conditioning is performed. The input is subjected only to
scaling for units conversion (via KSCALE and BSCALE),
clamping using the configured HSCO1, LSCO1, and OSV
parameters, and filtering, in that order.
IOM_ID Fieldbus Module Identifier is a configurable string that specifies the path-
name of the ECB for the FBM or FBC to which the block is connected.
IOM_ID has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB. For
IFD inputs, the NAME parameter string of the parent ECB (12, 23, or
38R), not the child ECB18, must be used.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOM_ID configuration. In this case, the 1-12
character ECB block name is sufficient. For IFD inputs, this is the letter-
bug of the parent FBM (18, 43, 39, 44, 46, 243, or 246), not the con-
nected transmitter.
KSCALE Gain Scale is a real input which is used as the gain factor applied to the
conditioned signal to rescale it for compatibility with the output units.
KSCALE and BSCALE are always applied after any signal conditioning or
characterization of the raw input. It is usually used to convert from Celsius
to Fahrenheit scales.
37
B0193AX – Rev AB 2. AIN – Analog Input Block
LAI Low Absolute Alarm Indicator is a boolean output that is true whenever
the value of PNT is less than the value of LAL and option HLOP is set
to 1 or 3.
LAL Low Absolute Alarm Limit is a real input that defines the value of the
PNT output that triggers a Low Absolute Alarm.
LASTGV Last Good Value is a boolean option. When true in the situations
described in Section 2.6.4, LASTGV causes the previous value of PNT to
be retained, and the value obtained this cycle to be ignored.
LLAIND Low_Low Absolute Alarm Indicator is a boolean output that is true when-
ever the value of PNT is less than the value of LLALIM and option HHA-
OPT is set to 1 or 3.
LLALIM Low-Low Absolute Alarm Limit is a real input that defines the value of the
PNT output that triggers a Low-Low Absolute Alarm.
LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.
LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are only honored (subject to the usual access rules) from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set false by any workstation at any time, whereupon a
new LOCKRQ is accepted, and a new ownership workstation identifier
written to LOCKID.
LOR Low Out-of-Range is a boolean output that is set true if any one of the
seven low out-of-range conditions described in Section 2.6.2 (Out-of-
Range Conditions) occurs.
LSCO1 Low Scale for Output Range 1 is a real value that defines the lower range
value for the block’s output.
38
2. AIN – Analog Input Block B0193AX – Rev AB
MEAS Measurement is a value used as the source of the input to block operations
when IOMOPT indicates that no FBM or FBC is connected
(IOMOPT = 0 or 2). If an FBM or FBC is connected, (IOMOPT = 1)
then MEAS is treated as an output, and the value and status of PNT are
copied to the value and status of MEAS.
MTRF Meter Factor, a real input, is a scaling parameter used with the pulse rate
input signal conversion (SCI = 8) to translate an input pulse rate in Hz to
the desired engineering units of the process output. In most applications it
would be considered to have the dimension Flow Rate per Hertz.
ORAG Out-of-Range Alarm Group is a short integer input that directs Out-of-
Range alarm messages to one of eight groups of alarm devices.
39
B0193AX – Rev AB 2. AIN – Analog Input Block
OSV Output Span Variance is a configurable real input which defines the per-
centage by which the output clamp limits exceed the output range defined
by HSCO1 and LSCO1.
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the
following period time lengths. (Integrator and Gateway blocks have differ-
ent period values than shown here.)
Period Length Period Length
0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****
* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
40
2. AIN – Analog Input Block B0193AX – Rev AB
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).
PNT Point is the block output. It represents the analog input after all block
operations have been performed.
PNT_NO Point Number is the FBM or FBC point to which the AIN block is con-
nected. In the case of IFD inputs, the value of PNT_NO is the same as
the CHAN parameter of the child ECB18 if the desired input is the pri-
mary measurement of the instrument. If the first or second auxiliary mea-
surement is desired, see Section 2.5.2.6 to determine the required value of
PNT_NO.
PROPT Propagate Error Option is a boolean input which determines whether the
status of MEAS should be reflected in the Error bit of PNT status. If the
AIN block is in Auto and no FBM or FBC is configured (IOMOPT = 0
or 2), the true value of PROPT causes any one of the following conditions
to be reflected as an Error status of PNT:
Bad status bit in MEAS
OOS status bit in MEAS
Error status bit in MEAS
Any value in the OM field of the input source except 1
(ON_SCAN). Any other value in this field indicates that the
source of the connection has been deleted or is in a nonexistent
compound, or there has been a peer-to-peer path failure.
PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. The PRTYPE output of this block
consists of the following alarm types:
0 = No active alarm
1 = High Absolute
2 = Low Absolute
3 = High-High Absolute
4 = Low-Low Absolute
8 = Bad
25 = Out-of-Range
If there is more than one active alarm with highest priority, PRTYPE
reports the alarm type according to which occurs first as follows: Out-of-
41
B0193AX – Rev AB 2. AIN – Analog Input Block
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
RAWC Raw Count is the value read from the ECB into the block before any form
of signal conditioning, characterization, scaling, clamping or filtering is
42
2. AIN – Analog Input Block B0193AX – Rev AB
applied. It is of real data type although the ECB value may be integer, or
long integer.
RO1 Range Output 1 is a real array consisting of the three parameters HSCO1,
LSCO1, and DELTO1. The array members are configured by their indi-
vidual names; however, RO1 and its members can be accessed on an array
basis by user tasks and displays.
TYPE When you enter “AIN” or select it from a configurator list, an identifying
integer is created specifying this block type.
UNACK Unacknowledge is a boolean output parameter which is set true, for notifi-
cation purposes, whenever the block goes into alarm. It is settable, but sets
are only allowed to clear UNACK to false, and never in the opposite direc-
tion. The clearing of UNACK is normally via an operator “acknowledge”
pick on a default display, user display, or Current Alarms Display, or via a
user task.
XREFIN External Reference Input is a real input used as the source of the cold
junction reference temperature for thermocouple SCIs when XREFOP is
configured true, or no FBM or FBC is configured. The block calculations
assume that XREFIN is in units of degrees Celsius.
ZERROP Zero Error Point is a status bit that indicates an out-of-range error (LOL
or LOR) in a DOWNSTREAM parameter (PNT.ERR) and also to indi-
cate an unconditional request for initialization in an UPSTREAM param-
eter (BCALCO.INITU). Normally, these usages are mutually exclusive
and there is no conflict. However, in some control applications where a
DOWNSTREAM parameter is used as part of an UPSTREAM connec-
tion, a High Out-of-Range (HOR) or Low Out-of-Range (LOR) condi-
tion can be misinterpreted as an unconditional initialization (INITU)
request. ZERROP is not configurable. To disable the setting of PNT.ERR
when out-of-range, you must use OMSET, OMA, or some other utility to
set ZERROP = 1.
ZERROP is a non-configurable boolean parameter with the following
meaning:
ZERROP = 0 set PNT.ERR when out of range (default setting, backward
compatible with previous version)
43
B0193AX – Rev AB 2. AIN – Analog Input Block
NOTE
PNT.ERR status can also be set when propagating (PROPT = 1) a simulated input
(IOMOPT = 0) and the measurement (MEAS) is BAD, OOS ERR, or Discon-
nected. This action is unaffected by the ZERROP option.
2.5 Functions
2.5.1 Detailed Diagram
IOM_ID SCI KSCALE HSCO1 FLOP
PNT_NO XREFOP BSCALE
XREFIN LSCO1 FTIM (M)
FROM OSV
EXTBLK
ECB IOMOPT o MA
1
Signal
Conditioning- Scaling Clamping Filtering o o PNT
MEAS (A)
0,2 output
HSCO1 LSCO1 units
Converted-
RAWC OOR
OR LOR, HOR
Raw Data
OOR
Test
BAD
ECB Status
BADOPT PNT.BAD
Channel BLKSTA.BAD
Status
AUTO
BAD
MANUAL OR Alarming
AND AND
MANALM BAO
See individual diagrams
44
2. AIN – Analog Input Block B0193AX – Rev AB
BAD
FBM Status Alarming BAD
2.7
BADOPT
Figure 2-3. General Analog Input Example
You specify the source FBM or FBC in the Fieldbus Module Identifier (IOM_ID) parameter, and
the point within the FBM or FBC by the Point Number (PNT_NO) parameter. The following
are the FBMs or FBCs and point numbers providing general analog input:
45
B0193AX – Rev AB 2. AIN – Analog Input Block
The following points in the above table are physical outputs rather than physical inputs. You can
use the readback values from these points as inputs to the AIN block:
FBM204: Points 5 to 8
FBM205: Points 5 to 8
FBM05: Points 5 to 8
FBM237: Points 1 to 8
FBM06: Points 5 to 8
FBM17: Points 5 to 6
FBM37 Points 1 to 8
FBM39: Points 5 to 8
FBM44: Points 5 to 8
FBM46: Points 5 to 8
FBM246
FBC04: Points 1 to 16
If FBM Option (IOMOPT) is not set to 1, then IOM_ID and PNT_NO are ignored. The input
is taken from another block, as described in Section 2.5.2.8.
General analog inputs are converted by the FBM or FBC from the electrical process input into a
form called “raw count,” which is an integer value between 0 and 64000. Based on the Signal
Conditioning Index (SCI) and the parameter Extender Block (EXTBLK) setting, a determination
is made as to how the raw count is to be conditioned.
If you wish the raw count to be characterized by a CHARC block, you should link the Extender
Block (EXTBLK) parameter of the AIN block to a CHARC block, and set the Extender Block
Option (EXTOPT) of that CHARC block to 1. The raw count is then characterized as described
below, and the value of SCI will be ignored. The characterizer output should be expressed in
counts, with full scale equal to 64000.
If you wish to apply linear or square root signal conditioning to the raw count, you should set SCI
to one of the values 0 to 7, or 9 to 15 as follows:
46
2. AIN – Analog Input Block B0193AX – Rev AB
SCI = 13: Square root, low cutoff (14080 to 64000). Analog Input 2 to 10 V dc
SCI = 14 Linear (0 to 16383)
SCI = 15 Square root, low cutoff (1600 to 64000)
SCI = 50: Linear 0 to 65535 raw counts
SCI = 51: Linear -32768 to 32767 raw counts
SCI = 52: Linear 0 to 32767 raw counts
SCI = 53: Linear 0 to 1000 raw counts
SCI = 54: Linear 0 to 9999 raw counts
SCI = 55: Linear 0 to 2048 raw counts
SCI = 56: Linear 409 to 2048 raw counts
SCI = 57: Square root 0 to 2048 raw counts
SCI = 58: Square root 409 to 2048 raw counts with low cutoff
SCI = 59: Linear 0 to 4095 raw counts
47
B0193AX – Rev AB 2. AIN – Analog Input Block
The raw value from the input is passed to the CHARC block specified, and the resulting output
from the characterizer is then scaled (if not already accomplished by the characterization),
clamped, and optionally filtered.
If the CHARC input is outside the characterizer end-points, and BADOPT indicates that an out-
of-range in that direction is to be considered Bad status and LASTGV is true, then the value of
PNT is not updated this cycle, and the filter is re-initialized if Filter Option (FLOP) is non-zero.
Channel Status
FBM Status
The following FBMs or FBCs and point numbers provide thermocouple inputs:
If IOMOPT is not set to 1, then IOM_ID and PNT_NO are ignored. The input is taken from
another block, as described in Section 2.5.2.8.
A temperature input read from a thermocouple must be linearized before it can be used. The tem-
perature value must also be compensated for the thermocouple’s cold junction temperature. You
can obtain this value from Point 9 (FBM202, FBM02, or FBM36), Point 15 (FBM212), or Point
33 (FBC02), or it may be provided directly as a temperature value by setting XREFOP true and
providing the compensation temperature, in degrees Celsius, in the XREFIN parameter. The
engineering unit value obtained from signal conditioning is always in degrees Celsius. KSCALE
48
2. AIN – Analog Input Block B0193AX – Rev AB
and BSCALE can be used to convert the engineering units from Celsius to Fahrenheit. To do this,
enter KSCALE = 1.8 and BSCALE = 32.0 (see Section 2.5.3).
Thermocouple inputs are converted in the FBM or FBC from millivolts into raw counts in the
range 0 to 64000. This conversion is reversed by the CP when you specify a SCI value between 20
and 28 or you specify Special Thermocouple signal conversion.
When you apply thermocouple signal conditioning to the raw count, you should set SCI to one of
the values 20 to 28 as follows:
The SCI specifies which thermocouple curve is to be used for the input signal. Unlike the general
SCIs 0 through 11, where you must tell the system what engineering units are associated with the
raw counts, with a thermocouple SCI the system knows what temperature range goes with each
SCI. The entire temperature range of the thermocouple is available to you, as it is stated in
“Appendix A – Signal Conditioning Tables” on page 67. HSCO1 and LSCO1 are only used to
specify what portion of the range is to be used for display purposes, and for calculating percent of
range for peer-to-peer connections.
Thermocouple Signal Conversion
Key Parameters: IOM_ID, PNT_NO, SCI, XREFOP, XREFIN, KSCALE, BSCALE
(The details of thermocouple signal conversions are listed in “Appendix A – Signal Conditioning
Tables” on page 67.)
Cold junction compensation is now computed:
The Point 9 value from the FBM202, FBM02, or FBM36, the Point 15 value from
the FBM212, or the Point 33 value from the FBC02 is ordinarily used for cold junc-
tion compensation. It provides the cold junction temperature from an RTD sensor
within the FBM on the ninth channel, or within the FBC on the thirty-third channel.
It is converted back from raw count to ohms in the CP.
The RTD conversion table for SCI 43 (100 Ohm IEC) is used to convert the Point 9,
Point 15, or Point 33 value from ohms to degrees Celsius. If the ohms value exceeds
the highest or lowest ohms values in this table, it is clamped at those values, the HOR
or LOR block parameter is set true, and the processing described in Section 2.6
occurs.
However, if the External Reference Option (XREFOP) is true or if IOMOPT indi-
cates that there is no FBM or FBC connected, the external reference in the External
Reference Input (XREFIN) is used. This must already be in degrees Celsius.
49
B0193AX – Rev AB 2. AIN – Analog Input Block
The Thermocouple conversion table for the SCI in use is entered with the degrees
Celsius value of the cold junction compensation and converted to the corresponding
millivolt value. The compensation in millivolts is added to the basic millivolt value,
and the table is entered again to convert to degrees Celsius. But if the sum is out of the
table range for millivolts then parameter LOR or HOR is set true and the processing
of Section 2.6 occurs. If LASTGV is true, then the value of PNT is not updated this
cycle, and the filter is re-initialized.
Special Thermocouple Signal Conversion
Key Parameters: EXTBLK, EXTOPT
You can specify Special Thermocouple Signal Conversion if the thermocouple does not conform
to one of the standard types in “Appendix A – Signal Conditioning Tables” on page 67. In this
case you should link the Extender Block parameter (EXTBLK) to a CHARC block whose
Extender Block Option (EXTOPT) parameter is set to 2.
The compensation reference in degrees Celsius, however obtained, is passed to the CHARC block
specified by EXTBLK. It is used at this time to perform reverse characterization; that is, it is
entered with the passed degrees Celsius value and the corresponding millivolt equivalent is
returned.
The returned reference millivolts are added to the raw value and this sum is passed to the CHARC
block as the input. The corresponding output is the equivalent degrees Celsius.
If the CHARC input is out of range then parameter LOR or HOR is set true and the processing
of Section 2.6 occurs. If LASTGV is true, then the value of PNT is not updated this cycle, and
the filter is re-initialized.
SCI = 40-44
Input = Raw Counts KSCALE BSCALE
oC oF
Linearization
2.5.2.3 X +
hor,lor
Channel Status
FBM Status
50
2. AIN – Analog Input Block B0193AX – Rev AB
51
B0193AX – Rev AB 2. AIN – Analog Input Block
SCI = 8
Input = 32
bit Raw Count Raw Count Hertz to
to Hertz Flow Rate
2.5.2.4 2.5.2.4
Channel Status
FBM Status
To apply pulse rate signal conditioning to the raw count, set SCI = 8. See the definition of this
SCI in “Appendix A – Signal Conditioning Tables” on page 67.
The Pulse Constant defined in the appendix converts the raw count in the ECB4 into the units of
Hertz. You must set Meter Factor (MTRF) with the value necessary to convert Hertz into the
configured Engineering Units for Output Range 1 (EO1). Typically MTRF is in units of Flow
Rate per Hertz.
For example, suppose a meter with an output factor of 50 pulses/gallon has a maximum flow rate
of 100 gallons/minute. Then:
The maximum pulse rate is 5000 pulses per minute.
5000 pulses per minute = 83.3 pulses per second (Hertz).
MTRF = 100/83.3 = 1.2 (Gallons/minute per Hertz).
EO1 = GPM (Gallons Per Minute).
You can apply pulse rate signal conditioning to the first four points of FBM06 and linear/square
root or characterizer signal conditioning to the last four points independently.
52
2. AIN – Analog Input Block B0193AX – Rev AB
Pulse count inputs are transferred as is to the output PNT. You cannot condition, characterize,
scale, clamp, or filter pulse count inputs. The entered value of SCI is ignored.
RAWC
Output
Engineering
SCI = 0 KSCALE BSCALE Units
X +
Input Engineering Units
Channel Status
FBM Status
The following FBMs and point numbers provide Intelligent Field Device inputs:
53
B0193AX – Rev AB 2. AIN – Analog Input Block
For FBM18, 43, and 243 the primary measurements of the eight instruments are input on
Points 1 to 8 respectively, the first auxiliary measurements are on Points 9 to 16 respectively, and
the second auxiliary measurements are on Points 17 to 24 respectively. These numbers should be
entered into PNT_NO.
For FBM39, 44, 46, and 246 the primary measurements of the four instruments are input on
Points 1 to 4 respectively, the first auxiliary measurements are on Points 9 to 12 respectively, and
the second auxiliary measurements are on Points 17 to 20 respectively. These numbers should be
entered into PNT_NO. (Points 5 to 8 contain the analog output readback values and may be pro-
cessed as described in Section 2.5.2.1.)
You should configure the DEV_ID parameter of a parent ECB (12, 23, 38R, or 73) with the let-
terbug of the associated FBM (18, 39, 43, 44, 46, 243, or 246). The DEV_ID of the AIN block
is a non-configurable data store which always matches the DEV_ID of the parent ECB. The
DEV_ID of the child ECB18 can be any 6-character array, which, after Release 4.0, is no longer
required to match the DEVNAM parameter.
The PARENT parameter of the child ECB18 is identical to the DEV_ID parameter of the parent
ECB (12, 23, 38R, or 73) when the ECB is installed by the System Configurator/Definition. If
you install the child ECB18 manually via the Integrated Control Configurator, you must set the
PARENT parameter with the pathname to the NAME parameter of the parent ECB (12, 23,
38R, or 73). This pathname must be of the form <local_compound_name>:<ecb_name> unless
the parent is in the compound <cp_letterbug>_ECB (the “ECB compound”), in which case the
pathname <ecb_name> is also acceptable. The DEV_ID of the parent is not accepted as the value
of PARENT.
Intelligent Field Device inputs can also be read directly from the child ECB18s by connecting the
Measurement (MEAS) input of the AIN block to certain ECB18 output parameters. This
method is described in Section 2.5.2.8.
The inputs from Intelligent Field Devices, HTG Interface Units, and Coriolis (Mass Flow) Trans-
mitters are floating point values which are normally expressed in the final output units specified
by EO1. However, you can apply characterization (see Section 2.5.2.1), scaling (see
Section 2.5.3), clamping (see Section 2.5.4), and/or filtering (see Section 2.5.5) if required by the
application. If you do not wish to apply characterization, you should set SCI to 0.
54
2. AIN – Analog Input Block B0193AX – Rev AB
AIN
PNT
MEAS
REALM REALM
or PID or
MEALM MEALM
OUT or
Optional Real (REALM) Optional Real (REALM)
or Measurement (MEALM) or Measurement (MEALM)
Alarm Block Alarm Block
AOUT
To Displays and
Maintenance or
Data Collection
ECB74 ECB18
ECB73
FBM43/243
IT
Water
Figure 2-8. Typical Configuration for Intelligent Transmitters with Window ECB
55
B0193AX – Rev AB 2. AIN – Analog Input Block
The output of the ECB74 can be linked directly to graphics, historical data collection, and other
blocks (such as the AOUT or PID), without using an AIN block interface.
This measurement can be passed to the PID MEAS parameter through an AIN block, or it may
be accessed directly by connecting MEAS to the ECB18's MEAS1, MEAS2, or MEAS3 parame-
ter. The AIN need only be used if filtering is desired. Measurement alarming can be performed, if
desired, by a measurement alarm block (MEALM) or a real alarm block (REALM) connected to
the ECB18 MEASn parameter or to the PID's MEAS parameter.
Figure 2-8 shows a typical configuration for FBM43/243 and its associated ECBs for an Intelli-
gent Positioner.
When AIN blocks read inputs from FBMs (non-intelligent input), IOMOPT is set to 1 (default
value; input values from the FBM or FBC input point specified by IOM_ID and PNT_NO).
When you use AIN with intelligent devices and their parent/child ECBs, set IOMOPT to 0
(input values from the MEAS parameter and signal conditioning is applied), or 2 (input values
from the MEAS parameter with no signal conditioning).
Refer to Section 2.5.2.8 for additional information on AIN input from another block.
If redundant analog or intelligent inputs are desired, an AINR block must be used since that is the
location for arbitration of analog inputs. Redundant out puts are not supported.
56
2. AIN – Analog Input Block B0193AX – Rev AB
device and point values for each of its 24 measurements, but their names do not follow this con-
vention (see “ECB13 - Hydrostatic Tank Gauge”).
If you set IOMOPT to 0, you can use any valid SCI value to condition the input, or use charac-
terization as described in Section 2.5.2.1. If IOMOPT is set to 2, you cannot use signal condi-
tioning or characterization, and the values of SCI and EXTBLK are ignored.
In either case (IOMOPT = 0, IOMOPT = 2) you can use scaling (see Section 2.5.3), clamping
(see Section 2.5.4), and/or filtering (see Section 2.5.5).
Since MEAS becomes an input, the normal copying of the PNT output to MEAS is suspended.
2.5.4 Clamping
Key Parameters: HSCO1, LSCO1, OSV, HOR, LOR, LASTGV
Clamping keeps the linearized and converted value within the block’s engineering units range, as
determined by HSCO1 and LSCO1.
The scaled value is clamped as follows:
Compute the Low and High Clamp Values:
Low Clamp Value = LSCO1 - ((OSV/100.0) * (HSCO1 - LSCO1))
High Clamp Value = HSCO1 + ((OSV1/100.0) * (HSCO1 - LSCO1))
If Scaled Value Low Clamp Value then:
57
B0193AX – Rev AB 2. AIN – Analog Input Block
osv (units)
HSCO1
INPUT
LSCO1
osv (units)
osv (units)
HSCO1
HOR = 1
OUTPUT
LOR = 1
LSCO1
osv (units)
2.5.5 Filtering
Key Parameters: FLOP, FTIM
The clamped value is subjected to possible filtering, as the last signal processing activity. Filtering
introduces a lag to changes in the input signal, thus smoothing out input changes or suppressing
noise. Note that this feature should be used with caution to avoid removing true process informa-
tion.
58
2. AIN – Analog Input Block B0193AX – Rev AB
NOTE
When an AIN block is configured so that the MEAS parameter is connected to
another block (as opposed to an input from the field), filtering options have no
effect when the block is running in a CP40B. Regardless of how the filtering
options are set, the AIN block running in a CP40B station does not filter the input
if the MEAS parameter is connected to another block.
If the block is in Auto and Filter Option (FLOP) is non-zero, either first-order lag filtering
(FLOP = 1) or second-order Butterworth filtering (FLOP = 2) or two-sample-average filtering
(FLOP = 3) is applied. The lag that first or second-order filtering introduces has time constant
Filter Time (FTIM). You can use them to attenuate measurement noise. However, if FTIM is set
too low, there is relatively insignificant filtering. If set too high, the lag may be large enough to
affect loop accuracy.
In addition to filtering, aliasing is minimized and resolution improved by configuring the RES
parameter of the ECB so that the fieldbus integration time is equal to twice the block period.
Refer to the section “Fieldbus Integration Time” in the appropriate Integrated Control Software
Concepts document (B0700AG or B0193AW).
OUTPUT
INPUT STEP
63% 100%
FTIM
59
B0193AX – Rev AB 2. AIN – Analog Input Block
INPUT STEP
OUTPUT
FTIM
Figure 2-11. Butterworth Filtering
60
2. AIN – Analog Input Block B0193AX – Rev AB
If there is no connected FBM or FBC, the first two conditions above are replaced by the
following:
The MEAS value is linked and it has bad status.
As noted in Section 2.7, neither the BAD parameter nor the PNT status bits are updated when
the block is in Manual. In Auto, you can obtain current information about the input quality by
connecting to either BAD or PNT.BAD.
Note the following relationship between the input parameter BADOPT, Out-of-Range condi-
tions, and the BAD status:
BADOPT = 0: Errant input conditions do not affect BAD, PNT.BAD, and BLK-
STA.BAD
BADOPT = 1: Low Out-of-Range causes BAD, PNT.BAD, and BLKSTA.BAD
to be set
BADOPT = 2: High Out-of-Range causes BAD, PNT.BAD, and BLKSTA.BAD
to be set
BADOPT = 3: High or Low Out-of-Range causes BAD, PNT.BAD, and BLK-
STA.BAD to be set
BADOPT = 4: Unhealthy scalar input (KSCALE or BSCALE) causes BAD,
PNT.BAD, and BLKSTA.BAD to be set (i.e. input value status is
BAD, OOS, ERR, or has a broken OM connection)
Note that for BADOPT 1-4, BAD and PNT.BAD are only set when the block is in AUTO mode
and BLKSTA.BAD is set regardless of the block mode.
NOTE
BLKSTA.BAD, PNT.BAD, and BAD track each other differently depending on
whether the block is in MANUAL or AUTO mode. For example, switching a block
to MANUAL and performing a "set" operation will clear the PNT.BAD status bit,
which allows the operator to define the PNT value as acceptable. However, the
BAD parameter's state and value will remain the same as if the block was in AUTO
mode.
61
B0193AX – Rev AB 2. AIN – Analog Input Block
When the compensation reference has been converted to millivolts and added to the raw value
millivolts, the resulting sum is used to access the proper SCI table. If this sum is higher or lower
than the limits of the table, HOR and LOR are handled as in the last paragraph.
If the Special Thermocouple option is in use, when the sum of the reference value and raw value is
used to re-enter the characterizer, the entry is compared against the characterizer end-points. If
the entry value is outside the end-points, HOR and LOR are handled as in the preceding para-
graph.
RTD Signal Conversion
When the raw value in ohms is higher or lower than the limits of the SCI table in use, parameters
HOR and LOR are handled as above.
Linear/Square Root Signal Conversion
The raw value is compared against the raw_low for this SCI as adjusted for the OSV in use. If
below this limit, LOR is set, and similarly for HOR if the upper limit is exceeded.
Characterizer Signal Conversion
The raw value is compared against the characterizer end-points. If the value is outside the end-
points, HOR and LOR are handled as above.
62
2. AIN – Analog Input Block B0193AX – Rev AB
When BAD is true because the compensated thermocouple millivolt value is outside
the limits of the SCI table in use, LASTGV causes PNT to retain its value from the
last cycle.
In the Special Thermocouple option, if the compensated value is outside the limits of
the characterizer end-points, PNT retains its value from the last cycle.
When an RTD ohms value is outside the limits of its SCI table, PNT retains its value
from the last cycle.
In linear/square root signal conditioning, if the raw value is beyond the lower or upper
value of the span, as adjusted by OSV, PNT retains its value from the last cycle.
In characterizer signal conversion, if the value is outside the limits of the characterizer
end-points, PNT retains its value from the last cycle.
When BAD is true because an out-of-range condition occurred due to
HSCO1/LSCO1 clamping, PNT retains its value from the last cycle only if SCI = 0
(no linearization), and IOMOPT indicates that an FBM or FBC is connected.
Figure 2-12 shows the effect of LASTGV in.
In the following situations, retention of the PNT value from the last cycle is independent of
BADOPT.
The connected FBM or FBC is out-of-service, regardless of the value of LASTGV.
The connected HTG, IT2, or Coriolis point is out-of-service, regardless of the value
of LASTGV.
The connected point has bad status and LASTGV is true.
63
B0193AX – Rev AB 2. AIN – Analog Input Block
LASTGV = 1
BADOPT = 2
SCI = 0
LASTGV = 0 IOMOPT = 1
osv (units)
HSCO1
Input Input
LSCO1
osv (units)
osv (units)
HSCO1
Output Output is the last
Output good value read
HOR = 1 HOR = 1 before Input went
out of range.
LSCO1
osv(units)
64
2. AIN – Analog Input Block B0193AX – Rev AB
If MANALM is true, alarming is enabled while in Manual mode, and is based on the manually-
set value of PNT.
In Manual mode, you may set the values of PNT, BAD, HOR, LOR, and the alarm indicators.
2.8 Alarming
The AIN block supports the Bad I/O, Out-of-Range, High/Low Absolute, and High-High/Low-
Low Absolute alarm types. The functionality of these alarm types is discussed in the appropriate
Integrated Control Software Concepts document (B0700AG or B0193AW).
The nomenclature for identical alarm types varies from block to block for historical reasons
involving backward compatibility requirements. The nomenclature for the AIN block is as fol-
lows:
The column titled “Option” in Table 2-2 specifies the required parameter configuration to enable
or disable the actual alarming of nay of the six alarm types.
65
B0193AX – Rev AB 2. AIN – Analog Input Block
ECB 1
PNT_NO
AIN
PNT
MEAS
PID
FBM 203
or
OUT FBM 03
MEAS
AOUT
OUT
TT
66
2. AIN – Analog Input Block B0193AX – Rev AB
67
B0193AX – Rev AB 2. AIN – Analog Input Block
SCI = 0: No Linearization
Conditioned = Raw
SCI = 1: Linear (0 to 64000)
Analog Input 0 to 20 mA
Conditioned = (Raw * (HSCO1 - LSCO1)/64000) + LSCO1
SCI = 2: Linear (1600 to 64000)
Analog Input 0 to 10 V dc
Conditioned = ((Raw - 1600) * (HSCO1 - LSCO1)/62400) + LSCO1
SCI = 3: Linear (12800 to 64000)
Analog Input 4 to 20 mA
Conditioned = ((Raw - 12800) * (HSCO1 - LSCO1)/51200) + LSCO1
SCI = 4: Square Root (0 to 64000)
Analog Input 0 to 20 mA
Conditioned = (Sqrt(64000 * Raw) * (HSCO1 - LSCO1)/64000) + LSCO1
SCI = 5: Square Root (12800 to 64000), Clamped
Analog Input 4 to 20 mA
If Raw 12800
Conditioned = LSCO1
Otherwise,
Conditioned = (Sqrt(51200 * (Raw - 12800)) * (HSCO1 - LSCO1)/51200) +
LSCO1
SCI = 6: Square Root, Low Cutoff (0 to 64000), Clamped < 3/4%
Analog Input 0 to 20 mA
If Raw 480
Conditioned = LSCO1
Otherwise,
Conditioned = (Sqrt(64000 * Raw) * (HSCO1 - LSCO1)/ 64000) + LSCO1
SCI = 7: Square Root, Low Cutoff (12800 to 64000), Clamped < 3/4%
Analog Input 4 to 20 mA
If Raw 13184
Conditioned = LSCO1
Otherwise,
Conditioned = (Sqrt(51200 * (Raw - 12800)) * (HSCO1 - LSCO1)/51200) +
LSCO1
SCI = 8: Pulse Rate
Conditioned = Raw * MTRF * Pulse Constant
(Where Pulse Constant = 25000.0/(65535.0 * 65535.0) = 0.582094373 E-05 =
0.00000582094373)
68
2. AIN – Analog Input Block B0193AX – Rev AB
69
B0193AX – Rev AB 2. AIN – Analog Input Block
70
2. AIN – Analog Input Block B0193AX – Rev AB
Hardware
201
202
203
204
205
206
207
211
212
213
217
242
237
241
Type
Point
1 I I I I I I I I I I I O O I
2 I I I I I I I I I I I O O I
3 I I I I I I I I I I I O O I
4 I I I I I I I I I I I O O I
5 I I I O O I I I I I I O O I
6 I I I O O I I I I I I O O I
7 I I I O O I I I I I I O O I
8 I I I O O I I I I I I O O I
9 C I I I I O O
10 I I I I O O
11 I I I I O O
12 I I I I O O
13 I I I I O O
14 I I I I O O
15 I I C I O O
16 I I I O O
17 I
18 I
19 I
20 I
21 I
22 I
23 I
24 I
25 I
26 I
27 I
28 I
71
B0193AX – Rev AB 2. AIN – Analog Input Block
Hardware
201
202
203
204
205
206
207
211
212
213
217
242
237
241
Type
Point
29 I
30 I
31 I
32
Legend: I = Input
O = Readback from Output
C = Thermal Compensation Channel
Hardware
Type 1 2 3 4 5 6 17 18 22 23 33 36 37 38 39 43 44 46
Point
1 I I I I I I I I I I I I O I I I I I
2 I I I I I I I I O I I I O I I I I I
3 I I I I I I I I I I I O I I I I I
4 I I I I I I I I I I I O I I I I I
5 I I I O O O O I I I I O I O I O O
6 I I I O O O O I I I I O I O I O O
7 I I I O O O I I I I O I O I O O
8 I I I O O O I I I I O I O I O O
9 C I C
10 I
11 I
12 I
13 I
14 I
15 I
16 I
17 I
18 I
19 I
20 I
21 I
22 I
23 I
72
2. AIN – Analog Input Block B0193AX – Rev AB
Hardware
Type 1 2 3 4 5 6 17 18 22 23 33 36 37 38 39 43 44 46
Point
24 I
25
26
27
28
29
30
31
32
33
Legend: I = Input
O = Readback from Output
C = Thermal Compensation Channel
Hardware
Type 57 58 59 61 63 95
Point
1 I I I O I I
2 I I I O I I
3 I I I O I I
4 I I I O I I
5 I I I O I I
6 I I I O I I
7 I I I O I I
8 I I I O I I
9 I I I O I I
10 I I I O I I
11 I I I O I I
12 I I I O I I
13 I I I O I I
14 I I I O I I
15 I I I O I I
16 I I I O I I
17 I I I I
73
B0193AX – Rev AB 2. AIN – Analog Input Block
Hardware
Type 57 58 59 61 63 95
Point
18 I I I I
19 I I I I
20 I I I I
21 I I I I
22 I I I I
23 I I I I
24 I I I I
25 I I I I
26 I I I I
27 I I I I
28 I I I I
29 I I I I
30 I I I I
31 I I I I
32 I I I I
33 C C
Legend: I = Input
O = Readback from Output
C = Thermal Compensation Channel
NOTE
Hardware Type 57 is used for FBC21.
Hardware Type 58 is used for FBC01.
Hardware Type 59 is used for FBC17.
Hardware Type 61 is used for FBC04.
Hardware Type 63 is used for FBC02.
Hardware Type 95 is used for FBC02 Redundant.
74
3. AINR – Redundant Analog Input
Block
This chapter covers the Redundant Analog Input Block, or AINR, its features, parameters and
functions, bad input and out-of-range processes, manual mode, alarming, and application
diagrams, and also provides appendixes on signal conditioning and valid input connections.
3.1 Overview
The Redundant Analog Input Block (AINR) receives an input value from a single process point
via two redundant Fieldbus Modules (FBMs) or Fieldbus Cards (FBCs) of the analog, pulse
count, or Intelligent Field Device types, or from two other blocks. Based on the quality of the two
inputs and the user specification of a default selection, one of the inputs is chosen for conversion
into suitable form for use in the I/A Series control strategy. The output value is expressed in the
appropriate engineering units. See Figure 3-1.
Characterizer
(None)
75
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
3.3 Features
Redundant analog inputs from separate FBMs or FBCs
Both redundant and non-redundant points can coexist in the same analog input FBM
or FBC. The non-redundant points are connected to AIN blocks
Fieldbus Module option to permit configuration of AINR blocks without FBM or
FBC connections (inputs from two other blocks instead of from hardware)
User selection of primary or secondary input, with automatic switchover if the
selected input is bad
Processing of Pulse Rate and Pulse Count inputs
Acceptance of Hydrostatic Tank Gauge (HTG), Intelligent Field Device (IFD), and
Coriolis inputs
Connectability to Intelligent Field Device Window ECBs
Choice of Linear/Square Root, Thermocouple, RTD, or specially characterized signal
conditioning
External or FBM- or FBC-based temperature reference for thermocouple cold junc-
tion compensation
Optional characterizer block (CHARC) extension
Output gain and offset scaling
Output clamping between user-selectable output limits
First order, second order, or two-sample-average filtering
Manual mode availability for disconnecting control schemes from the process, for
simulation and checkout purposes
Raw Count output availability, for the selected point, used for troubleshooting pur-
poses; includes floating point values from HTG, IFD, and Coriolis inputs
Optional Last Good Value output retention on I/O failure
76
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
3.4 Parameters
Table 3-1. AINR Block Parameters
77
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
78
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use.
For the AINR block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
79
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the AINR block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
OOR B4
B5
B6
B7
B8
B9
CRIT PRTYPE
HMA
HHA
LMA
BAD
LLA
INH
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: See parameter
(Least PRTYPE for values used in
Significant) the AINR block
5 to 7 CRIT_MSK Criticality; 5 = lowest prior-
ity, 1= highest priority
16 LMA Low Absolute Alarm ALMSTA.B16
17 HMA High Absolute Alarm ALMSTA.B15
22 BAD Bad I/O Alarm for both Pri- ALMSTA.B10
mary and Secondary
24 LLA Low-Low Absolute Alarm ALMSTA.B8
80
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
25 HHA High-High Absolute Alarm ALMSTA.B7
28 OOR Out-of-Range Alarm ALMSTA.B4
29 INH Inhibit Alarm (see Note) ALMSTA.B3
30 UNACK Unacknowledged ALMSTA.B2
NOTE
Bit 29 is unused if no alarms are configured for the AINR block; that is, if the
disable alarm state is selected from the block detail display, Bit 29 is not set unless
an alarm is configured for that block.
AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is gen-
erated.
BAD Bad is a boolean output parameter which is set true when both of the
inputs to the block have Bad status. In this case, both the Bad Primary
(BLKSTA.BAD) and the Bad Secondary (BLKSTA.BADR) bits are set
true.
BADOPT Bad and Out-of-Range Option is a short integer option that specifies the
conditions that set the final Bad status true for each of the input points.
Values:
0 = Bad Status (PNT.BAD) only
1 = Bad Status (PNT.BAD) or Low Out-of-Range (LOR)
2 = Bad Status (PNT.BAD) or High Out-of-Range (HOR)
3 = Bad Status (PNT.BAD) or LOR or HOR.
4 = Bad Status (PNT.BAD) when a scalar input (KSCALE or BSCALE) is
not healthy (i.e., value status is BAD, OOS, or has a broken OM connec-
tion)
5 = Bad Status (PNT.BAD) or one of the following is unhealthy: LOR or
KSCALE or BSCALE
6 = Bad Status (PNT.BAD) or one of the following is unhealthy: HOR or
KSCALE or BSCALE
7 = Bad Status (PNT.BAD) or one of the following is unhealthy: LOR or
HOR or KSCALE or BSCALE
81
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
The default value is 3. Bad Status in the above table is a Logical OR of bad
ECB status (that is, the FBM or FBC itself is bad) and bad channel status
(that is, the connected point is bad). If there is no FBM or FBC connec-
tion, then Bad Status in the above table is considered to exist when
MEAS_P (for the primary side) or MEAS_S (for the secondary side) is
linked and has bad status.
BAG Bad Alarm Group is a short integer input that directs Bad alarm messages
to one of eight groups of alarm devices. You can change the group number
through the workstation.
BAO Bad Alarm Option is a configurable option that enables alarm generation
for each state change of the BAD parameter. The parameter values are:
0= No generation of Bad alarms.
1= Bad alarm generation if the FBM or FBC has Bad
status.
2= Bad alarm generation in the measurement (MEAS or
OUTPUT parameter) of a PID block family,
RATIO block, or BIAS block when the MEAS or
OUT parameter is connected to the AINR block.
BAP Bad Alarm Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the Bad alarms (1 is the highest priority).
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the AINR block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
FBMR B23
B24
B25
B26
B27
B28
B29
B30
BADR B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
FBM
BAD
DEV
SEL
ON
MA
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
0 SEL Redundant Input Selected (Pri- BLKSTA.B32
mary Input Selected when
False)
1 BADR Bad Secondary I/O BLKSTA.B31
2 DEV Primary/Secondary Deviation BLKSTA.B30
Limit Exceeded
82
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
8 FBM Primary FBM or FBC Failure BLKSTA.B24
9 FBMR Secondary FBM or FBC Failure BLKSTA.B23
11 MA Manual = 0, Auto = 1 BLKSTA.B21
12 BAD Bad Primary I/O BLKSTA.B20
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
20 WLCK Access Locked BLKSTA.B12
BSCALE Offset Scale is a real input which is used as the offset factor, in output
units, applied to the conditioned signal to rescale it for compatibility with
the output units. It is usually used to convert from Celsius to Fahrenheit
scales.
CRIT Criticality is an integer output that indicates the priority, ranging from
1 to 5, of the block’s highest currently active alarm (1 is the highest prior-
ity). An output of zero indicates the absence of alarms.
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. (See ERCODE for the list of all possible validation errors in this
block.) In that case, no further processing of the block occurs, including
further validation of remaining parameters. To return DEFINE to a true
value, correct all configuration errors and re-install the block. If DEFINE
= 0, the bit BLKSTA.UDEF = 1.
DELTO1 Change delta for Output Range 1 is a configurable real value that defines
the minimum percent of the output range that triggers change-driven
connections for parameters in the range RO1. The default value is 1.0 per-
cent. If communication is within the same control station that contains
the block’s compound, DELTO1 has no effect.
DEVIDR Redundant Device Identifier is a character array data store that indicates
the 6-character letterbug of the secondary connected FBM or FBC. In the
case of IFD inputs, DEVIDR contains the letterbug of the secondary par-
ent FBM (18, 43, 39, 44, or 46) to which the instrument interfaces.
83
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
DEV_ID Device Identifier is a character array data store that indicates the 6-charac-
ter letterbug of the primary connected FBM or FBC. In the case of IFD
inputs, DEV_ID contains the letterbug of the primary parent FBM (18,
43, 39, 44, or 46) to which the instrument interfaces.
EO1 Engineering Units for Output Range 1 provides the engineering units text
for the values defined for the output 1 range. The value configured for this
text string should be consistent with the values used for HSCO1 and
LSCO1.
ERCODE Error Code is a string data store which indicates the type of configuration
error which caused the block’s DEFINE parameter to be set false. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. For the AINR block, the following list specifies
the possible values of ERCODE, and the significance of each value in this
block:
ERCODE Description
W44 HSCO1 less than LSCO1)
W48 FLOP or BADOPT out of range
W49 Invalid CHARC block extension
W50 Invalid SCI
W51 Cluster I/O specified but type is not analog input or ana-
log output. Value 51 also used to indicate any mismatch
between hardware or software types of the primary and
secondary points.
W52 PNT_NO out of range for the specified FBMs or FBCs
W54 Specified IOM_ID or IOMIDR does not exist
EXTBLK Extender Block is a long input that specifies the pathname to the
BLKSTA parameter of a CHARC block used as an extender block.
The CHARC block must be in the same CP and compound as the
AINR block.
FLOP Filter Option is an option parameter that specifies the type of filtering that
is applied to the selected input signal before it is set into the PNT output.
FLOP has the following values:
0 = No Filtering
1 = First Order Lag Filtering
2 = Butterworth Filtering
3 = Two-Sample-Average Filtering
84
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
FTIM Filter Time is an input that represents the time in minutes for the output
value to reach a certain percentage of its ultimate value after a step change
to the input. For first order lag filtering this percentage is approximately
63 percent, and for Butterworth filtering it is approximately 50 percent.
FTIM is not applicable to two-sample-average filtering.
HAI High Absolute Alarm Indicator is a boolean output that is true whenever
the value of PNT (the selected point) is greater than the value of HAL and
option HLOP is set to 1 or 2.
HAL High Absolute Alarm Limit is a real input that defines the value of the
PNT output (the selected point) that triggers a High Absolute Alarm.
HHAGRP High-High Absolute Alarm Group is a short integer input that directs
High-High Absolute alarm messages to one of eight groups of alarm
devices.
HHALIM High-High Absolute Alarm Limit is a real input that defines the value of
the PNT output (the selected point) that triggers a High-High Absolute
Alarm.
HLDB High/Low Deadband is a real input that defines the size of the deadband
that applies to the high, low, high-high and low-low absolute alarm limits
of the PNT output (the selected point).
85
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
HLGP High/Low Group is a short integer input that directs High/Low Absolute
alarm messages to one of eight groups of alarm devices.
HLOP High/Low Option is a configured short integer input that enables Abso-
lute High and/or Low alarming of the PNT output (the selected point), or
disables absolute alarming altogether. Values:
0 = No Alarming
1 = High and Low Absolute Alarming
2 = High Absolute Alarming Only
3 = Low Absolute Alarming Only
HLPR High/Low Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the High/Low Absolute alarm (1 is the highest priority).
HOR High Out-of-Range is a boolean output that is set true if any one of the
seven high out-of-range conditions described in Section 3.6.2 (Out-of-
Range Conditions) occurs for either the primary point, the secondary
point, or both.
HSCO1 High Scale for Output Range 1 is a real value that defines the upper range
value for the block’s output.
INHALM Inhibit Alarm contains packed boolean values that represent alarm genera-
tion inhibit requests for each type of alarm configured in the block. For
the AINR block, only the following bits are used:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B1
B2
B3
B4
B5
B6
B7
B8
B9
Boolean
Bit Number* Connection
(0 to 15) Description When True (B16 to B1)
0 (Least Inhibit Low Absolute Alarm INHALM.B16
Significant)
1 Inhibit High Absolute INHALM.B15
Alarm
6 Inhibit Bad I/O Alarm INHALM.B10
8 Inhibit Low-Low Absolute INHALM.B8
Alarm
9 Inhibit High-High Abso- INHALM.B7
lute Alarm
12 Inhibit Out-of-Range Alarm INHALM.B4
86
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting. Alarms can also be inhibited based on INHALM and the com-
pound parameter CINHIB.
INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do not
disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the time
the alarm transitions into the inhibited state, clear the alarm
indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages may be acknowledged by explicitly setting
UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages may be acknowledged by explicitly setting
UNACK false.
INHSTA Inhibit Status contains packed long values that represent the current
inhibit status of each alarm type configured in the block. For the AINR
block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BAD B10
B11
B12
B13
B14
HMA B15
LMA B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
OOR B4
B5
B6
HHA B7
LLA B8
B9
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
16 LMA Low Absolute Alarm Inhibited INHSTA.B16
17 HMA High Absolute Alarm Inhibited INHSTA.B15
22 BAD Bad I/O Alarm Inhibited INHSTA.B10
24 LLA Low-Low Absolute Alarm INHSTA.B8
Inhibited
25 HHA High-High Absolute Alarm INHSTA.B7
Inhibited
28 OOR Out-of-Range Alarm Inhibited INHSTA.B4
87
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state as specified in the checkpoint file.
The block asserts this initial M/A state whenever:
It is installed into the Control Processor database.
The Control Processor undergoes a reboot operation.
The compound in which it resides is turned on.
The INITMA parameter itself is modified via the control configu-
rator. (The block does not assert INITMA on ordinary
reconfiguration.)
INITMA is ignored if MA has an established linkage.
IOMOPT FBM Option is a short integer specifying whether FBM or FBC connec-
tions to the block exist, and, if not, whether signal conditioning is to be
applied to the alternate sources of the block input. Values:
0= The AINR block obtains input values from the MEAS_P and
MEAS_S parameters and conditions them as specified by the
value of SCI.
1= The block obtains input values from the FBM or FBC input
points specified by IOM_ID, IOMIDR, and PNT_NO.
2= The block obtains input values from the MEAS_P and MEAS_S
parameters. No signal conditioning is performed. The inputs are
subjected only to scaling for units conversion (via KSCALE and
BSCALE), clamping using the configured HSCO1, LSCO1,
and OSV parameters, and filtering, in that order.
IOM_ID Fieldbus Module Identifier is a configurable string that specifies the path-
name of the ECB for the primary FBM or FBC to which the block is con-
nected.
IOM_ID has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB. For
IFD inputs, this is the letterbug of the primary parent FBM (18, 43, 39,
44, or 46), not the connected transmitter.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOM_ID configuration. In this case, the 1-12
character ECB block name is sufficient. For IFD inputs, the NAME
88
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
parameter of the primary parent ECB (12, 23, or 38R), not the child ECB
18, must be used.
KSCALE Gain Scale is a real input which is used as the gain factor applied to the
conditioned signal to rescale it for compatibility with the output units.
KSCALE and BSCALE are always applied after any signal conditioning or
characterization of the raw input. It is usually used to convert from Celsius
to Fahrenheit scales.
LAI Low Absolute Alarm Indicator is a boolean output that is true whenever
the value of PNT (the selected point) is less than the value of LAL and
option HLOP is set to 1 or 3.
LAL Low Absolute Alarm Limit is a real input that defines the value of the
PNT output (the selected point) that triggers a Low Absolute Alarm.
LASTGV Last Good Value is a boolean option. When true in the situations
described in Section 3.6.4, LASTGV causes the previous value of the
input side (primary or secondary) to be retained, and the value obtained
this cycle to be ignored.
LLAIND Low_Low Absolute Alarm Indicator is a boolean output that is true when-
ever the value of PNT (the selected point) is less than the value of
LLALIM and option HHAOPT is set to 1 or 3.
LLALIM Low-Low Absolute Alarm Limit is a real input that defines the value of the
PNT output (the selected point) that triggers a Low-Low Absolute Alarm.
LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1-6 character logi-
cal device name of the Display Manager task.
LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are only honored (subject to the usual access rules) from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set false by any workstation at any time, whereupon a
new LOCKRQ is accepted, and a new ownership workstation identifier
written to LOCKID.
89
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
LOR Low Out-of-Range is a boolean output that is set true if any one of the
seven low out-of-range conditions described in Section 3.6.2 (Out-of-
Range Conditions) occurs for either the primary point, the secondary
point, or both.
LSCO1 Low Scale for Output Range 1 is a real value that defines the lower range
value for the block’s output.
MEAS Measurement, in the AINR block, is used only when no FBM or FBC is
configured. In this case it contains the same value and status as the block
output PNT.
MTRF Meter Factor, a real input, is a scaling parameter used with the pulse rate
input signal conversion (SCI = 8) to translate an input pulse rate in Hertz
to the desired engineering units of the process output. In most applica-
tions it would be considered to have the dimension Flow Rate per Hertz.
90
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
ORAG Out-of-Range Alarm Group is a short integer input that directs Out-of-
Range alarm messages to one of eight groups of alarm devices.
OSV Output Span Variance is a configurable real input which defines the per-
cent by which the output clamp limits exceed the output range defined by
HSCO1 and LSCO1.
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
91
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)
Period Length Period Length
0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****
* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).
PNT Point is the block output. It represents the selected analog input after all
block operations have been performed.
PNT_NO Point Number is the FBM or FBC points to which the AINR block is
connected. In the case of IFD inputs, the value of PNT_NO is the same
as the CHAN parameter of the children ECB18s if the desired input is the
primary measurement of the instrument. If the first or second auxiliary
measurement is desired, see Section 3.5.2.6 to determine the required
value of PNT_NO.
PROPT Propagate Error Option is a boolean input which determines whether the
status of the selected input should be reflected in the Error bit of PNT sta-
tus. If the AINR block is in Auto and no FBM or FBC is configured
(IOMOPT = 0 or 2), the true value of PROPT causes any one of the fol-
lowing conditions to be reflected as an Error status of PNT:
Bad status bit in both MEAS_P and MEAS_S
92
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. The PRTYPE output of this block
consists of the following alarm types:
0 = No active alarm
1 = High Absolute
2 = Low Absolute
3 = High-High Absolute
4 = Low-Low Absolute
8 = Bad
25 = Out-of-Range
If there is more than one active alarm with highest priority, PRTYPE
reports the alarm type according to which occurs first in the following list:
Out-of-Range
High-High Absolute
Low-Low Absolute
High Absolute
Low Absolute
For example, if the Bad and High-High Absolute alarms both have prior-
ity 3 and the Out-of-Range alarm has priority 4, and all three alarms are
active, then CRIT = 3 and PRTYPE = 8.
93
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
RAWC Raw Count is the value read from the ECB into the block before any form
of signal conditioning, characterization, scaling, clamping or filtering is
applied. It is of real data type although the ECB value may be integer, or
long integer.
94
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
RO1 Range Output 1 is a real array consisting of the three parameters HSCO1,
LSCO1, and DELTO1. The array members are configured by their indi-
vidual names; however, RO1 and its members may be accessed on an array
basis by user tasks and displays.
SELREQ Select Request specifies which of the redundant input points is to be used
(0 = primary, 1 = secondary). The selection decision specified by SELREQ
is overridden if the specified point has Bad or Out-of-Service status. If
both points have Bad or Out-of-Service status, the primary point is used.
The value of SELREQ is changed by the internal block logic, until the
next set or reconfiguration, whenever the specified point is Bad or Out-of-
Service and the alternate point is not.
TYPE When you enter “AINR” or select it from a configurator list, an identify-
ing integer is created specifying this block type.
UNACK Unacknowledge is a boolean output parameter which is set true, for notifi-
cation purposes, whenever the block goes into alarm. It is settable, but sets
are only allowed to clear UNACK to false, and never in the opposite direc-
tion. The clearing of UNACK is normally via an operator “acknowledge”
pick on a default display, user display, or Current Alarms Display, or via a
user task.
XREFIN External Reference Input is a real input used as the source of the cold
junction reference temperature for thermocouple SCIs when XREFOP is
configured true, or no FBM or FBC is configured. The block calculations
assume that XREFIN is in units of degrees Celsius.
ZERROP Zero Error Point is a status bit that indicates an out-of-range error (LOL
or LOR) in a DOWNSTREAM parameter (PNT.ERR) and also to indi-
cate an unconditional request for initialization in an UPSTREAM param-
eter (BCALCO.INITU). Normally, these usages are mutually exclusive
and there is no conflict. However, in some control applications where a
DOWNSTREAM parameter is used as part of an UPSTREAM connec-
tion, a High Out-of-Range (HOR) or Low Out-of-Range (LOR) condi-
tion can be misinterpreted as an unconditional initialization (INITU)
request. ZERROP is not configurable. To disable the setting of PNT.ERR
when out-of-range, you must use OMSET, OMA, or some other utility to
set ZERROP = 1.
95
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
NOTE
PNT.ERR status can also be set when propagating (PROPT = 1) a simulated input
(IOMOPT = 0) and the measurement (MEAS) is BAD, OOS ERR, or Discon-
nected. This action is unaffected by the ZERROP option.
3.5 Functions
3.5.1 Detailed Diagram
IOM_ID
IOMIDR
PNT_NO SCI XREFOP KSCALE FLOP
XREFIN BSCALE HSCO1 FTIM
LSCO1 (M)
FROM EXTBLK OSV SELREQ
ECBs IOMOPT
1 o MA
Signal Point PNT
Conditioning* Scaling Clamping Filtering o o
Select (A)
MEAS_P 0,2
output
MEAS_S units RAWC
HSCO1 LSCO1 Converted
OOR LOR, HOR
Primary
OR OR
Raw Data Secondary
OOR
Test
Primary
ECB Status BAD
BADOPT Secondary AND
PNT.BAD
Channel BLKSTA.BAD
Status
BLKSTA.BADR
BAD
AUTO Alarming
MANUAL OR
AND AND
MANALM BAO
* See individual diagrams
96
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
Engineering
Units LASTGV
BAD
HSCO1 MA
SCI = 0-7, 9-10 FLOP
OSV FTIM (M)
Input Pri. = Raw Counts KSCALE BSCALE SELREQ o
LSCO1
Input Sec. = Raw Counts Linearization
HOR/LOR Clamping Filtering Point PNT
X + o o
3.5.2.1 3.5.4 3.5.5 Selection (A)
output
hor, lor hor, lor
units ABSOLUTE
Alarming
3.7
Channel Status Pri. RAWC
FBM Status Pri.
BAD
Alarming BAD
Channel Status Sec. 3.7
FBM Status Sec.
BADOPT
Figure 3-3. General Analog Input Example
For all types of inputs, you specify the primary FBM or FBC in the Fieldbus Module Identifier
(IOM_ID) parameter, and the secondary FBM or FBC in the Redundant Fieldbus Module Iden-
tifier (IOMIDR) parameter. The source point within the FBMs or FBCs is specified by the Point
Number (PNT_NO) parameter. Since the point must be the same in both the primary and the
secondary, there is only one PNT_NO parameter. You are not limited to the types of FBMs and
FBCs defined as redundant; any analog inputs may be specified, provided only that the software
and hardware types are identical.
The following are the FBMs or FBCs and point numbers providing general analog input:
97
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
The following points in the above table are physical outputs rather than physical inputs. You can
use the readback values from these points as inputs to the AINR block:
FBM204: Points 5 to 8
FBM205: Points 5 to 8
FBM237: Points 1 to 8
FBM04: Points 5 to 8
FBM05: Points 5 to 8
FBM06: Points 5 to 8
FBM17: Points 5 to 6
FBM37 Points 1 to 8
FBM39: Points 5 to 8
FBM44: Points 5 to 8
FBM46: Points 5 to 8
FBC04: Points 1 to 16
If FBM Option (IOMOPT) is not set to 1, then IOM_ID, IOMIDR, and PNT_NO are
ignored. The input is taken from another block or blocks, as described in Section 3.5.2.7. General
analog inputs are converted by the FBM or FBC from the electrical process input into a form
called “raw count”, which is an integer value between 0 and 64000. Based on the Signal Condi-
tioning Index (SCI) and the parameter Extender Block (EXTBLK) setting, a determination is
made as to how the raw count is to be conditioned.
If you wish the raw count to be characterized by a CHARC block, you should link the Extender
Block (EXTBLK) parameter of the AINR block to a CHARC block, and set the Extender Block
Option (EXTOPT) of that CHARC block to 1. The raw count is then characterized as described
below, and the value of SCI is ignored. The characterizer output should be expressed in counts,
with full scale equal to 64000.
98
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
If you wish to apply linear or square root signal conditioning to the raw count, you should set SCI
to one of the following values:
99
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
XREFOP
SCI = 20-28 KSCALE BSCALE
Input 1 = Raw Counts XREFIN
(1.8) (32.0)
Channel 9 for Input 1 o
Linearization oC F
Cold 3.5.2.2 X +
Input 2 = Raw Counts
Channel 9 for Input 2 Junction
Compensation hor, lor
External Block
hor, lor
Channel Status 1
FBM Status 1
Channel Status 2
FBM Status 2
100
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
The following FBMs or FBCs and point numbers provide thermocouple inputs:
If IOMOPT is not set to 1, then IOM_ID, IOMIDR, and PNT_NO are ignored. The input is
taken from another block or blocks, as described in Section 3.5.2.7.
A temperature input read from a thermocouple must be linearized before it can be used. The tem-
perature value must also be compensated for the thermocouple’s cold junction temperature. This
value may be obtained from Point 9 (FBM202, FBM02, or FBM36), Point 15 (FBM212), or
Point 33 (FBC02), or it can be provided directly as a temperature value by setting XREFOP true
and providing the compensation temperature, in degrees Celsius, in the XREFIN parameter. The
engineering unit value obtained from signal conditioning is always in degrees Celsius. KSCALE
and BSCALE can be used to convert the engineering units from Celsius to Fahrenheit. To do this,
enter KSCALE = 1.8 and BSCALE = 32.0. (See Section 3.5.3.)
Thermocouple inputs are converted in the FBM or FBC from millivolts into raw counts in the
range 0 to 64000. This conversion is reversed by the CP when you specify a SCI value between 20
and 28 or you specify Special Thermocouple signal conversion.
When you apply thermocouple signal conditioning to the raw count, you should set SCI to one of
the values 20 to 28 as follows:
SCI = 20: Type B Thermocouple
SCI = 21: Type E Thermocouple
SCI = 23: Type J Thermocouple
SCI = 24: Type K Thermocouple
SCI = 25: Type N Thermocouple
SCI = 26: Type R Thermocouple
SCI = 27: Type S Thermocouple
SCI = 28: Type T Thermocouple
The SCI specifies which thermocouple curve is to be used for the input signal. Unlike the general
SCIs 0 through 11, where you must tell the system what engineering units are associated with the
raw counts, with a thermocouple SCI the system knows what temperature range goes with each
SCI. The entire temperature range of the thermocouple is available to you, as it is stated in
“Appendix A – Signal Conditioning Tables” on page 118. HSCO1 and LSCO1 are only used to
specify what portion of the range is to be used for display purposes.
101
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
102
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
SCI = 40-44
KSCALE BSCALE
Input 1 = Raw Counts oC oF
Linearization
Input 2 = Raw Counts 3.5.2.3 X +
hor, lor
Channel Status 1
FBM Status 1
Channel Status 2
FBM Status 2
103
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
MTRF
SCI = 8
Input 1 = 32 bit
Raw Count Raw Count Hertz to
to Hertz Flow Rate
3.5.2.4 3.5.2.4
Input 2 = 32 bit
Raw Count
Channel Status 1
FBM Status 1
Channel Status 2
FBM Status 2
104
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
To apply pulse rate signal conditioning to the raw count, set SCI = 8. See the definition of this
SCI in “Appendix A – Signal Conditioning Tables” on page 118.
The Pulse Constant defined in the appendix converts the raw count in the ECB4 into the units of
Hertz. You must set Meter Factor (MTRF) with the value necessary to convert Hertz into the
configured Engineering Units for Output Range 1 (EO1). Typically MTRF is in units of Flow
Rate per Hertz.
For example, suppose a meter with an output factor of 50 pulses/gallon has a maximum flow rate
of 100 gallons/minute. Then:
The maximum pulse rate is 5000 pulses per minute
5000 pulses per minute = 83.3 pulses per second (Hertz)
MTRF = 100/83.3 = 1.2 (Gallons per Minute per Hertz)
EO1 = GPM (Gallons Per Minute).
You can apply pulse rate signal conditioning to the first four points of FBM06 and linear/square
root or characterizer signal conditioning to the last four points independently.
The selected pulse count input is transferred as is to the output PNT. You cannot condition, char-
acterize, scale, clamp, or filter pulse count inputs. The entered value of SCI is ignored.
105
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
Channel Status 1
FBM Status 1
Channel Status 2
FBM Status 2
The following FBMs and point numbers provide Intelligent Field Device inputs:
For FBM18 and 43, the primary measurements of the eight instruments are input on points
1 to 8 respectively, the first auxiliary measurements are on Points 9 to 16 respectively, and the sec-
ond auxiliary measurements are on Points 17 to 24 respectively. These numbers should be entered
into PNT_NO.
For FBM39, 44, and 46 the primary measurements of the four instruments are input on points
1 to 4 respectively, the first auxiliary measurements are on Points 9 to 12 respectively, and the sec-
ond auxiliary measurements are on Points 17 to 20 respectively. These numbers should be entered
into PNT_NO. Points 5 to 8 contain the analog output readback values and can be processed as
described in Section 3.5.2.1.
106
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
You should configure the DEV_ID parameter of the primary parent ECB (12, 23, or 38R) with
the letterbug of its associated FBM (18, 43, 39, 44, or 46) and the DEV_ID of the secondary par-
ent ECB with the letterbug of the secondary FBM. The DEV_ID and DEVIDR of the AINR
block are non-configurable data stores which always match the DEV_IDs of the primary and sec-
ondary parent ECB, respectively. The DEV_IDs of the children ECB18s can be any 6-character
arrays which after Release 4.0, are no longer required to match the corresponding DEVNAM
parameters.
The PARENT parameter of the child ECB18 on each side is identical to the DEV_ID parameter
of the parent ECB (12, 23, or 38R) on that side when the ECBs are installed by the System Con-
figurator/Definition. If you install the children ECB18s manually via the Integrated Control
Configurator, you must set each PARENT parameter with the pathname to the NAME parame-
ter of its parent ECB (12, 23, or 38R). This pathname must be of the form
<local_compound_name>:<ecb_name> unless the parent is in the compound
<cp_letterbug>_ECB (the “ECB compound”), in which case the pathname <ecb_name> is also
acceptable. The DEV_ID of the parent is not be accepted as the value of PARENT.
Intelligent Field Device inputs may also be read directly from the children ECB18s by connecting
the Primary and Secondary Measurements (MEAS_P and MEAS_S) inputs of the AINR block to
certain ECB18 output parameters. This method is described in Section 3.5.2.7.
The inputs from Intelligent Field Devices, HTG Interface Units, and Coriolis (Mass Flow) Trans-
mitters are floating point values which are normally expressed in the final output units specified
by EO1. However, you may apply characterization (see this topic in Section 3.5.2.1), scaling (see
Section 3.5.3), clamping (see Section 3.5.4), and/or filtering (see Section 3.5.5), if required by the
application. If you do not wish to apply characterization, you should set SCI = 0.
107
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
108
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
3.5.4 Clamping
Key Parameters: HSCO1, LSCO1, OSV, HOR, LOR, LASTGV
Clamping keeps the linearized and converted value within the block’s engineering units range, as
determined by HSCO1 and LSCO1.
Clamping is applied independently to both the primary and secondary points. The effect of
clamping is shown in Figure 3-8.
osv (units)
HSCO1
INPUT
LSCO1
osv (units)
osv (units)
HSCO1
HOR = 1
OUTPUT
LOR = 1
LSCO1
osv (units)
109
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
a traditional deadband effect however, since signals oscillating near the high or low clamp value
generate repeated HOR or LOR conditions.
Parameter LOR is set true if either the primary or the secondary point is low out of range; it is not
necessary for both to be. Similarly for parameter HOR. If BADOPT so specifies, a point which is
out of range is considered bad; however, the block output parameter BAD is set true only if both
the primary and secondary points are considered bad.
3.5.5 Filtering
Key Parameters: FLOP, FTIM
The clamped value is subjected to possible filtering, as the last signal processing activity. Filtering
introduces a lag to changes in the input signal, thus smoothing out input changes or suppressing
noise. Note that this feature should be used with caution to avoid removing true process informa-
tion.
NOTE
When an AINR block is configured so that the MEAS parameter is connected to
another block (as opposed to an input from the field), filtering options have no
effect when the block is running in a CP40B. Regardless of how the filtering
options are set, the AINR block running in a CP40B station does not filter the
input if the MEAS parameter is connected to another block.
If the block is in Auto and Filter Option (FLOP) is non-zero, either first-order lag filtering
(FLOP = 1) or second-order Butterworth filtering (FLOP = 2) or two-sample-average filtering
(FLOP = 3) is applied. The lag that first or second-order filtering introduces has time constant
Filter Time (FTIM). You can use them to attenuate measurement noise. However, if FTIM is set
too low, there is relatively insignificant filtering. If set too high, the lag may be large enough to
affect loop accuracy.
Since filtering involves previous values of a signal as well as its present value, the necessary data for
filtering is retained independently for both the primary and secondary points. This results in the
availability of a properly filtered signal on the first block processing cycle after switchover.
In addition, aliasing is minimized and resolution improved by configuring the RES parameters of
both ECBs so that the fieldbus integration time is equal to twice the block period. Refer to the
section “Fieldbus Integration Time” in the appropriate Integrated Control Software Concepts docu-
ment (B0700AG or B0193AW).
110
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
OUTPUT
INPUT STEP
63% 100%
FTIM
INPUT STEP
OUTPUT
FTIM
111
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
The Filter Input from the previous cycle is retained separately for primary and secondary sides.
NOTE
BLKSTA.BAD, PNT.BAD, and BAD track each other differently depending on
whether the block is in MANUAL or AUTO mode. For example, switching a block
to MANUAL and performing a "set" operation will clear the PNT.BAD status bit,
which allows the operator to define the PNT value as acceptable. However, the
BAD parameter's state and value will remain the same as if the block was in AUTO
mode.
112
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
When the compensation reference has been converted to millivolts and added to the raw value
millivolts, the resulting sum is used to access the proper SCI table. If this sum is higher or lower
than the limits of the table, HOR and LOR are handled as in the last paragraph.
If the Special Thermocouple option is in use, when the sum of the reference value and raw value is
used to re-enter the characterizer, the entry is compared against the characterizer end-points. If
the entry value is outside the end-points, HOR and LOR are handled as in the preceding para-
graph.
RTD Signal Conversion
When the raw value in ohms is higher or lower than the limits of the SCI table in use, parameters
HOR and LOR are handled as above.
Linear/Square Root Signal Conversion
The raw value is compared against the raw_low for this SCI as adjusted for the OSV in use.
If below this limit, LOR is set, and similarly for HOR if the upper limit is exceeded.
Characterizer Signal Conversion
The raw value is compared against the characterizer endpoints. If the value is outside the end-
points, HOR and LOR are handled as above.
113
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
In the following situations, parameter Last Good Value (LASTGV) only takes effect when
BADOPT has caused the input side to have Bad status, and its actions depend on the condition
which caused the Bad status.
When Bad status is true because thermocouple cold junction compensation is outside
the limits of the SCI 43 table, the reference value (in degrees Celsius) from the previ-
ous cycle is used as the compensation.
When Bad status is true because the compensated thermocouple millivolt value is out-
side the limits of the SCI table in use, LASTGV causes the side to retain its value from
the last cycle.
In the Special Thermocouple option, if the compensated value is outside the limits of
the characterizer end-points, the side retains its value from the last cycle.
When an RTD ohms value is outside the limits of its SCI table, the side retains its
value from the last cycle.
In linear/square root signal conditioning, if the raw value is beyond the lower or upper
value of the span, as adjusted by OSV, the side retains its value from the last cycle.
In characterizer signal conversion, if the value is outside the limits of the characterizer
end-points, the side retains its value from the last cycle.
When Bad status exists because an out-of-range condition occurred due to
HSCO1/LSCO1 clamping, the side retains its value from the last cycle only if SCI = 0
(no linearization) and IOMOPT indicates that an FBM or FBC is connected.
Figure 3-11 shows the effect of LASTGV in.
In the following situations, retention of the value from the last cycle is independent of BADOPT.
The connected FBM or FBC is out-of-service, regardless of the value of LASTGV.
The connected HTG, IT2, or Coriolis point is out-of-service, regardless of the value
of LASTGV.
The connected point has bad status and LASTGV is true.
114
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
LASTGV = 1
LASTGV = 0 BADOPT = 2
SCI = 0
IOMOPT = 1
osv (units)
HSCO1
Input Input
LSCO1
osv (units)
osv (units)
HSCO1
Output Output is the last
Output good value read
HOR = 1 HOR = 1 before Input went
out of range.
LSCO1
osv(units)
3.8 Alarming
The AINR block supports the Bad I/O, Out-of-Range, High/Low Absolute, and High-
High/Low-Low Absolute alarm types. (Separate Bad I/O alarm messages are generated for the pri-
mary and secondary input sides.) The functionality of these alarm types is discussed in the appro-
priate Integrated Control Software Concepts document (B0700AG or B0193AW).
115
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
The nomenclature for identical alarm types varies from block to block for historical reasons
involving backward compatibility requirements. The nomenclature for the AINR block is as fol-
lows:
116
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
ECB1
ECB1
PNT_NO
AIN
PNT
MEAS FBM203 FBM203
or or
PID
FBM03 FBM03
OUT HE0101 HE0102
MEAS
IOM_ID = HE0101
IOMIDR = HE0102 AOUT
PNT_NO = 4 OUT
SCI = 42
KSCALE = 1.8
BSCALE = 32.0 TT TT
LSCO1 = 50.0
HSCO1 = 210.0
EO1 = Deg F.
HLOP = 2 Steam Heated Water
HHAOPT = 2 HEAT
HAL = 190.0 EXCHANGER Cold Water
HHALIM = 200.0
117
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
118
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
SCI = 0: No Linearization
Conditioned = Raw
SCI = 1: Linear (0 to 64000)
Analog Input 0 to 20 mA
Conditioned = (Raw * (HSCO1 - LSCO1)/64000) + LSCO1
SCI = 2: Linear (1600 to 64000)
Analog Input 0 to 10 V dc
Conditioned = ((Raw - 1600) * (HSCO1 - LSCO1)/62400) + LSCO1
SCI = 3: Linear (12800 to 64000)
Analog Input 4 to 20 mA
Conditioned = ((Raw - 12800) * (HSCO1 - LSCO1)/51200) + LSCO1
SCI = 4: Square Root (0 to 64000)
Analog Input 0 to 20 mA
Conditioned = (Sqrt(64000 * Raw) * (HSCO1 - LSCO1)/64000) + LSCO1
SCI = 5: Square Root (12800 to 64000), Clamped
Analog Input 4 to 20 mA
If Raw 12800
Conditioned = LSCO1
Otherwise,
Conditioned = (Sqrt(51200 * (Raw - 12800)) * (HSCO1 - LSCO1)/51200) + LSCO1
SCI = 6: Square Root, Low Cutoff (0 to 64000), Clamped < 3/4%
Analog Input 0 to 20 mA
If Raw 480
Conditioned = LSCO1
Otherwise,
Conditioned = (Sqrt(64000 * Raw) * (HSCO1 - LSCO1)/ 64000) + LSCO1
SCI = 7: Square Root, Low Cutoff (12800 to 64000), Clamped < 3/4%
Analog Input 4 to 20 mA
If Raw 13184
Conditioned = LSCO1
Otherwise,
Conditioned = (Sqrt(51200 * (Raw - 12800)) * (HSCO1 - LSCO1)/51200) + LSCO1
SCI = 8: Pulse Rate
Conditioned = Raw * MTRF * Pulse Constant
(Where Pulse Constant = 25000.0/(65535.0 * 65535.0) = 0.582094373 E - 05 =
0.00000582094373)
119
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
120
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
Hardware
201
202
203
204
205
206
207
211
212
213
217
237
241
242
Type
Point
1 I I I I I I I I I I I O I O
2 I I I I I I I I I I I O I O
3 I I I I I I I I I I I O I O
4 I I I I I I I I I I I O I O
121
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
Hardware
201
202
203
204
205
206
207
211
212
213
217
237
241
242
Type
Point
5 I I I O O I I I I I I O I O
6 I I I O O I I I I I I O I O
7 I I I O O I I I I I I O I O
8 I I I O O I I I I I I O I O
9 C I I I I O O
10 I I I I O O
11 I I I I O O
12 I I I I O O
13 I I I I O O
14 I I I I O O
15 I I C I O O
16 I I I O O
17 I
18 I
19 I
20 I
21 I
22 I
23 I
24 I
25 I
26 I
27 I
28 I
29 I
30 I
31 I
32 I
Legend: I = Input
O = Readback from Output
C = Thermal Compensation Channel
122
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
Hardware
Type 1 2 3 4 5 6 17 18 22 23 33 36 37 38 39 43 44 46
Point
1 I I I I I I I I I I I I O I I I I I
2 I I I I I I I I O I I I O I I I I I
3 I I I I I I I I I I I O I I I I I
4 I I I I I I I I I I I O I I I I I
5 I I I O O O O I I I I O I O I O O
6 I I I O O O O I I I I O I O I O O
7 I I I O O O I I I I O I O I O O
8 I I I O O O I I I I O I O I O O
9 C I C
10 I
11 I
12 I
13 I
14 I
15 I
16 I
17 I
18 I
19 I
20 I
21 I
22 I
23 I
24 I
25
26
27
28
29
30
31
32
33
123
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
Legend: I = Input
O = Readback from Output
C = Thermal Compensation Channel
Hardware
Type 57 58 59 61 63 95
Point
1 I I I O I I
2 I I I O I I
3 I I I O I I
4 I I I O I I
5 I I I O I I
6 I I I O I I
7 I I I O I I
8 I I I O I I
9 I I I O I I
10 I I I O I I
11 I I I O I I
12 I I I O I I
13 I I I O I I
14 I I I O I I
15 I I I O I I
16 I I I O I I
17 I I I I
18 I I I I
19 I I I I
20 I I I I
21 I I I I
22 I I I I
23 I I I I
24 I I I I
25 I I I I
26 I I I I
27 I I I I
28 I I I I
29 I I I I
30 I I I I
31 I I I I
124
3. AINR – Redundant Analog Input Block B0193AX – Rev AB
Hardware
Type 57 58 59 61 63 95
Point
32 I I I I
33 C C
Legend: I = Input
O = Readback from Output
C = Thermal Compensation Channel
NOTE
Hardware Type 57 is used for FBC21.
Hardware Type 58 is used for FBC01.
Hardware Type 59 is used for FBC17.
Hardware Type 61 is used for FBC04.
Hardware Type 63 is used for FBC02.
Hardware Type 95 is used for FBC02 Redundant.
125
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block
126
4. ALMPRI – Alarm Priority Change
Block
This chapter covers the Alarm Priority Change Block, or ALMPRI, its features, parameters and
functions.
4.1 Overview
The Alarm Priority Change Block, ALMPRI, dynamically reassigns the priority of an alarm point.
This allows alarm priorities to be automatically revised based on specific plant conditions. See
Figure 4-1.
MA
4.2 Features
Manual/Auto mode for disconnecting control schemes from the process, for simula-
tion and checkout purposes.
4.3 Parameters
Table 4-1. ALMPRI Block Parameters
127
B0193AX – Rev AB 4. ALMPRI – Alarm Priority Change Block
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate the block’s opera-
tional states. For the ALMPRI block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
MA
ON
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
11 MA Manual(= false)/Auto(= true) BLKSTA.B21
14 UDEF Undefined BLKSTA.B18
15 ON Compound On BLKSTA.B17
20 WLCK Workstation Lock BLKSTA.B12
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
128
4. ALMPRI – Alarm Priority Change Block B0193AX – Rev AB
ERCODE Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the block’s
DEFINE parameter to be set false, but not the warning situations. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. The block detailed display shows the ERCODE
on the primary page, if it is not null. For the ALPMRI block, the follow-
ing list specifies the possible values of ERCODE, and the significance of
each value in this block:
Message Value
“W43 – INVALID PERIOD/ PHASE does not exist for given block
PHASE COMBINATION” PERIOD, or block PERIOD not com-
patible with compound PERIOD.
“W46 – INVALID INPUT The source parameter specified in the
CONNECTION” input connection cannot be found in the
source block, or the source parameter is
not connectable, or an invalid boolean
extension connection has been
configured.
“W48 – INVALID BLOCK The configured value of a block option
OPTION” is illegal.
“W53 – INVALID A parameter value is not in the accept-
PARAMETER VALUE” able range.
INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state specified in the checkpoint file.
The block asserts this initial M/A state whenever:
It is installed into the Control Processor database.
The Control Processor undergoes a reboot operation.
The compound in which it resides is turned on.
The INITMA parameter itself is modified via the control configurator.
(The block does not assert INITMA on ordinary reconfiguration.)
INITMA is ignored if MA has an established linkage.
129
B0193AX – Rev AB 4. ALMPRI – Alarm Priority Change Block
LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.
LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are honored (subject to the usual access rules) only from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set false by any workstation at any time, whereupon a
new LOCKRQ is accepted, and a new ownership workstation identifier
written to LOCKID.
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)
130
4. ALMPRI – Alarm Priority Change Block B0193AX – Rev AB
*If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).
PRIOUT Priority Output has an integer value between 0 and 5. Integers 1 to 5 rep-
resent alarm priority levels. An output of 0 indicates that no priority level
input lines are true (that is, the absence of alarms). Connecting this out-
put to an alarm priority input of a downstream block reassigns the alarm
priority levels of that block.
PR_IN1 to PR_IN5
Priority Input, Levels 1 to 5, are boolean inputs which represent an alarm
priority level.
For example, when true, PR_IN1 enables a level 1 priority output (highest
priority) and supersedes priority levels 2 to 5. If the block is in the Auto
mode, then in this instance, PRIOUT = 1.
TYPE When you enter “ALMPRI” or select “ALMPRI” from the block type list
under Show, an identifying integer is created specifying this block type.
131
B0193AX – Rev AB 4. ALMPRI – Alarm Priority Change Block
MA
PR_IN1 Manual
PR_IN2
PR_IN3 PRIOUT
PR_IN4 Auto
PR_IN5 BLKSTA
Figure 4-2. ALMPRI, Detailed Block Diagram
4.4.2.1 Initialization
Key Parameters: INITMA
At initialization, the block initializes MA. DEFINE is set to 0 if any configured parameters fail
validation testing.
4.4.2.2 Manual
Key Parameters: MA
In manual, all outputs are unsecured and settable.
Manual mode allows you to disconnect control schemes from the process, for simulation and
checkout purposes
4.4.2.3 Auto
Key Parameters: MA
In auto mode, the block operates as described below.
132
4. ALMPRI – Alarm Priority Change Block B0193AX – Rev AB
priority level of the lowest PRI_INx parameter set to true. For example, if both PRI_IN2 and
PRI_IN4 are set to true, PRIOUT is set to 2. If none of the indicators are set to true, PRIOUT is
set to 0.
PRI_INx parameters can be connected to triggers in outside sources to indicate if a particular
event has occurred. You can set an unconnected PRI_INx parameter to true to act as a default
alarm priority until a higher alarm priority is triggered.
An example of ALMPRI use is provided below.
To automatically upgrade its priority level, connect the PR_IN1 input line to a block that is acti-
vated when an emergency is detected (such as a BAD output). Configure the PR_IN4 input true
and the PR_IN2, PR_IN3, and PR_IN5 inputs false. Connect the PRIOUT output to an alarm
priority input of the control block with the varying criticality.
For example, an alarm priority input could be any of the following parameters:
ABSPRI (Absolute Alarm Priority)
BAP (Bad Alarm Priority)
DEVPRI (Deviation Alarm Priority)
HHAPRI (High-High Alarm Priority)
MEASPR (Measurement Alarm Priority)
ORAP (Out of Range Alarm Priority)
OP_PRI (Operational Alarm Priority)
ROCPRI (Rate of Change Alarm Priority)
TAP (Trip Alarm Priority)
While the process is stable, the control block has a level 4 alarm priority (default). When an emer-
gency is detected, PR_IN1 is set true by the block detecting the emergency. This supersedes the
configured level 4 priority and gives the control block a level 1 priority. When the emergency is
over, the PR_IN1 goes false and PR_IN4, which is always true, determines the priority level.
133
B0193AX – Rev AB 4. ALMPRI – Alarm Priority Change Block
134
5. AOUT – Analog Output Block
This chapter covers the Analog Output Block, or AOUT, its features, parameters and functions,
bad, out-of-service and error conditions, manual mode, alarming, and application diagrams.
5.1 Overview
The Analog Output Block (AOUT) provides the control strategy with output capability for a sin-
gle analog value directed to any Fieldbus Module (FBM) or Fieldbus Card (FBC) capable of driv-
ing analog outputs. The block supports Auto/Manual control, signal conditioning, biasing, and
output balancing. Cascade initialization and supervisory control features are also available.
Measurement
Supervisory Scalar Balance Low Output Limit
Enable & Time High Output Limit
Bias
Back Back
Calculation Calculated
Outputs
Measure-
ment Input Reset
Scaling Clamping o Out
Supervisory Selection Balancing
Input
Signal Raw
Conditioning Count
Fieldbus Output
Output to
FBM/FBC
ECB Failsafe
Failsafe
Failsafe Processing
FBM and
BAD Bad
Channel Detection Alarming
Alarm
Status
135
B0193AX – Rev AB 5. AOUT – Analog Output Block
5.3 Features
Fieldbus Module option to permit configuration of AOUT blocks without FBM or
FBC connections (output only to control strategy).
Output to any FBM or FBC driving 0 to 20 mA or 0 to 10 V dc analog outputs.
Gain and offset scaling of the output.
Reset balance action with specifiable time constant.
Output clamping between selectable operational limits.
Selectable linear signal conditioning of the output.
Air-to-Close option to invert the sense of the output for use with air-to-close valves.
Raw Count output to display the output after signal conditioning.
Supervisory Control option for driving the block input from an external supervisory
application.
Parameters to allow flexible choice of block action in case of supervisory control
fallback.
Error Propagation option to permit non-standard conditions of the measurement or
bias inputs to be reflected as an error status of the output.
Measurement Error option to permit selection of the conditions under which the last
good value of the measurement is retained.
Bias Error option to perform the same function for the bias term.
Manual/Auto mode for disconnecting the control scheme from the output, for simu-
lation and checkout purposes.
Optional output clamping when in Manual.
Manual if Failsafe option to force the block into Manual whenever a transition into
Failsafe occurs.
136
5. AOUT – Analog Output Block B0193AX – Rev AB
Manual if Bad option to force the block into Manual whenever the measurement or
bias input has bad status, or the FBM or FBC is bad.
Bias Tracking option to cause the bias value to track changes in the output by back
calculation, when the block is in Manual (see Section 5.7).
The Primary Block option enables the block, when in a cascaded configuration, to ini-
tialize without bumping the process.
Bad Alarm option to permit Bad alarm generation.
5.4 Parameters
Table 5-1. AOUT Block Parameters
137
B0193AX – Rev AB 5. AOUT – Analog Output Block
138
5. AOUT – Analog Output Block B0193AX – Rev AB
ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit Number1
(0 to 31) Configured Alarm Option When True
0 (Least Significant) Alarm Group 8 in Use
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use
22 Bad I/O Alarm Configured
1. Bit 0 is the least significant, low order bit.
139
B0193AX – Rev AB 5. AOUT – Analog Output Block
ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the AOUT block, only the unshaded bits in this diagram are
used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
B4
B5
B6
B7
B8
B9
CRIT PRTYPE
BAD
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: See param- ---
(Least Sig- eter PRTYPE for values
nificant) used in the AOUT block
5 to 7 CRIT_MSK Criticality; 5 = lowest ---
priority, 1= highest
22 BAD Bad I/O Alarm ALMSTA.B10
30 UNAK Unacknowledged ALMSTA.B2
AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is gen-
erated.
ATC Air-to-Close is a configurable option that inverts the sense of the conver-
sion from engineering units to raw count output, for use with air to close
valves.
AUTSW Auto Switch, when true, forces the block into the Auto mode and secures
MA against sets. It is of lower priority than MANSW, and is overridden by
it if both parameters are true. It is also overridden by MBADOP if the Bad
condition causing the Manual mode is still present. AUTSW overrides any
connections to MA.
BAD Bad is a boolean output which is set true when the FBM or FBC has a
fatal fault or the output point in an FBC has bad status.
BAG Bad Alarm Group is a short integer input that directs Bad alarm messages
to one of eight groups of alarm devices.
140
5. AOUT – Analog Output Block B0193AX – Rev AB
BAO Bad Alarm Option is a configurable option that enables alarm generation
for each state change of the BAD parameter. The parameter values are:
BAP Bad Alarm Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the Bad alarm (1 is the highest priority).
BCALCO Back Calculated Output is a real value that specifies to the upstream block
the value of MEAS which leaves OUT unchanged. If the upstream block
sets its output to the BCALCO value, bumpless cascade initialization is
assured. The upstream block normally connects BCALCO from the
AOUT block to its BCALCI input.
BEROPT Bias Error Option is a short integer option which determines the condi-
tions under which last good value functionality is provided for the input
BIAS. BEROPT is only active when PROPT is true. (See Section 5.6.3 for
a detailed definition.)
BIAS Bias is an input used to offset the measurement value. It can be used inde-
pendently, or in conjunction with MSCALE to achieve units conversion
of the measurement.
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the AOUT block, only the unshaded bits in this dia-
gram are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
FBMR B23
B24
B25
B26
B27
B28
B29
B30
BADR B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
MAO
FBM
HOL
BAD
DEV
LOL
MA
ON
FS
141
B0193AX – Rev AB 5. AOUT – Analog Output Block
Bit Boolean
Number** Connection
(0 to 31) Name Description When True (B32 to B1)
6 TRK Local Panel in Use BLKSTA.B26
7 HLD Auto/Hold State BLKSTA.B25
8 FBM FBM or FBC Failure BLKSTA.B24
11 MA Manual = 0, Auto = 1 BLKSTA.B21
12 BAD Bad I/O BLKSTA.B20
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
20 WLCK Access Locked BLKSTA.B12
24 FS Output in Failsafe or Await- BLKSTA.B8
ing Cascade Closure after
Transition
26 MAO Manual/Auto Override BLKSTA.B6
Active
27 LOL Output Clamped at Low BLKSTA.B5
Limit
28 HOL Output Clamped at High BLKSTA.B4
Limit
29 SE Supervisory Control Enabled BLKSTA.B3
30 SC Supervisory Cascade Closed BLKSTA.B2
31 FLB Block in Supervisory Fallback BLKSTA.B1
BTIME Balance Time is a real input that specifies the time constant, in minutes,
for the value of OUT to reach approximately 63 percent of the value cal-
culated by the algorithm, when the block output changes its mode of con-
trol.
BTRKOP Bias Track Option, when true, causes BIAS to track the manually set value
of OUT by the following back calculation:
BIAS = OUT - (MEAS * MSCALE)
The block must be in Manual, and BIAS must be unlinked.
CRIT Criticality is an integer output which, for the AOUT block, indicates the
priority of an active Bad alarm (1 is the highest priority). An output of
zero indicates the absence of alarms.
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing, other than those involved in duplicate output channel detection.
142
5. AOUT – Analog Output Block B0193AX – Rev AB
(See ERCODE for the list of all possible validation errors in this block.) In
that case, no further processing of the block occurs, including further vali-
dation of remaining parameters. To return DEFINE to a true value, cor-
rect all configuration errors and reinstall the block. If DEFINE = 0, the bit
BLKSTA.UDEF = 1.
DELTI1 Change Delta for Input Range 1 is a real value that defines the minimum
percent of the input range that triggers change driven connections for
parameters in the range of RI1. The default value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.
DELTI2 Change Delta for Input Range 2 is a real value that defines the minimum
percent of the input range that triggers change driven connections for
parameters in the range of RI2. The default value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.
DELTO1 Change delta for Output Range 1 is a configurable real value that defines
the minimum percent of the output range that triggers change-driven
connections for parameters in the range RO1. The default value is 1.0 per-
cent. If communication is within the same control station that contains
the block’s compound, DELTO1 has no effect.
DEV_ID Device Identifier is a character array data store that indicates the 6-charac-
ter letterbug of the connected FBM or FBC.
EI1 Engineering Units for Input Range 1 provides the engineering units text
for the values of MEAS, BCALCO, and SUPBCO. The value configured
for this text string should be consistent with the values used for HSCI1
and LSCI1. “Deg F” and “pH” are typical entries.
EI2 Engineering Units for Input Range 2 provides the engineering units text
for the value of BIAS. The value configured for this text string should be
143
B0193AX – Rev AB 5. AOUT – Analog Output Block
consistent with the values used for HSCI2 and LSCI2. “Deg F” and “pH”
are typical entries.
EO1 Engineering Units for Output Range 1 provides the engineering units text
for the values of OUT, HOLIM, and LOLIM. The value configured for
this text string should be consistent with the values used for HSCO1 and
LSCO1. “Deg F” and “pH” are typical entries.
ERCODE Error Code is a string data store which indicates the type of configuration
error or warning which caused the block’s DEFINE to be set false. Valida-
tion of the configuration does not proceed past the first error or warning
encountered by the block logic. (The duplicate output channel condition
does not cause DEFINE to be set false.) The block detailed display shows
the ERCODE on the primary page, if it is not null. For the AOUT block,
the following list specifies the possible values of ERCODE, and the signif-
icance of each value in this block:
ERCODE Description
W44 HSCO1 less than or equal to LSCO1.
W48 SUPOPT or FLBOPT out of range.
W50 Invalid SCO.
W51 The connected FBM or FBC is not a type containing
analog output points.
W52 PNT_NO out of range for the specified FBM or FBC.
W54 Specified IOM_ID does not exist.
W59 Warning: This block and another AOUT or AOUTR
block are connected to the same FBM or FBC and point
number. Both blocks receive the same warning message.
FLBOPT Fallback Option is a configured input that defines the control action to be
taken by the block when a supervisory control fallback occurs:
0 = Make no change in MA (default)
1 = Set MA to Auto
2 = Set MA to Manual
FLBOPT overrides a linked MA parameter, but does not override the
AUTSW and MANSW parameters.
FLBREQ Fallback Request is an output, which constitutes an explicit request for the
block to go to the supervisory control fallback state specified by FLBOPT,
regardless of the value of its fallback timer.
0= Fallback not requested.
1= Fallback requested; recovery at block or group level.
(See Section 5.5.9.)
2= Fallback requested; recovery only at block level.
(See Section 5.5.9.)
144
5. AOUT – Analog Output Block B0193AX – Rev AB
FS Failsafe is a boolean output that is set true when the block detects that the
FBM has transitioned into the Failsafe state. While in this state, the block
uses a measurement value based on a back calculation from the value read
back from the FBM or FBC. Once set true, FS remains true until the cas-
cade has closed.
HOLIM High Output Limit is a real input that establishes the maximum output
value. If the block is in Auto and the algorithm tries to drive the output to
a value higher than or equal to HOLIM, or if the block is in Manual (with
MCLOPT true) and the manually set value of the output is higher than or
equal to HOLIM, the output is clamped at the HOLIM value and
HOLIND is set true.
Configure HOLIM within the output engineering range RO1 defined by
parameters HSCO1 and LSCO1 (see “Block Initialization” on page 155).
If you change the HSCO1 and LSCO1 values to expand the engineering
range, make sure you change the HOLIM value accordingly to prevent
output limiting at the old limit. The block does not automatically adjust
HOLIM for the expanded range.
HOLIND High Output Limit Indicator is a boolean output that is set true whenever
the output is clamped at the high output limit, HOLIM.
HSCI1 High Scale for Input Range 1 is a real value that defines the upper range
value for MEAS, SUP_IN, BCALCO, and SUPBCO. It is only used in
displays.
HSCI2 High Scale for Input Range 2 is a real value that defines the upper range
value for BIAS. It is only used in displays.
HSCO1 High Scale for Output Range 1 is a real value that defines the upper range
value for the block’s output.
INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting.
INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do
not disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the
time the alarm transitions into the inhibited state, clear the
alarm indicator.
145
B0193AX – Rev AB 5. AOUT – Analog Output Block
INHSTA Inhibit Status contains packed long values that represent the current
inhibit status of each alarm type configured in the block. For the AOUT
block, only the unshaded bit in the following diagram is used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BAD B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
22 BAD Bad I/O Alarm Inhibited INHSTA.B10
* Bit 0 is the least significant, low order bit.
INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state as specified in the checkpoint file.
The block asserts this initial M/A state whenever any one of the following
occurs:
It is installed into the Control Processor database.
The Control Processor undergoes a reboot operation.
The compound in which it resides is turned on.
INITMA itself is modified via the control configurator. (The
block does not assert INITMA on ordinary reconfiguration.)
INITMA is ignored if MA has an established linkage.
INITO Initialization Output is set true when the primary cascade is open for any
reason, and returned to false when cascade closure is detected. The INITO
output of a downstream block is normally connected to the INITI of the
next upstream block, and serves to notify the upstream block of the open
146
5. AOUT – Analog Output Block B0193AX – Rev AB
INITSE Initialize Supervisory Enable is a configured value that specifies the initial
state of SE when the block is installed, the containing compound is turned
on, or the control processor is rebooted. Options are:
0 = Disable (SE is set false)
1 = Enable (SE is set true)
2 = No change (SE retains its current value)
INITSE is not asserted when the block is initialized due to
reconfiguration.
IOMOPT FBM Option is a short integer specifying whether an FBM or FBC con-
nection to the block exists. Values are:
0= The block does not transmit the OUT value to an FBM or
FBC point. The value in OUT is conditioned as specified by
SCO.
1= The block transmits the OUT value to the FBM or FBC point
specified by IOM_ID and PNT_NO. The value is conditioned
as specified by SCO.
2= There is no connected FBM or FBC. The value in OUT is not
conditioned.
IOM_ID Fieldbus Module Identifier is a configurable string that specifies the path-
name of the FBM or FBC to which the block is connected.
IOM_ID has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOM_ID configuration. In this case, the 1-12
character ECB block name is sufficient.
LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.
LOCKRQ Lock Request is a boolean input which can be set true or false only by a set
command from the LOCK U/L toggle key on workstation displays. When
LOCKRQ is set true in this fashion a workstation identifier accompany-
ing the SETVAL command is entered into the LOCKID of the block.
147
B0193AX – Rev AB 5. AOUT – Analog Output Block
Thereafter, set requests to any of the block’s parameters are honored (sub-
ject to the usual access rules) only from the workstation whose identifier
matches the contents of LOCKID. LOCKRQ can be set false by any
workstation at any time, whereupon a new LOCKRQ is accepted, and a
new ownership workstation identifier written to LOCKID.
LOLIM Low Output Limit is a real input that establishes the minimum output
value. If the block is in Auto and the algorithm tries to drive the output to
a value lower than or equal to LOLIM, or if the block is in Manual (with
MCLOPT true) and the manually set value of the output is lower than or
equal to LOLIM, the output is clamped at the LOLIM value and
LOLIND is set true.
Configure LOLIM within the output engineering range RO1 defined by
parameters HSCO1 and LSCO1 (see “Block Initialization” on page 155).
If you change the HSCO1 and LSCO1 values to expand the engineering
range, make sure you change the LOLIM value accordingly to prevent
output limiting at the old limit. The block does not automatically adjust
LOLIM for the expanded range.
LOLIND Low Output Limit Indicator is a boolean output that is set true whenever
the output is clamped at the low output limit, LOLIM.
LSCI1 Low Scale for Input Range 1 is a real value that defines the lower range
value for MEAS, SUP_IN, BCALCO, and SUPBCO. It is only used in
displays.
LSCI2 Low Scale for Input Range 2 is a real value that defines the lower range
value for BIAS. It is only used in displays.
LSCO1 Low Scale for Output Range 1 is a real value that defines the lower range
value for the block’s output.
MANFS Manual if Failsafe is a configurable option which, when true, causes the
block to switch to the Manual mode when the connected point is reported
by the FBM or FBC to have transitioned into the Failsafe state. MANFS
has no effect when MA is linked.
MANSW Manual Switch, when true, forces the block into the Manual mode and
secures MA against sets. It is of higher priority than AUTSW, and over-
rides it if both parameters are true. MANSW also overrides any connec-
tions to MA.
148
5. AOUT – Analog Output Block B0193AX – Rev AB
MBADOP Manual if Bad Option is a manual override feature which, when true,
causes the block to go into Manual mode if MEAS or BIAS has Bad status,
or the FBM or FBC is Bad. See Section 5.7 for the relationship between
MBADOP and AUTSW/MANSW.
MCLOPT Manual Clamping Option, when true, causes the value of OUT as set in
Manual mode to be clamped by operational limits HOLIM and LOLIM.
MEROPT Measurement Error Option is a short integer option which determines the
conditions under which last good value functionality is provided for the
input MEAS. MEROPT is only active when PROPT is true and the block
is in Auto. (See Section 5.6.3 for a detailed definition.)
OF_INP Offset to Inputs is the zero-based offset, in bytes, of the first block input
from the head of the block. It is a datastore which is only used internally.
OF_OUT Offset to Outputs is the zero-based offset, in bytes, of the first block out-
put from the head of the block. It is a datastore which is only used inter-
nally.
OSV Output Span Variance is a configurable real input which defines the per-
centage by which the operational clamp limits HOLIM and LOLIM can
exceed the output range defined by HSCO1 and LSCO1.
OUT Output, in Auto mode, is the result of the block algorithm applied to the
MEAS input. In Manual, OUT is released, and can be set from a display
or an external task.
149
B0193AX – Rev AB 5. AOUT – Analog Output Block
setting it to the null string; this value is always accepted, regardless of the
current value of Owner. Once set to the null string, the value can then be
set as desired.
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)
PERTIM Period Time is a real data store which, in the case of the AOUT block,
contains the number of execution cycles in one minute. It is only used in
the calculation of the reset balance factor.
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).
PNT_NO Point Number is the FBM or FBC point to which the AOUT block is
connected.
PRIBLK Primary Block is a configured boolean which should be set true when the
AOUT block is in a secondary position in a control cascade, and not oth-
erwise. When true, PRIBLK enables bumpless initialization of the pri-
150
5. AOUT – Analog Output Block B0193AX – Rev AB
PRITIM Primary Cascade Timer is a configurable parameter used to delay the clos-
ing of the cascade to a primary block, when the output is initialized in the
AOUT block. It is used only if the PRIBLK option is set. The cascade is
closed automatically when the timer expires without requiring an explicit
acknowledge by the upstream block logic.
Refer to “PRIBLK and PRITIM Functionality” on page 165 for more
information on this parameter.
PROPT Propagate Error Option is a boolean input which, when the block is in
Auto, determines whether errors in the MEAS or BIAS parameters causes
the Error status bit of OUT to be set true. In addition, a true value of
PROPT causes MEAS to have last good value functionality based on the
error types specified by MEROPT. Similarly, PROPT and BEROPT,
taken together, determine whether BIAS has last good value functionality.
See Section 5.6.3 for details of PROPT, MEROPT, and BEROPT.
PRSCAS Present Cascade State is a data store that indicates the cascade state. It has
the following possible values:
Value State Description
1 “INIT_U” Unconditional initialization of the primary
cascade is in progress.
2 “PRI_OPN” The primary cascade is open.
3 “INIT_C” Conditional initialization of the primary cas-
cade is in progress.
4 “PRI_CLS” The primary cascade is closed.
5 “SUP_INIT” The supervisory cascade is initializing.
6 “SUP_OPN” The supervisory cascade is open.
7 “SUP_CLS” The supervisory cascade is closed.
PRTYPE Priority Type is an indexed output that indicates the alarm type of the
highest priority active alarm. The PRTYPE output of this block consists of
the following possible values:
0 = No active alarm
8 = Bad
151
B0193AX – Rev AB 5. AOUT – Analog Output Block
RAWC Raw Count is the value of the selected input source after any necessary
scaling, balancing, clamping, and conditioning are applied. If IOMOPT =
1, the value of RAWC is transferred to the FBM or FBC, provided the
ECB indicates normal status.
RI1 Range Input 1 is a real array consisting of the three parameters HSCI1,
LSCI1, and DELTI1. The array members are configured by their individ-
ual names; however, RI1 and its members can, optionally, be accessed on
an array basis by user tasks and displays.
RI2 Range Input 2 is a real array consisting of the three parameters HSCI2,
LSCI2, and DELTI2. The array members are configured by their individ-
ual names; however, RI2 and its members can, optionally, be accessed on
an array basis by user tasks and displays.
RO1 Range Output 1 is a real array consisting of the three parameters HSCO1,
LSCO1, and DELTO1. The first two of these array members are config-
ured by their individual names. (DELTO1 is unused). RO1 and any of its
members can be optionally, be accessed on an array basis by user tasks and
displays.
SUPBCO Supervisory Back Calculated Output is a real value that indicates the value
of SUP_IN which would leave OUT unchanged. If the supervisory appli-
cation sets its output to the BCALCO value, bumpless initialization of the
supervisory cascade is assured. SUPBCO also contains the following status
bits:
Status Meaning
Bit 10 = 1 Initialize SUP_IN
Bit 13 = 1 SUP_IN is limited high
Bit 14 = 1 SUP_IN is limited low
Bit 13 = 1 and Bit 14 =1 Supervisory cascade is open
SUPGRP Supervisory Group is a configured short integer that assigns this block to
one of eight groups for purposes of supervisory control fallback timing.
152
5. AOUT – Analog Output Block B0193AX – Rev AB
SUP_IN Supervisory Input is the input that the block uses as the measurement
when supervisory control is enabled. It is driven by the supervisory appli-
cation. The supervisor also uses the Acknowledge status bit of SUP_IN
(Bit 10) to indicate that a request to initialize has been honored, and that
the supervisory cascade may be closed.
TYPE When you enter “AOUT” or select it from a configurator list, an identify-
ing integer is created specifying this block type.
UNACK Unacknowledge is a boolean output which is set true, for notification pur-
poses, whenever the block goes into alarm on either the primary or sec-
ondary side. It is settable, but sets are only allowed to clear UNACK to
false, and never in the opposite direction. The clearing of UNACK is nor-
mally via an operator Acknowledge pick on a default display, user display,
or Current Alarms Display, or via a user task.
153
B0193AX – Rev AB 5. AOUT – Analog Output Block
5.5 Functions
5.5.1 Detailed Diagram
(M)
MSCALE OUT BTIME LOLIM HOLIM
MEAS
SUP_IN O MA
Last Good Value SCALING BALANCING CLAMPING O O OUT
Back Calculated Input (A)
Bias BCALCO
Back
Selection OUT
Calculation SUPBCO
OUT SIGNAL
RAWC
IOMOPT = 0,1 CONDITIONING
To
AND
IOMOPT = 1 ECB
SUPOPT
SE AND O USE SUP_IN
BLKSTA.SC Failsafe
AND FS
Transition Cycle
BLKSTA.FS
AND Manual
MANFS
MEAS.BAD
MEAS.OOS OR MEAS.ACK FS
MEAS.Disconnect MEROPT=1 AND
BLKSTA.FS
PROPT
Auto AND USE LAST
OR O GOOD VALUE
MEAS.BAD MEROPT= 2
MEAS.OOS AND USE BACK
OR Back
MEAS.Disconnect AND O CALCULATED
MEAS.ERROR Initialization Cycle Calculation
INPUT
FBM/FBC BAD
OR BAD
FBC Point BAD
BLKSTA.BAD
OUT.BAD
BCALCO.BAD
OUT.SECURE
FBM/FBC OOS OUT.OOS
BCALCO.OOS
OUT.SECURE
Figure 5-2. AOUT Block Operational Diagram
154
5. AOUT – Analog Output Block B0193AX – Rev AB
155
B0193AX – Rev AB 5. AOUT – Analog Output Block
The value of “MEAS used this cycle” in this BIAS equation is the one selected by the
input source selection process described in Section 5.5.4, so that the output is not
bumped.
After block initialization, the block is processed normally on the remainder of the first execution
cycle.
156
5. AOUT – Analog Output Block B0193AX – Rev AB
All analog output points in FBMs and FBCs provide 0 to 20 mA outputs with the exception of
FBM17, which provides 0 to 10 V dc outputs.
The first step in generating the block output is selection of the input source, which is done
according to the following rules:
If supervisory control is enabled, as described in Section 5.5.9, the supervisory input
SUP_IN is used as the input source, provided the supervisory cascade is closed. This
closure is indicated by the value of 7 in Present Cascade State (PRSCAS).
157
B0193AX – Rev AB 5. AOUT – Analog Output Block
If supervisory control is not enabled, or the supervisory cascade is open, then the value
of MEAS is used as the input source, unless MEAS has the type of error requiring last
good value retention. The conditions for last good value retention are described in
Section 5.6.3.
If the last good value is required, then the input source is the value of MEAS from the
last processing cycle. (There is no last good value functionality when SUP_IN is the
input source.)
In order to prevent the confusion that could result from seeing more than one input value for the
block, the following steps are taken:
Whenever the input source is SUP_IN, its value is copied to MEAS, provided MEAS
is unlinked.
Whenever the input source is MEAS, its value is copied to SUP_IN.
If the input source is the last good value of MEAS, then that value is copied to
SUP_IN.
The selected input source is then scaled, balanced, clamped, and conditioned, in that order. The
result before conditioning is stored in OUT, and the result after conditioning in RAWC.
158
5. AOUT – Analog Output Block B0193AX – Rev AB
BALANCED OUTPUT
OUPUT STEP
63% 100%
BTIME
The conditions constituting a change in form of control of the output, and setting B_Term, are:
The measurement value in use changes to the current value after having been held at
the last good value for one or more previous cycles.
The bias value undergoes a similar transition.
The primary cascade closes this cycle.
The supervisory cascade closes this cycle.
159
B0193AX – Rev AB 5. AOUT – Analog Output Block
5.5.4.3 Clamping
Key Parameters: HOLIM, LOLIM, HOLIND, LOLIND, HSCO1, LSCO1
The scaled and balanced value as computed in Section 5.5.4.2 is clamped so that it does not
exceed the LOLIM and HOLIM operational limits.
If the computed value is less than or equal to LOLIM:
It is set equal to LOLIM.
Low Output Limit Indicator (LOLIND) is set true.
Status bit BLKSTA.LOL is set true.
High Output Limit Indicator (HOLIND) is set false.
Status bit BLKSTA.HOL is set false.
If the computed value is greater than or equal to HOLIM:
It is set equal to HOLIM.
HOLIND is set true.
Status bit BLKSTA.HOL is set true.
LOLIND is set false.
Status bit BLKSTA.LOL is set false.
Otherwise the value is not at or beyond either limit, and both indicators and both status bits are
set false.
Note that neither the operational limits HOLIM and LOLIM nor the range limits HSCO1 and
LSCO1 can be inverted, and that the operational limits are always within the range limits. The
block logic enforces the following constraints on these parameters:
LSCO1 < HSCO1
LOLIM HOLIM
LOLIM LSCO1
HOLIM HSCO1
NOTE
If you change the HSCO1 and LSCO1 values to expand the engineering range,
make sure you change the HOLIM and LOLIM values accordingly to prevent out-
put limiting at the old limits. The block does not automatically adjust HOLIM and
LOLIM for the expanded range.
160
5. AOUT – Analog Output Block B0193AX – Rev AB
BCALCO and SUPBCO are also used to indicate an open cascade situation, either to the
upstream block (in the case where the primary cascade is in use) or the supervisory application (if
supervisory control is enabled). The AOUT block sets status bits 13 and 14 simultaneously true
in BCALCO or SUPBCO to indicate an open cascade.
When the cascade is not open, these bits of BCALCO or SUPBCO are used to inform the
upstream block that the AOUT output is clamped at a limit, as follows:
Bit 13 of BCALCO/SUPBCO true indicates that HOLIND is true.
Bit 14 of BCALCO/SUPBCO true indicates that LOLIND is true.
SCO = 0: No Conditioning
RAWC = OUT
SCO = 1: Inverse Linear (0 to 64000)
Analog Output 0 to 20 mA
RAWC = (OUT - LSCO1) * 64000/(HSCO1 - LSCO1)
SCO = 2: Inverse Linear (1600 to 64000)
Analog Output 0 to 10 V dc
RAWC = ((OUT - LSCO1) * 62400/(HSCO1 - LSCO1)) + 1600
SCO = 3: Inverse Linear (12800 to 64000)
Analog Output 4 to 20 mA
RAWC = ((OUT - LSCO1) * 51200/(HSCO1 - LSCO1)) + 12800
SCO = 4: Inverse Square Root (0 to 64000)
Analog Output 0 to 20 mA
RAWC = ((OUT - LSCO1) * 64000/(HSCO1 - LSCO1))2 / 64000
SCO = 5: Inverse Square Root (12800 to 64000)
Analog Output 4 to 20 mA
RAWC = ((OUT - LSCO1) * 51200/(HSCO1 - LSCO1))2 / 51200 + 12800
161
B0193AX – Rev AB 5. AOUT – Analog Output Block
162
5. AOUT – Analog Output Block B0193AX – Rev AB
SCO =2
Then
RAWC = ((50 - 20) * 62400 / (90 - 20)) + 1600
= (30 * 62400/70) + 1600 = 28343
Inverse square root signal conditioning is similar, but the relationship between RAWC and OUT
is non-linear.
When Air-to-Close (ATC) is true, the signal conditioning reverses the sense of the conversion. For
example, with SCO = 3, an output at 100 percent of the range (OUT = HSCO1) is converted
into a RAWC value of 12800. This drives the FBM or FBC output at 4 mA. A 0 percent output
(OUT = LSCO1) is converted into a RAWC of 64000, which drives 20 mA. Intermediate values
are converted proportionately.
163
B0193AX – Rev AB 5. AOUT – Analog Output Block
AIN
PNT
MEAS
REALM REALM
or PID or
MEALM MEALM
Optional Real (REALM) OUT or Optional Real (REALM)
or Measurement (MEALM) or Measurement (MEALM)
Alarm Block Alarm Block
AOUT
To Displays and
Maintenance or
Data Collection
ECB74 ECB18
ECB73
FBM43/243
IT
Water
Figure 5-4. Typical Configuration for Intelligent Transmitters with Window ECB
164
5. AOUT – Analog Output Block B0193AX – Rev AB
and HOLIM), which are normally used to constrain the output to operating limits that are nar-
rower than the engineering range limits.
When this block runs, the LOLIM and HOLIM limit values are not allowed to exceed the engi-
neering range. In the example noted above, the block logic sets LOLIM=4 and HOLIM=20 when
the block initializes, since LSCO1=4 and HSCO1=20.
When the block initializes with the modified engineering range (LSCO1=0 and HSCO1=100),
the LOLIM, HOLIM values are not modified since they are already within the new engineering
range. As a result, the output will remain limited between 4-20.
To expand the engineering range, also adjust the LOLIM and HOLIM values accordingly by set-
ting them to their desired values. Once this is done, the new limit values will be used correctly to
constrain the output value.
165
B0193AX – Rev AB 5. AOUT – Analog Output Block
166
5. AOUT – Analog Output Block B0193AX – Rev AB
Set the value of SUPBCO from the AOUT block into its output (the value connected
to SUP_IN).
Set the Acknowledge bit (Bit 10) true in the status of SUP_IN. When the AOUT
block detects this Acknowledge bit set, it resumes computation of OUT in accordance
with the block algorithm, and leaves the Hold state.
When supervisory control is enabled in the block, it is possible to use a fallback timer mechanism
to assure that SUP_IN is updated by the supervisory application at sufficiently frequent intervals.
The following group of AOUT and Station block parameters are used for this purpose:
Supervisory Group (SUPGRP) assigns this block to one of eight possible groups used
by the Station block to control fallback timing. Each group is associated with one
timer maintained by the Station block.
Station block parameters Timer Values 1 to 8 (TIMVL1 to TIMVL8) and Reset Val-
ues 1 to 8 (RESVL1 to RESVL8) are the running and reset values, respectively, of the
eight timers. When configuring RESVL1 to RESVL8, you base the values on the fact
that each timer counts down once every eight seconds.
Station block parameter Timer Enable (TIMENA) is bit-mapped to enable, disable,
or force the reset of individual group timers.
If the supervisory application fails to update the value of SUP_IN for any block in a
group within the timeout period, the fallback action specified by FLBOPT is taken.
Fallback can also be specifically requested, for all blocks in a group, by setting the Sta-
tion block parameter Group Fallback Request (FLBRQn) true, where n is the number
of the group.
Fallback can be requested, for this block only, by setting Fallback Request (FLBREQ)
to the value 1 or 2.
When fallback occurs for any reason, SE and BLKSTA.SE are set false. Recovery,
which constitutes a return to supervisory control, is under control of FLBREQ, as
follows:
FLBREQ = 1: Return to supervisory control occurs when block parameter SE is
set true, or when a set command to Station block parameter Group Supervisory
Enable (SUPENA) sets the bit corresponding to this group true.
FLBREQ = 2: Return to supervisory control occurs only when SE is set true.
167
B0193AX – Rev AB 5. AOUT – Analog Output Block
On any transition out of the Bad condition (that is, on a Bad-to-Good transition), the following
actions are performed:
The current readback value of the output point is written into OUT.
The Hold state is entered (see Section 5.5.6).
If Primary Block (PRIBLK) is true, the primary cascade is opened.
If SUPOPT is 1 or 3, the supervisory cascade is opened.
168
5. AOUT – Analog Output Block B0193AX – Rev AB
169
B0193AX – Rev AB 5. AOUT – Analog Output Block
Manual. However, AUTSW is not inspected while the Bad condition persists. After
the Bad condition has cleared, a true value of AUTSW can then return the block to
Auto.
Manual Switch (MANSW): When true, the block is forced into Manual, and MA is
secured against sets. In that case, the value of AUTSW is ignored. Neither MANSW
nor AUTSW are inspected if MBADOP has forced the block into Manual and the
Bad condition is still present. MANSW overrides any connections to MA.
AUTSW: When true, the block is forced into Auto, and MA is secured against sets.
AUTSW is of lower priority than MANSW, and is ignored if both parameters are
true. AUTSW overrides any connections to MA.
MANFS: (Described in Section 5.5.8.) When the block is in Manual due to the
action of MANFS, MA is not secured, unlike the previous three cases. Operator
action or AUTSW can override a Manual mode established due to MANFS. (But
AUTSW must not be inactive due to MBADOP action, as noted above.)
5.8 Alarming
The AOUT block supports the Bad I/O alarm type. The functionality of this alarm type is dis-
cussed in the appropriate Integrated Control Software Concepts document (B0700AG or
B0193AW).
The nomenclature for identical alarm types varies from block to block for historical reasons
involving backward compatibility requirements. The nomenclature for the AOUT block is as fol-
lows:
Table 5-3. AOUT Block Alarm Nomenclature
Default Indicator
Type Option Priority Group Text Display Parameter
I/O Bad BAO = True BAP BAG BAT IOBAD BAD
170
5. AOUT – Analog Output Block B0193AX – Rev AB
ECB1
AIN
PNT
MEAS
PID
FBM203
or
OUT FBM03
MEAS
AOUT
RAWC
ECB2
FBM204
or
FBM04
TT
171
B0193AX – Rev AB 5. AOUT – Analog Output Block
172
6. AOUTR – Redundant Analog
Output Block
This chapter covers the Redundant Analog Output Block, or AOUTR, its features, parameters
and functions, bad, out-of-service, and error conditions, manual mode, alarming, and
application diagrams.
6.1 Overview
The Redundant Analog Output Block (AOUTR) provides the control strategy with output capa-
bility for a single analog value directed to any two redundant Fieldbus Modules (FBMs) or Field-
bus Cards (FBCs) capable of driving analog outputs. The block supports Auto/Manual control,
signal conditioning, biasing, and output balancing. Cascade initialization and supervisory control
features are also available.
173
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block
Measurement
Supervisory Scalar Balance Low Output Limit
Enable & Time High Output Limit
Bias
Back Back
Calculation Calculated
Outputs
Measure-
ment Input Reset
Scaling Clamping o Out
Supervisory Selection Balancing
Input
Signal Raw
Conditioning Count
Fieldbus Output
Output to
FBMs/FBCs
ECBs Failsafe
Failsafe
Failsafe/Bad Processing
FBM and
BAD Bad
Channel Detection Alarming
Alarm
Status
174
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB
value of Signal Conditioning Output (SCO), with the result stored in Raw Count (RAWC). If
the block is operating with a pair of connected FBMs or FBCs, the value of RAWC is transmitted
to the specified analog output point in each module.
6.3 Features
Fieldbus Module option to permit configuration of AOUTR blocks without FBM or
FBC connections (output only to control strategy).
Output to any redundant pair of FBMs or FBCs driving 0 to 20 mA or 0 to 10 V dc
analog outputs.
Gain and offset scaling of the output.
Reset balance action with specifiable time constant.
Output clamping between user-selectable operational limits.
Selectable linear signal conditioning of the output.
Air-to-Close option to invert the sense of the output for use with air-to-close valves.
Raw Count output to display the output after signal conditioning.
Supervisory Control option for driving the block input from an external supervisory
application.
Parameters to allow flexible choice of block action in case of supervisory control
fallback.
Error Propagation option to permit non-standard conditions of the measurement or
bias inputs to be reflected as an error status of the output.
Measurement Error option to permit selection of the conditions under which the last
good value of the measurement is retained.
Bias Error option to perform the same function for the bias term.
Manual/Auto mode for disconnecting the control scheme from the output, for simu-
lation and checkout purposes.
Optional output clamping when in Manual.
Manual if Failsafe option to force the block into Manual whenever a transition into
Failsafe occurs. (See Section 6.4.9 for the definition of Failsafe in an AOUTR block.)
Manual if Bad option to force the block into Manual whenever the measurement or
bias input has bad status, or both of the FBMs or FBCs are bad.
Bias Tracking option to cause the bias value to track changes in the output by back
calculation, when the block is in Manual (see Section 6.6).
The Primary Block option enables the block, when in a cascaded configuration, to ini-
tialize without bumping the process.
Bad Alarm option to permit Bad alarm generation separately for the primary and sec-
ondary FBM or FBC.
175
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block
6.4 Parameters
Table 6-1. AOUTR Block Parameters
176
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB
177
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block
ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use.
For the AOUTR block, only the unshaded bits in this diagram are used.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit Number1
(0 to 31) Configured Alarm Option When True
0 (Least Significant) Alarm Group 8 in Use
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use
22 Bad I/O Alarm Configured
1.
Bit 0 is the least significant, low order bit.
ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the AOUTR block, only the unshaded bits in this diagram are
used.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
B4
B5
B6
B7
B8
B9
CRIT PRTYPE
BAD
178
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: See parame- ---
(Least Sig- ter PRTYPE for values
nificant) used in the AOUTR block
5 to 7 CRIT_MSK Criticality; 5 = lowest pri- ---
ority, 1= highest
22 BAD Bad I/O Alarm ALMSTA.B10
30 UNAK Unacknowledged ALMSTA.B2
AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is gen-
erated.
ATC Air-to-Close is a configurable option that inverts the sense of the conver-
sion from engineering units to raw count output, for use with air-to- close
valves.
AUTSW Auto Switch, when true, forces the block into the Auto mode and secures
MA against sets. It is of lower priority than MANSW, and is overridden by
it if both parameters are true. It is also overridden by MBADOP if the Bad
condition causing the Manual mode is still present. AUTSW overrides any
connections to MA.
BAD Bad is a boolean output which is set true when both sides of the redun-
dant pair have bad status. A side is considered to have bad status if its
FBM or FBC has a fatal fault or the output point (in an FBC) has bad sta-
tus.
BAG Bad Alarm Group is a short integer input that directs Bad alarm messages
to one of eight groups of alarm devices.
BAO Bad Alarm Option is a configurable option that enables alarm generation
for each state change of the BAD parameter. The parameter values are:
179
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block
BAP Bad Alarm Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the Bad alarm (1 is the highest priority).
BCALCO Back Calculated Output is a real value that specifies to the upstream block
the value of MEAS which leaves OUT unchanged. If the upstream block
sets its output to the BCALCO value, bumpless cascade initialization is
assured. The upstream block normally connects BCALCO from the
AOUTR block to its BCALCI input.
BEROPT Bias Error Option is a short integer option which determines the condi-
tions under which last good value functionality is provided for the input
BIAS. BEROPT is only active when PROPT is true.
BIAS Bias is an input used to offset the measurement value. It may be used inde-
pendently, or in conjunction with MSCALE to achieve units conversion
of the measurement.
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. The AOUTR block uses only the unshaded bits in this dia-
gram:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
FBMR B23
B24
HOLD B25
B26
B27
B28
B29
B30
BADR B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
MAO
FBM
HOL
BAD
TRK
LOL
FLB
ON
MA
SC
SE
FS
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
1 BADR Bad Secondary I/O BLKSTA.B31
6 TRK Local Panel in Use BLKSTA.B26
7 HLD Auto/Hold State BLKSTA.B25
8 FBM Primary FBM or FBC Failure BLKSTA.B24
180
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
9 FBMR Secondary FBM or FBC Failure BLKSTA.B23
11 MA Manual = 0, Auto = 1 BLKSTA.B21
12 BAD Bad Primary I/O BLKSTA.B20
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
20 WLCK Access Locked BLKSTA.B12
24 FS Outputs in Failsafe or Awaiting BLKSTA.B8
Cascade Closure after Transition
26 MAO Manual/Auto Override Active BLKSTA.B6
27 LOL Output Clamped at Low Limit BLKSTA.B5
28 HOL Output Clamped at High Limit BLKSTA.B4
29 SE Supervisory Control Enabled BLKSTA.B3
30 SC Supervisory Cascade Closed BLKSTA.B2
31 FLB Block in Supervisory Fallback BLKSTA.B1
BTIME Balance Time is a real input that specifies the time constant, in minutes,
for the value of OUT to reach approximately 63 percent of the value cal-
culated by the algorithm, when the block output changes its mode of con-
trol.
BTRKOP Bias Track Option, when true, causes BIAS to track the manually set value
of OUT by the following back calculation:
BIAS = OUT - (MEAS * MSCALE)
The block must be in Manual, and BIAS must be unlinked.
CRIT Criticality is an integer output which, for the AOUTR block, indicates the
priority of any active Bad alarm (1 is the highest priority). Bad alarms on
the primary and secondary sides have the same priority, BAP. An output of
zero indicates the absence of alarms.
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing, other than those involved in duplicate output channel detection.
(See ERCODE for the list of all possible validation errors in this block.) In
that case, no further processing of the block occurs, including further vali-
dation of remaining parameters. To return DEFINE to a true value, cor-
rect all configuration errors and reinstall the block. If DEFINE = 0, the bit
BLKSTA.UDEF = 1.
181
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block
DELTI1 to Change Delta for Input Range 1 or 2 is a real value that defines the mini-
DELTI2 mum percent of the input range that triggers change driven connections
for parameters in the range of RI1 or RI2. The default value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.
DELTO1 Change delta for Output Range 1 is a configurable real value that defines
the minimum percent of the output range that triggers change-driven
connections for parameters in the range RO1. The default value is 1.0 per-
cent. If communication is within the same control station that contains
the block’s compound, DELTO1 has no effect.
DEVIDR Redundant Device Identifier is a character array data store that specifies
the 6-character letterbug of the redundant connected FBM or FBC.
DEV_ID Device Identifier is a character array data store that indicates the 6-charac-
ter letterbug of the primary connected FBM or FBC.
EI1 Engineering Units for Input Range 1 provides the engineering units text
for the values of MEAS, BCALCO, and SUPBCO. The value configured
for this text string should be consistent with the values used for HSCI1
and LSCI1. “Deg F” and “pH” are typical entries.
EI2 Engineering Units for Input Range 2 provides the engineering units text
for the value of BIAS. The value configured for this text string should be
consistent with the values used for HSCI2 and LSCI2. “Deg F” and “pH”
are typical entries.
EO1 Engineering Units for Output Range 1 provides the engineering units text
for the values of OUT, HOLIM, and LOLIM. The value configured for
this text string should be consistent with the values used for HSCO1 and
LSCO1. “Deg F” and “pH” are typical entries.
ERCODE Error Code is a string data store which indicates the type of configuration
error or warning which caused the block’s DEFINE parameter to be set
false. Validation of the configuration does not proceed past the first error
or warning encountered by the block logic. (The duplicate output channel
condition does not cause the block’s DEFINE to be set false.) The block
detailed display shows the ERCODE on the primary page, if it is not null.
182
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB
For the AOUTR block, the following list specifies the possible values of
ERCODE, and the significance of each value in this block.
ERCODE Description
W44 HSCO1 less than or equal to LSCO1.
W48 SUPOPT or FLBOPT out of range.
W50 Invalid SCO.
W51 The specified FBMs or FBCs are not of the same hardware
and software types, or do not support analog output points.
W52 PNT_NO is out of range for the specified FBMs or FBCs.
W54 Specified IOM_ID or IOMIDR does not exist.
W59 Warning: This block and another AOUT or AOUTR
block are connected to the same FBM or FBC and point
number. Both blocks receive the same warning message.
FLBOPT Fallback Option is a configured input that defines the control action to be
taken by the block when a supervisory control fallback occurs:
0 = Make no change in MA (default)
1 = Set MA to Auto
2 = Set MA to Manual
FLBOPT overrides a linked MA parameter, but does not override the
AUTSW and MANSW parameters.
FLBREQ Fallback Request is an output, which constitutes an explicit request for the
block to go to the supervisory control fallback state specified by FLBOPT,
regardless of the value of its fallback timer.
0 = Fallback not requested.
1 = Fallback requested; recovery at block or group level.
2 = Fallback requested; recovery only at block level.
FS Failsafe is a boolean output that is set true when the block detects that the
FBM has transitioned into the Failsafe state. While in this state, the block
uses a measurement value based on a back calculation from the value read
back from the primary FBM or FBC. If the primary has bad status and the
redundant FBM or FBC has good status, then the redundant unit is used.
Once set true, FS remains true until the cascade has closed.
HOLIM High Output Limit is a real input that establishes the maximum output
value. If the block is in Auto and the algorithm tries to drive the output to
a value higher than or equal to HOLIM, or if the block is in Manual (with
MCLOPT true) and the manually set value of the output is higher than or
equal to HOLIM, the output is clamped at the HOLIM value and
HOLIND is set true.
Configure HOLIM within the output engineering range RO1 defined by
parameters HSCO1 and LSCO1 (see “Block Initialization” on page 193).
If you change the HSCO1 and LSCO1 values to expand the engineering
183
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block
range, make sure you change the HOLIM value accordingly to prevent
output limiting at the old limit. The block does not automatically adjust
HOLIM for the expanded range.
HOLIND High Output Limit Indicator is a boolean output that is set true whenever
the output is clamped at the high output limit, HOLIM.
HSCI1 High Scale for Input Range 1 is a real value that defines the upper range
value for MEAS, SUP_IN, BCALCO, and SUPBCO. It is only used in
displays.
HSCI2 High Scale for Input Range 2 is a real value that defines the upper range
value for BIAS. It is only used in displays.
HSCO1 High Scale for Output Range 1 is a real value that defines the upper range
value for the block’s output.
INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting. Alarms may also be inhibited based on the compound parameter
CINHIB.
INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do not
disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the time
the alarm transitions into the inhibited state, clear the alarm
indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages can be acknowledged by explicitly setting
UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages can be acknowledged by explicitly setting
UNACK false.
INHSTA Inhibit Status contains packed long values that represent the current
inhibit status of each alarm type configured in the block. For the AOUTR
block, only the unshaded bit in this diagram is used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BAD B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
184
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB
Bit Boolean
Number * Connection
(0 to 31) Name Description When True (B32 to B1)
22 BAD Bad I/O Alarm Inhibited INHSTA.B10
INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state as specified in the checkpoint file.
The block asserts this initial M/A state whenever any one of the following
occurs:
It is installed into the Control Processor database.
The Control Processor undergoes a reboot operation.
The compound in which it resides is turned on.
INITMA itself is modified via the control configurator. (The
block does not assert INITMA on ordinary reconfiguration.)
INITMA is ignored if MA has an established linkage.
INITO Initialization Output is set true when the primary cascade is open for any
reason, and returned to false when cascade closure is detected. The INITO
output of a downstream block is normally connected to the INITI of the
next upstream block, and serves to notify the upstream block of the open
loop condition. The information conveyed by the short value of INITO is
currently contained in the status bits of BCALCO, but INITO/INITI
have been retained for reasons of backward compatibility. This block
keeps INITO True, for one cycle (PRIBLK = 0), until the acknowledge is
received from upstream (PRIBLK = 1 and PRITIM = 0.0), or for a fixed
time delay (PRIBLK = 1 and PRITIM = nonzero).
INITSE Initialize Supervisory Enable is a configured value that specifies the initial
state of SE when the block is installed, the containing compound is turned
on, or the control processor is rebooted. Options are:
0 = Disable (SE is set false)
1 = Enable (SE is set true)
2 = No change (SE retains its current value)
INITSE is not asserted when the block is initialized due to
reconfiguration.
IOMIDR Redundant Fieldbus Module Identifier is a string that specifies the redun-
dant FBM or FBC to which the block is connected. IOMIDR is entered
with the same format choices as IOM_ID.
185
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block
IOMOPT FBM Option is a short integer specifying whether FBM or FBC connec-
tions to the block exist. Values are:
0= The block does not transmit the OUT value to a pair of FBMs or
FBCs. The value in OUT is conditioned as specified by SCO.
1= The block transmits the OUT value to the FBMs or FBCs speci-
fied by IOM_ID and IOMIDR. The value is conditioned as
specified by SCO.
2= There are no connected FBMs or FBCs. The value in OUT is not
conditioned.
IOM_ID Fieldbus Module Identifier is a configurable string that specifies the path-
name of the primary FBM or FBC to which the block is connected.
IOM_ID has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOM_ID configuration. In this case, the 1-12
character ECB block name is sufficient.
LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.
LOCKRQ Lock Request is a boolean input which can be set true or false only by a set
command from the LOCK U/L toggle key on workstation displays. When
LOCKRQ is set true in this fashion a workstation identifier accompany-
ing the SETVAL command is entered into the LOCKID of the block.
Thereafter, set requests to any of the block’s parameters are only honored
(subject to the usual access rules) from the workstation whose identifier
matches the contents of LOCKID. LOCKRQ may be set false by any
workstation at any time, whereupon a new LOCKRQ is accepted, and a
new ownership workstation identifier written to LOCKID.
LOLIM Low Output Limit is a real input that establishes the minimum output
value. If the block is in Auto and the algorithm tries to drive the output to
a value lower than or equal to LOLIM, or if the block is in Manual (with
MCLOPT true) and the manually set value of the output is lower than or
equal to LOLIM, the output is clamped at the LOLIM value and
LOLIND is set true.
Configure LOLIM within the output engineering range RO1 defined by
parameters HSCO1 and LSCO1 (see “Block Initialization” on page 193).
If you change the HSCO1 and LSCO1 values to expand the engineering
range, make sure you change the LOLIM value accordingly to prevent
output limiting at the old limit. The block does not automatically adjust
LOLIM for the expanded range.
186
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB
LOLIND Low Output Limit Indicator is a boolean output that is set true whenever
the output is clamped at the low output limit, LOLIM.
LSCI1 Low Scale for Input Range 1 is a real value that defines the lower range
value for MEAS, SUP_IN, BCALCO, and SUPBCO. It is only used in
displays.
LSCI2 Low Scale for Input Range 2 is a real value that defines the lower range
value for BIAS. It is only used in displays.
LSCO1 Low Scale for Output Range 1 is a real value that defines the lower range
value for the block’s output.
MANFS Manual if Failsafe is a configurable option which, when true, causes the
block to switch to the Manual mode when the connected point is reported
by the FBMs or FBCs to have transitioned into the Failsafe state. MANFS
has no effect when MA is linked.
MANSW Manual Switch, when true, forces the block into the Manual mode and
secures MA against sets. It is of higher priority than AUTSW, and over-
rides it if both parameters are true. MANSW also overrides any connec-
tions to MA.
MBADOP Manual if Bad Option is a manual override feature which, when true,
causes the block to go into Manual mode if MEAS or BIAS has Bad status,
or the FBM or FBC is Bad. For the relationship between MBADOP and
AUTSW/MANSW, see Section 6.7. MBADOP has no effect when MA is
linked.
MCLOPT Manual Clamping Option, when true, causes the value of OUT as set in
Manual mode to be clamped by the operational limits HOLIM and
LOLIM.
MEROPT Measurement Error Option is a short integer option which determines the
conditions under which last good value functionality is provided for the
input MEAS. MEROPT is only active when PROPT is true and the block
is in Auto.
187
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block
OSV Output Span Variance is a configurable real input which defines the per-
centage by which the operational clamp limits HOLIM and LOLIM can
exceed the output range defined by HSCO1 and LSCO1.
OUT Output, in Auto mode, is the result of the block algorithm applied to the
MEAS input. In Manual, OUT is released, and can be set from a display
or an external task.
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. Integrator and Gateway blocks have different period
values than shown here.
Period Length Period Length
0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****
* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
188
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB
PERTIM Period Time is a real data store which, in the case of the AOUTR block,
contains the number of execution cycles in one minute. It is only used in
the calculation of the reset balance factor.
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).
PNT_NO Point Number specifies the FBM or FBC points to which the AOUTR
block is connected. The same point is driven in each FBM or FBC.
PRIBLK Primary Block is a configured boolean which should be set true when the
AOUTR block is in a secondary position in a control cascade, and not
otherwise. When true, PRIBLK enables bumpless initialization of the pri-
mary cascade at initial startup or transfer of control. Depending on the
value of PRITIM, PRIBLK does this by forcing the AOUTR block to
remain in the Hold state until the Acknowledge status bit (Bit 10) of
MEAS is detected from the upstream block (PRITIM = 0.0), or until the
time defined by PRITIM expires (PRITIM > 0.0). In the latter case, the
explicit acknowledge from the upstream block is not needed.
Use PRIBLK in a cascade situation when the source of the block's input
connection needs to be initialized.
Refer to “PRIBLK and PRITIM Functionality” on page 202 for more
information on this parameter.
PRITIM Primary Cascade Timer is a configurable parameter used to delay the clos-
ing of the cascade to a primary block, when the output is initialized in the
AOUTR block. It is used only if the PRIBLK option is set. The cascade is
closed automatically when the timer expires without requiring an explicit
acknowledge by the upstream block logic.
Refer to “PRIBLK and PRITIM Functionality” on page 202 for more
information on this parameter.
PROPT Propagate Error Option is a boolean input which, when the block is in
Auto, determines whether errors in the MEAS or BIAS parameters cause
the Error status bit of OUT to be set true. In addition, a true value of
PROPT causes MEAS to have last good value functionality based on the
error types specified by MEROPT. Similarly, PROPT and BEROPT,
taken together, determine whether BIAS has last good value functionality.
See Section 6.5.3 for details of PROPT, MEROPT, and BEROPT.
189
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block
PRSCAS Present Cascade State is a data store that indicates the cascade state. It has
the following possible values:
Value State Description
1 “INIT_U” Unconditional initialization of the primary
cascade is in progress.
2 “PRI_OPN” The primary cascade is open.
3 “INIT_C” Conditional initialization of the primary
cascade is in progress.
4 “PRI_CLS” The primary cascade is closed.
5 “SUP_INIT” The supervisory cascade is initializing.
6 “SUP_OPN” The supervisory cascade is open.
7 “SUP_CLS” The supervisory cascade is closed.
PRTYPE Priority Type is an indexed output that indicates the alarm type of the
highest priority active alarm. The PRTYPE output of this block consists of
the following possible values:
0 = No active alarm
8 = Bad
RAWC Raw Count is the value of the selected input source after any necessary
scaling, balancing, clamping, and conditioning are applied. If IOMOPT =
1, the value of RAWC is transferred to both FBMs or FBCs, provided
their ECBs indicate normal status.
RI1 Range Input 1 is a real array consisting of the three parameters HSCI1,
LSCI1, and DELTI1. The array members are configured by their individ-
ual names; however, RI1 and its members can, optionally, be accessed on
an array basis by user tasks and displays.
RI2 Range Input 2 is a real array consisting of the three parameters HSCI2,
LSCI2, and DELTI2. The array members are configured by their individ-
ual names; however, RI2 and its members can, optionally, be accessed on
an array basis by user tasks and displays.
RO1 Range Output 1 is a real array consisting of the three parameters HSCO1,
LSCO1, and DELTO1. The first two of these array members are config-
ured by their individual names. (DELTO1 is unused). RO1 and any of its
members can, optionally, be accessed on an array basis by user tasks and
displays.
190
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB
SUPBCO Supervisory Back Calculated Output is a real value that indicates the value
of SUP_IN which would leave OUT unchanged. If the supervisory appli-
cation sets its output to the BCALCO value, bumpless initialization of the
supervisory cascade is assured. SUPBCO also contains the following status
bits:
Status Meaning
Bit 10 = 1 Initialize SUP_IN
Bit 13 = 1 SUP_IN is limited high
Bit 14 = 1 SUP_IN is limited low
Bit 13 = 1 and Bit 14 =1 Supervisory cascade is open
SUPGRP Supervisory Group is a configured short integer that assigns this block to
one of eight groups for purposes of supervisory control fallback timing.
SUP_IN Supervisory Input is the input that the block uses as the measurement
when supervisory control is enabled. It is driven by the supervisory appli-
cation. The supervisor also uses the Acknowledge status bit of SUP_IN
(Bit 10) to indicate that a request to initialize has been honored, and that
the supervisory cascade may be closed.
TYPE When you enter “AOUTR” or select it from a configurator list, an identi-
fying integer is created specifying this block type.
UNACK Unacknowledge is a boolean output which is set true, for notification pur-
poses, whenever the block goes into alarm on either the primary or sec-
ondary side. It is settable, but sets are only allowed to clear UNACK to
false, and never in the opposite direction. The clearing of UNACK is nor-
mally via an operator Acknowledge pick on a default display, user display,
or Current Alarms Display, or via a user task.
191
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block
Bias
Selection Back BCALCO
OUT
Calculation SUPBCO
OUT SIGNAL
RAWC
IOMOPT = 0,1 CONDITIONING
SUPOPT To
IOMOPT = 1 AND Primary
SE AND O USE SUP_IN
Primary OPSTAT = 6 ECB
BLKSTA.SC
To
Primary Failsafe AND Redundant
Redundant Failsafe AND Redundant OPSTAT = 6 ECB
Primary Failsafe
AND OR
Redundant BAD
AND FS
Transition Cycle
BLKSTA.FS
Primary BAD
AND
Redundant Failsafe AND Manual
MANFS
MEAS.ACK FS
MEAS.BAD
MEAS.OOS OR BLKSTA.FS
MEAS.Disconnect MEROPT=1 AND
PROPT
Auto AND USE LAST
OR OGOOD VALUE
MEAS.BAD MEROPT=2
MEAS.OOS AND USE BACK
OR Back CALCULATED
MEAS.Disconnect AND O
MEAS.ERROR Initialization Cycle Calculation INPUT
192
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB
193
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block
The value of “MEAS used this cycle” in this BIAS equation is the one selected by the
input source selection process described in Section 6.4.5, so that the output is not
bumped. Therefore, it could in practice be SUP_IN, MEAS, or the back calculated
value described in the previous bullet.
After block initialization, the block is processed normally on the remainder of the first execution
cycle.
194
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB
195
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block
All analog output points in FBMs and FBCs provide 0 to 20 mA outputs with the exception of
FBM17, which provides 0 to 10 V dc outputs.
The first step in generating the block output is selection of the input source, which is done
according to the following rules:
If supervisory control is enabled, as described in Section 6.4.10, the supervisory input
SUP_IN is used as the input source, provided the supervisory cascade is closed. This
closure is indicated by the value of 7 in Present Cascade State (PRSCAS).
If supervisory control is not enabled, or the supervisory cascade is open, then the value
of MEAS is used as the input source, unless MEAS has the type of error requiring last
good value retention. The conditions for last good value retention are described in
Section 6.5.3.
If the last good value is required, then the input source is the value of MEAS from the
last processing cycle. (There is no last good value functionality when SUP_IN is the
input source.)
Whenever the input source is SUP_IN, its value is copied to MEAS, provided MEAS is unlinked.
Whenever the input source is MEAS, its value is copied to SUP_IN. If the input source is the last
good value of MEAS, that value is copied to SUP_IN.
The selected input source is then scaled, balanced, clamped, and conditioned, in that order. The
result before conditioning is stored in OUT, and the result after conditioning in RAWC.
196
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB
BALANCED OUTPUT
OUPUT STEP
63% 100%
BTIME
The conditions constituting a change in form of control of the output, and setting B_Term, are:
The measurement value in use changes to the current value after having been held at
the last good value for one or more previous cycles.
The bias value undergoes a similar transition.
The primary cascade closes this cycle.
The supervisory cascade closes this cycle.
197
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block
6.4.5.3 Clamping
Key Parameters: HOLIM, LOLIM, HOLIND, LOLIND, HSCO1, LSCO1
The scaled and balanced value as computed in Section 6.4.5.2 is clamped so that it does not
exceed the LOLIM and HOLIM operational limits.
If the computed value is less than or equal to LOLIM:
It is set equal to LOLIM.
Low Output Limit Indicator (LOLIND) is set true.
Status bit BLKSTA.LOL is set true.
High Output Limit Indicator (HOLIND) is set false.
Status bit BLKSTA.HOL is set false.
If the computed value is greater than or equal to HOLIM:
It is set equal to HOLIM.
HOLIND is set true.
Status bit BLKSTA.HOL is set true.
LOLIND is set false.
Status bit BLKSTA.LOL is set false.
Otherwise the value is not at or beyond either limit, and both indicators and both status bits are
set false.
Note that neither the operational limits HOLIM and LOLIM nor the range limits HSCO1 and
LSCO1 may be inverted, and that the operational limits are always within the range limits. The
block logic enforces the following constraints on these parameters:
LSCO1 < HSCO1
LOLIM HOLIM
LOLIM LSCO1
HOLIM HSCO1
NOTE
If you change the HSCO1 and LSCO1 values to expand the engineering range,
make sure you change the HOLIM and LOLIM values accordingly to prevent out-
put limiting at the old limits. The block does not automatically adjust HOLIM and
LOLIM for the expanded range.
198
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB
BCALCO and SUPBCO are also used to indicate an open cascade situation, either to the
upstream block (in the case where the primary cascade is in use) or the supervisory application (if
supervisory control is enabled). The AOUTR block sets status bits 13 and 14 simultaneously true
in BCALCO or SUPBCO to indicate an open cascade.
When the cascade is not open, these bits of BCALCO or SUPBCO are used to inform the
upstream block that the AOUTR output is clamped at a limit, as follows:
Bit 13 of BCALCO/SUPBCO true indicates that HOLIND is true.
Bit 14 of BCALCO/SUPBCO true indicates that LOLIND is true.
SCO = 0: No Conditioning
RAWC = OUT
SCO = 1: Inverse Linear (0 to 64000)
Analog Output 0 to 20 mA
RAWC = (OUT - LSCO1) * 64000 / (HSCO1 - LSCO1)
SCO = 2: Inverse Linear (1600 to 64000)
Analog Output 0 to 10 V dc
RAWC = ((OUT - LSCO1) * 62400 / (HSCO1 - LSCO1)) + 1600
SCO = 3: Inverse Linear (12800 to 64000)
Analog Output 4 to 20 mA
RAWC = ((OUT - LSCO1) * 51200 / (HSCO1 - LSCO1)) + 12800
SCO = 4: Inverse Square Root (0 to 64000)
Analog Output 0 to 20 mA
RAWC = ((OUT - LSCO1) * 64000 / (HSCO1 - LSCO1))2 / 64000
SCO = 5: Inverse Square Root (12800 to 64000)
Analog Output 4 to 20 mA
RAWC = ((OUT - LSCO1) * 51200 / (HSCO1 - LSCO1))2 / 51200 + 12800
199
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block
200
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB
Inverse square root signal conditioning is similar, but the relationship between RAWC and OUT
is non-linear.
When Air-to-Close (ATC) is true, the signal conditioning reverses the sense of the conversion. For
example, with SCO = 3, an output at 100 percent of the range (OUT = HSCO1) is converted
into a RAWC value of 12800. This drives the FBM or FBC output at 4 mA. A 0 percent output
(OUT = LSCO1) is converted into a RAWC of 64000, which drives 20 mA. Intermediate values
are converted proportionately.
201
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block
the cascade is closed. On any cycle in which the block is in Auto and in Hold state, the status bit
BLKSTA.HLD is set true, unless a local panel is in use (indicated by BLKSTA.TRK true).
202
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB
in parallel with the usual, or “primary” cascade; however, only one cascade or the other is active at
any one time.
If SUPOPT is 1 or 3, you can place the block under supervisory control through the use of Super-
visory Enable (SE) and Initialize Supervisory Enable (INITSE).
Setting SE true enables supervisory control and causes the status bit BLKSTA.SE to be
set true. Setting it false causes the block input to be taken from MEAS, and status bits
BLKSTA.SE, BLKSTA.SC, and BLKSTA.FLB to be set false.
INITSE establishes the value of SE when the block is initialized for any reason except
reconfiguration of a parameter. The values of INITSE are:
INITSE = 0: Supervisory control is disabled. SE, BLKSTA.SE, and
BLKSTA.SC are set false.
INITSE = 1: Supervisory control is enabled. SE and BLKSTA.SE are set true.
INITSE = 2: The previous values of SE and the BLKSTA status bits are retained.
These values are the ones stored in the checkpoint file (reboot case), the default
values (block install case), or the database (compound turn-on case).
If supervisory control is enabled in any fashion, status bit BLKSTA.SC is set true whenever the
supervisory cascade is closed, and not otherwise.
The Supervisory Back Calculated Output (SUPBCO) provides the current measurement and ini-
tialization bits to the Supervisory Application Program. When Supervisory Enable (SE) is set by
the application program or operator, the block is prepared to do Supervisory Setpoint Control
(SSC) functions. When the proper handshaking occurs with the application software, the block
accepts sets to the Supervisory Setpoint, (SUP_IN). If the block is in Auto, it then uses the
SUP_IN in the calculation of the block’s output.
If SUPOPT is set to 1, the handshake may require the application software to return an explicit
acknowledge to close the supervisory cascade. The software must set the ACK status bit in the
SUP_IN parameter using special OM access functions. However, if SUPOPT is set to 3, this
acknowledgement is implicitly provided by the CP and is not required from the software. In the
latter case, the CP closes the supervisory cascade automatically when the supervisory input
(SUP_IN) is written by the application, provided the block is in the Supervisory Initialization
(SUP_INIT) state. The control block enters the SUP_INIT state when supervisory control is
enabled in the block and the cascade is closed downstream. Upon entering this state, the CP sets
the initialize request bit (INITC) in the SUPBCO parameter for the application software. When
SUP_IN is then written by the software, the CP access logic sets the ACK status automatically in
the SUP_IN parameter. When the block runs, the CP block logic then closes the supervisory cas-
cade automatically.
When the supervisory application receives a request to initialize (see Section 6.4.5.4), it should:
Set the value of SUPBCO from the AOUTR block into its output (the value con-
nected to SUP_IN)
Set the Acknowledge bit (Bit 10) true in the status of SUP_IN. When the AOUTR
block detects this Acknowledge bit set, it resumes computation of OUT in accordance
with the block algorithm, and leaves the Hold state.
When supervisory control is enabled in the block, it is possible to use a fallback timer mechanism
to assure that SUP_IN is updated by the supervisory application at sufficiently frequent intervals.
The following group of AOUTR and Station block parameters are used for this purpose:
203
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block
Supervisory Group (SUPGRP) assigns this block to one of eight possible groups used
by the Station block to control fallback timing. Each group is associated with one
timer maintained by the Station block.
Station block parameters Timer Values 1 to 8 (TIMVL1-8) and Reset Values 1 to 8
(RESVL1 to RESVL8) are the running and reset values, respectively, of the eight tim-
ers. When configuring RESVL1 to RESVL8, you base the values on the fact that each
timer counts down once every eight seconds.
Station block parameter Timer Enable (TIMENA) is bit-mapped to enable, disable,
or force the reset of individual group timers.
If the supervisory application fails to update the value of SUP_IN for any block in a
group within the timeout period, the fallback action specified by FLBOPT is taken.
Fallback can also be specifically requested, for all blocks in a group, by setting the Sta-
tion block parameter Group Fallback Request (FLBRQn) true, where n is the number
of the group.
Fallback can be requested, for this block only, by setting Fallback Request (FLBREQ)
to the value 1 or 2.
When fallback occurs for any reason, SE and BLKSTA.SE are set false. Recovery,
which constitutes a return to supervisory control, is under control of FLBREQ, as
follows:
FLBREQ = 1: Return to supervisory control occurs when block parameter SE is
set true, or when a set command to Station block parameter Group Supervisory
Enable (SUPENA) sets the bit corresponding to this group true.
FLBREQ = 2: Return to supervisory control occurs only when SE is set true.
204
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB
205
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block
206
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB
Manual Switch (MANSW): When true, the block is forced into Manual, and MA is
secured against sets. In that case, the value of AUTSW is ignored. Neither MANSW
nor AUTSW are inspected if MBADOP has forced the block into Manual and the
Bad condition is still present. MANSW overrides any connections to MA.
AUTSW: When true, the block is forced into Auto, and MA is secured against sets.
AUTSW is of lower priority than MANSW, and is ignored if both parameters are
true. AUTSW overrides any connections to MA.
MANFS: (Described in Section 6.4.9.) When the block has been forced into Manual
due to the action of MANFS, MA is not secured, unlike the previous three cases.
Operator action or AUTSW can override a Manual mode established due to MANFS.
(But AUTSW must not be inactive due to MBADOP action, as noted above.)
6.7 Alarming
The AOUTR block supports the Bad I/O alarm type. The functionality of this alarm type is dis-
cussed in the appropriate Integrated Control Software Concepts document (B0700AG or
B0193AW). Separate “into alarm” and “return to normal” alarm messages are generated for each
output side, but the BAD parameter follows the rules described in Section 6.5.1.
The nomenclature for identical alarm types varies from block to block for historical reasons
involving backward compatibility requirements. The nomenclature for the AOUTR block is as
follows:
Table 6-3. AOUT Block Alarm Nomenclature
Indicator
Type Option Priority Group Text Default Display Parameter
I/O Bad BAO = True BAP BAG BAT IOBAD BAD
207
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block
ECB 1
AIN
PNT
MEAS
PID
OUT FBM03
MEAS
AOUTR
RAWC
ECB23 ECB23
FBM39 FBM39
TT
208
7. BIAS – Bias Block
This chapter covers the Bias Block, or BIAS, its features, parameters and functions.
7.1 Overview
The BIAS block produces an output that is the sum of the two input values, MEAS and BIAS,
each of which can be scaled independently. The block supports measurement alarm messages. It
does not support output alarm messages.
Manual/Auto
BIAS
Manual/Auto Overrides BLOCK
209
B0193AX – Rev AB 7. BIAS – Bias Block
7.2 Features
Features are:
Manual/Auto control of the outputs, which can be initiated by a host process or
another block
Auto and Manual latch switch inputs (AUTSW and MANSW) that force the block to
be switched to Auto or Manual
Local/Remote bias source selection
Local and Remote latch switch inputs (LOCSW and REMSW) that can force the
block to Local or Remote bias
Bumpless transfer of the output signal when the block returns to controlling operation
in Auto
Separate assignable engineering range and units to the parameters Measurement, and
Bias, and Output
Back calculation of the BIAS input
Output clamping and clamp indication between variable output limits
An INITI input that enables output tracking by forcing the block to track the back
calculation (BCALCI) input signal
Bad input detection and handling
Initialization input/output connection parameters that enable automatic cascade han-
dling by providing proper coordination and initialization of cascade schemes.
Options are:
MBADOP, Manual if Bad Option, is a manual override feature. When MBADOP is
set to 1, the block sets the MA input to manual when it detects a control error (CE =
true), or when the HOLD parameter goes true. In addition, when MBADOP is set
to 2, the block sets the MA input to manual when RBIAS is not healthy (i.e., value
status is BAD or has a broken OM connection). This forces the output state to man-
ual. Returning to Auto requires external intervention, unless AUTSW is true.
MCLOPT, Manual Clamping Option, allows you to invoke output clamping while
the block is in manual. You can alter this boolean input at the workstation.
BTRKOP, Bias Track Option, when true, causes the BIAS parameter to be back calcu-
lated when the block is in Manual. BTRKOP takes this action when the LR parameter
has transitioned in either direction and 1) either the output is in Manual or a cascade
is broken (a downstream block is in open loop - INITI true) or the block is in Man-
ual, or 2) when the block is in Manual only.
MANALM, Manual Alarming Option, allows you to invoke all configured alarm
options while the block is in manual. Otherwise, alarming is normally performed only
in Auto.
MALOPT, Measurement Alarming Option, provides absolute alarming of the mea-
surement during auto operation. This option also provides standard alarm
notification and reporting features.
CEOPT, Control Error Option, allows you to enable, or disable, the block’s implicit
Hold action when it detects an error in the MEAS or INITI input.
210
7. BIAS – Bias Block B0193AX – Rev AB
PROPT, Propagate Error Option, gives you the option of propagating the ERROR
status bit from the MEAS input to the block’s OUT parameter.
LOCSP, Local Setpoint Secure, enables you to secure against any write access to the
LR parameter.
MANFS, Manual If Failsafe, allows you to have the block go to the Manual state
when the block receives a Failsafe notification.
HHAOPT, High-High Alarm Option, enables High-High and Low-Low absolute
alarming for the measurement input, or disables absolute alarming altogether. Each
alarm triggers an indicator (HHAIND or LLAIND) and text message (HHATXT and
LLATXT) at a given priority level (HHAPRI) to be sent to the configured alarm
group (HHAGRP). Once an alarm limit (HHALIM or LLALIM) is exceeded, the
indicators remain set until the measurement returns within the defined limit plus (or
minus) the deadband (MEASDB).
0 = No alarming
1 = High-High and Low-Low alarming
2 = High-High alarming only
3 = Low-Low alarming only
Unacknowledge (UNACK) is a boolean output parameter which is set true, for notifi-
cation purposes, whenever the block goes into alarm. It is settable, but sets are only
allowed to clear UNACK to false, and never in the opposite direction. The clearing of
UNACK is normally via an operator “acknowledge” pick on a default or user display,
or via a user task.
INITMA, Initialize Manual/Auto, specifies the desired state of the MA input during
initialization.
PRIBLK, Primary Block, when true enables a block in a cascaded configuration to ini-
tialize without bumping the process at initial start-up or when control is transferred
up to a primary block.
INITLR, Initialize Local/Remote, is an integer input specifying the desired state of
the LR input during initialization.
INHOPT, Inhibit/Disable alarming.
7.3 Parameters
Table 7-1. BIAS Block Parameters
211
B0193AX – Rev AB 7. BIAS – Bias Block
212
7. BIAS – Bias Block B0193AX – Rev AB
213
B0193AX – Rev AB 7. BIAS – Bias Block
ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use. For the BIAS block, only the following unshaded bits are
used.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit Number1
(0 to 31) Configured Alarm Option When True
0 Alarm Group 8 in Use
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use
16 Low Absolute Alarm Configured
17 High Absolute Alarm Configured
24 Low-Low Absolute Alarm Configured
25 High-High Absolute Alarm Configured
1.
Bit 0 is the least significant, low order bit.
214
7. BIAS – Bias Block B0193AX – Rev AB
ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the BIAS block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
B4
B5
B6
B7
B8
B9
CRIT PRTYPE
HMA
HOA
HHA
LMA
LOA
LLA
INH
Bit Boolean
Number Connection
(0 to 31)* Name Description When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: See parameter ALMSTA.B32–
PRTYPE for values used in ALMSTA.B28
the BIAS block
5 to 7 CRIT_MSK Criticality; 5 = lowest priority, ALMSTA.B27–
1= highest ALMSTA.B25
16 LMA Low Measurement Alarm ALMSTA.B16
17 HMA High Absolute Alarm ALMSTA.B15
18 LOA Low Output Alarm ALMSTA.B14
19 HOA High Output Alarm ALMSTA.B13
24 LLA Low-Low Absolute Alarm ALMSTA.B8
25 HHA High-High Absolute Alarm ALMSTA.B7
29 INH Alarm inhibit ALMSTA.B3
30 UNAK Unacknowledged ALMSTA.B2
AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is gen-
erated.
AUTSW Auto Switch is a boolean input that, when true, overrides the MA and
INITMA parameters, and drives the block to the Auto state. If both
MANSW and AUTSW are true, MANSW has priority.
BAG Bad Alarm Group is a short integer input that directs Bad alarm messages
to one of eight groups of alarm devices. You can change the group number
through the workstation.
215
B0193AX – Rev AB 7. BIAS – Bias Block
BAO Bad Alarm Option is a configurable option that enables alarm generation
for each state change of the BAD parameter. The parameter values are:
BAP Bad Alarm Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the Bad alarm (1 is the highest priority).
BBIAS Bias Scale Factor is a real input used for offsetting the product of the BIAS
input with KBIAS.
BCALCI Back Calculation In is a real input that provides the initial value of the
output before the block enters the controlling state, so that the return to
controlling is bumpless. It is also the source of the output value when its
integration bit INITI, which puts the block into output tracking, is non-
zero. Typically, a source for this input is the back calculation output
(BCALCO) of the downstream block. With V4.2 and later software,
BCALCI contains the cascade initialization data bits which were formerly
contained in the INITI parameter. Therefore, BCALCI defines the source
block and parameter that drives this block into initialization, and INITI
and INITO are not required for cascade initialization.
BLKSTA includes bits which can indicate when the downstream output is
limited in either direction. BLKSTA.B11 monitors the Limited High
condition (BCALCI.LHI) and BLKSTA.B10 monitors the Limited Low
condition (BCALCI.LLO).
BCALCO Back Calculation Output is a real output that is determined by back calcu-
lation of the block algorithm, based on the BCALCI input from the
downstream block. When BCALCO is connected to the BCALCI param-
eter of an upstream block, the upstream block will be requested to initial-
ize to the BCALCO value when an open loop condition occurs.
With V4.2 and later software, the status bits of BCALCO contain the cas-
cade initialization requests formerly contained in the INITO
parameter. Therefore, with V4.2 and later software, INITO connection is
not required for cascade initialization.
BIAS Bias is a real input which is added to the controller or algorithm input, to
achieve OUT. When the block is in the Local mode, BIAS is settable. In
216
7. BIAS – Bias Block B0193AX – Rev AB
the Remote mode, BIAS is secured and follows the value of RBIAS. BIAS
is never connectable as an input. It is always connectable as an output, and
its value may be used to source other blocks.
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate the block’s opera-
tional states. For the BIAS block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
PORSCHE B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
WLCK
UDEF
MAO
HOL
LRO
TRK
HLD
LOL
CTL
LLO
LHI
ON
MA
LR
FS
Bit Boolean
Number1 Connection
(0 to 31) Name Description When True (B32 to B1)
5 CTL Controlling BLKSTA.B27
6 TRK Tracking BLKSTA.B26
7 HLD Holding BLKSTA.B25
10 LR Local(= false)/Remote(= true) BLKSTA.B22
11 MA Manual(= false)/Auto(= true) BLKSTA.B21
13 PORS Block contains I/A Series v8.5 BLKSTA.B19
CHE controller enhancements
(parameters BAO, BAG, BAP,
BAT and OUTNM)
14 UDEF Undefined BLKSTA.B18
15 ON Compound On BLKSTA.B17
20 WLCK Workstation Lock BLKSTA.B12
21 LHI Downstream Limited High BLKSTA.B11
22 LLO Downstream Limited Low BLKSTA.B10
24 FS Failsafe BLKSTA.B8
25 LRO Local/Remote Override BLKSTA.B7
26 MAO Manual/Auto Override BLKSTA.B6
27 LOL Low Output Limit (Clamped) BLKSTA.B5
28 HOL High Output Limit (Clamped) BLKSTA.B4
1.
Bit 0 is the least significant, low order bit.
BMEAS Measurement Bias is a real input used to offset the scaled measurement
value before it is added to the bias term.
217
B0193AX – Rev AB 7. BIAS – Bias Block
BTIME Balance Time is a real input that specifies the time constant, in minutes, of
the rate at which the OUT value returns to the Auto setting, when the
block transits from Manual, Tracking, or Holding, to Auto state.
BTRKOP Bias Track Option is a short integer input. When active, BTRKOP forces
the algorithm’s BIAS input to track the block BCALCO under the follow-
ing conditions.
0 = no option enabled
1 = BIAS input tracks BCALCO when the block is in Manual, or the cas-
cade is open downstream (Initialization input INITI is true).
2 = BIAS input tracks BCALCO only when the block is in Manual.
BTRKOP is active only when the setpoint source selector LR is in Local
and Supervisory Enable (SE) is enabled (1).
BIAS is nonsettable while setpoint tracking is active. You can change
BTRKOP only by reconfiguring the block.
CEOPT Control Error Option is a short integer that specifies how the block
responds to the MEAS and BCALCI inputs when either of those inputs is
in error. To provide backward compatibility, CEOPT defaults to 1.
CEOPT has a range of 0 to 2 where:
0= The block takes no implicit Hold action when it detects a con-
trol error.
1= The block goes to the Hold state if, while MBADOP = 0, either
MEAS or BCALCI: (a) has its BAD status bit set true; (b) has
its Out-of-Service status bit set true; (c) is experiencing peer-to-
peer path failure.
2= The block goes to the Hold state if, while MBADOP = 0, either
MEAS or BCALCI meets any of the conditions described for
CEOPT = 1, or if MEAS has its ERROR status bit set true.
CRIT Criticality is an integer output that indicates the priority, ranging from
1 to 5, of the block’s highest currently active alarm (1 is the highest prior-
ity). An output of zero indicates the absence of alarms.
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. In that case, no further processing of the block occurs. To return
DEFINE to a true value, correct all configuration errors and re-install the
block.
218
7. BIAS – Bias Block B0193AX – Rev AB
DELTI1 to DELTI2
Change Delta for Input Ranges 1 or 2 is a real value that defines the mini-
mum percent of the input range that triggers change driven connections
for parameters in the range of RI1 or RI2. The default value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.
DELTO1 Change delta for Output Range 1 is a configurable real value that defines
the minimum percent of the output range that triggers change-driven
connections for parameters in the range RO1. The default value is 1.0 per-
cent. If communication is within the same control station that contains
the block’s compound, DELTO1 has no effect.
EI1 to EI2 Engineering Units for Input Ranges 1 and 2 are 32-character strings that
provide the engineering units text for the values defined by the ranges for
input 1 and 2. The values configured for these text strings should be con-
sistent with the values used for HSCI1 and LSCI1, or HSCI2 and LSCI2.
ERCODE Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the block’s
DEFINE parameter to be set false, but not the warning situations. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. The block detailed display shows the ERCODE
on the primary page, if it is not null. For the BIAS block, the following list
specifies the possible values of ERCODE, and the significance of each
value in this block:
Message Value
“W43 – INVALID PERIOD/ PHASE does not exist for given block
PHASE COMBINATION” PERIOD, or block PERIOD not
compatible with compound PERIOD.
“W44 – INVALID High range value is less than or equal
ENGINEERING RANGE” to low range value.
219
B0193AX – Rev AB 7. BIAS – Bias Block
Message Value
“W46 – INVALID INPUT The source parameter specified in the
CONNECTION” input connection cannot be found in
the source block, or the source
parameter is not connectable, or an
invalid boolean extension connection
has been configured.
“W48 – INVALID BLOCK The configured value of a block
OPTION” option is illegal.
“W53 – INVALID A parameter value is not in the accept-
PARAMETER VALUE” able range.
“W58 – INSTALL ERROR; A Database Installer error has
DELETE/UNDELETE occurred.
BLOCK”
HHAGRP High-High Absolute Alarm Group is a short integer input that directs
High-High Absolute alarm messages to one of eight groups of alarm
devices.
HHAIND High-High Alarm Indicator is a boolean output that is set true when the
measurement (MEAS) value rises above the high-high absolute alarm limit
(HHALIM). Once HHAIND is set true, it does not return to false until
MEAS falls below HHALIM less the deadband (MEASDB).
HHALIM High-High Absolute Alarm Limit is a real input that defines the value of
the block-dependent parameter (generally the measurement input) that
triggers a High High alarm.
HHAOPT High-High Alarm Option is a configured short integer input that enables
High-High and Low-Low absolute alarming for alarming of a block-
dependent value, generally the measurement input, or disables absolute
alarming altogether. Each alarm triggers an indicator and text message.
0 = No alarming
1 = High-High and Low-Low alarming
2 = High-High alarming only
3 = Low-Low alarming only
HHAPRI High-High Absolute Priority is an integer input, from 1 to 5, that sets the
priority level of the high-high absolute alarm. (1 is the highest priority.)
HOLD Hold is a boolean input. When true, HOLD forces the block into the
Hold substate of Auto, holding the output at its last computed value.
220
7. BIAS – Bias Block B0193AX – Rev AB
HOLIM High Output Limit is a real input that establishes the maximum output
value, in OUT units. If the algorithm tries to drive the output to a higher
value, the output is clamped at the HOLIM value and the indicator
HOLIND is set true.
HOLIND High Output Limit Indicator is a boolean output that is set true whenever
the output is clamped at the high output limit, HOLIM.
HSCI1 to HSCI2 High Scale for Input Ranges 1 and 2 are configurable real values that
define the upper limit of input ranges RI1 and RI2. EI1 and EI2 define
the units. Make the range and units consistent with those of the input
sources. The default value is 100 (percent).
HSCO1 High Scale for Output Range 1 is a real value that defines the upper limit
of the ranges for output 1. A typical value is 100 (percent). EO1 defines
the units. Make the range and units consistent with those of the output
destination.
INHALM Inhibit Alarm contains packed boolean values that represent alarm inhibit
requests for each alarm type or point configured in the block. For the
BIAS block, only the following bits are used:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit Boolean
Number* Connection
(0 to 15) Description When True (B16 to B1)
0 Inhibit Low Measurement Alarm INHALM.B16
1 Inhibit High Measurement Alarm INHALM.B15
8 Inhibit Low-Low Absolute Alarm INHALM.B8
9 Inhibit High-High Absolute Alarm INHALM.B7
INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting. Alarms may also be inhibited based on INHALM and the com-
pound parameter CINHIB.
INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do
not disable alarm detection.
221
B0193AX – Rev AB 7. BIAS – Bias Block
INHSTA Inhibit Status contains packed long values that represent the actual inhibit
status of each alarm type configured in the block. For the BIAS block,
only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNACK B2
B3
B4
B5
B6
B7
B8
B9
HHA
LLA
INH
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
24 LLA Low-Low Absolute Alarm INHSTA.B8
Inhibited
25 HHA High-High Absolute Alarm INHSTA.B7
Inhibited
29 INH Inhibit Alarm INHSTA.B3
30 UNACK Unacknowledged INHSTA.B2
INITI Initialization In defines the source block and parameter that drives this
block into initialization. The source for this short integer input is the ini-
tialization output of a downstream block. With V4.2 or later software,
BCALCI contains the cascade initialization request data bit eliminating
the need to configure INITI connections in cascades. However, to pre-
serve backward compatibility, the INITI parameter has been maintained
for use in existing configurations. Existing configurations do not need to
reconfigure their cascades. The logic to set or reset the INITI short value is
222
7. BIAS – Bias Block B0193AX – Rev AB
maintained, but the setting of the handshaking bits, via the INITI-INITO
connection, is eliminated.
INITLR Initialize Local/Remote is an integer input that specifies the desired state
of the LR input during initialization, where:
0 = Local
1 = Remote
2 = The LR state specified in the checkpoint file.
The block asserts this initial LR state whenever:
It is installed into the Control Processor database
The Control Processor undergoes a restart operation
The compound in which it resides is turned on.
The Initialize LR state is ignored if the LR input has an established link-
age.
INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state as specified in the checkpoint file.
The block asserts this initial M/A state whenever:
It is installed into the Control Processor database
The Control Processor undergoes a reboot operation
The compound in which it resides is turned on.
The INITMA parameter itself is modified via the control configurator.
The block does not assert INITMA on ordinary reconfiguration.
INITMA is ignored if MA has an established linkage.
223
B0193AX – Rev AB 7. BIAS – Bias Block
KBIAS Gain Factor is a real input that multiplies the BIAS input. It is expressed
in OUT units divided by BIAS units.
KMEAS Measurement Scale Factor is a constant used to scale the input span of the
measurement input signal in order to compensate for different engineer-
ing units. Once converted, the signal range is dictated by HSCI1 and
LSCI1.
LLAIND Low-Low Alarm Indicator is a boolean output that is set true when the
measurement (MEAS) value falls below the low-low absolute alarm limit
(LLALIM). Once LLAIND is set true, it does not return to false until
MEAS rises above LLALIM plus the deadband (MEASDB).
LLALIM Low-Low Absolute Alarm Limit is a real input that defines the value of the
block-dependent parameter (generally the measurement input) that trig-
gers a Low-Low Alarm.
LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.
LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are honored (subject to the usual access rules) only from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set false by any workstation at any time, whereupon a
new LOCKRQ is accepted, and a new ownership workstation identifier
written to LOCKID.
LOCSP Local Bias Secure is a boolean input. When true, LOCSP provides lockout
of user write access to the LR parameter. If LOCSP is configured true, the
block secures LR when it initializes and maintains LR in the secured state.
The LOCSW and REMSW overrides have higher precedence, but LR
remains secured when they are no longer asserted.
224
7. BIAS – Bias Block B0193AX – Rev AB
LOCSW Local Switch is a boolean input. When true, LOCSW overrides the LR
and INITLR parameters and drives the block to the Local state. If both
LOCSW and REMSW are true, LOCSW has priority.
LOLIM Low Output Limit is a real input that establishes the minimum output
value. If the algorithm tries to drive the output to a lower value, the out-
put is clamped at the LOLIM value and the indicator LOLIND is set true.
LOLIND Low Output Limit Indicator is a boolean output that is set true whenever
the output is clamped at the low output limit, LOLIM.
LSCI1 to LSCI2 Low Scale for Input Ranges 1 and 2 are configurable real values that define
the lower limit of input ranges RI1 and RI2. EI1 and EI2 define the units.
Make the range and units consistent with those of the input sources. The
default value is 0 (percent).
LSCO1 Low Scale for Output Range 1 is a real value that defines the lower limit of
the ranges for Output 1. A typical value is 0 (percent). EO1 defines the
units. Make the range and units consistent with those of the output desti-
nation.
225
B0193AX – Rev AB 7. BIAS – Bias Block
MANALM Manual Alarm Option is a configurable input which enables and disables
configured alarm options to function in Manual or Track mode. Normally
alarms are processed only in the Auto mode.
0 = No alarming in Manual
1 = Full alarming in Manual
2 = No output alarming in Manual
3 = No output alarming in Track
4 = No output alarming in Manual or Track
MANSW Manual Switch is a boolean input. When true, MANSW overrides the
MA and INITMA parameters and drives the block to the Manual state. If
both MANSW and AUTSW are true, MANSW has priority.
MCLOPT Manual Clamping Option allows you to invoke output clamping while
the block is in manual. You can alter this configurable boolean input at
the workstation.
MEAS Measurement is an input identifying the source of the block’s input, or the
controlled variable.
226
7. BIAS – Bias Block B0193AX – Rev AB
MEASHI Measurement High Alarm Indicator is a boolean output that is set true
when the measurement (MEAS) value rises above the high alarm limit
(MEASHL). Once MEASHI is set true, it does not return to false until
MEAS falls below MEASHI less the deadband (MEASDB).
MEASHL Measurement High Alarm Limit is a real input that defines the value of
the measurement that initiates a high absolute alarm.
MEASLI Measurement Low Alarm Indicator is a boolean output that is set true
when the measurement (MEAS) value falls below the low alarm limit
(MEASLL). Once MEASLI is set true, it does not return to false until
MEAS rises above MEASLL plus the deadband (MEASDB).
MEASLL Measurement Low Alarm Limit is a real input that defines the value of the
measurement that initiates a low absolute alarm.
MEASPR Measurement Priority is an integer input (1 to 5), that sets the priority
level of the measurement alarm (1 is the highest priority).
227
B0193AX – Rev AB 7. BIAS – Bias Block
OSV Output Span Variance is a real input that defines the amount by which the
output clamp limits (HOLIM, LOLIM) can exceed the specified output
range, as defined by HSCO1 and LSCO1.
OUT Output, in Auto mode, is the result of the block algorithm applied to one
or more input variables. In Manual, OUT is unsecured, and can be set by
you or by an external task.
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. Integrator and Gateway blocks have different period
values than shown here.
* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
228
7. BIAS – Bias Block B0193AX – Rev AB
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).
PRITIM Primary Cascade Timer is a configurable parameter used to delay the clos-
ing of the cascade to a primary block, when the output is initialized in the
BIAS block. It is used only if the PRIBLK option is set. The cascade is
closed automatically when the timer expires without requiring an explicit
acknowledge by the upstream block logic.
Refer to “PRIBLK and PRITIM Functionality” on page 236 for more
information on this parameter.
PROPT Propagate Error Option is a short integer input. It can be set to 0-2:
0 = option is disabled (default)
1 = set the ERROR Status bit of the output parameter (OUT) if
the input to the MEAS parameter is in error (see below) while the
block is in Auto
229
B0193AX – Rev AB 7. BIAS – Bias Block
PRSCAS Present Cascade State is a data store that indicates the cascade state. It has
the following possible values:
Value State Description
1 INIT_U Unconditional initialization of the primary
cascade is in progress.
2 PRI_OPN The primary cascade is open.
3 INIT_C Conditional initialization of the primary
cascade is in progress.
4 PRI_CLS The primary cascade is closed.
PRSCON Present Control state is a short integer data store that contains the sub-
states of Auto:
1 = Holding
2 = Tracking
3 = Controlling (not open loop)
PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. The PRTYPE output of this block
includes the following alarm types:
0 = No active alarm
1 = High Absolute
2 = Low Absolute
3 = High High
4 = Low Low
230
7. BIAS – Bias Block B0193AX – Rev AB
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit Boolean Connection
Number1 Definition Contents (B32 to B1)
30 Alarms Unacknowledged ALMSTA.UNA QALSTA.B2
29 Alarms Inhibited ALMSTA.INH QALSTA.B3
25 High-High Absolute Alarm ALMSTA.HHA QALSTA.B7
24 Low-Low Absolute Alarm ALMSTA.LLA QALSTA.B8
17 High Absolute Alarm ALMSTA.HMA QALSTA.B15
16 Low Absolute Alarm ALMSTA.LMA QALSTA.B16
5 Manual BLKSTA.MA QALSTA.B27
4 Low Limited PNT.LLO status QALSTA.B28
3 High Limited PNT.LHI status QALSTA.B29
2 Uncertain MEAS.ERR status QALSTA.B30
1 Out-of-Service MEAS.OOS status QALSTA.B31
0 Bad MEAS.BAD status QALSTA.B32
1.
Bit 0 is the least significant, low order bit.
RBIAS Remote Bias is the selected bias source when LR is set to Remote. Typi-
cally, RBIAS connects to an upstream block in a cascade scheme.
REMSW Remote Switch is a boolean input. When true, REMSW overrides the
unlinked LR and INITLR parameters, and drives the block to the Remote
state. If both LOCSW and REMSW are true, LOCSW has priority.
RI1 to RI2 Range Input is an array of real values that specify the high and low engi-
neering scale and change delta of a particular real input. For a given block,
it also forms an association with a group of real input parameters that have
the same designated range and change delta.
RO1 Range Output is an array of real values that specify the high and low engi-
neering scale of a particular real output. For a given block, it also forms an
association with a group of real output parameters that have the same des-
ignated range.
SUM Sum is a real output that represents the output of the Bias summer. SUM
is always active regardless of the Manual/Auto state.
231
B0193AX – Rev AB 7. BIAS – Bias Block
TYPE When you enter “BIAS” or select “BIAS” from the block type list under
Show, an identifying integer is created specifying this block type.
UNACK Unacknowledge is a boolean output that the block sets to True when it
detects an alarm. It is typically reset by operator action.
7.4 Functions
7.4.1 Detailed Operation
The BIAS block can function either as a two-term summer (doing a scaled algebraic addition of
the two inputs, MEAS and BIAS), or as a Bias control block.
The MEAS parameter is an input identifying the source of the analog output that comes to this
block as the controlled variable in the control loop.
The BIAS parameter is the local bias and always represents the active controller bias. BIAS is also
an output parameter which can be used to source the bias value to other blocks. The Bias source
selector input, LR (Local/Remote), together with the two overrides LOCSW and REMSW deter-
mines the bias source at any time.
When LR is switched to local (false), the block sets INITO to true and releases the BIAS parame-
ter, allowing any user to input the desired controller bias value. The bias track option, BTRKOP,
can be used to assure bumpless transfer.
When LR is switched to Remote (true), BIAS is no longer settable and takes on the value of the
remote bias input, RBIAS. RBIAS provides a link to the remote bias source. If RBIAS is unlinked
when LR is true, the block forces the LR parameter to local and secures it.
The BIAS block also provides the LOCSW and REMSW parameters to drive the bias state to
Local or Remote.
LOCSP allows the block to secure the LR parameter when the block initializes and to maintain
that secured state except when LOCSW and/or REMSW is asserted.
When the block is in the Remote mode, the status of the local bias (BIAS) tracks the status of the
remote bias (RBIAS).
When the block is switched to Local mode, the bias status depends on the bias tracking option
(BTRKOP):
If BTRKOP = 1 or 2, the BIAS status is cleared.
If BTRKOP = 0, the BIAS status reflects the RBIAS status at the time the switch to
Local occurred. The block maintains this status as long as block is in Local, unless the
user changes the BIAS value via data access. At that time the status is cleared.
The local set point is clamped each cycle when the set point mode is Remote, Local, or Supervi-
sory. The clamp limits used are the ratio/bias scale limits HSCI2 and LSCI2. If the set point value
232
7. BIAS – Bias Block B0193AX – Rev AB
before clamping is equal to or less than LCSI2, status bit LLO of SPT is set true. If the value
before clamping is equal to or higher than HSCI2, status bit LHI of SPT is true.
The BIAS block has two output states, Auto and Manual. In Manual, the block releases the out-
put, allowing it to be set by the user. In Auto, the block secures the output.
Auto has three sub-states: Controlling, Tracking, and Holding.
In the Controlling sub-state, the output is the result of the block’s summing algorithm subject to
the limits imposed by output clamping. The output, OUT, is determined as follows:
OUT = (MEAS * KMEAS + BMEAS) + bias_term
where:
bias_term = (RBIAS * KBIAS + BBIAS) if LR = true (Remote) and RBIAS is linked;
or
bias_term = RBIAS if LR = Remote and RBIAS is unlinked;
or
bias_term = BIAS
in all other cases.
While in Auto, the BIAS block clamps the output, OUT, between the LOLIM and HOLIM val-
ues. If the algorithm output calculates to a value less than LOLIM or greater then HOLIM, the
block clamps the value at the limit and sets the appropriate indicator, HOLIND or LOLIND, to
true. If you set LOLIM higher than HOLIM, then HOLIM is automatically set equal to the
higher of the two values, which is LOLIM. Output clamping also occurs in the Manual state if
the manual clamp option, MCLOPT, is configured true.
When the BIAS block changes from Manual, Tracking, or Holding, to Controlling, or from Local
to Remote while the output is controlling, the OUT value returns to the Auto setting at a rate
specified by the Balance Time (BTIME) parameter. During this time a diminishing balance term
(or bleed term) is added to the block output, OUT until it bleeds off to zero at the BTIME rate.
This makes the reset balance action decay with a response characteristic of a first order lag. A first
order lag reaches 66 percent of the bleed term after BTIME minutes. It takes three BTIME cycles
for the integral balance to approach 100 percent.
The block goes to Tracking when INITI is set true, as long as the block is not in HOLD, and
there is no control error. The block performs explicit initialization in the Tracking sub-state.
When INITI returns to false, the block returns to the Controlling sub-state to resume closed-loop
control.
In the Tracking sub-state, OUT = BCALCI, unless BCALCI is out of range, in which case OUT
is clamped between the LOLIM and HOLIM values. The block calculates the BCALCO parame-
ter, sets BCALCO to true (requesting upstream blocks to perform their own explicit initializa-
tion), and sets bit 6 (TRK) in the BLKSTA parameter. When the BIAS block is the upstream
block in a cascade control scheme, output tracking (BTRKOP = 1 or 2) assures a bumpless trans-
fer for the downstream block.
For the BIAS block, BLKSTA includes bits which indicate when the downstream output is lim-
ited in either direction by monitoring for the Limited High condition (BCALCI.LHI via
BLKSTA.B11) and Limited Low condition (BCALCI.LLO via BLKSTA.B10).
During Auto operation, the block checks the critical inputs MEAS and BCALCI for data errors
(off-scan, or BAD, OOS or ERROR status bits set). If an error is detected, the BIAS block,
233
B0193AX – Rev AB 7. BIAS – Bias Block
depending on the value of the CEOPT parameter (see CEOPT definition), may propagate the
error to its outputs by setting the ERROR status bit of the output, OUT.
The block goes to Hold if, while MBADOP = 0 and CEOPT = 1 or 2, either the HOLD param-
eter goes true, or a condition required by the CEOPT parameter is met. Even if MBADOP = 1 or
2, the block still goes to the Holding substate if the MA parameter is linked.
In the Hold sub-state, OUT keeps the last good value before the block went into Hold, and the
block secures this value against any changes. The block sets the BCALCO status to bad and sets
bit 7 (HOLD) in the BLKSTA parameter.
When all error conditions have ceased, the block returns to the Controlling substate and resumes
closed loop control.
No implicit Hold action takes place if CEOPT = 0.
A transition to Manual sets all alarm and limit indicators to false.
If MBADOP = 1 or 2 (and the MA parameter is unlinked), the block goes to the Manual state
when it detects a control error or when the HOLD input goes true, regardless of the CEOPT set-
ting. MBADOP has the same priority as MANSW and has precedence over AUTSW. Therefore,
if MBADOP = 1 or 2 and a bad input is detected, the block goes to Manual regardless of the
AUTSW setting.
The block also goes to Manual if, while MANFS is configured true, it detects the Failsafe status
bit (BCALCO.FS) at its BCALCI input.
When the block is switched to Manual, the OUT status reflects the MEAS/BIAS status at the
time the switch occurred. While the block is in Manual, it maintains this status until you change
the OUT output via data access. At that time, the block clears the status.
During manual operation, control is not performed. Alarm outputs are settable. The controller
output (OUT) is unsecured and may have its value set by an external task or program, and if the
manual clamp option (MCLOPT) is true, these set values undergo output clamping.
When the block restarts, the INITMA configured option specifies the value of the MA parameter,
unless MA has an established linkage, or MANSW or AUTSW are set true. Likewise, the INITLR
specifies the value of the LR parameter, unless LR is linked, or LOCSW or REMSW are set true.
234
7. BIAS – Bias Block B0193AX – Rev AB
If there are no downstream control blocks, then link the BCALCI parameters to the OUT param-
eter (see Figure 7-2).
RBIAS
MEAS BIAS
OUT
BCALCI
If the downstream block is an AOUT block, link BCALCI to the downstream block’s BCALCO
parameter and link the downstream block’s MEAS parameter to OUT (see Figure 7-3).
RBIAS
BCALCI BCALCO
If the secondary block is a DGAP or PTC block, link BCALCI to the secondary block’s BCALCO
parameter (see Figure 7-4). Link OUT to the secondary block’s RSP.
235
B0193AX – Rev AB 7. BIAS – Bias Block
RBIAS
BCALCI BCALCO
Figure 7-4. Configuration for DGAP or PTC Secondary block
In a cascade configuration, link the blocks as shown in Figure 7-5. Use the PRIBLK option in all
cascade configurations.
RBIAS
236
8. BIN – Binary Input Block
This chapter covers the Binary Input (BIN) block features, parameters and functions, and
application diagrams.
NOTE
This chapter describes the Distributed Control Interface (DCI) BIN block. For a
description of how the BIN block is used in PLC applications, refer to PLC Interface
Block Descriptions (B0193YQ).
NOTE
In this chapter, CP270 Only indicates BIN features that are supported only on the
Field Control Processor 270 (FCP270) and Z-form Control Processor 270
(ZCP270) with I/A Series system software V8.4 or later.
8.1 Overview
The Binary Input (BIN) block is a Distributed Control Interface (DCI) block. (DCI blocks sup-
port connectivity of I/A Series control stations to various bus resident devices via a general pur-
pose interface.) The BIN block provides the control strategy with the capability to read a single
binary value from an address in an associated Fieldbus Module (FBM). The binary value has two
states such as ON and OFF or START and STOP.
Input from
Manual Set
237
B0193AX – Rev AB 8. BIN – Binary Input Block
standard output parameter. Its value is the same as that of BIN when the block is in Auto. When
the block is in Manual, CIN is independent of BIN, and may be used for manual sets.
With I/A Series system software V8.4, the BIN block provides Bad I/O alarm and state change
alarm detection and reporting on the FCP270 and ZCP270. Alarming is not supported on other
control processors.
8.3 Features
The BIN block:
Reads a single binary value from its associated FBM
Provides support for operator sets in Manual
Specifies the FBM source point as a device-specific string
Simulation option enables testing input to the control strategy without actual field
connections
Quality Status (QLSTA) provides value record status, block status and alarm status in
a single connectable output parameter (CP270 Only)
Bad I/O alarm and state change alarm detection and reporting (CP270 Only).
8.4 Parameters
Table 8-1. BIN Block Parameters
238
8. BIN – Binary Input Block B0193AX – Rev AB
239
B0193AX – Rev AB 8. BIN – Binary Input Block
ALMOPT Alarm Options contain packed long values representing the alarm types
(CP270 Only) that have been configured as options in the block, and the alarm groups
that are in use. Table 8-2 shows how the parameter is used by the BIN
block.
Bit Number1
(0 to 31) Configured Alarm Option, When True
0 (lsb) Alarm Group 8 in Use
1 Alarm Group 7 in Use
2 Alarm Group 6 in Use
3 Alarm Group 5 in Use
4 Alarm Group 4 in Use
5 Alarm Group 3 in Use
6 Alarm Group 2 in Use
7 Alarm Group 1 in Use
22 Bad I/O Alarm Configured
26 State Alarm Configured
1. Bit 0 is the least significant, low order bit.
ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
(CP270 Only) states. Table 8-3 shows the bits used by the BIN block.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
B4
B5
B6
B7
B8
B9
CRIT PRTYPE
BAD
STA
INH
240
8. BIN – Binary Input Block B0193AX – Rev AB
Bit Boolean
Number Description, Connection
(0 to 31)* Name When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: See PRYTPE parame- ---
ter for values used in the BIN block
5 to 7 CRIT_MSK Criticality: 1 (highest priority) to 5 ---
22 BAD Bad I/O Alarm ALMSTA.B10
26 STA State Alarm ALMSTA.B6
29 INH Inhibit Alarm. This bit is set when ALMSTA.B3
any of the block’s alarms is inhibited
30 UNAK Unacknowledged ALMSTA.B2
*Bit 0 is the least significant, low order bit.
AMRTIN Alarm Message Regeneration Time Interval specifies the rate at which
(CP270 Only) alarm messages are generated for alarm conditions that have not been
cleared. The interval is specified in seconds. The configured interval is
rounded up to the closest value that is an even multiple of the station
BPC. A value of 0 disables alarm message regeneration.
BAG Bad Alarm Group is a short integer input that directs Bad alarm messages
(CP270 Only) to one of eight groups of alarm devices. You can change the group number
through the workstation.
BAO Bad Alarm Option is a configurable option that enables alarm generation
(CP270 Only) for each state of CIN.BAD.
BAP Bad Alarm Priority is an integer input, ranging from 1 (highest priority) to
(CP270 Only) 5 (default), that sets the priority level of the Bad alarm.
BIN Binary Input contains the discrete value read from point PNT_NO, in an
external device specified by IOM_ID. BIN displays the actual value at the
external device at all times, regardless of the block mode. When SIMOPT
is used, BIN can be used to simulate the Boolean input value from the
field device.
241
B0193AX – Rev AB 8. BIN – Binary Input Block
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the BIN block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
DCIX B9
FBM
ON
MA
Bit Number* Boolean Connection
(0 to 31) Name Description When True (B32 to B1)
8 FBM Bad Status of ECB BLKSTA.B24
11 MA Manual = 0, Auto = 1 BLKSTA.B21
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
23 DCIX Enhanced DCI block (CP270 Only) BLKSTA.B9
* Bit 0 is the least significant, low order bit.
CIN Block output CIN contains the same value as BIN when the block mode
is Auto and IVO=0. CIN contains the complement of BIN when the
block mode is Auto and IVO=1. In Manual, CIN is released and you can
set its value.
CRIT Criticality is an integer output that indicates the priority of the block’s
CP270 Only highest currently active alarm. The range is 1 (highest priority) to 5. An
output of 0 indicates the absence of alarms.
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. (See ERCODE for the list of all possible validation errors in this
block.) In that case, no further processing of the block occurs, including
further validation of remaining parameters. To return DEFINE to a True
value, you should correct all configuration errors and reinstall the block.
DEV_ID Device Identifier is a character array that specifies the 6-character identi-
fier of the connected device. It is copied from the DEV_ID configured in
the ECB specified by the IOM_ID parameter.
ERCODE Error Code is a character data store which indicates the type of configura-
tion error which caused the block’s DEFINE parameter to be set False,
242
8. BIN – Binary Input Block B0193AX – Rev AB
243
B0193AX – Rev AB 8. BIN – Binary Input Block
INHALM Inhibit Alarm contains packed boolean values that represent alarm genera-
(CP270 Only) tion inhibit request for each type of alarm configured in the block: for the
BIN block, only the following bits are used:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit Boolean
Number* Description, Connection
(0 to 15) When True (B16 to B1)
6 Inhibit Bad I/O Alarm INHALM.B10
10 Inhibit State Alarm INHALM.B6
*Bit 0 is the least significant, low order bit.
INHIB Inhibit is a configurable, connectable and settable boolean that, when set,
(CP270 Only) suppresses all alarm message reporting. INHIB affects only alarm message
reporting; the alarm handling and detection functions are determined by
the INHOPT setting.
INHOPT Inhibit Option specifies the following actions applying to all block alarms:
(CP270 Only) 0 = When an alarm is inhibited, disables alarm messages but does
not disable alarm detection.
1 = When an alarm is inhibited, disables both alarm messages and
alarm detection. If an alarm condition exists at the time the alarm
transitions into the inhibited state, the alarm indicator is cleared.
2 = Same as 0 for inhibited alarms. For uninhibited alarms,
automatically acknowledges “return-to-normal” messages.
“Into alarm” messages can be acknowledged by explicitly setting
UNACK False.
3 = Same as 1 for inhibited alarms. For uninhibited alarms,
automatically acknowledges “return-to-normal” messages.
“Into alarm” messages can be acknowledged by explicitly setting
UNACK False.
244
8. BIN – Binary Input Block B0193AX – Rev AB
INHSTA Inhibit Status contains packed long values that represent the current
(CP270 Only) inhibit status of each alarm type configured in the block. Table 8-4 shows
how the parameter is used with the BIN block.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BAD B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
STA B6
B7
B8
B9
Table 8-4. INHSTA Parameter Format
Bit Boolean
Number* Description, Connection
(0 to 31) Name When True (B32 to B1)
22 BAD Bad I/O Alarm Inhibited INHSTA.B10
26 STA State Alarm Inhibited INHSTA.B6
*Bit 0 is the least significant, low order bit.
INITMA Initialize Manual/Auto specifies the desired state of the MA input under
certain initialization conditions, namely:
The block has just been installed into the I/A Series station
database.
The I/A Series station is rebooted.
The compound in which the block resides is turned on.
The INITMA parameter is modified via the Integrated Control
Configurator.
INITMA is ignored if MA has an established linkage.
When INITMA is asserted, the value set into MA is:
0 (Manual) if INITMA = 0.
1 (Auto) if INITMA = 1.
The MA value from the checkpoint file if INITMA = 2.
INVALM Invert Alarm is a configured boolean which specifies the sense of CIN
(CP270 Only) transitions considered “into alarm” and “return to normal” in State alarm
messages. Values are:
0 = CIN transitions from 0 to 1 are considered “into alarm.” State
alarm messages contain the NM1 string. Transitions from 1 to 0
are considered “return to normal.” State alarm messages contain
the NM0 string.
1 = CIN transitions from 1 to 0 are considered “into alarm.” State
alarm messages contain the NM1 string. Transitions from 0 to 1
are considered “return to normal.” State alarm messages contain
the NM0 string.
245
B0193AX – Rev AB 8. BIN – Binary Input Block
In any case, State alarm detection is disabled when option SAO is false.
IOM_ID ECB Identifier is a configurable string that specifies the pathname of the
ECB201 for the device, for the purpose of connecting to (accessing) a field
parameter that resides in a field device hosted by a parent FBM ECB.
IOM_ID has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOM_ID configuration. In this case, the 1-12
character ECB block name is sufficient.
IVO Invert Option, when true, causes the block to invert the value of the FBM
(CP270 Only) input or the BIN input before writing it to the CIN output. If IVO is
true, all alarming and state change message generation is based on the
inverted value of the input.
LOCKID Lock Identifier is a string identifying the workstation which has locked
(CP270 Only) access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.
LOCKRQ Lock Request is a Boolean input which can be set True or False only by a
(CP270 Only) SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set True in this fashion, a workstation identifier
accompanying the set command is entered into the LOCKID parameter
of the block. Thereafter, set requests to any of the block’s parameters are
honored (subject to the usual access rules) only from the workstation
whose identifier matches the contests of LOCKID. LOCKRQ can be set
False by any workstation at any time, whereupon a new LOCKRQ is
accepted, and a new ownership workstation identifier written to
LOCKID.
246
8. BIN – Binary Input Block B0193AX – Rev AB
0 = No alarming in Manual
1 = Full alarming in Manual
PERIOD Period is an indexed input that dictates the block’s execution time base,
and allowable PHASE values. For CP stations, PERIOD values range
247
B0193AX – Rev AB 8. BIN – Binary Input Block
from 0 to 10, and 13, and map to the time lengths shown in the following
table. For Gateways and Integrators, PERIOD values range from 0 to 12
and map to the time lengths specified in the device specific user’s guide.
* If the BPC is 0.2 second, this period is treated internally as 0.6 second, but
the PERIOD parameter remains 1.
** If the BPC is 2.0 seconds, this period is treated internally as 6.0 seconds, but
the PERIOD parameter remains 10.
*** Not available for CP stations.
****Available in CP40, CP40B, CP60 and later control processors.
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 seconds) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the
I/A Series station is 0.5 second. Refer to the appropriate Integrated Control
Software Concepts document (B0700AG or B0193AW).
PNT_NO Point Number identifies the address in the external device memory (or
external device data stream) to which the block output is directed. It is a
string whose syntax depends on the FBM type and fieldbus protocol of the
attached device:
For the FBM223 Profibus interface, PNT_NO must be config-
ured to contain a Profibus data identifier. This information
identifies, to the FBM, the address of the input data unit from the
device. Refer to PROFIBUS-DP Communication Interface Module
(FBM223) User’s Guide (B0400FE) for further details.
For the FBM222 Redundant Profibus interface, the PNT_NO
configuration string uses the FBM223 syntax with extensions for
PROFIBUS-PA status, custom status and other features. Refer to
Implementing Profibus Networks in Foxboro Control Software Appli-
cations (B0750BE) for further details.
For the HART interface
(FBM214/214b/215/216/216b/218/244/245/247), PNT_NO
must be configured to contain a point address. This information
identifies, to the FBM, specific data in the HART data stream that
is to serve as the device data input to this block. Refer to HART™
248
8. BIN – Binary Input Block B0193AX – Rev AB
PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
CP270 Only of the highest priority active alarm. For the BIN block:
0 = No alarm
8 = Bad I/O alarm
9 = State alarm
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
249
B0193AX – Rev AB 8. BIN – Binary Input Block
SAG State Alarm Group is a short integer input that directs State alarm mes-
(CP270 Only) sages to one of eight groups of alarm devices.
SAO State Alarm Option is a configurable boolean which, when true, enables
(CP270 Only) the generation of State Alarms.
SAP State Alarm Priority is an integer input, ranging from 1 (highest priority)
(CP270 Only) to 5 (default), that sets the priority level of the State alarm.
SCGRP State Change Group is a short integer input that directs State Change
(CP270 Only) messages to one of eight groups of devices. However, Alarm Alert ignores
these messages when they arrive; State Change messages are printed only.
SCOPT State Change Option specifies which state changes of the block output
(CP270 Only) cause a State Change message to be the generated. These messages are
ignored by Alarm Alert, and are not shown in the Alarm Display; they are
printed on the alarm printers only. Depending on the value of SCOPT,
messages are generated for the following types of transitions (state
changes):
0 = No transitions (no messages generated)
1 = All transitions
2 = 0 to 1 transitions only
3 = 1 to 0 transitions only
SCTXT0 State Change Text 0 is a text string sent with the State Change message to
(CP270 Only) indicate that the state has changed from 1 to 0, after any optional inver-
sion.
SCTXT1 State Change Text 1 is a text string sent with the State Change message to
(CP270 Only) indicate that the state has changed from 0 to 1, after any optional inver-
sion.
250
8. BIN – Binary Input Block B0193AX – Rev AB
TSTAMP The Time Stamp parameter of the block is updated every time there is a
change in the value of CIN. In Auto mode, this means that the field input
value of BIN changes. In Manual mode, it means that a new manual value
has been set into CIN. TSTAMP, which is expressed in units of millisec-
onds past midnight, is read from the FBM when it is available there; oth-
erwise, it is computed by the I/A Series control station.
TYPE When you enter BIN or select it from a configurator list, an identifying
integer is created specifying this block type. For this block, the value of
TYPE is 148.
UPDPER Update Period is a configurable non-settable long integer that specifies the
update period for certain types of client/server access to FOUNDATION
fieldbus H1 devices and PROFIBUS slave devices:
For the FBM228, the parameter defines the update period for cli-
ent/server access to device block parameters, as described in
Implementing FOUNDATION fieldbus on an I/A Series System
(B0700BA) or Implementing FOUNDATION fieldbus (B0750BC).
The parameter is not used for publisher/subscriber connections.
For the FBM222, the parameter defines the update period for acy-
clic communication between the FBM222 and the
PROFIBUS slave device, as described in Implementing Profibus
Networks in Foxboro Control Software Applications (B0750BE).
The parameter is not used for cyclic communications.
UNACK Unacknowledged is a Boolean output parameter that is set True for notifi-
CP270 Only cation purposes whenever the block goes into alarm. It is settable, but sets
are only allowed to clear UNACK to False, and never in the
opposite direction. UNACK is cleared by an operator “acknowledge”
pick on a default display, a user display, or the alarms display.
VALSTS Value Status is an output parameter of any DCI block that contains the
value status of a FOUNDATION fieldbus function block parameter value or
PROFIBUS-PA parameter provided by a DCI connection to a field
device. For other fieldbus types, VALSTS is meaningless.
Bits 0-1: Limits:
0 = Not limited
1 = High limited
2 = Low limited
3 = High and Low limited
Bits 2-5: Substatus (definition depends on Quality)
251
B0193AX – Rev AB 8. BIN – Binary Input Block
8.5 Functions
8.5.1 Detailed Diagram
Simulated
Value BIN
IOM_ID
PNT_NO
AND
1 AND CIN
Input AUTO
SIMOPT
Data
ECB Good BIN
0
AND
AND CIN
AUTO
ECB Good
SELOPT=1 BIN = 0
SELOPT=2 BIN = 1
SELOPT=0 or 3 BIN = Last Value
AND SELOPT=1 CIN = 0
ECB Bad or Out-of-Service
AND SELOPT=2 CIN = 1
AUTO SELOPT=0 CIN = Last Value
252
8. BIN – Binary Input Block B0193AX – Rev AB
253
B0193AX – Rev AB 8. BIN – Binary Input Block
254
8. BIN – Binary Input Block B0193AX – Rev AB
NOTE
State Change messages are ignored by Alarm Alert, and are not shown in the Alarm
Display; they are printed on the alarm printers only.
NOTE
State Alarming is independent of state change detection based on SCOPT.
When SCOPT is set to 2, any change from 0 to 1 in the value of CIN results in a State Change
message containing the text string in SCTXT1.
When SCOPT is set to 3, any change from 1 to 0 in the value of CIN results in a State Change
message containing the text string in SCTXT0.
Any required inversion based on IVO is applied before state change detection.
While the State Change Group (SCGRP) parameter holds the group to which all State Change
messages are directed, Alarm Alert ignores these messages when they arrive.
255
B0193AX – Rev AB 8. BIN – Binary Input Block
If MANALM=0, the selected alarming options are only applied when the block is in Auto mode;
if MANALM=1, the selected alarming options are applied when the block is in Auto and Manual
modes.
Refer to Control Processor 270 (CP270) Integrated Control Software Concepts (B0700AG) for infor-
mation on alarm functionality.
256
8. BIN – Binary Input Block B0193AX – Rev AB
257
B0193AX – Rev AB 8. BIN – Binary Input Block
NOTE
For a FOUNDATION fieldbus (FF) connection, a 4-byte ms since midnight time-
stamp is provided by the FF FBM and stored in the TSTAMP parameter.
258
9. BINR – Redundant Binary Input
Block
This chapter covers the Redundant Binary Input (BINR) block features, parameters and
functions, and application diagrams.
NOTE
In this chapter, CP270 Only indicates BINR features that are supported only on the
Field Control Processor 270 (FCP270) and Z-form Control Processor 270
(ZCP270) with I/A Series system software V8.4 or later.
9.1 Overview
The Redundant Binary Input (BINR) block is a Distributed Control Interface (DCI) block.
(DCI blocks support connectivity of I/A Series control stations to various bus resident devices via
a general purpose interface.) BINR receives one binary value from an external device. The source
of the value can be specified as either two or three redundant inputs. The redundant inputs can
either be in the same device or in different devices. The block’s selection algorithm determines
which of the two or three input values is presented to the control strategy as the block output
BIN.
2 or 3 Redundant To Upstream
External Inputs Input Processing
Block
Input from
Manual Set
259
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block
With I/A Series system software V8.4, the BINR block provides Bad I/O alarm and state change
alarm detection and reporting on the FCP270 and ZCP270.
Alarming is not supported on other control processors. If alarms are desired for applications on
these processors, separate CIN blocks can be used with connections to the CIN, BIN_1, BIN_2,
and BIN_3 parameters of the BINR block.
9.3 Features
The BINR block:
Reads up to three binary values from up to three external device ECBs, and arbitrates
between these redundant inputs
In Auto mode, copies its input to the Contact Input (CIN) parameter
In Manual mode, enables manual setting of the Contact Input (CIN) parameter.
Simulation option enables testing input to the control strategy without actual field
connections
Quality Status (QALSTA) provides value record status, block status and alarm status
in a single connectable output parameter (CP270 Only)
Bad I/O alarm and state change alarm detection and reporting (CP270 Only).
9.4 Parameters
Table 9-1. BINR Block Parameters
260
9. BINR – Redundant Binary Input Block B0193AX – Rev AB
261
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block
ALMOPT Alarm Options contain packed long values representing the alarm types
(CP270 Only) that have been configured as options in the block, and the alarm groups
that are in use. Table 9-2 shows how the parameter is used by the BINR
block.
Table 9-2. ALMOPT Parameter Format
Bit Number1
(0 to 31) Configured Alarm Option, When True
0 (lsb) Alarm Group 8 in Use
1 Alarm Group 7 in Use
2 Alarm Group 6 in Use
3 Alarm Group 5 in Use
4 Alarm Group 4 in Use
5 Alarm Group 3 in Use
6 Alarm Group 2 in Use
7 Alarm Group 1 in Use
22 Bad I/O Alarm Configured
26 State Alarm Configured
1.
Bit 0 is the least significant, low order bit.
262
9. BINR – Redundant Binary Input Block B0193AX – Rev AB
ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
(CP270 Only) states. Table 9-3 shows the bits used by the BINR block.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
B4
B5
B6
B7
B8
B9
CRIT PRTYPE
BAD
STA
INH
Boolean
Bit Number Connection
(0 to 31)* Name Description, When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: See PRYTPE parameter for ---
values used in the BINR block
5 to 7 CRIT_MSK Criticality: 1 (highest priority) to 5 ---
22 BAD Bad I/O Alarm ALMSTA.B10
26 STA State Alarm ALMSTA.B6
29 INH Inhibit Alarm. This bit is set when any of ALMSTA.B3
the block’s alarms is inhibited
30 UNAK Unacknowledged ALMSTA.B2
*Bit 0 is the least significant, low order bit.
AMRTIN Alarm Message Regeneration Time Interval specifies the rate at which
(CP270 Only) alarm messages are generated for alarm conditions that have not been
cleared. The interval is specified in seconds. The configured interval is
rounded up to the closest value that is an even multiple of the station
BPC. A value of 0 disables alarm message regeneration.
BAG Bad Alarm Group is a short integer input that directs Bad alarm messages
(CP270 Only) to one of eight groups of alarm devices. You can change the group number
through the workstation.
BAO Bad Alarm Option is a configurable option that enables alarm generation
(CP270 Only) for each state of BIN_1.BAD, BIN_2.BAD and BIN_3.BAD.
BAP Bad Alarm Priority is an integer input, ranging from 1 (highest priority) to
(CP270 Only) 5 (default), that sets the priority level of the Bad alarm.
263
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block
BIN Boolean Input contains the value read from BI1_PT, BI2_PT, or BI3_PT,
in the external device specified by IOMID1, IOMID2, or IOMID3
respectively after input processing. BIN displays this value at all times,
regardless of the block mode.
BIN_1 Primary Binary Input contains the discrete value read from BI1_PT, in the
device ECB specified by IOMID1.
BIN_2 Secondary Binary Input contains the discrete value read from BI2_PT, in
the device ECB specified by IOMID2.
BIN_3 Tertiary Binary Input contains the discrete value read from BI3_PT, in the
device ECB specified by IOMID3.
BI1_PT Primary Binary Input address identifies the source address in the external
device memory from which the block input is obtained. It is a string
whose syntax depends on the FBM and the fieldbus protocol of the
attached device.
For the FBM223 Profibus interface, BIx_PT must be configured
to contain a Profibus data identifier. This information identifies,
to the FBM, the address of the input data unit from the device.
Refer to PROFIBUS-DP Communication Interface Module
(FBM223) User’s Guide (B0400FE) for further details.
For the FBM222 Redundant Profibus interface, the BIx_PT con-
figuration string uses the FBM223 syntax with extensions for
PROFIBUS-PA status, custom status and other features. Refer to
Implementing Profibus Networks in Foxboro Control Software Appli-
cations (B0750BE) for further details.
For the HART interface
(FBM214/214b/215/216/216b/218/244/245/247), BIx_PT
must be configured to contain a point address. This information
identifies, to the FBM, specific data in the HART data stream that
is to serve as the device data input to this block. Refer to HART™
Communication Interface Modules User’s Guide (B0400FF) for
details.
For the Modbus interface (FBM224), BIx_PT must be configured
to contain the address of a set of coils in a Modbus device. Refer to
Modbus Communication Interface Module (FBM224) User’s Guide
for details.
For the FDSI (FBM230/231/232/23), BIx_PT contains a data
identifier to identify, to the FBM, specific data in the I/O data
stream and to specify the elements of the data. Refer to Field
Device System Integrators (FBM230/231/232/233) User’s Guide
(B0700AH) for more information.
264
9. BINR – Redundant Binary Input Block B0193AX – Rev AB
BI2_PT Secondary Binary Input address identifies the source address in the exter-
nal device memory from which the block input is obtained. It is a string
whose syntax depends on the FBM and the fieldbus protocol of the
attached device, as described for BI1_PT.
BI3_PT Tertiary Binary Input address identifies the source address in the external
device memory from which the block input is obtained. It is a string
whose syntax depends on the FBM and the fieldbus protocol of the
attached device, as described for BI1_PT.
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the BINR block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
FBM3 B22
FBM2 B23
FBM1 B24
B25
B26
B27
B28
B29
BAD3 B30
BAD2 B31
BAD1 B32
B1
B2
B3
B4
B5
B6
B7
B8
DCIX B9
ON
MA
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
0 BAD1 Primary Point is BAD (CP 270 Only) BLKSTA.B32
1 BAD2 Secondary Point is BAD (CP 270 Only) BLKSTA.B31
2 BAD3 Tertiary Point is BAD (CP 270 Only) BLKSTA.B30
8 FBM1 Bad Status of primary ECB BLKSTA.B24
9 FBM2 Bad Status of secondary ECB BLKSTA.B23
10 FBM3 Bad Status of tertiary ECB BLKSTA.B22
11 MA Manual = 0, Auto = 1 BLKSTA.B21
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
23 DCIX Enhanced DCI block (CP 270 Only) BLKSTA.B9
* Bit 0 is the least significant, low order bit.
CIN Block output CIN contains the same value as BIN when the block mode
is Auto and IVO=0. CIN contains the complement of BIN when the
265
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block
block mode is Auto and IVO=1. In Manual, CIN is released and you can
set its value.
CRIT Criticality is an integer output that indicates the priority of the block’s
CP270 Only highest currently active alarm. The range is 1 (highest priority) to 5. An
output of 0 indicates the absence of alarms.
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. (See ERCODE for the list of all possible validation errors in this
block.) In that case, no further processing of the block occurs, including
further validation of remaining parameters. To return DEFINE to a True
value, you should correct all configuration errors and reinstall the block.
DEVID1 Primary Device Identifier is a character array that specifies the 6-character
identifier of the first connected device. It is copied from the DEV_ID
configured in the ECB specified by IOMID1.
DEVID2 Secondary Device Identifier is a character array that specifies the 6-charac-
ter identifier of the second connected device. It is copied from the
DEV_ID configured in the ECB specified by IOMID2. If ECBOPT= 0,
DEVID2 is ignored.
DEVID3 Tertiary Device Identifier is a character array that specifies the 6-character
identifier of the third connected device. It is copied from the DEV_ID
configured in the ECB specified by IOMID3. If ECBOPT= 0, DEVID3
is ignored.
ERCODE Error Code is a character data store which indicates the type of configura-
tion error which caused the block’s DEFINE parameter to be set False,
unless indicated otherwise (see meanings below). Validation of configured
parameters does not proceed past the first error encountered by the block
logic. Each nonzero value of ERCODE results in an explanatory message
at the block’s detail display. For the BINR block, the following list shows
the possible messages you may see:
266
9. BINR – Redundant Binary Input Block B0193AX – Rev AB
INHALM Inhibit Alarm contains packed boolean values that represent alarm genera-
(CP270 Only) tion inhibit request for each type of alarm configured in the block: for the
BINR block, only the following bits are used:
267
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B1
B2
B3
B4
B5
B6
B7
B7
B9
Bit Boolean
Number* Description, Connection
(0 to 15) When True (B16 to B1)
6 Inhibit Bad I/O Alarm INHALM.B10
10 Inhibit State Alarm INHALM.B6
*Bit 0 is the least significant, low order bit.
INHIB Inhibit is a configurable, connectable and settable boolean that, when set,
(CP270 Only) suppresses all alarm message reporting. INHIB affects only alarm message
reporting; the alarm handling and detection functions are determined by
the INHOPT setting.
INHOPT Inhibit Option specifies the following actions applying to all block alarms:
(CP270 Only) 0 = When an alarm is inhibited, disables alarm messages but does
not disable alarm detection.
1 = When an alarm is inhibited, disables both alarm messages and
alarm detection. If an alarm condition exists at the time the alarm
transitions into the inhibited state, the alarm indicator is cleared.
2 = Same as 0 for inhibited alarms. For uninhibited alarms,
automatically acknowledges “return-to-normal” messages.
“Into alarm” messages can be acknowledged by explicitly setting
UNACK False.
3 = Same as 1 for inhibited alarms. For uninhibited alarms,
automatically acknowledges “return-to-normal” messages.
“Into alarm” messages can be acknowledged by explicitly setting
UNACK False.
INHSTA Inhibit Status contains packed long values that represent the current
(CP270 Only) inhibit status of each alarm type configured in the block. Table 9-4 shows
how the parameter is used with the BINR block.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
INHB1 B17
INHB2 B18
INHB3 B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
BAD
STA
268
9. BINR – Redundant Binary Input Block B0193AX – Rev AB
Bit Boolean
Number* Description, Connection
(0 to 31) Name When True (B32 to B1)
13 Primary Point Bad Alarm Inhibited INHSTA.B19
14 Secondary Point Bad Alarm Inhibited INHSTA.B18
15 Tertiary Point Bad Alarm Inhibited INHSTA.B17
22 BAD Bad I/O Alarm Inhibited INHSTA.B10
26 STA State Alarm Inhibited INHSTA.B6
*Bit 0 is the least significant, low order bit.
INVALM Invert Alarm is a configured boolean which specifies the sense of CIN
(CP270 Only) transitions considered “into alarm” and “return to normal” in State alarm
messages. Values are:
0 = CIN transitions from 0 to 1 are considered “into alarm.” State
alarm messages contain the NM1 string. Transitions from 1 to 0
are considered “return to normal.” State alarm messages contain
the NM0 string.
1 = CIN transitions from 1 to 0 are considered “into alarm.” State
alarm messages contain the NM1 string. Transitions from 0 to 1
are considered “return to normal.” State alarm messages contain
the NM0 string.
In any case, State alarm detection is disabled when option SAO is false.
INITMA Initialize Manual/Auto specifies the desired state of the MA input under
certain initialization conditions, namely:
The block has just been installed into the I/A Series control sta-
tion database.
The I/A Series control station is rebooted.
The compound in which the block resides is turned on.
The INITMA parameter is modified via the Integrated Control
Configurator.
INITMA is ignored if MA has an established linkage.
When INITMA is asserted, the value set into MA is:
0 (Manual) if INITMA = 0
1 (Auto) if INITMA = 1
The MA value from the checkpoint file if INITMA = 2.
IOMID1 Primary ECB Identifier is a configurable string that specifies the path-
name of the ECB201 for the primary device, for the purpose of connect-
ing to (accessing) a field parameter that resides in the primary field device
hosted by a (parent) ECB200/202.
269
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block
IOMID2 Secondary ECB Identifier is a configurable string that specifies the path-
name of the ECB201 for the secondary device, for the purpose of connect-
ing to (accessing) a field parameter that resides in the secondary field
device hosted by a (parent) ECB200/202.
IOMID2 must be configured when dual or triple redundancy is specified.
For other details, see IOMID1 above.
IOMID3 Tertiary ECB Identifier is a configurable string that specifies the pathname
of the ECB201 for the tertiary device, for the purpose of connecting to
(accessing) a field parameter that resides in the tertiary field device hosted
by a (parent) ECB200/202.
IOMID3 must be configured when triple redundancy is specified. For
other details, see IOMID1 above.
IVO Invert Option, when true, causes the block to invert the value of the FBM
(CP270 Only) or FBC input or the BIN input before writing it to the CIN output. If
IVO is true, all alarming and state change message generation is based on
the inverted value of the input.
LOCKID Lock Identifier is a string identifying the workstation which has locked
(CP270 Only) access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.
LOCKRQ Lock Request is a Boolean input which can be set True or False only by a
(CP270 Only) SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set True in this fashion, a workstation identifier
accompanying the set command is entered into the LOCKID parameter
of the block. Thereafter, set requests to any of the block’s parameters are
honored (subject to the usual access rules) only from the workstation
whose identifier matches the contests of LOCKID. LOCKRQ can be set
False by any workstation at any time, whereupon a new LOCKRQ is
accepted, and a new ownership workstation identifier written to
LOCKID.
270
9. BINR – Redundant Binary Input Block B0193AX – Rev AB
271
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For CP stations, PERIOD values range
from 0 to 10, and 13, and map to the time lengths shown in the following
table. For Gateways and Integrators, PERIOD values range from 0 to 12
and map to the time lengths specified in the device specific user’s guide.
* If the BPC is 0.2 second, this period is treated internally as 0.6 second, but
the PERIOD parameter remains 1.
** If the BPC is 2.0 seconds, this period is treated internally as 6.0 seconds, but
the PERIOD parameter remains 10.
*** Not available for CP stations.
****Available in CP40, CP40B, CP60 and later control processors.
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 seconds) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the
I/A Series station is 0.5 second. Refer to the appropriate Integrated Control
Software Concepts document (B0700AG or B0193AW).
PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
CP270 Only of the highest priority active alarm. For the BINR block:
0 = No alarm
8 = Bad I/O alarm
9 = State alarm
272
9. BINR – Redundant Binary Input Block B0193AX – Rev AB
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit Boolean Connection
Number1 Definition Contents (B32 to B1)
30 Alarms Unacknowledged ALMSTA.UNA QALSTA.B2
29 Alarms Inhibited ALMSTA.INH QALSTA.B3
26 State Alarm ALMSTA.STAL QALSTA.B6
22 Bad Alarm ALMSTA.IOBD QALSTA.B10
15 Bad Tertiary FBM BLKSTA.FBM3 QALSTA.B17
14 Bad Secondary FBM BLKSTA.FBM2 QALSTA.B18
13 Bad Primary FBM BLKSTA.FBM1 QALSTA.B18
12 Bad Tertiary Point BLKSTA.BAD3 QALSTA.B20
11 Bad Secondary Point BLKSTA.BAD2 QALSTA.B21
10 Bad Primary Point BLKSTA.BAD1 QALSTA.B22
5 Manual2 BLKSTA.MA QALSTA.B27
2 Uncertain CIN.ERR status QALSTA.B30
1 Out-of-Service CIN.OOS status QALSTA.B31
0 Bad CIN.BAD status QALSTA.B32
1.
Bit 0 is the least significant, low order bit.
2. Bit 5 is the inverse of the BLKSTA.MA bit (BLKSTA.B21).
SAG State Alarm Group is a short integer input that directs State alarm mes-
(CP270 Only) sages to one of eight groups of alarm devices.
SAO State Alarm Option is a configurable boolean which, when true, enables
(CP270 Only) the generation of State Alarms.
SAP State Alarm Priority is an integer input, ranging from 1 (highest priority)
(CP270 Only) to 5 (default), that sets the priority level.
SCGRP State Change Group is a short integer input that directs State Change
(CP270 Only) messages to one of eight groups of devices. However, Alarm Alert ignores
these messages when they arrive; State Change messages are printed only.
SCOPT State Change Option specifies which state changes of the block output
(CP270 Only) cause a State Change message to be the generated. These messages are
ignored by Alarm Alert, and are not shown in the Alarm Display; they are
273
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block
SCTXT0 State Change Text 0 is a text string sent with the State Change message to
(CP270 Only) indicate that the state has changed from 1 to 0, after any optional inver-
sion.
SCTXT1 State Change Text 1 is a text string sent with the State Change message to
(CP270 Only) indicate that the state has changed from 0 to 1, after any optional inver-
sion.
SELECT Selection indicator shows which redundant BIN_x has been chosen by the
arbitration algorithm:
0 = none of the input values is selected
1 = primary input value is selected
2 = secondary input value is selected
3 = tertiary input value is selected.
SELOPT Selection Option is a configurable option that specifies the criteria for
selecting a redundant input in the BINR block when the arbitration algo-
rithm cannot resolve the choice. For the BINR block:
0 = retain the previous value
1 = set the value to 0 (False) (Default)
2 = set the value to 1 (True).
TSTAMP The Time Stamp parameter of the block is updated every time there is a
change in the value of CIN. In Auto mode, this means that the field input
value of BIN changes. In Manual mode, it means that a new manual value
is set into CIN and written to the field device via the FBM. TSTAMP,
which is expressed in units of milliseconds past midnight, is read from the
FBM, when it is available there; otherwise, it is computed by the CP.
TYPE When you enter BINR or select it from a configurator list, an identifying
integer is created specifying this block type. For this block, the value of
TYPE is 110.
274
9. BINR – Redundant Binary Input Block B0193AX – Rev AB
UPDPER Update Period is a configurable non-settable long integer that specifies the
update period for certain types of client/server access to FOUNDATION
fieldbus H1 devices and PROFIBUS slave devices:
For the FBM228, the parameter defines the update period for cli-
ent/server access to device block parameters, as described in
Implementing FOUNDATION fieldbus on an I/A Series System
(B0700BA) or Implementing FOUNDATION fieldbus (B0750BC).
The parameter is not used for publisher/subscriber connections.
For the FBM222, the parameter defines the update period for acy-
clic communication between the FBM222 and the
PROFIBUS slave device, as described in Implementing Profibus
Networks in Foxboro Control Software Applications (B0750BE).
The parameter is not used for cyclic communications.
UNACK Unacknowledged is a Boolean output parameter that is set True for notifi-
CP270 Only cation purposes whenever the block goes into alarm. It is settable, but sets
are only allowed to clear UNACK to False, and never in the
opposite direction. UNACK is cleared by an operator “acknowledge”
pick on a default display, a user display, or the alarms display.
VALSTS Value Status is an output parameter of any DCI block that contains the
value status of a FOUNDATION fieldbus device function block or PROFI-
BUS-PA parameter provided by a DCI connection to a field device. For
other fieldbus types, VALSTS is meaningless.
Bits 0-1: Limits:
0 = Not limited
1 = High limited
2 = Low limited
3 = High and Low limited
Bits 2-5: Substatus (definition depends on Quality)
Bits 6-7: Quality:
0 = Bad
1 = Uncertain
2-3 = Good
Note: Bit 0 is the least significant, low order bit.
Each time the BINR block is executed, VALSTS reports the status of the
FF or PROFIBUS-PA value from the information in the DCI connection.
275
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block
9.5 Functions
9.5.1 Detailed Diagram
IOMID1
BI1_PT
SIMULATED
VALUE BIN
IOMID2
BI2_PT 1 AND CIN
AUTO
SIMOPT BIN
0 SELECT
IOMID3
BI3_PT BIN_1
AND CIN
1 BIN_2
ARBOPT AUTO
ECBOPT: BIN_3
0
False = 1 ECB
SELOPT
True = 2 or 3 ECBs INVALID
SELOPT=1 BIN = 0
SELOPT=2 BIN = 1
SELOPT=0 BIN = Last Value
SIMOPT
SELOPT=1 CIN = 0
AND
ECB Bad or Out-of-Service AND SELOPT=2 CIN = 1
AUTO SELOPT=0 CIN = Last Value
276
9. BINR – Redundant Binary Input Block B0193AX – Rev AB
The DCI connections are deleted (for example, the linkages are removed from the linked lists for
the ECB or ECBs) when the BINR block is deleted.
277
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block
278
9. BINR – Redundant Binary Input Block B0193AX – Rev AB
Finally, if BIN_x is not Out-of-Service, the value of the input is copied into the value of BIN_x.
Otherwise, the last good value of BIN_x is retained.
The value and status of the individual BIN_x are available in three output parameters. In addi-
tion, they are used as the inputs to the arbitration algorithm.
When the Select column reads “See Case x”, the arbitration process cannot select a candidate.
Configured parameter SELOPT then determines the value of BIN as follows:
If SELOPT = 0, BIN retains its previous value.
If SELOPT = 1, BIN is set false.
If SELOPT = 2, BIN is set true.
Output parameter SELECT shows which BIN_x has been selected:
If BIN_1 is selected, SELECT = 1
If BIN_2 is selected, SELECT = 2
If BIN_3 is selected, SELECT = 3
Otherwise, SELECT = 0
The status of BIN is set as follows:
Case 1, 2 or 3: status of BIN is Error (the Error status bit is set)
Case 4: status of BIN is Bad and Out-of-Service (the Bad and Out-of-Service status
bits are set).
279
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block
NOTE
State Change messages are ignored by Alarm Alert, and are not shown in the Alarm
Display; they are printed on the alarm printers only.
NOTE
State Alarming is independent of state change detection based on SCOPT.
When SCOPT is set to 2, any change from 0 to 1 in the value of CIN results in a State Change
message containing the text string in SCTXT1.
280
9. BINR – Redundant Binary Input Block B0193AX – Rev AB
When SCOPT is set to 3, any change from 1 to 0 in the value of CIN results in a State Change
message containing the text string in SCTXT0.
Any required inversion based on IVO is applied before state change detection.
While the State Change Group (SCGRP) parameter holds the group to which all State Change
messages are directed, Alarm Alert ignores these messages when they arrive.
Default
Alarm Type Option Priority Group Text Display
BAD BAO=1 BAP BAG BAT BAD
State SAO=1 SAP SAG NM0 or NM1 STATE
If MANALM=0, the selected alarming options are only applied when the block is in Auto mode;
if MANALM=1, the selected alarming options are applied when the block is in Auto and Manual
modes.
Refer to Control Processor 270 (CP270) Integrated Control Software Concepts (B0700AG) for infor-
mation on alarm functionality.
281
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block
When all input values have returned to good status, CRIT, PRTYPE and their corresponding
fields in ALMSTA are cleared.
The UNACK parameter and the ALMSTA.UNACK bit are cleared in these cases:
When the alarm is acknowledged by an OM set operation at either the compound
level (by setting the compound UNACK=0) or at the block level (by setting the block
UNACK=0).
When all input values return to good status and INHOPT is set appropriately.
When the block is shut down.
When UNACK is cleared, an Alarm Acknowledge message is generated and sent to all devices in
the bad alarm group.
282
9. BINR – Redundant Binary Input Block B0193AX – Rev AB
Refer to Control Processor 270 (CP270) Integrated Control Software Concepts (B0700AG) on alarm
features.
NOTE
For a FOUNDATION fieldbus (FF) connection, a 4-byte ms since midnight time-
stamp is provided by the FF FBM and stored in the TSTAMP parameter.
283
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block
284
10. BLNALM – Boolean Alarm
Block
This chapter covers the Boolean Alarm Block, or BLNALM, its features, parameters and
functions.
10.1 Overview
The Boolean Alarm Block, BLNALM, enables alarm message generation for up to 8 boolean
block outputs. For each input, you can assign a point descriptor and a unique state name for
going into, or coming out of, alarm.
10.2 Features
Features are:
Supports alarming for up to 8 boolean inputs
Last good value retention
Alarm message and alarm notification inhibiting for all inputs.
Options are:
Per-point state change alarming (SAO_1 to SAO_8)
Per-point inversion (IVO_1 to IVO_8)
INHOPT specifies the actions to be taken when alarms are inhibited in the block.
285
B0193AX – Rev AB 10. BLNALM – Boolean Alarm Block
10.3 Parameters
Table 10-1. BLNALM Block Parameters
286
10. BLNALM – Boolean Alarm Block B0193AX – Rev AB
ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use. For the BLNALM block, only the following unshaded bits
are used.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit Number1
(0 to 31) Configured Alarm Option When True
0 Alarm Group 8 in Use
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use
1. Bit 0 is the least significant, low order bit.
ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the BLNALM block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
B4
B5
STAL B6
B7
B8
B9
Bit Boolean
Number Connection
(0 to 31)* Name Description When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: See parameter ALMSTA.B32–
PRTYPE for values used in ALMSTA.B28
the BLNALM block
5 to 7 CRIT_MSK Criticality; 5 = lowest ALMSTA.B27–
priority, 1= highest ALMSTA.B25
8 to 15 PNT1 to Points in STATE Alarm ALMSTA.B24–
PNT8 ALMSTA.B17
26 STAL State Change Alarm ALMSTA.B6
29 INH Alarm inhibit ALMSTA.B3
30 UNAK Unacknowledged ALMSTA.B2
* Bit 0 is the least significant, low order bit.
287
B0193AX – Rev AB 10. BLNALM – Boolean Alarm Block
AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is gen-
erated.
ANM_1 to ANM_8
Alarm Name for Inputs 1 through 8 are user-defined strings of up to
12 characters that identify the input as the cause of the event (that is, the
alarm source), in the alarm message. Each serves as a point descriptor
label, (for example, “Plt3 F2 SDR”).
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate the block’s opera-
tional states. For the BLNALM block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
ON
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
14 UDEF Undefined BLKSTA.B18
15 ON Compound On BLKSTA.B17
20 WLCK Workstation Lock BLKSTA.B12
CRIT Criticality is an integer output that indicates the priority, ranging from
1 to 5, of the block’s highest currently active alarm (1 is the highest prior-
ity). An output of zero indicates the absence of alarms.
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. In that case, no further processing of the block occurs. To return
DEFINE to a true value, correct all configuration errors and reinstall the
block.
ERCODE Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the block’s
288
10. BLNALM – Boolean Alarm Block B0193AX – Rev AB
DEFINE parameter to be set false, but not the warning situations. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. The block detailed display shows the ERCODE
on the primary page, if it is not null. For the BLNALM block, the follow-
ing list specifies the possible values of ERCODE, and the significance of
each value in this block:
Message Value
“W43 – INVALID PERIOD/ PHASE does not exist for given block
PHASE COMBINATION” PERIOD, or block PERIOD not
compatible with compound PERIOD.
“W46 – INVALID INPUT The source parameter specified in the
CONNECTION” input connection cannot be found in
the source block, or the source
parameter is not connectable, or an
invalid boolean extension connection
has been configured.
“W53 – INVALID A parameter value is not in the accept-
PARAMETER VALUE” able range.
“W58 – INSTALL ERROR; A Database Installer error has
DELETE/UNDELETE occurred.
BLOCK”
INHALM Inhibit Alarm is a packed Boolean input value that specifies the alarm
inhibit requests for each alarm type configured in the block. The
BLNALM block, uses the following bits:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B1
B2
B3
B4
B5
B6
B7
B8
B9
INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
289
B0193AX – Rev AB 10. BLNALM – Boolean Alarm Block
setting. Alarms may also be inhibited based on INHALM and the com-
pound parameter CINHIB.
INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do
not disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the
time the alarm transitions into the inhibited state, clear the
alarm indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.
INHSTA Inhibit Status contains packed long values that represent the actual inhibit
status of each alarm type configured in the block. For the BLNALM
block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
INH 1-8
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
24 to 31 INH Inhibit Alarm status for INHSTA.B8–
boolean outputs 1-8 INHSTA.B1
IN_1 to IN_8 Inputs 1 through 8 are boolean inputs. They identify the upstream out-
puts that are being monitored by the inputs of the block.
IVO_1 to IVO_8 Invert Options 1 through 8 are boolean inputs. When IVO is true, the
block inverts the value of the FBM input before writing it to the CIN out-
put. The state alarm messages process an off-to-on state change at the
input as an on-to-off state change. You can change IVO only by reconfig-
uring the block.
290
10. BLNALM – Boolean Alarm Block B0193AX – Rev AB
LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.
LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are honored (subject to the usual access rules) only from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can set false by any workstation at any time, whereupon a new
LOCKRQ is accepted, and a new ownership workstation identifier writ-
ten to LOCKID.
NM0_1 to NM0_8
Name 0, Inputs 1 through 8, are user-defined strings of up to
12 characters that describe, in event messages, a logical 1 to 0 transition
for Inputs 1 through 8.
NM1_1 to NM1_8
Name 1, Inputs 1 through 8, are user-defined strings of up to
12 characters that describe, in event messages, a logical 0 to 1 transition
for Inputs 1 through 8.
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)
291
B0193AX – Rev AB 10. BLNALM – Boolean Alarm Block
* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).
PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. The PRTYPE output of this block
includes the following alarm types:
0 = No active alarm
9 = State Alarm
SAG_1 to SAG_8 State Alarm Group, Inputs 1 through 8, are short integer inputs that
direct mismatch alarm messages to the corresponding group of alarm
devices. You can change the group number through the workstation.
SAO_1 to SAO_8 State Alarm Option, Inputs 1 through 8, when configured true, enable an
alarm message whenever the corresponding input changes state. You can
change SAO only by reconfiguring the block.
SAP_1 to SAP_8 State Alarm Priority, Inputs 1 through 8, are integer inputs (1 to 5), that
set the alarm priority for the mismatch alarm reporting (1 is the highest
priority).
292
10. BLNALM – Boolean Alarm Block B0193AX – Rev AB
TYPE When you enter “BLNALM” or select “BLNALM” from the block type
list under Show, an identifying integer is created specifying this block
type.
UNACK Unacknowledge is a boolean output that the block sets to True when it
detects an alarm. It is typically reset by operator action.
10.4 Functions
10.4.1 Detailed Operation
The BLNALM block monitors each of the up to eight boolean inputs that you have configured to
other block outputs using the input parameters IN_1 through IN_8.
When one of the inputs changes state the block, after confirming that alarming is not inhibited
for that point, and that the state alarm option for the particular input (SAO_x) is true, generates
an alarm message that includes the following block-level information:
The Block Name (NAME)
The Point Descriptor (ANM_x)
The Alarm State Name (NM1_x if the input is changing from 0 to 1, or, NM0_x if
the change is from 1 to 0)
Alarm Message Type (“Alarm” or “Normal”)
Priority (SAP_x)
Group (SAG_x)
Within the BLNALM block, the 0 to 1 transition always triggers the “Alarm” message while the
1 to 0 transition triggers the “Normal” message. Accordingly, the logical one state name (NM1_x)
is always sent with the going-into-alarm message and the logical zero state name (NM0_x) is
always sent with the return-to-normal message. If this convention is contrary to the input signal,
that is, if the actual input is entering the alarm state as it goes from 1 to 0, then configure the
Invert Option (IVO_x) for that particular input.
Unacknowledge (UNACK) is a boolean output parameter which is set true, for notification pur-
poses, whenever the block goes into alarm. It is settable, but sets are only allowed to clear
UNACK to false, and never in the opposite direction. The clearing of UNACK is normally via an
operator “acknowledge” pick on a default or user display, or via a user task.
INHALM is a parameter that is used in conjunction with the CINHIB compound parameter and
the INHIB block parameter to determine which alarm points are to be inhibited in the block.
The following table shows the value of INHALM which causes the inhibiting of each of the
points:
293
B0193AX – Rev AB 10. BLNALM – Boolean Alarm Block
For example, you can inhibit alarming for points IN_2 and IN_5 by setting INHALM to
0x4800.
294
11. BOOL – Boolean Variable Block
This chapter covers the Boolean Variable Block, or BOOL, its basic operation, features and
parameters.
11.1 Overview
The Boolean (BOOL) variable block provides data storage for a boolean value and its associated
user-specified state name (see Figure 11-1). The boolean value parameter is typically connected by
a sequence block or sequence language for use in a control strategy.
Boolean
Application Value Boolean Value (VALUE)
295
B0193AX – Rev AB 11. BOOL – Boolean Variable Block
Block validation does not change any parameter values that have not been reconfigured, except for
a CP reboot, in which case it installs the parameter values in the checkpoint file. If you turn the
compound off and then on, the VALUE parameter value is unchanged.
11.3 Features
The BOOL block provides the following features:
Boolean output data variable (VALUE) for storing a boolean value
User-defined state names (STATE0 and STATE1) that describe the true and false
states of VALUE
State string (STATE) for storing the name of the current state of VALUE.
11.4 Parameters
Table 11-1. BOOL Block Parameters
STATE State is a dynamic string that contains the name of the current state of the
VALUE parameter.
296
11. BOOL – Boolean Variable Block B0193AX – Rev AB
TYPE Type is a system-level mnemonic label indicating the block type. Enter
“BOOL” or select “BOOL” from the block type list under SHOW when
configuring the block.
VALUE Value is a boolean output data variable that can be set by a set command
or block reconfiguration to store data for use by other blocks.
297
B0193AX – Rev AB 11. BOOL – Boolean Variable Block
298
12. BOUT – Binary Output Block
This chapter covers the Binary Output (BOUT) block, its features, parameters and functions,
and application diagrams.
NOTE
This chapter describes the Distributed Control Interface (DCI) BOUT block. For a
description of how the BOUT block is used in PLC applications, refer to PLC Inter-
face Block Descriptions (B0193YQ).
NOTE
CP270 Only indicates BOUT features supported only on the Field Control Proces-
sor 270 (FCP270) and Z-form Control Processor 270 (ZCP270) with I/A Series
system software V8.4 or later.
12.1 Overview
The Binary Output (BOUT) block is a Distributed Control Interface (DCI) block. (DCI blocks
support connectivity of I/A Series control stations to various bus resident devices via a general
purpose interface.) BOUT sends one binary value to an address in an external device. It also con-
tinuously reports, to the I/A Series system, any changes made by the FBM to the field device value
at this address.
To
Cascade
Upstream
Processing
Block
Input To Field
from Input Output
Device (via
I/A Series Processing Processing
FBM)
System
ECB Fail-Safe
Fail-Safe Processing
Read-Back Read-Back
from Read-Back
Processing
Field Device
299
B0193AX – Rev AB 12. BOUT – Binary Output Block
300
12. BOUT – Binary Output Block B0193AX – Rev AB
12.3 Features
The BOUT block provides the following features:
Separate block inputs for use in Auto and Manual
Specification of external device destination point as device-specific string
Output written to device only when output value changes
Optional periodic outputs added to change-driven outputs
Output values that are displayed as readback values
Change timer that assures initialization to external device value
Specific point reserved for tracking notification from external device
Open cascade notification to upstream blocks
Bad I/O alarm detection and reporting (CP270 Only)
Option to have the block switch to manual when input or readback status is Bad
(CP270 Only)
Option to have the block switch to manual when fail-safe is asserted (CP270 Only).
301
B0193AX – Rev AB 12. BOUT – Binary Output Block
12.4 Parameters
Table 12-1. BOUT Block Parameters
302
12. BOUT – Binary Output Block B0193AX – Rev AB
ALMOPT Alarm Options contain packed long values representing the alarm types
CP270 Only that have been configured as options in the block, and the alarm groups
that are in use. Table 12-2 shows how the parameter is used by the BOUT
block.
Bit Number1
(0 to 31) Configured Alarm Option, When True
0 (lsb) Alarm Group 8 in Use
1 Alarm Group 7 in Use
2 Alarm Group 6 in Use
3 Alarm Group 5 in Use
4 Alarm Group 4 in Use
5 Alarm Group 3 in Use
6 Alarm Group 2 in Use
303
B0193AX – Rev AB 12. BOUT – Binary Output Block
Bit Number1
(0 to 31) Configured Alarm Option, When True
7 Alarm Group 1 in Use
22 Bad I/O Alarm Configured
1.
Bit 0 is the least significant, low order bit.
ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
CP270 Only states. Table 12-3 shows the bits used by the BOUT block.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
B4
B5
B6
B7
B8
B9
CRIT PRTYPE
BAD
INH
Bit Boolean
Number Description, Connection
(0 to 31)* Name When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type ---
5 to 7 CRIT_MSK Criticality: 1 (highest priority) to 5 ---
22 BAD Bad I/O Alarm ALMSTA.B10
29 INH Inhibit Alarm. This bit is set when ALMSTA.B3
any of the block’s alarms is inhibited
30 UNAK Unacknowledged ALMSTA.B2
*Bit 0 is the least significant, low order bit.
AMRTIN Alarm Message Regeneration Time Interval specifies the rate at which
CP270 Only alarm messages are generated for alarm conditions that have not been
cleared. The interval is specified in seconds. The configured interval is
rounded up to the closest value that is an even multiple of the station
BPC. A value of 0 disables alarm message regeneration.
AUTSW Auto Switch forces the block mode to Auto. It is of higher priority than
configured, set, or linked values in MA, or the value of INITMA. It is of
lower priority than MANSW, however. If both MANSW and AUTSW are
True, the block mode is forced to Manual.
304
12. BOUT – Binary Output Block B0193AX – Rev AB
BAP Bad Alarm Priority is a configurable integer input used to specify the
CP270 Only Alarm Priority to be assigned to Bad Alarms in the block. BADPRI is
settable if unlinked. The range is 1 (highest) to 5 (default).
BKCO Back Calculated Contact Output is set equal to the confirmed component
of COUT while the cascade is initializing. Since its purpose is to provide
the upstream block with a back-calculated value, you should connect
BKCO to the BCALCI parameter of that block.
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the BOUT block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
DCIX B9
MAO
FBM
HLD
TRK
MA
ON
FS
COUT Contact Output is the value sent from the block to the connected field
device at point PNT_NO. The displayed value of COUT is always the
confirmed component.
305
B0193AX – Rev AB 12. BOUT – Binary Output Block
COUTQ Output Request displays the value of the request component of the block
output for diagnostic purposes. It is not configurable.
CRIT Criticality is an integer output that indicates the priority of the block’s
CP270 Only highest currently active alarm. The range is 1 (highest priority) to 5. An
output of 0 indicates the absence of alarms.
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. (See ERCODE for the list of all possible validation errors in this
block.) In that case, no further processing of the block occurs, including
further validation of remaining parameters. To return DEFINE to a True
value, correct all configuration errors and reinstall the block.
DEV_ID Device Identifier is a character array that specifies the 6-character identi-
fier of the connected device. It is copied from the DEV_ID configured in
the ECB specified by the IOM_ID parameter.
ERCODE Error Code is a character data store which indicates the type of configura-
tion error which caused the block’s DEFINE parameter to be set False,
unless indicated otherwise (see meanings below). Validation of configured
parameters does not proceed past the first error encountered by the block
logic. Each nonzero value of ERCODE results in an explanatory message
at the block’s detail display. For the BOUT block, the following list shows
the messages you may see:
306
12. BOUT – Binary Output Block B0193AX – Rev AB
FSOPTN Fail-Safe Option is a configurable option that specifies the fail-safe condi-
tions and action to be taken by the CP and the FBM for an output point
in a BOUT block. Any combination of the following options may be
configured:
Bit 0: 1 = assert fail-safe if input/measurement error (that is,
input/measurement is BAD, OOS, or has a broken connection).
Note that EROPT must be configured nonzero for this option to
take effect.
Bit 1: 1 = set/clear fail-safe when SETFS input is set/cleared.
Bit 2: 1 = assert fail-safe if control station-to-FBM communication
is lost (FBM option). This option will be enabled only if fail-safe
is enabled at the FBM level via the FSENAB parameter in
ECB200 or ECB202.
Bit 31: 1 = set the output BAD status if input/measurement error
(that is, input/measurement is BAD, OOS, or has a broken
connection).
Bit 41: 1 = set/clear the output BAD status when the SETFS input
is set/cleared.
Bit 51: 1 = set the output BAD status if control station-to-FBM
communication is lost (FBM option). This option will be enabled
1. Bits
3, 4 and 5 of FSOPTN only apply to FDSI FBMs. The FDSI FBM uses these options only
when interfacing to devices using protocols that support output point status.
307
B0193AX – Rev AB 12. BOUT – Binary Output Block
INHIB Inhibit is a configurable, connectable and settable boolean that, when set,
CP270 Only suppresses all alarm message reporting. INHIB affects only alarm message
reporting; the alarm handling and detection functions are determined by
the INHOPT setting.
INHOPT Inhibit Option specifies the following actions applying to all block alarms:
CP270 Only 0 = When an alarm is inhibited, disables alarm messages but does
not disable alarm detection.
1 = When an alarm is inhibited, disables both alarm messages and
alarm detection. If an alarm condition exists at the time the alarm
transitions into the inhibited state, the alarm indicator is cleared.
2 = Same as 0 for inhibited alarms. For uninhibited alarms,
automatically acknowledges “return-to-normal” messages.
“Into alarm” messages can be acknowledged by explicitly setting
UNACK False.
3 = Same as 1 for inhibited alarms. For uninhibited alarms,
automatically acknowledges “return-to-normal” messages.
“Into alarm” messages can be acknowledged by explicitly setting
UNACK False.
INHSTA Inhibit Status contains packed long values that represent the current
CP270 Only inhibit status of each alarm type configured in the block. Table 12-4
shows how the parameter is used with the AI block.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BAD B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
308
12. BOUT – Binary Output Block B0193AX – Rev AB
Bit Boolean
Number* Description, Connection
(0 to 31) Name When True (B32 to B1)
22 BAD Bad I/O Alarm Inhibited INHSTA.B10
*Bit 0 is the least significant, low order bit.
INITMA Initialize Manual/Auto specifies the desired state of the MA input under
certain initialization conditions, namely:
The block has just been installed into the I/A Series station
database.
The I/A Series station is rebooted.
The compound in which the block resides is turned on.
The INITMA parameter is modified via the Integrated Control
Configurator.
INITMA is ignored if MA has an established linkage.
When INITMA is asserted, the value set into MA is:
0 (Manual) if INITMA = 0
1 (Auto) if INITMA = 1
The MA value from the checkpoint file if INITMA = 2.
INI_PT Initialize Address is a configurable string that specifies the point address of
an optional Boolean input connection in the BOUT block. If INI_PT is
used, the block output tracks the readback value when this input Boolean
value is set. On a transition of this input value to zero, if PRIBLK is used,
the I/A Series cascade is initialized. The address syntax depends on the
FBM type and the fieldbus protocol of the attached device, as described
for “PNT_NO” on page 311.
IOM_ID ECB Identifier is a configurable string that specifies the pathname of the
ECB201 for the device, for the purpose of connecting to (accessing) a field
parameter that resides in a field device hosted by a (parent) ECB200/202.
IOM_ID has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
309
B0193AX – Rev AB 12. BOUT – Binary Output Block
may be omitted from the IOM_ID configuration. In this case, the 1-12
character ECB block name is sufficient.
LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.
LOCKRQ Lock Request is a Boolean input which can be set True or False only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set True in this fashion, a workstation identifier
accompanying the set command is entered into the LOCKID parameter
of the block. Thereafter, set requests to any of the block’s parameters are
honored (subject to the usual access rules) only from the workstation
whose identifier matches the contests of LOCKID. LOCKRQ can be set
False by any workstation at any time, whereupon a new LOCKRQ is
accepted, and a new ownership workstation identifier written to
LOCKID.
MANFS Manual if Fail-safe allows recovery from FBM fail-safe at the block in
CP270 Only which MANFS is set. If MANFS = 1, the output state is forced to manual
mode when the block detects the FBM being in fail-safe. The option only
takes effect if MA is unlinked. MANFS takes precedence over AUTSW
and INITMA.
Fail-safe in the block is cleared as soon as the output is changed.
For cascade operations, it is recommended that MANFS be enabled in
only one block.
MANSW Manual Switch, when True, forces the block into Manual mode. It is of
higher priority than any other method of establishing the value MA, since
it overrides configured, set, or linked values. MANSW is also of higher
priority than AUTSW or INITMA.
MBADOP Manual if Bad Option is manual override feature which, when set TRUE,
CP270 Only causes the block to go into Manual mode if the output value status is BAD
or IN value status is BAD.
310
12. BOUT – Binary Output Block B0193AX – Rev AB
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For CP stations, PERIOD values range
from 0 to 10, and 13, and map to the time lengths shown in the following
table. For Gateways and Integrators, PERIOD values range from 0 to 12
and map to the time lengths specified in the device specific user’s guide.
* If the BPC is 0.2 second, this period is treated internally as 0.6 second, but
the PERIOD parameter remains 1.
** If the BPC is 2.0 seconds, this period is treated internally as 6.0 seconds, but
the PERIOD parameter remains 10.
*** Not available for CP stations.
****Available in CP40, CP40B, CP60 and later control processors.
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 seconds) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the
I/A Series station is 0.5 second. Refer to the appropriate Integrated Control
Software Concepts document (B0700AG or B0193AW).
PNT_NO Point Number identifies the address in the external device memory (or
external device data stream) to which the block output is directed. The
address syntax depends on the FBM type and the fieldbus protocol of the
attached device:
For the FBM223 Profibus interface, PNT_NO must be config-
ured to contain a Profibus data identifier. This information
identifies, to the FBM, the address of the input data unit from the
device. Refer to PROFIBUS-DP Communication Interface Module
(FBM223) User’s Guide (B0400FE) for further details.
311
B0193AX – Rev AB 12. BOUT – Binary Output Block
PRIBLK Primary Block indicates whether the BOUT block has a connection from
an upstream block (PRIBLK = 1) or not (PRIBLK = 0). Its value, together
with that of PRITIM, determines whether the BOUT block remains in
Hold for a fixed time delay, or ends the Hold after one cycle.
Use PRIBLK in a cascade situation when the source of the block's input
connection needs to be initialized.
Refer to “PRIBLK and PRITIM Functionality” on page 320 for more
information on this parameter.
PRITIM Primary Cascade Timer is a configurable parameter used to delay the clos-
ing of the cascade to a primary block, when the output is initialized in the
BOUT block. It is used only if the PRIBLK option is set.
Refer to “PRIBLK and PRITIM Functionality” on page 320 for more
information on this parameter.
PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
CP270 Only of the highest priority active alarm. For the BOUT block:
0 = No alarm
8 = Bad I/O alarm.
312
12. BOUT – Binary Output Block B0193AX – Rev AB
SET Set is the value normally passed to COUT, on a change-driven basis, when
the block is in Manual mode. Readback changes and change timer action
can override the value specified by SET.
TSTAMP The Time Stamp parameter of the block is updated every time there has
been a change in the value of the readback from the external device point
(that is, the current readback differs from the readback value obtained in
the last execution cycle). TSTAMP, which is expressed in units of millisec-
onds past midnight, is read from the FBM, when it is available there; oth-
erwise, it is computed by the control station.
TYPE When you enter BOUT or select it from a configurator list, an identifying
integer is created specifying this block type. For this block, the value of
TYPE is 143.
UNACK Unacknowledged is a Boolean output parameter that is set True for notifi-
CP270 Only cation purposes whenever the block goes into alarm. It is settable, but sets
are only allowed to clear UNACK to False, and never in the
opposite direction. UNACK is cleared by an operator “acknowledge”
pick on a default display, a user display, or the alarms display.
313
B0193AX – Rev AB 12. BOUT – Binary Output Block
VALSTS Value Status is an output parameter of any DCI block that contains the
value status of a FOUNDATION fieldbus function block parameter value or
PROFIBUS-PA parameter provided by a DCI connection to a field
device. For other fieldbus types, VALSTS is meaningless.
Bits 0-1: Limits:
0 = Not limited
1 = High limited
2 = Low limited
3 = High and Low limited
Bits 2-5: Substatus (definition depends on Quality)
Bits 6-7: Quality:
0 = Bad
1 = Uncertain
2-3 = Good
Note: Bit 0 is the least significant, low order bit.
Each time the BOUT block is executed, VALSTS reports the status of the
FF or PROFIBUS-PA value from the information in the DCI connection.
314
12. BOUT – Binary Output Block B0193AX – Rev AB
12.5 Functions
12.5.1 Detailed Diagram
Holding Output to
Tracking Field Device
Periodic Output AND
OR
AND
IN Input
Selection ECB Good
SET
FBM
MA AND Readback AND
Holding
OR Timer
Tracking
Expired
Reinitialize
IN.ACK
INITCO Up to INITI
PRIBLK Cascade
Open Cascade Processing BKCO
FBM Readback Up to
BKCO.Status BCALCI
PRITIM
CP270 Only:
315
B0193AX – Rev AB 12. BOUT – Binary Output Block
The PARENT parameter of the ECB201 specifies the associated FBM ECB hosting the field
device.
IOM_ID may also directly specify the parent FBM ECB to connect to a parameter resident in the
FBM itself.
316
12. BOUT – Binary Output Block B0193AX – Rev AB
If PRITIM = 0, the detail display shows “W48 – INVALID BLOCK OPTION” with
ERCODE = 48.
If the FBM parsing algorithm finds that PNT_NO is invalid, the detail display shows
“W65 – INVALID POINT ADDRESS” with ERCODE = 65.
If there is a duplicate connection to any point, the detail display shows “W66 –
DUPLICATE CONNECTION” with ERCODE = 66.
If there is no available memory in the FBM, or if the maximum number of connec-
tions have been allocated in the FBM, the detail display shows “W67 –
INSUFFICIENT FBM MEMORY/CONNECTIONS” with ERCODE = 67.
If the device connection is invalid, the detail display shows “W68 – INVALID
DEVICE CONNECTION” with ERCODE = 68.
If the point connection is invalid, the detail display shows “W69 – INVALID POINT
CONNECTION” with ERCODE = 69.
In the following case, the block remains defined:
If the connection is not yet resolved, the detail display shows “W62 – UNRE-
SOLVED CONNECTION” with ERCODE = 62.
If INI_PT is used, the tests described by the first six bullets above are repeated, but for INI_PT
rather than PNT_NO. The failure of any of these tests also causes the block to be set undefined.
317
B0193AX – Rev AB 12. BOUT – Binary Output Block
The connection status information indicates that the connection is not yet resolved.
The detail display shows “W62 – UNRESOLVED CONNECTION”, with
ERCODE = 62.
An ECB201 is specified and the ECB device status indicates that the DCI connection
is unresolved.
The status of COUT is set to Bad if:
The device ECB status indicates that the field device has failed, or
The DCI connection status information indicates a bad value regarding the field
device parameter.
The status of COUT is set to Error if the status information indicates an uncertain or question-
able value of the field device parameter.
The status of COUT is set to Fail-safe if the status information indicates that the addressed device
parameter is in fail-safe.
If COUT is not Bad or Out-of Service, the value of the readback becomes the new value of
COUT. Otherwise, the previous last good value of COUT is retained.
With I/A Series system software V8.4 and later, the BOUT block on an FCP270 or ZCP270
switches to Manual mode when COUT is set Bad, if MBADOP =1. The block remains in Auto is
MADBOP = 0.This option is not supported on any other control processors.
318
12. BOUT – Binary Output Block B0193AX – Rev AB
MANFS (CP270 Only) – When set to true (MANFS=1), this parameter forces the
block to Manual mode when fail-safe is asserted.
The FSOPTN conditions are:
Assert fail-safe when there is an input error at IN, as defined by EROPT (Bit 0)
Assert fail-safe when the block parameter SETFS has been set True (Bit 1)
Assert fail-safe, using the FSCOUT value, when communications between the I/A
Series control station and the FBM is lost (Bit 2). The block does not perform this
option; it is carried out by the FBM software. This option will be enabled only if fail-
safe is enabled at the FBM level via the FSENAB parameter in ECB200 or ECB202.
Set the output BAD status if Input/Measurement Error (Bit 3). The block does not
perform this option; it is carried out by the FBM software.
Set the output BAD status if SETFS is set (Bit 4). The block does not perform this
option; it is carried out by the FBM software.
Set the output BAD status if CP_FBM communications failure (Bit 5). The block
does not perform this option; it is carried out by the FBM software. This option will
be enabled only if fail-safe is enabled at the FBM level via the FSENAB parameter in
ECB200 or ECB202.
FSOPTN is a bit map, thereby allowing combinations of conditions for fail-safe to be specified.
If any of the FSOPTN conditions exists, and COUT is not Bad or Out-of-Service, the fail-safe
value is sent to the FBM when the BOUT block is shut down. This happens when turning off the
compound containing the BOUT block and when deleting the BOUT block or the compound
containing the BOUT block from the CP database. The actions taken by the FBM (for example,
whether or not the FBM sends the fail-safe value to the field device) are unique to the particular
FBM subsystem. Refer to the subsystem user guide for descriptions on how fail-safe functionality
is implemented for specific FBM types.
In addition, the FSCOUT value is sent to the field device via the FBM when the CP is rebooted.
This action is independent of the FSOPTN configuration.
With I/A Series system software V8.4 and later, the BOUT block on an FCP270 or ZCP270
switches to Manual mode when fail-safe is asserted, if MANFS =1. The block remains in Auto is
MANFS = 0. This option is not supported on any other control processors.
NOTE
For a FOUNDATION fieldbus (FF) connection, a 4-byte ms since midnight time-
stamp is provided by the FF FBM and stored in the TSTAMP parameter.
319
B0193AX – Rev AB 12. BOUT – Binary Output Block
320
12. BOUT – Binary Output Block B0193AX – Rev AB
12.5.16 Initialization
The BOUT block initializes whenever the block is restarted, there is a bad-to-good transition of
the status of COUT, or there is a true-to-false transition in the status of INI_PT (see
Section 12.5.15).
Initialization action consists of setting the read-back value from the output point into IN, SET,
COUT, and COUT_request. The cascade is then opened to force an upstream initialization. See
Section 12.5.17. A block output is sent to the output point at this time.
If the block is in Auto mode, and there has been a bad-to-good transition in the status of IN, the
read-back value is set into IN, and the cascade is opened as above. The definition of Bad for the
status of IN depends on EROPT.
321
B0193AX – Rev AB 12. BOUT – Binary Output Block
The upstream block (the block connected to IN) is then commanded to run immediately. This
feature sets a Run flag in the header of the upstream block, causing the compound processor to
execute this block on the next BPC without regard to its period and phase.
If there is no support for cascade processing in the upstream block, configure PRIBLK = 0. In this
case, the cascade is held open for one cycle, after which the Hold is released. If closure of the cas-
cade is to occur after a specific timeout, configure PRIBLK = 1. In this case, PRITIM must be
configured with a nonzero value. The cascade is closed again after the PRITIM delay has expired.
(The BOUT block does not support the closed-loop ACK option for cascade closure. If PRIBLK
is True and PRITIM = 0, the block fails validation.)
322
12. BOUT – Binary Output Block B0193AX – Rev AB
When UNACK is cleared, an Alarm Acknowledge message is generated and sent to all devices in
the bad alarm group.
Alarm Inhibiting/Disabling are supported using a combination of the compound CINHIB
parameter and the INHOPT and INHIB parameters in the BOUT block, to allow the bad alarm
messages to be inhibited and/or the alarm detection to disabled dynamically.
When the Bad alarm is inhibited or disabled, an appropriate Alarm Disable message is generated
and sent to all devices in the respective alarm group. If the Alarm is unacknowledged, an Alarm
Acknowledge message is also sent to these devices., and the ALMSTA.INHIB bit is set.
When the Bad alarm is uninhibited or enabled, an appropriate Alarm Enable message is generated
and sent to all devices in the respective alarm group. If all alarms are uninhibited, the ALM-
STA.INHIB bit also is cleared.
The Alarm Message Regeneration Time Interval (AMRTIN) parameter specifies the rate at which
alarm messages are generated for alarm conditions that have not been cleared. The interval is spec-
ified in seconds. The configured interval is rounded up to the closest value that is an even multi-
ple of the station BPC. A value of 0 disables alarm message regeneration. Parameters NASDB and
NASOPT provide control of nuisance alarms by applying a delay (set in NASDB) to return-to-
normal condition (NASOPT = 0) or to alarm detection (NASOPT=1).
Refer to CP270 Integrated Control Software Concepts (B0700AG) additional information on alarm
generation and management.
323
B0193AX – Rev AB 12. BOUT – Binary Output Block
324
13. BOUTR – Redundant Binary
Output Block
This chapter covers the Redundant Binary Output (BOUTR) block’s basic operations, features,
parameters, and functions, fail-safe operations, and manual mode.
NOTE
CP270 Only indicates BOUTR features supported only on the Field Control
Processor 270 (FCP270) and Z-form Control Processor 270 (ZCP270) with
I/A Series system software V8.4 or later.
NOTE
The BOUTR block is currently only qualified for use with DCS FBMs for
Migration to Moore APACS™+ systems. For more information on these DCS
FBMs, refer to the DCS Fieldbus Modules for Migration of Moore APACS+ Systems
User’s Guide (B0700BK).
13.1 Overview
The Redundant Binary Output (BOUTR) block is a Distributed Control Interface (DCI) block.
(DCI blocks support connectivity of I/A Series control stations to various bus resident devices via
a general purpose interface.) BOUTR provides the control strategy with output capability for a
single digital output point directed to up to three external field devices. The BOUTR block also
continuously reports to the I/A Series system any changes made by the FBMs to the field device
value at these addresses.
325
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block
Device and
Address
ARBOPT
Identifiers
ECBOPT
Cascade To Upstream
Processing Block
Inputs
from A Requested
I/A Series Write Output to
Points Redundant
Manual Input ECBs
M
Contact
Output
Up to 3
Point Readback Readback
Readback
Selection Processing
Values (Confirmed
Output)
ECB Fail-safe
Processing Fail-safe
Fail-safe
Fail-safe
Options
Figure 13-1. BOUTR Block Diagram
Output from BOUTR is change driven when you configure parameter Secondary Timer
(SECTIM) as 0.0. The block only writes to the device when a change occurs in the value of IN
(Auto) or SET (Manual). If SECTIM is nonzero, an output is also forced when no change-driven
output has occurred for SECTIM seconds.
The “confirmed” structure of the block output Contact Output (COUT) allows the value sent to
the field device address to be entered into the “request component” of COUT and allows the
value read back from the FBM to be reflected in the “confirmed component”. The value of
COUT as shown in displays, and as made available for connection to the control strategy, is
always the confirmed component. This is the value which has been written successfully to the
field device. The value that is sent to the field device as the request component of COUT is dis-
played at parameter Output Request (COUTQ) to aid in diagnostic testing. Signals that are read
back from the field devices are stored as connectable output parameters, CRBK_1, CRBK_2, and
CRBK_3.
A change timer mechanism is used to keep the I/A Series end synchronized with the device end. If
a new I/A Series value is not accepted by the device within a pre-determined time, the I/A Series
control station re-initializes its inputs and its output value. The output value is retained for future
comparison against readback values, but is not sent to the field device at this time.
The block uses the parameters Initialization Output (INITCO) and Back Calculated Contact
Out (BKCO) to alert upstream blocks to various abnormal situations, and for cascade handling.
326
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB
To force the I/A Series control station to Track during initialization procedures within the external
device, a specific signal intended for this purpose is made available to the BOUTR block at a con-
figured Initialization Point Number (INI_PT) within the external device.
With I/A Series system software V8.4 and later, the BOUTR block provides Bad I/O alarm detec-
tion and reporting on the FCP270 and ZCP270. The BOUTR block does not provide alarming
on other control processors. If alarms are desired, a separate CIN block can be used with a con-
nection to the COUT parameter of the BOUTR block.
13.3 Features
The BOUTR block provides the following features:
Drives up to three redundant binary signals to field devices
Confirms one, two, or three binary values from associated external field devices, and
arbitrates between these redundant points
Manual mode availability for disconnecting the process from the control scheme, for
simulation and checkout purposes
Separate block inputs for use in Auto and Manual
Specification of external device destination points as device-specific strings
Simulation mode to permit block configuration without ECB/DCI connections
Output written to devices only when output value changes
Optional periodic outputs added to change-driven outputs
Output values that are displayed as readback values
Change timer that assures initialization to external device value
Fail-safe support
Specific point reserved for tracking notification from external device
“Open cascade” notification to upstream blocks.
Bad I/O alarm detection and reporting (CP270 Only)
Option to have the block switch to manual when input or readback status is Bad
(CP270 Only)
Option to have the block switch to manual when fail-safe is asserted (CP270 Only).
327
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block
13.4 Parameters
Table 13-1. BOUTR Block Parameters
328
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB
329
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block
ALMOPT Alarm Options contain packed long values representing the alarm types
CP270 Only that have been configured as options in the block, and the alarm groups
that are in use. Table 13-2 shows how the parameter is used by the
BOUTR block.
Bit Number1
(0 to 31) Configured Alarm Option, When True
0 (lsb) Alarm Group 8 in Use
1 Alarm Group 7 in Use
2 Alarm Group 6 in Use
3 Alarm Group 5 in Use
4 Alarm Group 4 in Use
5 Alarm Group 3 in Use
6 Alarm Group 2 in Use
7 Alarm Group 1 in Use
22 Bad I/O Alarm Configured
1. Bit 0 is the least significant, low order bit.
ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
CP270 Only states. Table 13-3 shows the bits used by the BOUTR block.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
B4
B5
B6
B7
B8
B9
CRIT PRTYPE
BAD
INH
Bit Boolean
Number Description, Connection
(0 to 31)* Name When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type ---
5 to 7 CRIT_MSK Criticality: 1 (highest priority) to 5 ---
22 BAD Bad I/O Alarm ALMSTA.B10
29 INH Inhibit Alarm. This bit is set when any of ALMSTA.B3
the block’s alarms is inhibited
30 UNAK Unacknowledged ALMSTA.B2
*Bit 0 is the least significant, low order bit.
330
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB
AMRTIN Alarm Message Regeneration Time Interval specifies the rate at which
CP270 Only alarm messages are generated for alarm conditions that have not been
cleared. The interval is specified in seconds. The configured interval is
rounded up to the closest value that is an even multiple of the station
BPC. A value of 0 disables alarm message regeneration.
AUTSW Auto Switch, when true, forces the block mode into Auto mode. It is of
higher priority than configured, set, or linked values in MA, or the value
of INITMA. It is of lower priority than MANSW, however. If both
MANSW and AUTSW are true, the block mode is forced to Manual.
BAP Bad Alarm Priority is a configurable integer input used to specify the
CP270 Only Alarm Priority to be assigned to Bad Alarms in the block. BADPRI is
settable if unlinked. The range is 1 (highest) to 5 (default).
BKCO Back Calculated Contact Output is set equal to the confirmed component
of COUT while the cascade is initializing. Since its purpose is to provide
the upstream block with a back-calculated value, you should connect
BKCO to the BCALCI parameter of that block.
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the BOUTR block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
FBM3 B22
FBM2 B23
FBM1 B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
DCIX B9
MAO
HLD
TRK
MA
ON
FS
331
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block
CO1_PT Primary Point Number identifies the address in the primary external
device’s memory (or data stream) to which the block output is directed.
This parameter’s syntax depends on the made and model of the external
device.
CO2_PT Secondary Point Number identifies the address in the secondary external
device’s memory (or data stream) to which the block output is directed.
This parameter’s syntax depends on the made and model of the external
device.
CO3_PT Tertiary Point Number identifies the address in the secondary external
device’s memory (or data stream) to which the block output is directed.
This parameter’s syntax depends on the made and model of the external
device.
COUT Contact Output is the value sent from the block to the connected field
devices at points CO1_PT, CO2_PT, and/or CO3_PT. The displayed
value of COUT is always the confirmed component after the arbitration
algorithm selects one of the readback values.
COUTQ Output Request displays the value of the request component of the block
output for diagnostic purposes. It is not configurable.
CRBK_1 The primary boolean readback value is the confirmed value that has been
written successfully to the primary field device at address CO1_PT.
CRBK_2 The secondary boolean readback value is the confirmed value that has
been written successfully to the secondary field device at address
CO2_PT.
332
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB
CRBK_3 The tertiary boolean readback value is the confirmed value that has been
written successfully to the tertiary field device at address CO3_PT.
CRIT Criticality is an integer output that indicates the priority of the block’s
CP270 Only highest currently active alarm. The range is 1 (highest priority) to 5. An
output of 0 indicates the absence of alarms.
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. (See ERCODE for the list of all possible validation errors in this
block.) In that case, no further processing of the block occurs, including
further validation of remaining parameters. To return DEFINE to a true
value, correct all configuration errors and reinstall the block. If DEFINE =
0, the bit BLKSTA.UDEF = 1.
DEVID1 Primary Device Identifier is a character array that specifies the 6-character
identifier of the first connected device. It is copied from the DEV_ID
configured in the ECB specified by IOMID1.
DEVID2 Secondary Device Identifier is a character array that specifies the 6-charac-
ter identifier of the second connected device. It is copied from the
DEV_ID configured in the ECB specified by IOMID2. If ECBOPT= 0,
DEVID2 is ignored.
DEVID3 Tertiary Device Identifier is a character array that specifies the 6-character
identifier of the third connected device. It is copied from the DEV_ID
configured in the ECB specified by IOMID3. If ECBOPT= 0, DEVID3
is ignored.
ERCODE Error Code is a string data store that indicates the type of configuration
error that caused the block’s DEFINE parameter to be set false, unless
indicated otherwise (see meanings below). Validation of configuration
errors does not proceed past the first error encountered by the block logic.
333
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block
For the BOUTR block, the following list specifies the possible values of
ERCODE and the significance of each value in this block.
EROPT Error Option is a short integer option that determines the conditions
under which IN is considered to have bad status. It is used in determining
whether there has been a bad-to-good transition of IN.
If EROPT = 1, IN is considered Bad if its status word indicates Bad, Out-
of-Service, or Not On Scan. (If it is Not On Scan, then the source of the
connection has been deleted or is in a nonexistent compound, or there has
been a peer-to-peer failure.)
If EROPT = 2, IN is considered Bad in any of the above situations, and
when the Error bit in the status of IN is True.
FSCOUT Fail-safe Contact Output is the fail-safe value sent to the external device(s)
when any condition specified in FSOPTN exists. This parameter causes
the field devices to assert fail-safe. The FSCOUT value is also used to set
the initial output value when the BOUTR block is installed or when the
control processor is rebooted.
334
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB
INHIB Inhibit is a configurable, connectable and settable boolean that, when set,
CP270 Only suppresses all alarm message reporting. INHIB affects only alarm message
reporting; the alarm handling and detection functions are determined by
the INHOPT setting.
INHOPT Inhibit Option specifies the following actions applying to all block alarms:
CP270 Only 0 = When an alarm is inhibited, disables alarm messages but does
not disable alarm detection.
1 = When an alarm is inhibited, disables both alarm messages and
alarm detection. If an alarm condition exists at the time the alarm
transitions into the inhibited state, the alarm indicator is cleared.
2 = Same as 0 for inhibited alarms. For uninhibited alarms,
automatically acknowledges “return-to-normal” messages.
“Into alarm” messages can be acknowledged by explicitly setting
UNACK False.
3 = Same as 1 for inhibited alarms. For uninhibited alarms,
automatically acknowledges “return-to-normal” messages.
“Into alarm” messages can be acknowledged by explicitly setting
UNACK False.
INHSTA Inhibit Status contains packed long values that represent the current
CP270 Only inhibit status of each alarm type configured in the block. Table 13-4
shows how the parameter is used with the AI block.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BAD B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
335
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block
Bit Boolean
Number* Description, Connection
(0 to 31) Name When True (B32 to B1)
22 BAD Bad I/O Alarm Inhibited INHSTA.B10
*Bit 0 is the least significant, low order bit.
INITMA Initialize Manual/Auto specifies the desired state of the MA input under
certain initialization conditions, namely:
The block has just been installed into the I/A Series control station
database.
The I/A Series control station is rebooted.
The compound in which the block resides is turned on.
The INITMA parameter is modified via the Integrated Control
Configurator.
INITMA is ignored if MA has an established linkage.
When INITMA is asserted, the value set into MA is:
0 (Manual) if INITMA = 0
1 (Auto) if INITMA = 1
The MA value from the checkpoint file if INITMA = 2.
INI_PT Initialize Address is a configurable string that specifies the point address of
an optional Boolean input connection in the BOUTR block. If INI_PT is
used, the block output tracks the readback value when this input Boolean
value is set. On a transition of this input value to zero, if PRIBLK is used,
the I/A Series cascade is initialized.
IOMID1 Primary ECB Identifier is a configurable string that specifies the path-
name of the ECB201 for the primary device, for the purpose of connect-
ing to (accessing) a field parameter that resides in the primary field device
hosted by a (parent) FBM ECB.
IOMID1 has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOMID1 configuration. In this case, the 1-12
character ECB block name is sufficient.
336
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB
IOMID2 Secondary ECB Identifier is a configurable string that specifies the path-
name of the ECB201 for the secondary device, for the purpose of connect-
ing to (accessing) a field parameter that resides in the secondary field
device hosted by a (parent) FBM ECB.
IOMID2 must be configured when dual or triple redundancy is specified.
For other details, see IOMID1 above.
IOMID3 Tertiary ECB Identifier is a configurable string that specifies the pathname
of the ECB201 for the tertiary device, for the purpose of connecting to
(accessing) a field parameter that resides in the tertiary field device hosted
by a (parent) FBM ECB.
IOMID3 must be configured when triple redundancy is specified. For
other details, see IOMID1 above.
LOCKID Lock Identifier is a string identifying the workstation that has exclusive
write access to the block. LOCKID arbitrates write access to the block
parameters by operator workstations on the network. Set requests to any
of the block’s parameters are honored only if the identifier of the worksta-
tion requesting the changes matches the identifier set in LOCKID.
The lock request message sets LOCKRQ to true and sets LOCKID to the
identifier of the requesting workstation. The corresponding lock release
message sets LOCKRQ to false and LOCKID to null.
LOCKID has the format Letterbug:DeviceName, where Letterbug is the
6-character letterbug of the workstation and DeviceName is the 1 to 6
character logical device name of the Display Manager task.
LOCKRQ Lock Request is a boolean value that is set true or false by a toggling the
LOCK U/L key on the Block Detail Display. An operator at any worksta-
tion can lock and unlock the block using the LOCK U/L key.
The lock request message sets LOCKRQ to true, sets LOCKID to the
identifier of the requesting workstation, and sets the WLCK bit in the
BLKSTA parameter. Thereafter, set requests to any of the block’s parame-
ters are honored (subject to the usual access rules) only if the requesting
workstation’s identifier matches the contents of LOCKID.
The corresponding lock release message sets LOCKRQ to false, sets
LOCKID to null, and resets the WLCK bit.
337
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block
MANFS Manual if Fail-safe allows recovery from FBM fail-safe at the block in
CP270 Only which MANFS is set. If MANFS = 1, the output state is forced to manual
mode when the block detects the FBM being in fail-safe. The option only
takes effect if MA is unlinked. MANFS takes precedence over AUTSW
and INITMA.
Fail-safe in the block is cleared as soon as the output is changed.
For cascade operations, it is recommended that MANFS be enabled in
only one block.
MANSW Manual Switch, when true, forces the block into Manual mode. It is of
higher priority than any other method of establishing the value MA, since
it overrides configured, set, or linked values. MANSW is also of higher
priority than AUTSW or INITMA.
MBADOP Manual if Bad Option is manual override feature which, when set TRUE,
CP270 Only causes the block to go into Manual mode if the output value status is BAD
or IN value status is BAD.
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For CP stations, PERIOD values range
from 0 to 10, and 13, and map to the time lengths shown in the following
table. For Gateways and Integrators, PERIOD values range from 0 to 12
and map to the time lengths specified in the device specific user’s guide.
* If the BPC is 0.2 second, this period is treated internally as 0.6 second, but
the PERIOD parameter remains 1.
338
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB
** If the BPC is 2.0 seconds, this period is treated internally as 6.0 seconds, but
the PERIOD parameter remains 10.
*** Not available for CP stations.
****Available in CP40, CP40B, CP60 and later control processors.
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 seconds) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the
I/A Series station is 0.5 second. Refer to the appropriate Integrated Control
Software Concepts document (B0700AG or B0193AW).
PRIBLK Primary Block indicates whether the BOUTR block has a connection
from an upstream block (PRIBLK = 1) or not (PRIBLK = 0). Its value,
together with that of PRITIM, determines whether the BOUTR block
remains in Hold for a fixed time delay, or ends the Hold after one cycle.
Note that if PRIBLK is set true, PRITIM must be set to a non-zero value;
otherwise, the BOUTR block fails validation.
Use PRIBLK in a cascade situation when the source of the block's input
connection needs to be initialized.
Refer to “PRIBLK and PRITIM Functionality” on page 348 for more
information on this parameter.
PRITIM Primary Cascade Timer is a configurable parameter used to delay the clos-
ing of the cascade to a primary block, when the output is initialized in the
BOUTR block. It is used only if the PRIBLK option is set. Note that if
PRIBLK is set true, PRITIM must be set to a non-zero value; otherwise,
the BOUTR block fails validation.
Refer to “PRIBLK and PRITIM Functionality” on page 348 for more
information on this parameter.
PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
CP270 Only of the highest priority active alarm. For the BOUTR block:
0 = No alarm
8 = Bad I/O alarm.
339
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block
SELECT Selection Indicator shows which redundant readback value has been cho-
sen by the arbitration algorithm:
0 = none of the input values is selected, SELOPT is used.
1 = primary readback value CRBK_1 is selected
2 = secondary readback value CRBK_2 is selected
3 = tertiary readback value CRBK_3 is selected.
SELOPT Selection Option is a configurable option that specifies the criteria for
selecting a readback value in the BOUTR block when the arbitration algo-
rithm cannot resolve the choice. For the BOUTR block:
0 = COUT_readback retains its previous value
1 = COUT_readback is set false
2 = COUT_readback is set true.
SET Set is the value normally passed to COUT, on a change-driven basis, when
the block is in Manual mode. Readback changes and change timer action
can override the value specified by SET.
TSTAMP The Time Stamp parameter of the block is updated every time there is a
change in the COUT value (that is, if COUT differs from the current
readback value). TSTAMP, which is expressed in units of milliseconds past
midnight, is read from the FBM, when it is available there; otherwise, it is
computed by the control station. TSTAMP is not updated when SELECT
= 0; it is left at its last good value.
TYPE When you enter BOUTR or select it from a configurator list, an identify-
ing integer is created specifying this block type. For this block, the value of
TYPE is 111.
UNACK Unacknowledged is a Boolean output parameter that is set True for notifi-
CP270 Only cation purposes whenever the block goes into alarm. It is settable, but sets
are only allowed to clear UNACK to False, and never in the
opposite direction. UNACK is cleared by an operator “acknowledge”
pick on a default display, a user display, or the alarms display.
340
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB
FBM228 to read the device function block View 1, View 2 and View 4
parameters. The range is 0 to 2147483647 milliseconds; the default is
10000.
VALSTS Value Status is an output parameter of any DCI block that contains the
value status of a FOUNDATION fieldbus function block parameter value or
PROFIBUS-PA parameter provided by a DCI connection to a field
device. For other fieldbus types, VALSTS is meaningless.
Bits 0-1: Limits:
0 = Not limited
1 = High limited
2 = Low limited
3 = High and Low limited
Bits 2-5: Substatus (definition depends on Quality)
Bits 6-7: Quality:
0 = Bad
1 = Uncertain
2-3 = Good
Note: Bit 0 is the least significant, low order bit.
Each time the BOUTR block is executed, VALSTS reports the status of
the FF or PROFIBUS-PA value from the information in the DCI connec-
tion.
341
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block
13.5 Functions
13.5.1 Detailed Diagram
ARBOPT Output to
ECBOPT Up to Three
Field Devices
0 IOMID1
CRBK_1
CO1_PT
IOMID2 Read
CO2_PT Back CRBK_2
SECTIM
AND Holding IOMID3
Tracking CO3_PT CRBK_3
AND COUT
OR (Confirmed)
1
A AND COUT
IN (Simulated)
ECB SIMOPT
SET Good
M
Holding AND FBM
MA OR Readback
Tracking AND
SELOPT
CRBK_1 Timer
Arbitration SELECT
CRBK_2 Expired
CRBK_3 Algorithm Reinitialize
Clear Timer Change
Simulated
Value Timer
SIMOPT
RBKTIM
PRIBLK
INITCO Up to INITI
Open Cascade Cascade
Processing BKCO Up to
Readback
PRITIM BKCO.Status BCALCI
342
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB
The PARENT parameter of each ECB201 specifies the associated FBM ECB hosting the field
device.
The IOMIDx can also directly specify parent FBM ECBs to output to parameter resident in the
FBMs themselves.
In addition to the output point DCI connections, one additional DCI connection is established
whenever the initialization input point INI_PT has been configured with a non-null value. This
connection is always to the ECB used by the first of the output points (CO1_PT).
These parameter connections are made by the FBM on a client/server basis at the frequency spec-
ified in the UPDPER parameter. The parameter can be set from 0 to 2147483647 milliseconds;
the default is 10000 (10 seconds). Increasing the frequency of the client/server communication
can significantly add to the load on the H1 segment.
The DCI connections are deleted (that is, the linkages are removed from the linked lists for the
ECB) when the BOUTR block is deleted.
343
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block
The formats of the COx_PT and INI_PT parameters are device specific. When the PIO mainte-
nance task runs after the DCI connections have been made (see Section 13.5.3), the COx_PT
and INI_PT strings that are used by the block are passed to the FBM for parsing and validation.
(In DCI blocks, point identification strings are not parsed by the I/A Series control station.)
If the first character of either CO1_PT or CO2_PT is blank, the COx_PT string is not sent to
the FBM, and the block is set undefined with ERCODE = 52. Similarly, if the first character of
any used CO3_PT or INI_PT is blank, the associated string is not sent to the FBM, and the
block is set undefined with ERCODE = 52. The detail display shows “W52 – INVALID I/O
CHANNEL/GROUP NUMBER”.
In each of the following cases, the block is also set undefined:
If the FBM parsing algorithm finds that CO1_PT is invalid, the detail display shows
“W65 – INVALID POINT ADDRESS” with ERCODE = 65.
If there is a duplicate connection to any point, the detail display shows “W66 –
DUPLICATE CONNECTION” with ERCODE = 66.
If there is no available memory in the FBM, or if the maximum number of connec-
tions have been allocated in the FBM, the detail display shows “W67 –
INSUFFICIENT FBM MEMORY/CONNECTIONS” with ERCODE = 67.
If the device connection is invalid, the detail display shows “W68 – INVALID
DEVICE CONNECTION” with ERCODE = 68.
If the point connection is invalid, the detail display shows “W69 – INVALID POINT
CONNECTION” with ERCODE = 69.
In the following case, the block remains defined:
If the connection is not yet resolved, the detail display shows “W62 – UNRE-
SOLVED CONNECTION” with ERCODE = 62.
If INI_PT is used, the tests described by the first six bullets above are repeated, but for INI_PT
rather than COx_PT. The failure of any of these tests also causes the block to be set undefined.
344
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB
345
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block
When the Select column reads “Use SELOPT”, the arbitration process cannot select a readback.
The configured parameter SELOPT then determines the value of COUT_readback as follows:
If SELOPT = 0, COUT_readback retains its previous value.
If SELOPT = 1, COUT_readback is set false.
If SELOPT = 2, COUT_readback is set true.
Output parameter SELECT shows which redundant CRBK_x has been selected:
If CRBK_1 is selected, SELECT = 1
If CRBK_2 is selected, SELECT = 2
If CRBK_3 is selected, SELECT = 3
Otherwise, if SELOPT is used, SELECT = 0
346
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB
When MBADOP=1, the block switches to manual mode when either the output
value status is BAD or the status of the IN value is Bad.
These options are not supported on other control processors.
347
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block
When a condition for fail-safe has been met in this cycle (described in Section 13.5.9),
but was not met in the previous cycle (start of a fail-safe period)
When a condition for fail-safe was present in the previous cycle but not in this cycle
(end of fail-safe period)
When the connection status indicates that an initialization request (IR) exists this
cycle, but did not on the previous cycle (“start of an IR period”)
When the connection status indicates that an initialization request does not exist this
cycle, but did on the previous cycle (“end of an IR period”)
When the block is in Auto mode, and the value of IN has changed in this cycle
When the block is in Manual mode, and the value of SET has been changed in this
cycle
When this is an initialization cycle as defined in Section 13.5.17, including bad-to-
good transitions of IN when in Auto.
348
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB
The timer is initialized to the configured value of RBKTIM (in seconds) each time a value is sent
to the redundant outputs. In each cycle thereafter, as long as there is no new output sent, the
timer is decremented and tested for expiration.
If the change timer expires, the current read-back value (as arbitrated) is compared against the
value of COUT_request. If they differ, it is assumed that the output device should not change as
a result of the I/A Series system change (that is, that the most recent I/A Series system value sent
was rejected). The value of the readback from the FBM is then set into SET, IN (if it is unlinked),
and COUT_request to establish the new baseline for input change-detection.
If the change timer has not expired, the readback value is compared against its previous value on
any cycle in which there is no new output. If they differ and the new readback is not the same as
the current value of COUT_request, the new readback is set into SET, IN (if it is unlinked), and
COUT_request.
13.5.17 Initialization
The BOUTR block initializes whenever the block is restarted, there is a bad-to-good transition of
the status of COUT, or there is a true-to-false transition in the status of INI_PT (see
Section 13.5.16).
Initialization action consists of setting the readback value from the selected redundant output
point into IN, SET, and COUT_request. The cascade is then opened to force an upstream initial-
ization. See Section 13.5.18. A block output is sent to the redundant outputs at this time.
If the block is in Auto mode, and there has been a bad-to-good transition in the status of IN, the
same actions are taken, except for the initialization of SET. The definition of Bad for the status of
IN depends on EROPT.
349
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block
in that block), is turned on. The status of BKCO, which should be connected to the BCALCI
input of the block immediately upstream, is set to indicate “open cascade.”
The current readback value is set into the value of BKCO, and the BOUTR block then goes into
a Hold (see Section 13.5.19), thereby disallowing any output changes.
The upstream block (the block connected to IN) is then commanded to run immediately. This
feature sets a Run flag in the header of the upstream block, causing the compound processor to
execute this block on the next BPC without regard to its period and phase.
If there is no support for cascade processing in the upstream block, configure PRIBLK = 0. In this
case, the cascade is held open for one cycle, after which the Hold is released. If closure of the cas-
cade is to occur after a specific timeout, configure PRIBLK = 1. In this case, PRITIM must be
configured with a nonzero value. The cascade is closed again after the PRITIM delay has expired.
(The BOUTR block does not support the closed-loop ACK option for cascade closure. If
PRIBLK is True and PRITIM = 0, the block fails validation.)
350
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB
351
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block
The BOUTR block also supports alarm reprioritization and regeneration. Refer to the appropri-
ate Integrated Control Software Concepts document (B0700AG or B0193AW) for detailed infor-
mation on inhibiting, disabling, reprioritizing, and regenerating alarms.
352
14. CALC – Calculator Block
This chapter covers the Calculator, or CALC, block, its features, parameters and detailed
operations.
14.1 Overview
The Calculator (CALC) block provides both logical functions and arithmetic and boolean com-
putational capability within one integrated environment. This block lets you satisfy specialized
control needs that cannot be met efficiently with either the standard block set offering or the
sequence control blocks.
Use the Integrated Control Configurator to configure the CALC block. The configuration pro-
cess allows you to specify the system path for all desired input connections and constant data val-
ues, and to program the block by entering a series of programming steps. Each program step is
represented by a parameter string of up to 10 characters.
The CALC block inputs and outputs are shown in Figure 14-1.
The differences between the CALC, CALCA, MATH, and LOGIC blocks are summarized in
Table 14-1.
353
B0193AX – Rev AB 14. CALC – Calculator Block
14.3 Features
Operates with the standard block set, within the same compound processor
environment.
Provides tight synchronization with the real-time execution of the standard blocks.
Provides 8 real inputs, 2 long integer inputs, 2 integer inputs, 16 boolean inputs,
4 real outputs, 2 long integer outputs, 8 boolean outputs, and 6 integer outputs.
Provides 24 memory data storage registers that are preserved between execution cycles.
Provides 50 programming steps and supports a chaining capacity of up to 16 operands
before a function is performed or before the stack is cleared.
Allows arithmetic calculations to be conditionally executed, depending on arithmetic
or logic conditions detected under program control.
354
14. CALC – Calculator Block B0193AX – Rev AB
Provides a complete mix and interchangeability between the results of boolean and
real operations.
Provides system-level functions that let your algorithm read the status of any input
parameter for error detection and directly control the BAD status of any output
parameter. This capability lets your algorithm directly interface with the standard
block set.
Checks correctness of all programming steps following block installation and recon-
figuration, and undefines the block if an error is detected.
Provides the ability to detect run-time errors.
Supports the standard block-level manual/auto capability for all of its outputs.
Allows forward branching of program control. To keep you from creating endless
loops, backward branching is not allowed.
Supports range and engineering units for each real input/output parameter. When in
Auto, the block automatically clamps all real outputs at the specified output ranges.
Lets you initialize all timers and memory registers.
14.4 Parameters
Table 14-2. CALC Block Parameters
355
B0193AX – Rev AB 14. CALC – Calculator Block
BI01 to BI16 Boolean Inputs 1 through 16 are configurator entries that identify the
upstream boolean outputs coming to the boolean inputs of the block.
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate the block’s opera-
tional states. For the CALC block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
ON
MA
356
14. CALC – Calculator Block B0193AX – Rev AB
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
11 MA Manual(= false)/Auto(= true) BLKSTA.B21
14 UDEF Undefined BLKSTA.B18
15 ON Compound On BLKSTA.B17
20 WLCK Workstation Lock BLKSTA.B12
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. In that case, no further processing of the block occurs. To return
DEFINE to a true value, correct all configuration errors and re-install the
block.
DELTI1 to DELTI8
Change Delta for Input Ranges 1 through 8 are a real values that define
the minimum percent of the input range that triggers change driven con-
nections for parameters in the range of RI1 through RI8. The default
value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.
DELTO1 to DELTO4
Change Deltas for Output Ranges 1 through 4 are presently unused.
EI1 to EI8 Engineering Units for Input Ranges 1 through 8, as defined by the param-
eters HSCI1 to HSCI8, LSCI1 to LSCI8, and DELTI1 to DELTI8. EI1
to EI8 provide the engineering units text for the values defined by Input
Ranges 1 through 8. “Deg F” or “pH” are typical entries.
EO1 to EO4 Engineering Units for Output Ranges 1 through 4, as defined by the
parameters HSCO1 to HSCO4, LSCO1 to LSCO4, and DELTO1 to
357
B0193AX – Rev AB 14. CALC – Calculator Block
DELTO4. EO1, for example, provides the engineering units text for the
values defined by Output Range 1. “Deg F” or “pH” are typical entries.
Make the units for the Output Range (EO1) consistent with the units of
Input Range 1 (EI1) and Input Range 2 (EI2).
ERCODE Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the block’s
DEFINE parameter to be set false, but not the warning situations. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. The block detailed display shows the ERCODE
on the primary page, if it is not null. For the CALC block, the following
list specifies the possible values of ERCODE, and the significance of each
value in this block:
Message Value
“W43 – INVALID PERIOD/ PHASE does not exist for given block
PHASE COMBINATION” PERIOD, or block PERIOD not
compatible with compound
PERIOD.
“W45 – CONFIGURATION A parsing error has been detected in a
ERROR IN STEP nn” CALC block; nn identifies the step in
error.
“W46 – INVALID INPUT The source parameter specified in the
CONNECTION” input connection cannot be found in
the source block, or the source
parameter is not connectable, or an
invalid boolean extension connection
has been configured.
“W48 – INVALID BLOCK The configured value of a block
OPTION” option is illegal.
“W53 – INVALID A parameter value is not in the accept-
PARAMETER VALUE” able range.
“W58 – INSTALL ERROR; A Database Installer error has
DELETE/UNDELETE occurred.
BLOCK”
HSCI1 to HSCI8 High Scale for Input Ranges 1 through 8 are real values that define the
upper limit of the measurement ranges. EI1 to EI8 define the units. Make
the range and units consistent with the measurement source. A typical
value is 100 (percent).
HSCO1 to HSCO4
High Scale for Output Ranges 1 through 4 are real values that define the
upper limit of the ranges for outputs 1 through 4. A typical value is 100
(percent). EO1 to EO4 define the units. Make the range and units consis-
tent with those of the output destination.
358
14. CALC – Calculator Block B0193AX – Rev AB
II02 Integer Input 2 is the same as II01 except that II02 contains the 16 bits of
lesser significance. The bits of II02 are output to CIN_x, where x = the bit
number + 16 (that is, “II02” bit 1 is output at CIN_17, bit 2 at CIN_18,
and so on). II02 has the same connection properties as II01. In the case of
the MCIN block, II02 is a packed boolean long (32-bit) input.
INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state as specified in the checkpoint file.
The block asserts this initial M/A state whenever:
It is installed into the Control Processor database.
The Control Processor undergoes a reboot operation.
The compound in which it resides is turned on.
The INITMA parameter itself is modified via the control configu-
rator. (The block does not assert INITMA on ordinary
reconfiguration.)
INITMA is ignored if MA has an established linkage.
LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1-6 character logi-
cal device name of the Display Manager task.
LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
359
B0193AX – Rev AB 14. CALC – Calculator Block
LSCI1 to LSCI8 Low Scale for Input Ranges 1 through 8 are real values that define the
lower limit of the measurement ranges. A typical value is 0 (percent). EI1
to EI8 define the units. Make the range and units consistent with those of
the measurement source.
LSCO1 to LSCO4
Low Scale for Output Ranges 1 through 4 are real values that define the
lower limit of the ranges for Outputs 1 through 4. A typical value is 0
(percent). EO1 to EO4 define the units. Make the range and units consis-
tent with those of the output destination.
M01 to M24 Memory elements 1 through 24 are memory registers. These provide tem-
porary storage for the result of any operation in the up-to-50-step CALC
block program. The values you configure are initial values for M01 to
M20. The CALC block program can overwrite this value with an STM
command.
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
360
14. CALC – Calculator Block B0193AX – Rev AB
*If the BPC is 0.2 seconds, this period is treated internally as 0.6 seconds,
but the PERIOD parameter remains 1.
** If the BPC is 2.0 seconds, this period is treated internally as
6.0 seconds, but the PERIOD parameter remains 10.
*** If the BPC is 0.5 seconds this period is treated internally as
0.5 seconds, but the PERIOD parameter remains 11.
**** If the BPC is not 2.0 seconds, this period is treated internally as
5.0 seconds, but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.
PERROR Program Error is a coded integer output that indicates the type of instruc-
tion syntax error or program run-time error that occurred in the step spec-
ified by the STERR parameter.
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 seconds. Refer to the appropriate Integrated Control
Software Concepts document (B0700AG or B0193AW).
RI01 to RI08 Real Inputs 1 through 8 are real inputs. Your configurator entry identifies
the upstream output that is coming to the inputs of this block to be
included in the calculation.
RI1 to RI8 Range Input is an array of real values that specify the high and low engi-
neering scale and change delta of a particular real input. For a given block,
it also forms an association with a group of real input parameters that have
the same designated range and change delta.
361
B0193AX – Rev AB 14. CALC – Calculator Block
RO1 to RO4 Range Output is an array of real values that specify the high and low engi-
neering scale of a particular real output. For a given block, it also forms an
association with a group of real output parameters that have the same des-
ignated range.
STEP01 to STEP50
Steps 1 through 50 are string inputs of up to 8 characters. They are the 50
executable commands that make up the CALC block program.
STERR Step Error is an integer output that indicates which program step is exhib-
iting the error defined by PERROR.
TIMINI Timer Initialization option specifies whether an initial state change can be
generated by a DON, DOFF, FF, MRS, or OSP instruction in a block
when the block initializes.
0= Initial state change allowed for DOFF, DON, FF, MRS, and OSP.
1= Initial state change disallowed for DOFF, DON, and OSP.
Initial state change allowed for FF and MRS.
2= Initial state change disallowed for FF and MRS.
Initial state change allowed for DOFF, DON, and OSP.
3= Initial state change disallowed for DOFF, DON, FF, MRS, and
OSP.
TYPE When you enter “CALC” or select it from a configurator list, it creates an
identifying integer specifying this block type.
14.5 Functions
The CALC block provides 114 program instructions, consisting of the following general types:
32 Arithmetic instructions, which perform mathematical calculations.
13 Boolean instructions, which provide various boolean and packed boolean
operations.
27 Input/Output instructions, which perform the input or output of data or status
bits.
2 Cascade and Propagation instructions for error propagation and downstream cas-
cade acknowledgments.
10 Memory and Stack Reference instructions for reading and writing the memory reg-
isters, or directly manipulating the stack.
10 Program Control instructions for conditional and unconditional branching, and
program termination.
10 Clear/Set instructions, which provide for conditional or unconditional clearing or
setting of parameters, sometimes with simultaneous program control action.
6 Timing instructions which control the operation of program timers.
2 Logic instructions which emulate the operation of flip-flops.
362
14. CALC – Calculator Block B0193AX – Rev AB
3 Error Control instructions which provide access to the run-time error flag.
363
B0193AX – Rev AB 14. CALC – Calculator Block
364
14. CALC – Calculator Block B0193AX – Rev AB
365
B0193AX – Rev AB 14. CALC – Calculator Block
366
14. CALC – Calculator Block B0193AX – Rev AB
367
B0193AX – Rev AB 14. CALC – Calculator Block
The letter M followed by an integer between 01 and 24 (or 1 and 24) designates the specific regis-
ter to be accessed by a memory referencing instruction. Table 14-7 lists the memory and stack ref-
erence instructions.
368
14. CALC – Calculator Block B0193AX – Rev AB
369
B0193AX – Rev AB 14. CALC – Calculator Block
Accumulator
nn sec
OSP
Accumulator
nn sec nn sec
DON nn
Accumulator
nn sec nn sec
DOFF nn
The FF instruction emulates the function of a traditional set-reset flip-flop. If both the “set” input
and the “reset” input take on a logical one value, the previous state of the “Q” output is retained.
The MRS instruction provides the same functionality as the FF, except that the reset input has
priority over the set input. If both inputs take on a logical one value, the flip-flop is forced to
reset.
370
14. CALC – Calculator Block B0193AX – Rev AB
14.6 Instructions
14.6.1 Instruction Processing
14.6.1.1 Auto Mode
Each block processing cycle, the CALC block executes each programmed step in sequence, except
for those bypassed because of branch conditions. When the program has been executed a single
time, the block execution is complete, and control is passed to the next block in the compound
processor list.
Program execution is complete when an END or EXIT statement is reached in the program flow,
or Step 50 has been executed, whichever occurs first in time.
Between instructions, the block stores intermediate results on a 16-position internal stack. You
can use stack values as arguments to subsequent instructions. The stack is cleared at the start of
each block execution cycle. You can use the 24 internal memory registers (Mxx) to store data
between block execution cycles. These memory registers can be pre-configured to contain con-
stants needed by the various instructions, or they can be used to store instruction arguments
and/or results.
371
B0193AX – Rev AB 14. CALC – Calculator Block
17.29 OUTPUT
RO01 = 17.29
Part 1. Read
(M) MA
17.29 O
O OUTPUT
0.0 O
RO01
(A)
Part 2. Clear
Instructions which modify memory registers M01 to M24 continue to execute normally while in
Manual. For example, if your program ramps a value in M01, the ramping continues while in
Manual.
14.6.2.1 Rules
The following pseudo instructions show the generic instruction syntax:
operation; comment
operation number_of_stack_operands; comment
operation operand; comment
As noted in Section 14.2, the instruction string comprises the opcode, followed by a command
line argument. You may use leading blanks before the opcode of a program step and between the
opcode and the argument, and between the argument and any comment you include.
372
14. CALC – Calculator Block B0193AX – Rev AB
Blank steps can be inserted anywhere in a CALC block program prior to the END statement.
This makes it easier to make minor modifications in the block program without reconfiguring
each step in the program. When a blank step is found in the program, the block logic skips to the
next step without taking any action.
14.6.2.2 Constants
Some instructions allow a constant value as a command line argument. The instruction defini-
tions of Section 14.6.5 use different letters to represent this constant, depending on the semantic
meaning of the constant, as follows:
s = step number
t = time constant
b = bit number
c = count of the number of stack values involved
n = arithmetic operand
In all cases, the constant is expected to be an integer. If you enter a non-integer value for the con-
stant, it is automatically truncated to an integer before it is used. There is no warning message
when this truncation occurs. Certain instructions permit a zero or negative integer value, and this
is indicated in the individual instruction descriptions. Truncation of negative real values involves
dropping the decimal portion and retaining the negative sign.
If your program requires the use of a constant operand of real type, you should store it in one of
the memory registers M01 to M24 at configuration time. For example, the instruction ADD RI01
is valid, but ADD 0.7 is invalid.
NOTE
The term first, when used in describing the location of stack operands, refers to the
one which had been pushed earlier. Since the stack “grows toward high memory,” an
earlier operand has a lower stack pointer value.
A polyadic arithmetic or boolean instruction operates on a variable number of operands, and all of
them are on the stack.
Several polyadic instructions make use of the pseudo-parameters, Ixx and Oxx. These pseudo-
parameters allow the instructions to perform their work with individual bits of the LI01 and
373
B0193AX – Rev AB 14. CALC – Calculator Block
LO01 packed boolean long integer parameters. The xx index varies from 01 to 32. The polyadic
instructions making use of Ixx and Oxx are IN, OUT, AND, OR, NAND, NOR, XOR, and
NXOR.
For example, IN I12 extracts bit 12 from LI01, while IN O12 extracts bit 12 from LO01. OUT
O12 sets bit 12 of LO01 and OUT I12 sets bit 12 of LI01. AND I12 performs the logical AND
operation between the top of the accumulator stack and bit 12 of LI01. OR O12 performs the
logical OR operation between the top of the accumulator stack and bit 12 of LO01.
S2 3
S1 Value1 S1 Sum1 S1 Sum2 S1 Sum2 S1 Quotient
Stack
Registers
(up to 16)
LEGEND:
Stack Stack
Push Pop
374
14. CALC – Calculator Block B0193AX – Rev AB
When there are no command line arguments, the polyadic instructions operate on all values on
the stack. When the command line argument is a constant (c), they operate on the “c” operands at
the highest stack positions. These are the most recently-pushed values before the polyadic instruc-
tion is executed.
The block decrements the stack pointer as the operation is being performed and stores the result
in the new accumulator location (the new top of the stack location determined by the decre-
mented stack pointer), overwriting the first operand. All other operands are also lost because they
now reside in inaccessible registers located above the top of the stack. When fewer than all values
on the stack are used, those stack values remaining after the execution of the statement are not
lost.
Program Example 2 includes a typical polyadic instruction (AVE). Figure 14-5 shows the stack
operation for each program instruction.
STEP01 IN RI01 Pushes RI01 value onto stack
STEP02 IN RI02 Pushes RI02 value onto stack
STEP03 IN RI03 Pushes RI03 value onto stack
STEP04 IN RI04 Pushes RI04 value onto stack
STEP05 AVE Pops Value4 to Value1 from stack, averages them, and
pushes Average onto stack
S4 Value4
S3 Value3 S3 Value3
S2 Value2 S2 Value2 S2 Value2
S1 Value1 S1 Value1 S1 Value1 S1 Value1 S1 Average
Stack
Registers
(up to 16)
LEGEND:
Stack Stack
Push Pop
375
B0193AX – Rev AB 14. CALC – Calculator Block
NOTE
Note that when operands are enclosed in curly brackets, you must select exactly one
from the group.
Following the syntax specifications, are the English-language meaning of the opcode, for example,
(Add), and the description and examples for the instruction’s use.
The location of the stack pointer after the execution of an instruction is indicated by an italicized
expression such as the following: sptr(after) = sptr(before) + 1. This means that the stack pointer
after the instruction has executed is one higher than it was before. Since the stack grows toward
high memory, this means that a value has been pushed onto the stack by the instruction.
Similarly, the expression sptr(after) = sptr(before) - 1 means that one value has been popped off the
stack by the instruction. The polyadic instructions finish with the stack pointer in the first posi-
tion of the stack, which is referred to as stackbottom.
One instruction, CST, finishes with the stack pointer one position lower than stackbottom, with
the pointer waiting for the first push. After CST, sptr(after) = stackbottom -1.
376
14. CALC – Calculator Block B0193AX – Rev AB
NOTE
The examples show the program step number preceding the instruction, that is, in
the instruction 17 ABS, 17 is the step number.
Example 2:
Accumulator = -0.5000
27 ACOS Compute arc cosine of accumulator.
Accumulator = 2.0944 (2*Pi/3) radians. (2*Pi/3 radians =
120 degrees)
ADD
ADD c
ADD {RIxx, ROxx, Mxx}
(Add)
ADD (or ADD c) reads the values from the top two stack locations (or a
specified number c of stack values), adds them, decrements the stack
pointer, and writes the sum into the new accumulator location (the new
377
B0193AX – Rev AB 14. CALC – Calculator Block
top of stack location). This overwrites the first operand and isolates the
second and any later operands from any further access. For ADD, sptr(after)
= sptr(before) - 1. For ADD c, sptr(after) = sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter. The same action
occurs if ADD has no operand and there is only one value on the stack.
ADD RIxx reads the value stored in RIxx (the CALC’s Real Input parame-
ter xx), adds it to the value that it pops from the stack, then pushes the
result back onto the stack. ADD ROxx and ADD Mxx do the same for the
values stored at ROxx and memory location xx, respectively. sptr(after) =
sptr(before).
ALN (Natural Antilog)
ALN reads the value in the accumulator, computes the natural antiloga-
rithm (base e) of the value, and writes the result to the accumulator, over-
writing the original contents. sptr(after) = sptr(before).
Example:
Accumulator = +0.69347
17 ALN Compute natural antilogarithm of accumulator.
Accumulator = +2.0000
ALOG (Common Antilog)
ALOG reads the value in the accumulator, computes the base 10 antiloga-
rithm of the value, and writes it to the accumulator, overwriting the origi-
nal contents. sptr(after) = sptr(before).
Example 1:
Accumulator = +1.30103
17 ALOG Compute common antilog of accumulator.
Accumulator = +20.0000
Example 2:
Accumulator = -3.00000
27 ALOG Compute common antilog of accumulator.
Accumulator = +0.00100
AND
AND c
AND {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
(Logical And)
AND performs a logical “and” of the contents of the specified operands and
stack locations.
If blank is specified, all stack locations are ANDed together, and the result
is written into the accumulator (the new top of stack location). This over-
writes the first operand and isolates the other operands from any further
access. sptr(after) = stackbottom.
378
14. CALC – Calculator Block B0193AX – Rev AB
Example 2:
11 CST Clears the stack.
BI01 = True
BI02 = True
BI03 = False
12 IN BI01 Puts BI02 into accumulator.
13 AND BI02 Performs the logical AND of BI02 and the
accumulator and stores the result on the stack.
14 AND ~BI03 Inverts the BI03 value and performs the logi-
cal AND of this value with the accumulator
and stores the result on the stack.
Accumulator = True
379
B0193AX – Rev AB 14. CALC – Calculator Block
380
14. CALC – Calculator Block B0193AX – Rev AB
Example 2:
Accumulator = -0.5000
27 ASIN Compute arc sine of accumulator.
Accumulator = -0.5236 (-Pi/6) radians.
(-Pi/6 radians = -30 degrees)
ATAN (Arc Tangent)
ATAN reads the value (tangent function value) in the accumulator, com-
putes the value, in radians, of the first or fourth quadrant angle that has
this tangent value. It then stores the angle value into the accumulator,
overwriting the original tangent value. sptr(after) = sptr(before).
Example 1:
Accumulator = 1.000
17 ATAN Compute arc tangent of accumulator.
Accumulator = +.7853983 (Pi/4) radians.
(Pi/4 radians = 45 degrees)
Example 2:
Accumulator = -0.5000
27 ATAN Compute arc tangent of accumulator.
Accumulator = -.4636476 radians
AVE
AVE c
AVE {RIxx, ROxx, Mxx}
(Average)
AVE reads all the values from the stack, computes the mean algebraic
value, decrements the stack pointer, and writes this value into the new
accumulator location (the new top of stack location). This overwrites the
first operand and isolates the other operands from any further access.
sptr(after) = stackbottom.
AVE c reads the top c values from the stack, computes the mean algebraic
value of the c topmost values on the stack, writes this value into the c’th
position from the top of the stack, and sets the new top of the stack (the
accumulator) to this position. sptr(after) = sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
AVE RIxx reads the value stored in RIxx (the CALC’s Real Input parame-
ter xx), computes the mean algebraic value of the RIxx value and the value
that it pops from the stack, and then pushes the result onto the stack. AVE
ROxx and AVE Mxx do the same for the values stored at ROxx and mem-
ory location xx, respectively. sptr(after) = sptr(before).
381
B0193AX – Rev AB 14. CALC – Calculator Block
Example 1:
11 CST Clears the stack.
RI01 = 12.3485
RI02 = 3,73182
RI03 = -2.0037
RI04 = -0.8369
12 IN RI01 Places RI01 into accumulator.
13 IN RI02 Places RI02 into accumulator and pushes the RI01
value down one stack location.
14 IN RI03 Places RI03 into accumulator and pushes the prior
values down one stack location.
15 IN RI04 Places RI04 into accumulator and pushes the prior
values down one stack location.
16 AVE Reads all the values from the stack, calculates the mean
algebraic value for the stack values, and stores the result
into the accumulator, overwriting the RI01 value. The
other values are inaccessible.
Accumulator = 3.30993
Example 2:
RI01 = 12.3485
M01 = 3.73182
11 IN RI01 Places RI01 into accumulator.
12 AVE M01 Calculates the mean algebraic value for RI01
and M01 and stores the result on the stack.
Accumulator = 8.04016
BIF s (Branch If False)
BIF branches to the step number designated by s if the value in the accu-
mulator (the current top of stack location) is 0.0. sptr(after) = sptr(before).
BIF is identical to BIZ
BII s (Branch If Initializing)
BII s branches to the step number designated by s if the CALC block is
initializing this execution cycle. sptr(after) = sptr(before).
An attempt to branch to a step number less than or equal to the current
step number or greater than the step number containing the END state-
ment (50 if there is no END step) writes a “-4” (invalid goto syntax error)
to the PERROR parameter.
BIN s (Branch If Negative)
BIN s branches to the step number designated by s if the value in the
accumulator (the current top of stack location) is less than 0.0. sptr(after)
= sptr(before).
382
14. CALC – Calculator Block B0193AX – Rev AB
383
B0193AX – Rev AB 14. CALC – Calculator Block
Example 2:
Accumulator = +0.1086372
27 CHS Change sign of accumulator.
Accumulator = -0.1086372
CLA (Clear All Memory Registers)
CLA clears all 24 memory registers. sptr(after) = sptr(before).
384
14. CALC – Calculator Block B0193AX – Rev AB
385
B0193AX – Rev AB 14. CALC – Calculator Block
DEC
DEC n
DEC {ROxx, IOxx, LOxx, Mxx}
(Decrement)
DEC with a blank operand reads the value in the accumulator, algebraically
decreases it by 1.0, and returns the results to the accumulator, overwriting
the original contents. The decremented value is limited to
-16,777,215.
DEC n reads the value in the accumulator, algebraically decreases it by the
integer n, and returns the results to the accumulator. The decremented
value is limited to -16,777,215.
DEC Mxx reads the value in memory location Mxx, algebraically decreases
it by 1.0, and returns the result to Mxx. The decremented value is limited
to -16,777,215.
DEC ROxx reads the value stored at ROxx, algebraically decreases it by 1.0,
and returns the result to ROxx, but only if the block is in Auto. In Manual
the block skips this step. The decremented value is limited to LSCOxx.
DEC IOxx reads the value stored at IOxx, algebraically decreases it by 1,
and returns the result to IOxx, but only if the block is in Auto. In Manual
the block skips this step. The decremented value is limited to -32,768.
DEC LOxx reads the value stored at LOxx, algebraically decreases it by 1,
and returns the result to LOxx, but only if the block is in Auto. In Manual
the block skips this step. The decremented value is limited to
-2,147,483,648.
The stack is unaffected when the operand is other than blank or n. In all
cases, sptr(after) = sptr(before).
Example 1:
RI01 = -5.23
10 IN RI01 Places RI01 into the accumulator.
11 DEC 2 Decrement accumulator by 2.
Accumulator = -7.23. (that is, -5.23 - 2.0)
Example 2:
M02 = 11.2
11 DEC M02 Decrement M02.
M02 = 10.2
DIV
DIV {RIxx, ROxx, Mxx}
(Divide)
DIV reads the values from the top two stack locations, divides the second
operand (divisor) into the first operand (dividend), decrements the stack
pointer, and writes the quotient into the new accumulator location (the
new top of stack location). This overwrites the first operand and isolates
the second operand from any further access. sptr(after) = sptr(before) - 1.
386
14. CALC – Calculator Block B0193AX – Rev AB
DIV RIxx reads the value stored in RIxx (the CALC’s Real Input parame-
ter xx) as the divisor, divides the value (the dividend) that it pops from the
stack, then pushes the result back onto the stack. DIV ROxx and DIV Mxx
do the same for the values stored at ROxx and memory location xx,
respectively. sptr(after) = sptr(before).
An attempt to DIV by zero (divisor = 0) causes the value of 0 to be written
to the stack location at which the result would ordinarily be stored. A “4”
(DIV run-time error) is written to the PERROR parameter.
Example:
RI01 = 12.3485
M01 = 3.73182
12 IN RI01 Pushes RI01 onto top of stack (accumulator)
13 DIV M01 Divides RI01 by M01, and stores the result on
the stack.
Accumulator = +3.30898
DOFF (Delayed OFF}
DOFF t
DOFF produces a logical zero output if the input has been in the logical
DOFF Mxx
zero state for the consecutive length of time specified by the operand.
Once the timer has been activated by a zero value of the input, the output
is forced to logical one and remains in this state during the time-out. Once
the delay has been completed and the output is at logical zero, the output
returns to one as soon as the instruction reads a logical one at the input.
On each cycle, the input is found in the accumulator, and the output is
then written to the accumulator, overwriting the input after it has been
used.
DOFF with blank operand or with a 0 constant operand uses 0.5 seconds as
its delay value. If the operand is the integer t and greater than zero the
value of t indicates the number of seconds in the delay. If the operand is
Mxx, then the delay is determined by the contents of memory location xx.
A positive value in Mxx is used as the delay in seconds, and a negative
value is used as the delay in block execution cycles. If the value of the
memory location changes during the timing cycle, the instruction will
notice the change.
The maximum time delay with format DOFF t is 32,767 seconds, or
approximately 9.1 hours. The maximum delay with format DOFF Mxx can
be obtained by loading the maximum positive floating point value into
Mxx, before the DOFF Mxx instruction is reached in the program. Since
the maximum floating point value is 1038, the delay is 1038 seconds. If the
block period is longer than 1.0 second, an even longer delay can be
obtained by loading Mxx with the value of -1038. (The delay times obtain-
able with this instruction are effectively unlimited.)
The TIMINI parameter controls DOFF behavior at block initialization
time to avoid unexpected behavior of the DOFF timer and, possibly, unpre-
dicted activation of the CALC block’s outputs. If the TIMINI parameter
is set (TIMINI = 1) or (TIMINI = 3), the timer is considered to have been
387
B0193AX – Rev AB 14. CALC – Calculator Block
BI01
8 sec 8 sec
BO04
388
14. CALC – Calculator Block B0193AX – Rev AB
BI01
7 sec 7 sec
BO04
DUP (Duplicate)
DUP copies the last stack operand back onto the stack. The stack pointer is
advanced one position. sptr(after) = sptr(before) + 1.
END (End Program)
389
B0193AX – Rev AB 14. CALC – Calculator Block
END terminates the program. Any and all statements (including any addi-
tional END statements) following the first END are never executed. If any
skip statement skips over the first END statement, the block program ter-
minates as if the END had been executed.
The END instruction is not required. If there is no END statement, Step 50
(which may be any legal instruction) is the last statement executed, unless
the execution flow lands on an EXIT statement. sptr(after) = sptr(before).
EXIT (Exit Program)
EXIT terminates the program at the current step number. It is useful for
establishing multiple conditional exit points in the program. The EXIT
instruction is functionally equivalent to a GTO instruction pointing to an
END statement. You can use as many EXIT statements as you need.
sptr(after) = sptr(before).
EXP
EXP {RIxx, ROxx, Mxx}
(Exponent)
EXP with blank operand reads the values from the top two stack locations,
raises the first operand (base) to the power of the second operand (expo-
nent), decrements the stack pointer, and writes the result into the new
accumulator location (the new top of stack location). This overwrites the
first operand and isolates the second operand from any further access.
sptr(after) = sptr(before) - 1.
EXP RIxx reads the value stored in RIxx, raises the value that it pops from
the stack to the power of RIxx value, then pushes the result back onto the
stack. EXP ROxx and EXP Mxx do the same for the values stored at ROxx
and memory location xx, respectively. sptr(after) = sptr(before).
An attempt to EXP a negative value (base less than 0) causes the value of
the specified exponent to be written to the stack location that would have
contained the final result if the operation had been successful. A “9” (EXP
run-time error) is written to the PERROR parameter.
If the base is 0 and the exponent is less than or equal to 0, the result of the
operation is 0.0. PERROR is not set.
Example:
RI01 = 1.483
M01 = 3.10
11 IN RI01 Places RI01 into accumulator.
12 EXP M01 Raises RI01 to the power of M01 and pushes the
result on the stack.
Accumulator = +3.392638
FF (Flip-Flop)
FF emulates the function of a traditional set-reset flip-flop. It uses two
operands on the stack as inputs. The first operand is the “set” input and
the second operand is the “reset” input.
390
14. CALC – Calculator Block B0193AX – Rev AB
This instruction writes the output, which corresponds to the “Q” output
of a flip-flop, into the accumulator, overwriting the first operand (the “set”
value) and making the second operand (the “reset” value) inaccessible.
S R Q
0 0 No Change
0 1 0
1 0 1
1 1 No Change
The “No Change” condition causes the value of the flip-flop after the pre-
vious execution cycle, which is retained in a block data variable, to be writ-
ten to the accumulator. sptr(after) = sptr(before) - 1.
Example:
BI01 = True
BI02 = False
12 IN BI01 Puts BI01 into accumulator – has a True value for
“set.”
13 IN BI02 Puts BI02 into accumulator – has a False value for
“reset.” The “set” input is pushed down one stack
location.
14 FF Reads the two operands, determines the output
according to the truth table above (output = 1 for
this example), and writes it into the accumulator,
overwriting “set” input. The output (1) is also stored
in the block data for use the next execution cycle.
Accumulator = True
15 OUT BO01 Writes the accumulator contents (the FF output) to
BO01.
BO01 = True
391
B0193AX – Rev AB 14. CALC – Calculator Block
GTI
GTI {RIxx, ROxx, IIxx, IOxx, Mxx}
(Go To Indirect)
GTI branches to the step number contained in the accumulator. GTI
RIxx branches to the step number specified by the current contents of
RIxx. Similarly for the other operand types. When the destination is in an
operand of real data type (accumulator, RIxx, ROxx, or Mxx), the operand
contents are truncated to an integer before use. sptr(after) = sptr(before).
An attempt to branch to a step number less than or equal to the current
step number or greater than the step number containing the END state-
ment (50 if there is no END step) writes a “10” (index run-time error) to
the PERROR parameter.
GTO s (Go To)
GTO s branches to the step number designated by s. sptr(after) =
sptr(before).
An attempt to branch to a step number less than or equal to the current
step number or greater than the step number containing the END state-
ment (50 if there is no END step) writes a “-4” (invalid goto syntax error)
to the PERROR parameter.
IDIV (Integer Division)
IDIV Mxx
IDIV, with either blank or Mxx operand, reads the numbers from the top
two stack locations, truncates the values, divides the second operand (divi-
sor) into the first operand (dividend), decrements the stack pointer, and
writes the truncated quotient into the new accumulator location (the new
top of stack location). This overwrites the first operand and isolates the
second operand from any further access.
The result of integer division is always truncated, so that the quotient
returned to the stack is always a whole number. When an operand Mxx is
specified, the quotient is handled as above, and the integer remainder (the
integer modulus) is stored in memory location xx. The integer modulus is
also always a whole number. In all cases, sptr(after) = sptr(before) - 1.
IDIV does not work for numbers greater than 32,767.
If the truncated value of the divisor is 0, the value 0.0 is written into the
stack location where the quotient would have been placed. The value “4”
(divide run-time error) is written to the PERROR parameter. The value of
Mxx (if specified as an operand) is unchanged.
Example:
RI01 = 19.713
RI02 = 5.9021
15 IN RI01 Places RI01 into accumulator.
16 IN RI02 Places RI02 into accumulator. The prior value is
pushed down one stack location.
392
14. CALC – Calculator Block B0193AX – Rev AB
393
B0193AX – Rev AB 14. CALC – Calculator Block
394
14. CALC – Calculator Block B0193AX – Rev AB
Example 2:
M02 = 11.2
11 INC M02 Increments M02 by 1.
M02 = 12.2
INH {LIxx, (Input High Order)
LOxx}
INH reads the high order 16 bits of parameter LIxx or LOxx as an integer
and pushes it onto the stack. sptr(after) = sptr(before) + 1.
INL {LIxx, (Input Low Order)
LOxx}
INL reads the low order 16 bits of parameter LIxx or LOxx as an integer
and pushes it onto the stack. sptr(after) = sptr(before) + 1.
INR (Input Indexed Real)
INR {IIxx, Mxx}
INR with blank operand reads the value in the accumulator, truncates it to
an integer, and uses the result as the index of the RIxx parameter to be
read. The value of RIxx is then pushed onto the stack. INR IIxx and INR
Mxx operate similarly, except that the index of the RIxx parameter is found
in IIxx or Mxx. (If in Mxx, the real contents of Mxx are first truncated to
an integer.) sptr(after) = sptr(before) + 1.
If the value of the index (the contents of the accumulator, IIxx, or Mxx) is
less than 1 or greater than 8, a “10” (index run-time error) is written to the
PERROR parameter.
INS {RIxx, BIxx, IIxx, LIxx, ROxx, BOxx, IOxx, LOxx}
(Input Status)
INS pushes the 16-bit status of the specified input or output parameter
onto the stack. The status value is not modified. sptr(after) = sptr(before) +
1.
The status integer is made up of the following fields: (Bit 0 is the least sig-
nificant bit; Bit 15 is most significant.)
Bit Definition
0 to 4 Data Type
5 to 7 OM Status
8 Bad
9 Secure/Release
10 Acknowledge
11 Out of Service
12 Shadow Parameter
13 Limited High
14 Limited Low
15 Propagated Error
395
B0193AX – Rev AB 14. CALC – Calculator Block
Example 2:
Accumulator = +0.130570
27 LN Computes natural logarithm of accumulator
Accumulator = 2.035846
396
14. CALC – Calculator Block B0193AX – Rev AB
Example 2:
Accumulator = +0.02000
27 LOG Computes common logarithm of accumulator.
Accumulator = -1.69897
MAX
MAX c
MAX {RIxx, ROxx, Mxx}
(Maximum)
MAX reads all the values from the stack, selects the maximum algebraic
value, decrements the stack pointer, and writes this value into the new
accumulator location (the new top of stack location). This overwrites the
first operand and isolates other operands from any further access.
sptr(after) = stackbottom.
MAX c reads the top c values from the stack, selects the maximum alge-
braic value from the c topmost values on the stack, writes this value into
the c’th position from the top of the stack, and sets the new top of the
stack (the accumulator) to this position. sptr(after) = sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
MAX RIxx reads the value stored in RIxx (the CALC’s Real Input param-
eter xx), selects the maximum algebraic value from the RIxx value and the
value that it pops from the stack, and then pushes the result onto the
stack. MAX ROxx and MAX Mxx do the same for the values stored at ROxx
and memory location xx, respectively. sptr(after) = sptr(before).
Example 1:
11 CST Clears the stack.
RI01 = 12.3485
RI02 = 3.73182
RI03 = -2.0037
RI04 = -0.8369
397
B0193AX – Rev AB 14. CALC – Calculator Block
Example 2:
RI01 = 12.3485
M01 = 3.73182
11 IN RI01 Places RI01 into accumulator.
12 MAX M01 Selects the maximum algebraic value from M01
and the value that it pops from the stack and
stores the result on the stack.
Accumulator = 12.3485
MAXO Identical to MAX
MEDN (Median)
MEDN reads all the values from the stack, determines the median value,
decrements the stack pointer, and writes this value into the new accumula-
tor location (the new top of stack location). This overwrites the first oper-
and and isolates the other operands from any further access.
The median value is determined as follows: The stack values are arranged
conceptually in ascending order; then the median is the middle value if
the number of operands is odd, or the average of the two middle values if
the number of operands is even. sptr(after) = stackbottom.
Example:
11 CST Clears the stack.
RI01 = 12.3485
RI02 = 3.73182
RI03 = -2.0037
RI04 = -0.8369
12 IN RI01 Places RI01 into accumulator.
13 IN RI02 Places RI02 into accumulator and pushes the RI01 value
down one stack location.
14 IN RI03 Places RI03 into accumulator and pushes the prior values
down one stack location.
15 IN RI04 Places RI04 into accumulator and pushes the prior values
down one stack location.
398
14. CALC – Calculator Block B0193AX – Rev AB
399
B0193AX – Rev AB 14. CALC – Calculator Block
Example 2:
RI01 = 12.3485
M01 = 3.73182
11 IN RI01 Places RI01 into accumulator.
12 MIN M01 Selects the minimum algebraic value from M01
and the value that it pops from the stack and
stores the result on the stack.
Accumulator = 3.73182
MRS (Master Reset Flip-Flop)
MRS emulates the function of a traditional reset-dominant flip-flop. It uses
two operands on the stack as inputs. The first operand is the “set” input
and the second operand is the “reset” input.
This instruction writes the output, which corresponds to the “Q” output
of a flip-flop, into the accumulator, overwriting the first operand (the “set”
value) and making the second operand (the “reset” value) inaccessible.
Note that the MRS instruction provides the same functionality as the FF,
except that the reset input has priority over the set input. If both inputs
take on a logical one value, the flip-flop is forced to reset.
S R Q
0 0 No Change
0 1 0
1 0 1
1 1 0
The “No Change” condition causes the value of the MRS flip-flop after the
previous execution cycle, which is retained in a block data variable, to be
written to the accumulator. sptr(after) = sptr(before) - 1.
Example:
BI01 = True
BI02 = True
12 IN BI01 Puts BI01 into accumulator – has a True value for “set.”
13 IN BI02 Puts BI02 into accumulator – has a True value for
“reset.” The “set” input is pushed down one stack
location.
14 MRS Reads the two operands, determines the output
according to the truth table above (output = 0 for this
example), and writes it into the accumulator,
overwriting “set” input. The output (0) is also stored in
the block data for use the next execution cycle.
Accumulator = False
400
14. CALC – Calculator Block B0193AX – Rev AB
401
B0193AX – Rev AB 14. CALC – Calculator Block
402
14. CALC – Calculator Block B0193AX – Rev AB
Example 1:
11 CST Clears the stack.
BI01 = True
BI07 = False
BO03 = True
BI14 = True
12 IN BI01 Puts BI01 into accumulator.
13 IN BI07 Puts BI07 into accumulator. The prior value is pushed
down one stack location.
14 IN BO03 Puts BO03 into accumulator. The prior values are
pushed down one stack location.
15 IN BI14 Puts BI14 into accumulator. The prior values are
pushed down one stack location.
16 NAND Performs the logical NAND function, and stores result
into the accumulator, overwriting the True value
loaded in from BI01. The other values are inaccessible.
Accumulator = True
Example 2:
BI04 = False
BO01 = True
11 IN BI04 Puts BI04 into accumulator.
12 NAND BO01 Performs the logical NAND of BI04 and
BO01 and stores the result on the stack.
Accumulator = True
NANX (Packed Logical Not And)
NANX c
NANX reads all the values or a specified number (c) of values from the
stack, performs a 16-bit bitwise logical “nand” function on them, and
stores the result into the new accumulator location (the new top of stack).
This overwrites the first operand and isolates the other operands from any
further access. Logical Not And is defined as producing a False output if
all of the inputs are True and a True output if any one of the inputs is
False.
For NANX, sptr(after) = stackbottom. For NANX c, sptr(after) = sptr(before) - c
+ 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
Each operand is truncated from real to 16-bit integer type before it is used
in the calculation. The final result is stored on the stack as a real value.
403
B0193AX – Rev AB 14. CALC – Calculator Block
Example:
II01 = 5 (0000000000000101)
II02 = 1 (0000000000000001)
RI01 = 13.078 (0000000000001101)
13 IN II01 Puts II01 into accumulator. The prior value is pushed
down one stack location.
14 IN II02 Puts II02 into accumulator. The prior values are pushed
down one stack location.
15 IN RI01 Puts RI01 into accumulator. Value is truncated to 13 and
used as 0000000000001101 in the calculation. The prior
values are pushed down one stack location.
16 NANX 3 Performs the packed logical NANX function and stores
the result, 1111111111111110, into the accumulator,
overwriting the value of II01. The other values are
inaccessible.
Accumulator = -2.0
NOP (No Operation)
This instruction causes the step to be ignored. The program continues
with the next instruction. sptr(after) = sptr(before).
NOR
NOR c
NOR {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
(Logical Not Or)
NOR performs a logical “nor” (not or) of the contents of the specified oper-
ands and stack locations. Logical Not Or is defined as producing a False
output if any input is True and a True output if all of the inputs are False.
If blank is specified, all stack locations are NORed together, and the result
is written into the accumulator (the new top of stack location). This over-
writes the first operand and isolates the other operands from any further
access. sptr(after) = stackbottom.
If c is specified, the last c stack locations are NORed together, removed
from the stack, and the result stored in the accumulator. sptr(after) =
sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
If one operand is specified, the operand is NORed with the accumulator,
and the result replaces the accumulator. sptr(after) = sptr(before).
If ~ is specified, the operand value is inverted prior to being used.
Before the operand Mxx is used in the calculation, its value is truncated to
an integer; if the result is 0 the operand value is considered False, other-
wise it is True.
Example 1:
11 CST Clears the stack.
404
14. CALC – Calculator Block B0193AX – Rev AB
BI01 = True
BI07 = False
BO03 = True
BI14 = True
12 IN BI01 Puts BI01 into accumulator.
13 IN BI07 Puts BI07 into accumulator. The prior value is pushed
down one stack location.
14 IN BO03 Puts BO03 into accumulator. The prior values are
pushed down one stack location.
15 IN BI14 Puts BI14 into accumulator. The prior values are
pushed down one stack location.
16 NOR Performs the logical NOR function, and stores the
result into the accumulator, overwriting the True value
loaded in from BI01. The other values are inaccessible.
Accumulator = False
Example 2:
BI04 = False
BO01 = True
12 IN BI04 Puts BI04 into accumulator.
12 NOR BO01 Performs the logical NOR of BI04 and BO01
and stores the result on the stack.
Accumulator = False
NORX (Packed Logical Not Or)
NORX c
NORX reads all the values or a specified number (c) of values from the
stack, performs a 16-bit bitwise logical “nor” function on them, and stores
the result into the new accumulator location (the new top of stack). This
overwrites the first operand and isolates the other operands from any fur-
ther access. Logical Not Or is defined as producing a False output if any
input is True and a True output if all of the inputs are False.
For NORX, sptr(after) = stackbottom. For NORX c, sptr(after) = sptr(before) - c
+ 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
Each operand is truncated from real to 16-bit integer type before it is used
in the calculation. The final result is stored on the stack as a real value.
Example:
II01 = 5 (0000000000000101)
II02 = 1 (0000000000000001)
RI01 = 13.078 (0000000000001101)
13 IN II01 Puts II01 into accumulator. The prior value is pushed
down one stack location.
405
B0193AX – Rev AB 14. CALC – Calculator Block
406
14. CALC – Calculator Block B0193AX – Rev AB
overwrites the first operand and isolates the other operands from any fur-
ther access. sptr(after) = stackbottom.
If c is specified, the last c stack locations are NXORed together, removed
from the stack, and the result stored in the accumulator. sptr(after) =
sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
If one operand is specified, the operand is NXORed with the accumulator,
and the result replaces the accumulator. sptr(after) = sptr(before).
If ~ is specified, the operand value is inverted prior to being used.
Before the operand Mxx is used in the calculation, its value is truncated to
an integer; if the result is 0 the operand value is considered False, other-
wise it is True.
Example 1:
11 CST Clears the stack.
BI01 = True
BI07 = False
BO03 = True
BI14 = True
12 IN BI01 Puts BI01 into accumulator.
13 IN BI07 Puts BI07 into accumulator. The prior value is pushed
down one stack location.
14 IN BO03 Puts BO03 into accumulator. The prior values are
pushed down one stack location.
15 IN BI14 Puts BI14 into accumulator. The prior values are
pushed down one stack location.
16 NXOR Performs the logical NXOR function, and stores result
into accumulator, overwriting the True value loaded in
from BI01. The other values are inaccessible.
Accumulator = False
Example 2:
BI04 = False
BO01 = True
11 IN BI04 Puts BI04 into accumulator.
12 NXOR BO01 Performs the logical NXOR of BI04 and
BO01 and stores the result on the stack.
Accumulator = False
407
B0193AX – Rev AB 14. CALC – Calculator Block
408
14. CALC – Calculator Block B0193AX – Rev AB
Example 2:
BI04 = False
BO01 = True
11 IN BI04 Puts BI04 into accumulator.
12 OR BO01 Performs the logical OR of BI04 and BO01 and
stores the result on the stack.
Accumulator = True
ORX (Packed Logical Or)
ORX c
ORX reads all the values or a specified number (c) of values from the stack,
performs a 16-bit bitwise logical “or” function on them, and stores the
result into the new accumulator location (the new top of stack). This over-
writes the first operand and isolates the other operands from any further
access.
For ORX, sptr(after) = stackbottom. For ORX c, sptr(after) = sptr(before) - c +
1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
409
B0193AX – Rev AB 14. CALC – Calculator Block
Each operand is truncated from real to 16-bit integer type before it is used
in the calculation. The final result is stored on the stack as a real value.
Example:
11 CST Clears the stack.
BI01 = True (0000000000000001)
II01 = 5 (0000000000000101)
II02 = 0 (0000000000000000)
RI01 = 12.078 (0000000000001100)
12 IN BI01 Puts BI01 into accumulator. Stored as 1.0 and used as
0000000000000001 in the calculation.
13 IN II01 Puts II01 into accumulator. The prior value is pushed
down one stack location.
14 IN II02 Puts II02 into accumulator. The prior values are pushed
down one stack location.
15 IN RI01 Puts RI01 into accumulator. Value is truncated to 12
and used as 0000000000001100 in the calculation. The
prior values are pushed down one stack location.
16 ORX Performs the packed logical OR function and stores the
result, 0000000000001101, into the accumulator,
overwriting the value loaded in from BI01. The other
values are inaccessible.
Accumulator = 13.0
OSP (One-Shot Pulse)
OSP t
OSP with blank operand or with a 0 constant operand uses 0.5 seconds as
OSP Mxx
its pulse width value. If the operand is integer t and greater than zero the
value of t indicates the number of seconds in the pulse width. If the oper-
and is Mxx, then the pulse width is determined by the contents of mem-
ory location xx. A positive value in Mxx is used as the pulse width in
seconds, and a negative value is used as the pulse width in block execution
cycles. If the value of the memory location changes during the timing
cycle, the instruction will notice the change.
The maximum pulse width with format OSP t is 32,767 seconds, or
approximately 9.1 hours. The maximum pulse width with format OSP
Mxx can be obtained by loading the maximum positive floating point
value into Mxx, before the OSP Mxx instruction is reached in the program.
Since the maximum floating point value is 1038, the pulse width is 1038
seconds. If the block period is longer than 1.0 second, an even longer
pulse width can be obtained by loading Mxx with the value of -1038. (The
pulse widths obtainable with this instruction are effectively unlimited.)
OSP generates a non-retriggerable (triggering is disabled while the output
is true) one-shot pulse when the accumulator value makes a zero-to-one
transition. The output remains true for a period specified by the operand,
after which the block resets the output to zero.
410
14. CALC – Calculator Block B0193AX – Rev AB
BI01
5 sec
BO04
411
B0193AX – Rev AB 14. CALC – Calculator Block
412
14. CALC – Calculator Block B0193AX – Rev AB
If the popped index value for RIxx is less than 1 or greater than 8, a “-3”
(out-of-range syntax error value, treated as a run-time error) is written to
the PERROR parameter.
Example:
41 IN 5 Loads “5” onto the stack to specify that RI05 will
be used by the PRO instruction.
42 PRO RO03 Propagates the PRIBLK initialization
acknowledgment bit in RI05 to real output RO03.
PRP ROxx (Propagate Errors)
PRP allows you to propagate certain types of RIxx input errors to the spec-
ified ROxx output. The RIxx inputs whose error conditions are to be
propagated are specified by a mask on the stack, loaded by a prior instruc-
tion. The mask is popped from the stack after it is used. sptr(after) =
sptr(before) - 1.
This instruction sets the ERROR status bit of the specified output oper-
and if any of the specified RIxx inputs are in error. An RIxx input is con-
sidered to be in error when:
Its BAD status bit is true, or
Its Out-of-Service (OOS) status bit is true, or
Its ERROR status bit is true, or
It is experiencing peer-to-peer path failure.
If all masked inputs have the same status, for example, all OOS or all
BAD bits are set, the output will have this status set, in addition to setting
ERROR.
Example:
12 IN H29 Puts Hexadecimal 29 into accumulator.
13 PRP RO02 Propagates any error in RI03 or RI05 or RI08 to the
real output RO02.
where:
7 6 5 4 3 2 1 0
RI01
RI02
RI03
RI04
RI05
RI06
RI08
RI08
0 0 1 0 1 0 0 1
{
{
2 9 H29
413
B0193AX – Rev AB 14. CALC – Calculator Block
You can re-initialize Seed with any desired value at any time, by using the
SEED instruction. sptr(after) = sptr(before) + 1.
414
14. CALC – Calculator Block B0193AX – Rev AB
415
B0193AX – Rev AB 14. CALC – Calculator Block
Example 1:
16... Assume the accumulator has value of 43.499 after Step 16.
17 RND Accumulator has value of 43.0 after Step 17.
Example 2:
26... Assume the accumulator has value of -1.68 after Step 26.
27 RND Accumulator has value of -2.0 after Step 27.
RON {RIxx, IIxx, LIxx, BIxx, ROxx, IOxx, LOxx, BOxx}
(Read In-Service Status)
RON reads the Out-of-Service status bit of the specified parameter and
writes the inverse of its value to the accumulator. (1 = True = OOS bit not
set = parameter in service, 0 = False = OOS bit set = parameter out-of-ser-
vice).
The result of the RON instruction is always the inverse of the result of the
ROO instruction. sptr(after) = sptr(before) + 1.
ROO {RIxx, IIxx, LIxx, BIxx, ROxx, IOxx, LOxx, BOxx}
(Read OOS Bit)
ROO reads the Out-of-Service status bit of the specified parameter and
writes its value to the accumulator. (1 = True = OOS bit set, 0 = False =
OOS bit not set.)
The result of the ROO instruction is always the inverse of the result of the
RON instruction. sptr(after) = sptr(before) + 1.
416
14. CALC – Calculator Block B0193AX – Rev AB
SBD sets the Bad status bit of the specified output parameter to True. Its
effect is identical in Auto or Manual mode. sptr(after) = sptr(before).
SE {ROxx, BOxx, IOxx, LOxx}
(Set Error Status)
SE sets the Error status bit of the specified output parameter to True. Its
effect is identical in Auto or Manual mode. sptr(after) = sptr(before).
SEC {ROxx, BOxx, IOxx, LOxx}
(Set Secure Status)
SEC sets the Secure status bit of the specified output parameter to True,
thereby making the parameter non-settable. Its effect is identical in Auto
or Manual mode. The effect of SEC overrides that of MA. sptr(after) =
sptr(before).
SEED (Seed Random Number Generator)
SEED stores the contents of the accumulator into the Seed value used by
the RAND and RANG instructions. The initial Seed value is set, when the
block initializes, at 100,001 and is changed by each iteration of the RAND
or RANG instruction. If the accumulator value is less than zero or greater
than 100,001 when the SEED instruction is executed, the instruction is
skipped. sptr(after) = sptr(before).
Use of no operands, constant operands, or input operands writes a “-2”
(Syntax Error Code -2, INV_IO) to the PERROR parameter during block
validation and the block is undefined.
SET
SET {ROxx, BOxx, IOxx, LOxx, Mxx}
(Set)
SET stores a “1” in the specified operand.
If blank is specified, a “1” is stored in the accumulator. If Mxx is specified,
a “1” is stored in memory location Mxx.
If any other operand type is specified, a “1” is stored in the specified out-
put, provided the block is in Auto; otherwise the step is skipped. In all
cases, sptr(after) = sptr(before).
SETB (Set Packed Boolean)
SETB b
SETB sets to 1 a specified bit in the accumulator. If blank is specified the
bit number is expected to be at the top of the stack and this bit number is
removed from the stack before the instruction is executed. sptr(after) =
sptr(before) - 1.
If the bit number is less than 1 or greater than 16 an “11” (bit error run-
time error) is written to the PERROR parameter.
If the operand b is specified it indicates a bit number between 1 and 16 in
the accumulator. The stack is not popped in this case. sptr(after) =
sptr(before).
Bit 1 is the most significant bit of the accumulator, and bit 16 the least sig-
nificant.
417
B0193AX – Rev AB 14. CALC – Calculator Block
418
14. CALC – Calculator Block B0193AX – Rev AB
Example:
Accumulator = +49.0000
17 SQRT Computes square root of accumulator
Accumulator = +7.00000
SSF {ROxx, BOxx, IOxx, LOxx, Mxx}
(Set and Skip if False)
SSF sets the specified operand to 1.0 (if ROxx or Mxx) or 1 (if IOxx or
LOxx) or True (if BOxx) and skips the next program step when the accu-
mulator value is 0.0. Otherwise the instruction is ignored and the next
instruction in sequence is executed.
If this instruction is the last or next-to-last step in the CALC block pro-
gram and the accumulator is zero, the operand is set and then the block
program terminates.
When the block is in Manual, the outputs ROxx, BOxx, IOxx, and LOxx
are unchanged, but the skip action still occurs based on the value of the
accumulator. sptr(after) = sptr(before). SSF is identical to SSZ.
SSI {ROxx, BOxx, IOxx, LOxx, Mxx}
(Set and Skip if Initializing)
SSI sets the specified operand to 1.0 (if ROxx or Mxx) or 1 (if IOxx or
LOxx) or True (if BOxx) and skips the next program step if the CALC
block is initializing this execution cycle. Otherwise the instruction is
ignored and the next instruction in sequence is executed.
If this instruction is the last or next-to-last step in the CALC block pro-
gram and the block is initializing, the operand is set and then the block
program terminates.
When the block is in Manual, the outputs ROxx, BOxx, IOxx, and LOxx
are unchanged, but the skip action still occurs based on the value of the
accumulator. sptr(after) = sptr(before).
SSN {ROxx, BOxx, IOxx, LOxx, Mxx}
(Set and Skip if Negative)
SSN sets the specified operand to 1.0 (if ROxx or Mxx) or 1 (if IOxx or
LOxx) or True (if BOxx) and skips the next program step when the accu-
mulator is negative. Otherwise the instruction is ignored and the next
instruction in sequence is executed.
If this instruction is the last or next-to-last step in the CALC block pro-
gram and the accumulator is negative, the operand is set and then the
block program terminates.
When the block is in Manual, the outputs ROxx, BOxx, IOxx, and LOxx
are unchanged, but the skip action still occurs based on the value of the
accumulator. sptr(after) = sptr(before).
419
B0193AX – Rev AB 14. CALC – Calculator Block
420
14. CALC – Calculator Block B0193AX – Rev AB
421
B0193AX – Rev AB 14. CALC – Calculator Block
SWP
SWP {ROxx, BOxx, IOxx, Mxx}
(Swap)
SWP with no argument causes the contents of the last two positions on the
stack to be interchanged. The stack pointer is not moved.
SWP ROxx swaps the contents of the last position on the stack with that of
output ROxx. If the block is not in Auto, the value of ROxx is copied to
the stack, but the stack value is not copied to ROxx.
SWP BOxx swaps the contents of the last position on the stack with that of
output BOxx. A True value in BOxx is converted to 1.0 on the stack, and
a False value is converted to 0.0 on the stack. Any non-zero value on the
stack is converted to True in BOxx, and a 0.0 value is converted to False in
BOxx. If the block is not in Auto, the swap is treated as in the ROxx case.
SWP IOxx swaps the contents of the last position on the stack with that of
output IOxx. The accumulator value is clamped between 32,767.0 and
-32,768.0 before the swap. If the block is not in Auto, the swap is treated
as in the ROxx case.
SWP Mxx swaps the contents of the last position on the stack with that of
memory location Mxx.
In all cases, sptr(after) = sptr(before).
TAN (Tangent)
TAN reads the value (value of the angle in radians) in the accumulator,
computes the tangent of the angle, and writes the result into the accumu-
lator, overwriting the original contents. sptr(after) = sptr(before).
Example:
Accumulator = +0.7853983 (Pi/4) radians.
(Pi/4 radians = 45 degrees)
17 TAN Computes tangent of accumulator.
Accumulator = +1.0000
TIM (Time Since Midnight)
TIM gets the time, in seconds since midnight, and pushes it onto the stack
sptr(after) = sptr(before) + 1.
TRC (Truncate)
TRC reads the number in the accumulator, truncates the mantissa, or deci-
mal portion, and writes the result into the accumulator as a floating point
value, overwriting the original value. sptr(after) = sptr(before).
Example:
Accumulator = 43.999
17 TRC Truncates the accumulator
Accumulator = 43.0
TSTB (Test Packed Boolean)
TSTB b
422
14. CALC – Calculator Block B0193AX – Rev AB
TSTB tests a specified bit in the accumulator. If blank is specified the bit
number is expected to be at the top of the stack and this bit number is
removed from the stack before the instruction is executed. sptr(after) =
sptr(before) - 1.
If the bit number is less than 1 or greater than 16 an “11” (bit error run-
time error) is written to the PERROR parameter.
If the argument b is specified it indicates a bit number between 1 and 16
in the accumulator. The stack is not popped in this case. sptr(after) =
sptr(before).
Bit 1 is the most significant bit of the accumulator, and bit 16 the least sig-
nificant.
If the tested bit is 0, the value False (0.0) replaces the accumulator; if it is
1, the value True (1.0) replaces the accumulator.
XOR
XOR c
XOR {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
(Logical Exclusive Or)
XOR performs a logical “xor” of the contents of the specified operands and
stack locations. Exclusive Or is defined as producing a True output for an
odd number of True inputs, a False output for an even number of True
inputs, and a False output if all inputs are False.
If blank is specified, all stack locations are XORed together, and the result
is written into the accumulator (the new top of stack location). This over-
writes the first operand and isolates the other operands from any further
access. sptr(after) = stackbottom.
If c is specified, the last c stack locations are XORed together, removed
from the stack, and the result stored in the accumulator. sptr(after) =
sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
If one operand is specified, the operand is XORed with the accumulator,
and the result replaces the accumulator. sptr(after) = sptr(before).
If ~ is specified, the operand value is inverted prior to being used.
Before the operand Mxx is used in the calculation, its value is truncated to
an integer; if the result is 0 the operand value is considered False, other-
wise it is True.
Example 1:
11 CST Clears the stack.
BI01 = True
BI07 = False
BO03 = True
BI14 = True
12 IN BI01 Puts BI01 into accumulator.
423
B0193AX – Rev AB 14. CALC – Calculator Block
Example 2:
BI04 = False
BO01 = True
11 IN BI04 Puts BI04 into accumulator.
12 XOR BO01 Performs the logical XOR of BI04 and BO01
and stores the result on the stack.
Accumulator = True
XORX (Packed Logical Exclusive Or)
XORX c
XORX reads all the values or a specified number (c) of values from the
stack, performs a 16-bit bitwise logical “xor” function on them, and stores
the result into the new accumulator location (the new top of stack). This
overwrites the first operand and isolates the other operands from any fur-
ther access. Exclusive Or is defined as producing a True output for an odd
number of True inputs, a False output for an even number of True inputs,
and a False output if all inputs are False.
For XORX, sptr(after) = stackbottom. For XORX c, sptr(after) = sptr(before) - c
+ 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
Each operand is truncated from real to 16-bit integer type before it is used
in the calculation. The final result is stored on the stack as a real value.
Example:
II01 = 5 (binary 0000000000000101)
II02 = 7 (binary 0000000000000111)
LI01 =12 (binary
00000000000000000000000000001100)
13 IN II01 Puts II01 into accumulator. The prior value is pushed
down one stack location.
14 IN II02 Puts II02 into accumulator. The prior values are
pushed down one stack location.
424
14. CALC – Calculator Block B0193AX – Rev AB
425
B0193AX – Rev AB 14. CALC – Calculator Block
Code Definition
-1 Invalid operation code
-2 Invalid operand type
-3 Out of range operand index
-4 Invalid go to step number
The run-time error codes for the PERROR parameter are listed in Table 14-16.
Code Definition
1 SQRT error (accumulator < 0)
2 ASIN error (absolute value of accumulator > 1)
3 ACOS error (absolute value of accumulator > 1)
4 DIV error (divide by zero)
5 Stack overflow
6 Stack underflow
7 LOG error (accumulator 0)
8 LN error (accumulator 0)
9 EXP error (base < 0)
10 Index error
11 Bit error
426
14. CALC – Calculator Block B0193AX – Rev AB
3. Boolean Variables – Parameters BIxx and BOxx, and pseudo-parameters Ixx and Oxx.
Boolean variables can be optionally inverted before use. For information on pseudo-
parameters, see “Instruction Syntax” on page 372.
4. Other Constants – In addition to arguments of type “n” used as integer variables in
the calculation, constant command line arguments are also used to represent a timer
constant (“t”), a program step number (“s”), a bit number (“b”), or the number of
stack operands to be used (“c”).
The opcode and any required argument for a program step are entered in the STEPxx position of
the Control Configurator screen.
Arithmetic Examples
Example 1 illustrates an instruction that uses two operands to compute the result. Example 2
shows an instruction involving more than two operands.
Example 1 – Calculate (RI01 * RI02) and output the result to RO01:
STEP01 IN RI01 Places Real Input 1 into accumulator.
STEP02 MUL RI02 Multiplies the RI01 value it pops from the stack by RI02 and
stores the result on the stack.
STEP03 OUT RO01 Writes the product of RI01 and RI02 to RO01.
427
B0193AX – Rev AB 14. CALC – Calculator Block
Branching Example:
RI01
Program function:
To select either of two
real inputs based on the BI01 SELECTOR LOGIC RO01
IN CALC BLK
status of a binary input.
RI02
Example:
STEP01 CST Clear any pending results from stack
STEP02 IN BI01 Read binary input, to select a real
STEP03 BIT 06 Branch if binary input is true
STEP04 IN RI01 Binary is false, read real input #1
STEP05 GTO 07 Go to output step
STEP06 IN RI02 Binary is true, read real input #2
STEP07 OUT RO01 Write selected real value to output
STEP08 END
428
14. CALC – Calculator Block B0193AX – Rev AB
Stack operations occur only for diadic arithmetic operations and for boolean operations other
than the unary NOT function. This approach enables you to mix arithmetic and boolean opera-
tions.
The operation sequence for an arithmetic chaining example is shown in Figure 14-9. It shows the
stack operations involved in the equation, working from the innermost parentheses outward. The
actual program steps that implement the procedures are shown below. Figure 14-10 shows the
stack operations for this example.
6 5 1 4 2 3
Prod1
Prod2
Diff
Quotient
Root
Prod3
Figure 14-9. Arithmetic Chaining Example, Operation Sequence
429
B0193AX – Rev AB 14. CALC – Calculator Block
430
14. CALC – Calculator Block B0193AX – Rev AB
1
CST IN IN MUL IN IN
STEP01 STEP02 STEP03 STEP04 STEP05 STEP06
S3 RI04
S2 RI02 S2 RI03 S2 RI03
S1 S1 RI01 S1 RI01 S1 Prod1 S1 Prod1 S1 Prod1
Stack
Registers
(up to 16)
2 3 4 5
MUL IN SUB DIV SQRT IN
STEP07 STEP08 STEP09 STEP10 STEP11 STEP12
S3 1
S2 Prod2 S2 Prod2 S2 Diff S2 RI05
S1 Prod1 S1 Prod1 S1 Prod1 S1 Quotient S1 Root S1 Root
6
MUL OUT
STEP13 STEP14
431
B0193AX – Rev AB 14. CALC – Calculator Block
Example:
STEP01 IN RI01 Reads Real Input 1 and pushes it onto stack.
STEP02 IN 90 Reads constant “90.0” and pushes it onto stack.
STEP03 SUB Pops Real Input 1 and constant “90” from stack, subtracts 90
from Real Input 1, and pushes difference onto stack.
STEP04 BIN 5 Branches to Step 7 if difference is negative.
STEP05 IN 90 Reads constant “90.0” and pushes it onto stack.
STEP06 GTO 14 Branches to Step 10.
STEP07 IN RI01 Reads Real Input 1 and pushes it onto stack.
STEP08 IN 10 Reads constant “10.0” and pushes it onto stack.
STEP09 SUB Pops Real Input 1 and constant “10” from stack, subtracts 10
from Real Input 1, and pushes difference onto stack.
STEP10 BIP 13 Branches to Step 13 if difference is positive.
STEP11 IN 10 Reads constant “10.0” and pushes it onto stack.
STEP12 GTO 14 Branches to Step 14.
STEP13 IN RI01 Reads Real Input 1 and pushes it onto stack.
STEP14 OUT RO01 Writes limited measurement value to Real Output 1.
STEP15 END
432
15. CALCA – Advanced Calculator
Block
This chapter covers the Advanced Calculator, or CALCA, block, its basic operations, features,
parameters, and functions, instruction processing, syntax and definitions, error conditions,
programming concepts, and an application example.
15.1 Overview
The Advanced Calculator (CALCA) block provides both logical functions and arithmetic compu-
tational capability within one integrated environment.
This block provides dual-operand efficiency in several mathematical and logical instructions,
resulting in as much as a three-to-one reduction in the length of your program relative to the same
calculations performed in a CALC block program.
The CALCA block does not support the clamping of real outputs, whereas the CALC block does.
With this exception, programs written for the CALC, MATH, or LOGIC blocks will execute in
the CALCA block without change.
The configuration process allows you to program the block by entering a series of up to 50 pro-
gramming steps. Each program step is represented by a parameter string of up to 16 characters.
The CALCA block inputs and outputs are shown in Figure 15-1.
8 Boolean Outputs
16 Boolean Inputs
Advanced 4 Real Outputs
8 Real Inputs Calculation
2 Integer Inputs Program 6 Integer Outputs
The differences between the CALCA, CALC, MATH, and LOGIC blocks are summarized in
Table 15-1.
433
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
434
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
15.3 Features
Provides 8 real inputs, 2 long integer inputs, 2 integer inputs, 16 boolean inputs, 4
real outputs, 2 long integer outputs, 8 boolean outputs, and 6 integer outputs.
Provides 24 floating point memory data storage registers that are preserved between
execution cycles.
Uses a stack of 24 floating point values for storage of intermediate computational
results.
Provides 50 programming steps of up to 16 characters, allowing dual operands in all
appropriate instructions.
Clamping of outputs is not supported.
Accepts any CALC, MATH, or LOGIC block instruction without change; outputs
are not clamped in the CALCA block, however.
Allows arithmetic calculations to be conditionally executed, depending on arithmetic
or logic conditions detected under program control.
Provides a complete mix and interchangeability between the results of boolean, inte-
ger, and real operations.
Lets your algorithm read the status bits of input/output parameters and directly con-
trol the status bits of output parameters (for example, Bad, Out-of-Service, Error).
Allows you to propagate the cascade acknowledgment from an upstream to a down-
stream block.
Checks correctness of all programming steps following block installation and recon-
figuration, and marks the block as undefined if an error is detected.
Provides the ability to detect run-time errors.
Supports Auto/Manual capability for all block outputs; in Manual, all functions are
performed normally except for changes of output values.
Allows forward branching of program control. However, backward branching is not
allowed, to prevent endless loops.
Lets you initialize all timers and memory registers.
Permits effectively unlimited time delays and pulse widths in the timer instructions.
15.4 Parameters
Table 15-2. CALCA Block Parameters
435
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
BI01 to BI16 Boolean Inputs 1 through 16 are inputs to the block calculations which
can be configured, linked to upstream blocks, or set when unlinked.
436
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the CALCA block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
ON
MA
Boolean
Bit Number* Connection
(0 to 31) Name Description When True (B32 to B1)
11 MA Manual = 0, Auto = 1 BLKSTA.B21
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
20 WLCK Access Locked BLKSTA.B12
BO01 to BO08 Boolean Outputs 1 through 8 are outputs from the block calculations.
They can be set when the block is in Manual.
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. (See ERCODE for the list of all possible validation errors in this
block.) In that case, no further processing of the block occurs, including
further validation of remaining parameters. To return DEFINE to a true
value, correct all configuration errors and re-install the block. If DEFINE
= 0, the bit BLKSTA.UDEF = 1.
ERCODE Error Code is a string data store which indicates the type of configuration
error which caused the block’s DEFINE parameter to be set false. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. For the CALCA block, the following is the only
possible error value of ERCODE. (More specific information as to the
type of syntax error encountered can be found in PERROR and STERR.)
“W45 - CONFIGURATION ERROR IN STEP nn”
II01 to II02 Integer Inputs 1 and 2 are inputs to the block calculations which can be
configured, linked to upstream blocks, or set when unlinked.
437
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state as specified in the checkpoint file.
The block asserts this initial M/A state whenever:
It is installed into the Control Processor database.
The Control Processor undergoes a reboot operation.
The compound in which it resides is turned on.
The INITMA parameter itself is modified via the control configu-
rator. (The block does not assert INITMA on ordinary
reconfiguration.)
INITMA is ignored if MA has an established linkage.
IO01 to IO06 Integer Outputs 1 through 6 are outputs from the block calculations.
They can be set when the block is in Manual.
LI01 to LI02 Long Integer Inputs 1 and 2 are inputs to the block calculations which can
be configured, linked to upstream blocks, or set when unlinked. In addi-
tion, the individual bits of LI01 can only be accessed in the calculation as
I1 (or I01) through I32. I1 is the most significant bit of LI01, and I32 is
the least significant bit.
LO01 to LO02 Long Integer Outputs 1 and 2 are outputs from the block calculations.
They can be linked to downstream blocks, or set when the block is in
Manual. In addition, the individual bits of LO01 can only be accessed in
the calculation as O1 (or O01) through O32. O1 is the most significant
bit of LO01, and O32 is the least significant bit.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5
LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-char-
acter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.
LOCKRQ Lock Request is a boolean input which can be set True or False only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set True in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are honored (subject to the usual access rules) only from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set False by any workstation at any time, whereupon a
438
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
M01 to M24 Memory elements 1 through 24 are memory registers. These provide tem-
porary storage for the result of any operation in the up-to-50-step CALCA
block program. The values you configure are initial values for M01 to
M24. The CALCA block program can overwrite this value with an STM
command.
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.
439
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec.,
but the PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec.,
but the PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec.,
but the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0
sec., but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.
PERROR Program Error is a coded integer output that indicates the type of instruc-
tion syntax error or program run-time error that occurred in the step spec-
ified by the STERR parameter. See Section 15.7 for tables of the
PERROR values.
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).
RI01 to RI08 Real Inputs 1 through 8 are inputs to the block calculations which can be
configured, linked to upstream blocks, or set when unlinked. The CALCA
block does not have change delta parameters. When one of the RI01 to
RI08 parameters is the sink of a peer-to-peer connection, it will be
updated whenever the value at the source of the connection changes by
more than 0.0001 units.
RO01 to RO04 Real Outputs 1 through 4 are outputs from the block calculations. They
can be set when the block is in Manual.
STEP01 to STEP50
Steps 1 through 50 are string inputs of up to 16 characters. They are the
50 executable commands that make up the CALCA block program.
STERR Step Error is an integer output that indicates which program step is exhib-
iting the error defined by PERROR.
TIMINI Timer Initialization option specifies whether an initial state change can be
generated by a DON, DOFF, FF, MRS, or OSP instruction in a block
when the block initializes.
0= Initial state change allowed for DOFF, DON, FF, MRS, and OSP.
1= Initial state change disallowed for DOFF, DON, and OSP.
Initial state change allowed for FF and MRS.
2= Initial state change disallowed for FF and MRS.
440
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
TYPE When you enter “CALCA” or select it from a configurator list, an identi-
fying integer is created specifying this block type.
15.5 Functions
The CALCA block provides 114 program instructions, consisting of the following general types:
32 Arithmetic instructions, which perform mathematical calculations.
13 Boolean instructions, which provide various boolean and packed boolean
operations.
27 Input/Output instructions, which perform the input or output of data or status
bits.
2 Cascade and Propagation instructions for error propagation and downstream cas-
cade acknowledgments.
10 Memory and Stack Reference instructions for reading and writing the memory reg-
isters, or directly manipulating the stack.
10 Program Control instructions for conditional and unconditional branching, and
program termination.
9 Clear/Set instructions, which provide for conditional or unconditional clearing or
setting of parameters, sometimes with simultaneous program control action.
6 Timing instructions which control the operation of program timers.
2 Logic instructions which emulate the operation of flip-flops.
3 Error Control instructions which provide access to the run-time error flag.
441
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
Each of the arithmetic operations (and boolean operations) utilize one or more inputs to the cal-
culation, generically referred to as operands. These inputs are obtained from various block param-
eters, the push-down stack, and/or the command line arguments of the instruction syntax.
Regardless of the origin of the inputs, instructions using one input are designated unary, those uti-
lizing two inputs are designated diadic, and those utilizing a variable number of inputs are desig-
nated polyadic.
442
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
443
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
444
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
445
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
446
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
15.6 Instructions
15.6.1 Instruction Processing
15.6.1.1 Auto Mode
Each block processing cycle, the CALCA block executes each programmed step in sequence,
except for those bypassed because of branch conditions. When the program has been executed a
single time, the block execution is complete, and control is passed to the next block in the com-
pound processor list.
Program execution is complete when an END or EXIT statement is reached in the program flow,
or Step 50 has been executed, whichever occurs first in time.
Between instructions, the block stores intermediate results on a 24-position internal stack. You
can use stack values as arguments to subsequent instructions. The stack is cleared at the start of
each block execution cycle. You can use the 24 internal memory registers (Mxx) to store data
between block execution cycles. These memory registers can be pre-configured to contain con-
stants needed by the various instructions, or they can be used to store instruction arguments
and/or results.
447
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
17.29 OUTPUT
RO01 = 17.29
Part 1. Read
(M) MA
17.29 O
O OUTPUT
0.0 O
RO01
(A)
Part 2. Clear
It should be noted that instructions which modify the memory registers M01 to M24 continue to
execute normally while in Manual mode. If, for example, your program ramps a value in M01,
then the ramping continues throughout the Manual mode, and M01 contains an indeterminate
value when the block is returned to Auto.
15.6.2.1 Rules
The following pseudo instructions show the generic instruction syntax:
operation; comment
operation number_of_stack_operands; comment
operation operand_1 operand_2; comment
operation operand_1; comment
As noted in Section 15.2, the instruction string comprises the opcode, followed by up to two
command line arguments. Any comment must follow a semi-colon (;) character, and can contain
any alphanumeric or punctuation characters. No punctuation is allowed between arguments.
Blank steps can be inserted anywhere in a CALCA block program prior to the END statement.
This makes it easier to make minor modifications in the block program without reconfiguring
448
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
each step in the program. When a blank step is found in the program, the block logic skips to the
next step without taking any action.
15.6.2.2 Constants
Some instructions allow a constant value as a command line argument. The instruction defini-
tions of Section 15.6.5. use different letters to represent this constant, depending on the semantic
meaning of the constant, as follows:
s = step number
t = time constant
b = bit number
c = count of the number of stack values involved
n = arithmetic operand
In all cases, the constant is expected to be an integer. If you enter a non-integer value for the con-
stant, it is automatically truncated to an integer before it is used. There is no warning message
when this truncation occurs. Certain instructions permit a zero or negative integer value, and this
is indicated in the individual instruction descriptions. Truncation of negative real values involves
dropping the decimal portion and retaining the negative sign.
If your program requires the use of a constant operand of real type, you should store it in one of
the memory registers M01 to M24 at configuration time. For example, the instruction ADD RI01
M01 is valid, but ADD RI01 0.7 is invalid.
NOTE
The term first, when used in describing the location of stack operands, refers to the
one which had been pushed earlier. Since the stack “grows toward high memory,”
an earlier operand has a lower stack pointer value.
A polyadic arithmetic or boolean instruction operates on a variable number of operands, and all of
them are on the stack.
Several polyadic instructions make use of the pseudo-parameters, Ixx and Oxx. These pseudo-
parameters allow the instructions to perform their work with individual bits of the LI01 and
LO01 packed boolean long integer parameters. The xx index varies from 01 to 32. The polyadic
449
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
instructions making use of Ixx and Oxx are IN, OUT, AND, OR, NAND, NOR, XOR, and
NXOR.
For example, IN I12 extracts bit 12 from LI01, while IN O12 extracts bit 12 from LO01. OUT
O12 sets bit 12 of LO01 and OUT I12 sets bit 12 of LI01. AND I12 performs the logical AND
operation between the top of the accumulator stack and bit 12 of LI01. OR O12 performs the
logical OR operation between the top of the accumulator stack and bit 12 of LO01.
S2 Sum2 S2 4
S1 Sum1 S1 Sum1 S1 Sum3 S1 Sum3 S1 Quotient
Stack
Registers
(up to 24)
LEGEND:
Stack Stack
Push Pop
450
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
When there are no command line arguments, the polyadic instructions operate on all values on
the stack. When the command line argument is a constant (c), they operate on the “c” operands at
the highest stack positions. These are the most recently-pushed values before the polyadic instruc-
tion is executed.
The block decrements the stack pointer as the operation is being performed and stores the result
in the new accumulator location (the new top of the stack location determined by the decre-
mented stack pointer), overwriting the first operand. All other operands are also lost because they
now reside in inaccessible registers located above the top of the stack. When fewer than all values
on the stack are used, those stack values remaining after the execution of the statement are not
lost.
Program Example 2 includes a typical polyadic instruction (AVE). Figure 15-4 shows the stack
operation for each program instruction.
STEP01 IN RI01 Pushes RI01 value onto stack
STEP02 IN RI02 Pushes RI02 value onto stack
STEP03 IN RI03 Pushes RI03 value onto stack
STEP04 IN RI04 Pushes RI04 value onto stack
STEP05 AVE Pops Value4 to Value1 from stack, averages them, and
pushes Average onto stack
S4 Value4
S3 Value3 S3 Value3
S2 Value2 S2 Value2 S2 Value2
S1 Value1 S1 Value1 S1 Value1 S1 Value1 S1 Average
Stack
Registers
(up to 24)
LEGEND:
Stack Stack
Push Pop
451
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
NOTE
Note that when operands are enclosed in curly brackets, you must select exactly one
from the group.
The opcode ADD with exactly one operand from the group {RIxx,
ROxx, Mxx} followed by exactly one operand from the group {n,
RIxx, ROxx, Mxx}, as for example ADD RO01 M02. This adds the
two specified operands and pushes the result onto the stack.
NOTE
Note that there is no comma between the two operands. Except within comment
fields, commas are never valid in command lines.
Following the syntax specifications, are the English-language meaning of the opcode, for example,
(Add), and the description and examples for the instruction’s use.
The location of the stack pointer after the execution of an instruction is indicated by an italicized
expression such as the following: sptr(after) = sptr(before) + 1. This means that the stack pointer
after the instruction has executed is one higher than it was before. Since the stack grows toward
high memory, this means that a value has been pushed onto the stack by the instruction.
Similarly, the expression sptr(after) = sptr(before) - 1 means that one value has been popped off the
stack by the instruction. The polyadic instructions finish with the spack pointer in the first posi-
tion of the stack, which is referred to as stackbottom.
452
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
One instruction, CST, finishes with the stack pointer one position lower than stackbottom, with
the pointer waiting for the first push. After CST, sptr(after) = stackbottom -1.
NOTE
The examples show the program step number preceding the instruction, that is, in
the instruction 17 ABS, 17 is the step number.
Example 2:
Accumulator = -0.5000
27 ACOS Compute arc cosine of accumulator.
Accumulator = 2.0944 (2*Pi/3) radians. (2*Pi/3 radians =
120 degrees)
453
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
ADD
ADD c
ADD {RIxx, ROxx, Mxx}
ADD {RIxx, ROxx, Mxx} {n, RIxx, ROxx, Mxx}
(Add)
ADD (or ADD c) reads the values from the top two stack locations (or a
specified number c of stack values), adds them, decrements the stack
pointer, and writes the sum into the new accumulator location (the new
top of stack location). This overwrites the first operand and isolates the
second and any later operands from any further access. For ADD, sptr(after)
= sptr(before) - 1. For ADD c, sptr(after) = sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
runtime error) is written to the PERROR parameter. The same action
occurs if ADD has no operand and there is only one value on the stack.
ADD RIxx reads the value stored in RIxx (the CALCA’s Real Input param-
eter xx), adds it to the value that it pops from the stack, then pushes the
result back onto the stack. ADD ROxx and ADD Mxx do the same for the
values stored at ROxx and memory location xx, respectively. sptr(after) =
sptr(before).
ADD RIxx n reads the RIxx value and a specified integer constant (n),
adds them and stores the result on the stack. If the first operand is ROxx
or Mxx, the operation is similar. sptr(after) = sptr(before) + 1.
The range of n is 0 to 127.
NOTE
Values of n outside of this range will cause the block to go undefined with a config-
uration error in the appropriate step.
ADD RIxx Mxx reads the values stored in RIxx and Mxx, adds them, and
stores the result on the stack. Similarly when ROxx or Mxx is the first
operand or RIxx or ROxx is the second operand. sptr(after) = sptr(before) +
1.
Example:
RI01 = 12.3485
M01 = 3.73182
12 ADD RI01 M01 Adds RI01 to M01 and stores the result on the
stack.
Accumulator = 16.08032
ALN (Natural Antilog)
ALN reads the value in the accumulator, computes the natural antiloga-
rithm (base e) of the value, and writes the result to the accumulator, over-
writing the original contents. sptr(after) = sptr(before).
454
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
Example:
Accumulator = +0.69347
17 ALN Compute natural antilogarithm of accumulator.
Accumulator = +2.0000
ALOG (Common Antilog)
ALOG reads the value in the accumulator, computes the base 10 antiloga-
rithm of the value, and writes it to the accumulator, overwriting the origi-
nal contents. sptr(after) = sptr(before).
Example 1:
Accumulator = +1.30103
17 ALOG Compute common antilog of accumulator.
Accumulator = +20.0000
Example 2:
Accumulator = -3.00000
27 ALOG Compute common antilog of accumulator.
Accumulator = +0.00100
AND
AND c
AND {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
AND {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx} {BIxx,
BOxx, Ixx,
Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
(Logical And)
AND performs a logical “and” of the contents of the specified operands and
stack locations.
If blank is specified, all stack locations are ANDed together, and the result
is written into the accumulator (the new top of stack location). This over-
writes the first operand and isolates the other operands from any further
access. sptr(after) = stackbottom.
If c is specified, the last c stack locations are ANDed together, removed
from the stack, and the result stored in the accumulator. sptr(after) =
sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
If only one operand is specified, the operand is ANDed with the accumu-
lator, and the result replaces the accumulator. sptr(after) = sptr(before).
If both operands are specified, the operands are ANDed together and the
result is stored in the accumulator. sptr(after) = sptr(before) + 1.
If ~ is specified, the operand value is inverted prior to being used.
455
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
Before the operand Mxx is used in the calculation, its value is truncated to
an integer; if the result is 0 the operand value is considered False, other-
wise it is True.
Example 1:
11 CST Clears the stack.
BI01 = True
BI07 = False
BO03 = True
BI14 = True
12 IN BI01 Puts BI01 into accumulator.
13 IN BI07 Puts BI07 into accumulator. The prior value is pushed
down one stack location.
14 IN BO03 Puts BO03 into accumulator. The prior values are
pushed down one stack location.
15 IN BI14 Puts BI14 into accumulator. The prior values are
pushed down one stack location.
16 AND Performs the logical AND function on the 4 stack
locations, overwriting the True value loaded in from
BI01. The other values are inaccessible.
Accumulator = 0 (False)
Example 2:
11 IN BI02 Puts BI02 into accumulator.
BI03 = False
BO01 = True
12 AND BI03 BO01 Performs the logical AND of BI03 and BO01
and stores the result on the stack.
Accumulator = False
ANDX (Packed Logical And)
ANDX c
ANDX reads all the values or a specified number (c) of values from the
stack, performs a 16-bit bitwise logical “and” function on them, and stores
the result into the new accumulator location (the new top of stack). This
overwrites the first operand and isolates the other operands from any fur-
ther access.
For ANDX, sptr(after) = stackbottom. For ANDX c, sptr(after) = sptr(before) - c
+ 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
Each operand is truncated from real to 16-bit integer type before it is used
in the calculation. The final result is stored on the stack.
456
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
Example:
11 CST Clears the stack.
BI01 = True (0000000000000001)
II01 = 5 (0000000000000101)
II02 = 7 (0000000000000111)
12 IN BI01 Puts BI01 into accumulator. Stored as 1.0.
13 IN II01 Puts II01 into accumulator. The prior value is pushed
down one stack location.
14 IN II02 Puts II02 into accumulator. The prior values are
pushed down one stack location.
15 ANDX Performs the packed logical AND function and stores
the result into the accumulator overwriting the value
loaded in from BI01. The other values are inaccessible.
Accumulator = 0000000000000001 (stored as 1.0)
ASIN (Arc Sine)
ASIN reads the value (sine function value) in the accumulator and com-
putes the value, in radians, of the first or fourth quadrant angle that has
this sine value. It then stores the angle value into the accumulator, over-
writing the original sine value, which must have an absolute value equal to
or less than one. sptr(after) = sptr(before).
An attempt to ASIN a value > 1 or < -1 causes the instruction to be
skipped and writes a “2” (ASIN run-time error) to the PERROR parame-
ter.
Example 1:
Accumulator = 0.7071
17 ASIN Compute arc sine of accumulator.
Accumulator = +0.7853983 (Pi/4) radians.
(Pi/4 radians = 45 degrees)
Example 2:
Accumulator = -0.5000
27 ASIN Compute arc sine of accumulator.
Accumulator = -0.5236 (-Pi/6) radians.
(-Pi/6 radians = -30 degrees)
ATAN (Arc Tangent)
ATAN reads the value (tangent function value) in the accumulator, com-
putes the value, in radians, of the first or fourth quadrant angle that has
this tangent value. It then stores the angle value into the accumulator,
overwriting the original tangent value. sptr(after) = sptr(before).
Example 1:
Accumulator = 1.000
17 ATAN Compute arc tangent of accumulator.
457
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
458
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
Example 2:
Accumulator = -0.5000
27 ATAN Compute arc tangent of accumulator.
Accumulator = -.4636476 radians
AVE
AVE c
AVE {RIxx, ROxx, Mxx}
AVE {RIxx, ROxx, Mxx} {n, RIxx, ROxx, Mxx}
(Average)
AVE reads all the values from the stack, computes the mean algebraic
value, decrements the stack pointer, and writes this value into the new
accumulator location (the new top of stack location). This overwrites the
first operand and isolates the other operands from any further access.
sptr(after) = stackbottom.
AVE c reads the top c values from the stack, computes the mean algebraic
value of the c topmost values on the stack, writes this value into the c’th
position from the top of the stack, and sets the new top of the stack (the
accumulator) to this position. sptr(after) = sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
AVE RIxx reads the value stored in RIxx (the CALCA’s Real Input param-
eter xx), computes the mean algebraic value of the RIxx value and the
value that it pops from the stack, and then pushes the result onto the
stack. AVE ROxx and AVE Mxx do the same for the values stored at ROxx
and memory location xx, respectively. sptr(after) = sptr(before).
AVE RIxx Mxx reads the values stored in RIxx and Mxx, computes the
mean algebraic value of the RIxx and Mxx values, and stores the result on
the stack. Whenever both operands are specified, the mean algebraic value
of the first and second operand is computed. sptr(after) = sptr(before) + 1.
AVE RIxx n reads the value stored in RIxx and a specified integer con-
stant (n), computes the mean algebraic value of RIxx and n, and stores the
result on the stack. If the first operand is ROxx or Mxx, the operation is
similar. sptr(after) = sptr(before) + 1.
Example 1:
11 CST Clears the stack.
RI01 = 12.3485
RI02 = 3,73182
RI03 = -2.0037
RI04 = -0.8369
12 IN RI01 Places RI01 into accumulator.
13 IN RI02 Places RI02 into accumulator and pushes the RI01
value down one stack location.
14 IN RI03 Places RI03 into accumulator and pushes the prior
values down one stack location.
459
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
Example 2:
RI01 = 12.3485
M01 = 3.73182
11 AVE RI01 M01 Calculates the mean algebraic value for RI01
and M01 and stores the result on the stack.
Accumulator = 8.04016
BIF s (Branch If False)
BIF branches to the step number designated by s if the value in the accu-
mulator (the current top of stack location) is 0.0. sptr(after) = sptr(before).
BIF is identical to BIZ
BII s (Branch If Initializing)
BII s branches to the step number designated by s if the CALCA block
is initializing this execution cycle. sptr(after) = sptr(before).
An attempt to branch to a step number less than or equal to the current
step number or greater than the step number containing the END state-
ment (50 if there is no END step) writes a “-4” (invalid goto syntax error)
to the PERROR parameter.
BIN s (Branch If Negative)
BIN s branches to the step number designated by s if the value in the
accumulator (the current top of stack location) is less than 0.0. sptr(after)
= sptr(before).
An attempt to branch to a step number less than or equal to the current
step number or greater than the step number containing the END state-
ment (50 if there is no END step) writes a “-4” (invalid goto syntax error)
to the PERROR parameter.
BIP s (Branch If Positive or Zero)
BIP s branches to the step number designated by s if the value in the
accumulator (the current top of stack location) is greater than or equal to
0.0. sptr(after) = sptr(before).
An attempt to branch to a step number less than or equal to the current
step number or greater than the step number containing the END state-
ment (50 if there is no END step), writes a “-4” (invalid goto syntax error)
to the PERROR parameter.
460
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
461
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
Accumulator = +0.6734592
Example 2:
Accumulator = +0.1086372
27 CHS Change sign of accumulator.
Accumulator = -0.1086372
CLA (Clear All Memory Registers)
CLA clears all 24 memory registers. sptr(after) = sptr(before).
462
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
463
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
Example 2:
M02 = 11.2
11 DEC M02 Decrement M02.
M02 = 10.2
DIV
DIV {RIxx, ROxx, Mxx}
DIV {RIxx, ROxx, Mxx} {n, RIxx, ROxx, Mxx}
(Divide)
DIV reads the values from the top two stack locations, divides the second
operand (divisor) into the first operand (dividend), decrements the stack
pointer, and writes the quotient into the new accumulator location (the
new top of stack location). This overwrites the first operand and isolates
the second operand from any further access. sptr(after) = sptr(before) - 1.
DIV RIxx reads the value stored in RIxx (the CALCA’s Real Input param-
eter xx) as the divisor, divides the value (the dividend) that it pops from
the stack, then pushes the result back onto the stack. DIV ROxx and DIV
Mxx do the same for the values stored at ROxx and memory location xx,
respectively. sptr(after) = sptr(before).
DIV RIxx Mxx reads the values stored in RIxx and Mxx, divides the RIxx
value by the Mxx value, and stores the result on the stack. Whenever both
operands are specified, the first operand is divided by the second operand.
sptr(after) = sptr(before) + 1.
DIV RIxx n reads the value stored in RIxx and a specified integer con-
stant n, divides the RIxx value by n, and stores the result on the stack. If
the first operand is ROxx or Mxx, the operation is similar. sptr(after) =
sptr(before) + 1.
The range of n is 1 to 127.
NOTE
Values of n outside of this range will cause the block to go undefined with a config-
uration error in the appropriate step.
464
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
465
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
BI01
8 sec 8 sec
BO04
466
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
obtained by loading Mxx with the value of -1038. (The delay times obtain-
able with this instruction are effectively unlimited.)
The TIMINI parameter controls DON behavior at block initialization time
to avoid unexpected behavior of the DON timer and, possibly, unpredicted
activation of the CALCA block’s outputs. If the TIMINI parameter is set
(TIMINI = 1) or (TIMINI = 3), the timer is considered to have been in
the expired state just before initialization. A zero-to-one transition of the
accumulator after initialization is required in order to start the timer. If the
TIMINI parameter is not set (TIMINI = 0) or (TIMINI = 2), the timer is
considered to have been in the inactive state just before initialization, and
a logical one in the accumulator at block initialization begins to time the
specified delay. The timer, therefore, begins to run.
In all cases, sptr(after) = sptr(before).
Example:
11 IN BI01 Inputs to the accumulator the state of BI01 at the
execution time of each cycle.
12 DON 7 Looks at BI01’s input to the accumulator, uses it to
control the Step 12 DON timer, and writes the
timer result to the accumulator.
13 OUT BO04 Outputs accumulator contents (the results of the
DON 7 instruction) to output BO04. Assume that
the block is in Auto.
BO04 = Step 12 timer output
BI01
7 sec 7 sec
BO04
DUP (Duplicate)
DUP copies the last stack operand back onto the stack. The stack pointer is
advanced one position. sptr(after) = sptr(before) + 1.
END (End Program)
END terminates the program. Any and all statements (including any addi-
tional END statements) following the first END are never executed. If any
skip statement skips over the first END statement, the block program ter-
minates as if the END had been executed.
The END instruction is not required. If there is no END statement, Step 50
(which may be any legal instruction) is the last statement executed, unless
the execution flow lands on an EXIT statement. sptr(after) = sptr(before).
467
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
468
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
S R Q
0 0 No Change
0 1 0
1 0 1
1 1 No Change
The “No Change” condition causes the value of the flip-flop after the pre-
vious execution cycle, which is retained in a block data variable, to be writ-
ten to the accumulator. sptr(after) = sptr(before) - 1.
Example:
BI01 = True
BI02 = False
12 IN BI01 Puts BI01 into accumulator – has a True value for
“set.”
13 IN BI02 Puts BI02 into accumulator – has a False value for
“reset.” The “set” input is pushed down one stack
location.
14 FF Reads the two operands, determines the output
according to the truth table above (output = 1 for
this example), and writes it into the accumulator,
overwriting “set” input. The output (1) is also stored
in the block data for use the next execution cycle.
Accumulator = True
15 OUT BO01 Writes the accumulator contents (the FF output) to
BO01.
BO01 = True
469
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
470
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
471
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
INC
INC n
INC {ROxx, IOxx, LOxx, Mxx}
(Increment)
INC increments the accumulator or the specified operand.
If blank is specified, the value in the accumulator is read, algebraically
increased by 1.0, and returned to the accumulator, overwriting the origi-
nal contents. If an integer n is specified, the accumulator value is algebra-
ically increased by n and returned to the accumulator.
If Mxx is specified, the value in memory location xx is algebraically
increased by 1.0. The stack is unaffected.
If ROxx is specified and the block is in Auto, the indicated output is alge-
braically increased by 1.0. If the block is in Manual, the step is skipped.
If IOxx or LOxx is specified and the block is in Auto, the indicated output
is incremented by 1 as an integer addition without overflow. If the oper-
and value before incrementation is equal to 32,767 (2,147,483,647 in the
case of LOxx) or the block is in Manual, the step is skipped.
The stack is unaffected when the operand is other than blank or n. In all
cases, sptr(after) = sptr(before).
Example 1:
RI01 = -5.23
10 IN RI01 Places RI01 into the accumulator.
11 INC 2 Increments accumulator by 2.
Accumulator = -3.23 (-5.23 + 2.0)
Example 2:
M02 = 11.2
11 INC M02 Increments M02 by 1.
M02 = 12.2
INH {LIxx, (Input High Order)
LOxx}
INH reads the high order 16 bits of parameter LIxx or LOxx as an integer
and pushes it onto the stack. sptr(after) = sptr(before) + 1.
INL {LIxx, (Input Low Order)
LOxx}
INL reads the low order 16 bits of parameter LIxx or LOxx as an integer
and pushes it onto the stack. sptr(after) = sptr(before) + 1.
INR (Input Indexed Real)
INR {IIxx, Mxx}
INR with blank operand reads the value in the accumulator, truncates it to
an integer, and uses the result as the index of the RIxx parameter to be
read. The value of RIxx is then pushed onto the stack. INR IIxx and INR
Mxx operate similarly, except that the index of the RIxx parameter is found
in IIxx or Mxx. (If in Mxx, the real contents of Mxx are first truncated to
an integer.) sptr(after) = sptr(before) + 1.
472
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
If the value of the index (the contents of the accumulator, IIxx, or Mxx) is
less than 1 or greater than 8, a “10” (index run-time error) is written to the
PERROR parameter.
INS {RIxx, BIxx, IIxx, LIxx, ROxx, BOxx, IOxx, LOxx}
(Input Status)
INS pushes the 16-bit status of the specified input or output parameter
onto the stack. The status value is not modified. sptr(after) = sptr(before) +
1.
The status integer is made up of the following fields: (Bit 0 is the least sig-
nificant bit; Bit 15 is most significant.)
Bit Definition
0 to 4 Data Type
5 to 7 OM Status
8 Bad
9 Secure/Release
10 Acknowledge
11 Out of Service
12 Shadow Parameter
13 Limited High
14 Limited Low
15 Propagated Error
LAC Mxx (Load Accumulator)
LAC Mxx loads the accumulator with contents of memory location xx,
where xx is a one or two digit number, between 01 and 24 (or 1 and 24),
that specifies the specific memory register whose contents are to be loaded
into the accumulator. sptr(after) = sptr(before) + 1.
LACI Mxx (Load Accumulator Indirect)
LACI Mxx loads the accumulator with the contents of a memory register
indexed by the contents of the memory register specified by the Mxx oper-
and, where xx is an index from 01 to 24 (or 1 to 24). Neither memory reg-
ister is affected.
If Mxx does not contain an integer value, the truncated contents are used
as the index.
If the specified memory contents are less than 1 or greater than 24, a “10”
(index run-time error) is written to the PERROR parameter at run-time.
sptr(after) = sptr(before) + 1.
473
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
Example 2:
Accumulator = +0.130570
27 LN Computes natural logarithm of accumulator
Accumulator = 2.035846
LOG (Common Logarithm)
LOG reads the value (which must be positive) in the accumulator, com-
putes the common (base 10) logarithm of the value, and writes the result
to the accumulator, overwriting the original contents. sptr(after) =
sptr(before).
An attempt to execute this instruction with a zero or negative value in the
accumulator causes the instruction to be skipped and writes a “7” (LOG
run-time error) to the PERROR parameter.
Example 1:
Accumulator = +2000.00
17 LOG Computes common logarithm of accumulator.
Accumulator = +3.30103
Example 2:
Accumulator = +0.02000
27 LOG Computes common logarithm of accumulator.
Accumulator = -1.69897
MAX
MAX c
MAX {RIxx, ROxx, Mxx}
MAX {RIxx, ROxx, Mxx} {n, RIxx, ROxx, Mxx}
(Maximum)
474
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
MAX reads all the values from the stack, selects the maximum algebraic
value, decrements the stack pointer, and writes this value into the new
accumulator location (the new top of stack location). This overwrites the
first operand and isolates other operands from any further access.
sptr(after) = stackbottom.
MAX c reads the top c values from the stack, selects the maximum alge-
braic value from the c topmost values on the stack, writes this value into
the c’th position from the top of the stack, and sets the new top of the
stack (the accumulator) to this position. sptr(after) = sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
MAX RIxx reads the value stored in RIxx (the CALCA’s Real Input
parameter xx), selects the maximum algebraic value from the RIxx value
and the value that it pops from the stack, and then pushes the result onto
the stack. MAX ROxx and MAX Mxx do the same for the values stored at
ROxx and memory location xx, respectively. sptr(after) = sptr(before).
MAX RIxx Mxx reads the values stored in RIxx and Mxx, selects the maxi-
mum algebraic value from the RIxx and Mxx values, and stores the result
on the stack. Whenever both operands are specified, the maximum alge-
braic value is selected from the first and second operands. sptr(after) =
sptr(before) + 1.
MAX RIxx n reads the value stored in RIxx and a specified integer con-
stant (n), selects the maximum algebraic value from RIxx and n, and stores
the result on the stack. If the first operand is ROxx or Mxx, the operation
is similar. sptr(after) = sptr(before) + 1.
Example 1:
11 CST Clears the stack.
RI01 = 12.3485
RI02 = 3.73182
RI03 = -2.0037
RI04 = -0.8369
12 IN RI01 Places RI01 into accumulator.
13 IN RI02 Places RI02 into accumulator and pushes the RI01 value
down one stack location.
14 IN RI03 Places RI03 into accumulator and pushes the prior values
down one stack location.
15 IN RI04 Places RI04 into accumulator and pushes the prior values
down one stack location.
16 MAX Selects the maximum algebraic value (12.3485) and
stores this value into the accumulator, overwriting the
RI01 value. The other values are inaccessible.
Accumulator = 12.3485
475
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
Example 2:
RI01 = 12.3485
M01 = 3.73182
11 MAX RI01 M01 Selects the maximum algebraic value from RI01
and M01 and stores the result on the stack.
Accumulator = 12.3485
MAXO Identical to MAX
MEDN (Median)
MEDN reads all the values from the stack, determines the median value,
decrements the stack pointer, and writes this value into the new accumula-
tor location (the new top of stack location). This overwrites the first oper-
and and isolates the other operands from any further access.
The median value is determined as follows: The stack values are arranged
conceptually in ascending order; then the median is the middle value if
the number of operands is odd, or the average of the two middle values if
the number of operands is even. sptr(after) = stackbottom.
Example:
11 CST Clears the stack.
RI01 = 12.3485
RI02 = 3.73182
RI03 = -2.0037
RI04 = -0.8369
12 IN RI01 Places RI01 into accumulator.
13 IN RI02 Places RI02 into accumulator and pushes the RI01 value
down one stack location.
14 IN RI03 Places RI03 into accumulator and pushes the prior values
down one stack location.
15 IN RI04 Places RI04 into accumulator and pushes the prior values
down one stack location.
16 MEDN Computes the average of the two middle values (3.73182
and -0.8369) and stores this value into the accumulator,
overwriting the RI01 value. The other values are
inaccessible.
Accumulator = 1.44746
476
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
MIN
MIN c
MIN {RIxx, ROxx, Mxx}
MIN {RIxx, ROxx, Mxx} {n, RIxx, ROxx, Mxx}
(Minimum)
MIN reads all the values from the stack, selects the minimum algebraic
value, decrements the stack pointer, and writes this value into the new
accumulator location (the new top of stack location). This overwrites the
first operand and isolates the other operands from any further access.
sptr(after) = stackbottom.
MIN c reads the top c values from the stack, selects the minimum alge-
braic value from the c topmost values on the stack, writes this value into
the c’th position from the top of the stack, and sets the new top of the
stack (the accumulator) to this position. sptr(after) = sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
MIN RIxx reads the value stored in RIxx (the CALCA’s Real Input param-
eter xx), selects the minimum algebraic value from the RIxx value and the
value that it pops from the stack, and then pushes the result onto the
stack. MIN ROxx and MIN Mxx do the same for the values stored at ROxx
and memory location xx, respectively. sptr(after) = sptr(before).
MIN RIxx Mxx reads the values stored in RIxx and Mxx, selects the mini-
mum algebraic value from the RIxx and Mxx values, and stores the result
on the stack. Whenever both operands are specified, the minimum alge-
braic value is selected from the first and second operands. sptr(after) =
sptr(before) + 1.
MIN RIxx n reads the value stored in RIxx and a specified integer con-
stant (n), selects the minimum algebraic value from RIxx and n, and stores
the result on the stack. If the first operand is ROxx or Mxx, the operation
is similar. sptr(after) = sptr(before) + 1.
Example 1:
11 CST Clears the stack.
RI01 = 12.3485
RI02 = 3.73182
RI03 = -2.0037
RI04 = -0.8369
12 IN RI01 Places RI01 into accumulator.
13 IN RI02 Places RI02 into accumulator and pushes the RI01
value down one stack location.
14 IN RI03 Places RI03 into accumulator and pushes the prior
values down one stack location.
15 IN RI04 Places RI04 into accumulator and pushes the prior
values down one stack location.
477
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
Example 2:
RI01 = 12.3485
M01 = 3.73182
11 MIN RI01 M01 Selects the minimum algebraic value from RI01
and M01 and stores the result on the stack.
Accumulator = 3.73182
MRS (Master Reset Flip-Flop)
MRS emulates the function of a traditional reset-dominant flip-flop. It uses
two operands on the stack as inputs. The first operand is the “set” input
and the second operand is the “reset” input.
This instruction writes the output, which corresponds to the “Q” output
of a flip-flop, into the accumulator, overwriting the first operand (the “set”
value) and making the second operand (the “reset” value) inaccessible.
Note that the MRS instruction provides the same functionality as the FF,
except that the reset input has priority over the set input. If both inputs
take on a logical one value, the flip-flop is forced to reset.
S R Q
0 0 No Change
0 1 0
1 0 1
1 1 0
The “No Change” condition causes the value of the MRS flip-flop after the
previous execution cycle, which is retained in a block data variable, to be
written to the accumulator. sptr(after) = sptr(before) - 1.
Example:
BI01 = True
BI02 = True
12 IN BI01 Puts BI01 into accumulator – has a True value for “set.”
13 IN BI02 Puts BI02 into accumulator – has a True value for
“reset.” The “set” input is pushed down one stack
location.
478
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
479
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
480
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
Example 2:
BI04 = False
BO01 = True
12 NAND BI04 BO01 Performs the logical NAND of BI04 and
BO01 and stores the result on the stack.
Accumulator = True
NANX (Packed Logical Not And)
NANX c
NANX reads all the values or a specified number (c) of values from the
stack, performs a 16-bit bitwise logical “nand” function on them, and
stores the result into the new accumulator location (the new top of stack).
This overwrites the first operand and isolates the other operands from any
further access. Logical Not And is defined as producing a False output if
all of the inputs are True and a True output if any one of the inputs is
False.
481
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
482
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
If only one operand is specified, the operand is NORed with the accumu-
lator, and the result replaces the accumulator. sptr(after) = sptr(before).
If both operands are specified, the operands are NORed together and the
result is stored in the accumulator. sptr(after) = sptr(before) + 1.
If ~ is specified, the operand value is inverted prior to being used.
Before the operand Mxx is used in the calculation, its value is truncated to
an integer; if the result is 0 the operand value is considered False, other-
wise it is True.
Example 1:
11 CST Clears the stack.
BI01 = True
BI07 = False
BO03 = True
BI14 = True
12 IN BI01 Puts BI01 into accumulator.
13 IN BI07 Puts BI07 into accumulator. The prior value is pushed
down one stack location.
14 IN BO03 Puts BO03 into accumulator. The prior values are
pushed down one stack location.
15 IN BI14 Puts BI14 into accumulator. The prior values are
pushed down one stack location.
16 NOR Performs the logical NOR function, and stores the
result into the accumulator, overwriting the True value
loaded in from BI01. The other values are inaccessible.
Accumulator = False
Example 2:
BI04 = False
BO01 = True
12 NOR BI04 BO01 Performs the logical NOR of BI04 and BO01
and stores the result on the stack.
Accumulator = False
483
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
484
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
485
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
Example 1:
11 CST Clears the stack.
BI01 = True
BI07 = False
BO03 = True
BI14 = True
12 IN BI01 Puts BI01 into accumulator.
13 IN BI07 Puts BI07 into accumulator. The prior value is pushed
down one stack location.
14 IN BO03 Puts BO03 into accumulator. The prior values are
pushed down one stack location.
15 IN BI14 Puts BI14 into accumulator. The prior values are
pushed down one stack location.
16 NXOR Performs the logical NXOR function, and stores result
into accumulator, overwriting the True value loaded in
from BI01. The other values are inaccessible.
Accumulator = False
Example 2:
BI04 = False
BO01 = True
12 NXOR BI04 BO01 Performs the logical NXOR of BI04 and
BO01 and stores the result on the stack.
Accumulator = False
NXOX (Packed Logical Not Exclusive Or)
NXOX c
NXOX reads all the values or a specified number (c) of values from the
stack, performs a 16-bit bitwise logical “nxor” function on them, and
stores the result into the new accumulator location (the new top of stack).
This overwrites the first operand and isolates the other operands from any
further access. Not Exclusive Or is defined as producing a True output for
an even number of True inputs, a False output for an odd number of True
inputs, and a True output if all inputs are False.
For NXOX, sptr(after) = stackbottom. For NXOX c, sptr(after) = sptr(before) - c
+ 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
Each operand is truncated from real to 16-bit integer type before it is used
in the calculation. The final result is stored on the stack as a real value.
486
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
Example:
II01 = 5 (0000000000000101)
II02 = 7 (0000000000000111)
RI01 = 12.078 (0000000000001100)
13 IN II01 Puts II01 into accumulator. The prior value is pushed
down one stack location.
14 IN II02 Puts II02 into accumulator. The prior values are
pushed down one stack location.
15 IN RI01 Puts RI01 into accumulator. Value is truncated to 12
and used as 0000000000001100 in the calculation.
The prior values are pushed down one stack location.
16 NXOX 3 Performs the packed logical NXOX function and stores
the result, 1111111111110001, into the accumulator,
overwriting the value loaded in from II01. The other
values are inaccessible.
Accumulator = -15.0
OR
OR c
OR {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
OR {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx} {BIxx, BOxx,
Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
(Logical Or)
OR performs a logical “or” of the contents of the specified operands and
stack locations.
If blank is specified, all stack locations are ORed together, and the result is
written into the accumulator (the new top of stack location). This over-
writes the first operand and isolates the other operands from any further
access. sptr(after) = stackbottom.
If c is specified, the last c stack locations are ORed together, removed from
the stack, and the result stored in the accumulator. sptr(after) = sptr(before)
- c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
If only one operand is specified, the operand is ORed with the accumula-
tor, and the result replaces the accumulator. sptr(after) = sptr(before).
If both operands are specified, the operands are ORed together and the
result is stored in the accumulator. sptr(after) = sptr(before) + 1.
If ~ is specified, the operand value is inverted prior to being used.
Before the operand Mxx is used in the calculation, its value is truncated to
an integer; if the result is 0 the operand value is considered False, other-
wise it is True.
487
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
Example 1:
11 CST Clears the stack.
BI01 = True
BI07 = False
BO03 = True
BI14 = True
12 IN BI01 Puts BI01 into accumulator.
13 IN BI07 Puts BI07 into accumulator. The prior value is pushed
down one stack location.
14 IN BO03 Puts BO03 into accumulator. The prior values are
pushed down one stack location.
15 IN BI14 Puts BI14 into accumulator. The prior values are
pushed down one stack location.
16 OR Performs the logical OR function, and stores result
into accumulator, overwriting the True value loaded in
from BI01. The other values are inaccessible.
Accumulator = True
Example 2:
BI04 = False
BO01 = True
12 OR BI04 BO01 Performs the logical OR of BI04 and BO01 and
stores the result on the stack.
Accumulator = True
ORX (Packed Logical Or)
ORX c
ORX reads all the values or a specified number (c) of values from the stack,
performs a 16-bit bitwise logical “or” function on them, and stores the
result into the new accumulator location (the new top of stack). This over-
writes the first operand and isolates the other operands from any further
access.
For ORX, sptr(after) = stackbottom. For ORX c, sptr(after) = sptr(before) - c +
1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
Each operand is truncated from real to 16-bit integer type before it is used
in the calculation. The final result is stored on the stack as a real value.
488
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
Example:
11 CST Clears the stack.
BI01 = True (0000000000000001)
II01 = 5 (0000000000000101)
II02 = 0 (0000000000000000)
RI01 = 12.078 (0000000000001100)
12 IN BI01 Puts BI01 into accumulator. Stored as 1.0 and used as
0000000000000001 in the calculation.
13 IN II01 Puts II01 into accumulator. The prior value is pushed
down one stack location.
14 IN II02 Puts II02 into accumulator. The prior values are pushed
down one stack location.
15 IN RI01 Puts RI01 into accumulator. Value is truncated to 12
and used as 0000000000001100 in the calculation. The
prior values are pushed down one stack location.
16 ORX Performs the packed logical OR function and stores the
result, 0000000000001101, into the accumulator,
overwriting the value loaded in from BI01. The other
values are inaccessible.
Accumulator = 13.0
OSP (One-Shot Pulse)
OSP t
OSP with blank operand or with a 0 constant operand uses 0.5 seconds as
OSP Mxx
its pulse width value. If the operand is integer t and greater than zero the
value of t indicates the number of seconds in the pulse width. If the oper-
and is Mxx, then the pulse width is determined by the contents of mem-
ory location xx. A positive value in Mxx is used as the pulse width in
seconds, and a negative value is used as the pulse width in block execution
cycles. If the value of the memory location changes during the timing
cycle, the instruction will notice the change.
The maximum pulse width with format OSP t is 32,767 seconds, or
approximately 9.1 hours. The maximum pulse width with format OSP
Mxx can be obtained by loading the maximum positive floating point
value into Mxx, before the OSP Mxx instruction is reached in the program.
Since the maximum floating point value is 1038, the pulse width is 1038
seconds. If the block period is longer than 1.0 second, an even longer
pulse width can be obtained by loading Mxx with the value of -1038. (The
pulse widths obtainable with this instruction are effectively unlimited.)
OSP generates a non-retriggerable (triggering is disabled while the output
is true) one-shot pulse when the accumulator value makes a zero-to-one
transition. The output remains true for a period specified by the operand,
after which the block resets the output to zero.
The TIMINI parameter controls OSP behavior at block initialization time
to avoid unexpected behavior of the OSP element and, possibly, unpre-
dicted activation of the CALCA block’s outputs. If the TIMINI parameter
is set (TIMINI = 1) or (TIMINI = 3), the pulse is considered to have been
489
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
BI01
5 sec
BO04
490
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
OUT does not alter the contents or location of the accumulator. sptr(after)
= sptr(before).
Example:
Accumulator = 3.1416
OUT IO02 Writes accumulator value to output IO02.
OUT RO02 Writes accumulator value to output RO02.
OUT ~BO01 Writes accumulator value to output BO01.
IO02 = 3
RO02 = 3.1416
BO01 = False
POP (Pop Stack)
POP removes the value at the top of the stack and discards it. The stack
pointer is decremented to point to the next value on the stack. sptr(after) =
sptr(before) - 1.
PRI ROxx (Propagate Upstream)
PRI allows you to propagate cascade status and bad status from a specified
RInn input, to a specified ROnn output. The RInn input index is loaded
onto the stack by a prior instruction.
This instruction copies the LHI, LLO, INITU, INITC, FS, BAD, and
OOS bits from the status field of RInn to the status field of the ROnn
output. If this operation causes any of these bits to be changed in the sta-
tus of ROnn, an immediate execution of the upstream block is requested.
sptr(after) = sptr(before) - 1.
If the popped index value for RIxx is less than 1 or greater than 8, a “-3”
(out-of-range syntax error value, treated as a run-time error) is written to
the PERROR parameter.
Example:
31 IN 4 Loads “4” onto the stack to specify the RI04 will be
used by the PRI instruction.
32 PRI RO02 Propagates the LHI, LLO, INITU, INITC, FS, BAD
and OOS status bits, from RI04 to real output RO02.
PRO ROxx (Propagate Downstream)
PRO allows you to propagate the cascade acknowledgment from a specified
RIxx input to the specified ROxx output. The RIxx input index is loaded
onto the stack by a prior instruction, and popped from the stack when it is
used. sptr(after) = sptr(before) - 1.
This instruction copies the PRIBLK initialization acknowledgment bit
(the Acknowledge status bit) from RIxx to ROxx.
If the popped index value for RIxx is less than 1 or greater than 8, a “-3”
(out-of-range syntax error value, treated as a run-time error) is written to
the PERROR parameter.
491
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
Example:
41 IN 5 Loads “5” onto the stack to specify that RI05 will
be used by the PRO instruction.
42 PRO RO03 Propagates the PRIBLK initialization
acknowledgment bit in RI05 to real output RO03.
PRP ROxx (Propagate Errors)
PRP allows you to propagate certain types of RIxx input errors to the spec-
ified ROxx output. The RIxx inputs whose error conditions are to be
propagated are specified by a mask on the stack, loaded by a prior instruc-
tion. The mask is popped from the stack after it is used. sptr(after) =
sptr(before) - 1.
This instruction sets the ERROR status bit of the specified output oper-
and if any of the specified RIxx inputs are in error. An RIxx input is con-
sidered to be in error when:
Its BAD status bit is true, or
Its Out-of-Service (OOS) status bit is true, or
Its ERROR status bit is true, or
It is experiencing peer-to-peer path failure.
If all masked inputs have the same status, for example, all OOS or all
BAD bits are set, the output will have this status set, in addition to setting
ERROR.
Example:
12 IN H29 Puts Hexadecimal 29 into accumulator.
13 PRP RO02 Propagates any error in RI03 or RI05 or RI08 to the
real output RO02.
where:
7 6 5 4 3 2 1 0
RI01
RI02
RI03
RI04
RI05
RI06
RI08
RI08
0 0 1 0 1 0 0 1
{
{
2 9 H29
492
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
493
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
494
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
Example 2:
26... Assume that the accumulator has value of -1.68 after Step 26.
27 RND Accumulator has value of -2.0 after Step 27.
RON {RIxx, IIxx, LIxx, BIxx, ROxx, IOxx, LOxx, BOxx}
(Read In-Service Status)
RON reads the Out-of-Service status bit of the specified parameter and
writes the inverse of its value to the accumulator. (1 = True = OOS bit not
set = parameter in service, 0 = False = OOS bit set = parameter out-of-ser-
vice).
The result of the RON instruction is always the inverse of the result of the
ROO instruction. sptr(after) = sptr(before) + 1.
ROO {RIxx, IIxx, LIxx, BIxx, ROxx, IOxx, LOxx, BOxx}
(Read OOS Bit)
ROO reads the Out-of-Service status bit of the specified parameter and
writes its value to the accumulator. (1 = True = OOS bit set, 0 = False =
OOS bit not set.)
The result of the ROO instruction is always the inverse of the result of the
RON instruction. sptr(after) = sptr(before) + 1.
495
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
496
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
497
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
498
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
If this instruction is the last or next-to-last step in the CALCA block pro-
gram and the accumulator is positive or zero, the operand is set and then
the block program terminates.
When the block is in Manual, the outputs ROxx, BOxx, IOxx, and LOxx
are unchanged, but the skip action still occurs based on the value of the
accumulator. sptr(after) = sptr(before).
SST {ROxx, BOxx, IOxx, LOxx, Mxx}
(Set and Skip if True)
SST sets the specified operand to 1.0 (if ROxx or Mxx) or 1 (if IOxx or
LOxx) or True (if BOxx) and skips the next program step when the accu-
mulator is non-zero. Otherwise the instruction is ignored and the next
instruction in sequence is executed.
If this instruction is the last or next-to-last step in the CALCA block pro-
gram and the accumulator is non-zero, the operand is set and then the
block program terminates.
When the block is in Manual, the outputs ROxx, BOxx, IOxx, and LOxx
are unchanged, but the skip action still occurs based on the value of the
accumulator. sptr(after) = sptr(before).
SSZ {ROxx, BOxx, IOxx, LOxx, Mxx}
(Set and Skip if Zero)
SSZ sets the specified operand to 1.0 (if ROxx or Mxx) or 1 (if IOxx or
LOxx) or True (if BOxx) and skips the next program step when the accu-
mulator value is 0.0. Otherwise the instruction is ignored and the next
instruction in sequence is executed.
If this instruction is the last or next-to-last step in the CALCA block pro-
gram and the accumulator is zero, the operand is set and then the block
program terminates.
When the block is in Manual, the outputs ROxx, BOxx, IOxx, and LOxx
are unchanged, but the skip action still occurs based on the value of the
accumulator. sptr(after) = sptr(before).
STH LOxx (Store High Order)
STH stores the last stack value into the high order integer of the specified
long integer output (LOxx), after type conversion into an unsigned inte-
ger. The output is changed only when the block is in Auto, otherwise the
instruction is skipped. sptr(after) = sptr(before).
STL LOxx (Store Low Order)
STL stores the last stack value into the low order integer of the specified
long integer output (LOxx), after type conversion into an unsigned inte-
ger. The output is changed only when the block is in Auto, otherwise the
instruction is skipped. sptr(after) = sptr(before).
499
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
500
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
SWP
SWP {ROxx, BOxx, IOxx, Mxx}
(Swap)
SWP with no argument causes the contents of the last two positions on the
stack to be interchanged. The stack pointer is not moved.
SWP ROxx swaps the contents of the last position on the stack with that of
output ROxx. If the block is not in Auto, the value of ROxx is copied to
the stack, but the stack value is not copied to ROxx.
SWP BOxx swaps the contents of the last position on the stack with that of
output BOxx. A True value in BOxx is converted to 1.0 on the stack, and
a False value is converted to 0.0 on the stack. Any non-zero value on the
stack is converted to True in BOxx, and a 0.0 value is converted to False in
BOxx. If the block is not in Auto, the swap is treated as in the ROxx case.
SWP IOxx swaps the contents of the last position on the stack with that of
output IOxx. The accumulator value is clamped between 32,767.0 and -
32,768.0 before the swap. If the block is not in Auto, the swap is treated as
in the ROxx case.
SWP Mxx swaps the contents of the last position on the stack with that of
memory location Mxx.
In all cases, sptr(after) = sptr(before).
TAN (Tangent)
TAN reads the value (value of the angle in radians) in the accumulator,
computes the tangent of the angle, and writes the result into the accumu-
lator, overwriting the original contents. sptr(after) = sptr(before).
Example:
Accumulator = +0.7853983 (Pi/4) radians.
(Pi/4 radians = 45 degrees)
17 TAN Computes tangent of accumulator.
Accumulator = +1.0000
TIM (Time Since Midnight)
TIM gets the time, in seconds since midnight, and pushes it onto the stack
sptr(after) = sptr(before) + 1.
TRC (Truncate)
TRC reads the number in the accumulator, truncates the mantissa, or deci-
mal portion, and writes the result into the accumulator as a floating point
value, overwriting the original value. sptr(after) = sptr(before).
Example:
Accumulator = 43.999
17 TRC Truncates the accumulator
Accumulator = 43.0
TSTB (Test Packed Boolean)
TSTB b
501
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
TSTB tests a specified bit in the accumulator. If blank is specified the bit
number is expected to be at the top of the stack and this bit number is
removed from the stack before the instruction is executed. sptr(after) =
sptr(before) - 1.
If the bit number is less than 1 or greater than 16 an “11” (bit error run-
time error) is written to the PERROR parameter.
If the argument b is specified it indicates a bit number between 1 and 16
in the accumulator. The stack is not popped in this case. sptr(after) =
sptr(before).
Bit 1 is the most significant bit of the accumulator, and bit 16 the least sig-
nificant.
If the tested bit is 0, the value False (0.0) replaces the accumulator; if it is
1, the value True (1.0) replaces the accumulator.
XOR
XOR c
XOR {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
XOR {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx} {BIxx,
BOxx,
Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
(Logical Exclusive Or)
XOR performs a logical “xor” of the contents of the specified operands and
stack locations. Exclusive Or is defined as producing a True output for an
odd number of True inputs, a False output for an even number of True
inputs, and a False output if all inputs are False.
If blank is specified, all stack locations are XORed together, and the result
is written into the accumulator (the new top of stack location). This over-
writes the first operand and isolates the other operands from any further
access. sptr(after) = stackbottom.
If c is specified, the last c stack locations are XORed together, removed
from the stack, and the result stored in the accumulator. sptr(after) =
sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
If only one operand is specified, the operand is XORed with the accumu-
lator, and the result replaces the accumulator. sptr(after) = sptr(before).
If both operands are specified, the operands are XORed together and the
result is stored in the accumulator. sptr(after) = sptr(before) + 1.
If ~ is specified, the operand value is inverted prior to being used.
Before the operand Mxx is used in the calculation, its value is truncated to
an integer; if the result is 0 the operand value is considered False, other-
wise it is True.
502
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
Example 1:
11 CST Clears the stack.
BI01 = True
BI07 = False
BO03 = True
BI14 = True
12 IN BI01 Puts BI01 into accumulator.
13 IN BI07 Puts BI07 into accumulator. The prior value is pushed
down one stack location.
14 IN BO03 Puts BO03 into accumulator. The prior values are
pushed down one stack location.
15 IN BI14 Puts BI14 into accumulator. The prior values are
pushed down one stack location.
16 XOR Performs the logical XOR function, and stores result
into accumulator, overwriting the value loaded in from
BI01. The other values are inaccessible.
Accumulator = True
Example 2:
BI04 = False
BO01 = True
12 XOR BI04 BO01 Performs the logical XOR of BI04 and BO01
and stores the result on the stack.
Accumulator = True
XORX (Packed Logical Exclusive Or)
XORX c
XORX reads all the values or a specified number (c) of values from the
stack, performs a 16-bit bitwise logical “xor” function on them, and stores
the result into the new accumulator location (the new top of stack). This
overwrites the first operand and isolates the other operands from any fur-
ther access. Exclusive Or is defined as producing a True output for an odd
number of True inputs, a False output for an even number of True inputs,
and a False output if all inputs are False.
For XORX, sptr(after) = stackbottom. For XORX c, sptr(after) = sptr(before) - c
+ 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
Each operand is truncated from real to 16-bit integer type before it is used
in the calculation. The final result is stored on the stack as a real value.
Example:
II01 = 5 (binary 0000000000000101)
II02 = 7 (binary 0000000000000111)
LI01 =12 (binary
00000000000000000000000000001100)
503
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
504
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
The syntax error codes for the PERROR parameter are listed in Table 15-15.
Code Definition
-1 Invalid operation code
-2 Invalid operand type
-3 Out of range operand index
-4 Invalid go to step number
The run-time error codes for the PERROR parameter are listed in Table 15-16.
Code Definition
1 SQRT error (accumulator < 0)
2 ASIN error (absolute value of accumulator > 1)
3 ACOS error (absolute value of accumulator > 1)
4 DIV error (divide by zero)
5 Stack overflow
6 Stack underflow
7 LOG error (accumulator 0)
8 LN error (accumulator 0)
9 EXP error (base < 0)
10 Index error
11 Bit error
505
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
3. Boolean Variables – Parameters BIxx and BOxx, and pseudo-parameters Ixx and Oxx.
Boolean variables can be optionally inverted before use. For information on pseudo-
parameters, see “Instruction Syntax” on page 448.
4. Other Constants – In addition to arguments of type “n” used as integer variables in
the calculation, constant command line arguments are also used to represent a timer
constant (“t”), a program step number (“s”), a bit number (“b”), or the number of
stack operands to be used (“c”).
The opcode and any required arguments for a program step are entered in the STEPxx position of
the Control Configurator screen.
Arithmetic Examples
Example 1 illustrates an instruction that uses two operands to compute the result. Example 2
shows an instruction involving more than two operands.
Example 1 – Calculate (RI01 * RI02) and output the result to RO01:
STEP01 MUL RI01 RI02 Multiplies Real Input 1 by Real Input 2 and stores the results
on the stack.
STEP02 OUT RO01 Writes the product of RI01 and RI02 to RO01.
506
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
RI01
Program Function
Select Real Input 1 if
it is positive; other- SELECTOR LOGIC RO01
wise, select Real IN CALCA BLK
Input 2.
RI02
Example:
STEP01 IN RI01 Reads Real Input 1.
STEP02 BIP 04 Branches if value is positive.
STEP03 IN RI02 Reads Real Input 2.
STEP04 OUT RO01 Writes selected real input to output.
507
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
6 5 1 4 2 3
Prod1
Prod2
Diff
Quotient
Root
Prod3
Figure 15-9. Arithmetic Chaining Example, Operation Sequence
STEP01 MUL RI01 RI02 Multiplies RI01 value by RI02 value and pushes
product (Prod1) onto stack.
STEP02 MUL RI03 RI04 Multiplies RI03 value by RI04 value and pushes
product (Prod2) onto stack.
STEP03 IN 1 Pushes constant “1” onto stack.
STEP04 SUB Pops Prod2 and constant “1” from stack, subtracts 1
from Prod2, and pushes difference (Diff ) onto stack.
STEP05 DIV Pops Prod1 and Diff from stack, divides Prod1 by Diff,
and pushes results (Quotient) onto stack.
STEP06 SQRT Pops Quotient from stack, computes the square root of
Quotient, and pushes the result (Root) onto stack.
STEP07 MUL RI05 Pops Root from stack, multiplies it by RI05 value, and
pushes product (Prod3) onto stack.
STEP08 OUT RO01 Writes Prod3 to RO01, and Prod3 remains in
position 1 on stack.
STEP9 END
508
15. CALCA – Advanced Calculator Block B0193AX – Rev AB
1 2 3 4 5
MUL MUL IN SUB DIV SQRT
STEP01 STEP02 STEP03 STEP04 STEP05 STEP06
S3 1
S2 Prod2 S2 Prod2 S2 Diff
S1 Prod1 S1 Prod1 S1 Prod1 S1 Prod1 S1 Quotient S1 Root
Stack
Registers
(up to 24)
6
MUL OUT LEGEND:
STEP07 STEP08
Stack Stack
[RO01] Push Pop
S1 Prod3
Example:
STEP01 SUB RI01 90 Substracts constant “90.0” from Real Input 1.
STEP02 BIN 5 Branches to Step 5 if difference is negative.
STEP03 IN 90 Reads constant “90.0” and pushes it onto stack.
STEP04 GTO 10 Branches to Step 10.
STEP05 SUB RI01 10 Substracts constant “10.0” from Real Input 1.
STEP06 BIP 09 Branches to Step 09 if difference is positive.
509
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block
By configuring the memory registers M01 to M24 with appropriate clamping values, the lack of
output clamping in the CALCA block can be overcome by the use of a program similar to the pre-
ceding one.
510
16. CHARC – Characterizer Block
This chapter covers the Characterizer, or CHARC, block, its features, parameters and detailed
operations.
16.1 Overview
The Characterizer block (CHARC) simulates signal characterization by building a “piecewise” lin-
ear characteristic curve of up to 20 segments. The MEAS is the block input. You determine the
output characteristic and construct the curve using up to 21 separate break points. In operation,
the block produces an output based on the MEAS and the user-specified characteristic curve.
Manual/Auto
Output
Measurement CHARC
BLOCK Block Status
Out-of-Range
Alarm Limit
Alarm Priority
16.2 Features
The features are:
20 segment characterization curve
Specifiable interpolation interval
Discontinuous signal characterization through a specifiable step function
Auto/Manual
Input/Output assignable engineering units and range
Output clamping between the output specified span limits
Full support for cascade initialization.
The options are:
Extender Block Option (EXTOPT) which allows the CHARC block to function as an
extension to an AIN or MAIN block, for signal conditioning and for performing ther-
mocouple compensation.
Out-of-range alarming (ORAO).
Error propagation (PROPT and EROPT).
511
B0193AX – Rev AB 16. CHARC – Characterizer Block
16.3 Parameters
Table 16-1. CHARC Block Parameters
512
16. CHARC – Characterizer Block B0193AX – Rev AB
ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use. For the CHARC block, only the following unshaded bits
are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
513
B0193AX – Rev AB 16. CHARC – Characterizer Block
Bit Number1
(0 to 31) Configured Alarm Option When True
0 Alarm Group 8 in Use
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use
28 Out-of-Range Alarm Configured
1.
Bit 0 is the least significant, low order bit.
ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the CHARC block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
OOR B4
B5
B6
B7
B8
B9
CRIT PRTYPE
INH
Bit Boolean
Number Connection
(0 to 31)* Name Description When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: See parameter ALMSTA.B32–
PRTYPE for values used in ALMSTA.B28
the AIN block
5 to 7 CRIT_MSK Criticality; 5 = lowest ALMSTA.B27–
priority, 1= highest ALMSTA.B25
28 OOR Out of Range Alarm ALMSTA.B4
29 INH Alarm inhibit ALMSTA.B3
30 UNAK Unacknowledged ALMSTA.B2
AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is gen-
erated.
BCALCI Back Calculation In is a real input that provides the initial value of the
output before the block enters the controlling state, so that the return to
controlling is bumpless. It is also the source of the output value when its
integration bit, which puts the block into output tracking, is non-zero.
The source for this input is the back calculation output (BCALCO) of the
downstream block. With V4.2 and later software, BCALCI contains the
cascade initialization data bits which were formerly contained in the
514
16. CHARC – Characterizer Block B0193AX – Rev AB
BCALCO Back Calculation Output is a real output that is passed upstream for
bumpless initialization purposes. It is the inverse interpolation of the out-
put and is the value for the upstream block to write to avoid bumping the
process.
With V4.2 and later software, BCALCO contains the initialization output
which was formerly contained in the INITO parameter. The initialization
output data bit is set true when:
the block is in manual or initializing
the downstream block has passed an initialization request via the
BCALCI input of this block.
The block clears the initialization bit when none of those conditions exist.
If you expect an upstream block to initialize when this one is doing so, you
connect BCALCO to the BCALCI input of the upstream block so that
the block can sense when this block is in open cascade condition.
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate the block’s opera-
tional states. For the CHARC block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
MAO
ON
MA
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
11 MA Manual(= false)/Auto(= true) BLKSTA.B21
14 UDEF Undefined BLKSTA.B18
15 ON Compound On BLKSTA.B17
20 WLCK Workstation Lock BLKSTA.B12
26 MAO Manual/Auto Override BLKSTA.B6
CRIT Criticality is an integer output that indicates the priority, ranging from 1
to 5, of the block’s highest currently active alarm (1 is the highest priority).
An output of zero indicates the absence of alarms.
515
B0193AX – Rev AB 16. CHARC – Characterizer Block
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. In that case, no further processing of the block occurs. To return
DEFINE to a true value, correct all configuration errors and re-install the
block.
DELTI1 Change Delta for Input Range 1 is a real value that defines the minimum
percent of the input range that triggers change driven connections for
parameters in the range of RI1. The default value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.
DELTO1 Change delta for Output Range 1 is a configurable real value that defines
the minimum percent of the output range that triggers change-driven
connections for parameters in the range RO1. The default value is 1.0 per-
cent. If communication is within the same control station that contains
the block’s compound, DELTO1 has no effect.
ENDP End Point is an integer input that specifies the index number of the break-
point at which the active portion of the characterization curve ends. The
default value of 21 closes the active portion of the curve at (X_21, Y_21).
You can change ENDP only by reconfiguring the block. ENDP must be
greater than STARTP.
ERCODE Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the block’s
DEFINE parameter to be set false, but not the warning situations. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. The block detailed display shows the ERCODE
516
16. CHARC – Characterizer Block B0193AX – Rev AB
on the primary page, if it is not null. For the CHARC block, the following
list specifies the possible values of ERCODE, and the significance of each
value in this block:
Message Value
“W43 – INVALID PERIOD/ PHASE does not exist for given
PHASE COMBINATION” block PERIOD, or block
PERIOD not compatible with
compound PERIOD.
“W44 – INVALID High range value is less than or
ENGINEERING RANGE” equal to low range value.
“W46 – INVALID INPUT The source parameter specified in
CONNECTION” the input connection cannot be
found in the source block, or the
source parameter is not connect-
able, or an invalid boolean exten-
sion connection has been
configured.
“W53 – INVALID A parameter value is not in the
PARAMETER VALUE” acceptable range. The
X_parameters for STARTP to
ENP are not monotonically
increasing.
“W58 – INSTALL ERROR; A Database Installer error has
DELETE/UNDELETE BLOCK” occurred.
EROPT Error Option is a short integer. If PROPT is true, EROPT specifies how
the block responds to MEAS when the MEAS parameter is in error.
EROPT has a range of 0 to 2, where:
0= The block ignores the errors.
1= The block sets the ERROR bit in OUT if the MEAS parame-
ter:
has its BAD status bit set true;
has its OOS status bit set true;
is experiencing peer-to-peer path failure.
2= The block sets the ERROR bit in OUT if the MEAS parame-
ter:
has its BAD status bit set true;
has its OOS status bit set true;
has its ERROR status bit set true;
is experiencing peer-to-peer path failure.
517
B0193AX – Rev AB 16. CHARC – Characterizer Block
EXTOPT Extender Block Option is a short integer input that allows the block to be
used as an extension to a host block.
0 = Non-extender
1 = Standard characterization extender
2 = Thermocouple signal conversion extender
The host block’s EXTBLK parameter must be linked to this block’s BLK-
STA parameter. This block and its host block must reside in the same
compound, and this block must precede (that is, must be installed in the
CP database before) the host block, to avoid having the host go to the
Undefined state. When the host block runs, it passes control to the
extender block. When the extender block finishes its calculations, the host
block regains control.
When the EXTOPT parameter is set to 1 or 2, indicating that the block is
running as an extender, the PHASE parameter is set to -1. The CONFIG
overlay for the CHARC block detail display shows -1 for the PHASE
parameter when the extender block option (EXTOPT) is set.
HOR High Out-of-Range is a boolean output that is set true if any one of the
following cases occurs:
The upper range of an RTD table has been exceeded during RTD
signal conversion.
The upper range of the 100 ohms IEC table has been exceeded
during cold junction compensation for thermocouple signal
conversion.
The compensated millivolt value of a thermocouple signal conver-
sion has exceeded the upper range of the SCI table in use.
The compensated millivolt value of a special thermocouple signal
conversion has exceeded the upper range of the characterizer
block.
The raw high value of a linear/square root signal conversion has
been exceeded.
The upper end-point of the characterizer has been exceeded in a
characterizer signal conditioning.
The output has been modified due to clamping based on HSCO1.
HSCI1 High Scale for Input Range 1 is a real value that defines the upper limit of
the measurement ranges. EI1 defines the units. Make the range and units
consistent with the measurement source. A typical value is 100 (percent).
HSCO1 High Scale for Output Range 1 is a real value that defines the upper limit
of the ranges for Output 1. A typical value is 100 (percent). EO1 define
the units. Make the range and units consistent with those of the output
destination.
518
16. CHARC – Characterizer Block B0193AX – Rev AB
INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting. Alarms may also be inhibited based on the compound parameter
CINHIB.
INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do
not disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the
time the alarm transitions into the inhibited state, clear the
alarm indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.
INHSTA Inhibit Status contains packed long values that represent the actual inhibit
status of each alarm type configured in the block. For the CHARC block,
only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNACK B2
B3
B4
B5
B6
B7
B8
B9
OOR
INH
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
28 OOR Out-of-Range Alarm Inhibited INHSTA.B4
29 INH Inhibit Alarm INHSTA.B3
30 UNACK Unacknowledged INHSTA.B2
* Bit 0 is the least significant, low order bit.
519
B0193AX – Rev AB 16. CHARC – Characterizer Block
INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state as specified in the checkpoint file.
The block asserts this initial M/A state whenever:
It is installed into the Control Processor database.
The Control Processor undergoes a reboot operation.
The compound in which it resides is turned on.
The INITMA parameter itself is modified via the control configu-
rator. (The block does not assert INITMA on ordinary
reconfiguration.)
INITMA is ignored if MA has an established linkage.
INITO Initialization Output is set true when the primary cascade is open for any
reason, and returned to false when cascade closure is detected. The INITO
output of a downstream block is normally connected to the INITI of the
next upstream block, and serves to notify the upstream block of the open
loop condition. The information conveyed by the short value of INITO is
currently contained in the status bits of BCALCO, but INITO/INITI
have been retained for reasons of backward compatibility. This block
keeps INITO True, for one cycle (PRIBLK = 0), until the acknowledge is
received from upstream (PRIBLK = 1 and PRITIM = 0.0), or for a fixed
time delay (PRIBLK = 1 and PRITIM = nonzero).
LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-char-
acter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.
LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation
identifier accompanying the SETVAL command is entered into the
LOCKID parameter of the block. Thereafter, set requests to any of the
block’s parameters are honored (subject to the usual access rules) only
from the workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set false by any workstation at any time, whereupon a
new LOCKRQ is accepted, and a new ownership workstation identifier
written to LOCKID.
520
16. CHARC – Characterizer Block B0193AX – Rev AB
LOR Low Out-of-Range is a boolean output that is set true if any one of the fol-
lowing cases occurs:
The lower range of an RTD table has been exceeded during RTD
signal conversion.
The lower range of the 100 ohms IEC table has been exceeded
during cold junction compensation for thermocouple signal
conversion.
The compensated millivolt value of a thermocouple signal conver-
sion has exceeded the lower range of the SCI table in use.
The compensated millivolt value of a special thermocouple signal
conversion has exceeded the lower range of the characterizer block.
The raw low value of a linear/square root signal conversion has
been exceeded.
The lower end-point of the characterizer has been exceeded in a
characterizer signal conditioning.
The output has been modified due to clamping based on LSCO1.
LSCI1 Low Scale for Input Range 1 is a real value that defines the lower limit of
the measurement ranges. A typical value is 0 (percent). EI1 defines the
units. Make the range and units consistent with those of the measurement
source.
LSCO1 Low Scale for Output Range 1 is a real value that defines the lower limit of
the ranges for Output 1. A typical value is 0 (percent). EO1 defines the
units. Make the range and units consistent with those of the output desti-
nation.
MEAS Measurement is an input identifying the source of the block’s input, or the
controlled variable.
ORAG Out-of-Range Alarm Group is a short integer input that directs Out-of-
Range alarm messages to one of eight groups of alarm devices.
521
B0193AX – Rev AB 16. CHARC – Characterizer Block
OUT Output, in Auto mode, is the result of the block algorithm applied to one
or more input variables. In Manual, OUT is unsecured, and can be set by
you or by an external task.
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)
Period Length Period Length
0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****
* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
****If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
522
16. CHARC – Characterizer Block B0193AX – Rev AB
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).
NOTE
When the EXTOPT parameter is set to 1 or 2, indicating that the block is running
as an extender, the PHASE parameter is set to -1. The CONFIG overlay for the
CHARC block detail display shows -1 for the PHASE parameter when the extender
block option (EXTOPT) is set.
PRITIM Primary Cascade Timer is a configurable parameter used to delay the clos-
ing of the cascade to a primary block, when the output is initialized in the
CHARC block. It is used only if the PRIBLK option is set. The cascade is
closed automatically when the timer expires without requiring an explicit
acknowledge by the upstream block logic.
Refer to “PRIBLK and PRITIM Functionality” on page 528 for more
information on this parameter.
PROPT Propagate Error Option is a boolean input. When true, PROPT sets the
ERROR status bit of the output parameter if the input to the MEAS
parameter is in error while the block is in Auto. The input to the MEAS
parameter is in error when:
Its BAD status bit is set true.
Its OOS (Out-of-Service) status bit is set true.
Its ERROR status bit is set true.
523
B0193AX – Rev AB 16. CHARC – Characterizer Block
PRSCAS Present Cascade State is a data store that indicates the cascade state. It has
the following possible values:
Value State Description
1 “INIT_U” unconditional initialization of the primary
cascade is in progress.
2 “PRI_OPN” the primary cascade is open.
3 “INIT_C” conditional initialization of the primary
cascade is in progress.
4 “PRI_CLS” the primary cascade is closed.
RI1 Range Input is an array of real values that specify the high and low engi-
neering scale and change delta of a particular real input. For a given block,
it also forms an association with a group of real input parameters that have
the same designated range and change delta.
RO1 Range Output is an array of real values that specify the high and low engi-
neering scale of a particular real output. For a given block, it also forms an
association with a group of real output parameters that have the same des-
ignated range.
STARTP Start Point is an integer input that specifies the index number of the
breakpoint at which the active portion of the characterization curve
begins. The default value of 1 starts the active portion of the curve at
(X_1, Y_1). You can change STARTP only by reconfiguring the block.
STARTP must be less than ENDP.
STPOPT Step Function Option enables the discontinuous step function and
disables the interpolation function in the CHARC block
TYPE When you enter “CHARC” or select “CHARC” from the block type list
under Show, an identifying integer is created specifying this block type.
UNACK Unacknowledge is a boolean output that the block sets to True when it
detects an alarm. It is typically reset by operator action.
X_1 to X_21 X_1 through X_21 are the abscissa values of the first through the twenty-
first breakpoints in the series of line segments that make up the character-
524
16. CHARC – Characterizer Block B0193AX – Rev AB
Y_1 to Y_21 Y_1 through Y_21 are the ordinate values of the first through the twenty-
first breakpoints in the series of line segments that make up the character-
ization curve. Y values are outputs in this curve and take on the range and
units of the output (HSCO1, LSCO1, and EO1).
525
B0193AX – Rev AB 16. CHARC – Characterizer Block
526
16. CHARC – Characterizer Block B0193AX – Rev AB
MA
OUT (EO1)
(X21, Y21)
HSCO1
ENDP(21)
(X20, Y20)
(X2, Y2)
MEAS OUT
(X3, Y3)
STARTP(1) (X1, Y1)
Interpolation * MEAS
Interval (EI1)
LSCO1
When EXTOPT is set, the CHARC block performs ordinary characterization (EXTOPT = 1) or
thermocouple compensation (EXTOPT = 2). The reference value is supplied by the AIN or
MAIN block connected to the extension. If XREFOP is set in the AIN/MAIN block, the refer-
ence value is provided in degrees Celsius by the XREFIN input. Otherwise, the AIN or MAIN
block converts the RTD input from Channel 9 in the FBM from Ohms to degrees Celsius.
In either case, the CHARC block converts the reference value from degrees Celsius to mV, using a
reverse Y-to-X piecewise linear interpolation of its configured segments. The AIN/MAIN logic
then adds the result of the conversion to the input signal, converting the compensated value from
mV back to degrees Celsius, using a forward piecewise linear interpolation of the same segments
in the CHARC block. As with the X values in X-to-Y piecewise linear interpolation, the Y values
must be increasing (that is, the value at Y_2 must be greater than Y_1, Y_3, greater than Y_2, and
so on), or the block is declared “undefined” at installation and does not operate.
When the block is in Auto, status propagation from input to output occurs, in accordance with
these rules:
The Bad and Out-of-Service status bits of MEAS are copied to the Bad and Out-of-
Service status bits of OUT.
When option parameter PROPT is true, the Error status bit of OUT is set true or
false based on the value of parameter EROPT, as follows:
EROPT = 0: The Error status bit of OUT is set false.
EROPT = 1: The Error status bit of OUT is set true if MEAS has Bad or Out-of-Ser-
vice status, or if the OM field of MEAS status has any value other than 1
(ON_SCAN).
527
B0193AX – Rev AB 16. CHARC – Characterizer Block
EROPT = 2: The Error status bit of OUT is set true if MEAS has Bad, Out-of-Ser-
vice, or Error status, or if the OM field of MEAS status has any value other than 1
(ON_SCAN).
Cascade initialization is accomplished by use of the BCALCI, BCALCO, EROPT, PRSCAS, and
PRIBLK parameters, and several parameter status bits.
If the CHARC block is an intermediate member of a cascade, its PRIBLK option should be set
true, its BCALCO parameter should be connected to the BCALCI input of the upstream block,
and its MEAS input should be connected to the output of the upstream block. In any case, the
OUT parameter of the CHARC block should be connected to the input of the downstream
block, and its BCALCI to the BCALCO of the downstream block.
The CHARC block considers the cascade to be open in the following situations:
The CHARC block is in Manual mode.
PROPT is true and EROPT = 1 or 2, and the status of MEAS fulfills the conditions
listed above for the Error status bit of OUT to be set true. In this case, the block out-
put is in HOLD mode.
The cascade is open downstream, as indicated by the conditional or unconditional
initialization status bit of the block’s BCALCI parameter. If the unconditional initial-
ization bit is true, the block’s output OUT tracks the value of BCALCI. If the
conditional initialization bit is true, the value of OUT track BCALCI if the block is in
Auto, and retains its value if the block is in Manual.
The upstream actions taken by the CHARC block when it detects an open cascade are as follows:
An initialization request is sent via the status bits of BCALCO.
An inverse piecewise linear interpolation is performed on the output to determine the
abscissa producing that output ordinate, and the result becomes the back-
calculated BCALCO value.
The back-calculated value of BCALCO is retained until the open cascade condition
no longer exists, and, in addition, the acknowledgment from upstream has been
received via a status bit of MEAS.
A unique result of the inverse interpolation is needed for the back calculation, and this will only
be possible if the “Y” coordinates of the breakpoints are all either actually increasing or actually
decreasing (not monotonically). If PRIBLK is set true in the block, this is verified at validation
time. Failure of this validation produces an appropriate message in ERCODE, and the CHARC
block is set Undefined.
528
17. CIN – Contact Input Block
This chapter covers the Contact Input Block, or CIN, its basic operations, features and
parameters, bad input, out-of-service and error conditions, manual mode, messages and
alarms, application diagrams, and a valid input connection appendix.
17.1 Overview
The Contact Input Block (CIN) provides the control strategy with input capability for a single
digital input or digital output point in any Fieldbus Module (FBM) or Fieldbus Card (FBC) con-
taining such points. The block also provides alarm handling features relating to the input. See
Figure 17-1.
State Change
Messages
Messages
Input From
FBM or FBC State
Point Change Contact
Input From Inversion Input
Detection
Other Block
FBM and
Channel BAD Alarms
Detection Alarming
Status
Alarm Options
529
B0193AX – Rev AB 17. CIN – Contact Input Block
17.3 Features
Interfacing of the control scheme to all digital points in any FBMs or FBCs, including
digital output readback values
Fieldbus Module option to permit configuration of CIN blocks without FBM or FBC
connections (input from another block instead of from hardware)
Manual mode availability for disconnecting control schemes from the process, for
simulation and checkout purposes
Last good value retention in the event of bad input quality
Point inversion option
Continuous FBM input monitoring during Manual mode and last good value
retention
Optional bad FBM/FBC and bad input point alarming
Optional State Change messages and State alarming
Alarming in Manual option
Alarm inhibit options.
Optional State alarm inversion (“into alarm” message generated on transition from 1
to 0, and “return to normal” on transition from 0 to 1).
17.4 Parameters
Table 17-1. CIN Block Parameters
530
17. CIN – Contact Input Block B0193AX – Rev AB
531
B0193AX – Rev AB 17. CIN – Contact Input Block
ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use.
For the CIN block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit Number1
(0 to 31) Configured Alarm Options When True
0 (Least Significant) Alarm Group 8 in Use
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use
22 Bad I/O Alarm Configured
26 State Alarm Configured
1.
Bit 0 is the least significant, low order bit.
ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the CIN block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
Boolean B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
CRIT PRTYPE
UNAK
BAD
STA
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: See parameter
(Least Sig- PRTYPE for values used in
nificant) the CIN block
5 to 7 CRIT_MSK Criticality; 5 = lowest prior-
ity, 1= highest
22 BAD Bad I/O Alarm ALMSTA.B10
26 STA State Alarm ALMSTA.B6
30 UNAK Unacknowledged ALMSTA.B2
532
17. CIN – Contact Input Block B0193AX – Rev AB
AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is gen-
erated.
BAD Bad is a boolean output parameter which is set true when the connected
FBM or FBC has bad status or the connected point within it is bad. If
there is no connected FBM or FBC, BAD is true when IN is linked and
has a bad status.
BAG Bad Alarm Group is a short integer input that directs Bad alarm messages
to one of eight groups of alarm devices.
BAO Bad Alarm Option is a configurable boolean which, when true, enables
alarm generation for each state change of the BAD parameter.
BAP Bad Alarm Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the Bad alarm (1 is the highest priority).
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the CIN block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
FBM
BAD
ON
MA
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
8 FBM FBM or FBC Failure BLKSTA.B24
11 MA Manual = 0, Auto = 1 BLKSTA.B21
12 BAD Bad I/O BLKSTA.B20
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
20 WLCK Access Locked BLKSTA.B12
533
B0193AX – Rev AB 17. CIN – Contact Input Block
CIN Contact Input is the block output. It represents the state of the input
point specified by IOM_ID and PNT_NO when IOMOPT indicates
that an FBM or FBC is configured, or the value of the input IN otherwise.
In any case, CIN is subject to optional inversion based on the state of
option IVO.
CRIT Criticality is an integer output that indicates the priority, ranging from 1
to 5, of the block’s highest currently active alarm (1 is the highest priority).
An output of zero indicates the absence of alarms.
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. (See ERCODE for the list of all possible validation errors in this
block.) In that case, no further processing of the block occurs, including
further validation of remaining parameters. To return DEFINE to a true
value, correct all configuration errors and re-install the block. If DEFINE
= 0, the bit BLKSTA.UDEF = 1.
DEV_ID Device Identifier is a character array that specifies the 6-character letter-
bug of the connected FBM or FBC.
ERCODE Error Code is a string data store which indicates the type of configuration
error which caused the block’s DEFINE parameter to be set false. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. For the CIN block, the following list specifies the
possible values of ERCODE, and the significance of each value in this
block:
ERCODE Description
W51 Cluster I/O specified but type is not digital input, dig-
ital output, or digital input/output.
W52 PNT_NO out of range for the specified FBM or FBC.
W54 Specified IOM_ID does not exist.
IN Input is an alternate source for the CIN block input, used when there is
no connected FBM or FBC. When the block has a connected FBM or
FBC, IN reflects the actual physical input, even when the output CIN is
under Manual control or when CIN is holding the last good value due to
the quality of the physical input.
534
17. CIN – Contact Input Block B0193AX – Rev AB
INHALM Inhibit Alarm contains packed boolean values that represent alarm genera-
tion inhibit requests for each type of alarm configured in the block. For
the CIN block, only the following bits are used:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit Number* Boolean Connection
(0 to 15) Description When True (B16 to B1)
6 Inhibit Bad I/O Alarm INHALM.B10
10 Inhibit State Alarm INHALM.B6
INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting. Alarms can also be inhibited based on INHALM and the com-
pound parameter CINHIB.
INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do not
disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the time
the alarm transitions into the inhibited state, clear the alarm
indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages can be acknowledged by explicitly setting
UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages can be acknowledged by explicitly setting
UNACK false.
535
B0193AX – Rev AB 17. CIN – Contact Input Block
INHSTA Inhibit Status contains packed long values that represent the current
inhibit status of each alarm type configured in the block. For the CIN
block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BAD B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
STA B6
B7
B8
B9
INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The M/A state as specified in the checkpoint file.
The block asserts this initial M/A state whenever:
It is installed into the Control Processor database.
The Control Processor undergoes a reboot operation.
The compound in which it resides is turned on.
The INITMA parameter is modified via the control configurator.
(The block does not assert INITMA on ordinary reconfiguration.)
INITMA is ignored if MA has an established linkage.
INVALM Invert Alarm is a configured boolean which specifies the sense of CIN
transitions considered “into alarm” and “return to normal” in State alarm
messages. Values are:
0= CIN transitions from 0 to 1 are considered “into alarm.” State
alarm messages contain the NM1 string. Transitions from 1 to 0
are considered “return to normal.” State alarm messages contain
the NM0 string.
1= CIN transitions from 1 to 0 are considered “into alarm.” State
alarm messages contain the NM1 string. Transitions from 0 to 1
are considered “return to normal.” State alarm messages contain
the NM0 string.
In any case, State alarm detection is disabled when option SAO is false.
536
17. CIN – Contact Input Block B0193AX – Rev AB
IOM_ID Fieldbus Module Identifier is a configurable string that specifies the path-
name of the FBM or FBC to which the block is connected.
IOM_ID has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOM_ID configuration. In this case, the 1-12
character ECB block name is sufficient.
IVO Invert Option, when true, causes the block to invert the value of the FBM
or FBC input or the IN input before writing it to the CIN output. If IVO
is true, all alarming and state change message generation is based on the
inverted value of the input.
LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-char-
acter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.
LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion, a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are honored (subject to the usual access rules) only from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set false by any workstation at any time, whereupon a
new LOCKRQ is accepted, and a new ownership workstation identifier
written to LOCKID.
537
B0193AX – Rev AB 17. CIN – Contact Input Block
input point value (or the value of IN when there is no connected FBM or
FBC).
538
17. CIN – Contact Input Block B0193AX – Rev AB
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)
Period Length Period Length
0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****
* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).
PNT_NO Point Number is the FBM or FBC point to which the CIN block is con-
nected (see “Appendix A – Valid Input Connections” on page 548).
PROPT Propagate Error Option is a boolean input which determines whether the
status of IN should be reflected in the error bit of CIN status. If the CIN
block is in Auto and no FBM or FBC is configured (IOMOPT = 0), the
true value of PROPT causes any one of the following conditions to be
reflected as an error status of CIN:
Bad status bit in IN
OOS status bit in IN
Error status bit in IN
Any value in the OM field of the IN status except 1 (ON_SCAN).
Any other value in this field indicates that the source of the con-
539
B0193AX – Rev AB 17. CIN – Contact Input Block
PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. The PRTYPE output of this block
consists of the following alarm types:
0 = No active alarm
8 = Bad
9 = State
If both alarms are active and have the same priority, PRTYPE reports the
BAD alarm type (PRTYPE = 8).
For example, assume the Bad and State alarms are both active. If the Bad
alarm has priority 3 and the State alarm has priority 2, then CRIT = 2 and
PRTYPE = 9. If the BAD alarm has priority 1 and the State alarm has pri-
ority 4 then CRIT = 1 and PRTYPE = 8. If both alarms have priority 2,
then CRIT = 2 and PRTYPE = 8.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
540
17. CIN – Contact Input Block B0193AX – Rev AB
2. This bit records the status of the primary input (CIN). This status is the inverse of
the Manual/Auto (MA) status bit in BLKSTA. This bit is not available for
I/A Series software earlier than v8.0.
SAG State Alarm Group is a short integer input that directs State alarm mes-
sages to one of eight groups of alarm devices.
SAO State Alarm Option is a configurable boolean which, when true, enables
the generation of State Alarms.
SAP State Alarm Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the State alarm (1 is the highest priority).
SCGRP State Change Group is a short integer input that directs State Change
messages to one of eight groups of devices. However, Alarm Alert ignores
these messages when they arrive; State Change messages are printed only.
SCOPT State Change Option specifies which state changes of the block output
cause a State Change message to be the generated. These messages are
ignored by Alarm Alert, and are not shown in the Alarm Display; they are
printed on the alarm printers only. Depending on the value of SCOPT,
messages are generated for the following types of transitions (state
changes):
0 = No transitions (no messages generated)
1 = All transitions
2 = 0 to 1 transitions only
3 = 1 to 0 transitions only
SCTXT0 State Change Text 0 is a text string sent with the State Change message to
indicate that the state has changed from 1 to 0, after any optional inver-
sion.
SCTXT1 State Change Text 1 is a text string sent with the State Change message to
indicate that the state has changed from 0 to 1, after any optional inver-
sion.
TYPE When you enter “CIN” or select it from a configurator list, an identifying
integer is created specifying this block type.
UNACK Unacknowledge is a boolean output parameter which is set true, for notifi-
cation purposes, whenever the block goes into alarm. It is settable, but sets
are only allowed to clear UNACK to false, and never in the opposite direc-
tion. The clearing of UNACK is normally via an operator “acknowledge”
pick on a default display, user display, or Current Alarms Display, or via a
user task.
541
B0193AX – Rev AB 17. CIN – Contact Input Block
SCOPT
SCTXT0
AND
State SCTXT1
IOM_ID Change
PNT_NO Detected STATE
AND Alarming
IVO (M)
FROM SAO
ECB IOMOPT
1 INVALM o MA
Point o o o o CIN
Inversion (A)
IN 0 LAST GOOD VALUE o
Use Last
Good Value
OR
IOMOPT = 1
ECB Status Bad BAO AND BAD
IOMOPT = 1 Alarming
Channel Status Bad OR BAD
IOMOPT = 0,2
IN Status Bad
CIN.BAD
IOMOPT = 1
ECB Status OOS
OR CIN.OOS
IOMOPT = 0,2
IN Status OOS
542
17. CIN – Contact Input Block B0193AX – Rev AB
543
B0193AX – Rev AB 17. CIN – Contact Input Block
The points in the above table identified as valid output points are readback values from physical
outputs. You can use these values as inputs to the CIN block.
If the block is in Auto, the value of the input point is presented at the block’s output, CIN. If any
of the bad input conditions of Section 17.5.1 are true, or the out-of-service condition of
Section 17.5.2 is true, the CIN parameter value is not updated this cycle. This provides the block
with a “last good value” functionality. The value of CIN is not updated from the input point if
the block is in Manual (see Section 17.6).
The IN parameter always tracks the current value of the input point, regardless of the quality of
the point, and regardless of the Auto/Manual state of the block.
The values of both IN and CIN reflect the Invert Option (IVO) as described in Table 17-2.
When IVO is true, a true input point value is treated as false, and a false input point value is
treated as true.
Extra care is required when considering the relationship between the CIN, IN, IVO, and
IOMOPT parameter values. The table below summarizes the effects that the IOMOPT and IVO
values and the block state (Auto or Manual) have on the resulting values of CIN and IN.
Manual/
IOMOPT Auto IVO CIN, IN
0 Auto 0 (N) CIN = IN = value of IN’s source connection
0 Auto 1 (Y) CIN = inverted value of IN’s source connection
IN = value of IN’s source connection (no inversion)
544
17. CIN – Contact Input Block B0193AX – Rev AB
Table 17-2. Relationship Between IOMOPT, IVO, MA, CIN, and IN (Continued)
Manual/
IOMOPT Auto IVO CIN, IN
0 Manual 0 (N) CIN = manual value
IN = value of IN’s source connection
0 Manual 1 (Y) CIN = manual value
IN = value of IN’s source connection
545
B0193AX – Rev AB 17. CIN – Contact Input Block
If there is no connected FBM or FBC, the two conditions above are replaced by the following:
The IN value is linked and it has bad status.
If the block is in Manual, however, the status bits of CIN are not changed by any of the above
conditions.
546
17. CIN – Contact Input Block B0193AX – Rev AB
NOTE
State Change messages are ignored by Alarm Alert, and are not shown in the Alarm
Display; they are printed on the alarm printers only.
NOTE
State Alarming is independent of state change detection based on SCOPT.
When SCOPT is set to 2, any change from 0 to 1 in the value of CIN results in a State Change
message containing the text string in SCTXT1.
When SCOPT is set to 3, any change from 1 to 0 in the value of CIN results in a State Change
message containing the text string in SCTXT0.
Any required inversion based on IVO is applied before state change detection.
While the State Change Group (SCGRP) parameter holds the group to which all State Change
messages are directed, Alarm Alert ignores these messages when they arrive.
17.7.2 Alarming
Key Parameters: BAO, SAO, BAD, INVALM
The CIN block supports the Bad I/O and State Alarm alarm types. The functionality of these
alarm types is discussed in the appropriate Integrated Control Software Concepts document
(B0700AG or B0193AW).
The nomenclature for identical alarm types varies from block to block for historical reasons
involving backward compatibility requirements. The nomenclature for the CIN block is as fol-
lows:
Default Indicator
Type Option Priority Group Text Display Parameter
I/O Bad BAO = True BAP BAG BAT IOBAD BAD
State Alarm SAO = True SAP SAG NM0 or NM1 STATE CIN/INVALM
547
B0193AX – Rev AB 17. CIN – Contact Input Block
COUT
LOGIC
Program
Flow
BI11 BI09 BI04 BI02 Switch
Feedstock
CIN
CIN Solenoid
FBM 241 Valve
or
CIN FBM 09 o
o
CIN FLS001
Tank Full
Switch
FBM207b o
CIN
CIN or o
Tank Half
FBM 07
Full Switch
TFS001
CIN
CIN
Output
Product
Solenoid
Flow Valve
Switch
Figure 17-3. Typical CIN Block Application
Hardware
207
217
241
10
11
12
13
14
15
16
17
20
21
23
24
25
26
27
41
42
7
8
9
Type
Point
1 I I I I I I I I I I I I I
2 I I I I I I I I I I I I I
548
17. CIN – Contact Input Block B0193AX – Rev AB
Hardware
207
217
241
10
11
12
13
14
15
16
17
20
21
23
24
25
26
27
41
42
7
8
9
Type
Point
3 I I I I I I I I I I I I I
4 I I I I I I I I I I I I I
5 I I I I I I I I I I I I I
6 I I I I I I I I I I I I I
7 I I I I I I I I I I I I I I
8 I I I I I I I I I I I I I I
9 I I O I I O O O I I I I O O
10 I I O I I O O O I I I I O O
11 I I O I I O O O O I I I O O
12 I I O I I O O O O I I I O O
13 I I O I I O O O O I I I O O
14 I I O I I O O O O I I I O O
15 I I O I I O O O I I I O O
16 I I O I I O O O I I I O O
17 I I I I I I I I I I I
18 I I I I I I I I I I I
19 I I I I I I I I I I I
20 I I I I I I I I I I I
21 I I I I I I I I I I I
22 I I I I I I I I I I I
23 I I I I I I I I I I I
24 I I I I I I I I I I I
25 I I I O O O I I I O O
26 I I I O O O I I I O O
27 I I I O O O I I I O O
28 I I I O O O I I I O O
29 I I I O O O I I I O O
30 I I I O O O I I I O O
31 I I I O O O I I I O O
32 I I I O O O I I I O O
Legend: I = Input
O = Readback from Output
NOTE
Hardware Type 23 is used for HTG Interface Unit (HIU).
549
B0193AX – Rev AB 17. CIN – Contact Input Block
Hardware Type 60 62 86 92 94 97
Point
1 I O I I O I
2 I O I I O I
3 I O I I O I
4 I O I I O I
5 I O I I O I
6 I O I I O I
7 I O I I O I
8 I O I I O I
9 I O O I O I
10 I O O I O I
11 I O O I O I
12 I O O I O I
13 I O O I O I
14 I O O I O I
15 I O O I O I
16 I O O I O I
17 I O I I O I
18 I O I I O I
19 I O I I O I
20 I O I I O I
21 I O I I O I
22 I O I I O I
23 I O I I O I
24 I O I I O I
25 I O O I O I
26 I O O I O I
27 I O O I O I
28 I O O I O I
29 I O O I O I
30 I O O I O I
31 I O O I O I
32 I O O I O I
33 I O
34 I O
35 I O
550
17. CIN – Contact Input Block B0193AX – Rev AB
Hardware Type 60 62 86 92 94 97
Point
36 I O
37 I O
38 I O
39 I O
40 I O
41 O O
42 O O
43 O O
44 O O
45 O O
46 O O
47 O O
48 O O
49 I O
50 I O
51 I O
52 I O
53 I O
54 I O
55 I O
56 I O
57 O O
58 O O
59 O O
60 O O
61 O O
62 O O
63 O O
64 O O
Legend: I = Input
O = Readback from Output
551
B0193AX – Rev AB 17. CIN – Contact Input Block
NOTE
Hardware Type 60 is used for FBC 07.
Hardware Type 62 is used for FBC 09.
Hardware Type 86 is used for FBC 10.
Hardware Type 92 is used for FBC 07 Redundant.
Hardware Type 94 is used for FBC 09 Redundant.
Hardware Type 97 is used for FBC 10 Redundant.
552
18. CINR – Redundant Contact
Input Block
This chapter covers the Redundant Contact Input (CINR) block, its basic operations, features
and parameters, bad input and out-of-service conditions, manual mode, messages and alarms,
and application diagram.
18.1 Overview
The Redundant Contact Input (CINR) block receives redundant input values for a single digital
input process point via redundant Fieldbus Modules (FBMs) (see Figure 18-1). The CINR block
is currently qualified for use only with DCS FBMs for Migration to Moore APACS+ systems, and
with redundant FBM207 and FBM217. Based on the quality of the two inputs and the user spec-
ification of a default selection, one of the inputs is chosen for use in the I/A Series control strategy.
The block also provides alarm handling features relating to the input. For more information on
these DCS FBMs, refer to the DCS Fieldbus Modules for Migration of Moore APACS+ Systems
User’s Guide (B0700BK).
State State
Invert FBM Change Alarm
Option Option Option Option
Inputs from
Point Point Manual
Redundant
Selection Inversion
FBMs
Contact
Auto Input
Inputs from
Point
Other Blocks
(Simulation) Selection
Alarm
Option
553
B0193AX – Rev AB 18. CINR – Redundant Contact Input Block
18.3 Features
The CINR block provides the following features:
Redundant digital inputs from separate FBMs
Both redundant and non-redundant points can coexist in the same digital input
module; non-redundant points are connected to CIN blocks
Simulation option allows configuring the CINR blocks with input connections to two
other blocks instead of the FBMs
Automatic switchover to the secondary input if the primary input is bad
Interfacing of the control scheme to all digital points in the FBMs, including digital
output readback values
Manual mode availability for disconnecting control schemes from the process, for
simulation and checkout purposes
Optional last good value retention or fallback value for the output upon I/O failure
Point inversion option
Continuous FBM input monitoring during Manual mode and last good value
retention
Optional bad FBM and bad input point alarming
Optional State Change messages and State alarming
Alarming in Manual option
Alarm inhibit options
Optional State alarm inversion (“into alarm” message generated on transition from 1
to 0, and “return to normal” on transition from 0 to 1).
Re-alarming of active block alarms when the alarm priority is changed
Optional re-alarming of active block alarms when the re-alarm timer expires
Optional nuisance/flutter alarm suppression of all contact input alarms until the
alarm deadband timer expires.
554
18. CINR – Redundant Contact Input Block B0193AX – Rev AB
18.4 Parameters
Table 18-1. CINR Block Parameters
555
B0193AX – Rev AB 18. CINR – Redundant Contact Input Block
ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use.
For the CINR block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
556
18. CINR – Redundant Contact Input Block B0193AX – Rev AB
Bit Number1
(0 to 31) Configured Alarm Options When True
0 (Least Significant) Alarm group 8 in use
1 Alarm group 7 in use
2 Alarm group 6 in use
3 Alarm group 5 in use
4 Alarm group 4 in use
5 Alarm group 3 in use
6 Alarm group 2 in use
7 Alarm group 1 in use
14 Secondary point Bad alarm configured
15 Primary point Bad alarm configured
22 Bad I/O alarm configured
26 State alarm configured
1. Bit 0 is the least significant, low order bit.
ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the CINR block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
BAD_P B17
BAD_S B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
UNACK B1
B2
B3
B4
B5
B6
B7
B8
B9
CRIT PRTYPE
BAD
STA
Bit Boolean
Number*( Connection
0 to 31) Name Description When True (B32 to B1)
0 to 4 PRTYPE Priority Type: See parameter
(Least PRTYPE for values used in
Significant) the CINR block
5 to 7 CRIT Criticality; 5 = lowest prior-
ity, 1= highest
14 BAD_S Secondary point Bad ALMSTA.B18
15 BAD_P Primary point Bad ALMSTA.B17
22 BAD Bad I/O alarm** ALMSTA.B10
26 STA State alarm ALMSTA.B6
30 --- Alarms inhibited ALMSTA.B2
557
B0193AX – Rev AB 18. CINR – Redundant Contact Input Block
Bit Boolean
Number*( Connection
0 to 31) Name Description When True (B32 to B1)
31 UNACK Unacknowledged ALMSTA.B1
* Bit 0 is the least significant, low order bit.
** Both the primary and secondary points are bad.
AMRTIN Alarm Regeneration Timer is an integer option that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is
generated. Separate timers are maintained for Bad alarms (for each input)
and State alarms (for the selected input).
BAD Bad is a boolean output parameter that is set true when the connected
FBM has bad status or the connected point within it is bad. If there is no
connected FBM, BAD is true when CIN_P or CIN_S is linked and has a
bad status. The BAD bit of BLKSTA (BLKSTA.BAD) is also set true
whenever BAD is true.
BAG Bad Alarm Group is a short integer input that directs Bad alarm messages
to one of eight groups of alarm devices. You can change the group number
through the workstation.
BAO Bad Alarm Option is a configurable boolean value. When configured true,
it enables alarm generation for each state change of the BAD parameter.
BAP Bad Alarm Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the Bad alarm (1 is the highest priority).
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the CINR block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
FBMR B23
B24
B25
B26
B27
B28
B29
B30
BIOR B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
FBM
LCK
BIO
MA
ON
558
18. CINR – Redundant Contact Input Block B0193AX – Rev AB
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
1 BIOR Secondary Input Bad BLKSTA.B31
8 FBM Primary FBM Failure BLKSTA.B24
9 FBMR Secondary FBM Failure BLKSTA.B23
11 MA Manual = 0, Auto = 1 BLKSTA.B21
12 BIO Bad I/O BLKSTA.B20
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
20 WLCK Workstation Access Locked BLKSTA.B12
* Bit 0 is the least significant, low order bit.
CIN Contact Input is the block output. It represents the state of the input
point specified by IOM_ID or IOMIDR, and PNT_NO when
IOMOPT indicates that an FBM is configured. Otherwise, it represents
the value of the CIN_P or CIN_S input. In any case, CIN is subject to
optional inversion based on the state of option IVO.
CIN_P Primary Contact Input is a Boolean input that contains the current state
of the contact input read from the primary module of a redundant contact
FBM pair. If the block selects the CIN_P value while running in the Auto
mode, it writes this value to the output CIN parameter each execution
cycle. If IOMOPT=0, CIN_P contains the simulated primary input
value.
CIN_S Secondary Contact Input is a Boolean input that contains the current state
of the contact input read from the secondary module of a redundant con-
tact FBM pair. If the block selects the CIN_S value while running in the
Auto mode, it writes this value to the output CIN parameter each execu-
tion cycle. If IOMOPT=0, CIN_S contains the simulated secondary
input value.
CRIT Criticality is an integer output that indicates the priority, ranging from 1
to 5, of the block’s highest currently active alarm (1 is the highest priority).
An output of zero indicates the absence of alarms.
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. (See ERCODE for the list of all possible validation errors in this
block.) In that case, no further processing of the block occurs, including
further validation of remaining parameters. To return DEFINE to a true
value, correct all configuration errors and re-install the block. If
DEFINE = 0, the bit BLKSTA.UDEF = 1.
559
B0193AX – Rev AB 18. CINR – Redundant Contact Input Block
DEV_ID Primary Device Identifier is a character array data store that specifies the
6-character letterbug of the connected primary FBM.
DEVIDR Secondary Device Identifier is a character array data store that specifies the
6-character letterbug of the connected secondary FBM.
ERCODE Error Code is a string data store which indicates the type of configuration
error which caused the block’s DEFINE parameter to be set false. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. For the CINR block, the following list specifies
the possible values of ERCODE, and the significance of each value in this
block:
ERCODE Description
W43 - INVALID PERIOD/ The configured PHASE parame-
PHASE COMBINATION ter value is not consistent with
the configured PERIOD value.
W51 - INVALID HARDWARE/ Hardware type is not digital
SOFTWARE TYPE input.
W52 - INVALID I/O CHANNEL/ PNT_NO out of range for the
GROUP NUMBER specified FBM.
W54 - ECB DOES NOT EXIST Specified IOM_ID does not
exist.
INHALM Inhibit Alarm contains packed boolean values that represent alarm genera-
tion inhibit requests for each type of alarm configured in the block. For
the CINR block, only the following bits are used:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit
Number* Boolean Connection
(0 to 15) Description When True (B16 to B1)
6 Inhibit Bad I/O alarm INHALM.B10
10 Inhibit State alarm INHALM.B6
* Bit 0 is the least significant, low order bit.
INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
560
18. CINR – Redundant Contact Input Block B0193AX – Rev AB
setting. Alarms can also be inhibited based on INHALM and the com-
pound parameter CINHIB.
INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do not
disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the time
the alarm transitions into the inhibited state, clear the alarm
indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages can be acknowledged by explicitly setting
UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages can be acknowledged by explicitly setting
UNACK false.
INHSTA Inhibit Status contains packed long values that represent the current
inhibit status of each alarm type configured in the block. For the CINR
block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
BAD_P B17
BAD_S B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
BAD
STA
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
14 BAD_S Secondary point Bad alarm INHSTA.B18
inhibited**
15 BAD_P Primary point Bad alarm INHSTA.B17
inhibited**
22 BAD Bad I/O alarm inhibited** INHSTA.B10
26 STA State alarm inhibited*** INHSTA.B6
* Bit 0 is the least significant, low order bit.
** Bit is set if 0 < Compound.CINHIB BAP, INHALM.BAD,
or INHIB = 1.
***Bit is set if 0 < Compound.CINHIB SAP, INHALM.SA, or
INHIB = 1.
561
B0193AX – Rev AB 18. CINR – Redundant Contact Input Block
INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The M/A state as specified in the checkpoint file.
The block asserts this initial M/A state whenever:
It is installed into the Control Processor database.
The Control Processor undergoes a reboot operation.
The compound in which it resides is turned on.
The INITMA parameter is modified via the Integrated Control
Configurator. (The block does not assert INITMA on ordinary
reconfiguration.)
INITMA is ignored if MA has an established linkage.
INVALM Invert Alarm is a configured boolean which specifies the sense of CIN
transitions considered “into alarm” and “return to normal” in State alarm
messages. Values are:
0= CIN transitions from 0 to 1 are considered “into alarm”; State
alarm messages contain the NM1 string. Transitions from 1 to 0
are considered “return to normal”; State alarm messages contain
the NM0 string.
1= CIN transitions from 1 to 0 are considered “into alarm”; State
alarm messages contain the NM1 string. Transitions from 0 to 1
are considered “return to normal”; State alarm messages contain
the NM0 string.
In any case, State alarm detection is disabled when option SAO is false.
562
18. CINR – Redundant Contact Input Block B0193AX – Rev AB
IVO Invert Option, when true, causes the block to invert the value of the FBM
input or the CIN_P or CIN_S input before writing it to the CIN output.
If IVO is true, all alarming and state change message generation is based
on the inverted value of the input.
LOCKID Lock Identifier is a string data store that identifies the workstation that has
exclusive write access to the block. LOCKID arbitrates write access to the
control block parameters by operator workstations on the network. Set
requests to any of the block’s parameters are honored only if the requesting
workstation’s identifier matches the contents of LOCKID.
LOCKID does not lock out sequence code write access to block parame-
ters. Sequence block set requests to any of the block’s parameters are
always honored.
The lock-request message sets LOCKRQ to true and sets LOCKID to the
identifier of the requesting workstation. The lock-release message clears
LOCKRQ and nulls LOCKID.
LOCKID has the format Letterbug:DeviceName, where Letterbug is the
6-character letterbug of the workstation and DeviceName is the 6-charac-
ter logical name of the Display Manager.
LOCKRQ Lock Request is a Boolean data store that is set true or false by toggling the
LOCK U/L key on the Block Detail Display. An operator at any other
workstation can lock and unlock the block by toggling the LOCK U/L
key.
The lock-request message sets LOCKRQ true, sets LOCKID to the iden-
tifier of the requesting workstation, and sets the WLCK bit in the
BLKSTA parameter. Set requests to any of the block’s parameters are only
honored if the requesting workstation’s identifier matches the contents of
LOCKID.
LOCKID does not lock out sequence code write access to block parame-
ters. Sequence block set requests to any of the block’s parameters are
always honored.
The lock-release message resets LOCKRQ, nulls LOCKID, and resets the
WLCK bit.
563
B0193AX – Rev AB 18. CINR – Redundant Contact Input Block
NOTE
Do not set LOCKRQ with an application program. Contention for the use of the
block may make the block inaccessible.
564
18. CINR – Redundant Contact Input Block B0193AX – Rev AB
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)
Period Length Period Length
0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****
* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute with phases 0, 1, 2, or 3, assuming the
BPC of the Control Processor is 0.5 sec. Refer to the appropriate Inte-
grated Control Software Concepts document (B0700AG or B0193AW).
PNT_NO Point Number is the FBM point to which the CINR block is connected.
565
B0193AX – Rev AB 18. CINR – Redundant Contact Input Block
PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. The PRTYPE output of this block
consists of the following alarm types:
0 = No active alarm
8 = Bad
9 = State
If both alarms are active and have the same priority, PRTYPE reports the
BAD alarm type (PRTYPE = 8).
For example, if the BAD alarm has priority 1 and the State alarm has
priority 4 then CRIT = 1 and PRTYPE = 8.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
566
18. CINR – Redundant Contact Input Block B0193AX – Rev AB
SAG State Alarm Group is a short integer input that directs State alarm mes-
sages to one of eight groups of alarm devices.
SAO State Alarm Option is a configurable boolean that, when true, enables the
generation of State alarms.
SAP State Alarm Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the State alarm (1 is the highest priority).
SCGRP State Change Group is a short integer input that directs State Change
messages to one of eight groups of devices. However, Alarm Alert ignores
these messages when they arrive; State Change messages are printed only.
SCOPT State Change Option specifies which state changes of the block output
cause a State Change message to be the generated. These messages are
ignored by Alarm Alert, and are not shown in the Alarm Display; they are
printed on the alarm printers only. Depending on the value of SCOPT,
messages are generated for the following types of transitions (state
changes):
0 = No transitions (no messages generated)
1 = All transitions
2 = 0 to 1 transitions only
3 = 1 to 0 transitions only
SCTXT0 State Change Text 0 is a text string sent with the State Change message to
indicate that the state has changed from 1 to 0, after any optional inver-
sion.
SCTXT1 State Change Text 1 is a text string sent with the State Change message to
indicate that the state has changed from 0 to 1, after any optional inver-
sion.
SELOPT Select Option is a configurable short integer that specifies the output value
of CIN when both CIN_P and CIN_S are bad or out-of-service. Options
are:
0 = Last good value
1 = False
2 = True
TYPE When you enter “CINR” or select it from a configurator list, an identify-
ing integer is created specifying this block type.
UNACK Unacknowledge is a Boolean output that the block sets to True when it
detects an alarm. It is typically reset by operator action.
567
B0193AX – Rev AB 18. CINR – Redundant Contact Input Block
18.5 Functions
18.5.1 Detailed Diagram
SCOPT SCTXT0
AND
IOM_ID FBM and State SCTXT1
IOMIDR Channel Change
PNT_NO Status Detected State
Primary AND
IOMOPT Alarming
ECB5 SAO
Data CIN_P
Read & INVALM
Invert
Points SELOPT M MA
Sec. CIN_S
1
ECB5 1
Data IVO CIN
Input A
Status 0 0
Last Good Value
CIN_P
CIN_S
CIN_P.OOS
AND CIN.OOS
CIN_S.OOS
CIN_P.BAD
AND
CIN_S.BAD
OR BAD
Primary FBM Failure
AND CIN.BAD
Secondary FBM Failure
MA = 1 BAD
OR AND Alarming
BAO
MA = 0
AND
MANALM = 1
568
18. CINR – Redundant Contact Input Block B0193AX – Rev AB
569
B0193AX – Rev AB 18. CINR – Redundant Contact Input Block
Connected points within the primary and secondary FBMs are bad. In this case,
BLKSTA.BIO, BLKSTA.BIOR, ALMSTA.BAD, ALMSTA.BAD_P, and
ALMSTA.BAD_S are also set true.
If redundant FBMs are not connected, the two conditions above are replaced by the following:
The CIN_P and CIN_S values are linked and both have bad status. In this case,
ALMSTA.BAD, ALMSTA.BAD_P, and ALMSTA.BAD_S are also set true.
If the block is in Manual, however, the status bits of CIN are not changed by any of the above
conditions.
Bad status of the primary or secondary input is set individually in CIN_P, CIN_S, BLKSTA and
ALMSTA.
570
18. CINR – Redundant Contact Input Block B0193AX – Rev AB
NOTE
State Change messages are ignored by Alarm Alert, and are not shown in the Alarm
Display; they are printed on the alarm printers only.
NOTE
State alarming is independent of state change detection based on SCOPT.
When SCOPT is set to 2, any change from 0 to 1 in the value of CIN results in a State Change
message containing the text string in SCTXT1.
When SCOPT is set to 3, any change from 1 to 0 in the value of CIN results in a State Change
message containing the text string in SCTXT0.
Any required inversion based on IVO is applied before state change detection.
While the State Change Group (SCGRP) parameter holds the group to which all State Change
messages are directed, Alarm Alert ignores these messages when they arrive.
18.8.2 Alarming
Key Parameters: BAO, SAO, BAD, INVALM, AMRTIN, NASTDB
The CINR block supports the Bad I/O and State alarm types. The following sections provide
functional overviews for these alarms.
The nomenclature for identical alarm types varies from block to block for historical reasons
involving backward compatibility requirements. The nomenclature for the CINR block is as fol-
lows:
Default Indicator
Type Option Priority Group Text Display Parameter
I/O Bad BAO = True BAP BAG BAT IOBAD BAD
State Alarm SAO = True SAP SAG NM0 or NM1 STATE CIN/INVALM
Detailed descriptions of the above alarm types and the following alarm functions is discussed in
the appropriate Integrated Control Software Concepts document (B0700AG or B0193AW).
Re-alarming of active alarms when the alarm priority (PRTYPE) is changed
Re-alarming of active alarms when the alarm regeneration timer (AMRTIN) expires
Nuisance/flutter alarm suppression of all contact input alarms until, depending on the
setting of NASOPT, the alarm deadband timer (NASTDB) expires.
571
B0193AX – Rev AB 18. CINR – Redundant Contact Input Block
572
18. CINR – Redundant Contact Input Block B0193AX – Rev AB
COUT
BO02
COUT
COUT
BO03 BO01
LOGIC
Program Feedstock
BI01
Solenoid
Valve
DCS
FBM
ECB5
AID115
TFS001
CIN Tank Full
CINR
Switch
DCS
FBM
ECB5 Heater
AID115
TFS002 AC Power
Output
Product
Solenoid
Valve
573
B0193AX – Rev AB 18. CINR – Redundant Contact Input Block
574
19. CMP – Compounds
This chapter gives a general overview of compounds, their features, rules, functions, and
parameters.
CONFIGURATOR
BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK
= Control Processor
PROCESS
575
B0193AX – Rev AB 19. CMP – Compounds
576
19. CMP – Compounds B0193AX – Rev AB
Alarms have five levels of priority, 1-5, (where 1 = highest priority) that enable you to quickly
focus on the most important plant alarm conditions. An alarm priority of 0 indicates the absence
of any alarm.
These are summarized in a single alarm summary parameter for each compound. This parameter
contains the priority of the highest current alarm in that compound.
To reduce nuisance alarms, alarms can be inhibited at the compound level on a priority level basis.
Alarms can also be inhibited at the block level, on either an alarm type basis, or an overall basis.
Alarms are initiated by the blocks within the compound. Alarm messages are then sent to groups
of stations or applications (for example, Workstations, Historians, Printers) according to config-
ured alarm groups. The UNACK alarm acknowledge output parameter allows you to propagate
alarm acknowledge actions to all blocks in a compound.
Stations, applications, and devices corresponding to various alarm destination groups are config-
ured at the compound level or at the station level in the case of station compounds.
Group numbers for individual block alarm types are configured at the block level.
On/Off On/Off is a parameter that enables or disables the execution of all blocks
within the compound, where: 1 = on; 0 = off.
577
B0193AX – Rev AB 19. CMP – Compounds
Additionally, parameters are defined as being configurable, and either connectable/settable, not
connectable/not settable, or a combination that is dependent upon the compound, block, and
state.
Out-of-Service Out-of-Service defines the validity of the data. This flag is set and reset by
(OOS): the block algorithm. The OOS status usually originates from I/O type
blocks (for example, AIN, COUT) which detect abnormal I/O condi-
tions, for example, that the FBM is out-of-service, or that the compound
containing the block of the I/O parameter is turned off.
Secure Secured defines the conditional settability status of the parameter. The
secure flag is set and reset by the block algorithm. A settable parameter can
only be written if it is not secured. For example, a remote setpoint, RSP, is
unsecured and settable when it is not connected. When connected, the
parameter is secured and not settable.
Bad Bad defines the validity of the data. This flag is set and reset by the block
algorithm. The Bad status usually originates from I/O type blocks (for
example, AIN, COUT) which detect abnormal I/O conditions such as a
bad FBM, type mismatch, bad channel status, or out-of-range conditions.
You can access certain status bits of a parameter value record as explicit connections in control
schemes, by using boolean connection extensions. Certain CALC and LOGIC block
instructions also have this capability, and your tasks can access these variables implicitly within
their specific algorithms.
In addition, the BAD status of an I/O block’s value record is made available as a unique
boolean-type connectable output parameter. This value can be accessed explicitly by any other
block or task.
578
19. CMP – Compounds B0193AX – Rev AB
If no source path is specified during configuration, then the resident data of the value record is the
actual “source” of data. It can be either the initial default or configured value, or a new value
through a SET call to the input parameter.
If a source path is specified, then the data value is an output parameter of the same or another
block, or a shared variable, thereby securing the input. By linking a shared variable to a block
input during configuration, you can establish a long-term secured connection between a remote
application program and the block input.
579
B0193AX – Rev AB 19. CMP – Compounds
580
19. CMP – Compounds B0193AX – Rev AB
ALMLEV Alarm Level specifies the highest priority of all active alarms within the
compound.
CINHIB Compound Inhibit specifies the priority levels of alarm inhibit within the
compound where:
0 = no inhibit
1 = inhibit all inclusive
2 = inhibit levels 2-5 inclusive
3 = inhibit levels 3-5 inclusive
4 = inhibit levels 4-5 inclusive
5 = inhibit level 5.
ERCODE Error Code of the first configuration error detected in the block. For the
CMP block, the following list specifies the possible values of ERCODE,
and the significance of each value in this block:
Message Value
“W43 – INVALID PERIOD/ PHASE does not exist for given block
PHASE COMBINATION” PERIOD, or block PERIOD not
compatible with compound PERIOD.
“W48 – INVALID BLOCK The configured value of a block
OPTION” option is illegal.
581
B0193AX – Rev AB 19. CMP – Compounds
Message Value
“W53 – INVALID A parameter value is not in the accept-
PARAMETER VALUE” able range.
“W58 – INSTALL ERROR; A Database Installer error has
DELETE/UNDELETE occurred.
BLOCK”
GR1DV1 Group 1 Device 1 is one of up to eight devices to receive the block alarm
messages directed to Group 1 by the specifying block parameter. Enter the
identifier of the alarm message destination assigned to be Device 1. If any
nonexisting Station Level device (including spaces-only entries) is entered
in one of the GRxDVy parameters, the alarm throughput of the control
processor is adversely affected.
GR1DV2 - GR1DV8
Group 1 Device 2 through Group 1 Device 8. Apply GR1DV1 definition
to Device numbers 2 through 8.
GR2DV1 - GR2DV8
Group 2 Device 1 through Group 2 Device 8. Apply GR1DV1 definition
to Group 2 Devices 1 through 8.
GR3DV1 - GR3DV8
Group 3 Device 1 through Group 3 Device 8. Apply GR1DV1 definition
to Group 3 Devices 1 through 8.
GR1FD1-GR1FD8
Group 1/Device 1-8 File Descriptor is an integer value.
GR2FD1-GR2FD8
Group 2/Device 1-8 File Descriptor is an integer value.
GR3FD1-GR3FD8
Group 3/Device 1-8 File Descriptor is an integer value.
INITON Initialize On/Off specifies the state the compound assumes on initializa-
tion where:
0 = initialize the compound in the OFF state.
1 = initialize the compound in the ON state.
2 = initialize the compound in the ON/OFF state specified in the check-
point file.
The default setting = 2. INITON action is performed when the com-
pound is initialized by installation of the compound, or download of the
compound during Reboot.
582
19. CMP – Compounds B0193AX – Rev AB
PERIOD An indexed input that dictates the compound’s execution time base and
allowable PHASE values. Except for Integrator and Gateway stations,
PERIOD values range from 0 to 13 and map to the following time lengths
and allowable PHASE values:
PERIOD PERIOD
PHASE Values PHASE Values
Value Length for BPC=0.5s Value Length for BPC=0.5s
0 0.1 sec Not allowed 7 10 min 0 to 1199
1 0.5 sec [0] default 8 60 min 0 to 7199
2 1.0 sec 0 or 1 9 0.2 sec Not allowed
3 2.0 sec 0 to 3 10 5.0 sec 0 to 9
4 10 sec 0 to 19 11 0.6 sec [0] default
5 30 sec 0 to 59 12 6.0 sec 0 to 11
6 1 min 0 to 119 13 0.05 sec* Not allowed
! WARNING
The period of a compound must be equal to, or shorter than, the shortest period of
any block in the compound to ensure that all blocks are processed. That is, you may
not enter a compound period of 1.0 second while it contains a block with a 0.5 sec-
ond period. Attempts to do so will result in warning messages, and the blocks will
be set undefined.
! WARNING
Manual phasing of compounds is allowed, but it must be done carefully for proper
block operation. Improper compound phasing can result in excessive overruns or in
blocks not being processed. Note also that raising the frequency (shortening the
period) of the Basic Processing Cycle (BPC) may invalidate previously configured
phase values by reducing the range of legal PHASE values for a given Period. Read
“Block Phasing” in the appropriate Integrated Control Software Concepts document
(B0700AG or B0193AW).
583
B0193AX – Rev AB 19. CMP – Compounds
SSTATE Sequential State represents the collective operational state of all sequential
control blocks in the compound. SSTATE can be one of three values:
SSTATE = 0 (Inactive);
SSTATE = 1 (Active); or
SSTATE = 2 (Exception).
Refer to the “Compound Sequence State” in the appropriate Integrated
Control Software Concepts document (B0700AG or B0193AW) for further
definition.
TYPE When you enter “CMP” or select “CMP” from the block type list under
Show, an identifying integer is created specifying this block type.
584
20. COUT – Contact Output Block
This chapter covers the Contact Output, or COUT, block, its basic operations, features,
parameters, and functions, bad input, out-of-service and error conditions, failsafe state,
manual mode, and alarming, and also provides an application diagram and a valid output
connections appendix.
20.1 Overview
The Contact Output block (COUT) provides the control strategy with output capability for a
single digital output point in any Fieldbus Module (FBM) or Fieldbus Card (FBC) containing
such points. You can select a sustained output that follows the block input or a pulsed output with
a selectable pulse width. The block also supports output inversion and alarming. See Figure 20-1.
Fieldbus
Invert Module Point
Contact Out Identifier Number
Option Pulse Option
Point Pulse To
Input
Inversion Output FBM/FBC
Contact
Output
ECB Failsafe
Processing Failsafe
Failsafe
Bad Alarm
Option
Figure 20-1. COUT Block Diagram
585
B0193AX – Rev AB 20. COUT – Contact Output Block
20.3 Features
Interfacing of the control scheme to all digital output points in any FBMs or FBCs
Duplicate output channel cross-checking against other control blocks
Fieldbus Module option to permit configuration of COUT blocks without FBM or
FBC connections
Output inversion option
Pulse option with variable pulse width
Failsafe support
Switch to Manual option if Failsafe detected
Contact readback for initialization situations.
“Open cascade” notification to upstream blocks
Error propagation option
Last good value option
Manual mode for disconnecting the process from the control scheme, for simulation
and checkout purposes
Detection and alarming of bad FBM, bad FBC, and bad FBC input point
Out-of-service detection and handling for connected FBMs or FBCs.
586
20. COUT – Contact Output Block B0193AX – Rev AB
20.4 Parameters
Table 20-1. COUT Block Parameters
587
B0193AX – Rev AB 20. COUT – Contact Output Block
ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use.
For the COUT block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit Number1
(0 to 31) Configured Alarm Option When True
0 (Least Significant) Alarm Group 8 in Use
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use
22 Bad I/O Alarm Configured
1.
Bit 0 is the least significant, low order bit.
588
20. COUT – Contact Output Block B0193AX – Rev AB
ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the COUT block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
B4
B5
B6
B7
B8
B9
CRIT PRTYPE
BAD
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: Only PRTYPE values
(Least Sig- 0 and 8 are used in the COUT block
nificant)
5 to 7 CRIT_MSK Criticality; 5 = lowest priority,
1 = highest
22 BAD Bad I/O Alarm ALMSTA.B10
30 UNAK Unacknowledged Alarm ALMSTA.B2
AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is gen-
erated.
BAD Bad is a boolean output parameter which is set true when the connected
FBM or FBC has bad status or the connected point within it (if an FBC)
has bad readback status.
BAG Bad Alarm Group is a short integer input that directs Bad alarm messages
to one of eight groups of alarm devices.
BAO Bad Alarm Option is a configurable boolean which, when true, enables
alarm generation for each state change of the BAD parameter.
BAP Bad Alarm Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the Bad alarm (1 is the highest priority).
589
B0193AX – Rev AB 20. COUT – Contact Output Block
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the COUT block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
FBM
BAD
TRK
MA
ON
FS
Bit Number* Boolean Connection
(0 to 31) Name Description When True (B32 to B1)
6 TRK Tracking BLKSTA.B26
8 FBM FBM or FBC Failure BLKSTA.B24
11 MA Manual = 0, Auto = 1 BLKSTA.B21
12 BAD Bad I/O BLKSTA.B20
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
20 WLCK Workstation Lock BLKSTA.B12
24 FS Output in Failsafe BLKSTA.B8
COUT Contact Output is the output of the block. When there is a connected
FBM or FBC, its value is also transmitted to the connected output point.
CRBK Contact Readback contains the readback value of the connected point if
an FBM or FBC is connected, provided the FBM or FBC is not out-of-
service or bad, or the FBC point does not have bad status readback. If any
of these conditions exist, CRBK retains its last good value.
CRIT Criticality is an integer output that indicates the priority, ranging from 1
to 5, of the block’s highest currently active alarm (1 is the highest priority).
An output of zero indicates the absence of alarms.
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing, other than those involved in duplicate output channel detection.
(See ERCODE for the list of all possible validation errors in this block.) In
that case, no further processing of the block occurs, including further vali-
dation of remaining parameters. To return DEFINE to a true value, cor-
rect all configuration errors and re-install the block. If DEFINE = 0, the
bit BLKSTA.UDEF = 1.
590
20. COUT – Contact Output Block B0193AX – Rev AB
DEV_ID Device Identifier is a character array that specifies the 6-character letter-
bug of the connected FBM or FBC.
ERCODE Error Code is a string data store which indicates the type of configuration
error which caused the block’s DEFINE parameter to be set false. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. For the COUT block, the following list specifies
the possible values of ERCODE and the significance of each value in this
block:
ERCODE Description
W51 The specified FBM or FBC does not contain any digital
output points)
W52 PNT_NO out of range for the specified FBM or FBC)
W54 Specified IOM_ID does not exist
W59 Warning: This block and another block which drives
digital output points are connected to the same FBM or
FBC and point number. Both blocks receive the same
warning message.
EROPT Error Option is a short integer option which determines the conditions
under which last good value functionality is provided for the block output
COUT. EROPT is only active when PROPT is true and the block is in
Auto. (See Section 20.6.3 for a definition of the effect of the different val-
ues of EROPT).
FS Failsafe is a boolean output which is set true when the connected output
point transitions into the Failsafe state. If the block is in Auto when the
transition occurs, FS remains true for one cycle, and then returns to false.
If in Manual, FS goes true on any transition into Failsafe, and remains
true while the block is in Manual. On the next transition into Auto, FS is
set false.
IN Input is the input to the block. Its value, after optional inversion and pulse
generation, is presented as the output COUT, and transmitted to any con-
nected FBM or FBC point.
INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting. Alarms can also be inhibited based on the compound parameter
CINHIB.
591
B0193AX – Rev AB 20. COUT – Contact Output Block
INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do not
disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the time
the alarm transitions into the inhibited state, clear the alarm
indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages can be acknowledged by explicitly setting
UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages can be acknowledged by explicitly setting
UNACK false.
INHSTA Inhibit Status contains packed long values that represent the current
inhibit status of each alarm type configured in the block. For the COUT
block, only the following bit is used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BAD B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state as specified in the checkpoint file.
The block asserts this initial M/A state whenever:
It is installed into the Control Processor database
The Control Processor undergoes a reboot operation
The compound in which it resides is turned on.
592
20. COUT – Contact Output Block B0193AX – Rev AB
INITO Initialize Out is set true when any open-cascade situation exists in the
COUT block. It persists for the duration of the condition, and is set false
again when the condition terminates.
INVCO Invert Contact Out is an option parameter which causes the block’s sus-
tained output to be inverted from the input value IN, or the block’s pulsed
output to be reversed in sense.
IOM_ID Fieldbus Module Identifier is a configurable string that specifies the path-
name of the FBM or FBC to which the block is connected.
IOM_ID has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOM_ID configuration. In this case, the 1-12
character ECB block name is sufficient.
LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-char-
acter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.
LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are honored (subject to the usual access rules) only from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set false by any workstation at any time, whereupon a
new LOCKRQ is accepted, and a new ownership workstation identifier
written to LOCKID.
593
B0193AX – Rev AB 20. COUT – Contact Output Block
MA Manual /Auto is a boolean input that controls the block’s operating state:
0 = False = Manual
1 = True = Auto
When in Manual, the COUT block outputs are released and can only be
updated manually. In Auto, the outputs are secured and updated by the
block logic.
MANFS Manual if Failsafe is a configurable option which, when true, causes the
block to switch to the Manual mode when the connected point is reported
by the FBM or FBC to be in Failsafe state. MANFS has no effect when
MA is linked.
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)
* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
594
20. COUT – Contact Output Block B0193AX – Rev AB
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).
PLSOPT Pulse Option allows you to select pulsed operation of the output COUT.
When true, PLSOPT causes a 0-to-1 pulse on COUT for a duration of
WIDTH minutes, every time there is a 0-to-1 transition of the input IN.
If the invert option INVCO is also true, the sense of output pulses is
reversed.
PNT_NO Point Number is the FBM or FBC point to which the COUT block is
connected. (See “Appendix A – Valid Output Connections” on page 605).
PROPT Propagate Error Option is a boolean input which determines whether the
status of IN should be reflected in the Error bit of COUT status. If the
COUT block is in Auto, a true value of PROPT causes any one of the fol-
lowing conditions to be reflected as an Error status of COUT:
Bad status bit in IN parameter
OOS status bit in IN parameter
Error status bit in IN parameter
Any value in the om field of the input source except 1
(ON_SCAN). Any other value in this field indicates that the
source of the connection has been deleted or is in a nonexistent
compound, or there has been a peer-to-peer path failure.
Parameter EROPT is used to control last good value functionality when
PROPT is true and the block is in Auto.
PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. The PRTYPE output of this block
consists only of the following alarm types:
0 = No active alarm
8 = Bad
595
B0193AX – Rev AB 20. COUT – Contact Output Block
TYPE When you enter “COUT” or select it from a configurator list, an identify-
ing integer is created specifying this block type.
UNACK Unacknowledge is a boolean output parameter which is set true, for notifi-
cation purposes, whenever the block goes into alarm. It is settable, but sets
are only allowed to clear UNACK to false, and never in the opposite direc-
tion. The clearing of UNACK is normally via an operator “acknowledge”
pick on a default display, user display, or Current Alarms Display, or via a
user task.
WIDTH Pulse Width specifies the duration, in minutes, of output pulses generated
when PLSOPT is true.
596
20. COUT – Contact Output Block B0193AX – Rev AB
20.5 Functions
20.5.1 Detailed Diagram
INVCO
PLSOPTWIDTH (M)
o
MA
Point Pulsed o o o o
IN Output COUT
Inversion
(A)
CRBK
PLSOPT = 0 AND
Bumpless Init Cycle
(See Section 15.5.3)
OR o BUMPLESS INIT VALUE
PLSOPT = 1 AND
Non-Pulsed
COUT State Open
Cascade INITO
Detection
IN.BAD
IN.OOS OR
IN.Disconnect EROPT = 1 AND
597
B0193AX – Rev AB 20. COUT – Contact Output Block
NOTE
Points 33 to 64 of FBC10 and FBC10 Redundant can be used as inputs or outputs,
depending on how you configure the ECB parameter BUSMID using the Inte-
grated Control Configurator. The first 32 points (Points 1 to 32) are always inputs.
Any additional inputs within the range 33 to 64 must be lower than any outputs.
The value of BUSMID is the total number of inputs in the FBC, according to the
following table.
598
20. COUT – Contact Output Block B0193AX – Rev AB
Duplicate output channel detection is intended to alert you to the fact that this block and another
block capable of digital outputs are connected to the same output point. This does not necessarily
constitute a conflict, since the other block may be in a compound which is not intended to run at
the same time as the compound containing this COUT block, or the duplicate connection may
be desired as part of an elaborate control scheme. The blocks capable of driving digital outputs are
COUT, MCOUT, GDEV, MTR, VLV, MOVLV, and MDACT.
When any block of one of these types undergoes one of the following actions, the entire data base
is checked for duplicate digital output channels:
The block is installed.
The IOMOPT (OP_FBM in the case of GDEV) parameter is modified.
The IOM_ID or IOMIDR parameter is modified.
A variable output point number (PNT_NO, CO1_PT, or CO2_PT) is modified, or,
in the case of MCOUT, the parameter GRPNUM is modified.
The duplicate output channel check is also performed when the Control Processor is rebooted. It
is not performed when a compound is switched On or Off.
All blocks connected to the same output point receive the DUPLICATE OUTPUT CHANNEL
warning message, but none are set Undefined.
If the block is in Auto, and the last good value conditions described in Section 20.6.3 are not in
effect, then the value of the input IN is transferred to the output COUT, after optional inversion
based on the value of Invert Contact Out (INVCO). Note that inversion is disabled in Manual
mode.
When the Pulse Option (PLSOPT) option parameter is true and INVCO is false, any 0-to-1
transition of IN results in a pulsed output, during which COUT is in the 1 state for a period of
time equal to parameter Pulse Width (WIDTH). WIDTH, which is expressed in units of min-
utes, enables dynamic pulse width settings. The values of IN, including any positive or negative
transitions, are ignored during the active WIDTH period. The output returns to 0 when the pulse
duration expires. If IN is in the 1 state at the time the pulse ends, no new pulse is started until IN
has returned to 0, and a new 0-to-1 transition has occurred.
The sense of pulses is reversed when PLSOPT and INVCO are simultaneously true. In this case, a
0-to-1 transition of IN causes a pulse in which COUT remains in the 0 state for WIDTH min-
utes, after which it returns to 1. Any transitions of IN are ignored during the active pulse period,
and if IN is in the 1 state when the pulse ends, no new pulse begins until there has been a new
transition of the input.
599
B0193AX – Rev AB 20. COUT – Contact Output Block
600
20. COUT – Contact Output Block B0193AX – Rev AB
FBM or FBC, to the previous value of COUT. If either of the last two conditions is the cause of
INITO, CRBK holds its last good value.
Since CRBK is refreshed on every cycle, including those in which neither the initialization mode
nor INITO is true, it therefore serves to make the actual state of any connected FBM or FBC
available to the control strategy at all times.
601
B0193AX – Rev AB 20. COUT – Contact Output Block
When PROPT is true and the block is in Auto, you may use parameter Error Option (EROPT)
to control last good value functionality. The values of EROPT are as follows:
EROPT = 0: There is no last good value functionality. COUT is updated normally.
EROPT = 1: The value of COUT is not updated, and its value from the previous pro-
cessing cycle is used, whenever any one of the first, second, or fourth conditions above
is true.
EROPT = 2: The value of COUT is not updated, and its value from the previous pro-
cessing cycle is used, whenever any one of the four conditions above is true.
If the block is in Manual, EROPT is ignored.
602
20. COUT – Contact Output Block B0193AX – Rev AB
20.9 Alarming
The COUT block supports the Bad I/O alarm type. The functionality of this alarm type is dis-
cussed in the appropriate Integrated Control Software Concepts document (B0700AG or
B0193AW).
The nomenclature for identical alarm types varies from block to block for historical reasons
involving backward compatibility requirements. The nomenclature for the COUT block is as fol-
lows:
Table 20-3. Alarm Nomenclature
Default Indicator
Type Option Priority Group Text Display Parameter
I/O Bad BAO = True BAP BAG BAT IOBAD BAD
603
B0193AX – Rev AB 20. COUT – Contact Output Block
CALCA
Program
CIN
CIN WIDTH IN
CIN CIN
CIN CIN COUT
CIN WIDTH IN
CIN
COUT
FBM241
or Flow
FBM09 Switch
Feedstock
Tank Full
Switch
Tank Half
Full Switch
Output
Product
Solenoid
Flow Valve
Switch
604
20. COUT – Contact Output Block B0193AX – Rev AB
Hardware
219
241
242
10
11
14
15
16
17
26
27
62
86
94
97
9
Type #
Point
1 O O O
2 O O O
3 O O O
4 O O O
5 O O O
6 O O O
7 O O O
8 O O O
9 O O O O O O O O
10 O O O O O O O O
11 O O O O O O O O O
12 O O O O O O O O O
13 O O O O O O O O O
14 O O O O O O O O O
15 O O O O O O O O
16 O O O O O O O O
17 O O
18 O O
19 O O
20 O O
21 O O
22 O O
23 O O
24 O O
25 O O O O O O O
26 O O O O O O O
27 O O O O O O O
28 O O O O O O O
29 O O O O O O O
30 O O O O O O O
31 O O O O O O O
32 O O O O O O O
33 I/O I/O
34 I/O I/O
605
B0193AX – Rev AB 20. COUT – Contact Output Block
Hardware
219
241
242
10
11
14
15
16
17
26
27
62
86
94
97
9
Type #
Point
35 I/O I/O
36 I/O I/O
37 I/O I/O
38 I/O I/O
39 I/O I/O
40 I/O I/O
41 I/O I/O
42 I/O I/O
43 I/O I/O
44 I/O I/O
45 I/O I/O
46 I/O I/O
47 I/O I/O
48 I/O I/O
49 I/O I/O
50 I/O I/O
51 I/O I/O
52 I/O I/O
53 I/O I/O
54 I/O I/O
55 I/O I/O
56 I/O I/O
57 I/O I/O
58 I/O I/O
59 I/O I/O
60 I/O I/O
61 I/O I/O
62 I/O I/O
63 I/O I/O
64 I/O I/O
Legend: O = Output
I/O = Configurable as Input or Output
606
20. COUT – Contact Output Block B0193AX – Rev AB
NOTE
Hardware Type 62 is used for FBC09.
Hardware Type 86 is used for FBC10.
Hardware Type 94 is used for FBC09 Redundant.
Hardware Type 97 is used for FBC10 Redundant.
607
B0193AX – Rev AB 20. COUT – Contact Output Block
608
21. COUTR – Redundant Contact
Output Block
This chapter covers the Redundant Contact Output, or COUTR, block, its basic operations,
features, parameters, and functions, bad input, out-of-service and error conditions, failsafe
state, manual mode, and alarming, and also provides an application diagram.
21.1 Overview
The Redundant Contact Output block (COUTR) provides the control strategy with output capa-
bility for a single digital output point directed to two redundant Fieldbus Modules (FBMs) con-
taining such points. You can select a sustained output that follows the block input or a pulsed
output with a selectable pulse width. The block also supports bad alarming. The COUTR block
is currently qualified for use only with redundant FBM240 modules and redundant DCS FBMs
for Migration to Moore APACS+ systems, and with redundant FBM207 and FBM217. For more
information on the DCS FBMs, refer to DCS Fieldbus Modules for Migration of Moore APACS+
Systems User’s Guide (B0700BK). For more information on the FBM207/217, refer to DIN Rail
Mounted Subsystem User’s Guide (B0400FA).
See Figure 21-1 for an overview of COUTR block operation.
609
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block
Fieldbus
Pulse Module
Option Identifiers
FBM FBM
Option Width Option Point
Number
To
1 M Redundant
Input 1 Write
Points ECBs
0 Pulse
Output A
Primary and
Point 0 Contact
Secondary
Selection Output
Readback
Values
ECBs Failsafe
Processing Failsafe
Failsafe/Bad
Bad Alarm
Option
Figure 21-1. COUTR Block Diagram
610
21. COUTR – Redundant Contact Output Block B0193AX – Rev AB
21.3 Features
The COUTR block provides the following features:
Drives each of two redundant output signals in redundant FBMs
Interfacing of the control scheme to digital output points in redundant FBMs, includ-
ing readback values from field devices
Pulse option with variable pulse width
Contact readback for initialization situations
Simulation mode via the Fieldbus Module option to permit block configuration with-
out FBM connections
Manual mode availability for disconnecting the process from the control scheme, for
simulation and checkout purposes
Duplicate output channel cross-checking against other control blocks
Failsafe support
Switch to Manual option if Failsafe detected
“Open cascade” notification to upstream blocks
Error propagation option
Last good value option
Alarming of bad output channels of both FBMs
Alarm inhibit options
Re-alarming of active block alarms when the alarm priority is changed
Optional re-alarming of active block alarms when the re-alarm timer expires.
611
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block
21.4 Parameters
Table 21-1. COUTR Block Parameters
612
21. COUTR – Redundant Contact Output Block B0193AX – Rev AB
ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use. For the COUTR block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit Number1
(0 to 31) Configured Alarm Option When True
0 (Least Significant) Alarm group 8 in use
1 Alarm group 7 in use
2 Alarm group 6 in use
3 Alarm group 5 in use
4 Alarm group 4 in use
5 Alarm group 3 in use
6 Alarm group 2 in use
7 Alarm group 1 in use
14 Secondary point alarm option2
15 Primary point alarm option2
22 Bad I/O alarm configured2
1.
Bit 0 is the least significant, low order bit.
2.
Bit is set if BAO = 1.
613
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block
ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the COUTR block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
BAD_S B17
BAD_P B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
UNACK B1
B2
B3
B4
B5
B6
B7
B8
B9
CRIT PRTYPE
BAD
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
0 to 4 PRTYPE Priority Type: Only PRTYPE values
(Least Sig- 0 and 8 are used in the COUTR
nificant) block
5 to 7 CRIT Criticality; 5 = lowest priority,
1 = highest
14 BAD_S Secondary point Bad ALMSTA.18
15 BAD_P Primary point Bad ALMSTA.17
22 BAD Bad I/O alarm (primary and ALMSTA.B10
secondary points Bad)
30 --- Bad alarm inhibited ALMSTA.B2
31 UNACK Unacknowledged Bad alarm ALMSTA.B1
* Bit 0 is the least significant, low order bit.
AMRTIN Alarm Regeneration Timer is an integer that specifies the time interval for
an alarm condition to exist continuously, after which a new unacknowl-
edged alarm condition and an associated alarm message is generated. Val-
ues range from 0 (default, no regeneration) to 32767 seconds.
BAD Bad is a boolean output parameter which is set true when both of the con-
nected FBMs have bad status or both readback values have bad status.
BAG Bad Alarm Group is a short integer input that directs Bad alarm messages
to one of eight groups of alarm devices.
BAO Bad Alarm Option is a configurable boolean value. When configured true,
it enables alarm generation for each state change of the BAD parameter.
BAP Bad Alarm Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the Bad alarm (1 is the highest priority).
614
21. COUTR – Redundant Contact Output Block B0193AX – Rev AB
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the COUTR block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
FBMR B23
B24
HOLD B25
B26
B27
B28
B29
B30
BIOR B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
FBM
LCK
BIO
ON
MA
FS
COUT Contact Output is the output of the block. When there are connected
FBMs, its value is also transmitted to the connected output points.
615
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block
izes the block’s output parameter (COUT) when the block initializes,
when communication is restored to the redundant FBM pair, and when
transitioning from both readback channels having bad status to at least
one readback channel becoming good.
If a pair of FBMs is not connected (IOMOPT = 0), this value is simulated
using the current state of the COUT parameter.
CRIT Criticality is an integer output that indicates the priority, ranging from 1
to 5, of the block’s highest currently active alarm (1 is the highest priority).
An output of zero indicates the absence of alarms.
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing, other than those involved in duplicate output channel detection.
(See ERCODE for the list of all possible validation errors in this block.) In
that case, no further processing of the block occurs, including further vali-
dation of remaining parameters. To return DEFINE to a true value, cor-
rect all configuration errors and re-install the block. If DEFINE = 0, the
bit BLKSTA.UDEF = 1.
DEV_ID Primary Device Identifier is a character array data store that specifies the
6-character letterbug of the connected primary FBM.
DEVIDR Secondary Device Identifier is a character array data store that specifies the
6-character letterbug of the connected secondary FBM.
ERCODE Error Code is a string data store that indicates the type of configuration
error that caused the block’s DEFINE parameter to be set false. Validation
of configuration errors does not proceed past the first error encountered
by the block logic. For the COUTR block, the following list specifies the
possible values of ERCODE and the significance of each value in this
block:
ERCODE Description
W43 – INVALID PERIOD/ The configured PHASE parameter
PHASE COMBINATION value is not consistent with the con-
figured PERIOD value.
W51 – INVALID HARDWARE/ The specified FBM does not con-
SOFTWARE TYPE tain any digital output points
W52 – INVALID I/O PNT_NO out of range for the spec-
CHANNEL/GROUP NUMBER ified FBM
W54 – ECB DOES NOT EXIST Specified IOM_ID or IOMIDR
does not exist
616
21. COUTR – Redundant Contact Output Block B0193AX – Rev AB
EROPT Error Option is a short integer option that determines the conditions
under which the last good value functionality is provided for the block
output COUT. EROPT is only active when PROPT is true and the block
is in Auto. (See Section 21.6.3 for a definition of the effect of the different
values of EROPT).
FS Failsafe is a boolean output which is set true when the connected output
points in both FBMs transition into the Failsafe state or if the connected
output point in one FBM transitions to Failsafe and the other FBM is
failed. If the block is in Auto when the transition occurs, FS remains true
for one cycle, and then returns to false. If in Manual, FS goes true on any
transition into Failsafe, and remains true while the block is in Manual. On
the next transition into Auto, FS is set false.
IN Input is the input to the block. Its value, after optional pulse generation, is
presented as the output COUT, and transmitted to any connected FBM
points.
INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting. Alarms can also be inhibited based on the compound parameter
CINHIB.
INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do not
disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the time
the alarm transitions into the inhibited state, clear the alarm
indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages can be acknowledged by explicitly setting
UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages can be acknowledged by explicitly setting
UNACK false.
617
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block
INHSTA Inhibit Status contains packed long values that represent the current
inhibit status of each alarm type configured in the block. For the COUTR
block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
BAD_P B17
BAD_S B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
BAD
INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The M/A state as specified in the checkpoint file.
The block asserts this initial M/A state whenever:
It is installed into the Control Processor database
The Control Processor undergoes a reboot operation
The compound in which it resides is turned on.
The INITMA parameter is modified via the Integrated Control
Configurator. (The block does not assert INITMA on ordinary
reconfiguration.)
INITMA is ignored if MA has an established linkage.
INITO Initialize Out is set true when any open-cascade situation exists in the
COUTR block. It persists for the duration of the condition, and is set
false again when the condition terminates.
618
21. COUTR – Redundant Contact Output Block B0193AX – Rev AB
LOCKID Lock Identifier is a string identifying the workstation that has exclusive
write access to the block. LOCKID arbitrates write access to the block
parameters by operator workstations on the network. Set requests to any
of the block’s parameters are honored only if the identifier of the worksta-
tion requesting the changes matches the identifier set in LOCKID.
The lock request message sets LOCKRQ to true and sets LOCKID to the
identifier of the requesting workstation. The corresponding lock release
message sets LOCKRQ to false and LOCKID to null.
LOCKID has the format Letterbug:DeviceName, where Letterbug is the
6-character letterbug of the workstation and DeviceName is the 1 to 6
character logical device name of the Display Manager task.
LOCKRQ Lock Request is a boolean value that is set true or false by a toggling the
LOCK U/L key on the Block Detail Display. Lock Request is a boolean
value that is set true or false by a toggling the LOCK U/L key on the
Block Detail Display. An operator at any workstation can lock and unlock
the block using the LOCK U/L key.
The lock request message sets LOCKRQ to true, sets LOCKID to the
identifier of the requesting workstation, and sets the WLCK bit in the
BLKSTA parameter. Thereafter, set requests to any of the block’s parame-
619
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block
ters are honored (subject to the usual access rules) only if the requesting
workstation’s identifier matches the contents of LOCKID.
The corresponding lock release message sets LOCKRQ to false, sets
LOCKID to null, and resets the WLCK bit.
MANFS Manual if Failsafe is a configurable option which, when true, causes the
block to switch to the Manual mode when the connected points in both
FBMs are reported to be in the Failsafe state, or if a connected point in
one of the FBMs is reported to be in the Failsafe state while the other
FBM is failed. MANFS has no effect when MA is linked.
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)
620
21. COUTR – Redundant Contact Output Block B0193AX – Rev AB
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).
PLSOPT Pulse Option allows you to select pulsed operation of the output COUT.
When true, PLSOPT causes a 0-to-1 pulse on COUT for a duration of
WIDTH minutes, every time there is a 0-to-1 transition of the input IN.
PNT_NO Point Number is the FBM point to which the COUTR block is
connected.
PROPT Propagate Error Option is a boolean input that determines whether the
status of IN should be reflected in the Error bit of COUT status. If the
COUTR block is in Auto, a true value of PROPT causes any one of the
following conditions to be reflected as an Error status of COUT:
Bad status bit in IN parameter
OOS status bit in IN parameter
Error status bit in IN parameter
Any value in the om field of the input source except 1
(ON_SCAN). Any other value in this field indicates that the
source of the connection has been deleted or is in a nonexistent
compound, or there has been a peer-to-peer path failure.
Parameter EROPT is used to control last good value functionality when
PROPT is true and the block is in Auto.
PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. The PRTYPE output of this block
consists only of the following alarm types:
0 = No active alarm
8 = Bad
621
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block
TYPE When you enter “COUTR” or select it from a configurator list, an identi-
fying integer is created specifying this block type.
UNACK Unacknowledge is a boolean output parameter that is set true, for notifica-
tion purposes, whenever the block goes into alarm. It is settable, but sets
are only allowed to clear UNACK to false, and never in the opposite direc-
tion. The clearing of UNACK is normally via an operator “acknowledge”
pick on a default display, user display, or Current Alarms Display, or via a
user task.
WIDTH Pulse Width specifies the duration, in minutes, of output pulses generated
when PLSOPT is true.
622
21. COUTR – Redundant Contact Output Block B0193AX – Rev AB
21.5 Functions
21.5.1 Detailed Diagram
IOMOPT Value
Prim. Returned from
CRBK_P
ECB Prim. FBM
MA Read-
back
Value
PLSOPT WIDTH 1 Sec. Returned from
M CRBK_S
ECB Sec. FBM
Pulsed
IN
Output A COUT
Open
Cascade INITO
IN.BAD Detection
IN.OOS OR
IN.Disconnect EROPT = 1 AND
IOMOPT
Prim. ECB OOS AND COUT.OOS
Sec. ECB OOS AND INITO.OOS
CRBK_P.OOS
Prim. ECB Bad
Sec. ECB Bad CRBK_S.OOS
AND
COUT.SECURE
IOMOPT OR BAD
COUT.BAD
Prim. Readback Pt. Bad AND
INITO.BAD
Sec. Readback Pt. Bad
CRBK_P.BAD
CRBK_S.BAD
COUT.SECURE
Manual
Failsafe AND Bad
Detection OR FS BAO AND Alarming
Auto AND
Transition Cycle
623
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block
624
21. COUTR – Redundant Contact Output Block B0193AX – Rev AB
625
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block
When a healthy block output is in the failsafe state or transitions out of the failsafe
state.
626
21. COUTR – Redundant Contact Output Block B0193AX – Rev AB
When PROPT is true and the block is in Auto, you may use parameter Error Option (EROPT)
to control last good value functionality. The values of EROPT are as follows:
EROPT = 0: There is no last good value functionality. COUT is updated normally.
EROPT = 1: The value of COUT is not updated, and its value from the previous pro-
cessing cycle is used, whenever any one of the first, second, or fourth conditions above
is true.
EROPT = 2: The value of COUT is not updated, and its value from the previous pro-
cessing cycle is used, whenever any one of the four conditions above is true.
If the block is in Manual, EROPT is ignored.
627
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block
628
21. COUTR – Redundant Contact Output Block B0193AX – Rev AB
21.9 Alarming
The COUTR block supports the Bad I/O alarm type. This section provides a functional overview
of the Bad I/O alarm.
The nomenclature for identical alarm types varies from block to block for historical reasons
involving backward compatibility requirements. The nomenclature for the COUTR block is as
follows:
Table 21-2. Alarm Nomenclature
Default Indicator
Type Option Priority Group Text Display Parameter
I/O Bad BAO = True BAP BAG BAT IOBAD BAD
Detailed descriptions of this alarm type and the following alarm functions is discussed in the
appropriate Integrated Control Software Concepts document (B0700AG or B0193AW).
Re-alarming of active alarms when the alarm priority (PRTYPE) is changed
Re-alarming of active alarms when the alarm regeneration timer (AMRTIN) expires
629
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block
Sets the Priority Type (PRTYPE) parameter and its corresponding ALMSTA.PRTYPE
bit to the Bad alarm type.
When both readback values return to good status, BAD, CRIT, PRTYPE and their corresponding
fields in ALMSTA are cleared.
The UNACK parameter and the ALMSTA.UNACK bit are cleared if one of the following is true:
The alarm is acknowledged by an OM set operation at either the compound or block
level by setting the compound or block parameter UNACK to 0.
Both readback values return to a good status and the Inhibit Option (INHOPT) is set
appropriately.
The block is shut down.
When UNACK is cleared, an Alarm Acknowledge message is generated and sent to all devices in
the bad alarm group.
630
21. COUTR – Redundant Contact Output Block B0193AX – Rev AB
CALCA
Program
FBM240 FBM240
FBM241
Feedstock
WIDTH IN
COUTR
ECB5 ECB5
Tank Full
Switch
FBM240 FBM240
Output
Product
Solenoid
Valve
631
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block
632
22. DEP – Dependent Sequence
Block
This chapter covers the Dependent Sequence, or DEP, block, its features, parameters and
detailed operations.
22.1 Overview
The Dependent Sequence (DEP) block provides sequential control for regulatory feedback appli-
cations at the equipment control level. A DEP block can be used to perform a series of activities,
for example: filling, mixing, and draining the contents of a tank.
MA PAUSED
DEP SUSPND
ACTIVE
BLOCK
STEPMD STMNO, SUBRNO
Standard SBXNO, STEPNO
Parameters OP_ERR
User ALMSTA, BLKSTA
Parameters
MSGNO
Subroutines
BI (1–24) BO (1–16)
SBXs
II (1–8) IO (1–5)
RI (1–15) RO (1–15)
Main
Statement
Section
(with steps)
22.2 Features
The features are:
Define a sequence of events with High Level Batch Language (HLBL) statements.
Activate or deactivate other Sequence blocks.
Activate or deactivate Monitor (MON) blocks.
Activate or deactivate individual monitor cases of a MON block.
Control timers in Timer (TIM) blocks to time events.
Access any shared variable and all parameters of any block present in the system. For
example, a DEP block may be carrying out a function, such as filling a tank. If a Mon-
itor (MON) block detects an off-normal process condition, it can activate an
633
B0193AX – Rev AB 22. DEP – Dependent Sequence Block
Exception (EXC) block to take corrective action. The DEP block is Paused until the
corrective action is complete. When the EXC block becomes Inactive, the DEP block
can finish executing its logic.
For example, a DEP block may be carrying out a function, such as filling a tank. If a
Monitor (MON) block detects an off-normal process condition, it can activate an
Exception (EXC) block to take corrective action. The DEP block is Paused until the
corrective action is complete. When the EXC block becomes Inactive, the DEP block
can finish executing its logic.
The DEP block contains standard parameters, user parameters, and a free program-
mable algorithm. Standard parameters govern and represent the operational mode for
the DEP block. All user parameters can be read and written in the free programmable
block’s algorithm.
The user-defined algorithm consists of:
Local block variables to be used by the block’s algorithm. They cannot be accessed
from outside the block.
Subroutines.
Standard Block Exception Handlers (SBXs) that contain:
Error handling logic to be executed in order to recover from an operational
error.
“Transition” logic to be executed when the operational mode of the block
changes from Active/Auto or Active/Semi-Auto to another mode.
The block’s main section, which can be subdivided into steps.
The options are:
Restart Manual Auto (RSTMA) specifies the desired value of the MA parameter at
block initialization.
Restart Active (RSTACT) specifies the desired value of the ACTIVE parameter at
block initialization, where:
RSTACT = 0: sets ACTIVE to false when the compound is turned on or for a
station reboot.
RSTACT = 1: sets ACTIVE to true when the compound is turned on or for a
station reboot.
RSTACT = 2: sets ACTIVE to the value in the checkpoint file for a station reboot
only. Otherwise, ACTIVE remains unchanged.
Inhibit Option (INHOPT) allows you to specify alarm inhibit options.
Operational Error Alarm Option (OP_OPT) enables or disables operational error
alarm messages and indications. You can change OP_OPT only by reconfiguring the
block.
634
22. DEP – Dependent Sequence Block B0193AX – Rev AB
22.3 Parameters
Table 22-1. DEP Block Parameters
635
B0193AX – Rev AB 22. DEP – Dependent Sequence Block
636
22. DEP – Dependent Sequence Block B0193AX – Rev AB
ACTIVE Active shows the current Sequence block state. Writing to this parameter
changes the block state. When ACTIVE = 1, the block is active. When
ACTIVE = 0, the block is inactive.
ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use. For the DEP block, only the following unshaded bits are
used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
B10 8 7 6 5 4 3 2 1 0
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit Number1
(0 to 31) Configured Alarm Option When True
0 Alarm Group 8 in Use
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use
1.
Bit 0 is the least significant, low order bit.
ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the DEP block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
B4
OPER B5
STAL B6
B7
B8
B9
CRIT PRTYPE
INH
637
B0193AX – Rev AB 22. DEP – Dependent Sequence Block
BA0001 to BA0004
Boolean Array 1 to 4 are parameters of 16 elements each.
BI0001 to BI0024 Boolean Inputs 1 through 24 are user parameters that can be read in user-
defined monitor case expressions. You cannot assign a value to these
parameters by means of an HLBL statement in a monitor case. You can
optionally assign a label to these inputs to facilitate referencing.
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate the block’s opera-
tional states. For the DEP block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
PAUS B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
SBX
ACT
ON
MA
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
11 MA
Manual(= false)/Auto(= true) BLKSTA.B21
14 UDEF
Undefined BLKSTA.B18
15 ON
Compound On BLKSTA.B17
16 ACT
Active/Inactive BLKSTA.B16
18 PAUS
Paused BLKSTA.B14
19 SBX
Executing Sequence Block BLKSTA.B13
Exception (SBX) Statements
20 WLCK Workstation Lock BLKSTA.B12
* Bit 0 is the least significant, low order bit.
BO0001 to BO0016
Boolean Outputs 1 through 16, are user parameters, and are the evalua-
tion of monitor cases 1 through 16, when active. BO0001 to BO0016 can
be read as an inputs for other monitor cases. You can assign labels to
BO0001 to BO0016, to facilitate referencing.
638
22. DEP – Dependent Sequence Block B0193AX – Rev AB
CRIT Criticality is an integer output that indicates the priority, ranging from 1
to 5, of the block’s highest currently active alarm (1 is the highest priority).
An output of zero indicates the absence of alarms.
CSIZE Code Size is the actual size, in bytes, of the code space used by a sequence
block. This value is the size of the sequence block and its associated
sequence code.
CSPACE Code Space is the total number of bytes to be pre-allocated for the
sequence block and its associated sequence code.
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. In that case, no further processing of the block occurs. To return
DEFINE to a true value, correct all configuration errors and re-install the
block.
DELTI1 Change Delta for Input Range 1 is a real value that defines the minimum
percent of the input range that triggers change driven connections for
parameters in the range of RI1. The default value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.
DISBX1 to DISBX5
Disable Sequence Block Exceptions (SBX 1 through 5) are boolean out-
puts. When true, DISX1, for example, indicates that SBX 1 has been dis-
abled. When the block is activated, SBX 1 assumes its enabled/disabled
state as determined by its HLBL definition. While the block is active, the
SBX 1 enabled/ disabled state can be changed by manipulating DISBX1,
or by executing the SET_SBXS statement.
639
B0193AX – Rev AB 22. DEP – Dependent Sequence Block
ERCODE Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the block’s
DEFINE parameter to be set false, but not the warning situations. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. The block detailed display shows the ERCODE
on the primary page, if it is not null. For the DEP block, the following list
specifies the possible values of ERCODE, and the significance of each
value in this block:
Message Value
“W43 – INVALID PERIOD/ PHASE does not exist for given block
PHASE COMBINATION” PERIOD, or block PERIOD not
compatible with compound PERIOD.
“W44 – INVALID High range value is less than or equal
ENGINEERING RANGE” to low range value.
“W46 – INVALID INPUT The source parameter specified in the
CONNECTION” input connection cannot be found in
the source block, or the source
parameter is not connectable, or an
invalid boolean extension connection
has been configured.
“W48 – INVALID BLOCK The configured value of a block option
OPTION” is illegal.
“W53 – INVALID PARAMETER A parameter value is not in the accept-
VALUE” able range.
“W58 – INSTALL ERROR; A Database Installer error has
DELETE/UNDELETE BLOCK” occurred.
FPNBUF Full Path Name Buffer contains the full path name of the external refer-
ence (for debugging use only).
HSCI1 High Scale for Input Range 1 is a real value that defines the upper limit of
the measurement ranges. EI1 defines the units. Make the range and units
consistent with the measurement source. A typical value is 100 (percent).
640
22. DEP – Dependent Sequence Block B0193AX – Rev AB
HSCO1 High Scale for Output Range 1 is a real value that defines the upper limit
of the ranges for Output 1. A typical value is 100 (percent). EO1 defines
the units. Make the range and units consistent with those of the output
destination.
IA0001 Integer Array 1 is an array of 16 long integer data stores. There are stan-
dard parameters which can be user labelled.
II0001 to II0008 Integer Inputs 1 through 8 are user parameters that can be read in user-
defined monitor case expressions. You cannot assign a value to these
parameters by means of an HLBL statement in a monitor case. You can
optionally assign a label to these inputs to facilitate referencing. The same
parameters are writable in IND, DEP, EXC block types.
INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting. Alarms can also be inhibited based on the compound parameter
CINHIB.
INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do
not disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the
time the alarm transitions into the inhibited state, clear the
alarm indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.
INHSTA Inhibit Status contains packed long values that represent the actual inhibit
status of each alarm type configured in the block. For the DEP block, only
the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNACK B2
B3
B4
B5
B6
B7
B8
B9
OPER
STAL
INH
641
B0193AX – Rev AB 22. DEP – Dependent Sequence Block
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
26 STAL State Change Alarm INHSTA.B6
27 OPER Sequence Operational Error INHSTA.B5
Alarm
29 INH Inhibit Alarm INHSTA.B3
30 UNACK Unacknowledged INHSTA.B2
IO0001 to IO0005
Integer Outputs 1 through 5 are user parameters that you can reference in
the block’s sequence logic. You can optionally assign labels to these out-
puts to facilitate referencing.
LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-char-
acter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.
LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are honored (subject to the usual access rules) only from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set false by any workstation at any time, whereupon a
new LOCKRQ is accepted, and a new ownership workstation identifier
written to LOCKID.
LSCI1 Low Scale for Input Range 1 is a real value that defines the lower limit of
the measurement ranges. A typical value is 0 (percent). EI1 defines the
units. Make the range and units consistent with those of the measurement
source.
LSCO1 Low Scale for Output Range 1 is a real value that defines the lower limit of
the ranges for Output 1. A typical value is 0 (percent). EO1 defines the
units. Make the range and units consistent with those of the output desti-
nation.
642
22. DEP – Dependent Sequence Block B0193AX – Rev AB
MSGGR1 to MSGGR4
Message Groups 1 through 4 are integer inputs (1 through 8), that direct
alarm messages to one of eight groups of alarm devices.
MSGNO Message Number indicates the number of the last message assigned to a
user string parameter. It is incremented by one each time a message is
assigned, to show updates of SN00xx on the detailed displays. If the
parameter value reaches 2E31-1, the next message number is 0.
Note: Each time a block parameter is changed via a SET command,
parameter ACHANGE is incremented.
OP_ERR Operational Error shows the operational error number, if any, caused by
the last statement executed. An operational error occurs when the block
cannot recover from an error by itself. This can happen when:
The error handler SBXs are not present.
The error handler SBXs are disabled.
An operational error occurs within an error handler.
When this happens, the block changes to manual mode, OP_ERR is set to
indicate the type of error that has occurred, and statement execution stops
until a request is made through STMRQ, MA, or ACTIVE. Refer to the
Integrated Control Configurator document (B0193AV) for a list of opera-
tional error numbers.
OP_GRP Operational Error Group is an integer input (1 through 8) that directs the
operational alarm message to one of eight groups of alarm devices. You
can change the group number at the workstation.
643
B0193AX – Rev AB 22. DEP – Dependent Sequence Block
OP_PRI Operational Error Priority is an integer input, (1 to 5), that sets the prior-
ity level of the operational error alarm (highest priority is 1).
PAUSED Paused shows when a temporary delay in DEP block execution occurs as a
result of active EXC blocks in the same compound.
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)
Period Length Period Length
0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****
* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
644
22. DEP – Dependent Sequence Block B0193AX – Rev AB
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).
PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. The PRTYPE output of this block
includes the following alarm types:
0 = No active alarm
9 = State Alarm
RA0001 to RA0002
Real Array 1 and 2 each define 16 elements for sequence blocks.
RI0001 to RI0015
Real Inputs 1 through 15 are user parameters in all sequence control
blocks but they can only be read in user-defined monitor case expressions.
You cannot assign a value to these parameters by means of an HLBL state-
ment in a monitor case. You can optionally assign labels to these inputs to
facilitate referencing.
RI1 Range Input is an array of real values that specify the high and low engi-
neering scale and change delta of a particular real input. For a given block,
it also forms an association with a group of real input parameters that have
the same designated range and change delta.
RO0001 to RO0015
Real Outputs 1 through 15 are user parameters that you can reference in
the block’s sequence logic. You can optionally assign labels to these out-
puts to facilitate referencing.
RO1 Range Output is an array of real values that specify the high and low engi-
neering scale of a particular real output. For a given block, it also forms an
association with a group of real output parameters that have the same des-
ignated range.
RSTACT Restart Active specifies the desired value of the ACTIVE parameter at
block initialization, where:
0 sets ACTIVE to 0 (= false = Inactive) when the compound is
turned on or for a station reboot
1 sets ACTIVE to 1 (= true = Active) when the compound is
turned on or for a station reboot
2 sets ACTIVE to the value in the checkpoint file for a station
reboot only. Otherwise, ACTIVE remains unchanged.
645
B0193AX – Rev AB 22. DEP – Dependent Sequence Block
RSTMA Restart Manual Auto specifies the desired value of the MA parameter at
block initialization, where:
0 sets MA to 0 (= false = Manual)
1 sets MA to 1 (= true = Auto)
2 leaves MA unchanged.
The block asserts this initial M/A state whenever:
The compound in which it resides is turned on
The Control Processor undergoes a restart operation.
SBXNO SBX Number indicates the number of the SBX that is currently executing.
The SBX numbers are fixed (1 and 2 are error handlers, 3 to 5 are state
changes handlers). A value of 0 means no SBX is currently executing.
SBXRQ SBX Request is a nonconfigurable, short integer (1 to 5). When the block
is in the SBX-Trace mode, SBXRQ selects the SBX to be traced. Activate
this function by selecting the EXEC SBX button in the ALL CODE dis-
play. The block ignores out of range values. After granting an SBX request,
the block resets SUBRNO and STMNO to 0. Use the NEXT STMT but-
ton to single-step through the selected SBX.
SC_IND State Change Indicator is a long integer value, that indicates the current
state of the state-change SBXs for the DEP, EXC, and IND blocks.
SN0001 to SN0010
Strings 1 through 10 are parameters that you can designate as the destina-
tion of a SENDMSG statement in the IND sequence logic. The Object
Manager can then retrieve SN0001 to SN0010 for operator display pur-
poses.
STEPMD Step mode is a boolean input. When true, STEPMD indicates the block is
in the step (semi-automatic) mode. In step mode, statement execution
stops at the nearest step boundary, as dictated by the step-labels in the
block’s source code. If a block in Step mode is switched to Manual (MA is
set to false), STEPMD is set to false. If a block in Manual is switched to
Step mode, MA becomes true. In Step mode, the outputs are secured.
STEPNO Step Number indicates the number of the step currently executing.
STEPNO changes as the block crosses a step boundary in the main sec-
tion; it does not change when the block calls a subroutine or executes an
SBX.
STEPRQ Step Request is a nonconfigurable short integer input that specifies the
next HLBL step to be executed in the block’s main section. Execution
begins at the first statement in the step. Activate this function by selecting
the EXEC STEP button in the ALL CODE display. If you enter an out of
range value, the last statement of the block is executed and the IND block
deactivates. The block mode (Manual, Auto, Semi-Auto, or Subr-Trace)
determines the number of HLBL statements executed.
646
22. DEP – Dependent Sequence Block B0193AX – Rev AB
STMNO Statement Number indicates the number of the statement currently exe-
cuting. When the statement finishes execution, STMNO is set to the
number of the next statement dictated by execution flow.
SUSPND Suspended is a boolean output that is set true when the SENDCONF
statement is executed. SENDCONF suspends statement execution until
the timeout value expires or until you set SUSPND to false by selecting
either SUSP ACK or NEXT STMT at the detailed displays.
TIMCNT Timing Counter is a decrementing real counter that indicates how many
seconds remain before expiration of the suspended period for a WAIT
statement or the timeout period for the WAITUNTIL or SENDCONF
statements.
TOPEVL Top of Evaluation Stack is an indexed specification of the top of the inter-
nal evaluation stack (data store for debugging use only).
TRACMD Trace Mode indicator shows whether the block is in Trace mode.
TRACMD Indication
0 Not in trace mode
1 Subr-Trace mode
2 SBX-Trace mode
647
B0193AX – Rev AB 22. DEP – Dependent Sequence Block
TYPE When you enter “DEP” or select “DEP” from the block type list under
Show, an identifying integer is created specifying this block type.
UNACK Unacknowledge is a boolean output that the block sets to True when it
detects an alarm. It is typically reset by operator action.
648
22. DEP – Dependent Sequence Block B0193AX – Rev AB
In the modes Active/Auto and Active/Step, the block can handle operational errors. Two standard
block exception handlers (SBXs) are supported for error handling.
SBX Number SBX Function
1 System error handler, OP_ERR = no user error
2 User error handler, OP_ERR = 2000..3000
If an operational error occurs, the block sets the parameter OP_ERR to indicate the cause of the
problem. If the corresponding error handling SBX is not present, or it is disabled, the block
switches to Manual and alarming takes place, provided the alarm option is set.
However, if the SBX is present and enabled, the value of OP_ERR is saved in the next process
scan, alarming is suppressed, no switch to Manual takes place, and the SBX statements are exe-
cuted.
Upon completion of the SBX, the block either executes the erroneous statement again, or resumes
statement execution at the statement following the erroneous one, depending on whether the last
executed SBX statement was “RETRY” or “ENDEXCEPTION”.
No additional error handling is possible while the block is executing an error handler SBX.
In the modes Active/Auto and Active/Step the block is capable of reacting to state changes which
are forced upon the block from outside. Three standard block exception handlers are supported
for state change handling. See the following table.
If the block is not Paused when the block mode changes from Active/Auto or Active/Step to Inac-
tive, Manual, or Paused, it executes the statements of the corresponding SBX. During execution
of these statements, the block assumes an interim mode: To_Inactive, To_Manual, or To_Paused.
However, if the block is Paused and Active/Auto when the block is switched to Manual or to Inac-
tive, it cannot execute a To_Manual SBX or a To_Inactive SBX.
If an operational error occurs during the execution of a To_Manual SBX or a To_Paused SBX, the
DEP block is deactivated.
All statements are supported within SBXs. Error handling is also possible while the block is exe-
cuting a state change SBX.
In the Auto and Step modes, the block secures its output parameters. The block algorithm is
responsible for updating the output parameters. External sources (applications and other blocks)
cannot write values to block output parameters.
You can alter the order of statement execution while the block is in the Auto state. You can specify
a new starting location by writing a statement number to the STMRQ parameter from a default
or user-defined display.
You can change the block Auto/Manual state from external sources such as: user-defined and
default displays, other blocks, and other applications.
649
B0193AX – Rev AB 22. DEP – Dependent Sequence Block
If a statement is in execution when you request a state change, the statement’s execution is com-
pleted as if it had begun in the requested state. Then any following statements are executed as
appropriate for the requested state.
In Manual, the block executes the main section statements one at a time by writing to parameters
STEPRQ, STMRQ, or NXTSTM. STEPRQ and STMRQ alter the order of execution. If more
than one are set at the same time, only a single request is granted. The priority in decreasing order
is: step, statement, next statement.
The parameter STMNO indicates the number of the statement currently executing. When the
statement finishes execution, STMNO is set to the number of the next statement dictated by exe-
cution flow. That statement is not executed unless requested.
A statement that requires several BPCs to execute, such as a WAIT statement, need only be
requested once to complete the statement’s execution.
When the requested statement is a call-subroutine statement the request causes the execution of
all of the statements of that subroutine (and all of its nested subroutines, if any).
In the Manual state, the block does not secure its output parameters. External sources (other
blocks and applications) can write values to the block’s output parameters.
Sequential control block parameters may be updated by the block algorithm while the block is in
Manual.
The Subr-Trace and SBX-Trace modes enable you to single step through statements of subrou-
tines and SBXs. You can switch the block into one of the Trace modes only when the block is in
the Active/Manual state.
Once in the Subr-Trace mode, you “select” a subroutine by requesting a call-subroutine statement
in the block’s main section. The block is idle before the first statement in the requested subrou-
tine. You can then single-step through the subroutine statements by toggling the
NXTSTM parameter. Step-req and statement-req cause the execution of a single statement in the
block’s main section.
When you switch into the SBX-Trace mode, the block environment (that is, step, subroutine,
statement number) is saved. The block returns to this environment when you exit the SBX-Trace
mode.
Once in the SBX-Trace mode, you “select” an SBX by setting the SBXRQ parameter to a value of
1 to 5. The block ignores out of range values. When you select an SBX, the block idles at the first
statement within that SBX. You can then single-step through the SBX statements by toggling the
NXTSTM parameter. The block ignores step- and statement- requests while it is in the
SBX-Trace mode.
In the Manual, Subr-Trace, and SBX-Trace modes, the block does not secure its output parame-
ters. External sources (other blocks and applications) can write values to the block’s outputs.
While the block is in Manual, the DEP block algorithm can update user parameters after a step-,
statement-, or next_stm request.
The DEP block does not execute statements while it is Inactive or Paused. An DEP block goes to
the Inactive state when one of the following conditions occurs:
The last statement of the block’s main section is executed.
An EXIT statement is executed.
Another Sequence block executes an ABORT statement.
The ACTIVE parameter value is toggled to Inactive.
650
22. DEP – Dependent Sequence Block B0193AX – Rev AB
1BPC
extension
Compound A Continuous MON/TIM EXC DEP/IND Continuous
Compound B Continuous MON/TIM EXC DEP/IND Continuous
Compound C Continuous MON/TIM EXC DEP/IND Continuous
1 2 3 4
If the block processor cannot process all blocks in a scheduled BPC, there is a Basic Processing
Cycle (BPC) overrun.
See High Level Batch Language (HLBL) User’s Guide (B0400DF) for a definition of the HLBL
syntax and semantics and the sequence compiler related limits.
651
B0193AX – Rev AB 22. DEP – Dependent Sequence Block
652
23. DGAP – Differential Gap Block
This chapter describes the Differential Gap controller block, or DGAP, its features, parameters
and detailed operations.
23.1 Overview
The Differential Gap controller block, DGAP, adjusts two Boolean outputs, OUTINC and
OUTDEC, as the measurement input varies from the setpoint by a distance set by the block’s
GAP parameter (Figure 23-1 and Figure 23-2). The outputs normally control on/off valves or
other discrete devices.
Output Option
Tristate
-- OUTDEC
+ ERROR Differential
Gap
Bistate
Setpoint Generator
Measurement ++ OUTINC
OUTINC 1 TRISTATE
0
1
OUTDEC 0 Time
OUTINC 1 BISTATE
0
1
OUTDEC 0 Time
Figure 23-2. DGAP Tristate and Bistate Typical Operation
653
B0193AX – Rev AB 23. DGAP – Differential Gap Block
23.2 Features
The features are:
Manual/Auto (MA) control of the outputs, which can be initiated by a host process or
another block
Auto and Manual latch switch inputs (AUTSW and MANSW) that force the block to
be switched to Auto or Manual
Local/Remote (LR) setpoint source selection, the ability to lock out setpoint operator
changes, and the ability to secure against any write access to the LR parameter.
Local and Remote latch switch inputs (LOCSW and REMSW) that force the block to
be switched to Local or Remote
Bad inputs detection and handling
Automatic cascade handling that includes:
Initialization output connection parameter that provides proper coordination and
initialization of cascade schemes
Back calculation of the setpoint input for the upstream block, to provide bumpless
cascade operation when the cascade is open loop.
The options are:
Setpoint Tracking Option (STRKOP) forces the setpoint to track the measurement
signal. STRKOP takes this action when the LR parameter has transitioned in either
direction and 1) either the output is in Manual or a cascade is broken (a downstream
block is in open loop - INITI true) or the block is in Manual, or 2) when the block is
in Manual only. STRKOP is not performed if any measurement data errors are
detected. This feature allows bumpless return to automatic control when the DGAP
block returns to closed-loop operation.
Manual if Bad Option (MBADOP) is a manual override feature. It sets the unlinked
MA input to manual (thereby forcing the output state to manual), if the Measurement
or Initialization In (or optionally Remote Setpoint) is disconnected, bad, or off-scan.
A return to Auto requires external intervention.
Measurement Alarming Option (MALOPT) provides absolute alarming of the mea-
surement during auto operation. This option also provides standard alarm
notification and reporting features.
Deviation Alarm Option (DALOPT) enables (when true) deviation alarming of the
measurement - setpoint (MEAS SPT) deviation.
Manual Alarming Option (MANALM) allows you to invoke all configured alarm
options while the block is in manual. Otherwise, alarming is normally performed only
in Auto.
High-High Alarm Option (HHAOPT) enables High-High and Low-Low absolute
alarming for the measurement input, or disables absolute alarming altogether. Each
alarm triggers an indicator and text message
Inhibit/Disable (INHOPT) alarming.
Mode Option (MODOPT) allows you to select whether the block, when it is in Auto,
operates in the BISTATE or the TRISTATE mode.
654
23. DGAP – Differential Gap Block B0193AX – Rev AB
Control Error Option (CEOPT) allows you to enable, or disable, the block’s implicit
Hold action when it detects an error (ERR) in the MEAS input.
Propagate Error Option (PROPT) gives you the option of propagating the error
(ERR) status bit from the MEAS input to the block’s OUTDEC and OUTINC out-
put parameters.
Initialize Local/Remote (INITLR) is an integer input specifying the desired state of
the LR input during initialization.
Initialize Manual/Auto (INITMA) specifies the desired state of the MA input during
initialization.
23.3 Parameters
Table 23-1. DGAP Block Parameters
655
B0193AX – Rev AB 23. DGAP – Differential Gap Block
656
23. DGAP – Differential Gap Block B0193AX – Rev AB
ALMOPT Alarm Options contains values representing the alarm types that have
been configured as options in the block, and the alarm groups that are in
use. For the DGAP block, only the following unshaded bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit Number1
(0 to 31) Configured Alarm Option When True
0 Alarm Group 8 in Use
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use
657
B0193AX – Rev AB 23. DGAP – Differential Gap Block
Bit Number1
(0 to 31) Configured Alarm Option When True
16 Low Absolute Alarm Configured
17 High Absolute Alarm Configured
20 Low deviation Alarm Configured
21 High deviation Alarm Configured
24 Low-Low Absolute Alarm Configured
25 High-High Absolute Alarm Configured
1. Bit 0 is the least significant, low order bit.
ALMSTA Alarm Status is a 32-bit output to indicate the block’s alarm states. For the
DGAP block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
B4
B5
B6
B7
B8
B9
CRIT PRTYPE
HMA
HHA
HDA
LMA
LDA
LLA
INH
Bit Boolean
Number Connection
(0 to 31)1 Name Description When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: See parameter ALMSTA.B32–
PRTYPE for values used in ALMSTA.B28
the DGAP block
5 to 7 CRIT_MSK Criticality; 5 = lowest priority, ALMSTA.B27-
1= highest ALMSTA.B25
16 LMA Low Absolute Alarm ALMSTA.B16
17 HMA High Absolute Alarm ALMSTA.B15
20 LDA Low Deviation Alarm ALMSTA.B12
21 HDA High Deviation Alarm ALMSTA.B11
24 LLA Low-Low Absolute Alarm ALMSTA.B8
25 HHA High-High Absolute Alarm ALMSTA.B7
29 INH Alarm inhibit ALMSTA.B3
30 UNAK Unacknowledged ALMSTA.B2
1. * Bit 0 is the least significant, low order bit.
AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
658
23. DGAP – Differential Gap Block B0193AX – Rev AB
AUTSW Auto Switch is a Boolean input that, when true, overrides the MA and
INITMA parameters, and drives the block to the Auto state. If both
MANSW and AUTSW are true, MANSW has priority.
BCALCO Back Calculation Output is a real output that is always equal to the Mea-
surement input except in the following situations, where it is equal to the
setpoint:
The block is transitioning from Local to Remote mode on this
cycle.
MEAS has Bad status.
MEAS has Out-of-Service status.
MEAS has Error (ERR) status.
MEAS is experiencing source connection problems.
With V4.2 and later software, BCALCO contains the initialization output
which was formerly contained in the INITO parameter. You connect this
parameter (BCALCO) to the BCALCI input of upstream blocks so that
these upstream blocks can sense when this block is open.
BLKSTA Block Status is a 32-bit output that indicates the following block opera-
tional states. For the DGAP block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
STRK B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
MAO
LRO
TRK
HLD
CTL
ON
MA
LR
Boolean
Bit Number* Connection
(0 to 31) Name Description When True (B32 to B1)
5 CTL Controlling BLKSTA.B27
6 TRK Tracking BLKSTA.B26
7 HLD Holding BLKSTA.B25
9 STRK Setpoint Tracking BLKSTA.B23
10 LR Local(= false)/Remote(= BLKSTA.B22
true)
11 MA Manual(= false)/Auto(= BLKSTA.B21
true)
14 UDEF Undefined (Inverse of BLKSTA.B18
DEFINE)
659
B0193AX – Rev AB 23. DGAP – Differential Gap Block
Boolean
Bit Number* Connection
(0 to 31) Name Description When True (B32 to B1)
15 ON Compound On BLKSTA.B17
20 WLCK Workstation Lock BLKSTA.B12
25 LRO Local/Remote Override BLKSTA.B7
26 MAO Manual/Auto Override BLKSTA.B6
* Bit 0 is the least significant, low order bit.
CEOPT Control Error Option is a short integer that specifies how the block
responds to the MEAS input when it is in error. To provide backward
compatibility, CEOPT defaults to 1. CEOPT has a range of 0 to 2 where:
0= The block takes no implicit Hold action when it detects a con-
trol error.
1= The block goes to the Hold state if, while MBADOP = 0,
MEAS: (a) has its BAD status bit set true; (b) has its Out-of-
Service status bit set true; (c) is experiencing peer-to-peer path
failure.
2= The block goes to the Hold state if, while MBADOP = 0,
MEAS meets any of the conditions described for CEOPT = 1,
or if MEAS has its ERR status bit set true.
CRIT Criticality is an integer output that indicates the priority, ranging from 1
to 5, of the block’s highest currently active alarm (1 is the highest priority).
An output of zero indicates the absence of alarms.
DALOPT Deviation Alarm Option is a short integer input that enables High and
Low deviation alarming of the deviation (MEAS SPT), or disables
alarming altogether.
0 = No alarming
1 = High and Low deviation alarming
2 = High deviation alarming only
3 = Low deviation alarming only
You can change DALOPT only by reconfiguring the block.
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. In that case, no further processing of the block occurs. To return
DEFINE to a true value, correct all configuration errors and re-install the
660
23. DGAP – Differential Gap Block B0193AX – Rev AB
DELTI1 to DELTI2
Change Delta for Input Range 1 or 2 is a real value that defines the mini-
mum percent of the input range that triggers change driven connections
for parameters in the range of RI1 or RI2. The default value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.
DEVADB Deviation Alarm Deadband is a real, in MEAS units, that applies to both
High and Low Deviation Limits.
DEVGRP Deviation Group is a short integer input that directs deviation alarm mes-
sages to one of eight groups of alarm devices.
DEVPRI Deviation Priority is an input from 1 to 5 that sets the priority level of the
deviation alarm (1 is the highest priority).
EI1 to EI2 Engineering Units for Input Ranges 1 and 2, as defined by the parameters
HSCI1 to HSCI2, LSCI1 to LSCI2, and DELTI1 to DELTI2. EI1 to EI2
provide the engineering units text for the values defined by Input Ranges
1 and 2. “DEG F” or “PH” are typical entries. EI1 is used with MEAS and
SPT and EI2 is used with the GAP.
ERCODE Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the block’s
DEFINE parameter to be set false, but not the warning situations. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. The block detailed display shows the ERCODE
on the primary page, if it is not null. For the DGAP block, the following
list specifies the possible values of ERCODE, and the significance of each
value in this block:
Message Value
“W43 – INVALID PHASE does not exist for given block
PERIOD/PHASE COMBI- PERIOD, or block PERIOD not com-
NATION” patible with compound PERIOD.
661
B0193AX – Rev AB 23. DGAP – Differential Gap Block
Message Value
“W44 – INVALID ENGI- High range value is less than or equal
NEERING RANGE” to low range value.
“W46 – INVALID INPUT The source parameter specified in the
CONNECTION” input connection cannot be found in
the source block, or the source parame-
ter is not connectable, or an invalid
Boolean extension connection has been
configured.
“W48 – INVALID BLOCK The configured value of a block option
OPTION” is illegal.
“W53 – INVALID A parameter value is not in the accept-
PARAMETER VALUE” able range.
“W58 – INSTALL A Database Installer error has occurred.
ERROR;
DELETE/UNDELETE
BLOCK”
ERROR Error is a real output that equals Setpoint minus Measurement. ERROR
can be sourced to other blocks.
GAP Gap is a real input defining the size of the region the Measurement may
traverse without activating either of the outputs. The defined region is
always placed symmetrically about the zero error level. This parameter
sizes a symmetric envelope (around the selected setpoint), that determines
the measurement level that activates one of the outputs. GAP has the same
relative units as MEAS and SPT.
GAPDB Gap Deadband is a real value applied to both extremes of the gap. It has
no function in the bi-state mode, where the gap itself functions as a dead-
band. However, in the tri-state mode, GAPDB is the deadband for each of
the two switch elements. It has the same relative units as MEAS and SPT.
Configure a value large enough to prevent the outputs OUTDEC and
OUTINC from chattering. Also, see “GAP and GAPDB Parameter Vali-
dation” on page 682.
HDAIND High Deviation Alarm Indicator is a Boolean output set true when the
measurement exceeds the setpoint by more than the deviation limit
HDALIM. When the measurement passes back through the DEVADB
deadband, the block sets HDAIND to false.
HDALIM High Deviation Alarm Limit is a real input that establishes the amount by
which the measurement must exceed the setpoint to initiate a high devia-
tion alarm and set the High Deviation Alarm Indicator, HDAIND, true.
662
23. DGAP – Differential Gap Block B0193AX – Rev AB
HHAGRP High-High Absolute Alarm Group is a short integer input that directs
High-High Absolute alarm messages to one of eight groups of alarm
devices.
HHAIND High-High Alarm Indicator is a Boolean output set true when the block-
dependent parameter value (generally the measurement input) exceeds the
high-high absolute alarm limit (HHALIM). HHAIND is set to false when
the value is less than HHALIM. Once the Indicator is set true, it does not
return to false until the value falls below the limit less a deadband.
HHALIM High-High Absolute Alarm Limit is a real input that defines the value of
the measurement that triggers a High-High alarm.
HHAOPT High-High Alarm Option is a short integer input that enables High-High
and Low-Low absolute alarming for alarming of a block-dependent value,
generally the measurement input, or disables absolute alarming altogether.
Each alarm triggers an indicator and text message.
0 = No alarming
1 = High-High and Low-Low alarming
2 = High-High alarming only
3 = Low-Low alarming only
HHAPRI High-High Absolute Priority is an integer input from 1 to 5 that sets the
priority level of the high-high absolute alarm (1 is the highest priority)
HOLD Hold is a Boolean input. When true, HOLD forces the block into the
Hold substate of Auto, holding the output at its last computed value.
HSCI1 to HSCI2 High Scale for Input Ranges 1 and 2 are real values that define the upper
limit of the measurement ranges. EI1 to EI2 define the engineering units
text. Make the range and units consistent with the measurement source. A
typical value is 100 (percent). HSCI1 is used with MEAS and SPT and
HSCI2 is used with the GAP.
INHALM Inhibit Alarm contains packed Boolean values that represent alarm inhibit
requests for each alarm type or point configured in the block. For the
DGAP block, only the following bits are used:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B1
B2
B3
B4
B5
B6
B7
B8
B9
663
B0193AX – Rev AB 23. DGAP – Differential Gap Block
INHIB Inhibit is a Boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting. Alarms may also be inhibited based on INHALM and the com-
pound parameter CINHIB.
INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm notification but do
not disable alarm detection.
1= When an alarm is inhibited, disable both alarm notification
and alarm detection. If an alarm condition already exists at the
time the alarm transitions into the inhibited state, clear the
alarm indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” notification.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” notification.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.
INHSTA Inhibit Status contains packed Boolean values that represent the actual
inhibit status of each alarm type configured in the block. For the DGAP
block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNACK B2
B3
B4
B5
B6
B7
B8
B9
HMA
HHA
HDA
LMA
LDA
LLA
INH
664
23. DGAP – Differential Gap Block B0193AX – Rev AB
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
16 LMA Low Absolute Alarm Inhib- INHSTA.B16
ited
17 HMA High Absolute Alarm Inhib- INHSTA.B15
ited
20 LDA Low Deviation Alarm INHSTA.B12
Inhibited
21 HDA High Deviation Alarm INHSTA.B11
Inhibited
24 LLA Low-Low Absolute Alarm INHSTA.B8
Inhibited
25 HHA High-High Absolute Alarm INHSTA.B7
Inhibited
29 INH Inhibit Alarm INHSTA.B3
30 UNACK Unacknowledged Inhibited INHSTA.B2
* Bit 0 is the least significant, low order bit.
INITI Initialization In defines the source block and parameter that would nor-
mally drive this block into initialization. Not used with the DGAP block
since DGAP is always a downstream block.
INITLR Initialize Local/Remote is an integer input that specifies the desired state
of the LR input during initialization, where:
0 = Local
1 = Remote
2 = The LR state specified in the checkpoint file (reboot only)
The block asserts this initial LR state when:
The block is installed into the Control Processor database.
The Control Processor undergoes a restart operation.
The compound in which the block resides is turned on.
The Initialize LR state is ignored if the LR input has an established link-
age, or LOCSW or REMSW are set true.
INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state specified in the checkpoint file (reboot only)
The block asserts this initial M/A state whenever:
It is installed into the Control Processor database.
665
B0193AX – Rev AB 23. DGAP – Differential Gap Block
LDAIND The Low Deviation Alarm Indicator is a Boolean output that is set true
when the measurement falls below the setpoint by more than the devia-
tion limit, LDALIM. When the measurement passes back through the
DEVADB deadband, the block sets LDAIND to false.
LDALIM Low Deviation Alarm Limit is a real input that defines how far the mea-
surement must fall below the setpoint to initiate a low deviation alarm and
set the Low Deviation Alarm Indicator LDAIND true.
LLAIND Low-Low Alarm Indicator is a Boolean output set true when the block-
dependent parameter value (generally the measurement input) falls below
the low-low absolute alarm limit (LLALIM). LLAIND is set to false when
the value is greater than LLALIM. Once the Indicator is set true, it does
not return to false until the value exceeds the limit plus a deadband.
LLALIM Low-Low Absolute Alarm Limit is a real input that defines the value of the
measurement that triggers a Low-Low Alarm.
666
23. DGAP – Differential Gap Block B0193AX – Rev AB
LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-char-
acter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.
LOCKRQ Lock Request is a Boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are honored (subject to the usual access rules) only from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set false by any workstation at any time, whereupon a
new LOCKRQ is accepted, and a new ownership workstation identifier
written to LOCKID.
LOCSP Local Setpoint Secure is a Boolean input. When true, LOCSP provides
lockout of user write access to the LR parameter. If LOCSP is configured
true, the block secures LR when it initializes and maintains LR in the
secured state. The LOCSW and REMSW overrides have higher prece-
dence, but LR remains secured when they are no longer asserted.
LOCSW Local Switch is a Boolean input. When true, LOCSW overrides the LR
and INITLR parameters and drives the block to the Local state. If both
LOCSW and REMSW are true, LOCSW has priority.
LSCI1 to LSCI2 Low Scale for Input Ranges 1 and 2 are real values that define the lower
limit of the measurement ranges. A typical value is 0 (percent). EI1 to EI2
define the engineering units text. Make the range and units consistent
with those of the measurement source. LSCI1 is used with MEAS and
SPT and LSCI2 is used with the GAP.
667
B0193AX – Rev AB 23. DGAP – Differential Gap Block
MALOPT Measurement Alarm Option is an input that enables absolute High and
Low measurement alarming, or disables absolute alarming altogether.
0 = No alarming
1 = High and Low measurement alarming
2 = High measurement alarming only
3 = Low measurement alarming only
You can change MALOPT only by reconfiguring the block.
MANALM Manual Alarm Option is an input which enables and disables configured
alarm options to function in Manual. Normally alarms are processed only
in the Auto mode.
0 = No alarming in Manual
1 = Full alarming in Manual
You can change MANALM only by reconfiguring the block.
MANSW Manual Switch is a Boolean input. When true, MANSW overrides the
MA and INITMA parameters and drives the block to the Manual state. If
both MANSW and AUTSW are true, MANSW has priority.
MEAS Measurement is an input identifying the source of the block’s input, or the
controlled variable.
MEASHI Measurement High Alarm Indicator is a Boolean output that is set true
when the measurement exceeds the high alarm limit (MEASHL). When
668
23. DGAP – Differential Gap Block B0193AX – Rev AB
the measurement passes back through the deadband, the block sets
MEASHI to false.
MEASHL Measurement High Alarm Limit is a real input that defines the value of
the measurement that initiates a high absolute alarm.
MEASLI Measurement Low Alarm Indicator is a Boolean output that is set true
when the measurement falls below the low alarm limit (MEASLL). When
the measurement passes back through the MEASDB deadband, the block
sets MEASLI to false.
MEASLL Measurement Low Alarm Limit is a real input that defines the value of the
measurement that initiates a low absolute alarm.
MEASPR Measurement Priority is an integer input (1 to 5), that sets the priority
level of the measurement alarm (1 is the highest priority).
MODOPT Mode Option is a configurable short integer. When the block is in Auto,
MODOPT dictates the controller mode.
2 = BISTATE
3 = TRISTATE
669
B0193AX – Rev AB 23. DGAP – Differential Gap Block
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)
Period Length Period Length
0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
670
23. DGAP – Differential Gap Block B0193AX – Rev AB
* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).
PROPT Propagate Error Option is a Boolean input. When true, PROPT sets the
ERR Status bit of the output parameter if the input to the MEAS parame-
ter is in error while the block is in Auto. The input to the MEAS parame-
ter is in error when:
Its BAD status bit is set true.
Its OOS (Out-of-Service) status bit is set true.
Its ERR status bit is set true.
It is experiencing peer-to-peer path failure.
If a transition to Manual occurs while the ERR status is true, it remains
true until either a set command is written to that output or until the block
transfers to Auto with the error condition returned to normal.
PRSCON Present Control state is a data store that contains the substates of Auto:
1 = Holding
2 = Tracking
3 = Controlling (not open loop)
671
B0193AX – Rev AB 23. DGAP – Differential Gap Block
PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. The PRTYPE output of this block
includes the following alarm types:
0 = No active alarm
1 = High Absolute
2 = Low Absolute
3 = High-High Absolute
4 = Low-Low Absolute
5 = High Deviation
6 = Low Deviation
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
REMSW Remote Switch is a Boolean input. When true, REMSW overrides the
unlinked LR and INITLR parameters, and drives the block to the Remote
state. If both LOCSW and REMSW are true, LOCSW has priority.
672
23. DGAP – Differential Gap Block B0193AX – Rev AB
RI1 to RI2 Range Input is an array of real values that specify the high and low engi-
neering scale (HSCI - LSCI) and change delta (DELTI) of a particular real
input. For a given block, it also forms an association with a group of real
input parameters that have the same designated range and change delta, as
defined by the parameters HSCI1 to HSCI2, LSCI1 to LSCI2, and
DELTI1 to DELTI2.
RSP Remote Setpoint is the selected setpoint source when LR is set to Remote.
RSP is a connectable, settable, real input. Typically RSP connects to an
upstream block in a cascade scheme. RSP and its source must be expressed
in MEAS units.
SPT Setpoint always represents the active controller setpoint. Setpoint is the
reference variable that is compared with the MEAS input to produce the
ERROR signal. SPT is implemented as a configurable output that deter-
mines its source from the Local/Remote setpoint selector, LR. When LR is
true (Remote), SPT is nonsettable and assumes the Remote Setpoint
(RSP) value. When LR is false (Local), SPT is an unsecured, and thus set-
table, output and the SPT source is the set value. Configure the value you
want the SPT to assume when it first goes to Local. As an output, SPT can
also source the setpoint value to other blocks.
While settable by default, SPT is nonsettable while setpoint tracking is
active. (See STRKOP.)
STRKOP Setpoint Track Option is a short integer input. When active, STRKOP
enables the setpoint to track the measurement input under the following
conditions.
0 = no option enabled
1 = SPT parameter tracks the measurement input when the block is in
Manual, or the cascade is open downstream (Initialization input INITI is
true).
2 = SPT parameter tracks the measurement only when the block is in
Manual.
STRKOP is active only when the setpoint source selector LR is in Local
and Supervisory Enable (SE) is enabled (1).
SPT is nonsettable while setpoint tracking is active. You can change
STRKOP only by reconfiguring the block.
TYPE When you enter “DGAP” or select “DGAP” from the block type list
under Show, an identifying integer is created specifying this block type.
UNACK Unacknowledge is a Boolean output that the block sets to True when it
detects an alarm. It is typically reset by operator action.
673
B0193AX – Rev AB 23. DGAP – Differential Gap Block
674
23. DGAP – Differential Gap Block B0193AX – Rev AB
LR
LOCSP Manual
LOCSW
REMSW Local MODOPT
Remote SPTRK GAPDB GAP
RSP AUTSW
Local MBADOP
SPT SPT MANSW
Track Tristate HOLD MA
Control Manual
OUTDEC
ERROR
Differential Bistate Auto
MEAS Gap
Hold
Generator
Control Manual
BCALCO
OUTINC
MEAS ~
unreliable Auto
(see BCALCO) Deviation Hold
INHIB
INHALM Limit HDAIND
INHOPT HDALIM
(High
HDATXT
Deviation
Alarming)
DALOPT
DEVADB
DEVPRI Limit LDAIND MANALM
DEVGRP LDALIM (Low MA
LDATXT
Deviation
Alarming) Manual
675
B0193AX – Rev AB 23. DGAP – Differential Gap Block
Deviation
50 Setpoint - Measurement = Error
40
30
20
10 Dead Zone
GAP 0 SPT
-10
-20
-30
-40
-50
1
OUTINC
0
OUTDEC 0
Time
Each output operates independently, as a function of the sense of the error. OUTINC is opera-
tional when the error is positive (measurement less than setpoint). OUTDEC is operational if the
error is negative (measurement greater than setpoint).
676
23. DGAP – Differential Gap Block B0193AX – Rev AB
Deviation
50 Setpoint - Measurement = Error
40
30
} Deadband = GAPDB
20
10
Dead Zone
GAP 0 SPT
-10
-20
} Deadband = GAPDB
-30
-40
-50
1
OUTINC
0
OUTDEC 0
Time
Figure 23-5. DGAP Tristate Controller Mode
The deadzone and deadband define a region about the setpoint in which the error, can traverse
without switching true either of two Boolean outputs.
OUTINC is true when the error exceeds the deadzone high limit, and is false when the error falls
below the (deadzone high limit - deadband). OUTDEC is true when the error falls below the
deadzone low limit, and is false when the error exceeds the (deadzone low limit + deadband).
With the dual outputs, you can select either increase-increase or increase-decrease controller
action depending on the controller outputs that you select.
677
B0193AX – Rev AB 23. DGAP – Differential Gap Block
The DGAP block also provides the LOCSW and REMSW parameters to drive the
setpoint state to Local or Remote.
When the block restarts, the INITLR configured option specifies the value of the LR parameter,
unless LR is linked, or LOCSW or REMSW are set true.
LOCSP allows the block to secure the LR parameter when the block initializes and to maintain
that secured state, preventing operator changes. LOCSW and REMSW override LOCSP and LR.
678
23. DGAP – Differential Gap Block B0193AX – Rev AB
23.4.7 Alarming
The DGAP block optionally supports absolute, high-high, low-low, and deviation alarming of the
measurement. Configured alarming is always performed in Auto. Alarming is only performed in
Manual if the MANALM option is configured true. The block logs, and generates, alarm mes-
sages if the INHIB input is false.
Unacknowledge (UNACK) is a connectable Boolean output parameter which is set true, for noti-
fication purposes, whenever the block goes into alarm. It is settable, but sets are only allowed to
clear UNACK to false, and never in the opposite direction. The clearing of UNACK is normally
via an operator “acknowledge” pick on a default or user display, or via a user task.
The different types of alarming are discussed below.
679
B0193AX – Rev AB 23. DGAP – Differential Gap Block
GAP
MEASLL
LLALIM
Low-Low Alarm Indicator is set
Low Alarm Indicator is set
Time
Figure 23-6. Absolute Alarming
680
23. DGAP – Differential Gap Block B0193AX – Rev AB
includes the user-defined MEASLT. When MEAS rises to, or above, MEASLL plus the deadband
(MEASDB), the block sets MEASLI to false and outputs a return-to-normal message.
High EU
Deviation
SPT
MEAS
Low EU
Time
MEAS
Deviation = 0
Deadband {
Low Deviation Alarm Limit
- Deviation
Time LDA Alarm Clears
LDA Alarm Generated
Figure 23-7. Deviation Alarming
681
B0193AX – Rev AB 23. DGAP – Differential Gap Block
MEAS
PID OUT RSP DGAP
MEAS
FBK
BCALCI BCALCO
Figure 23-8. Typical Cascade Configuration
23.4.10 Application
Figure 23-9 shows the DGAP block as a valve positioner for a furnace air damper, with feedback
from a position sensor, for example, slide wire, in the actuator. This application uses the DGAP
block with the feedback signal connecting to the measurement input. The PID controller sets the
demand for valve position via the remote setpoint (RSP) input.
682
23. DGAP – Differential Gap Block B0193AX – Rev AB
MEAS
SPT
PID
OUT
RSP
MEAS
DGAP
OUTINC OUTDEC
(Increase) (Decrease)
Motor
Driven
Actuator
Position PT
Sensor
Furnace
Air
Damper
683
B0193AX – Rev AB 23. DGAP – Differential Gap Block
684
24. DPIDA Controller
This chapter covers the Distributed PIDA, or DPIDA, its basic operations, features,
parameters, ECB52 parameters, and DPIDA functions and an application example.
24.1 Overview
The Distributed PIDA (DPIDA) controller implements an advanced PID (PIDA) control algo-
rithm in Fieldbus Modules (FBM04/FBM204, FBM17/FBM227, and FBM22) to provide fast
real-time control capability (see Figure 24-1). The DPIDA controller provides very fast control
cycle times and high single-loop security. The FBM synchronizes execution of the control algo-
rithm to the analog-to-digital (A/D) conversion of the measurement input, thereby eliminating
data communication deadtime elements in the control loop.
The DPIDA controller implements continuous PID feedback and additive and multiplicative
feedforward control of an analog loop, providing advanced features similar to the PIDA block. Its
principal inputs, setpoint and measurement, are used to compute its output, the manipulated
variable, based on user-set or adaptively tuned values of the tuning parameters – proportional
band, integral time, derivative time, and set-point-compensation lead/lag ratio. The feedforward
capability can be used to decouple interacting loops in addition to compensating for measured
load upsets.
Manual
Select
One Com- Limit,
pensator Feedback x + Ramp
Measurement 1 Control - Auto Output
B
Filter Algorithm
Measurement 2 A/B + Track
A
Measurement 3 Redundancy FBM Using ECB52
Option
Figure 24-1. DPIDA Controller Functional Diagram
685
B0193AX – Rev AB 24. DPIDA Controller
The ECB52 block provides the FBM interface for measurement characterization, linearization,
redundancy, out-of-range detection, Failsafe operation, and CP/FBM communications.
The combination of the FBM algorithm (ECB software type 52) and DPIDA block in the CP,
plus FBTUNE and FFTUNE extenders provides adaptive control capabilities of the I/A Series
patented EXACT MultiVariable control (see the FBTUNE and FFTUNE Block Descriptions in
this document). The FBM algorithm is a subset of the PIDA block algorithm.
686
24. DPIDA Controller B0193AX – Rev AB
24.3 Features
24.3.1 DPIDA Features
The DPIDA controller contains the following PIDA features:
Local setpoint ramping
Setpoint limiting
Setpoint compensation
Measurement filtering
Absolute feedforward inputs (multiplicative and additive)
Nonlinear gain function
687
B0193AX – Rev AB 24. DPIDA Controller
Auto and Manual latch switch inputs (AUTSW and MANSW) that allow the control-
ler to be switched to Auto or Manual by overriding the MA parameter.
Local/Remote (LR) setpoint source selection.
Local and Remote latch switch inputs (LOCSW and REMSW) that allow the con-
troller to be switched to Local or Remote setpoint by overriding the LR parameter.
Setpoint compensation (SPLLAG) allows the amount of proportional action applied
to the setpoint to be different from that applied to the measurement to prevent
overshoot.
Measurement filtering using a second-order Butterworth filter for high frequency
noise rejection. Filter time constant is adjustable in relation to derivative time with
derivative gain KD.
Logic signals to prevent windup during cascaded closed-loop operation.
Assignable engineering range and units to measurement, bias, multiplicative input,
and output.
Automatic scaling, based on assigned engineering ranges, so that the proportional
band is expressed in percent.
Automatic scaling, based on assigned engineering ranges, so that the controller gain is
normalized.
Output biasing (BIAS, KBIAS) with scaling (BBIAS).
Output clamping between variable output limits (HOLIM, LOLIM).
Bad input detection, handling and indication (BAD).
Bumpless transfer of the output signal when the controller returns to controlling oper-
ation in Auto, which is inherent in all control modes.
Fast reaction to manual output change.
Automatic cascade handling as the secondary controller in a cascade loop including
back calculation (BCALCO) of the secondary setpoint which connects to the
BCALCI and FBK parameters of the upstream block, to provide bumpless cascade
operation when the cascade is open loop.
688
24. DPIDA Controller B0193AX – Rev AB
OM connection). This forces the output state to Manual. Returning to Auto requires
external intervention, unless AUTSW is true.
Increase/Increase Option (INCOPT) reverses the normal sense of the control action
so that the controller output increases with increasing measurement.
Measurement Alarming Option (MALOPT) enables absolute alarming of the mea-
surement during auto operation. This option also provides standard alarm
notification and reporting features.
Deviation Alarm Option (DALOPT) enables deviation alarming of the measurement-
setpoint error signal.
High-High Alarm Option (HHAOPT) enables High-High and/or Low-Low absolute
alarming of the measurement input with indicators and text messages, at a given pri-
ority level, which are sent to the configured alarm group.
Manual Alarming Option (MANALM) enables all configured alarm options, with or
without output alarming, to be operational in Manual.
Output Alarm Option (OALOPT) enables absolute alarming of the controller output
(OUT).
Manual Clamping Option (MCLOPT) enables output clamping in Manual.
Control Error Option (CEOPT) enables implicit Holding action when an error in the
MEAS input is detected.
Propagate Error Option (PROPT) propagates the ERROR status bit from the MEAS
input to the OUT parameter.
Local Setpoint Secure (LOCSP), typically used for local only controllers, secures
against any write access to the LR parameter.
Workstation lock (LOCKRQ) allows write access to the block parameters only by the
Display Manager (LOCKID) that owns the lock. Any other workstation must first
unlock the lock to gain write access.
Loop identifier (LOOPID) allows you to identify the loop or process unit that con-
tains the lock.
689
B0193AX – Rev AB 24. DPIDA Controller
24.4 Parameters
Table 24-1. DPIDA Block Parameters
690
24. DPIDA Controller B0193AX – Rev AB
691
B0193AX – Rev AB 24. DPIDA Controller
692
24. DPIDA Controller B0193AX – Rev AB
693
B0193AX – Rev AB 24. DPIDA Controller
ALMOPT Alarm Options contains packed boolean values representing the alarm
types that have been configured as options in the block. The DPIDA
block uses only the following bits:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit Number1
(0 to 31) Configured Alarm Option When True
0 Alarm group 1 in use
694
24. DPIDA Controller B0193AX – Rev AB
Bit Number1
(0 to 31) Configured Alarm Option When True
7 Alarm group 8 in use
16 Low measurement alarm
17 High measurement alarm
18 Low output alarm
19 High output alarm
20 Low deviation alarm
21 High deviation alarm
22 Bad I/O alarm
24 Low-low absolute alarm
25 High-high absolute alarm
27 Operational error alarm
28 Out-of-range alarm
1. Bit 0 is the least significant, low order bit.
ALMSTA Alarm Status is a 32-bit output that is bit-mapped to indicate the block’s
alarm states. The DPIDA block uses the following bits:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNACK B2
B3
B4
B5
B6
B7
B8
B9
CRIT PRTYPE
OOR
HMA
HOA
HHA
HDA
BAD
LMA
LOA
LDA
LLA
INH
695
B0193AX – Rev AB 24. DPIDA Controller
AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is gen-
erated.
AUTSW Auto Switch is a boolean input. When true, it overrides the MA and
INITMA parameters, and drives the block to the Auto state. If both
MANSW and AUTSW are true, MANSW has priority.
BAD Bad is a boolean output that is set true when any input to the controller is
unacceptable in any way. The BAD bit of the BLKSTA output, that is,
BLKSTA.BAD, is also set true whenever BAD is true.
BAG Bad Alarm Group is a short integer input that directs BAD alarm messages
to one of eight groups of alarm devices. You can change the group number
through the workstation.
BAO Bad Alarm Option is a configurable boolean value. When configured true,
it enables alarm generation for each state change of the BAD parameter.
BAP Bad Alarm Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the Bad alarm (1 is the highest priority).
BBIAS Bias Scale Factor is a real input used for biasing the input span of the BIAS
input.
BCALCO Back Calculation Output is a real output that is usually equal to the Mea-
surement input. BCALCO is the setpoint value that maintains the output
value when the block returns to normal mode after initializing or tracking.
The BCALCO data record contains the initialization and open cascade
status bits. You connect BCALCO to the BCALCI input of upstream
block so that the upstream block can sense when the DPIDA block has
initialized or is open loop.
BIAS Bias is a real value that is the additive feedforward input. Dynamic com-
pensation is set by the FFTUNE block.
696
24. DPIDA Controller B0193AX – Rev AB
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. The DPIDA block uses the following bits:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
STRK B23
B24
B25
B26
B27
RED2 B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
MAO
FTNI
MTN
RED
FBM
HOL
BAD
DEV
LRO
TRK
HLD
PTN
STN
FTN
LOL
CTL
FLB
MO
ON
MA
SC
SE
DF
LR
FS
697
B0193AX – Rev AB 24. DPIDA Controller
CEOPT Control Error Option is a short integer that specifies how the block
responds to the MEAS input when it is in error. Control errors are defined
in “Error Detection” on page 750. To provide backward compatibility,
CEOPT defaults to 1. CEOPT has a range of 0 to 2 where:
0= The block takes no implicit Hold action when it detects a
control error.
1= The block goes to the Hold state if, while MBADOP = 0:
MEAS has its BAD status bit set true.
MEAS has its Out-of-Service status bit set true.
MEAS is experiencing peer-to-peer path failure.
2= The block goes to the Hold state if, while MBADOP = 0:
MEAS meets any of the conditions described for
CEOPT = 1.
MEAS has its ERROR status bit set true.
698
24. DPIDA Controller B0193AX – Rev AB
control error forces the controller to Hold if MA is set to Auto, and it dis-
ables setpoint tracking if SPTRKOP is set true.
If CEOPT is not enabled, then control error detection is not performed,
and MBADOP, HOLD, and SPTRK handling is performed explicitly by
asserting the HOLD input.
DALOPT Deviation Alarm Option is a short integer input that enables High and
Low deviation alarming, or disables alarming altogether.
0 = No alarming
1 = High and Low deviation alarming
2 = High deviation alarming only
3 = Low deviation alarming only
You can change DALOPT only by reconfiguring the block.
DEFINE Define is a boolean data store which when true indicates that the block
has no configuration errors. It is the inverse of UDEF in parameter BLK-
STA. When the block initializes, DEFINE is set to 0 (undefined) if the
block detects a parameter configuration error. To return DEFINE to a
true state, correct all configuration errors and reinstall the block.
DELTI1 to Change Delta for Input Range 1 or 2 is a real value that defines the mini-
DELTI2 mum percent of the input range that triggers change driven connections
for parameters in the range of RI1 or RI2. The default value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.
DELTO1 Change delta for Output Range 1 is a configurable real value that defines
the minimum percent of the output range that triggers change-driven
connections for parameters in the range RO1. The default value is 1.0 per-
cent. If communication is within the same CP that contains the block’s
compound, DELTO1 has no effect.
DERIV Derivative Time is a real input that adjusts the derivative time constant in
minutes. For the PID and NIPID modes, DERIV is adaptively tuned by
the FBTUNE block, if it is linked to the DPIDA block.
NOTE
The working DERIV value is indirectly limited by the working INT value.
699
B0193AX – Rev AB 24. DPIDA Controller
DEVADB Deviation Alarm Deadband is a real input (range RI1) that applies to both
High and Low Deviation Alarm Limits.
DEVGRP Deviation Group is a short integer input that directs deviation alarm mes-
sages to one of eight groups of alarm devices.
DEVLIM Deviation Limit is a real input (range RI1) that defines the limit of the
deviation between the selected measurement (MEAS) and any one of the
redundant measurements (MEAS01 to MEAS03). When this deviation is
exceeded, the block status deviation bit (BLKSTA.DEV) is set.
DEVPRI Deviation Priority is a integer input (1 to 5) that sets the priority level of
the deviation alarm (1 is the highest priority).
DEVTIM Deviation Time is a configurable integer value that specifies the delay time
for detecting a deviation alarm.
DEV_ID Device Identifier is a 6-character array input that specifies the 6-character
letterbug identifier of the FBM.
EI1 to EI2 Engineering Units for Input Ranges 1 and 2 are 32-character strings that
provide the engineering units text for the values defined by the ranges for
input 1 and 2. The values configured for these text strings should be con-
sistent with the values used for HSCI1 and LSCI1, or HSCI2 and LSCI2.
EIN Engineering Units for MULTIN is a 32-character string that provides the
engineering units text for the multiplicative input MULTIN. Make the
units consistent with those of the signal source.
EO1 Engineering Units for Output Range 1 is a 32-character string that pro-
vides the engineering units text for the values defined by the range for out-
put 1. The value configured for this text string should be consistent with
the values used for HSCO1 and LSCO1.
ERCODE Error Code is a string data store that indicates the type of configuration
error that first caused the block to set the DEFINE parameter to false. Val-
idation of configuration errors does not proceed past the first error
encountered by the block logic. The block uses the following error strings:
W44 – Invalid Engineering Range.
W46 – Invalid Input Connection.
W48 – Invalid Block Option.
W51 – Invalid Hardware/Software Type.
W54 – ECB does not exist.
W58 – Install Error; Delete/Undelete Block.
W59 – Duplicate Output Channel.
700
24. DPIDA Controller B0193AX – Rev AB
FBTBLK Feedback Tune BLKSTA is a long integer input that contains the bit
mapped value of the connected FBTUNE block’s BLKSTA parameter (see
the FBTUNE Block Description).
FFTBLK Feed Forward Tune BLKSTA is a long integer input that contains the bit-
mapped value of the connected FFTUNE block’s BLKSTA parameter (see
the FFTUNE Block Description).
FLBOPT Fallback Option is a short integer input that defines the control action to
be taken by the block when a Supervisory Fallback occurs:
0 = take no fallback action (default)
1 = set MA parameter to Auto
2 = set MA parameter to Manual
3 = set LR parameter to Remote
4 = set LR parameter to Local
FLBOPT overrides linked MA and LR parameters, but does not override
the AUTSW, MANSW, REMSW, and LOCSW parameters.
FLBREQ Fallback Request is a short integer output that is an explicit request for the
block to go to the Fallback state, with recovery at the block level (when SE
is set), and/or at the group level (when the appropriate group enable bit is
set in SUPENA).
0 = No fallback requested
1 = Fallback requested; recovery at block or group level
2 = Fallback requested; recovery only at block level
FS Failsafe is a boolean output that is set true when the block detects the
FBM going to the Failsafe state. While in this state, the block retains the
actual Failsafe value of the output point as it is read back from the FBM.
This value, depending on the ECB Failsafe option, is either the fallback or
the hold value.
HDAIND High Deviation Alarm Indicator is a boolean output that is set true when
the measurement exceeds the setpoint by more than the deviation limit
HDALIM. When the measurement passes back through the DEVADB
deadband, the block sets HDAIND to false.
HDALIM High Deviation Alarm Limit is a real input that specifies the amount by
which the measurement must exceed the setpoint to initiate a high devia-
tion alarm and set the High Deviation Alarm Indicator, HDAIND, true.
HHAGRP High-High Alarm Group is a short integer input that directs High-High
Absolute Alarm messages to one of eight groups of alarm devices.
701
B0193AX – Rev AB 24. DPIDA Controller
HHAIND High-High Alarm Indicator is a boolean output that is set true when the
measurement input (MEAS) is greater than the high-high absolute alarm
limit (HHALIM). HHAIND is reset to false when the MEAS value is less
than HHALIM minus a deadband.
HHALIM High-High Alarm Limit is a real input (range RI1) that defines the value
of the measurement input (MEAS) that triggers a High-High alarm.
HHAPRI High-High Alarm Priority is a integer input (1 to 5) that sets the priority
level of the high-high absolute alarm (1 is the highest priority).
HOAIND High Output Alarm Indicator is a boolean output that is set true when-
ever the output (OUT) is greater than HOALIM.
HOALIM High Output Alarm Limit is a real input (range RI1) that defines the
value of the output (OUT) that initiates a high output alarm.
HOLD Hold is a boolean input. When true, it forces the block into the Hold sub-
state of Auto, holding the output at its last computed value.
HOLIM High Output Limit is a real input (range RO1) that specifies the maxi-
mum value for the output (OUT). If the algorithm tries to drive the out-
put to a higher value, the output is clamped at the HOLIM value and the
indicator HOLIND is set true.
HOLIND High Output Limit Indicator is a boolean output that is set true whenever
the output is clamped at the high output limit, HOLIM.
HSCI1 to HSCI2 High Scale for Input Ranges 1 and 2 are configurable real values that
define the upper limit of input ranges RI1 and RI2. EI1 and EI2 define
the units. Make the range and units consistent with those of the input
sources. The default value is 100 (percent).
HSCIN High Scale for Input MULTIN is a real value that defines the upper limit
of the range for MULTIN. The default value is 100 (percent). EIN defines
the units.
702
24. DPIDA Controller B0193AX – Rev AB
HSCO1 High Scale for Output Range 1 is a real value that defines the upper limit
of the range for the output (OUT). The default value is 100 (percent).
EO1 defines the units. Make the range and units consistent with those of
the output (OUT).
HZONE High Zone is a real input that defines, in terms of the error, the upper
limit of the zone in which the nonlinear gain option is exercised. HZONE
is expressed as a percentage of the measurement span.
INHALM Inhibit Alarm is a packed boolean input that specifies the alarm inhibit
requests for each alarm type configured in the block. The DPIDA block
uses the following bits:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit Number* Boolean Connection
(0 to 15) Inhibit When True (B16 to B1)
0 Low measurement alarm INHALM.B16
1 High measurement alarm INHALM.B15
2 Low output alarm INHALM.B14
3 High output alarm INHALM.B13
4 Low deviation alarm INHALM.B12
5 High deviation alarm INHALM.B11
6 Bad I/O alarm INHALM.B10
8 Low low absolute alarm INHALM.B8
9 High high absolute alarm INHALM.B7
INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting. Alarms may also be inhibited based on INHALM and the com-
pound parameter CINHIB.
703
B0193AX – Rev AB 24. DPIDA Controller
INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do
not disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the
time the alarm transitions into the inhibited state, clear the
alarm indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.
INHSTA Inhibit Status is a 32-bit packed long boolean output that contains the
actual inhibit status of each alarm type configured in the block. The
DPIDA block uses the following bits:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BAD B10
HDA B11
LDA B12
HOA B13
LOA B14
HMA B15
LMA B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
OOR B4
B5
B6
HHA B7
LLA B8
B9
INH
704
24. DPIDA Controller B0193AX – Rev AB
INITLR Initialize Local/Remote is an integer input that specifies the desired state
of the LR input during initialization, where:
0= Local
1= Remote
2= no change, except if a reboot, use the LR state specified in the
checkpoint file.
INITMA Initialize Manual/Auto is a short integer input that specifies the desired
state of the MA input during initialization:
0= Manual
1= Auto
2= no change, except if a reboot, use the MA state specified in
the checkpoint file.
705
B0193AX – Rev AB 24. DPIDA Controller
stream block is open loop. Starting with Release 4.2, you connect the
BCALCO output of this block to the BCALCI input of the upstream
block for this purpose.
INITSE Initial Supervisory Enable is a configurable short integer value that speci-
fies the initial state of the SE parameter in a block configured for Supervi-
sory Control (SUPOPT = 1 or 3) when the block initializes due to reboot,
installing the block, or turning the compound on. Options are:
0 = Disable
1 = Enable
2 = Do not change SE parameter
INT Integral Time is a real input that adjusts the integral time constant in min-
utes. For the PI, PID and NIPID modes, INT is adaptively tuned by the
FBTUNE block, if it is linked to the DPIDA block.
When a DPIDA block is in P or PD mode (that is, MODOPT=1 or
MODOPT=3), the INT parameter appears on the default displays as
BTIME because it becomes the balance time (explained below) for those
controller modes. Balance time is utilized so that a bumpless transfer can
be accomplished without compromising the algorithm of the P or PD
controller. In other words, if a P or PD controller is either initialized or
transferred from manual to auto, where the actual output is different from
the algorithm's calculated output, the controller output is not bumped
but instead is integrated (or balanced) over time until it matches its calcu-
lated value. The actual balance time is a function of a first-order lag and
adjustable via the lag time constant, which is the INT (or BTIME) param-
eter expressed in minutes. The DPIDA block does not have a parameter
labeled BTIME associated with it so all Object Manager access to the
BTIME value must refer to INT.
IOM_ID Fieldbus Module Identifier is a configurable string input that specifies the
ECB52 for the FBM that contains the algorithm for this block.
IOM_ID has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOM_ID configuration. In this case, the 1-12
character ECB block name is sufficient.
KBIAS Gain Factor is a real input that multiplies the BIAS input. It is expressed
in OUT units (RO1) divided by BIAS units (RI2).
KD Measurement Filter Factor is a real input that adjusts the time constant of
the measurement filter.
For PD and NIPID control modes, the filter time constant is:
[DERIV / KD]
For the PID control mode, the filter time constant is:
706
24. DPIDA Controller B0193AX – Rev AB
1 / [ (1/INT) + (1/DERIV) ] KD
KZONE Middle Zone Gain is a real input that establishes the relative gain within
the zone defined by HZONE and LZONE. KZONE is usually set at less
than unity for pH control applications, or for desensitizing the control to
noise. If KZONE is set to zero, the block behaves as a dead zone control-
ler, causing most loops to limit cycle.
LDAIND Low Deviation Alarm Indicator is a boolean output that is set true when
the measurement falls below the setpoint by more than the deviation
limit, LDALIM. When the measurement passes back through the
DEVADB deadband, the block sets LDAIND to false.
LDALIM Low Deviation Alarm Limit is a real input that defines how far the mea-
surement must fall below the setpoint to initiate a low deviation alarm and
set the Low Deviation Alarm Indicator LDAIND true.
LLAIND Low-Low Alarm Indicator is a boolean output that is set true when the
measurement (MEAS) falls below the low-low absolute alarm limit
(LLALIM). LLAIND is reset to false when the value is greater than
LLALIM plus a deadband.
LLALIM Low-Low Alarm Limit is a real input that defines the value of the mea-
surement (MEAS) that triggers a Low-Low Alarm.
LOAIND Low Output Alarm Indicator is a boolean output that is set true whenever
the output is less than LOALIM.
LOALIM Low Output Alarm Limit is a real input (in RO1 units), that defines the
value of the output (OUT) that initiates a low output alarm.
LOCKID Lock Identifier is a string data store that identifies the workstation that has
exclusive write access to the block. LOCKID arbitrates write access to the
control block parameters by operator workstations on the network. Set
requests to any of the block’s parameters are honored only if the requesting
workstation’s identifier matches the contents of LOCKID.
LOCKID does not lock out sequence code write access to block parame-
ters. Sequence block set requests to any of the block’s parameters are
always honored.
707
B0193AX – Rev AB 24. DPIDA Controller
The lock-request message sets LOCKRQ to true and sets LOCKID to the
identifier of the requesting workstation. The lock-release message clears
LOCKRQ and nulls LOCKID.
LOCKID has the format LETTERBUG:DEVNAME, where LETTER-
BUG is the 6-character letterbug of the workstation and DEVNAME is
the 6-character logical name of the Display Manager.
LOCKRQ Lock Request is a boolean data store that is set true or false by toggling the
LOCK U/L key on the Block Detail Display. An operator at any other
workstation can lock and unlock the block by toggling the LOCK U/L
key.
The lock-request message sets LOCKRQ true, sets LOCKID to the iden-
tifier of the requesting workstation, and sets the WLCK bit in the BLK-
STA parameter. Set requests to any of the block’s parameters are honored
only if the requesting workstation’s identifier matches the contents of
LOCKID.
LOCKID does not lock out sequence code write access to block parame-
ters. Sequence block set requests to any of the block’s parameters are
always honored.
The lock-release message resets LOCKRQ, nulls LOCKID, and resets the
WLCK bit.
NOTE
Do not set LOCKRQ with an application program. Due to contention for the
block, you may not be able to unlock the block
LOCSP Local Setpoint Secure is a boolean input. When true, it provides lockout
of user write access to the LR parameter. If LOCSP is configured true, the
block secures LR when it initializes and maintains LR in the secured state.
The LOCSW and REMSW overrides have higher precedence, but LR
remains secured when they are no longer asserted.
LOCSW Local Switch is a boolean input. When true, LOCSW overrides the LR
and INITLR parameters and drives the block to the Local state. If both
LOCSW and REMSW are true, LOCSW has priority.
LOLIM Low Output Limit is a real input that establishes the minimum output
(OUT) value. If the algorithm tries to drive the output to a lower value,
the output is clamped at the LOLIM value and the indicator LOLIND is
set true.
LOLIND Low Output Limit Indicator is a boolean output that is set true whenever
the output is clamped at the low output limit, LOLIM.
708
24. DPIDA Controller B0193AX – Rev AB
LSCI1 to LSCI2 Low Scale for Input Ranges 1 and 2 are configurable real values that define
the lower limit of input ranges RI1 and RI2. EI1 and EI2 define the units.
Make the range and units consistent with those of the input sources. The
default value is 0 (percent).
LSCIN Low Scale for Input MULTIN is a configurable real value that defines the
lower limit of MULTIN. EIN defines the units. The default value is 0
(percent).
LSCO1 Low Scale for Output Range 1 is a configurable real value that define the
lower limit of the range for Output 1. EO1 defines the units. Make the
range and units consistent with those of the output destination. The
default value is 0 (percent).
LZONE Low Zone is a real input that defines, in terms of the error, the absolute
value of the negative error level that sets the lower limit of the zone in
which the nonlinear gain option is exercised. LZONE is expressed as a
percentage of the measurement span.
MA Manual /Auto is a boolean input that controls the block’s operating state:
0 = Manual
1 = Auto
In Manual, each DPIDA block output is unsecured, which makes it setta-
ble by an external process (program or display). In Auto, the block secures
each output so that it cannot be set externally.
MANALM Manual Alarm Option is a configurable input which enables and disables
configured alarm options to function in Manual. Normally alarms are
processed only in the Auto mode.
0 = No alarming in Manual
1 = Full alarming in Manual
709
B0193AX – Rev AB 24. DPIDA Controller
MANSW Manual Switch is a boolean input. When true, it overrides the MA and
INITMA parameters and drives the block to the Manual state. If both
MANSW and AUTSW are true, MANSW has priority.
MCLOPT Manual Clamping Option is a configurable boolean input that allows you
to invoke output clamping while the block is in manual.
MEASHI Measurement High Alarm Indicator is a boolean output that is set true
when the measurement exceeds the high alarm limit (MEASHL). When
the measurement passes back through the deadband, the block sets
MEASHI to false.
710
24. DPIDA Controller B0193AX – Rev AB
MEASHL Measurement High Alarm Limit is a real input that defines the value of
the measurement that initiates a high absolute alarm.
MEASLI Measurement Low Alarm Indicator is a boolean output that is set true
when the measurement falls below the low alarm limit (MEASLL). When
the measurement passes back through the MEASDB deadband, the block
sets MEASLI to false.
MEASLL Measurement Low Alarm Limit is a real input that defines the value of the
measurement that initiates a low absolute alarm.
MEASPR Measurement Priority is a integer input (1 to 5), that sets the priority level
of the measurement alarm (1 is the highest priority).
711
B0193AX – Rev AB 24. DPIDA Controller
NONLOP Nonlinear Option is a configured boolean input that allows you to cus-
tomize the gain in a zone about zero error. The zone is defined by
HZONE and LZONE, the gain by KZONE.
OALOPT Output Alarm Option is a configured short integer input that enables
absolute High and Low alarming of the block output (OUT) or disables
output alarming altogether.
0 = No alarming
1 = High and Low output alarming
2 = High output alarming only
3 = Low output alarming only
OSV Output Span Variance is a configurable real input that defines the amount
by which the output clamp limits (HOLIM, LOLIM) may exceed the
specified output range, as defined by HSCO1 and LSCO1.
OUT Output is a real output that in the Auto mode is the result of the FBM
algorithm for the selected control mode (MODOPT). In Manual, OUT
is unsecured, and can be set by you or by an external task.
OUT2 Output 2 is a real output that is used as a feedforward input for other
blocks. OUT2 is the back-calculated indication of the internal controller
output, expressed in percent.
OUTADB Output Alarm Deadband is a real input that specifies the size of the dead-
band for both High and Low Output Alarm Limits.
OUTGRP Output Group is a short integer input that directs high and low output
alarm messages to one of eight groups of alarm devices.
OUTPRI Output Priority is an integer input (1 to 5) that sets the priority level of
the High and Low Output Alarms (1 is the highest priority).
712
24. DPIDA Controller B0193AX – Rev AB
it to the null string, which is always accepted. Once set to the null string,
an application can then set the value as desired.
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)
* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.
PERTIM Period Time is a real data store value representing the period time of the
DPIDA (shadow) block in seconds.
PHASE Phase is an integer input that causes the DPIDA (shadow) block to exe-
cute at a specific BPC within the time determined by the PERIOD. For a
CP with a BPC of 0.5 s and a PERIOD of 2.0 s, the legal PHASE values
are 0, 1, 2, and 3. Refer to the appropriate Integrated Control Software
Concepts document (B0700AG or B0193AW).
713
B0193AX – Rev AB 24. DPIDA Controller
PRITIM Primary Cascade Timer is a configurable parameter used to delay the clos-
ing of the cascade to a primary block, when the output is initialized in the
DPIDA block. It is used only if the PRIBLK option is set. The cascade is
closed automatically when the timer expires without requiring an explicit
acknowledge by the upstream block logic.
Refer to “PRIBLK and PRITIM Functionality” on page 739 for more
information on this parameter.
PROPT Propagate Error Option is a boolean input. When true, PROPT sets the
ERROR Status bit of the output (OUT) parameter if all FBM measure-
ment inputs are in error while the block is in Auto. The measurement
input is in error when:
Its BAD status bit is set true.
Its OOS (Out-of-Service) status bit is set true.
Its ERROR status bit is set true.
If a transition to Manual occurs while the ERROR status is true, it
remains true until either a set command is written to that output or until
the block transfers to Auto with the error condition returned to normal.
PRSCAS Present Cascade State is a data store that indicates the cascade state. It has
the following possible values:
Value State Description
1 INIT_U Unconditional initialization of the primary cas-
cade is in progress.
2 PRI_OPN The primary cascade is open.
3 INIT_C Conditional initialization of the primary cas-
cade is in progress.
4 PRI_CLS The primary cascade is closed.
5 SUP_INIT The supervisory cascade is initializing.
6 SUP_OPN The supervisory cascade is open.
7 SUP_CLS The supervisory cascade is closed.
714
24. DPIDA Controller B0193AX – Rev AB
PRSCON Present Control state is a short integer data store that contains the sub-
states of Auto:
1 = Holding
2 = Tracking
3 = Controlling (not open loop)
PRTYPE Priority Type is an indexed short integer (0 to 9) output that indicates the
alarm type of the highest priority active alarm. The PRTYPE outputs of
this block include the following alarm types:
0 = No active alarm
1 = High absolute
2 = Low absolute
3 = High-high absolute
4 = Low-low absolute
5 = High deviation
6 = Low deviation
7 = Rate alarm
8 = Bad alarm
25 = Out-of-range
REMSW Remote Switch is a boolean input. When true, it overrides the unlinked
LR and INITLR parameters, and drives the block to the Remote state. If
both LOCSW and REMSW are true, LOCSW has priority.
RI1 to RI2 Range Inputs 1 and 2 are data store arrays of real values that specify the
high and low engineering scale and change delta for the measurement
(MEAS) and bias (BIAS). For this block, it also forms an association with
a group of real input parameters that have the same designated range and
change delta.
RIN Range Input for MULTIN is a data store array of real values that specifies
the high and low engineering scale and change delta for input MULTIN.
RO1 Range Output 1 is a data store array of real values that specify the high
and low engineering scale of the controller output (OUT). For this block,
it also forms an association with a group of real output parameters that
have the same designated range.
RSP Remote Setpoint is a real input that is the selected setpoint source when
LR is set to Remote. Typically RSP connects to an upstream block in a
cascade scheme. RSP and its source must be expressed in MEAS units
(RI1).
715
B0193AX – Rev AB 24. DPIDA Controller
SELRQ Select Request is a short integer input that selects one of up to three
redundant measurements for use by the FBM algorithm:
0= use normal selection based on REDOPT in ECB52 (see
REDOPT in “ECB52 Parameter Definitions” on page 722.
1= select analog input channel 1 measurement, if healthy
(REDOPT = 1 or 2).
2= select analog input channel 2 measurement, if healthy
(REDOPT = 1 or 2).
3= select analog input channel 3 measurement, if healthy
(REDOPT = 2).
SELST Select Status is a short integer input that indicates which of the three
redundant measurements is being used by the FBM algorithm, depending
on the value of SELRQ:
1 = analog input channel 1 is selected
2 = analog input channel 2 is selected
3 = analog input channel 3 is selected
If SELRQ is set to 0, SELST is set to 1.
SPCLMP Setpoint Clamp is a configurable short integer that specifies the limits to
be used when clamping or limiting the Supervisory setpoint (SUP_IN),
and Remote setpoint (RSP).
0 = clamp using the measurement scale limits (HSCI1 and LSCI1)
1 = clamp using the setpoint limits (SPHLIM and SPLLIM)
2 = reject values outside of the setpoint limits (SPHLIM and SPLLIM).
SPHLIM Set-Point High Limit is a real input that specifies the upper limit for the
local setpoint value in engineering units.
SPLLIM Setpoint Low Limit is a real input that specifies the lower limit for the
local setpoint value in engineering units.
SPRAMP Setpoint Ramp state is a boolean input that enables or disables setpoint
ramping:
0 = disable setpoint ramping
1 = enable setpoint ramping
SPRATE Setpoint Ramp Rate is a positive real input that specifies ramping of the
setpoint to a new target value (SPTARG) by rate in engineering units per
minute or by time to target in minutes, depending on the value of
SPROPT.
716
24. DPIDA Controller B0193AX – Rev AB
SPROPT Setpoint Option is a configurable short integer input that specifies the set-
point ramping option:
0= no setpoint ramping.
1= ramp using SPRATE as ramp rate (units/minutes).
2= ramp using SPRATE as ramp rate; do not ramp on deviation
alarm.
3= ramp using SPRATE as ramp time (minutes).
4= ramp using SPRATE as ramp time; do not ramp on deviation
alarm.
SPT SetPoint is a real output that always represents the active controller set-
point that is compared with the MEAS input to produce the ERROR sig-
nal. LR determines the source of SPT.
When LR is set to Remote, RSP is the source of SPT, which is secured
(not settable). When LR is set to Local, the set value is the source of SPT,
which is unsecured (settable). When LR is set to Local, SPT retains the
last RSP value until you change SPT.
When using the controller in only the Local mode, configure SPT to the
value you want it to assume when the block is installed and initialized to
Local.
SPT can also source the setpoint value to other blocks.
While settable by default, SPT is nonsettable while setpoint tracking is
active. (See STRKOP.)
717
B0193AX – Rev AB 24. DPIDA Controller
SPTARG SetPoint Target is a real input that is the final value for a setpoint ramp in
engineering units. It must be set within the setpoint SPHLIM and
SPLLIM limits, otherwise SPRAMP is reset to 0 and no ramping occurs.
STATEB State of the Feedback adaptor is a short integer output. Its values are:
-3 = Pretune
-2 = Off
-1 = Hold last tuning
0= Quiet, waiting for new (isolated) response
1= Locating and confirming peak 1
2= Locating and confirming peak 2
3= Locating and confirming peak 3
4= Locating and confirming peak 4
5= Wait
6= Settle (a non-isolated response may trigger a new search from
this state)
STATEF State of the Feedforward adaptor is a short integer output. Its values are:
-2 = Off
-1 = Hold last tuning
0= Quiet, waiting for new disturbance
1= Unmeasured disturbance (or non-isolated response)
2= Measured disturbance
3= Significant (isolated) response
4= Confirmed response
5= Wait
6= Settle
STRKOP Setpoint Track Option is a short integer input. When active, STRKOP
enables the setpoint to track the measurement input under the following
conditions.
0 = no option enabled
1 = SPT parameter tracks the measurement input when the block is in
Manual, or the cascade is open downstream (Initialization input INITI is
true).
2 = SPT parameter tracks the measurement only when the block is in
Manual.
STRKOP is active only when the setpoint source selector LR is in Local.
718
24. DPIDA Controller B0193AX – Rev AB
SUP_IN Supervisory Input is a real output that is the parameter set by a Supervi-
sory application when performing supervisory control of this block’s set-
point. SUP_IN also contains a status bit (Bit 10) that must be set by the
supervisor to acknowledge a request to initialize (Bit 10 in SUPBCO).
TRACK Track is a real input that provides the input signal that the block output
(OUT) tracks when the block is in Auto and TRKENL is set to 1.
TRKENL Track Enable is a boolean input that enables the block output to follow
the TRACK input.
0 = disable tracking
1 = enable tracking
719
B0193AX – Rev AB 24. DPIDA Controller
TYPE Type is a system-level mnemonic label indicating the block type. Enter
“DPIDA” or select “DPIDA” from the block type list under Show when
configuring the block.
UNACK Unacknowledge is a boolean output that the block sets to true when it
detects an alarm. It is typically reset by operator action.
720
24. DPIDA Controller B0193AX – Rev AB
721
B0193AX – Rev AB 24. DPIDA Controller
ACTION Equipment Change Action is a 16-bit, packed boolean, data store that is a
request from the Station Manager to perform an action related to a partic-
ular FBM:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B1
B2
B3
B4
B5
B6
B7
B8
B9
NOTE
Do not set ACTION with an application program.
722
24. DPIDA Controller B0193AX – Rev AB
ATC Air-To-Close is a boolean input that specifies reversing the controller out-
put for use with air-to-close valves. If ATC is set true, the span of the FBM
analog output is reversed. For example, a 100% output drives 0 V dc or
4 mA, while a 0% output drives 10 V dc or 20 mA. Inversion does not
effect the OUT and BCALCO parameters.
BUSWDS Bus Switch Disable is a boolean input that enables or disables FBM port
switching:
0 = Enable port switching
1 = Disable port switching
CYCLE Cycle is a short integer input that represents the actual cycle time that the
controller is using, expressed in CYCTIM values. If FBM processor load-
ing is greater than the configured CYCTIM allows, the controller adap-
tively selects a slower CYCTIM value that allows it to handle the load.
CYCTIM Cycle Time is a short integer that specifies the cycle time of the controller
algorithm in 5 ms increments as follows:
Value Time (ms) Value Time (ms)
0 (default) 50 6 30
2 10 7 35
3 15 8 40
4 20 9 45
5 25 10 50
Processor power limits the options usable at fast cycles. If the cycle time is
too fast for the configured options, the FBM adaptively selects a slower
CYCTIM value that allows it to handle processor loading. 10ms cycle
times are possible only for nonredundant measurement inputs without
characterizer or square root conditioning. 15ms cycles can support input
signal conditioning or redundancy but not both.
NOTE
As the controller cycle time is reduced, the precision of the analog conversion is
reduced. See the FLTOP and FLTTIM parameter descriptions.
DEFINE Define is a boolean data store. When true, it indicates that the block has
no configuration errors. It is the inverse of UDEF in parameter BLKSTA.
When the block initializes, DEFINE is set to 0 (undefined) if the block
723
B0193AX – Rev AB 24. DPIDA Controller
DEV_ID Device Identifier is a character array that specifies the 6-character letter-
bug identifier of the connected FBM.
ECBSTA ECB Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the ECB52 block, the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
ERCODE Error Code is a string data store that indicates the type of configuration
error that caused the block’s DEFINE parameter to be set false. Validation
of configuration errors does not proceed past the first error encountered
by the block logic.
FLTOPT Filter Option is a short integer input that specifies the number of sam-
pling windows for analog conversion averaging:
0= average over two sampling windows to provide anti-alias
filtering (default)
1= average over one sampling window
FLTTIM Filter Time is a short integer input that specifies the sampling window in 5
ms increments from 1 to the value of CYCTIM. The default value of 0
sets the sampling window equal to the controller cycle time. This is the
optimal setting for almost all cases:
724
24. DPIDA Controller B0193AX – Rev AB
FS5DPD Failsafe Channel 5 Data is an integer input that specifies the fallback value
for the controller output. The value represents the D/A raw count value
and must be related to the intended signal conditioning. For example, if
this output is going to a 4 to 20 ma device (raw count range: 12800 to
64000), then FS5DPD must be within that range.
FSAFE Failsafe Map is a 32-bit data store that is bit-mapped to maintain the Fail-
safe state of each output channel related to the ECB. All bits are set by the
PIO/ECB interface when the FBM undergoes Failsafe at the module level.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
FSDLAY Failsafe Delay is a long integer input timer. When enabled by FSENAB, it
specifies (in units of 0.01 seconds), the length of time the FBM waits for a
communication from the CP before entering a Communications Failure
(or software) Failsafe state. This state asserts the output values specified by
the Failsafe configuration. PIO security commands (for example, heart-
beat, read-device status) do not reset this timer.
For example, the default value of 1000 causes the FBM to wait 10 seconds
between CP communications before going to the Failsafe state, if
FSENAB is configured true.
FSENAB Failsafe Timer Enable is a boolean input that enables the FSDLAY timer.
When the FSDLAY timer expires while the FBM is waiting for a commu-
nication from the CP (Communications Failure), the FBM enters the
Failsafe state and takes the action specified by FSOPT.
0 = Disable FSDLAY timer
1 = Enable FSDLAY timer
If communications fail with FSENAB set false, the FBM does not enter
Failsafe for this reason. Setting FSENAB false does not prevent the FBM
from going to Failsafe for other reasons, such as:
FBM reboot
EEPROM update
FBM taken off-line from the System Management Displays
Power failure
FBM restart
725
B0193AX – Rev AB 24. DPIDA Controller
FSMMPD Failsafe Mask Main for ECB Type 52 is a short integer input that specifies
the Failsafe action taken during FBM Failsafe mode for the analog and
digital outputs.
0 = fallback value
1 = Hold
FSOPT Failsafe Option specifies the action to be taken by the controller when a
Communications Failure occurs with FSENAB set true while the control-
ler is in Auto or Hold:
Upon Failsafe recovery from Hold, the controller goes to Auto.
0 = No mode change; control to last setpoint
1 = Go to Hold
2 = Go to Hold with output set Failsafe
3 = Go to Manual
4 = Go to Manual with output set Failsafe
Upon Failsafe recovery from Manual, the controller stays in Manual.
HMSCAL High Measurement Scale is an integer input (0 to 64000) that specifies the
FBM count value (default = 64000) that represents a measurement value
of 100.0%.
HORVAL High Out-of-Range Value is an integer input that specifies the high limit
in counts for range checking of the FBM measurement inputs MEASn
configured by REDOPT. If OORENB is set true and a measurement is
greater than this limit, its status is set Bad.
HOSCAL High Output Scale is an integer input (0 to 64000) that specifies the FBM
count value (default = 64000) that represents an output value of 100.0%.
HWREV Hardware Revision is the revision level of the FBM type that connects to
this ECB. Once HWREV is set, it cannot be edited via the Integrated
Control Configurator.
HWTYPE Hardware Type is the type of FBM that connects to this ECB. Once
HWTYPE is set, it cannot be edited via the Integrated Control
Configurator.
INVDFI Invert Device Fail option is a boolean input that specifies inversion of the
Device Fail input (Channel 10) in an FBM17/FBM227 to determine the
fail state of the field device:
0 = No inversion
1 = Invert
LMSCAL Low Measurement Scale is an integer input (0 to 64000) that specifies the
FBM count value (default = 0) that represents a measurement value of
0.0%.
726
24. DPIDA Controller B0193AX – Rev AB
LORVAL Low-Out-of-Range Value is an integer input that specifies the low limit
for range checking of the FBM measurement inputs MEASn configured
by REDOPT. If OORENB is set true and a measurement is less than this
limit, its status is set Bad.
LOSCAL Low Output Scale is an integer input (0 to 64000) that specifies the FBM
count value (default = 0) that represents an output value of 0.0%.
NUMPTS Number of Points is a short integer input (2 to 9) that specifies the num-
ber of X, Y coordinates (default= 2) for characterizing the selected mea-
surement.
OPSTAT Module Operational Status is a short integer data store that indicates the
following FBM operational status:
Value Definition
0 Device failed
1 Communications failed
2 Ride through
3 Go maintenance off
4 Go ECB off
5 Going on
6 Module OK
7 Maintenance off
8 ECB off
OUOM01 Output Message Index 0 is a short integer data store that specifies the off-
set in the ECB buffer of the output message from the CP to the FBM.
PERIOD Period is an indexed input that dictates the ECB52 input scan period and
allowable PHASE values. Use the same PERIOD and PHASE values for
the ECB52 and DPIDA blocks. PERIOD values range from 0 to 13 and
map to the following period time lengths:
727
B0193AX – Rev AB 24. DPIDA Controller
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For a CP with a BPC of
0.5 s and a PERIOD of 2.0 s, the legal PHASE values are 0, 1, 2, and 3.
Use the same PERIOD and PHASE values for the ECB52 and DPIDA
blocks. Refer to the appropriate Integrated Control Software Concepts docu-
ment (B0700AG or B0193AW).
PNLOPT Panel Option is a boolean input that specifies the use of the local opera-
tor’s panel (Foxboro Deutschland) for manual operation of the controller
output in an FBM17/FBM227.
0 = No panel
1 = Panel
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
728
24. DPIDA Controller B0193AX – Rev AB
REDOPT Redundancy Option is a short integer input that specifies redundant mea-
surement inputs MEASn for FBM04/FBM204 and FBM17/FBM227:
0 = no redundancy (default; channel 1 only)
1 = dual redundancy (channels 1 and 2); also sets BLKSTA.B11 (RED) in
the DPIDA block
2 = triple redundancy (channels 1, 2 and 3); also sets BLKSTA.B28
(RED2) in the DPIDA block
The REDOPT parameter (in ECB52) is used in conjunction with
BLKSTA.B11 (RED) and BLKSTA.B28 (RED2) to control the condi-
tional display of the three possible measurements of the DPIDA. The first
measurement is always on the display. The second and third measure-
ments can be added as well; the second measurement must be shown in
order for the third measurement to be displayed.
When REDOPT=1 (in ECB52), BLKSTA.B11 (RED) is set to 1 to
display the second measurement.
When REDOPT=2 (in ECB52), BLKSTA.B28 (RED2) is set to 1 to
display the third measurement. Since the second measurement must be
displayed in order to display the third measurement, BLKSTA.B11 (RED)
must have already been set to 1 before BLKSTA.B28 (RED2) is set to 1.
SQRENB Square Root Enable is a boolean input that enables or disables application
of the square root function to the scaled measurement.
0 = Disable (default)
1 = Enable
729
B0193AX – Rev AB 24. DPIDA Controller
SWREV Software Revision is the revision level of the FBM software type ECB52.
Once SWREV is set, it cannot be edited via the Integrated Control Con-
figurator.
SWTYPE Software Type is the ECB52 type. Once SWTYPE is set, it cannot be
edited via the Integrated Control Configurator.
TYPE Type is a system-level mnemonic label indicating the block type. Enter
ECB52 or select ECB52 from the block type list under Show when con-
figuring the block.
X_1PD to X_9PD Integer input coordinate values for an 8-segment characterizer that condi-
tions the selected measurement when CHAREN is set true. The values
range from 0 to 4000 counts representing 0 to 100%. They must be
monotonically increasing.
Y_1PD to Y_9PD Integer output coordinate values of an 8-segment characterizer that condi-
tions the selected measurement when CHAREN is set true. They are
required to be monotonically increasing. The values range from 0 to 4000
counts representing 0 to 100%. They must be monotonically increasing.
24.6 Functions
24.6.1 Detailed Functional Diagram
Figure 24-2 is a detailed functional diagram for the DPIDA Controller. Functions performed by
the FBM are not shaded in Figure 24-2. Functions performed by the DPIDA shadow block in the
CP are shaded in Figure 24-2.
730
24. DPIDA Controller B0193AX – Rev AB
731
732
HSCI1, LSCI1, SPHLIM, SPROPT, SPTARG, LR, LOCSP, LOCSW, SUPOPT, HZONE, LZONE, HSCIN, MULTIN BIAS KBIAS, MA, MBADOP, BAO
SPLLIM, SPCLMP SPRAMP, SPRATE REMSW, STRKOP SE KZONE, NONLOP LSCIN BBIAS MANSW, AUTSW
Remote SPT
RSP Scale, Limit
Track Enable Mult
+ +
SUP_IN Scale, Limit
OSV
SPLLAG* Add
A r Scale OUT
r DPIDA
1.0
rf
Local
dy Panel
Gain Compensator Lag: I ² ------ + y = x = input
A dt Ramp
1 MA
y = --- x t – y t dt + y 0 = output
i t I fr b
Manual Control
rf ml
e eg 100 ep m mf mb Auto ms Output
MODOPT +
---------- ² e g
P + x + Limit . Scale
Hold
_ Track
_
+ HOSCAL
LOSCAL
Lag
DERIV*
FBM
KD*
Using
Butterworth dc f
Filter cf D ² -------- cd ECB52 fbb
dt fbr f bb ³ f r fb – b fb
c .
SELRQ
meas1
OUT2
If supervisory option (SUPOPT) is 1 or 3 and supervisory enable (SE) is true, the controller uses
the supervisory setpoint (SUP_IN) for calculating the controller output (see Figure 24-2). For
more information, refer to “Setpoint Processing” on page 744 and the Supervisory Setpoint Control
(SSC) (B0193RY) document.
If SUPOPT is 0, the LR setpoint source selector, together with the two overrides, LOCSW and
REMSW, determines the setpoint source at any time. In Local, you can ramp the setpoint from
the Block Detail display.
When STRKOP = 1 or 2 while SUPOPT is 0 and LR is false, the local setpoint (SPT) tracks the
measurement when the block reinitializes or initializes with a local setpoint. This allows bumpless
return to automatic control when the controller returns to closed-loop operation.
The controller provides the MANSW and AUTSW override inputs to force the controller to the
Manual or Auto state. In Manual, you can ramp the controller output from the Block Detail dis-
play or A/M station.
When TRKENL is true, the output tracks an independent signal source (TRACK).
The DPIDA block in the CP operates in conjunction with the control algorithm in the FBM to
support tuning, scaling and alarming functions (see Figure 24-2). The block provides:
Absolute and deviation alarming of the measurement (see Figure 24-4)
Absolute alarming of the controller output
Bad I/O alarming.
FBM variables used in Figure 24-2 and the following sections to described controller operations
are listed in Figure 24-3.
Variable Description
A Setpoint lead/lag ratio (SPLLAG)
b b = KBIAS (BIAS + BBIAS)
c Controlled variable – selected measurement
cf Butterworth filtered measurement
cd Derivative filtered cf
ci Integral filtered cd
D Derivative time (DERIV)
e Control error
eg Nonlinear gain adjusted e
ep Proportional filtered eg
fr Scaled MULTIN
fb Feedback from controller output
fbb fbb = fb - b
fbr fbr = fbb - fr
I Integral time (INT)
KD Derivative gain (KD)
Kz Zone gain for nonlinear gain
733
B0193AX – Rev AB 24. DPIDA Controller
Variable Description
m Manipulated variable
mf mf = m fr
mb mb = mf + b
ml Limited mb
ms ms = 6400 (ml - LOSCAL / HOSCAL - LOSCAL)
meas1 Measurement 1
meas2 Measurement 2
meas3 Measurement 3
P Proportional band (PBAND)
r Selected setpoint
rf Compensated setpoint
t Time constant
x Lag input
y Lag output
734
24. DPIDA Controller B0193AX – Rev AB
The controller algorithms can be expressed using the differential operator (s = d()/dt) as follows
(see Table 24-3 for variable definitions):
Proportional only (P):
100
m b = --------- r – c f f r + b
P
=0
Integral only (I):
1
dm b = ---- r – c f f r + b
Is
=0
100
m b = --------- r – 1 + Ds c f f r + b
P
D
= -------
KD
100 1 1
m b = --------- ---- + A r – ---- + 1 c f f r + b
P Is Is
=0
100 1 1
m b = --------- ---- + A r – ---- + 1 1 + Ds c f f r + b
P Is Is
1--- = 1--- + ---
1- K
I D D
100 1 1 + 1 + Ds c f + b
m b = --------- ---- + A r – ----
P Is Is f r
D
= -------
KD
c
c f = ------------------------------------------
-
2
1 + s + 0.5 s
735
B0193AX – Rev AB 24. DPIDA Controller
The controller algorithms can also be expressed in the time domain as follows:
Proportional only (P):
100
m b = --------- r – c f f r + b
P
1 t
m b = --- r – c f dt f r + b
I 0
100 dc f
m b = --------- r – c f + D ------- f r + b
P dt
D
= -------
KD
100 1 t
m b = --------- --- r – c f dt + Ar – c f r + b
P I 0
100 1 t D dc f
m b = --------- --- r – c f dt + Ar – 1 + ---- c f – D ------- f r + b
P I 0 I dt
1--- = 1--- + ---
1- K
I D D
Non-interacting PID (NIPID):
100 1 t dc f
m b = --------- --- r – c f dt + Ar – c f – D ------- f r + b
P I 0 dt
D
= -------
KD
2
dc f 2 d c f
c f + ------- + ----- 2 = c
dt 2 d t
736
24. DPIDA Controller B0193AX – Rev AB
NOTE
The above expression for cf can also be expressed as two simultaneous integral equa-
tions, but the above expression more clearly shows the effect of on cf.
The sign of the deviation (cf - r) signal is opposite that of the error (r - c). Scaling for engineering
units and normalized FBM counts and provision for sign reversal (INCOPT) is not shown in the
above simplified mathematical representations.
NIPID action introduces the capability of tuning to achieve complex (underdamped) numerator
roots. This capability is needed in order to achieve best performance when the process has two
dominant lags.
The DPIDA supports multiplicative and additive feedforward compensation, and local setpoint
ramping and limiting. Using extender blocks, the PIDA controller can accommodate self tuning
of feedback (FBTUNE) and feedforward (FFTUNE) parameters.
The measurement filter response is shown in Figure 24-5. The setpoint gain compensation
response is shown in Figure 24-7.
Table 24-4 summarizes the filtering and tuning features for these control modes.
Control Mode
Feature P I PD PI PID NIPID
Measurement filtering X X X
Setpoint compensation X X X
Nonlinear gain X X X X X X
Multiplicative input MULTIN X X X X X X
Bias input BIAS X X X X X X
FFTUNE feedforward tuning X X X
FBTUNE feedback tuning X X X
737
B0193AX – Rev AB 24. DPIDA Controller
738
24. DPIDA Controller B0193AX – Rev AB
is set false, a control error forces the controller to Hold if MA is set to Auto, and it disables set-
point tracking if SPTRKOP is set true.
If CEOPT is not enabled, then control error detection is not performed, and MBADOP, HOLD,
and SPTRK handling is performed explicitly by asserting the HOLD input.
739
B0193AX – Rev AB 24. DPIDA Controller
The DPIDA controller can only be at the bottom of the cascade. A typical cascade configuration
using the DPIDA controller is shown in Figure 24-3.
PRIBLK = 0 PRIBLK = 1
PID
MEAS OUT RSP DPIDA
Block
MEAS
FBK
BCALCI BCALCO
Figure 24-3. Cascade Configuration (Typical)
740
24. DPIDA Controller B0193AX – Rev AB
The PRIBLK option allows a downstream block to initialize before the uptream block has
matched its output to its BCALCI input. The PRIBLK feature is needed if the upstream block’s
computing interval is the greater of the two, which is the case for a DPIDA controller.
The BCALCO status is updated each BPC to indicate when SPT has exceeded the high or low
limit. The upstream block uses this status to prevent integral windup.
OSV (units)
HSCO1
Output
LSCO1
OSV (units)
Time
Figure 24-4. Output Limiting
When an output limiting condition is detected in the FBM for a controller with integral action,
the integral term is managed to prevent integrator windup. If the controller prelimited output
becomes greater than HOLIM or less than LOLIM, the integral term is managed to provide rapid
recovery with almost no overshoot (similar to LIMOPT = 1 in the PIDA block).
Output limiting in the DPIDA controller is propagated to an upstream block through the status
bits of its BCALCI input, provided that it is linked to the BCALCO output of the DPIDA con-
troller.
741
B0193AX – Rev AB 24. DPIDA Controller
The CP scales input parameters and then converts them to counts before sending them to the
FBM. The CP converts the count outputs received from the FBM and scales them for use in
alarming and transfers to Manual.
742
24. DPIDA Controller B0193AX – Rev AB
1.1
Input Step
1.0
.9
.8 Output
.7
.6
= DERIV / KD = 0.1 s
.5
.4
.3
.2
.1
0
0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1.0
Time (s)
2
dc f d c f
c f + ------- + --- 2 = c = input measurement
dt 2 d t
or
c
c f = -------------------------------------- = output filtered measurement
2
1 + s + 0.5s
Measurement filtering can be useful even when derivative action is not used, such as when the
process has a high frequency resonance. In this case, choose DERIV to have a small nonzero value
and KD to have a value less than one, such that the filter time constant
(DERIV / KD) is large enough to provide significant attenuation at the resonant frequency. The
range of KD is restricted to be not less than 0.1 and not greater than 100.
In all control modes, the measurement (c) is fed through a Butterworth filter. For the P, I, and PI
control modes, the derivative time (DERIV) is set to 0, thus providing no measurement filtering.
A noisy is measurement requires proper filtering to remove unwanted noise:
743
B0193AX – Rev AB 24. DPIDA Controller
Use anti-alias filtering with CYCTIM and FILTIM set to 50 ms. Faster cycle times
can cause problems (see “Controller Cycle Time and Measurement Sampling” on
page 755).
For noisy measurements less than 50 to 60 cycles/seconds, set KD appropriately
(decreasing KD provides more filtering).
With FBTUNE feedback tuning, increase the threshold parameter THRESH for peak
detection.
744
24. DPIDA Controller B0193AX – Rev AB
Operator Supervisory
Displays Application SUPBCO
SUP_IN
SE
LR DPIDA
SUPOPT Block
PID RSP
MEAS OUT
Block
MEAS
FBK
BCALCI BCALCO
Figure 24-6. Supervisory Setpoint Control Cascade Configuration (Typical)
For more information, refer to the Supervisory Setpoint Control (SSC) (B0193RY) document.
745
B0193AX – Rev AB 24. DPIDA Controller
NOTE
When SPCLMP=0, the following special rules regarding setpoint limiting apply:
1. The SPHLIM and SPLLIM limits will be ignored while the block is in Remote
mode.
2. The SPHLIM and SPLLIM limits will be used to limit the setpoint value when
the block is switched to Local mode if the setpoint is within these limits when the
switch occurs.
3. If the setpoint is above SPHLIM (or below SPLLIM) when the block is switched
to Local mode, it will remain above SPHLIM (or below SPLLIM) when the switch
occurs to avoid a bump in the control action. The effective limits are allowed to
“balloon” beyond the actual limits while the block is in Remote mode to accomplish
this action when the block is switched to Local mode.
4. If the setpoint is above SPHLIM (or below SPLLIM) when the block is switched
to Local mode, it can be lowered (or raised), but once lowered (or raised), it cannot
be raised (or lowered) if it continues to be above SPHLIM (or below SPLLIM). (For
example, if the setpoint is 90.0 and SPHLIM=80.0, the setpoint will remain at 90.0
when the block is switched to Local mode. If the setpoint is lowered to 85.0, it can-
not be raised since 85.0 exceeds the SPHLIM value of 80.0. Once the setpoint is
lowered below SPHLIM, the SPHLIM value will then be used once again to limit
the setpoint value.).
746
24. DPIDA Controller B0193AX – Rev AB
Input r
1.0
Output rf
A = SPLLAG
A
Time
= INT
Figure 24-7. Setpoint Lead/Lag Compensation
For example if SPLLAG is set to 0.5, the output at the end of one time constant is:
747
B0193AX – Rev AB 24. DPIDA Controller
If SPROPT is 4, ramping stops whenever the deviation is in alarm and continued setpoint ramp-
ing would increase the deviation. If ramping decreases deviation, ramping is not inhibited.
Table 24-6 summarizes the setpoint ramping action for the SPROPT options.
Rate Stop on
SPROPT (Units/Minutes) Time (Minutes) Deviation Alarm
1 X
2 X X
3 X
4 X X
To be accepted, an SPTARG value must be within the local setpoint limits, SPLLIM and
SPHLIM. When SPT reaches SPTARG or if the operator makes a local SPT change, setpoint
ramping stops and SPRAMP is reset to 0.
If SPTARG is changed during ramping, the block continues to ramp at the initial rate calculated
for the SPRATE time.
748
24. DPIDA Controller B0193AX – Rev AB
40
30 Slope = 1.0
LZONE HZONE
20
Nonlinear Response
10
Characterized
Control Deg Slope = 1.0
Error (eg) 0
Slope = 1.0 De
10 Slope = KZONE = Deg / De
eg = KZONE ² e
20
30 Linear Response
40
-40 -30 -20 -10 0 10 20 30 40
Control Error (e)
Nonlinear gain allows the controller to handle a process with nonlinear gain (for example, a pH
process) by providing a gain characteristic that is opposite that of the process. You set the width of
the zone and the gain (slope) of the line within the zone. The slope typically varies from 0 to 1.0.
At zero slope, the line between the low and high zone limits is horizontal. At a slope of 1.0, the
nonlinear characteristic is completely removed, and the controller behaves as a conventional linear
controller as shown by the dashed line in Figure 24-8.
The proportional gain (G) in the linear part of the response curve where the slope = 1.0 is:
100 -
G = --------------------
PBAND
The effective gain (Ge) within the zone is:
100
G e = KZONE ---------------------
PBAND
The effective proportional band (Pe) within the zone is:
PBAND-
P e = --------------------
KZONE
749
B0193AX – Rev AB 24. DPIDA Controller
24.6.2.15 Feedforward
DPIDA Key Parameters: BIAS, MULTIN
There is provision for both multiplicative MULTIN and additive BIAS feedforward inputs (see
Figure 24-2). The multiplicative input divided by its span (fr) multiplies the output (m) of the lin-
ear part of the control algorithm. The gain/offset adjusted and scaled bias input (b) is added to mf
before output limiting is applied. A back calculation is applied to feedback input fb, using the pre-
vious values of these feedforward terms to achieve the integral-feedback input fbr to the linear part
of the algorithm.
If either the BIAS or MULTIN value becomes invalid, its last valid value is used.
750
24. DPIDA Controller B0193AX – Rev AB
Boolean
Bit Number Connection
(0 to 15) Name Definition (B16 to B1)
0 to 4 Data Type: B16 to B12
1 = character
2 = integer
3 = real
4 = string
5 = boolean
6 = long integer
7 = (unused)
8 = short integer
9 = packed boolean
10 = packed long
5 to 7 OM Status: B11 to B9
0 = No Response
1 = On Scan
2 = Disconnect
3 = Deleted
4 = Nonconnect
5 (unused)
6 (unused)
7 = Not sent
8 BAD Bad I/O B8
9 SECURE Secure/Release B7
10 INITC/ACK Initialize Conditional/Acknowledge B6
11 OOS Out of Service B5
12 SHADOW Shadow Parameter B4
13 LHI Limited High B3
14 LLO Limited Low B2
15 ERROR/INITU Error/Initialize Unconditional B1
24.6.2.17 Alarms
DPIDA Key Parameters: BAD, CRIT, HDALIM, HHALIM, HOALIM, INHALM, INHIB,
INHOPT, LDALIM, LLALIM, LOALIM, MANALM, MEAS, MEASHL, MEASLL, OUT,
PRTYPE, SPT, UNACK
The DPIDA block optionally supports the following alarms:
Bad I/O
Measurement absolute high-high (HHABS) and low-low (LLABS)
Measurement absolute high (HIABS) and low (LOABS)
Deviation high (HIDEV) and low (LODEV)
751
B0193AX – Rev AB 24. DPIDA Controller
752
24. DPIDA Controller B0193AX – Rev AB
If MANALM = 3, no output alarms are detected when the DPIDA block goes into the Track
mode due to a downstream open loop condition.
If MANALM = 4, no output alarms are detected when the block is in Manual mode or the
DPDIA block goes into the Track mode due to a downstream open loop condition.
The block clears the CRIT and PRTYPE parameters only if there are no outstanding output
alarms prior to the transition to Manual. In this case, it queues an ALARM_ACK message if the
UNACK parameter had been set prior to the transition.
When the compound is turned on or off, or when the block is switched from Auto to Manual, an
appropriate ALARM_ENA or ALARM_DSB message is sent to all alarm devices configured in
the block; if the Station Block is configured to do this.
If you turn off an existing alarm option by reconfiguring an alarm option parameter, an
ALARM_DSB message is issued when the block is restarted. If an alarm was active prior to the
reconfiguration, and no other alarms are now active, and INHOPT specifies auto-acknowledge,
the alarm is acknowledged, an ALARM_ACK is sent to all alarm devices configured in the block,
and CRIT and PRTYPE are cleared.
753
B0193AX – Rev AB 24. DPIDA Controller
754
24. DPIDA Controller B0193AX – Rev AB
The block validates the tuning block connections as it does during initialization (see “Validation
Checks” on page 753).
If the ECB52 connection is lost, the block sets ERCODE to INV_ECB, enters the undefined
state, and executes the shutdown logic.
The block updates the status of the critical parameters MEAS, MA, and BCALCO for the follow-
ing important status:
Status Condition
MEAS.OOS = 1 FBM communications failure
MEAS.BAD = 1 FBM communications failure or bad measurement
BCALCO.OOS = 1 FBM communications failure
BCALCO.BAD = 1 FBM communications failure or bad measurement
MA.OOS = 1 FBM communications failure
If REDOPT is configured for redundancy, the block sets the measurement status to bad only
when all measurements are bad. For more information on block Bad, Shutdown and Bad states,
refer to the appropriate Integrated Control Software Concepts document (B0700AG or B0193AW).
If the FBM transitions to the Failsafe state, the DPIDA block opens the upstream cascade by set-
ting the appropriate BCALCO status bits to true.
755
B0193AX – Rev AB 24. DPIDA Controller
NOTE
As the controller cycle time is reduced, the precision of the analog conversion is
reduced. See FLTOPT and FLTTIM below.
The FBM converts each analog input sample to a digital value and averages these values over a
sampling time window specified by CYCTIM (see Figure 24-9).
CYCTIM CYCTIM
FLTOPT = 0
Sampling Window Sampling Window FLTIM = 0 or CYCTIM
At the end of each window when FLTOPT = 0, this average is added to the average from the pre-
vious window to create a final raw measurement value. Thus, the analog conversion averaging is
performed over two sampling windows to provide anti-alias filtering.
At the end of each window when FLTOPT = 1, the digital samples are averaged over a single win-
dow, which provides less filtering.
FLTTIM = 0 sets the sampling window equal to the controller cycle time. This is the optimal set-
ting for almost all cases. FLTTIM ranges from 1 to the value of CYCTIM, and specifies the sam-
pling window in 5 ms increments. Setting FLTTIM less than CYCTIM provides less filtering.
The final averaged value is converted into a raw measurement. The precision of the raw converted
value ranges from 12 bits to 7 to 8 bits as follows:
12 bit precision when the total averaging time is 100 ms using the default settings,
that is, 50 ms sampling window and control cycle (CYCTIM = 0) with anti-alias fil-
tering (FLTTIM = 0 and FLTOPT = 0)
7 to 8 bit precision when the averaging time is 5 ms, that is, FLTTIM = 1 and
FLTOPT = 1.
756
24. DPIDA Controller B0193AX – Rev AB
If all configured measurements are Bad while in Auto, the controller goes to Hold and sets the
BAD parameter and MEAS.BAD status.
Measurement Redundancy
ECB52 Key Parameters: REDOPT
DPIDA Key Parameters: MEASn, SELRQ
Redundant measurement signals for the analog input channels are provided by configuring
REDOPT as follows:
0 = channel 1 (no redundancy)
1 = channels 1 and 2
2 = channels 1 to 3
The redundant measurement values are scaled as above and reported to the CP. The CP scales
them to range RI1 and then provides them as MEAS01, MEAS02, and MEAS03. Select status
(SELST) indicates which measurement (1, 2, or 3) is selected for algorithm use.
Measurement Selection
If redundant measurements are configured, the FBM selects the measurement as follows:
If there are three good measurements, the FBM uses the median signal.
If there are two good measurements, the FBM uses the signal closest to the setpoint.
If one or more measurements are bad, the FBM uses the good signal nearest to the
setpoint.
Measurement specified by the operator via the SELRQ option, if it is healthy.
Measurement Input Scaling
ECB52 Key Parameters: HMSCAL, LMSCAL
The FBM raw input counts are scaled for the range specified by HMSCAL and LMSCAL before
linearization or characterization. You configure the HMSCAL and LMSCAL parameters to the
physical output range of the measurement device. Table 24-10 shows HMSCAL and LMSCAL
values that are consistent with signal conditioning options for I/A Series analog input blocks, but
you can use any values that are consistent with the measurement device.
The scaled value is then normalized to 0 to 4000 counts before linearization or characterization.
The following equation shows the scaling and normalization calculation for a 4 to 20 mA input
signal:
4000
Normalized Counts = Raw Counts – LMSCAL ---------------------------------------------------------
HMSCAL – LMSCAL
HMSCAL and LMSCAL values range from 0 to 64000 counts. However, you must enter the
value into the data base as a 16-bit signed integer with the most significant bit (MSB) as the sign
757
B0193AX – Rev AB 24. DPIDA Controller
bit. Any value greater than 32767 requires that the sign bit be true (1), indicating a negative num-
ber. For counts of more than 32767, the value to enter is the count minus 65536.
For example, to get a count of 62000, enter -3536.
Entry
% Count Value (Integer) (Hexadecimal)
0 12800 12800 0x3200
25 25600 25600 0x6400
50 38400 -27136 0x9600
75 51200 -14336 0xC800
100 64000 -1536 0xFA00
758
24. DPIDA Controller B0193AX – Rev AB
HOSCAL and LOSCAL values range from 0 to 64000 counts. However, you must enter the val-
ues into the data base as a 16-bit signed integer with the most significant bit (MSB) as the sign
bit. Any value greater than 32767 requires that the sign bit be true (1), indicating a negative num-
ber. You can also enter the values in hexadecimal format. For more information on entering the
values, see “Measurement Processing” on page 756.
759
B0193AX – Rev AB 24. DPIDA Controller
25 – 0
Count Value = ------------------ 64000 – 12800 + 12800 = 25600
100 – 0
Fallback values range from 0 to 64000 counts. However, you must enter the value into the data
base as a 16-bit signed integer with the most significant bit (MSB) as the sign bit. Any value
greater than 32767 requires that the sign bit be true (1), indicating a negative number. You can
also enter the value in hexadecimal format. For more information on entering the value, see
“Measurement Processing” on page 756.
760
24. DPIDA Controller B0193AX – Rev AB
FBM17/FBM227
Analog Input 1 Measurement
Output
Analog Output 1
Local Operator’s Panel*
Auto
Digital Output 4
Manual
LED
Key
When PNLOPT is configured true, you can use a a local operator’s panel to switch the controller
algorithm in the FBM to Manual and then ramp the controller analog output. When PNLOPT is
true, the panel digital outputs are written to the required channels. Panel support requires specific
Failsafe behavior of digital outputs. These are set during initialization.
The user enables the panel by setting PNLOPT to true. If PNLOPT is configured false, the FBM
reads and reports only the field device fail input. If INVDFI is set true, the FBM inverts the
device fail input.
761
B0193AX – Rev AB 24. DPIDA Controller
If the panel is present, the FBM reads and processes the keys. The FBM monitors the A/M key for
transitions to detect A/M transfer requests. If the controller is switched to Manual by any means,
the FBM processes the ramp keys. While ramping is active, the FBM rejects write requests from
the CP to change the analog output.
For the up and down ramp keys, the initial ramp rate is one count per cycle (0.025%). If the key
is held down, the rate accelerates until a maximum rate of 8% per second is reached in about two
seconds.
CP Failure
The CP fail output is set to light an LED on the panel when the:
CP communications has timed out
Controller is not initialized for Auto control.
This LED indicates that the operator should use the panel to control the analog output. Opera-
tionally, it means that updated setpoints are not available for Auto control.
If the controller is not initialized, it is in Manual and the A/M toggle key is disabled.
If CP communication fails, the control algorithm is automatically switched to Manual if the Fail-
safe option is appropriately set.
FBM Failure
The FBM fail analog output (Channel 6) goes below zero volts which disables the panel keys and
lights a panel LED when the:
FBM is powered up
FBM is off-line
FBM watchdog timer times out
FBM software traps on a fault or error.
During normal operation of the controller software, this analog output is set to maximum voltage
(10.24 V dc).
The FBM17/FBM227 I/O channels assignments are listed in Table 24-14:
762
24. DPIDA Controller B0193AX – Rev AB
NOTE
Output ramping from the A/M Station is actually smooth, but the meter display
tends to overshoot during ramping and data entry.
763
B0193AX – Rev AB 24. DPIDA Controller
Adapter
CALC
MEAS
CP SPT
LOLIM
ECB Period = 0.5 s for all blocks PBAND
INT
OUT
FBM
MEAS PID Output
Algorithm
Cycle Time = 25 ms
FT PT PT
Recycle
Valve
Surge is an unstable operating condition that takes place in centrifugal or axial compressors when
the flow through the machine decreases below a critical value. This results in a sudden reversal in
flow, causing the discharge line pressure to drop. When discharge line pressure drops sufficiently,
flow through the compressor is reestablished. The cycle continues and appears as an oscillation of
flow through the compressor.
Surge damages a compressor – sometimes seriously. It may result in bent shafts, cracked housings,
or damaged bearings and impellers, sometimes accompanied by injury to personnel and damage
to buildings and associated process equipment.
764
24. DPIDA Controller B0193AX – Rev AB
The goal of an anti-surge control scheme is to calculate the surge point and the minimum safe
flow at the compressor inlet. The slope of the control line (see Figure 24-12) represents the setting
of the ratio between the inlet differential pressure and the pressure rise across the compressor.
Surge Line
Flow
In the anti-surge control scheme shown in Figure 24-11, two gauge pressure transmitters are used
to measure the suction and discharge pressures. The two pressures are subtracted in a MATH
(mathematics) block to determine the pressure rise across the machine. The pressure rise is soft-
ware-connected to a CHARC (characterizer) block. The output of the CHARC block is the surge
point. The surge point is software-connected to a RATIO block. The output of this block is the
control point, that is, the minimum flow through the compressor for a given pressure rise. The
ratio is set by the operator, and is normally provided with limits to prevent the operator from set-
ting a value which could result in a control point too close to the surge point.
The output of the RATIO block is connected to the remote setpoint RSP of a DPIDA block that
is configured for the PI control mode. This setpoint is fed to the control algorithm in the FBM.
The measurement is from the differential pressure across the compressor inlet orifice as measured
by the flow transmitter. The control output of the FBM is connected, through hardware, to the
recycle valve. This valve is closed when the derivative compensated measurement is less than the
setpoint, but it opens when the control line of Figure 24-11 is reached. The adapter CALC block
and DPIDA block perform asymmetric functions that allow the valve to open fast and limit the
closing rate of the valve.
The control blocks in the CP40 are all configured to run every 0.5 s. The control algorithm in the
FBM is configured to run every 25 ms.
765
B0193AX – Rev AB 24. DPIDA Controller
NOTE
This application example is not a complete control strategy for compressor surge
control. You must contact Invensys to design a complete control strategy for your
application.
NOTE
The above is not a complete list of required parameters and is not specific to a par-
ticular surge control application.
766
24. DPIDA Controller B0193AX – Rev AB
HMSCAL = 0xFA00
HOSCAL = 0xFA00
HWTYPE = 17
LMSCAL = 0x3200
LOSCAL = 0x3200
PERIOD = 1
SQRENB = 1
NOTE
The above is not a complete list of required parameters and is not specific to a par-
ticular surge control application.
767
B0193AX – Rev AB 24. DPIDA Controller
768
25. DSI – Display Station Interface
Block
This chapter covers the Display Station Interface Block, or DSI, its parameters and detailed
operations.
25.1 Overview
The Display Station Interface block, DSI, in conjunction with Equipment Control Block 14
(ECB14), provides the interface between each Panel Display Station and the compounds and
blocks that actualize the control strategy.
25.2 Parameters
Table 25-1. DSI Block Parameters
769
B0193AX – Rev AB 25. DSI – Display Station Interface Block
AM_SET Auto/Manual is a boolean set from the default display that specifies the
desired state of Auto/Manual:
0 = Manual
1 = Auto.
AM_STA Auto/Manual is a boolean input from a control strategy that specifies the
desired state of Auto/Manual:
0 = Manual
1 = Auto.
770
25. DSI – Display Station Interface Block B0193AX – Rev AB
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate the block’s opera-
tional states. For the DSI block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
BAD
ON
MA
LR
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
10 LR Local(= false)/Remote(= true) BLKSTA.B22
11 MA Manual(= false)/Auto(= true) BLKSTA.B21
12 BAD Bad I/O (I/O Blocks only - BLKSTA.B20
block in BAD state)
14 UDEF Undefined BLKSTA.B18
15 ON Compound On BLKSTA.B17
20 WLCK Workstation Lock BLKSTA.B12
COL_1 to COL_3
Column 1 to 3 is a real input from the control strategy to the to each of
the column indicators on the default display.
COL_1S to COL_3S
Column 1 to 3 is a real output set from the default display column indica-
tors.
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. In that case, no further processing of the block occurs. To return
DEFINE to a true value, correct all configuration errors and re-install the
block.
DELTI1 to DELTI3
Change Delta for Input Ranges 1 through 3 are a real values that define
the minimum percent of the input range that triggers change driven con-
nections for parameters in the range of RI1 through RI3. The default
value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
771
B0193AX – Rev AB 25. DSI – Display Station Interface Block
DEV_ID Device Identifier is a character array that specifies the 6-character letter-
bug identifier of the connected FBM or FBC. DEV_ID differs from
IOM_ID in that it is of character array rather than string type, and does
not allow the use of the ECB NAME parameter or ECB pathname in
specifying the connected FBM or FBC.
EI1 to EI3 Engineering Units for Input Ranges 1 through 3, defined by the parame-
ters HSCI1 to HSCI3, LSCI1 to LSCI3, and DELTI1 to DELTI3, pro-
vide the engineering units text for the values defined by Input Ranges 1
through 8. “Deg F” or “pH” are typical entries.
ERCODE Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the block’s
DEFINE parameter to be set false, but not the warning situations. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. The block detailed display shows the ERCODE
on the primary page, if it is not null. For the DSI block, the following list
specifies the possible values of ERCODE, and the significance of each
value in this block:
Message Value
“W43 – INVALID PERIOD/ PHASE does not exist for given block
PHASE COMBINATION” PERIOD, or block PERIOD not
compatible with compound
PERIOD.
“W44 – INVALID High range value is less than or equal
ENGINEERING RANGE” to low range value.
“W46 – INVALID INPUT The source parameter specified in the
CONNECTION” input connection cannot be found in
the source block, or the source
parameter is not connectable, or an
invalid boolean extension connection
has been configured.
“W48 – INVALID BLOCK The configured value of a block
OPTION” option is illegal.
“W53 – INVALID A parameter value is not in the accept-
PARAMETER VALUE” able range.
772
25. DSI – Display Station Interface Block B0193AX – Rev AB
Message Value
“W58 – INSTALL ERROR; A Database Installer error has
DELETE/UNDELETE occurred.
BLOCK”
HSCI1 to HSCI3 High Scale for Input Ranges 1 through 3 are real values that define the
upper limit of the measurement ranges. EI1 to EI3 define the units. Make
the range and units consistent with the measurement source. A typical
value is 100 (percent).
IOM_ID Fieldbus Module Identifier is a configurable string that specifies the FBM
or FBC to which the block is connected.
IOM_ID has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOM_ID configuration. In this case, the 1-12
character ECB block name is sufficient.
LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-char-
acter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.
LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are honored (subject to the usual access rules) only from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set false by any workstation at any time, whereupon a
new LOCKRQ is accepted, and a new ownership workstation identifier
written to LOCKID.
773
B0193AX – Rev AB 25. DSI – Display Station Interface Block
774
25. DSI – Display Station Interface Block B0193AX – Rev AB
LSCI1 to LSCI3 Low Scale for Input Ranges 1 through 3 are real values that define the
lower limit of the measurement ranges. A typical value is 0 (percent). EI1
to EI3 define the units. Make the range and units consistent with those of
the measurement source.
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)
Period Length Period Length
0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****
* If the BPC is 0.2 sec. this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec. this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec. this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec. this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40 and CP40B.
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).
775
B0193AX – Rev AB 25. DSI – Display Station Interface Block
RI1 to RI3 Range Input is an array of real values that specify the high and low engi-
neering scale and change delta of a particular real input. For a given block,
it also forms an association with a group of real input parameters that have
the same designated range and change delta.
TYPE When you enter “DSI” or select “DSI” from the block type list under
Show, an identifying integer is created specifying this block type.
776
25. DSI – Display Station Interface Block B0193AX – Rev AB
to/from
other CPs
PANEL DISPLAY PROCESSOR, CP30, CP40, or CP40B DISPLAY STATIONS
for DP1S01
DSI Block ECB14 DP1S01 DP1S23
up to 24 DSs
FIELDBUS
NODEBUS
for DP1S24
DSI Block ECB14
to/from
other CPs
Figure 25-3. DP10, CP30, CP40, or CP40B
The Display Processor, CP30, CP40 or CP40B is the control processor in this scheme and it over-
sees the Fieldbus.
The Display Station is equivalent to an FBM, and is occasionally referred to as hardware type 28.
The Station Health display, however, always shows the Display Station as DS (not FBM_28). The
DS uses software type 14 (which is ECB14).
The DSI block has four parameters that have a direct relation to the three column indicators and
the R/L indicator. These four parameters which enable the transfer of process data to the display
station are:
COL_1
COL_2
COL_3
LR_STA.
When the DSI block is processed, it converts the value it receives from the COL_1 source into
counts (an integer value between -16384 and 16383) based on the range defined by LSCI1 and
HSCI1. The resulting count value is then sent to the Display Station via the ECB14 block
assigned to that DS.
The DS uses the ECB14 parameters LRV1 and URV1 (lower range value and upper range value
for column 1) as well as parameter DECPL1 (decimal place for column 1) to convert the counts-
value to the representation on the column 1 display and the actual number shown in digits on the
Display Station.
In the same processing cycle the Display Station is checked on a change-driven basis for new ramp
values and a new L/R setting.
777
B0193AX – Rev AB 25. DSI – Display Station Interface Block
The ramp value for column 1 undergoes a conversion that is the reverse of the above, before it is
used in Object Manager setval call on the source of the COL_1 parameter.
The Display Station sends the new settings to the control strategy parameters. From there the
control blocks relay the settings back to the DSI block through the linkages. Finally, the DSI
sends the value back to the DS where the value is displayed.
Ramp values and R/L key changes are written to parameters LR, COL_1S, COL_2S, and
COL_3S either by the DS through Fieldbus handling or by another source through the Object
Manager and then communicated through one of the linkages from the parameter to be shown to
the corresponding COL_n or LR_STA parameter. These values are communicated in reverse
direction through the linkage by means of Object Manager setval-commands by the block algo-
rithm.
If the source parameter of the linkage cannot be set for some reason, for example, because it is the
sink of another linkage or it is an output parameter of a block that is in automatic mode, then this
condition is ignored and the parameter is not set.
It is possible to physically attach a Auto/Manual Station (AMS) to the Display Station. However,
the AMS is supported by a separate control block and an FBM22 that must be on a separate field-
bus. The absence or presence of the AMS and its peripheral components have no effect on the
DSI block.
778
26. DTIME – Dead Time
Compensator Block
This chapter covers the Dead Time Compensator Block, or DTIME, its features, parameters
and detailed operations.
26.1 Overview
The Dead Time Compensator block, DTIME, simulates the dynamic effects of pure delay, trans-
port lag, or distance-velocity lag, which are characteristic of energy or mass transportation in a
physical system.
Manual/Auto
Measurement Output
DTIME
Deadtime Block Status
BLOCK
Follow Data Collection Flag
Hold
Running Average Disable
26.2 Features
Features are:
Manual/Auto control of the outputs, which can be initiated by either a host process or
another block
True dynamic variable deadtime adjustment
Follow mode, in which the output tracks the measurement
Hold mode, in which the output remains unchanged.
Configurable bucket utilization
Use of the DTIME block for short-term data collection.
Options are:
PROPT, Error Propagation option.
DTOPT, Dead Time Option, disables the calculation of the running average in the
DTIME block’s input, and the linear interpolation in the block’s output.
NUMBKT, Number of Buckets, specifies the number of buckets for storing interme-
diate deadtime values.
779
B0193AX – Rev AB 26. DTIME – Dead Time Compensator Block
INITMA, Initialize Manual/Auto, specifies the desired state of the MA input during
initialization.
CEOPT, Control Error Option.
26.3 Parameters
Table 26-1. DTIME Block Parameters
780
26. DTIME – Dead Time Compensator Block B0193AX – Rev AB
BKT_1 to BKT_n Buckets 1 through n contain intermediate values calculated and stored by
the DTIME block algorithm. Bucket 1 is the oldest value, and Bucket n
the most recent value (calculated over the most recent shift time period),
where n is the value of NUMBKT.
BLKSTA Block Status is a 32-bit output, bit-mapped to indicate the block’s opera-
tional states. For the DTIME block, only the following bits are used:
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
HLD
FOL
ON
MA
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
4 FOL Follow BLKSTA.B28
7 HLD Holding BLKSTA.B25
11 MA Manual(= false)/Auto(= true) BLKSTA.B21
14 UDEF Undefined BLKSTA.B18
15 ON Compound On BLKSTA.B17
20 WLCK Workstation Lock BLKSTA.B12
781
B0193AX – Rev AB 26. DTIME – Dead Time Compensator Block
CEOPT Control Error Option is a short integer that specifies how the block
responds to the MEAS and BCALCI inputs when either of those inputs is
in error. To provide backward compatibility, CEOPT defaults to 1.
CEOPT has a range of 0 to 2 where:
0= The block takes no implicit Hold action when it detects a con-
trol error.
1= The block goes to the Hold state if, while MBADOP is false,
either MEAS or BCALCI: (a) has its BAD status bit set true; (b)
has its Out-of-Service status bit set true; (c) is experiencing
peer-to-peer path failure.
2= The block goes to the Hold state if, while MBADOP is false,
either MEAS or BCALCI meets any of the conditions described
for CEOPT = 1, or if MEAS has its ERROR status bit set true.
DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. In that case, no further processing of the block occurs. To return
DEFINE to a true value, correct all configuration errors and re-install the
block.
DELTI1 Change Delta for Input Range 1 is a real value that defines the minimum
percent of the input range that triggers change driven connections for
parameters in the range of RI1. The default value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.
DT Dead Time is the length of the delay, in minutes, before the measurement
appears at the output. You can configure this input as a constant or con-
nect it to a block to provide varying delay times, as long as the DT value
remains equal to or greater than the block period.
782
26. DTIME – Dead Time Compensator Block B0193AX – Rev AB
DTCYCL Dead Time Cycles is a real parameter representing the deadtime of the
block calculated in block cycles.
DTFLAG Deadtime Flag is incremented every shift time period in the DTIME
block.
DTOPT Dead Time Option disables the calculation of the running average in the
DTIME block’s input, and the linear interpolation in the block’s output.
ERCODE Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the block’s
DEFINE parameter to be set false, but not the warning situations. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. The block detailed display shows the ERCODE
on the primary page, if it is not null. For the DTIME block, the following
list specifies the possible values of ERCODE, and the significance of each
value in this block:
Message Value
“W43 – INVALID PERIOD/ PHASE does not exist for given block
PHASE COMBINATION” PERIOD, or block PERIOD not
compatible with compound PERIOD.
“W44 – INVALID High range value is less than or equal
ENGINEERING RANGE” to low range value.
“W46 – INVALID INPUT The source parameter specified in the
CONNECTION” input connection cannot be found in
the source block, or the source
parameter is not connectable, or an
invalid boolean extension connection
has been configured.
“W48 – INVALID BLOCK The configured value of a block option
OPTION” is illegal.
“W53 – INVALID A parameter value is not in the accept-
PARAMETER VALUE” able range.
“W58 – INSTALL ERROR; A Database Installer error has
DELETE/UNDELETE occurred.
BLOCK”
783
B0193AX – Rev AB 26. DTIME – Dead Time Compensator Block
FOLLOW Follow is a boolean input. When true, FOLLOW forces the block into the
Follow substate of Auto. In this substate, the output follows the input
MEAS.
HOLD Hold is a boolean input. When true, HOLD forces the block into the
Hold substate of Auto, holding the output at its last computed value.
HSCI1 High Scale for Input Range 1 is a real value that defines the upper limit of
the measurement ranges. EI1 defines the units. Make the range and units
consistent with the measurement source. A typical value is 100 (percent).
HSCO1 High Scale for Output Range 1 is a real value that defines the upper limit
of the ranges for Output 1. A typical value is 100 (percent). EO1 defines
the units. Make the range and units consistent with those of the output
destination.
INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state as specified in the checkpoint file.
The block asserts this initial M/A state whenever:
It is installed into the Control Processor database.
The Control Processor undergoes a reboot operation.
The compound in which it resides is turned on.
The INITMA parameter itself is modified via the control configu-
rator. (The block does not assert INITMA on ordinary
reconfiguration.)
INITMA is ignored if MA has an established linkage.
LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-char-
acter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.
LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are honored (subject to the usual access rules) only from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set false by any workstation at any time, whereupon a
new LOCKRQ is be accepted, and a new ownership workstation identifier
written to LOCKID.
784
26. DTIME – Dead Time Compensator Block B0193AX – Rev AB
LSCI1 Low Scale for Input Range 1 is a real value that defines the lower limit of
the measurement ranges. A typical value is 0 (percent). EI1 defines the
units. Make the range and units consistent with those of the measurement
source.
LSCO1 Low Scale for Output Range 1 is a real value that defines the lower limit of
the ranges for Output 1. A typical value is 0 (percent). EO1 defines the
units. Make the range and units consistent with those of the output desti-
nation.
MEAS Measurement is an input identifying the source of the block’s input, or the
controlled variable.
NUMBKT Number of Buckets specifies the number of buckets to be used for storing
intermediate deadtime values in a DTIME block.
OUT Output, in Auto mode, is the result of the block algorithm applied to one
or more input variables. In Manual, OUT is unsecured, and can be set by
you or by an external task.
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than gateways, PERIOD
785
B0193AX – Rev AB 26. DTIME – Dead Time Compensator Block
values range from 0 to 13 and map to the following period time lengths.
(Gateway blocks have different period values than shown here.)
Period Length Period Length
0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****
* If the BPC is 0.2 sec. this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec. this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec. this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
****If the BPC is not 2.0 sec. this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.
PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).
PROPT Propagate Error Option is a boolean input. When true, PROPT sets the
ERROR Status bit of the output parameter if the input to the MEAS
parameter is in error while the block is in Auto. The input to the MEAS
parameter is in error when:
Its BAD status bit is set true.
Its OOS (Out-of-Service) status bit is set true.
Its ERROR status bit is set true.
It is experiencing peer-to-peer path failure.
If a transition to Manual occurs while the ERROR status is true, it
remains true until either a set command is written to that output or until
the block transfers to Auto with the error condition returned to normal.
RI1 Range Input is an array of real values that specify the high and low engi-
neering scale and change delta of a particular real input. For a given block,
786
26. DTIME – Dead Time Compensator Block B0193AX – Rev AB
it also forms an association with a group of real input parameters that have
the same designated range and change delta.
RO1 Range Output is an array of real values that specify the high and low engi-
neering scale of a particular real output. For a given block, it also forms an
association with a group of real output parameters that have the same des-
ignated range.
TYPE When you enter “DTIME” or select “DTIME” from the block type list
under Show, an identifying integer is created specifying this block type.
787
B0193AX – Rev AB 26. DTIME – Dead Time Compensator Block
“newest” bucket, while the block output is updated each deadtime block execution with the value
from the “oldest” bucket.
When DTFLAG is used, the block can be used for short-term data collection. At each shift
period, DTFLAG is incremented to indicate that a new set of bucket data is available. If
DTFLAG is put into an open variables list, the incrementing of DTFLAG can be used to trigger
GETVAL calls to retrieve the bucket parameters BKT_1 through BKT_10.
Bucket Brigade
st MEAS
1 (k * st) bk bk bk bk
MEAS (t) dt ***
st (n) (n-1) (2) (1)
MEAS (t)
0 st st st st
* * * *
DT
* st = shift time
Output
Interpolation
Filter
FOLLOW
MA
788
26. DTIME – Dead Time Compensator Block B0193AX – Rev AB
A transition from Manual-to-Auto forces all deadtime dynamics to vanish so that the measure-
ment immediately appears at the output and the signal begins the delay at the moment of transi-
tion. This action is also taken for a transition of Follow and Hold from On to Off.
The transition from Auto-to-Manual releases the block output, which retains the last value prior
to the transition. While the block is in Manual mode, an operator can make changes to the out-
put (via Object Manager SET commands) by ramping the output at the faceplate or by making a
Direct Data Entry.
789
B0193AX – Rev AB 26. DTIME – Dead Time Compensator Block
790