B0193ax1 N (Function Block)
B0193ax1 N (Function Block)
REV N
I/A Series®
Integrated Control
Block Descriptions
Volume 1 of 3, ACCUM – DTIME
October 4, 2002
Foxboro, I/A Series, and EXACT are trademarks of Invensys Systems, Inc.
Invensys is a trademark of Invensys plc.
Modicon is a trademark of AEG Schneider Automation, Inc.
PLC is a trademark of Allen-Bradley Company.
All other brand names may be trademarks of their respective companies.
Volume 2 of 3
ECB through MOVLV
24. Equipment Control Blocks.............................................................................................. 637
25. Primary ECB (ECBP or ECB11) .................................................................................... 643
26. ECB1 – Analog Input ..................................................................................................... 649
27. ECB2 – Analog Input and Analog Output...................................................................... 657
28. ECB4 – Pulse In and Analog Output .............................................................................. 665
29. ECB5 – Digital In, Sustained/Momentary, and Digital Out ........................................... 673
iii
B0193AX – Rev N Volume Set Information
iv
Volume Set Information B0193AX – Rev N
Volume 3 of 3
MSG through VLV
80. MSG – Message Generator Block.................................................................................. 1373
81. MTR – Motor Control Block ....................................................................................... 1381
82. MVC – Multivariable Controller Block ........................................................................ 1403
83. MVL – Multivariable Loop Block ................................................................................. 1421
84. OUTSEL – Output Select Block................................................................................... 1451
85. PACK – Packed Long Integer Variable Block................................................................ 1461
86. PAKIN – Packed Input Block ....................................................................................... 1463
87. PAKOUT – Packed Output Block................................................................................ 1473
88. PATALM – Pattern Alarm Block .................................................................................. 1487
89. PATT – Pattern Block .................................................................................................. 1499
90. PID – Proportional Integral Derivative Block ............................................................... 1517
91. PIDA – Advanced PID Block........................................................................................ 1549
92. PIDE – PID With EXACT Block ................................................................................. 1617
93. PIDX – PID Extended Block ........................................................................................ 1655
94. PIDXE – PID Extended with EXACT Block ................................................................ 1689
95. PLB – Programmable Logic Block................................................................................. 1729
96. PLSOUT – Pulse Output Block.................................................................................... 1745
97. PTC – Proportional Time Controller Block.................................................................. 1761
98. RAMP – Ramp Block ................................................................................................... 1791
99. RATIO – Ratio Block ................................................................................................... 1803
100. REAL – Real Variable Block ....................................................................................... 1829
101. REALM – Real Alarm Block ....................................................................................... 1833
102. RIN - Real Input Block............................................................................................... 1857
v
B0193AX – Rev N Volume Set Information
vi
Contents
Figures............................................................................................................................ xix
Tables........................................................................................................................... xxiii
Preface........................................................................................................................... xxv
vii
B0193AX – Rev N Contents
viii
Contents B0193AX – Rev N
ix
B0193AX – Rev N Contents
x
Contents B0193AX – Rev N
xi
B0193AX – Rev N Contents
xii
Contents B0193AX – Rev N
xiii
B0193AX – Rev N Contents
xiv
Contents B0193AX – Rev N
xv
B0193AX – Rev N Contents
xvi
Contents B0193AX – Rev N
xvii
B0193AX – Rev N Contents
xviii
Figures
1-1. ACCUM Block Diagram ............................................................................................ 1
1-2. ACCUM Block Operational Diagram ...................................................................... 15
1-3. ACCUM Block Algorithm ........................................................................................ 16
1-4. ACCUM Pulse Rate per Block Period ...................................................................... 16
1-5. ACCUM Pulse Count per Block Period ................................................................... 16
1-6. ACCUM Pulse Rate per Minute ............................................................................... 17
1-7. ACCUM Pulse Count per Minute ............................................................................ 17
1-8. ACCUM CARRY Function ..................................................................................... 19
1-9. ACCUM SET, CLEAR, and HOLD Functionality .................................................. 20
1-10. ACCUM Block Alarming ......................................................................................... 21
1-11. Typical ACCUM Block Application ......................................................................... 21
2-1. AIN Block Diagram .................................................................................................. 23
2-2. AIN Block Operational Diagram .............................................................................. 41
2-3. General Analog Input Example ................................................................................. 42
2-4. Thermocouple Input Example .................................................................................. 45
2-5. RTD Input Example ................................................................................................. 47
2-6. Pulse Rate Input Example ......................................................................................... 48
2-7. Intelligent Field Device Input Example .................................................................... 50
2-8. Typical Configuration for Intelligent Transmitters with Window ECB .................... 53
2-9. Clamping .................................................................................................................. 56
2-10. First-Order Lag Filtering .......................................................................................... 57
2-11. Butterworth Filtering ................................................................................................ 58
2-12. Last Good Value ....................................................................................................... 61
2-13. Typical AIN Block Application ................................................................................ 63
3-1. AINR Block Diagram ............................................................................................... 71
3-2. AINR Block Operational Diagram ........................................................................... 90
3-3. General Analog Input Example ................................................................................. 91
3-4. Thermocouple Input Example .................................................................................. 94
3-5. RTD Input Example ................................................................................................. 97
3-6. Pulse Rate Input Example ......................................................................................... 98
3-7. Intelligent Field Device Input Example .................................................................. 100
3-8. Clamping ................................................................................................................ 103
3-9. First-Order Lag Filtering ........................................................................................ 104
3-10. Butterworth Filtering .............................................................................................. 105
3-11. Last Good Value ..................................................................................................... 108
3-12. Typical AINR Block Application ............................................................................ 110
4-1. ALMPRI Block I/O Diagram ................................................................................. 119
4-2. ALMPRI, Detailed Block Diagram ......................................................................... 124
4-3. Example ALMPRI Block Connections .................................................................... 125
5-1. AOUT Block Diagram ........................................................................................... 127
5-2. AOUT Block Operational Diagram ........................................................................ 145
5-3. Reset Balance Action .............................................................................................. 150
5-4. Typical Configuration for Intelligent Transmitters with Window ECB .................. 155
5-5. Typical AOUT Block Application .......................................................................... 161
xix
B0193AX – Rev N Figures
xx
Figures B0193AX – Rev N
xxi
B0193AX – Rev N Figures
xxii
Tables
1-1. ACCUM Block Parameters ......................................................................................... 3
2-1. AIN Block Parameters .............................................................................................. 25
2-2. Alarm Nomenclature ................................................................................................ 62
3-1. AINR Block Parameters ............................................................................................ 73
3-2. Alarm Nomenclature .............................................................................................. 109
4-1. ALMPRI Block Parameters ..................................................................................... 119
5-1. AOUT Block Parameters ........................................................................................ 129
5-2. AOUT Block Destinations ..................................................................................... 148
5-3. AOUT Block Alarm Nomenclature ........................................................................ 160
6-1. AOUTR Block Parameters ..................................................................................... 166
6-2. AOUTR Block Destinations ................................................................................... 184
6-3. AOUT Block Alarm Nomenclature ........................................................................ 195
7-1. BIAS Block Parameters ........................................................................................... 199
8-1. BIN Block Parameters ............................................................................................ 222
9-1. BINR Block Parameters .......................................................................................... 234
10-1. BLNALM Block Parameters ................................................................................... 250
10-2. INHALM Values .................................................................................................... 257
11-1. BOOL Block Parameters ........................................................................................ 260
12-1. BOUT Block Parameters ........................................................................................ 265
13-1. CALC Block Parameters ......................................................................................... 282
13-2. CALC Block Instruction Summary ......................................................................... 294
13-3. Truth Table for FF Instruction ............................................................................... 333
13-4. Truth Table for MRS Instruction ........................................................................... 334
14-1. Block Comparison .................................................................................................. 343
14-2. CALCA Block Parameters ....................................................................................... 345
14-3. Arithmetic Instructions ........................................................................................... 352
14-4. Boolean Instructions ............................................................................................... 353
14-5. Input/Output Reference Instructions ...................................................................... 354
14-6. Cascade and Propagation Instructions .................................................................... 355
14-7. Memory and Stack Reference Instructions .............................................................. 355
14-8. Program Control Instructions ................................................................................. 355
14-9. Clear/Set Instructions ............................................................................................. 356
14-10. Timing Instructions ................................................................................................ 356
14-11. Logic Instructions ................................................................................................... 357
14-12. Error Control Instructions ...................................................................................... 357
14-13. Truth Table for FF Instruction ............................................................................... 375
14-14. Truth Table for MRS Instruction ........................................................................... 385
14-15. PERROR Syntax Error Codes ................................................................................ 410
14-16. PERROR Run-time Error Codes ............................................................................ 410
15-1. CHARC Block Parameters ..................................................................................... 418
16-1. CIN Block Parameters ............................................................................................ 434
16-2. Alarm Nomenclature .............................................................................................. 450
17-1. Compound Parameters ........................................................................................... 460
18-1. COUT Block Parameters ........................................................................................ 467
xxiii
B0193AX – Rev N Tables
xxiv
Preface
This document, Integrated Control Block Descriptions, provides an operational description of
IA Series blocks, equipment control blocks (ECBs) and window equipment control blocks (win-
dow ECBs) used in the IA Series system.
You use this document to gain a basic knowledge of the operation of each IA Series Control block.
Using this knowledge, you can determine the correct block to apply to your control scheme. You
configure your control scheme using ICC. While configuring your control scheme, 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 system.
Refer to the Integrated Control Software Concepts (B0193AW) document.
This document, provides reference information for using control blocks, equipment control
blocks (ECBs) and window equipment control blocks (window ECBs).
Audience
This book is intended for experienced process application engineers and application
programmers.
Contents
The document is divided into sections. Each section describes one IA 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 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 description of block operation.
Revision Information
For Release 6.5, the following changes were made to the document:
Chapter 8 “BIN - Binary Input Block”
♦ Revised “PNT_NO” on page 226 to include Modbus (FBM224) information.
Chapter 9 “BINR - Redundant Binary Input Block”
♦ Revised “BIN_1” on page 235 through “BI3_PT” on page 236 to include Modbus
(FBM224) information.
xxv
B0193AX – Rev N Preface
Related Documentation
Refer to the following documents for additional information:
♦ Integrated Control Configurator (B0193AV)
♦ Integrated Control Software Concepts (B0193AW)
♦ Supervisory Set Point Control (B0193RY)
♦ Fieldbus Cluster I/O User’s Guide (B0193RB)
♦ Enhanced PLC Block Descriptions (B0193YQ)
♦ FOUNDATION fieldbus H1 Interface Module (FBM220/221) User Guide (B0400FD)
♦ I/A Series® PROFIBUS-DPTM Communication Interface Module (FBM223) User’s
Guide (B0400FE)
♦ I/A Series® HARTTM Communication Interface Module (FBM214/215/216/218) User’s
Guide (B0400FF)
♦ I/A Series® Modbus® Communication Interface Module (FBM224) User’s Guide
(B0400FK)
xxvi
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
Alarming Alarm
Indication
Figure 1-1. ACCUM Block Diagram
1
B0193AX – Rev N 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 20).
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 N
1.4 Parameters
Table 1-1. ACCUM Block Parameters
3
B0193AX – Rev N 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 N
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* Configured Alarm Option boolean Connection
(0 to 31) When True (B32 to B1)
0 (Least Alarm Group 8 in Use ALMOPT.B32
Significant)
1 Alarm Group 7 in Use ALMOPT.B31
7 Alarm Group 1 in Use ALMOPT.B25
17 High Absolute Alarm Con- ALMOPT.B15
figured
25 High-High Absolute Alarm ALMOPT.B7
Configured
* Bit 0 is the least significant bit (starting from the right).
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
B13
B14
B15
B16
B1
UNAK B2
B3
B4
B5
B6
B7
B8
B9
CRIT PRTYPE
HMA
HHA
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
17 HMA High Absolute Alarm ALMSTA.B15
25 HHA High-High Absolute ALMSTA.B7
Alarm
29 INH Alarm inhibit ALMSTA.B3
5
B0193AX – Rev N 1. ACCUM – Accumulator Block
boolean
Bit Number Connection
(0 to 31)* Name Description When True (B32 to B1)
30 UNAK Unacknowledged ALMSTA.B2
* Bit 0 is the least significant bit (starting from the right).
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
MA
ON
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 bit (starting from the right).
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.
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:
6
1. ACCUM – Accumulator Block B0193AX – Rev N
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.
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 N 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.
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
8
1. ACCUM – Accumulator Block B0193AX – Rev N
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 N 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
B13
B14
HMA B15
B16
B1
B2
B3
B4
B5
B6
HHA B7
B8
B9
Bit boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
17 HMA High Absolute Alarm Inhib- INHSTA.B15
ited
25 HHA High-High Absolute Alarm INHSTA.B7
Inhibited
10
1. ACCUM – Accumulator Block B0193AX – Rev N
INITCL Initialize Clear is a boolean input. When true (1), it clears the accumula-
tion in an ACCUM block when the block initializes. When false (0), it
retains the current accumulated value on block initialization.
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-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 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, where upon 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 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.
11
B0193AX – Rev N 1. ACCUM – Accumulator Block
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.
For example, if the period is 0.5 seconds and the flow rate is 240 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).
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.
12
1. ACCUM – Accumulator Block B0193AX – Rev N
tical to the value in the set request. Otherwise the request is rejected with a
LOCKED_ACCESS error. Owner can be cleared by any application by
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.
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
* 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. See Integrated Control Software Concepts
(B0193AW) document.
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.
13
B0193AX – Rev N 1. ACCUM – Accumulator Block
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
3 = Controlling (not open loop)
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.
14
1. ACCUM – Accumulator Block B0193AX – Rev N
1.5 Functions
This section describes the functions in the ACCUM block.
LSCI LSCO
HOLD HOLD
SET AND High Scale
Target Detector CARRY
CLEAR
SET SET
CLEAR AND
CLEAR
HOLD
CEOPT = 1 or 2 OR
AND
MEAS Error Bit
15
B0193AX – Rev N 1. ACCUM – Accumulator Block
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:
16
1. ACCUM – Accumulator Block B0193AX – Rev N
MTRFAC
PERTIM
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.
17
B0193AX – Rev N 1. ACCUM – Accumulator Block
The time conversion factor is used to convert the input MEAS to the time format compatible
with the block period time. An example of a time conversion factor is 1 min/60secs, which would
convert an input MEAS expressed in units/minute into units/second.
In the Second instance, the Meter Factor can be used to adjust the engineering units of input
MEAS to match those required by OUT. This introduces a different factor into the first equation,
the engineering unit conversion factor (EU_Conv) and the equation becomes:
MTRFAC = Period * EU_Conv
where: EU_Conv equals the units of the output/units of the input MEAS
The EU_Conv factor is a proportional relationship between the output units and the input
MEAS units.
In the third instance, both factors are required to format the input MEAS and the meter factor
equation becomes:
MTRFAC = Period * Time_conv * EU_conv
NOTE
Both the Time_Conv and the EU_Conv factor must be derived by the customer
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.
18
1. ACCUM – Accumulator Block B0193AX – Rev N
CARRY Produced
Value Added to
HSCO1 Accumulator
ACCUM
Value
Block Time
Period
Figure 1-8. ACCUM CARRY Function
19
B0193AX – Rev N 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.
20
1. ACCUM – Accumulator Block B0193AX – Rev N
Both pre-target and target alarm types function through the use of a deadband. Once the output
value passes back through the deadband range, the alarm indication (HAIND or HHAIND) is
reset. Figure 1-10 graphically represents the alarming operation.
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.
PNT_No PNT_No
21
B0193AX – Rev N 1. ACCUM – Accumulator Block
22
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 Low Out-
Root output Processing
Identifier 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)
23
B0193AX – Rev N 2. AIN – Analog Input Block
Each execution cycle, the FBM or FBC transmits the values to its associated ECB in the Control
Processor, and the AIN block reads its operational status, the channel status, and the input data
from the ECB for the specified point.
After validation, the AIN block converts the channel’s raw data to a floating point number in
engineering units, according to the configured Signal Conditioning Index, the High and Low
Scale of the engineering units range, and any specified units conversion or filtering option. This
output is presented to the control strategy as Point (PNT). The original value as present in the
ECB is preserved and made available as output Raw Count (RAWC).
The sequence of signal processing actions is, in the order of application: Signal Conditioning or
Characterization, Scaling for Unit Conversion, Clamping, and Filtering.
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.
24
2. AIN – Analog Input Block B0193AX – Rev N
2.4 Parameters
Table 2-1. AIN Block Parameters
25
B0193AX – Rev N 2. AIN – Analog Input Block
26
2. AIN – Analog Input Block B0193AX – Rev N
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
27
B0193AX – Rev N 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
B4
B5
B6
B7
B8
B9
CRIT PRTYPE
OOR
HMA
HHA
LMA
BAD
LLA
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- ---
Significant) ter PRTYPE for values 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 Alarm ALMSTA.B7
28 OOR Out-of-Range Alarm ALMSTA.B4
29 INH Inhibit Alarm ALMSTA.B3
30 UNAK Unacknowledged ALMSTA.B2
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:
0 = Bad Status only
1 = Bad Status or Low Out-of-Range (LOR)
2 = Bad Status or High Out-of-Range (HOR)
3 = Bad Status or LOR or HOR.
28
2. AIN – Analog Input Block B0193AX – Rev N
The default value is 3. Bad Status is a Logical OR of bad ECB status (that
is, the FBM or FBC itself is bad) and bad channel status (that is, the con-
nected point is bad). If there is no FBM or FBC connection, then Bad Sta-
tus is considered to exist when MEAS 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:
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 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
29
B0193AX – Rev N 2. AIN – Analog Input Block
Boolean
Bit Number* Connection
(0 to 31) Name Description When True (B32 to B1)
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.
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
30
2. AIN – Analog Input Block B0193AX – Rev N
ERCODE Value
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.
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
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 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.
31
B0193AX – Rev N 2. AIN – Analog Input Block
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:
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
32
2. AIN – Analog Input Block B0193AX – Rev N
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.
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.
33
B0193AX – Rev N 2. AIN – Analog 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 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
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.
34
2. AIN – Analog Input Block B0193AX – Rev N
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 string that specifies the FBM or FBC to
which the block is connected. IOM_ID can be either:
♦ The 6-character letterbug of the FBM or FBC. The ECB must
reside in the local compound <cp_letterbug>_ECB where
cp_letterbug is the station letterbug of the CP). For IFD inputs,
this is the letterbug of the parent FBM (18, 43, 39, 44, 46, 243, or
246), not the connected transmitter.
♦ The full pathname of the ECB. The ECB must be local but can
reside in any compound. The pathname must be of the form:
<local_compound_name>:<ecb_name>,
where <ecb_name> is the NAME parameter of the ECB. In the
case of IFD inputs, the NAME parameter of the parent ECB (12,
23, or 38R), not the child ECB18, 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 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.
35
B0193AX – Rev N 2. AIN – Analog Input Block
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-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 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.
36
2. AIN – Analog Input Block B0193AX – Rev N
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.
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
37
B0193AX – Rev N 2. AIN – Analog Input Block
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.
***** Available in CP40, CP40B, and CP60.
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. See Integrated Control Software Concepts
(B0193AW) document.
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
38
2. AIN – Analog Input Block B0193AX – Rev N
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-
Range, High-High Absolute, Low-Low Absolute, High Absolute and 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.
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.
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”
39
B0193AX – Rev N 2. AIN – Analog Input Block
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)
ZERROP = 1 do not set PNT.ERR when out of range
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.
40
2. AIN – Analog Input Block B0193AX – Rev N
2.5 Functions
2.5.1 Detailed Diagram
BAD
ECB Status
BADOPT PNT.BAD
Channel BLKSTA.BAD
Status
AUTO
BAD
MANUAL OR Alarming
AND AND
MANALM BAO
See individual diagrams
Figure 2-2. AIN Block Operational Diagram
41
B0193AX – Rev N 2. AIN – Analog Input Block
Engineering
INPUT FROM FBM 01 (General Analog Input)
Units LASTGV
RAWC
BAD
HSCO1
OSV FLOP MA
SCI = 0-7, 9-10 FTIM (M)
Input = Raw Counts KSCALE BSCALE LSCO1 o
Linearization PNT
HOR/LOR Clamping Filtering o o
2.5.2.1 X + (A)
2.5.4 2.5.5
hor, lor output ABSOLUTE
units hor, lor Alarming
Channel Status 2.7
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:
42
2. AIN – Analog Input Block B0193AX – Rev N
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, 9 to 10, or 12 to 13 as follows:
43
B0193AX – Rev N 2. AIN – Analog Input Block
44
2. AIN – Analog Input Block B0193AX – Rev N
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
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:
45
B0193AX – Rev N 2. AIN – Analog Input Block
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 63. 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 63.)
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.
♦ 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.
46
2. AIN – Analog Input Block B0193AX – Rev N
SCI = 40-44
Input = Raw Counts KSCALE BSCALE
oC oF
Linearization
2.5.2.3 X +
hor,lor
Channel Status
FBM Status
47
B0193AX – Rev N 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
48
2. AIN – Analog Input Block B0193AX – Rev N
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 63.
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.
49
B0193AX – Rev N 2. AIN – Analog Input Block
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:
50
2. AIN – Analog Input Block B0193AX – Rev N
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.
51
B0193AX – Rev N 2. AIN – Analog Input Block
52
2. AIN – Analog Input Block B0193AX – Rev N
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
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.
53
B0193AX – Rev N 2. AIN – Analog Input Block
54
2. AIN – Analog Input Block B0193AX – Rev N
You will generally find scaling useful only when applying thermocouple or RTD signal
conditioning.
You do not ordinarily need to use scaling when linear/square root signal conditioning is applied,
since that already involves conversion into the final output units. (See Section 2.5.2.1and
“Appendix A – Signal Conditioning Tables” on page 63.)
Similarly, if you use special thermocouple signal conditioning or characterization, you can define
the piecewise linear segments so as to accomplish final output unit conversion.
Pulse rate inputs should be converted into final output units by proper calculation of MTRF (see
Section 2.5.2.4).
Inputs from Intelligent Field Devices are usually in final output units when received from the
devices themselves (see Section 2.5.2.6).
Pulse count inputs may not be scaled (see Section 2.5.2.5).
To ignore the scaling function, leave KSCALE at the default value of 1 and leave BSCALE at the
default value of 0.
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:
Scaled Value = Low Clamp Value
Parameter Low Out-of-Range (LOR) is set true
If BADOPT so specifies, parameter Bad (BAD) is also set true.
If Scaled Value ≥ High Clamp Value then:
Scaled Value = High Clamp Value
Parameter High Out-of-Range (HOR) is set true.
If BADOPT so specifies, parameter Bad (BAD) is also set true.
Based on BADOPT, LASTGV, IOMOPT, and the SCI in use, the value is either used or ignored,
as described in Section 2.6.
Parameter OSV (Output Span Variance) is provided to keep signals that are fluctuating right at
the high or low end of the range from continually setting and resetting the HOR or LOR condi-
tion. There is not a traditional deadband effect however, since signals oscillating near the high or
low clamp value generate repeated HOR or LOR conditions.
The effect of clamping is shown in Figure 2-9.
55
B0193AX – Rev N 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.
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. (See
the section “Fieldbus Integration Time” in Chapter 12 of Integrated Control Software Concepts
(B0193AW).
56
2. AIN – Analog Input Block B0193AX – Rev N
OUTPUT
INPUT STEP
63% 100%
FTIM
57
B0193AX – Rev N 2. AIN – Analog Input Block
INPUT STEP
OUTPUT
FTIM
58
2. AIN – Analog Input Block B0193AX – Rev N
59
B0193AX – Rev N 2. AIN – Analog Input Block
60
2. AIN – Analog Input Block B0193AX – Rev N
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)
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 Integrated
Control Software Concepts (B0193AW) manual.
61
B0193AX – Rev N 2. AIN – 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 AIN block is as fol-
lows:
62
2. AIN – Analog Input Block B0193AX – Rev N
ECB 1
PNT_NO
AIN
PNT
MEAS
PID
FBM 203
or
OUT FBM 03
MEAS
AOUT
OUT
TT
63
B0193AX – Rev N 2. AIN – Analog Input Block
64
2. AIN – Analog Input Block B0193AX – Rev N
65
B0193AX – Rev N 2. AIN – Analog Input Block
66
2. AIN – Analog Input Block B0193AX – Rev N
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
29 I
30 I
31 I
32
67
B0193AX – Rev N 2. AIN – Analog Input Block
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
24 I
25
26
27
28
29
30
31
68
2. AIN – Analog Input Block B0193AX – Rev N
Hardware
Type 1 2 3 4 5 6 17 18 22 23 33 36 37 38 39 43 44 46
Point
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
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
69
B0193AX – Rev N 2. AIN – Analog Input Block
Hardware
Type 57 58 59 61 63 95
Point
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.
70
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)
71
B0193AX – Rev N 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
72
3. AINR – Redundant Analog Input Block B0193AX – Rev N
3.4 Parameters
Table 3-1. AINR Block Parameters
73
B0193AX – Rev N 3. AINR – Redundant Analog Input Block
74
3. AINR – Redundant Analog Input Block B0193AX – Rev N
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
Boolean
Bit Number* Configured Alarm Option Connection
(0 to 31) When True (B32 to B1)
0 (Least Alarm Group 8 in Use ALMOPT.B32
Significant)
1 Alarm Group 7 in Use ALMOPT.B31
7 Alarm Group 1 in Use ALMOPT.B25
75
B0193AX – Rev N 3. AINR – Redundant Analog Input Block
Boolean
Bit Number* Configured Alarm Option Connection
(0 to 31) When True (B32 to B1)
16 Low Absolute Alarm Configured ALMOPT.B16
17 High Absolute Alarm ALMOPT.B15
Configured
22 Bad I/O Alarm Configured ALMOPT.B10
24 Low-Low Absolute Alarm ALMOPT.B8
Configured
25 High-High Absolute Alarm ALMOPT.B7
Configured
28 Out-of-Range Alarm Configured ALMOPT.B4
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
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
25 HHA High-High Absolute Alarm ALMSTA.B7
28 OOR Out-of-Range Alarm ALMSTA.B4
30 UNAK Unacknowledged ALMSTA.B2
76
3. AINR – Redundant Analog Input Block B0193AX – Rev N
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 only
1 = Bad Status or Low Out-of-Range
2 = Bad Status or High Out-of-Range
3 = Bad Status or either Low or High Out-of-Range
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:
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).
77
B0193AX – Rev N 3. AINR – Redundant Analog Input Block
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
DEV
BAD
SEL
MA
ON
Boolean
Bit Number* Connection
(0 to 31) Name Description When True (B32 to B1)
0 SEL Redundant Input Selected BLKSTA.B32
(Primary Input Selected
when False)
1 BADR Bad Secondary I/O BLKSTA.B31
2 DEV Primary/Secondary Devia- BLKSTA.B30
tion Limit Exceeded
8 FBM Primary FBM or FBC BLKSTA.B24
Failure
9 FBMR Secondary FBM or FBC BLKSTA.B23
Failure
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
78
3. AINR – Redundant Analog Input Block B0193AX – Rev N
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.
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
79
B0193AX – Rev N 3. AINR – Redundant Analog Input Block
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
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.
80
3. AINR – Redundant Analog Input Block B0193AX – Rev N
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).
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
81
B0193AX – Rev N 3. AINR – Redundant Analog Input Block
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
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 dis-
able 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, auto-
matically 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, auto-
matically acknowledge “return-to-normal” messages. “Into alarm”
messages may be acknowledged by explicitly setting UNACK false.
82
3. AINR – Redundant Analog Input Block B0193AX – Rev N
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
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.
IOMIDR Redundant Fieldbus Module Identifier is a string that specifies the second-
ary FBM or FBC to which the block is connected. IOMIDR is entered
with the same format choices as IOM_ID.
83
B0193AX – Rev N 3. AINR – Redundant Analog Input Block
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 string that specifies the primary FBM or
FBC to which the block is connected. IOM_ID can be either:
♦ The 6-character letterbug of the FBM or FBC. The ECB must
reside in the local compound <cp_letterbug>_ECB where
cp_letterbug is the station letterbug of the CP.) For IFD inputs,
this is the letterbug of the primary parent FBM (18, 43, 39, 44, or
46), not the connected transmitter.
♦ The full pathname of the ECB. The ECB must be local but can
reside in any compound. The pathname must be of the form
<local_compound_name>:<ecb_name>, where <ecb_name> is the
NAME parameter of the ECB. In the case of IFD inputs, the
NAME 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.
84
3. AINR – Redundant Analog Input Block B0193AX – Rev N
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 LLA-
LIM 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-char-
acter letterbug of the workstation and DEVNAME is the 1-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 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.
85
B0193AX – Rev N 3. AINR – Redundant Analog Input Block
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.
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.
86
3. AINR – Redundant Analog Input Block B0193AX – Rev N
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, and CP60.
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. See the Integrated Control Software Concepts
(B0193AW) document.
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
87
B0193AX – Rev N 3. AINR – Redundant Analog Input Block
(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
♦ OOS status bit in the selected input
♦ Error status bit in the selected input
♦ Any value in the OM field of the selected 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.
With no FBM or FBC configured, the AINR block reports the value and
status of the selected point in the MEAS parameter.
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.
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.
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.
88
3. AINR – Redundant Analog Input Block B0193AX – Rev N
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.
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)
89
B0193AX – Rev N 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
90
3. AINR – Redundant Analog Input Block B0193AX – Rev N
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:
91
B0193AX – Rev N 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.
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:
92
3. AINR – Redundant Analog Input Block B0193AX – Rev N
93
B0193AX – Rev N 3. AINR – Redundant Analog Input Block
(the raw low for this SCI-OSV/100.0) * (the input span of this SCI)
for the primary or secondary input (or both) then Low Out-of-Range (LOR) is set. Based on
BADOPT and LASTGV, the value is either used or ignored, as described in Section 3.6.
The raw value is then converted according to the SCI definitions in “Appendix A – Signal Condi-
tioning Tables” on page 110.
Characterizer Signal Conversion
Key Parameters: EXTBLK, EXTOPT
If EXTBLK is linked to a CHARC block whose EXTOPT parameter is not set to 2, then this is a
characterizer signal conversion.
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 filter for
that input side (primary or secondary) is re-initialized when Filter Option (FLOP) is non-zero.
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
The following FBMs or FBCs and point numbers provide thermocouple inputs:
94
3. AINR – Redundant Analog Input Block B0193AX – Rev N
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 110. HSCO1 and LSCO1 are only used to
specify what portion of the range is to be used for display purposes.
Thermocouple Signal Conversion
Key Parameters: IOM_ID, IOMIDR, PNT_NO, SCI, XREFOP, XREFIN, KSCALE, BSCALE
(The details of thermocouple signal conversions are listed in “Appendix A – Signal Conditioning
Tables” on page 110.)
Cold junction compensation is now computed:
95
B0193AX – Rev N 3. AINR – Redundant Analog Input Block
♦ 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 3.6
occurs.
♦ However, if the External Reference Option (XREFOP) is true or if IOMOPT indi-
cates that there are no FBMs or FBCs connected, the external reference in the
External Reference Input (XREFIN) is used. This must already be in degrees Celsius.
♦ 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 3.6 occurs.
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 110. 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 3.6 occurs.
96
3. AINR – Redundant Analog Input Block B0193AX – Rev N
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
97
B0193AX – Rev N 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
98
3. AINR – Redundant Analog Input Block B0193AX – Rev N
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 110.
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.
99
B0193AX – Rev N 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.
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
100
3. AINR – Redundant Analog Input Block B0193AX – Rev N
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.
101
B0193AX – Rev N 3. AINR – Redundant Analog Input Block
The measurements in the ECB18 and ECB22 follow the convention that the device values are
named IVALx, and the corresponding point values are named MEASx. The ECB13 has both
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 inputs, or use charac-
terization as described in Section 3.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 3.5.3), clamping
(see Section 3.5.4), and/or filtering (see Section 3.5.5).
The value of the PNT output, which represents the conditioned/converted value of the selected
input, is copied to the MEAS parameter.
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 scaled value is clamped as follows:
102
3. AINR – Redundant Analog Input Block B0193AX – Rev N
osv (units)
HSCO1
INPUT
LSCO1
osv (units)
osv (units)
HSCO1
HOR = 1
OUTPUT
LOR = 1
LSCO1
osv (units)
103
B0193AX – Rev N 3. AINR – Redundant Analog Input Block
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.
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. (See the section
“Fieldbus Integration Time” in Chapter 12 of Integrated Control Software Concepts (B0193AW).
OUTPUT
INPUT STEP
63% 100%
FTIM
104
3. AINR – Redundant Analog Input Block B0193AX – Rev N
INPUT STEP
OUTPUT
FTIM
105
B0193AX – Rev N 3. AINR – Redundant Analog Input Block
106
3. AINR – Redundant Analog Input Block B0193AX – Rev N
107
B0193AX – Rev N 3. AINR – Redundant Analog Input Block
♦ 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.
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)
108
3. AINR – Redundant Analog Input Block B0193AX – Rev N
The PROPT parameter is inactive when the block is in Manual (that is, the Error bit of the PNT
status is not set based on various status bits of MEAS, reflecting the selected side, when no FBMs
or FBCs are connected).
If MANALM is true, alarming is enabled while in Manual mode, and is based on the manually-
set value of PNT.
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 Inte-
grated Control Software Concepts (B0193AW) manual.
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:
109
B0193AX – Rev N 3. AINR – Redundant Analog Input Block
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
110
3. AINR – Redundant Analog Input Block B0193AX – Rev N
111
B0193AX – Rev N 3. AINR – Redundant Analog Input Block
112
3. AINR – Redundant Analog Input Block B0193AX – Rev N
113
B0193AX – Rev N 3. AINR – Redundant Analog Input Block
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
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
114
3. AINR – Redundant Analog Input Block B0193AX – Rev N
Hardware
201
202
203
204
205
206
207
211
212
213
217
237
241
242
Type
Point
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
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
115
B0193AX – Rev N 3. AINR – Redundant Analog Input Block
Hardware
Type 1 2 3 4 5 6 17 18 22 23 33 36 37 38 39 43 44 46
Point
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
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
116
3. AINR – Redundant Analog Input Block B0193AX – Rev N
Hardware
Type 57 58 59 61 63 95
Point
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
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.
117
B0193AX – Rev N 3. AINR – Redundant Analog Input Block
118
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
119
B0193AX – Rev N 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
testing. In that case, no further processing of the block occurs. To return
120
4. ALMPRI – Alarm Priority Change Block B0193AX – Rev N
DEFINE to a true value, correct all configuration errors and re-install 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
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.
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
121
B0193AX – Rev N 4. ALMPRI – Alarm Priority Change Block
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.)
122
4. ALMPRI – Alarm Priority Change Block B0193AX – Rev N
*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, and CP60.
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. See Integrated Control Software Concepts
(B0193AW) document.
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.
123
B0193AX – Rev N 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.
124
4. ALMPRI – Alarm Priority Change Block B0193AX – Rev N
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.
125
B0193AX – Rev N 4. ALMPRI – Alarm Priority Change Block
126
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
127
B0193AX – Rev N 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.
128
5. AOUT – Analog Output Block B0193AX – Rev N
♦ 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
129
B0193AX – Rev N 5. AOUT – Analog Output Block
130
5. AOUT – Analog Output Block B0193AX – Rev N
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
131
B0193AX – Rev N 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
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.
BAO Bad Alarm Option is a configurable option that enables alarm generation
for each state change of the BAD parameter. The parameter values are:
132
5. AOUT – Analog Output Block B0193AX – Rev N
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
DEV
BAD
LOL
MA
ON
FS
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
133
B0193AX – Rev N 5. AOUT – Analog Output Block
Bit Boolean
Number** Connection
(0 to 31) Name Description When True (B32 to B1)
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.
(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.
134
5. AOUT – Analog Output Block B0193AX – Rev N
DELTI1 Change Delta for Input Range 1 establishes the amount of change in the
connected source which causes an update of the value of MEAS or
SUP_IN. DELTI1 is expressed as a percent of the input range RI1.
DELTI2 Change Delta for Input Range 2 establishes the amount of change in the
connected source which causes an update of the value of BIAS. DELTI2 is
expressed as a percent of the input range RI2.
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
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.
135
B0193AX – Rev N 5. AOUT – Analog Output Block
ERCODE Description
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.7.)
2= Fallback requested; recovery only at block level.
(See Section 5.5.7.)
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.
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.
136
5. AOUT – Analog Output Block B0193AX – Rev N
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.
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 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
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:
137
B0193AX – Rev N 5. AOUT – Analog Output Block
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.
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 string that specifies the FBM or FBC to
which the block is connected. IOM_ID can be either:
♦ The 6-character letterbug of the FBM or FBC. The ECB must
reside in the local compound <cp_letterbug>_ECB where
cp_letterbug is the station letterbug of the CP.)
♦ The full pathname of the ECB. The ECB must be local but can
reside in any compound. The pathname must be of the form
<local_compound_name>:<ecb_name>, where <ecb_name> is the
NAME parameter of the ECB.
138
5. AOUT – Analog Output Block B0193AX – Rev N
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 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 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.
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.
139
B0193AX – Rev N 5. AOUT – Analog Output Block
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. 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 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. (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.
140
5. AOUT – Analog Output Block B0193AX – Rev N
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, and CP60.
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. See Integrated Control Software Concepts
(B0193AW) document.
PNT_NO Point Number is the FBM or FBC point to which the AOUT block is
connected.
141
B0193AX – Rev N 5. AOUT – Analog Output Block
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-
mary cascade at initial startup or transfer of control. It does this by forcing
the AOUT block to remain in the Hold state until the Acknowledge status
bit (Bit 10) of MEAS is detected from the upstream block.
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
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-
142
5. AOUT – Analog Output Block B0193AX – Rev N
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.
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.
143
B0193AX – Rev N 5. AOUT – Analog Output Block
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.
144
5. AOUT – Analog Output Block B0193AX – Rev N
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
145
B0193AX – Rev N 5. AOUT – Analog Output Block
146
5. AOUT – Analog Output Block B0193AX – Rev N
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.
147
B0193AX – Rev N 5. AOUT – 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 5.5.7, 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).
148
5. AOUT – Analog Output Block B0193AX – Rev N
♦ 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.
149
B0193AX – Rev N 5. AOUT – Analog Output Block
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.
150
5. AOUT – Analog Output Block B0193AX – Rev N
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
151
B0193AX – Rev N 5. AOUT – Analog Output Block
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
SCO = 12: Inverse Linear (14080 to 64000)
Analog Output 2 to 10 V dc
RAWC = ((OUT - LSCO1) * 49920/ (HSCO1 - LSCO1)) + 14080
SCO = 13: Inverse Square Root (14080 to 64000)
Analog Output 2 to 10 V dc
RAWC = ((OUT - LSCO1) * 49920/ (HSCO1 - LSCO1))2 / 49920 + 14080
SCO = 14: Analog Output for Intelligent Positioner
SCO = 50: Linear (0 to 65535) x = (y - LSCO1) * 65535/(HSCO1-LSCO1)
SCO = 51: Linear (-32768 to 32767) x = (y - LSCO1) * 65535/(HSCO1-LSCO1) - 32768
SCO = 52: Linear (0 to 32767) x = (y - LSCO1) * 32767/(HSCO1-LSCO1)
SCO = 53: Linear (0 to 1000) x = (y - LSCO1) * 1000/(HSCO1-LSCO1)
152
5. AOUT – Analog Output Block B0193AX – Rev N
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.
153
B0193AX – Rev N 5. AOUT – Analog Output Block
♦ If OPSTAT is not 6, there is no new physical output to the ECB this cycle.
Whenever new data is transferred to an ECB, an internal flag is set to cause output from the ECB
to the FBM or FBC point on the next output cycle.
154
5. AOUT – Analog Output Block B0193AX – Rev N
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 5-4. Typical Configuration for Intelligent Transmitters with Window ECB
155
B0193AX – Rev N 5. AOUT – Analog Output Block
Failsafe (FS) is set true on a Failsafe transition, and remains true until the cycle on which the cas-
cade closure indication is received from the upstream block. FS is then set false again.
The value of FS is not changed except at a Failsafe transition cycle or a cascade closure cycle.
The status bit BLKSTA.FS is true whenever FS is true.
On any Failsafe transition, the same actions are taken as on a Bad-to-Good transition.
(See Section 5.6.1.)
If option Manual if Failsafe (MANFS) is true the block is forced into Manual when a transition
into Failsafe occurs, if it is not already in Manual. Thereafter it remains in Manual unless it is set
into Auto by a user task or display. MANFS is always ignored when MA is linked.
156
5. AOUT – Analog Output Block B0193AX – Rev N
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.
157
B0193AX – Rev N 5. AOUT – Analog Output Block
158
5. AOUT – Analog Output Block B0193AX – Rev N
♦ MEROPT = 1: The last good value of MEAS is used when it has Bad or Out-of-Ser-
vice status, or is experiencing source connection problems.
♦ MEROPT = 2: The last good value of MEAS is used when it has Bad, Out-of-Service,
or Error status, or is experiencing source connection problems.
In similar fashion, PROPT and Bias Error Option (BEROPT), taken together, determine
whether the last good value of BIAS is used when BIAS has an error. The meanings of the three
possible values of BEROPT are identical to those of MEROPT, but apply to BIAS rather than
MEAS.
In all cases where the last good value of a parameter is used in the block algorithm, that value is
written over the current value, thereby avoiding possible confusion.
The status conditions referred to as “source connection problems” in the preceding paragraphs
consist of the following:
♦ The block containing the source parameter has been deleted.
♦ The source parameter is in a nonexistent compound.
♦ There is a peer-to-peer path failure.
159
B0193AX – Rev N 5. AOUT – Analog Output Block
♦ If Bias Track Option (BTRKOP) is true and BIAS is unlinked, the bias tracking fea-
ture is invoked. In this form of tracking, the value of BIAS tracks the value of OUT by
always showing the amount of bias necessary to convert the algorithm input into the
present, manually set value of OUT. It is determined by a back calculation as follows:
BIAS = OUT - (MEAS_Value * MSCALE)
In this equation, MEAS_Value represents the input source actually selected by the
algorithm this cycle, as explained in Section 5.5.4. Note that output balancing is inac-
tive in Manual mode.
There are four parameters which can force the AOUT block into Manual or Auto mode. These
are listed from strongest to weakest:
♦ Manual if Bad Option (MBADOP): When true, the block is forced into Manual
whenever MEAS or BIAS has Bad status, or the FBM or FBC is bad. MA is secured
against sets when this occurs. MBADOP is ignored if MA is linked. Once MBADOP
forces the block into Manual, only Auto Switch (AUTSW) can take the block out of
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.6.) 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 Integrated Control Software Concepts (B0193AW) manual.
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
160
5. AOUT – Analog Output Block B0193AX – Rev N
ECB1
AIN
PNT
MEAS
PID
FBM203
or
OUT FBM03
MEAS
AOUT
RAWC
ECB2
FBM204
or
FBM04
TT
161
B0193AX – Rev N 5. AOUT – Analog Output Block
162
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.
163
B0193AX – Rev N 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
164
6. AOUTR – Redundant Analog Output Block B0193AX – Rev N
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.7 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.
165
B0193AX – Rev N 6. AOUTR – Redundant Analog Output Block
6.4 Parameters
Table 6-1. AOUTR Block Parameters
166
6. AOUTR – Redundant Analog Output Block B0193AX – Rev N
167
B0193AX – Rev N 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
Boolean
Bit Number* Configured Alarm Option Connection
(0 to 31) When True (B32 to B1)
0 (Least Significant) Alarm Group 8 in Use ALMOPT.B32
1 Alarm Group 7 in Use ALMOPT.B31
7 Alarm Group 1 in Use ALMOPT.B25
22 Bad I/O Alarm Configured ALMOPT.B10
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
168
6. AOUTR – Redundant Analog Output Block B0193AX – Rev N
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
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:
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).
169
B0193AX – Rev N 6. AOUTR – Redundant Analog Output Block
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
BAD
HOL
TRK
LOL
FLB
MA
ON
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
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
170
6. AOUTR – Redundant Analog Output Block B0193AX – Rev N
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
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.
DELTI1 Change Delta for Input Range 1 establishes the amount of change in the
connected source which causes an update of the value of MEAS or
SUP_IN. DELTI1 is expressed as a percent of the input range RI1.
DELTI2 Change Delta for Input Range 2 establishes the amount of change in the
connected source which causes an update of the value of BIAS. DELTI2 is
expressed as a percent of the input range RI2.
171
B0193AX – Rev N 6. AOUTR – Redundant Analog Output Block
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.
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:
172
6. AOUTR – Redundant Analog Output Block B0193AX – Rev N
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.
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.
173
B0193AX – Rev N 6. AOUTR – Redundant Analog 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 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
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.
174
6. AOUTR – Redundant Analog Output Block B0193AX – Rev N
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.
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.
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 string that specifies the primary FBM or
FBC to which the block is connected. IOM_ID can be either:
♦ The 6-character letterbug of the primary FBM or FBC. The ECB
must reside in the local compound <cp_letterbug>_ECB where
cp_letterbug is the station letterbug of the CP.
♦ The full pathname of the ECB. The ECB must be local but can
reside in any compound. The pathname must be of the form
<local_compound_name>:<ecb_name>, where <ecb_name> is the
NAME parameter of the ECB.
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
175
B0193AX – Rev N 6. AOUTR – Redundant Analog Output Block
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.
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-
176
6. AOUTR – Redundant Analog Output Block B0193AX – Rev N
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. See Section 6.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 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.
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
177
B0193AX – Rev N 6. AOUTR – Redundant Analog Output 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, and CP60.
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. See the Integrated Control Software Concepts
(B0193AW) document.
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. It does this by forcing
the AOUTR block to remain in the Hold state until the Acknowledge sta-
tus bit (Bit 10) of MEAS is detected from the upstream block.
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
178
6. AOUTR – Redundant Analog Output Block B0193AX – Rev N
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.
179
B0193AX – Rev N 6. AOUTR – Redundant Analog Output Block
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.
180
6. AOUTR – Redundant Analog Output Block B0193AX – Rev N
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
181
B0193AX – Rev N 6. AOUTR – Redundant Analog Output Block
182
6. AOUTR – Redundant Analog Output Block B0193AX – Rev N
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.
183
B0193AX – Rev N 6. AOUTR – Redundant Analog Output Block
184
6. AOUTR – Redundant Analog Output Block B0193AX – Rev N
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.8, 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.
185
B0193AX – Rev N 6. AOUTR – Redundant Analog Output Block
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.
186
6. AOUTR – Redundant Analog Output Block B0193AX – Rev N
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
187
B0193AX – Rev N 6. AOUTR – Redundant Analog Output Block
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
SCO = 12: Inverse Linear (14080 to 64000)
Analog Output 2 to 10 V dc
RAWC = ((OUT - LSCO1) * 49920 / (HSCO1 - LSCO1)) + 14080
SCO = 13: Inverse Square Root (14080 to 64000)
Analog Output 2 to 10 V dc
RAWC = ((OUT - LSCO1) * 49920 / (HSCO1 - LSCO1))2 / 49920 + 14080
SCO = 50: Linear (0 to 65535) x = (y - LSCO1) * 65535/(HSCO1-LSCO1)
SCO = 51: Linear (-32768 to 32767) x = (y - LSCO1) * 65535/(HSCO1-LSCO1) -
32768
SCO = 52: Linear (0 to 32767) x = (y - LSCO1) * 32767/(HSCO1-LSCO1)
188
6. AOUTR – Redundant Analog Output Block B0193AX – Rev N
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.
189
B0193AX – Rev N 6. AOUTR – Redundant Analog Output Block
is transferred to its ECB. If OPSTAT is not 6 on a side, there is no new physical output to that
ECB this cycle.
Whenever new data is transferred to an ECB, an internal flag is set to cause output from that ECB
to its FBM or FBC point on the next output cycle.
190
6. AOUTR – Redundant Analog Output Block B0193AX – Rev N
191
B0193AX – Rev N 6. AOUTR – Redundant Analog Output Block
♦ 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.
192
6. AOUTR – Redundant Analog Output Block B0193AX – Rev N
193
B0193AX – Rev N 6. AOUTR – Redundant Analog Output Block
194
6. AOUTR – Redundant Analog Output Block B0193AX – Rev N
♦ If Bias Track Option (BTRKOP) is true and BIAS is unlinked, the bias tracking fea-
ture is invoked. In this form of tracking, the value of BIAS tracks the value of OUT by
always showing the amount of bias necessary to convert the algorithm input into the
present, manually-set value of OUT. It is determined by a back calculation as follows:
BIAS = OUT - (MEAS_Value * MSCALE)
In this equation, MEAS_Value represents the input source actually selected by the
algorithm this cycle, as explained in Section 6.4.5. Note that output balancing is inac-
tive in Manual mode.
There are four parameters which can force the AOUTR block into Manual or Auto mode. These
are listed from strongest to weakest:
♦ Manual if Bad Option (MBADOP): When true, the block is forced into Manual
whenever MEAS or BIAS has Bad status, or both FBMs or FBCs are bad. MA is
secured against sets when this occurs. MBADOP is ignored if MA is linked. Once
MBADOP forces the block into Manual, only Auto Switch (AUTSW) can take the
block out of 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 6.4.7.) 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 Integrated Control Software Concepts (B0193AW) manual. Separate “into alarm” and
“return to normal” alarm messages are generated for each output side, but the BAD parameter fol-
lows 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
195
B0193AX – Rev N 6. AOUTR – Redundant Analog Output Block
ECB 1
AIN
PNT
MEAS
PID
OUT FBM03
MEAS
AOUTR
RAWC
ECB23 ECB23
FBM39 FBM39
TT
196
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
197
B0193AX – Rev N 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
true, the block sets the MA input to manual when it detects a control error (CE =
true), or when the HOLD parameter goes true. 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.
♦ 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.
♦ 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.
198
7. BIAS – Bias Block B0193AX – Rev N
♦ 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
199
B0193AX – Rev N 7. BIAS – Bias Block
200
7. BIAS – Bias Block B0193AX – Rev N
201
B0193AX – Rev N 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 Boolean
Number* Configured Alarm Option Connection
(0 to 31) When True (B32 to B1)
0 Alarm Group 8 in Use ALMOPT.B32
1 Alarm Group 7 in Use ALMOPT.B31
7 Alarm Group 1 in Use ALMOPT.B25
16 Low Absolute Alarm Configured ALMOPT.B16
17 High Absolute Alarm Configured ALMOPT.B15
24 Low-Low Absolute Alarm Configured ALMOPT.B8
25 High-High Absolute Alarm Configured ALMOPT.B7
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
202
7. BIAS – Bias Block B0193AX – Rev N
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
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.
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.
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.
203
B0193AX – Rev N 7. BIAS – Bias Block
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
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
B10 8 7 6 5 4 3 2 1 0
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
HOL
LRO
TRK
HLD
LOL
CTL
MA
ON
FS
LR
Bit Boolean
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
10 LR Local(= false)/Remote(= true) BLKSTA.B22
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
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
BMEAS Measurement Bias is a real input used to offset the scaled measurement
value before it is added to the bias term.
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, when true, forces the algorithm’s BIAS input to track
the block MEAS, when the block is in Manual.
204
7. BIAS – Bias Block B0193AX – Rev N
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.
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 to DELTI2
Change Delta for Input Ranges 1 and 2 are real values that define the res-
olution as a percent of the measurement range. Entering a 1 causes the
Object Manager to recognize and respond to a change of 1 percent of the
full error range.
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.
205
B0193AX – Rev N 7. BIAS – Bias Block
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 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 com-
patible 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”
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 block-dependent parameter (generally the measurement input) that
triggers a High High alarm.
206
7. BIAS – Bias Block B0193AX – Rev N
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.
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 real values that define the upper
limit of the measurement ranges. EI1 to EI2 define 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.
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
207
B0193AX – Rev N 7. BIAS – Bias Block
Bit Boolean
Number* Connection
(0 to 15) Description When True (B16 to B1)
2 Low Output Alarm INHALM.B14
3 High Output Alarm INHALM.B13
8 Inhibit Low-Low Absolute Alarm INHALM.B8
9 Inhibit High-High Absolute Alarm INHALM.B7
13 Inhibit Alarm INHALM.B3
14 Unacknowledged INHALM.B2
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.
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.
208
7. BIAS – Bias Block B0193AX – Rev N
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
HOA
HHA
LOA
LLA
INH
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
18 LOA Low Output Alarm INHSTA.B14
19 HOA High Output Alarm INHSTA.B13
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
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
209
B0193AX – Rev N 7. BIAS – Bias 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 configurator.
The block does not assert INITMA on ordinary reconfiguration.
INITMA is ignored if MA has an established linkage.
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 set true when the block-
dependent parameter value (generally the measurement input) falls below
210
7. BIAS – Bias Block B0193AX – Rev N
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
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-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 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.
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.
211
B0193AX – Rev N 7. BIAS – Bias Block
point value is the real input parameter RBIAS. When LR is set to Local,
there are two possible sources for the bias: (a) MEAS or (b) a user settable
input. The choice is based on the conditions of BTRKOP and MA, as
described under BTRKOP.
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 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.
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
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.
212
7. BIAS – Bias Block B0193AX – Rev N
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.
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.
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.
213
B0193AX – Rev N 7. BIAS – Bias Block
MEASPR Measurement Priority is an integer input (1 to 5), that sets the priority
level of the measurement alarm (1 is the highest priority).
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.
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, and CP60.
214
7. BIAS – Bias Block B0193AX – Rev N
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. See Integrated Control Software Concepts
(B0193AW) document.
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.
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
215
B0193AX – Rev N 7. BIAS – Bias Block
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
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.
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
216
7. BIAS – Bias Block B0193AX – Rev N
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 is set true, the BIAS status is cleared.
♦ If BTRKOP is false, 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
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
217
B0193AX – Rev N 7. BIAS – Bias Block
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 (TRCK) in the BLKSTA parameter. When the Bias block is the upstream
block in a cascade control scheme, output tracking (BTRKOP = true) assures a bumpless transfer
for the downstream block.
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,
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 is false and CEOPT = 1 or 2, either the HOLD
parameter goes true, or a condition required by the CEOPT parameter is met. Even if MBADOP
is true, 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 is configured true (and the MA parameter is unlinked), the block goes to the Man-
ual state when it detects a control error or when the HOLD input goes true, regardless of the
CEOPT setting. MBADOP has the same priority as MANSW and has precedence over AUTSW.
Therefore, if MBADOP is configured true 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
218
7. BIAS – Bias Block B0193AX – Rev N
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.
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.
RBIAS
BCALCI BCALCO
If the secondary block is a DGAP or PTC block, link BCALCI to the secondary block’s BCALCO
parameter. Link OUT to the secondary block’s RSP.
219
B0193AX – Rev N 7. BIAS – Bias Block
RBIAS
BCALCI BCALCO
RBIAS
220
8. BIN - Binary Input Block
This chapter covers the Binary Input (BIN) block, its 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).
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
221
B0193AX – Rev N 8. BIN - Binary Input Block
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.
8.4 Parameters
Table 8-1. BIN Block Parameters
222
8. BIN - Binary Input Block B0193AX – Rev N
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.
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
B9
FBM
MA
ON
Bit Boolean
Number* 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 BKKSTA.B21
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
* Bit 0 is the least significant bit (starting from the right).
CIN Block output CIN contains the same value as BIN when the block mode
is Auto. In Manual, CIN is released and you can set its value.
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.
223
B0193AX – Rev N 8. BIN - Binary Input 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 BIN block, the following list shows the
possible messages you may see:
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.
224
8. BIN - Binary Input Block B0193AX – Rev N
IOM_ID ECB Identifier is a user-configurable string that specifies either of the fol-
lowing:
♦ The device ECB201, for the purpose of connecting to (accessing)
a field parameter that resides in a field device hosted by an
ECB200
♦ The parent ECB200, for the purpose of accessing a parameter
whose source is the FBM itself (not applicable to FBM220/221 or
FBM223).
IOM_ID can be formatted in either of two ways, depending on the loca-
tion of the ECB in question:
♦ The name of the ECB. For this format, the ECB must reside in the
station ECB compound <cp_letterbug>_ECB, where cp_letterbug
is the station letterbug of the I/A Series station.
♦ The full pathname of the ECB. For this format, the ECB must
reside in the station ECB compound, or any compound where
blocks that tie to it are located. The pathname must be of the
form: <local_compound_name>:<ecb_name>
where <ecb_name> is the NAME parameter of the ECB.
PERIOD Period is an indexed input that dictates the block’s execution time base,
and allowable PHASE values. PERIOD values range from 0 to 9 and map
to the following period time lengths:
225
B0193AX – Rev N 8. BIN - Binary Input Block
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. See Integrated Control Software Concepts
(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 make and model of the external
device.
For the FOUNDATION™ fieldbus interface (FBM220/221), PNT_NO
contains the Function Block Tag used to identify the function block, in
the external device, that is to be associated with the BIN block input.
Also, for FOUNDATION fieldbus devices, PNT_NO may be connected to
only one function block in the device. (Multiple connections are not sup-
ported.)
For the PROFIBUS interface (FBM223), PNT_NO must be configured
to contain a PROFIBUS data identifier string. This information identi-
fies, to the FBM, specific data in the PROFIBUS data stream that is to
serve as the input to this block. Refer to PROFIBUS-DP Communication
Interface Module (FBM223) User’s Guide (B0400FE) for details.
For the Modbus interface (FBM224), PNT_NO must be configured to
contain the address of a coil in a Modbus device. Refer to Modbus Com-
munication Interface Module (FBM224) User’s Guide for details.
226
8. BIN - Binary Input Block B0193AX – Rev N
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.
227
B0193AX – Rev N 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
Figure 8-2. BIN Block Operational Diagram
228
8. BIN - Binary Input Block B0193AX – Rev N
A DCI connection is added to a linked list of all the DCI connections, of any type, for all blocks
specifying the same ECB. This arrangement permits multiple DCI blocks of differing data types
to communicate with a single device at input/output scan time, on a scatter-gather basis. It also
allows multiple DCI connections in the same DCI block to be established (for example, connec-
tions in redundant type DCI blocks such as this one or for INI_PT connections in output type
blocks).
The DCI connection is deleted (that is, the linkage is removed from the linked list for the ECB)
when the BIN block is deleted.
229
B0193AX – Rev N 8. BIN - Binary Input Block
♦ The DCI is not yet connected (that is, the PIO maintenance task has not yet sent the
DATA_CONNECT message to the FBM for the linked-list addition described in
Section 8.5.3).
♦ The DCI connection status information, which specifies the condition of the accessed
device parameter, indicates Out-of-Service, which means (in general) that the parame-
ter value is unavailable.
♦ The connection status information indicates Disconnected, which means (in general)
that the parameter is not connected or not defined.
♦ 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 BIN is set to Bad if:
♦ The device ECB status indicates that the field device has failed.
♦ The DCI connection status information indicates a bad value for the field device
parameter.
The status of BIN is set to Error if the status information indicates an uncertain or questionable
value for the field device parameter.
230
8. BIN - Binary Input Block B0193AX – Rev N
231
B0193AX – Rev N 8. BIN - Binary Input Block
232
9. BINR - Redundant Binary Input
Block
This chapter covers the Redundant Binary Input (BINR) block, its features, parameters and
functions, and application diagrams.
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
Input Processing
External Inputs Block
Input from
Manual Set
233
B0193AX – Rev N 9. BINR - Redundant Binary Input 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.
9.4 Parameters
Table 9-1. BINR Block Parameters
234
9. BINR - Redundant Binary Input Block B0193AX – Rev N
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.
235
B0193AX – Rev N 9. BINR - Redundant Binary Input Block
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 make and model of the external device.
For the FOUNDATION™ fieldbus interface (FBM220/221), BI1_PT con-
tains the Function Block Tag used to identify the function block, in the
external device, that is to be associated with the BINR block primary
binary input. Also, for FOUNDATION™ fieldbus, BI1_PT may be con-
nected to only one function block in the device. (Multiple connections are
not supported.)
For the PROFIBUS interface (FBM223), BI1_PT must be configured to
contain a PROFIBUS data identifier string. This information identifies,
to the FBM, specific data in the PROFIBUS data stream that is to serve as
the primary binary input to this block. Refer to PROFIBUS-DP Commu-
nication Interface Module (FBM223) User’s Guide (B0400FE) for details.
For the Modbus interface (FBM224), BI1_PT must be configured to con-
tain the address of a coil in a Modbus device. Refer to Modbus Communi-
cation Interface Module (FBM224) User’s Guide for details.
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 make and model of the external device.
For the FOUNDATION™ fieldbus interface (FBM220/221), BI2_PT
contains the Function Block Tag used to identify the function block, in
the external device, that is to be associated with the BINR block secondary
binary input. Also, for FOUNDATION™ fieldbus, BI2_PT may be con-
nected to only one function block in the device. (Multiple connections are
not supported.)
For the PROFIBUS interface (FBM223), BI2_PT must be configured to
contain a PROFIBUS data identifier string. This information identifies,
to the FBM, specific data in the PROFIBUS data stream that is to serve as
the secondary binary input to this block. Refer to PROFIBUS-DP Com-
munication Interface Module (FBM223) User’s Guide (B0400FE) for
details.
For the Modbus interface (FBM224), BI2_PT must be configured to con-
tain the address of a coil in a Modbus device. Refer to Modbus Communi-
cation Interface Module (FBM224) User’s Guide for details.
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 make and model of the external device.
For the FOUNDATION fieldbus interface (FBM220/221), BI3_PT con-
tains the Function Block Tag used to identify the function block, in the
external device, that is to be associated with the BINR block tertiary
binary input. Also, for FOUNDATION fieldbus, BI3_PT may be con-
nected to only one function block in the device. (Multiple connections are
not supported.)
236
9. BINR - Redundant Binary Input Block B0193AX – Rev N
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
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)
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 BKKSTA.B21
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
* Bit 0 is the least significant bit (starting from the right).
CIN Block Output contains the same value as BIN when the block mode is
Auto. In Manual, CIN is released and you can set its value.
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.
237
B0193AX – Rev N 9. BINR - Redundant Binary Input 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:
238
9. BINR - Redundant Binary Input Block B0193AX – Rev N
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.
239
B0193AX – Rev N 9. BINR - Redundant Binary Input Block
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. PERIOD values range from 0 to 9 and map
to the following period time lengths:
240
9. BINR - Redundant Binary Input Block B0193AX – Rev N
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. See Integrated Control Software Concepts
(B0193AW).
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)
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.
241
B0193AX – Rev N 9. BINR - Redundant Binary Input Block
242
9. BINR - Redundant Binary Input Block B0193AX – Rev N
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
243
B0193AX – Rev N 9. BINR - Redundant Binary Input Block
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.
244
9. BINR - Redundant Binary Input Block B0193AX – Rev N
245
B0193AX – Rev N 9. BINR - Redundant Binary Input Block
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).
246
9. BINR - Redundant Binary Input Block B0193AX – Rev N
247
B0193AX – Rev N 9. BINR - Redundant Binary Input Block
248
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.
249
B0193AX – Rev N 10. BLNALM – Boolean Alarm Block
10.3 Parameters
Table 10-1. BLNALM Block Parameters
250
10. BLNALM – Boolean Alarm Block B0193AX – Rev N
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
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 bit (starting from the right).
251
B0193AX – Rev N 10. BLNALM – Boolean Alarm Block
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
B10 8 7 6 5 4 3 2 1 0
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
Bit ON 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
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-
252
10. BLNALM – Boolean Alarm Block B0193AX – Rev N
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 contains packed boolean values that represent alarm inhibit
requests for each alarm type or point configured in the 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 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.
253
B0193AX – Rev N 10. BLNALM – Boolean Alarm Block
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
UNACK B2
B3
B4
B5
B6
B7
B8
B9
INH
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
29 INH Inhibit Alarm INHSTA.B3
30 UNACK Unacknowledged INHSTA.B2
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.
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 set false by any workstation at any time, whereupon a new
LOCKRQ is accepted, and a new ownership workstation identifier writ-
ten to LOCKID.
254
10. BLNALM – Boolean Alarm Block B0193AX – Rev N
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.)
* 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.
255
B0193AX – Rev N 10. BLNALM – Boolean Alarm Block
*** 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, and CP60.
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. See Integrated Control Software Concepts
(B0193AW) document.
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 be 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).
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:
256
10. BLNALM – Boolean Alarm Block B0193AX – Rev N
For example, you can inhibit alarming for points IN_2 and IN_5 by setting INHALM to
0x4800.
257
B0193AX – Rev N 10. BLNALM – Boolean Alarm Block
258
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)
259
B0193AX – Rev N 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.
260
11. BOOL – Boolean Variable Block B0193AX – Rev N
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.
261
B0193AX – Rev N 11. BOOL – Boolean Variable Block
262
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).
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
263
B0193AX – Rev N 12. BOUT - Binary Output Block
When in Auto, the BOUT block accepts a binary input from an upstream control strategy at
parameter Input (IN). In Manual, it accepts a binary value from an operator set, generally via an
I/A Series Display Manager or FoxView display, at parameter Set (SET). It sends this value to the
device’s address, specified at parameter Point Number (PNT_NO).
Output from BOUT 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.
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.
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 BOUT block at a con-
figured Initialization Point Number (INI_PT) within the external device.
The BOUT block does not provide any alarm detection or reporting capability. If alarms are
desired, a separate CIN block can be used with a connection to the COUT parameter of the
BOUT block.
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 read-back 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.
264
12. BOUT - Binary Output Block B0193AX – Rev N
12.4 Parameters
Table 12-1. BOUT Block Parameters
265
B0193AX – Rev N 12. BOUT - Binary Output Block
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.
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
B9
MAO
FBM
TRK
HLD
ON
MA
FS
266
12. BOUT - Binary Output Block B0193AX – Rev N
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.
COUTQ Output Request displays the value of the request component of the block
output for diagnostic purposes. It is not configurable.
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:
267
B0193AX – Rev N 12. BOUT - Binary Output Block
FSOPTN Fail-Safe Option is a configurable option that specifies the fail-safe condi-
tions and action to be taken in an FBM for an output point in a BOUT
block:
♦ Bit 0: 1 = assert fail-safe if input/measurement error. 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.
Note: Bit 0 is the least significant, low-order bit.
This parameter is currently not supported by Modbus FBM224.
INITMA Initialize Manual/Auto specifies the desired state of the MA input under
certain initialization conditions, namely:
268
12. BOUT - Binary Output Block B0193AX – Rev N
♦ 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 read-back 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.
For FOUNDATION fieldbus, INI_PT is configured with a device-specific
address.
For Profibus, INI_PT is configured to contain a Profibus data identifier
string1 which identifies, to the FBM, the address of an optional Boolean
input.
IOM_ID ECB Identifier is a user-configurable string that specifies either of the fol-
lowing:
♦ The device ECB (ECB201), for the purpose of connecting to
(accessing) a field parameter that resides in a field device hosted by
an ECB200
♦ The parent ECB200, for the purpose of accessing a parameter
whose source is the FBM itself (not applicable to FBM220/221 or
FBM223).
IOM_ID can be formatted in either of two ways, depending on the loca-
tion of the ECB in question:
♦ The name of the external device ECB (ECB201). For this format,
the ECB201 must reside in the station ECB compound
<cp_letterbug>_ECB, where cp_letterbug is the station letterbug
of the I/A Series station.
♦ The full pathname of the external device ECB (ECB201). For this
format, the ECB201 must reside in the station ECB compound,
or any compound where blocks that tie to it are located. The path-
name must be of the form:
1.
For detailed information on configuring the Profibus data identifier (and thus INI_PT configura-
tion), refer to PROFIBUS-DP Communication Interface Module (FBM223) User’s Guide (B0400FE).
269
B0193AX – Rev N 12. BOUT - Binary Output Block
<local_compound_name>:<ecb_name>
where <ecb_name> is the NAME parameter of the ECB.
Note: Once configured, IOM_ID may not be modified. A delete/undelete
operation will NOT allow IOM_ID to be changed. The block must be
deleted and then re-entered into the data base. IOM_ID may then be
reconfigured.
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 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.
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.
270
12. BOUT - Binary Output Block B0193AX – Rev N
PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. PERIOD values range from 0 to 9 and map
to the following period time lengths:
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. See Integrated Control Software Concepts
(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 make and model of the external
device.
For the FOUNDATION™ fieldbus interface (FBM220/221), PNT_NO
contains the Function Block Tag used to identify the function block, in
the external device, that is to be associated with the BOUT block output.
Also, for FOUNDATION™ fieldbus, PNT_NO may be connected to only
one function block in the device. (Multiple connections are not sup-
ported.)
For the PROFIBUS interface (FBM223), PNT_NO must be configured
to contain a PROFIBUS data identifier string. This information identi-
fies, to the FBM, the specific data in the PROFIBUS data stream that is to
be associated with the BOUT block output. Refer to PROFIBUS-DP
Communication Interface Module (FBM223) User’s Guide (B0400FE) for
details.
For the Modbus interface (FBM224), PNT_NO must be configured to
contain the address of a coil in a Modbus device. Refer to Modbus Com-
munication Interface Module (FBM224) User’s Guide for details.
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
Holding until the upstream block returns an Acknowledge, remains in
Holding for a fixed time delay, or ends the Hold after one cycle.
271
B0193AX – Rev N 12. BOUT - Binary Output Block
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. If PRITIM = 0
and PRIBLK are used, the cascade remains open indefinitely until
acknowledged by the primary block.
SETFS Set Fail-Safe Request is a Boolean parameter that requests fail-safe action
to be set/reset by the FBM and/or field device for the specific output value
of the BOUT block:
1 = set fail-safe request
0 = reset fail-safe request.
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 read-back value obtained in
the last execution cycle). TSTAMP, which is expressed in units of milli-
seconds past midnight, is read from the FBM, when it is available there;
otherwise, 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.
272
12. BOUT - Binary Output Block B0193AX – Rev N
273
B0193AX – Rev N 12. BOUT - Binary Output Block
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
274
12. BOUT - Binary Output Block B0193AX – Rev N
275
B0193AX – Rev N 12. BOUT - Binary Output Block
♦ 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.
276
12. BOUT - Binary Output Block B0193AX – Rev N
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.
277
B0193AX – Rev N 12. BOUT - Binary Output Block
278
12. BOUT - Binary Output Block B0193AX – Rev N
If the change timer expires, the current read-back value is compared against the value of the
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 read-back from the FBM is then set into SET, IN and COUT_request
to establish the new baseline for input change/detection.
If the change timer has not expired, the read-back value is compared against its previous value on
any cycle in which there is no new output. If they differ and the new read-back is not the same as
the current value of the COUT_request, the new readback is set into SET, IN, and
COUT_request.
12.5.15 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.14).
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.16. 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.
279
B0193AX – Rev N 12. BOUT - Binary Output Block
280
13. CALC – Calculator Block
This chapter covers the Calculator, or CALC, block, its features, parameters and detailed
operations.
13.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.
Initialization Control
Manual/Auto
Block Status
CALCULATOR
8 Real Inputs 4 Real Outputs
BLOCK
16 Boolean Inputs 8 Boolean Outputs
2 Integer Inputs 6 Integer Outputs
2 Long Integer Inputs 2 Long Integer Outputs
13.2 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.
281
B0193AX – Rev N 13. CALC – Calculator Block
13.3 Parameters
Table 13-1. CALC Block Parameters
282
13. CALC – Calculator Block B0193AX – Rev N
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
MA
ON
283
B0193AX – Rev N 13. CALC – Calculator Block
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 real values that define the
resolution as a percent of the measurement range. Entering a 1 causes the
Object Manager to recognize and respond to a change of 1 percent of the
full error range.
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
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-
284
13. CALC – Calculator Block B0193AX – Rev N
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.
285
B0193AX – Rev N 13. CALC – Calculator Block
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-char-
acter letterbug of the workstation and DEVNAME is the 1-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.
286
13. CALC – Calculator Block B0193AX – Rev N
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
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
287
B0193AX – Rev N 13. CALC – Calculator Block
*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, and CP60.
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. See Integrated Control Software Concepts
(B0193AW) document.
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.
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.
288
13. CALC – Calculator Block B0193AX – Rev N
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.
289
B0193AX – Rev N 13. CALC – Calculator Block
All CALC block operations center about a 16-position push down stack. The top position of this
stack is referred to as the accumulator.
The arithmetic instructions operate on the accumulator value. No arithmetic operations contrib-
ute rounding errors beyond one unit of the least significant decimal digit of a real, single preci-
sion, floating point value.
To minimize the number of arithmetic instructions, all arithmetic operations are performed in the
floating point domain using standard floating point instructions of the Intel 80x87 coprocessor.
Integer arithmetic is not supported.
Data is always stored as a Real value. If an integer operation is defined, the operation strips the
decimal portion from the Real value. If a boolean operation is specified, the operation interprets
any non-zero value to be a logical one, and a zero value to be a logical zero, in keeping with the
usual C language convention.
The range of real values is + or - 10 to the + or - 38th power.
The range of integer values is -32,768 to 32,767.
290
13. CALC – Calculator Block B0193AX – Rev N
These instructions, with the exception of NOT and NOTX, are of the polyadic type and operate
on multiple operands that precede the instruction.
Accumulator
nn sec
OSP
Accumulator
nn sec nn sec
DON nn
Accumulator
nn sec nn sec
DOFF nn
291
B0193AX – Rev N 13. CALC – Calculator Block
292
13. CALC – Calculator Block B0193AX – Rev N
293
B0193AX – Rev N 13. CALC – Calculator Block
294
13. CALC – Calculator Block B0193AX – Rev N
295
B0193AX – Rev N 13. CALC – Calculator Block
296
13. CALC – Calculator Block B0193AX – Rev N
ABS The ABS command reads the contents of the accumulator and returns the
absolute value to the accumulator, overwriting the original contents.
Example (AC = accumulator):
16... Assume AC has value -.7853983 or +.7853983 after Step 16.
17 ABS AC has value of +.7853983 after Step 17.
ACOS ACOS reads the number in the accumulator (a cosine function value that
must have an absolute value equal to or less than one), computes the
value, in radians, of the first or second quadrant angle that has this cosine
value and stores the angle value into the accumulator, overwriting the
original cosine value.
297
B0193AX – Rev N 13. CALC – Calculator Block
ALN ALN reads the number in the accumulator, computes the natural antilog-
arithm (base e) of the value, and writes the result to the accumulator, over-
writing the original contents.
Example (AC = accumulator):
16 ... Assume AC has value +0.69347 after Step 16.
17 ALN AC has value of +2.0000 after Step 17.
ALOG ALOG reads the number in the accumulator, computes the base 10 anti-
logarithm of the value, and writes it to the accumulator, overwriting the
original contents.
Example 1 (AC = accumulator):
16 ... Assume AC has value +1.30103 after Step 16.
17 ALOG AC has value of +20.0000 after Step 17.
ASIN ASIN reads the number in the accumulator (a sine function value that
must have an absolute value equal to or less than one), computes the value
in radians of the first or fourth quadrant angle that has this sine value, and
stores the angle value into the accumulator, overwriting the original sine
value.
An attempt to ASIN an absolute value greater than one causes the instruc-
tion to be skipped and writes a “2” (Run-time Error code 2) to the PER-
ROR parameter.
Example 1 (AC = accumulator):
16 ... Assume AC has value of 0.7071 after Step 16.
17 ASIN AC has angle value of +.7853983 [Pi/4] radians after
Step 17. Pi/4 radians = 45 degrees.
298
13. CALC – Calculator Block B0193AX – Rev N
ATAN ATAN reads the number in the accumulator (a tangent function value),
computes the value in radians of the first or fourth quadrant angle that has
this tangent value, and stores the angle value into the accumulator, over-
writing the original tangent value.
Example 1 (AC = accumulator):
16 ... Assume AC has value of 1.000 after Step 16.
17 ATAN AC has angle value of +.7853983 [Pi/4] radians after
Step 17. Pi/4 radians = 45 degrees.
CHS CHS reads the number in the accumulator, changes the sign of the man-
tissa, and writes the result into the accumulator, overwriting the original
contents.
Example 1 (AC = accumulator):
16... Assume AC has value -.6734592 after Step 16.
17 CHS AC has value of +.6734592 after Step 17.
COS COS reads the number in the accumulator (the value of the angle in radi-
ans), computes the cosine of the angle, and writes the result into the accu-
mulator, overwriting the original contents.
An attempt to ACOS an absolute value greater than one causes the
instruction to be skipped and writes a “3” (Run-time Error code 3) to the
PERROR parameter.
Example (AC = accumulator):
16 ... Assume AC has angle value of +1.0472 [Pi/3] radians after
Step 16. Pi/3 radians = 60 degrees.
17 COS AC has value of +0.5000 after Step 17.
LN LN reads the number (must be > 0) in the accumulator, computes the nat-
ural logarithm (base e) of the value, and writes the result to the accumula-
tor, overwriting the original contents.
299
B0193AX – Rev N 13. CALC – Calculator Block
LOG LOG reads the number (must be > 0) in the accumulator, computes the
base 10 logarithm of the value, and writes the result to the accumulator,
overwriting the original contents.
An attempt to LOG a value equal to or less than zero causes the instruc-
tion to be skipped and writes a “7” (Run-time Error code 7) to the PER-
ROR parameter.
Example 1 (AC = accumulator):
16 ... Assume AC has value +2000.00 after Step 16.
17 LOG AC has value of +3.30103 after Step 17.
NOT NOT reads the value (real, integer, or boolean) in the accumulator (zero
value = False, non-zero value = True), logically negates the value, and
writes the result into the accumulator, overwriting the original value.
Example (AC = accumulator):
16 ... Assume AC has value of 0 after Step 16.
17 NOT AC has value of 1 after Step 17.
26 ... Assume AC has value of 0.21 after Step 26.
27 NOT AC has value of 0 after Step 27.
300
13. CALC – Calculator Block B0193AX – Rev N
RND RND reads the number in the accumulator, rounds off the value to the
nearest integer, and writes the result into the accumulator as an integer,
overwriting the original value.
If the decimal portion is less than 0.5, the value is rounded down to the
integer portion of the number. If the decimal portion is 0.5 or greater, the
value is rounded up to the next higher integer.
Example 1 (AC = accumulator):
16 ... Assume AC has value of 43.499 after Step 16.
17 RND AC has integer value of 43 after Step 17.
Since the RND instruction can increase or decrease signed numbers, arith-
metic overflow conditions can occur. You should be aware that if this
occurs, the I/A Series hardware causes the hexadecimal value of
0x80000000 to be written to the accumulator, regardless of the direction
of the overflow.
SIN SIN reads the number in the accumulator (the value of the angle in radi-
ans), computes the sine of the angle, and writes the result into the accu-
mulator, overwriting the original contents.
Example (AC = accumulator):
16 ... Assume AC has angle value of +.5236 [Pi/6] radians after
Step 16. Pi/6 radians = 30 degrees.
17 SIN AC has value of +0.5000 after Step 17.
SQR SQR reads the number in the accumulator, computes the square of the
value, and writes the result into the accumulator, overwriting the original
contents.
Example (AC = accumulator):
16 ... Assume AC has value -7.0 or +7.0 after Step 16.
17 SQR AC has value of +49.0000 after Step 17.
SQRT SQRT reads the number (must be ≥ 0) in the accumulator, computes the
square root of the value, and writes the positive root to the accumulator,
writing over the original contents.
An attempt to SQRT a value less than zero causes the instruction to be
skipped and writes a “1” (Run-time Error code 1) to the PERROR param-
eter.
Example (AC = accumulator):
16 ... Assume AC has value +49.0000 after Step 16.
17 SQRT AC has value of +7.00000 after Step 17.
301
B0193AX – Rev N 13. CALC – Calculator Block
TAN TAN reads the number in the accumulator (the value of the angle in radi-
ans), computes the tangent of the angle, and writes the result into the
accumulator, overwriting the original contents.
Example (AC = accumulator):
16 .. Assume AC has angle value of +.7853983 [Pi/4] radians
after Step 16. Pi/4 radians = 45 degrees.
17 TAN AC has value of +1.0000 after Step 17.
TRC TRC reads the number in the accumulator, truncates the mantissa, or dec-
imal portion, and writes the result into the accumulator as a floating point
value, overwriting the original value.
Example (AC = accumulator):
16 ... Assume AC has value of 43.999 after Step 16.
17 TRC AC has integer value of 43.0 after Step 17.
Since the TRC instruction can increase or decrease signed numbers, arith-
metic overflow conditions can occur. You should be aware that if this
occurs, the I/A Series hardware causes the hexadecimal value of
0x80000000 to be written to the accumulator, regardless of the direction
of the overflow.
302
13. CALC – Calculator Block B0193AX – Rev N
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.
Example (To calculate (RI01/RI02)):
12 IN RI01 Puts RI01 into AC – assume a value of 12.3485.
13 DIV RI02 Divides the value in AC by RI02 [assume a value of
3.7318] then pushes the result 3.2226369 onto the
stack.
14 OUT RO01 Writes the value in the accumulator at the top of the
stack, 3.2226369, to the RO01 parameter.
EXP EXP reads the numbers from the top two stack locations, raises the first
operand (base) to the power of the second operand (exponent), decre-
ments the stack pointer, and writes the product 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.
An attempt to EXP a negative number (base less than 0) causes the
instruction to be skipped and writes a “9” (Run-time Error code 9) to the
PERROR parameter.
Example (AC = accumulator):
12 IN RI01 Puts RI01 into AC – assume a value of 1.483.
13 IN RI02 Puts RI02 into AC – assume a value of 3.10.
The 1.483 value is pushed down one stack location.
14 EXP Raises 1.483 to the 3.10 power and stores the result
[+3.392639] into the AC, overwriting the 1.483 value.
The 3.10 value is inaccessible.
303
B0193AX – Rev N 13. CALC – Calculator Block
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.
If nn is invalid “-3” (Error Code -3) is written to the PERROR
parameter.
Example (AC = accumulator):
12 IN RI01 Puts RI01 into AC – assume a value of 12.3485.
13 IN RI02 Puts RI02 into AC – assume a value of 3.73182.
The 12.3485 value is pushed down one stack location.
14 IDIV Divides 3 into 12 and stores the result [+4] into the AC,
overwriting the 12.3485 value. The 3.73182 value is
inaccessible.
IMOD IMOD (Integer Modulus) reads the numbers from the top two stack loca-
tions, truncates the values, divides the second operand (divisor) into the
first operand (dividend), decrements the stack pointer, and writes the
truncated remainder 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.
An attempt to divide by zero (truncated divisor = 0) writes a “4” (Run-
time Error Code 4) to the PERROR parameter at run-time.
Example (AC = accumulator):
12 IN RI01 Puts RI01 into AC – assume a value of 12.3485.
13 IN RI02 Puts RI02 into AC – assume a value of 3.73182.
The 12.3485 value is pushed down one stack location.
14 IMOD Divides 3 into 12 and stores the remainder [0] into the
AC, overwriting the 12.3485 value. The 3.73182 value
is inaccessible.
SEED SEED (Seed the Random Number Generator) stores the contents of the
accumulator into the seed value for the RAND and RANG instructions.
304
13. CALC – Calculator Block B0193AX – Rev N
The initial seed value equals 100,001 and is changed by each iteration of
the RAND instruction.
SUB RIxx reads the value stored in RIxx (the CALC’s Real Input parame-
ter xx), subtracts it from the value that it pops from the stack, then pushes
the result back onto the stack. SUB ROxx and SUB Mxx do the same for
the values stored at ROxx and memory location xx, respectively. See the
example for ADD on page 306.
305
B0193AX – Rev N 13. CALC – Calculator Block
NAND, NOR, XOR, and NXOR. For information on how the Ixx and Oxx pseudo-parameters
are also used by the IN and OUT I/O instructions, see “I/O Reference Instructions” on page 324.
This section describes the eighteen instructions of the type Polyadic in the following order: ADD,
AND, ANDX, AVE, MAXO, MEDN, MIN, MUL, NAND, NANX, NOR, NORX, NXOR,
NXOX, OR, ORX, XOR, and XORX
ADD RIxx reads the value stored in RIxx (the CALC’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. The same
functionality is provided for in SUB, MUL, and DIV.
AND or AND nn or AND arg or AND ~arg (where arg is BIxx, BOxx, Ixx, Oxx, or Mxx)
The first form, AND, reads all the values from the stack, performs a logi-
cal AND function, decrements the stack pointer, and writes the result into
the new accumulator location (the new top of stack location). This over-
writes the first operand and isolates the other operands from any further
access.
AND nn reads the top nn values from the stack and performs the same
actions. If nn exceeds the current number of stack operands, a “6”
(Run-time Error Code 6) is written to the PERROR parameter.
Example (AC = accumulator: 0 value = False, non-0 value = True):
11 CST Clears the stack.
12 IN BI01 Puts BI01 into AC – assume value is True.
13 IN BI07 Puts BI07 into AC – assume value is False.
The prior value is pushed down one stack location.
14 IN BO03 Puts BO03 into AC – assume value is True.
The prior values are pushed down one stack location.
306
13. CALC – Calculator Block B0193AX – Rev N
AND arg reads the value at the top of the stack, performs a logical AND
function between that value and arg, and overwrites the current accumula-
tor location (the current top of stack location) with the result.
AND ~arg first inverts the value of arg, then performs the same actions as
the AND arg instruction on the inverted value of arg and the value in the
accumulator.
Example (BI01 & BI02) AC = accumulator: 0 value = False, non-0 value =
True):
11 CST Clears the stack.
12 IN BI01 Puts BI01 into AC – assume value is True.
13 AND BI02 Performs the logical AND function with operands AC
and BI02 assume value is True and overwrites the top
of the stack with the result, whose value is True.
13 AND ~BI03 First inverts the value in BI03 [assume it is False] then
performs the logical AND function with operands AC
and the inversion of BI03 [whose value is True] and
overwrites the top of the stack with the result.
14 OUT RO01 (Puts AC into RO01 – the value is True.
For information on how to use the Ixx and Oxx pseudo-parameters, see
page 305.
ANDX or ANDX nn
ANDX (Packed Logical AND) reads all the values or a specified number
(nn) of values from the stack, performs a 16-bit logical AND function,
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.
If nn exceeds the current number of stack operands, a “6” (Run-time
Error Code 6) is written to the PERROR parameter.
Example (AC = accumulator: 0 value = False, non-0 value = True):
11 CST Clears the stack.
12 IN BI01 Puts BI01 into AC – assume value is True.
13 IN BI07 Puts BI07 into AC – assume value is False.
The prior value is pushed down one stack location.
14 IN BO03 Puts BO03 into AC – assume value is True.
The prior values are pushed down one stack location.
15 IN BI14 Puts BI14 into AC – assume value is True.
The prior values are pushed down one stack location.
307
B0193AX – Rev N 13. CALC – Calculator Block
16 ANDX Performs the packed logical AND function and stores the
results, all 0s, into the AC, overwriting the True value
loaded in from BI01. The other values are inaccessible.
AVE or AVE nn The first form, AVE, reads all the numbers 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 fur-
ther access.
AVE nn reads the top nn values from the stack, computes the mean alge-
braic value of the nn topmost values on the stack, writes this value into the
nnth position from the top of the stack, and sets the new top of the stack
(the accumulator) to this position. If nn exceeds the current number of
stack operands, a “6” (Run-time Error Code 6) is written to the PERROR
parameter.
Example (AC = accumulator):
11 CST (Clears the stack.)
12 IN RI01 (Puts RI01 into AC – assume a value of 12.3485.)
13 IN RI02 (Puts RI02 into AC – assume a value of 3.73182.
The 12.3485 value is pushed down one stack location.)
14 IN RI03 (Puts RI03 into AC – assume a value of -2.0037
The prior values are pushed down one stack location.)
15 IN RI04 (Puts RI04 into AC – assume a value of -0.8369.
The prior values are pushed down one stack location.)
16 AVE (Calculates the mean algebraic value, 3.30993, and
stores this value into the AC, overwriting the 12.3485
value. The other values are inaccessible.)
308
13. CALC – Calculator Block B0193AX – Rev N
MEDN MEDN reads all the numbers from the stack, determines the median
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.
The median value is the mid-value in an odd number of operands, and the
average of the two middle values in an even number of operands. These
operations are performed after the inputs are arranged conceptually in
ascending order.
Example (AC = accumulator):
11 CST Clears the stack.
12 IN RI01 Puts RI01 into AC – assume a value of 12.3485.
13 IN RI02 Puts RI02 into AC – assume a value of 3.73182.
The 12.3485 value is pushed down one stack location.
14 IN RI03 Puts RI03 into AC – assume a value of -2.0037.
The prior values are pushed down one stack location.
15 IN RI04 Puts RI04 into AC – assume a value of -0.8369.
The prior values are pushed down one stack location.
16 MEDN Computes the average of the two middle values,
3.73182 and -0.8369, and stores this value, 1.44746,
into the AC, overwriting the 12.3485 value. The other
values are inaccessible.
MIN or MIN nn The first form, MIN, reads all the numbers 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.
MIN nn reads the top nn values from the stack, selects the minimum alge-
braic value from among the nn topmost values on the stack, writes this
value into the nnth position from the top of the stack, and sets the new
top of the stack (the accumulator) to this position. If nn exceeds the cur-
rent number of stack operands, a “6” (Run-time Error Code 6) is written
to the PERROR parameter.
Example (AC = accumulator):
11 CST Clears the stack.
12 IN RI01 Puts RI01 into AC – assume a value of 12.3485.
309
B0193AX – Rev N 13. CALC – Calculator Block
MUL RIxx reads the value stored in RIxx (the CALC’s Real Input param-
eter xx), multiplies it with the value that it pops from the stack, then
pushes the result back onto the stack. MUL ROxx and MUL Mxx do the
same for the values stored at ROxx and memory location xx, respectively.
Example: To calculate (RI01 * RI02):
12 IN RI01 Puts RI01 into AC – assume a value of 12.3485.
13 MUL RI02 Multiplies the value in AC by RI02 [assume a value
of 3.7318] then pushes the result 46.0821323 onto
the stack.
14 OUT RO01 Writes the value in the accumulator at the top of the
stack [46.0821323] to the RO01 parameter.
310
13. CALC – Calculator Block B0193AX – Rev N
15 SUB RI04 Subtracts the value in RI04 [assume 5.199] from the
AC and pushes the result [8.914 - 5.199 = 3.72] onto
the stack.
16 MUL Pops the top two values from the stack, multiplies
them [16.08032 * 3.72 = 59.81879] then pushes the
result onto the stack.
17 OUT RO01 Writes the value in the accumulator at the top of the
stack [59.81879] to the RO01 parameter.
NAND or NAND nn or NAND arg or NAND ~arg (where arg is BIxx, BOxx, Ixx, Oxx, or Mxx
The first form, NAND, reads all the values or a specified number (nn) of
values from the stack, performs a logical NAND function, 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 other operands from any further access.
If nn exceeds the current number of stack operands, a “6” (Run-time
Error 6) is written to the PERROR parameter.
Example: (AC = accumulator: 0 value = False, non-0 value = True):
11 CST Clears the stack.
12 IN BI01 Puts BI01 into AC – assume value is True.
13 IN BI07 Puts BI07 into AC – assume value is False.
The prior value is pushed down one stack location.
14 IN BO03 Puts BO03 into AC – assume value is True.
The prior values are pushed down one stack location.
15 IN BI14 Puts BI14 into AC – assume value is True.
The prior values are pushed down one stack location.
16 NAND Performs the logical NAND function, and stores the
result, 1, into the AC, overwriting the True value loaded
in from BI01. The other values are inaccessible.
NAND arg reads the value at the top of the stack, performs a logical
NAND function between that value and arg, and overwrites the current
accumulator location (the current top of stack location) with the result.
NAND ~arg first inverts the value of arg, then performs the same actions
as the NAND arg instruction on the inverted value of arg and the value in
the accumulator.
Example ((BI01 NAND BI02) AC = accumulator: 0 value = False, non-0
value = True):
11 CST Clears the stack.
12 IN BI01 Puts BI01 into AC – assume value is True.
13 NAND BI02 Performs the logical NAND function with
operands AC and BI02 [assume value is False] and
overwrites the top of the stack with the result,
whose value is True.
311
B0193AX – Rev N 13. CALC – Calculator Block
For information on how to use the Ixx and Oxx pseudo-parameters, see
page 305.
NANX or NANX nn
NANX (Packed Logical NAND) reads all the values, or a specified num-
ber (nn) of values, from the stack, performs a 16-bit logical NAND func-
tion, 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.
If nn exceeds the current number of stack operands, a “6” (Run-time
Error Code 6) is written to the PERROR parameter.
NOR or NOR nn or NOR arg or NOR ~arg (where arg is BIxx, BOxx, Ixx, Oxx, or Mxx)
NOR reads all the values or a specified number (nn) of values from the
stack, performs a logical NOR function, 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 other operands
from any further access.
If nn exceeds the current number of stack operands, a “6” (Run-time
Error 6) is written to the PERROR parameter.
Example (AC = accumulator: 0 value = False, non-0 value = True):
11 CST Clears the stack.
12 IN BI01 Puts BI01 into AC – assume value is True.
13 IN BI07 Puts BI07 into AC – assume value is False.
The prior value is pushed down one stack location.
14 IN BO03 Puts BO03 into AC – assume value is True.
The prior values are pushed down one stack location.
15 IN BI14 Puts BI14 into AC – assume value is True.
The prior values are pushed down one stack location.
16 NOR Performs the logical NOR function, and stores the
result, 0, into the AC, overwriting the True value
loaded in from BI01. The other values are inaccessible.
NOR arg reads the value at the top of the stack, performs a logical NOR
function between that value and arg, and overwrites the current accumula-
tor location (the current top of stack location) with the result.
312
13. CALC – Calculator Block B0193AX – Rev N
NOR ~arg first inverts the value of arg, then performs the same actions as
the NOR arg instruction on the inverted value of arg and the value in the
accumulator.
Example ((BI01 NOR BI02) AC = accumulator: 0 value = False, non-0
value = True):
11 CST Clears the stack.
12 IN BI01 Puts BI01 into AC – assume value is True.
13 NOR BI02 Performs the logical NOR function with operands AC
and BI02 [assume value is False] and overwrites the top
of the stack with the result, whose value is False.
14 NOR ~BI03 First inverts the value in BI03 [assume it is True] then
performs the logical NOR function with operands AC
and the inverted value in BI03 [whose value is False]
and overwrites the top of the stack with the result.
15 OUT RO01 Puts AC into RO01 – the value is True.
For information on how to use the Ixx and Oxx pseudo-parameters, see
page 305.
NORX or NORX nn
NORX (Packed Logical NOR) reads all the values, or a specified number
(nn) of values, from the stack, performs a 16-bit logical NOR function,
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.
If nn exceeds the current number of stack operands, a “6” (Run-time
Error Code 6) is written to the PERROR parameter.
NXOR or NXOR nn or NXOR arg or NXOR ~arg (where arg is BIxx, BOxx, Ixx, Oxx, or Mxx)
NXOR reads all the values or a specified number (nn) of values from the
stack, performs a logical Exclusive NOR function, 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
other operands from any further access.
The Exclusive NOR produces a True output for an even number of True
inputs, a False output for an odd number of True inputs, and a True out-
put if all inputs are False.
If nn exceeds the current number of stack operands, a “6” (Run-time
Error 6) is written to the PERROR parameter.
Example (AC = accumulator: 0 value = False, non-0 value = True):
11 CST Clears the stack.
12 IN BI01 Puts BI01 into AC – assume value is True.
13 IN BI07 Puts BI07 into AC – assume value is False.
The prior value is pushed down one stack location.
313
B0193AX – Rev N 13. CALC – Calculator Block
NXOR arg reads the value at the top of the stack, performs a logical
NXOR function between that value and arg, and overwrites the current
accumulator location (the current top of stack location) with the result.
NXOR ~arg first inverts the value of arg, then performs the same actions
as the NXOR arg instruction on the inverted value of arg and the value in
the accumulator.
Example ((BI01 NXOR BI02) AC = accumulator: 0 value = False, non-0
value = True):
11 CST Clears the stack.
12 IN BI01 Puts BI01 into AC – assume value is True.
13 NXOR BI02 Performs the logical NXOR function with
operands AC and BI02 [assume value is False] and
overwrites the top of the stack with the result,
whose value is False.
14 NXOR ~BI03 First inverts the value in BI03 [assume it is True]
then performs the logical NXOR function with
operands AC and the inverted value in BI03
[whose value is False] and overwrites the top of the
stack with the result.
15 OUT RO01 Puts AC into RO01 – the value is True.
For information on how to use the Ixx and Oxx pseudo-parameters, see
page 305.
NXOX or NXOX nn
NXOX (Packed Logical NXOR) reads all the values, or a specified number
(nn) of values, from the stack, performs a 16-bit packed logical Exclusive
NOR function, and writes 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.
The Exclusive NOR produces a True output for an even number of True
inputs, a False output for an odd number of True inputs, and a True out-
put if all inputs are False.
If nn exceeds the current number of stack operands, a “6” (Run-time
Error 6) is written to the PERROR parameter.
314
13. CALC – Calculator Block B0193AX – Rev N
OR arg reads the values at the top of the stack, performs a logical OR
function between that value and arg, and overwrites the current accumula-
tor location (the current top of stack location) with the result.
OR ~arg first inverts the value of arg, then performs the same actions as
the OR arg instruction on the inverted value of arg and the value in the
accumulator.
Example ((BI01 | BI02) AC = accumulator: 0 value = False, non-0 value =
True):
11 CST Clears the stack.
12 IN BI01 Puts BI01 into AC – assume value is True.
13 OR BI02 Performs the logical OR function with operands AC
and BI02 [assume value is False] and overwrites the
top of the stack with the result, whose value is True.
14 OR ~BI03 First inverts the value in BI03 [assume it is True] then
performs the logical OR function with operands AC
and the inverted value in BI03 [whose value is False]
and overwrites the top of the stack with the result.
15 OUT RO01 Puts AC into RO01 – the value is True.
For information on how to use the Ixx and Oxx pseudo-parameters, see
page 305.
ORX or ORX nn ORX (Packed Logical OR) reads all the values or a specified number (nn)
of values from the stack, performs a 16-bit logical NOR function, decre-
ments the stack pointer, and writes the result into the new accumulator
315
B0193AX – Rev N 13. CALC – Calculator Block
location (the new top of stack). This overwrites the first operand and iso-
lates the other operands from any further access.
If nn exceeds the current number of stack operands, a “6” (Run-time
Error Code 6) is written to the PERROR parameter.
Example (AC = accumulator: 0 value = False, non-0 value = True):
11 CST Clears the stack.
12 IN BI01 Puts BI01 into AC – assume value is True.
13 IN BI07 Puts BI07 into AC – assume value is False.
The prior value is pushed down one stack location.
14 IN BO03 Puts BO03 into AC – assume value is True.
The prior values are pushed down one stack location.
15 IN BI14 Puts BI14 into AC – assume value is True.
The prior values are pushed down one stack location.
16 ORX Performs the packed logical OR function, and stores the
results, hex 0001, into the AC, overwriting the True value
loaded in from BI01. The other values are inaccessible.
XOR or XOR nn or XOR arg or XOR ~arg (where arg is BIxx, BOxx, Ixx, Oxx, or Mxx)
XOR reads all the values from the stack, performs a logical Exclusive OR
function, 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 other operands from any further access.
The Exclusive OR produces a True output for an odd number of True
inputs, a False output for an even number of True inputs, and a False out-
put if all inputs are False.
If nn exceeds the current number of stack operands, a “6” (Run-time
Error Code 6) is written to the PERROR parameter.
Example (AC = accumulator: 0 value = False, non-0 value = True):
11 CST Clears the stack.
12 IN BI01 Puts BI01 into AC – assume value is True.
13 IN BI07 Puts BI07 into AC – assume value is False.
The prior value is pushed down one stack location.
14 IN BO03 Puts BO03 into AC – assume value is True.
The prior values are pushed down one stack location.
15 IN BI14 Puts BI14 into AC – assume value is True.
The prior values are pushed down one stack location.
16 XOR Performs the exclusive OR function, and stores the
result, 1, into the AC, overwriting the True value
loaded in from BI01. The other values are inaccessible.
XOR arg reads the value at the top of the stack, performs a logical XOR
function between that value and arg, and overwrites the current accumula-
tor location (the current top of stack location) with the result.
316
13. CALC – Calculator Block B0193AX – Rev N
XOR ~arg first inverts the value of arg, then performs the same actions as
the XOR arg instruction on the inverted value of arg and the value in the
accumulator.
Example ((BI01 XOR BI02) AC = accumulator: 0 value = False, non-0
value = True):
11 CST Clears the stack.
12 IN BI01 Puts BI01 into AC – assume value is True.
13 XOR BI02 Performs the logical XOR function with operands AC
and BI02 [assume value is False] and overwrites the
top of the stack with the result, whose value is True.
14 XOR ~BI03 First inverts the value in BI03 [assume it is True] then
performs the logical XOR function with operands AC
and the inverted value in BI03 [whose value is False]
and overwrites the top of the stack with the result.
15 OUT RO01 Puts AC into RO01 – the value is True.
For information on how to use the Ixx and Oxx pseudo-parameters, see
page 305.
XORX or XORX nn
XORX (Packed Logical XOR) reads all the values or a specified number
(nn) of values from the stack, performs a 16-bit packed logical Exclusive
OR function, decrements the stack pointer, and writes 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.
The Exclusive OR produces a True output for an odd number of True
inputs, a False output for an even number of True inputs, and a False out-
put if all inputs are False.
If nn exceeds the current number of stack operands, a “6” (Run-time
Error Code 6) is written to the PERROR parameter.
Example (AC = accumulator: 0 value = False, non-0 value = True):
11 CST Clears the stack.
12 IN BI01 Puts BI01 into AC – assume value is True.
13 IN BI07 Puts BI07 into AC – assume value is False.
The prior value is pushed down one stack location.
14 IN BO03 Puts BO03 into AC – assume value is True.
The prior values are pushed down one stack location.
15 IN BI14 Puts BI14 into AC – assume value is True.
The prior values are pushed down one stack location.
16 XORX Performs the packed logical exclusive OR function,
and stores the results, hex 0001, into the AC,
overwriting the True value loaded in from BI01.
The other values are inaccessible.
317
B0193AX – Rev N 13. CALC – Calculator Block
BIF stp# BIF (Branch If False) branches to the step number designated by the oper-
and if the value in the accumulator equals zero.
BII nn BII (Branch If Block Initializing) branches to the step number designated
by the operand if the CALC block is initializing.
An attempt to Go To a nonexistent step number, or to a step number
lower than or equal to the current step number, writes a “-4” (Syntax
Error – GTO out of range) to the PERROR parameter. The CALC block
detects this error at installation and goes to the Undefined state.
BIN stp# BIN (Branch If Negative) branches to the step number designated by the
operand if the value in the accumulator is less than zero. Zero is consid-
ered a positive number.
BIP stp# BIP (Branch If Positive) branches to the step number designated by the
operand if the value in the accumulator is greater than or equal to zero.
BIT stp# BIT (Branch If True) branches to the step number designated by the oper-
and if the value in the accumulator is a non-zero value.
BIZ stp# BIZ (Branch If Zero) branches to the step number designated by the oper-
and if the value in the accumulator equals zero.
END END terminates the program. The END instruction is not required but
each program can have one, and only one, END statement and it must be
the very last statement in the program. Additional END statements set the
DEFINE flag to false. The block cannot run while the DEFINE flag is
false. Step #50 does not have to be an END statement. Step #50 can be
any legal instruction. If no END statement exists in the CALC block pro-
gram, all 50 steps are executed, unless an EXIT statement is encountered.
EXIT EXIT terminates the program at the current statement number. The
EXIT instruction eliminates the need for a GTO instruction pointing to
an END statement. You can use as many EXIT statements as you need.
GTI or GTI Mnn or GTI RInn or GTI IInn or GTI RDnn or GTI IOnn
GTI (Branch Indirect) branches to the step number designated by the
operand. If an operand is not designated, the step number is the contents
of the accumulator. The operand can specify a memory register (Mnn),
and input or output of a type real or integer (RInn, IInn, ROnn, IOnn).
318
13. CALC – Calculator Block B0193AX – Rev N
GTO stp# GTO (Go To) branches unconditionally to the step number designated by
the operand.
An attempt to Go To a nonexistent step number, or, to a step number
lower than or equal to the current step number, writes a “-4” (Syntax
Error – GTO out of range) to the PERROR parameter. The CALC block
detects this error at installation and goes to the Undefined state.
NOP NOP (No Operation) proceeds at once to the next step number in the
program.
SIEC SIEC (Skip If Error flag Cleared) skips over the next instruction if the
internal error flag is cleared. The error flag is cleared prior to block execu-
tion each cycle and set when an error event occurs. See “Error Conditions”
on page 336 for a description of error types.
Example:
21 SQRT Computes the square root of the Accumulator value.
22 SIEC Skips Step #23 if there are no errors.
23 GTO 40 Go To Step 40, typically the start of an error reporting
routine that is skipped when the error flag is cleared.
24 IN RI07 No errors – Input another value and continue on with
the data handling routine.
25 IN RI08... etc. ...
319
B0193AX – Rev N 13. CALC – Calculator Block
320
13. CALC – Calculator Block B0193AX – Rev N
include an operand specifying the particular element. Instructions referencing the stack, or all of
data storage, need no operand.
The memory references in the CLM, STM, and LAC instructions must preface the memory
index number with the letter “M,” as shown in the individual instruction descriptions. The lead-
ing zero is not necessary (for example, you may use LAC M03 or LAC M3).
You may not omit the letter “M” in any of these instructions. References to the permissibility of
omitting the leading “M” in earlier versions of this document were incorrect.
This section describes the seventeen memory reference instructions in the following order: CLA,
CLM, CLR, CLRB, CST, DEC, DUP, INC, LAC, LACI, POP, RCL, SET, SETB, STM, STMI,
SWP, and TSTB.
CLM Mnn CLM Mnn clears a memory register. “nn” is a one or two digit number,
between 1 (or 01) and 24, that specifies the specific memory register to be
cleared.
CLRB or CLRB nn
CLRB (Clear Packed Boolean) clears to 0 a specified logic bit in the accu-
mulator. If an operand is not specified the bit number is on the stack and
the bit number is removed from the stack when instruction is executed. nn
is a bit number between 1 and 16 in the accumulator.
If the bit number is less than 1 or greater than 16 an 11 (Run-time Error
Code 11) is written to the PERROR parameter at run-time.
CST CST resets the stack pointer to the bottom of the stack and clears the bot-
tom stack element. Since the block implicitly executes a CST prior to exe-
cution, it is not required to start a program with a CST instruction.
321
B0193AX – Rev N 13. CALC – Calculator Block
specify a memory register (Mnn) a type real, integer, or long integer out-
put (ROnn, IOnn, LOnn). The limits for decrementing are as follows:
If stack or Mnn operand, value is clamped at -16777215.
If IOnn operand, value is clamped at -32768.
If LOnn operand, value is clamped at -2147483648.
If ROnn operand, value is clamped at LSCOnn.
If nn is invalid a “-3” (Syntax Error Code -3) is written to the
PERROR parameter. If an output operand is specified, the action is taken
only when the block is in AUTO.
DUP DUP (Duplicate Operands) copies the last stack operand back onto the
stack.
LACI Mnn LACI (Load Accumulator Indirect) loads the accumulator from a specified
memory register with the contents of the memory register indexed by the
operand.
If nn is less than one or greater than 24 a “-3” (Syntax Error Code -3) is
written to the PERROR parameter.
If the specified memory contents are less than one or greater than 24 a
“10” (Run-time Error Code 10) is written to the PERROR parameter at
run-time.
POP POP pops the last value (most recent push) off the stack and discards it.
The stack pointer decrements to point to the next value on the stack.
322
13. CALC – Calculator Block B0193AX – Rev N
An attempt to push the stack pointer below the bottom of the stack
results in the stack pointer being clamped to the first stack element with
the program error flag set and PERROR set to 6 (Stack Underflow).
SETB or SETB nn
SETB (Set Packed Boolean) sets, to 1, a specified logic bit in the accumu-
lator. If an operand is not specified the bit number is on the stack and the
bit number is removed from the stack when the instruction is executed. nn
is a bit number between 1 and 16 in the accumulator.
If the bit number is less than 1 or greater than 16, an 11 (Run-time Error
Code 11) is written to the PERROR parameter at run-time.
STM Mnn STM Mnn stores the accumulator contents into a memory register. “nn” is
a one or two digit number, between 1 (or 01) and 24, that specifies the
specific memory register that is to receive the accumulator data. The accu-
mulator is unaffected.
STMI Mnn STMI (Store Memory Indirect) stores the accumulator contents into a
specified memory register indexed by the contents of the memory register
indexed by the operand. “nn” is one or two digit number between 1 or
(01) and 24 that specifies the specific memory register that is to specify the
recipient of the data. The accumulator is unaffected.
If nn is less than one or greater than 24, a “-3” (Syntax Error Code -3) is
written to the PERROR parameter.
If the specified memory contents are less than one or greater than 24, a
“10” (Run-time Error Code 10) is written to the PERROR parameter at
run-time.
323
B0193AX – Rev N 13. CALC – Calculator Block
TSTB or TSTB nn
TSTB (Test Packed Boolean) tests a specified logic bit in the accumulator.
If the bit is true (=1), TSTB writes the value 1 into the accumulator, or if
the bit is false (=0), zeroes the accumulator. The instruction may specify
the bit number (nn) in the operand. If there is no operand, the instruction
goes to the stack for the bit number, and removes it during execution.
The bit number must be between 1 and 16. If it is less than 1 or larger
than 16, an 11 (Run-time Error Code 11) is written to the PERROR
parameter at run-time.
CBD xOnn CBD clears (sets to 0) the Bad status bit of the local value of the output
parameter specified by the operand. The CALC block, when operating in
the Auto state, transfers the local value to the specified output parameter.
Specifiable outputs include BO01 to BO08, IO01 to IO06, RO01 to
RO04, and LO01 to LO02.
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.
CE xOnn CE clears (sets to 0) the Error status bit (Error = True = 1; Status OK =
False = 0) of the local value of the output parameter specified by the oper-
324
13. CALC – Calculator Block B0193AX – Rev N
and. The CALC block, when operating in the Auto state, transfers the
local value to the specified output parameter.
Specifiable operands include BO01 to BO08, RO01 to RO04, IO01 TO
IO06, LO01, and LO02. Invalid values for “nn” (for example, RO06)
activate the OUT_OF_RNG error.
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.
CHI CHI aborts all timing instructions in the CALC block. Timing instruc-
tions include the DON, DOFF, and OSP instructions.
CHN stp# CHN aborts the timing instruction located at the program step specified
by the operand.
For example, if Step 10 contains the instruction OSP 05, execution of the
instruction CHN 10 would abort the one shot pulse produced by Step 10.
COO xOnn COO (Clear Out of Service) clears the out-of-service (OOS) status bit of
the specified output. The specified output can be real, integer, long inte-
ger, or boolean (ROnn, IOnn, LOnn, BOnn).
If nn is invalid, a “-3” (Syntax Error Code -3) is written to the
PERROR parameter.
IN operand or IN ~Boolean_operand
IN inputs the value specified by the operand (or by the inverted boolean
operand: ~Boolean_operand) and stores it in the accumulator, after incre-
menting the stack pointer to preserve prior stack contents. The operand
has several different forms:
♦ It can specify the value from an I/O parameter. The parameter can
be an input or an output, and it can be real, integer, long integer,
or boolean (RIxx, ROxx, IIxx, IOxx, BIxx, BOxx, Ixx, Oxx). If
specifying the value from a boolean operand (BIxx, BOxx, Ixx,
and Oxx), IN can also first invert the value before storing it in the
accumulator (for example, IN ~I02). For more information on the
pseudo-parameters Ixx and Oxx, see the introduction to the I/O
instructions above.
♦ It can specify the value from any of the 24 memory elements (M01
through M24).
♦ It can specify any literal integer value, positive or negative, in the
range -32768 to 32767. If an integer value out of this range is
specified, it is subjected to signed type conversion, with possibly
unexpected results. If a real literal is specified, it is truncated (not
rounded) before storage in the accumulator (for example, IN
1.765 is treated as if it were IN1.0). Truncation of a negative real
literal consists of deletion of all digits to the right of the decimal
point, and retention of the sign. For example, IN -175.4 is treated
325
B0193AX – Rev N 13. CALC – Calculator Block
Example 2 – Set a boolean output if both a boolean input is set and bits
12 and 25 of LI01 are set. (AC = accumulator):
INH Lxnn INH (Input High Order Integer) reads the high order integer of a speci-
fied long integer operand and stores it on the stack. The operand can spec-
ify a long integer input or output (LInn, LOnn).
If nn is invalid, a “-3” (Syntax Error Code -3) is written to the
PERROR parameter.
INL Lxnn INL (Input Low Order Integer) reads the low order integer of a specified
long integer operand and stores it on the stack. The operand may specify a
long integer input or output (LInn, LOnn).
326
13. CALC – Calculator Block B0193AX – Rev N
327
B0193AX – Rev N 13. CALC – Calculator Block
PRI BOnn PRI (Propagate Upstream) 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.
Example:
31 IN 4 Loads “4” onto the stack.
32 PRI RO02 Propagates the LHI, LLO, INITU, INITC, FS, BAD,
and OOS status bits, from RI04 to real output RO02.
PRO ROnn PRO (Propagate Downstream) allows you to propagate the cascade
acknowledgment 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 PRIBLK initialization acknowledgment bit
from the specified RInn, to ROnn.
Example:
41 IN 5 Loads “5” onto the stack.
42 PRO RO03 Propagates the PRIBLK initialization acknowledgment
bit in RI05 to real output RO03.
PRP ROnn PRP (Propagate) allows you to propagate RInn input errors to an ROnn
output. The RInn inputs are specified by a mask on the stack, loaded by a
prior instruction.
This instruction sets the ERROR status bit of the specified operand if any
of the specified RInn inputs are in error. An RInn input is in error when:
♦ Its BAD status bit is set true, or
♦ Its OOS (Out-of-Service) status bit is set true, or
♦ Its ERROR status bit is set true, or
♦ It is experiencing peer-to-peer path failure.
Example:
12 IN H29 Puts hex 29 into accumulator.
13 PRP RO02 Propagates any error in RI03 or RI05 or RI08 to the
real output RO02.
where:
RI05
hex 29 = 0010 1001 RI08
RI03
RBD xInn RBD reads the Bad status bit of the input specified by the operand and
stores the boolean (Bad = True = 1; Status OK = False = 0) in the accumu-
328
13. CALC – Calculator Block B0193AX – Rev N
RCN xInn RCN reads the Connect status bit of the input specified by the operand
and stores the boolean (Connected = True = 1; Unconnected = False = 0)
in the accumulator, incrementing the stack pointer to preserve the prior
accumulator contents. Allowable inputs include BI01 to BI16 and RI01
to RI08.
RE xxnn RE reads the Error status bit of the specified input or output and stores
the boolean (Error = True = 1; Status OK = False = 0) in the accumulator,
incrementing the stack pointer to preserve the prior accumulator contents.
Allowable operands include BI01 to BI16, RI01 to RI08, II01, II02,
LI01, LI02, BO01 to BO08, RO01 to RO04, IO01 TO IO06, LO01,
and LO02. Invalid values for “nn” (for example, RO06) activate the
OUT_OF_RNG error.
REL xOnn REL releases the block output specified by the operand. This allows the
output to be set via applications such as default displays, customer config-
ured displays, and user written applications. Specifiable outputs include
BO01 to BO08, IO01, and RO01 to RO04.
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 will be undefined.
RON xInn RON stores the boolean (On = True = 1; Off = False = 0) in the accumula-
tor, incrementing the stack pointer to preserve the prior accumulator con-
tents. Allowable inputs include BI01 to BI16 and RI01 to RI08.
1 0
On SRC CMP Off
SRC Connection Broken
SRC Connected to bad FBM
329
B0193AX – Rev N 13. CALC – Calculator Block
The operands specified can be real, integer, long integer or boolean inputs
or outputs (RInn, IInn, LInn, BInn, ROnn, IOnn, LOnn, BOnn).
If nn is invalid, a “-3” (Syntax Error Code -3) is written to the PERROR
parameter.
RQL xInn RQL (Read Quality Status) reads the quality status of a specified input
and sets the accumulator as follows:
♦ If the input status is BAD, OOS, or OFF_SCAN, the accumula-
tor is set to 1.
♦ If the input status is not BAD, OOS, or OFF_SCAN, the accu-
mulator is set to 0.
The inputs specified can be real, integer, long integer, or boolean inputs
(RInn, IInn, LInn, BInn).
If nn is invalid, a “-3” (Syntax Error Code -3) is written to the PERROR
parameter.
SBD xOnn SBD sets (to 1) the Bad status bit (Bad = True = 1; Status OK = False = 0)
of the local value of the output parameter specified by the operand. The
CALC block, when operating in the Auto state, transfers the local value to
the specified output parameter. Specifiable outputs include BO01 to
BO08, IO01 to IO06, RO01 to RO04, and LO01 to LO02.
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.
SE xOnn SE sets (to 1) the Error status bit (Error = True = 1; Status OK = False = 0)
of the local value of the output parameter specified by the operand. The
CALC block, when operating in the Auto state, transfers the local value to
the specified output parameter.
Specifiable operands include BO01 to BO08, RO01 to RO04, IO01 TO
IO06, LO01, and LO02. Invalid values for “nn” (for example, RO06)
activate the OUT_OF_RNG error.
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.
SEC xOnn SEC secures the block output specified by the operand. This allows the
output to be set only by the CALC block algorithm. Specifiable outputs
include BO01 to BO08, IO01, and RO01 to RO04.
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.
SOO xOnn SOO (Set Out of Service) sets the out-of-service (OOS) status bit of the
specified output. The specified output can be real, integer, long integer, or
boolean (ROnn, IOnn, LOnn, BOnn).
330
13. CALC – Calculator Block B0193AX – Rev N
STH LOnn STH (Store HIgh Order Integer) stores the last stack value into the high
order integer of the specified long integer output (LOnn). The output is
changed only when the CALC block is in AUTO.
If nn is invalid, a “-3” (Syntax Error Code -3) is written to the
PERROR parameter.
STL LOnn STL (Store Low Order Integer) stores the last stack value into the low
order integer of the specified long integer output (LOnn). The output is
changed only when the CALC block is in AUTO.
If nn is invalid, a “-3” (Syntax Error Code -3) is written to the
PERROR parameter.
331
B0193AX – Rev N 13. CALC – Calculator Block
BI01
8 sec 8 sec
BO04
332
13. CALC – Calculator Block B0193AX – Rev N
BI01
7 sec 7 sec
BO04
S R Q(n)
0 0 Q(n-1) - no change
0 1 0
1 0 1
1 1 Q(n-1) - no change
333
B0193AX – Rev N 13. CALC – Calculator Block
S R Q(n)
0 0 Q(n-1) - no change
0 1 0
1 0 1
1 1 0
334
13. CALC – Calculator Block B0193AX – Rev N
BI01
5 sec
BO04
TIM TIM calculates the time, in seconds since midnight, and stores the real
value in the accumulator, changing the stack pointer to preserve the previ-
ous accumulator contents.
CLE CLE clears the internal error flag during program execution. The internal
error flag is automatically reset prior to each block execution.
RER RER reads the internal error flag, and stores the value in the accumulator,
changing the stack pointer to preserve the previous accumulator contents.
335
B0193AX – Rev N 13. CALC – Calculator Block
Use this instruction to check for errors that may have occurred since start-
ing the current execution cycle.
336
13. CALC – Calculator Block B0193AX – Rev N
NOTE
There cannot be more than one “END” statement.
337
B0193AX – Rev N 13. CALC – Calculator Block
STEP01 CST
STEP02 IN RI01 (read Real Input #1)
STEP03 IN RI02 (read Real Input #2)
STEP04 MUL
STEP05 END
The pending result is the product of RI01 * RI02. This example illustrates a diadic type instruc-
tion that always requires two operands to compute a result.
Boolean Example:
STEP01 CST
STEP02 INBI01 (read Boolean Input #1)
STEP03 INBI02 (read Boolean Input #2)
STEP04 INBI03 (read Boolean Input #3)
STEP05 INBI04 (read Boolean Input #4)
STEP06 AND
STEP07 EXIT
The pending result is the logical AND of inputs BI1 through BI4. This example illustrates a poly-
adic instruction, which is one that operates on two or more operands.
In these examples, the results of the operations are internally stored in an accumulator register and
become available as operands for the next operation. This accumulator register is analogous to the
display register of a pocket calculator, which always displays either the current operand or the
results of the last operation.
338
13. CALC – Calculator Block B0193AX – Rev N
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
339
B0193AX – Rev N 13. CALC – Calculator Block
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 following three-part diagram, Arithmetic Chaining Example, shows how an equation is
incorporated in program steps, and the stack operations involved in these program steps, working
from the innermost parentheses outward.
Diff
Quotient
Root
Prod3
Figure 13-6. Arithmetic Chaining Example, Operation Sequence
340
13. CALC – Calculator Block B0193AX – Rev N
Stack Registers
2 3
S3 RI04 1
1 4
S2 RI02 RI03 Prod2 Prod2 Diff
(*) (*) (-) (/)
S1 RI01 Prod1 Prod1 Prod1 Prod1 Prod1 Quot
6
Stack Stack S2 5 RI05
Push Pop () (*)
(continued) Quot Root [RO01]
S1 Root Prod3
STEP11 STEP13
341
B0193AX – Rev N 13. CALC – Calculator Block
342
14. 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.
14.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 14-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 14-1.
343
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
344
14. CALCA – Advanced Calculator Block B0193AX – Rev N
14.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.
14.4 Parameters
Table 14-2. CALCA Block Parameters
345
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
346
14. CALCA – Advanced Calculator Block B0193AX – Rev N
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.
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
MA
ON
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-
347
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
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.
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.
348
14. CALCA – Advanced Calculator Block B0193AX – Rev N
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.
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.
349
B0193AX – Rev N 14. 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, and CP60.
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 14.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. See Integrated Control Software Concepts
(B0193AW) document.
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; therefore, when one of the
parameters RI01 to RI08 is the sink of a peer-to-peer connection, it will
be updated based on any change in the source of the connection.
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.
350
14. CALCA – Advanced Calculator Block B0193AX – Rev N
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 “CALCA” or select it from a configurator list, an identi-
fying integer is created specifying this block type.
14.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.
351
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
To minimize the number of arithmetic instructions, all arithmetic operations are performed in the
floating point domain.
Data is always stored as a real value. If an integer operation is defined, the operation strips the dec-
imal portion from the input real value(s), and converts the result to a real value again by adding a
zero after the decimal point. If a boolean operation is specified, the operation interprets any non-
zero value to be a logical one, and a zero value to be a logical zero, in keeping with the usual C lan-
guage convention.
The range of integer values is -32,768 to 32,767, except for the range of integer values for ADD
RIxx n and DIV RIxx n, which is -64 to 63.
The range of real values is 10-38 to 1038 for positive and negative numbers.
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.
352
14. CALCA – Advanced Calculator Block B0193AX – Rev N
353
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
354
14. CALCA – Advanced Calculator Block B0193AX – Rev N
355
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
356
14. CALCA – Advanced Calculator Block B0193AX – Rev N
14.6 Instructions
14.6.1 Instruction Processing
357
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
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.
OUTPUT
17.29 RO01 = 17.29
Part 1. Read
MA
(M)
17.29 O OUTPUT
RO01
0.0 O O
(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.
358
14. CALCA – Advanced Calculator Block B0193AX – Rev N
between the opcode and the first argument, between the first argument and the second argument,
and between the arguments and any comment you include.
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
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.
The action of each of the 114 defined instructions is specified in Section 14.6.3. The following
comments are general principles used by most of the instructions, but are not intended to override
any of the detailed specifications in Section 14.6.3.
The unary arithmetic and boolean operations take their single input from the contents of the
accumulator (located at the top of the stack). They always store the result of the operation into
the accumulator, overwriting the original accumulator value. The stack pointer remains
unchanged.
Diadic arithmetic and boolean operations obtain their two inputs from a variety of places. When
there are no command line arguments specified, the two inputs are obtained from the two top
locations of the stack, having typically been placed there by the two instructions immediately pre-
ceding the diadic instruction. The block decrements the stack pointer as the operation is being
performed and stores the result in the new accumulator location, overwriting the first of the two
operands. (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 oper-
and has a lower stack pointer value.) The second operand is also lost because it now resides in an
inaccessible position one location above the top of the stack.
If a single operand (for example, RIxx) is specified in the command line, the other operand is
obtained from the top of the stack, and the result is stored at the top of the stack, overwriting the
operand there.
If two operands (for example, RIxx and Mxx) are specified in the command line, they are used to
perform the operation. The result is pushed onto the stack.
A polyadic arithmetic or boolean instruction operates on a variable number of operands, and all of
them are on the stack.
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.
Some instructions allow a constant value as a command line argument. The instruction defini-
tions of Section 14.6.3. Use different letters to represent this constant, depending on the semantic
meaning of the constant, as follows:
♦ s represents a step number
♦ t represents a time constant
♦ b represents a bit number
359
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
360
14. CALCA – Advanced Calculator Block B0193AX – Rev N
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.
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 {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
361
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
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
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 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 -64 to 63.
NOTE
Values outside of this range will be accepted but the results are based on the right-
most 6 bits of n.
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).
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).
362
14. CALCA – Advanced Calculator Block B0193AX – Rev N
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.
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.
363
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
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.
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)
364
14. CALCA – Advanced Calculator Block B0193AX – Rev N
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}
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
365
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
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 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).
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 constant
(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.
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
366
14. CALCA – Advanced Calculator Block B0193AX – Rev N
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
367
B0193AX – Rev N 14. CALCA – Advanced 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).
368
14. CALCA – Advanced Calculator Block B0193AX – Rev N
369
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
Example:
Accumulator = +1.0472 (Pi/3) radians.
(Pi/3 radians = 60 degrees)
17 COS Compute cosine of accumulator.
Accumulator = +0.5000
CST (Clear Stack)
CST resets the stack pointer one position below the bottom of the stack,
waiting for the first value to be pushed onto the stack. Since the block
implicitly executes a CST prior to execution, it is not required to start a
program with a CST instruction.
It is, however, recommended that you issue a CST instruction just before
setting up operands for a polyadic instruction, since polyadic instructions
operate on all values currently pushed onto the stack. sptr(after) = stackbot-
tom -1.
DEC
DEC n
DEC {ROxx, IOxx, LOxx, Mxx}
(Decrement)
DEC decrements the accumulator or the specified operand.
If blank is specified, the value in the accumulator is read, algebraically
decreased 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 decreased by n and returned to the accumulator.
If Mxx is specified, the value in memory location xx is algebraically
decreased by 1.0.
If ROxx is specified and the block is in Auto, the indicated output is alge-
braically decreased 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 decremented by 1 as an integer subtraction without underflow. If the
operand value before decrementation is equal to -32,768 (-2,147,483,648
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 DEC 2 Decrement accumulator by 2.
Accumulator = -7.23. (-5.23 - 2.0)
Example 2:
M02 = 11.2
11 DEC M02 Decrement M02.
370
14. CALCA – Advanced Calculator Block B0193AX – Rev N
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 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).
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 constant
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 -64 to 63.
NOTE
Values outside of this range will be accepted but the results are based on the right-
most 6 bits of n.
371
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
output returns to one as soon as the instruction reads a logical one fol-
lowed by a zero at the input. On each cycle, the input is found in the accu-
mulator, 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.
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,
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 one-to-zero
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 zero in the accumulator at block initializa-
tion begins to time the specified delay. The timer, therefore, begins to run.
In all cases, sptr(after) = sptr(before).
Example:
RI01 = 8.0
9 IN RI01 Places RI01 into accumulator.
10 STM M01 Copies accumulator value of 8.0 to M01.
11 IN BI01 Inputs to the accumulator the state of BI01at the
execution time of each cycle.
12 DOFF M01 Looks at BI01’s input to the accumulator, uses it
to control the Step 12 DOFF timer, and writes the
timer result to the accumulator.
Accumulator = Step 12 timer output
13 OUT BO04 Outputs accumulator contents (the results of the
DOFF M01 instruction) to output BO04.
Assume that the block is in Auto.
BO04 = Step 12 timer output
372
14. CALCA – Advanced Calculator Block B0193AX – Rev N
BI01
8 sec 8 sec
BO04
373
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
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).
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}
EXP {RIxx, ROxx, Mxx} {n, 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
374
14. CALCA – Advanced Calculator Block B0193AX – Rev N
stack. EXP ROxx and EXP Mxx do the same for the values stored at ROxx
and memory location xx, respectively. sptr(after) = sptr(before).
EXP RIxx ROxx reads the values stored in RIxx and ROxx, raises the RIxx
value to the power of ROxx value, and pushes the result on the stack. Sim-
ilarly for the cases where the first operand is of type ROxx or Mxx, or the
second operand is of type RIxx or Mxx. sptr(after) = sptr(before) + 1.
EXP RIxx n reads the value stored in RIxx and the specified integer con-
stant n, raises the RIxx value to the power of n, and pushes the result on
the stack. If the first operand is ROxx or Mxx, the operation is similar.
sptr(after) = sptr(before) + 1.
Whenever both operands are specified, the first operand is raised to the
power of the second operand.
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
12 EXP RI01 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.
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.
375
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
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
376
14. CALCA – Advanced Calculator Block B0193AX – Rev N
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 values from the top two
stack locations, truncates each into integer form, integer divides the sec-
ond truncated operand (divisor) into the first truncated operand (divi-
dend), 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.
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.
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.
17 IDIV M03 The quotient, which is 3.0, overwrites the value of
19.713. The value of 5.9021 is inaccessible. The integer
modulus, which is 4.0, is in memory location M03.
Accumulator = 3.0
M03 = 4.0
IMOD (Integer Modulus)
IMOD reads the values from the top two stack locations, truncates each
into integer form, decrements the stack pointer, and writes the integer
modulus of the first divided by the second truncated value 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
integer modulus is defined as the remainder after an integer division, and
is always a whole number. sptr(after) = sptr(before) - 1.
If the truncated value of the divisor is 0, the value 0.0 is written into the
stack location where the modulus would have been placed. The value “4”
(divide run-time error) is written to the PERROR parameter.
Example:
RI01 = 19.713
RI02 = 5.9021
377
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
378
14. CALCA – Advanced Calculator Block B0193AX – Rev N
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, LOxx} (Input High Order)
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, LOxx} (Input Low Order)
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.)
379
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
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.
380
14. CALCA – Advanced Calculator Block B0193AX – Rev N
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)
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
381
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
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 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).
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 constant
(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
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
382
14. CALCA – Advanced Calculator Block B0193AX – Rev N
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
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 algebraic
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.
383
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
MIN RIxx reads the value stored in RIxx (the CALCA’s Real Input parame-
ter 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 constant
(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.
16 MIN Selects the minimum algebraic value and stores this
value into the accumulator, overwriting the RI01
value. The other values are inaccessible.
Accumulator = -2.0037
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.
384
14. CALCA – Advanced Calculator Block B0193AX – Rev N
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
15 OUT BO01 Writes the accumulator contents (the MRS output) to
BO01.
BO01 = False
385
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
386
14. CALCA – Advanced Calculator Block B0193AX – Rev N
15 SUB RI03 RI04 Subtracts RI04 from RI03 and stores (pushes)
the result on the stack.
Accumulator = 3.72
16 MUL Pops the top two values from the stack,
multiplies them, and pushes the result
(16.08032 * 3.72 = 59.81879) on the stack.
Accumulator = 59.81879
17 OUT RO01 Writes the value (59.81879) in the accumulator
(top of the stack) to the RO01 parameter.
NAN Identical to NAND
NAND
NAND c
NAND {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
NAND {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx} {BIxx,
BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
(Logical Not And)
NAND performs a logical “nand” (not and) of the contents of the specified
operands and stack locations. 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.
If blank is specified, all stack locations are NANDed together, and the
result is written into the accumulator (the new top of stack location). This
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 NANDed 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 NANDed with the accu-
mulator, and the result replaces the accumulator. sptr(after) = sptr(before).
If both operands are specified, the operands are NANDed 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.
387
B0193AX – Rev N 14. 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 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
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.
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.
388
14. CALCA – Advanced Calculator Block B0193AX – Rev N
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}
NOR {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx} {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
operands 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 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.
389
B0193AX – Rev N 14. 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 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
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.
390
14. CALCA – Advanced Calculator Block B0193AX – Rev N
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 - assume value is 13.078.
Value is truncated to 13 and used as
0000000000001101 in the calculation. The prior
values are pushed down one stack location.
16 NORX 3 Performs the packed logical NORX function and stores
the result, 1111111111110010, into the accumulator,
overwriting the value of II01. The other values are
inaccessible.
Accumulator = -14.0
NOT (Not)
NOT reads the value (real, integer, or boolean) in the accumulator (zero
value = False, non-zero value = True), logically negates the value, and
writes the result into the accumulator, overwriting the original value.
sptr(after) = sptr(before).
Example (AC = accumulator):
Accumulator = 0 after Step 16.
17 NOT Accumulator = 1 after Step 17.
Accumulator = 0.21 after Step 26.
27 NOT Accumulator = 0 after Step 27.
NOTX (Packed Logical Not)
NOTX reads the value (real, integer, or boolean) in the accumulator, per-
forms a 16-bit logical complement of the value, and writes the result into
the accumulator, overwriting the original value. (The original value is
truncated to a 16-bit integer before complementing.) sptr(after) =
sptr(before).
Example:
Accumulator = 12.0
17 NOTX Complement the accumulator.
Accumulator = -13.0. (Complement of
0000000000001100 is 1111111111110011, or -13.0.)
NXO Identical to NXOR
391
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
NXOR
NXOR c
NXOR {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
NXOR {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx} {BIxx,
BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
(Logical Not Exclusive Or)
NXOR performs a logical “nxor” of the contents of the specified operands
and stack locations. Not Exclusive Or is defined as producing a True out-
put 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.
If blank is specified, all stack locations are NXORed together, and the
result is written into the accumulator (the new top of stack location). This
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 only one operand is specified, the operand is NXORed with the accu-
mulator, and the result replaces the accumulator. sptr(after) = sptr(before).
If both operands are specified, the operands are NXORed 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 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
392
14. CALCA – Advanced Calculator Block B0193AX – Rev N
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.
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
393
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
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.
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
394
14. CALCA – Advanced Calculator Block B0193AX – Rev N
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.
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-
395
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
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.
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 pro-
gram. 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
in progress just before initialization. A zero-to-one transition of the accu-
mulator after initialization is required in order to start the pulse output. If
the TIMINI parameter is not set (TIMINI = 0) or (TIMINI = 2), the
pulse is considered to have been off just before initialization, and a logical
one in the accumulator at block initialization begins to output the speci-
fied pulse.
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 OSP 5 Looks at BI01’s input to the accumulator, uses it to
control the Step 12 OSP element, and writes the
result to the accumulator.
13 OUT BO04 Outputs accumulator contents (the results of the
OSP 5 instruction) to output BO04. Assume block
is in Auto.
BO04 = Step 12 OSP output
BI01
5 sec
BO04
396
14. CALCA – Advanced Calculator Block B0193AX – Rev N
397
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
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 speci-
fied 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.
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 operand if
any of the specified RIxx inputs are in error. An RIxx input is considered
to be in error when:
♦ its Bad status bit is True, or
♦ its Out-of-Service status bit is True, or
♦ its Error status bit is True, or
♦ its OM status field does not have the value “ON_SCAN”.
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. Hexadecimal 29 is the mask
00101001. The value “1” in the high order bit of the
mask indicates RI01, the next lower order bit
indicates RI02, and so on.
398
14. CALCA – Advanced Calculator Block B0193AX – Rev N
399
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
real or integer operands are pushed as 0.0 when they are non-zero and as
1.0 when they are zero.
In all cases, sptr(after) = sptr(before) + 1.
RCN {RIxx, IIxx. LIxx, Bxx}
(Read Connect Status)
RCN reads the linkage type of the specified input and stores the short inte-
ger result in the accumulator. sptr(after) = sptr(before) + 1.
RE {RIxx, IIxx, LIxx, BIxx, ROxx, IOxx, LOxx, BOxx}
(Read Error Bit)
RE reads the Error status bit of the specified parameter and writes its value
to the accumulator. (1 = True = error bit set, 0 = False = error bit not set.)
sptr(after) = sptr(before) + 1.
REL {ROxx, BOxx, IOxx, LOxx}
(Clear Secure Status)
REL clears the Secure status bit of the specified output parameter to False,
thereby releasing it and making it settable. Its effect is identical in Auto or
Manual mode. The effect of REL overrides that of MA. sptr(after) =
sptr(before).
RER (Read Error)
RER reads the internal error flag (the PERROR parameter) during pro-
gram execution and stores the value in the accumulator. PERROR retains
the first run-time error encountered during each block execution, or the
first error encountered after a CLE instruction. You can use this instruc-
tion to check for errors that may have occurred since starting the current
execution cycle. sptr(after) = sptr(before) + 1.
RND (Round)
RND reads the number in the accumulator, rounds off the value to the
nearest integer, and writes the result into the accumulator, overwriting the
original value.
If the decimal portion is less than 0.5, the value is rounded down to the
integer portion of the number. If the decimal portion is 0.5 or greater, the
value is rounded up to the next higher integer. In the case of negative
accumulator values, if the absolute value of the decimal portion is greater
than 0.5, the value is rounded down to the next lower integer. (See Exam-
ple 2.) sptr(after) = sptr(before).
Example 1:
16... Assume that 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 that the accumulator has value of -1.68 after Step 26.
27 RND Accumulator has value of -2.0 after Step 27.
400
14. CALCA – Advanced Calculator Block B0193AX – Rev N
401
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
402
14. CALCA – Advanced Calculator Block B0193AX – Rev N
Example:
Accumulator = +0.5236 (Pi/6) radians.
(Pi/6 radians = 30 degrees)
17 SIN Compute sine of accumulator.
Accumulator = +0.5000
SOO {ROxx, BOxx, IOxx, LOxx}
(Set Out-of-Service Status)
SOO sets the Out-of-Service status bit of the specified output parameter to
True. Its effect is identical in Auto or Manual mode. sptr(after) =
sptr(before).
SQR (Square)
SQR reads the value in the accumulator, computes the square of the value,
and writes the result into the accumulator, overwriting the original con-
tents. sptr(after) = sptr(before).
Example:
Accumulator = -7.0 or +7.0
17 SQR Computes square of accumulator
Accumulator = +49.0000
SQRT (Square Root)
SQRT reads the value (which must be ≥ 0) in the accumulator, computes
the square root of the value, and writes the positive root to the accumula-
tor, writing over the original contents. sptr(after) = sptr(before).
An attempt to SQRT a value < 0 causes the instruction to be skipped and
writes a “1” (SQRT run-time error) to the PERROR parameter.
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 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). SSF is identical to SSZ.
403
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
404
14. CALCA – Advanced Calculator Block B0193AX – Rev N
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).
STM Mxx (Store Memory)
STM Mxx stores the accumulator contents into the memory register speci-
fied by the Mxx operand, where xx is an index from 01 to 24 (or 1 to 24).
The accumulator is unaffected. sptr(after) = sptr(before).
STMI Mxx (Store Memory Indirect)
STMI Mxx stores the accumulator contents into a specified memory regis-
ter indexed by the contents of the memory register specified by the Mxx
operand, where xx is an index from 01 to 24 (or 1 to 24). The accumula-
tor is unaffected.
If Mxx does not contain an integer value, the truncated contents are used
as the index. Mxx is unaffected. sptr(after) = sptr(before).
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.
405
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
SUB
SUB {RIxx, ROxx, Mxx}
SUB {RIxx, ROxx, Mxx} {n, RIxx, ROxx, Mxx}
(Subtract)
SUB reads the values from the top two stack locations, subtracts the sec-
ond operand (subtrahend) from the first operand (minuend), decrements
the stack pointer, and writes the difference into the new accumulator loca-
tion (the new top of stack location). This overwrites the first operand and
isolates the second operand from any further access. (The later stack value
is subtracted from the earlier one.) sptr(after) = sptr(before) - 1.
SUB RIxx reads the value stored in RIxx (the CALCA’s Real Input param-
eter xx), subtracts it from the value that it pops from the stack, then
pushes the result back onto the stack. SUB ROxx and SUB Mxx do the
same for the values stored at ROxx and memory location xx, respectively.
sptr(after) = sptr(before).
SUB RIxx Mxx reads the values stored in RIxx and Mxx, subtracts the Mxx
value from the RIxx value, and stores the result on the stack. Whenever
both operands are specified, the second operand is subtracted from the
first operand. sptr(after) = sptr(before) + 1.
SUB RIxx n reads the value stored in RIxx and a specified integer constant
(n), substracts n from the RIxx value, 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:
M01 = 3.73182
RI01 = 12.3485
12 SUB RI01 M01 Substracts M01 from RI01 and stores the result
on the stack
Accumulator = +8.61668
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 -
406
14. CALCA – Advanced Calculator Block B0193AX – Rev N
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 dec-
imal 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
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.
407
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
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.
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
408
14. CALCA – Advanced Calculator Block B0193AX – Rev N
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 (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 XORX 3 Performs the packed logical XORX function and stores
the result, 0000000000001110, into the accumulator,
overwriting the loaded in from II01. The other values
are inaccessible.
Accumulator = 14.0
409
B0193AX – Rev N 14. CALCA – Advanced 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)
410
14. CALCA – Advanced Calculator Block B0193AX – Rev N
Code Definition
8 LN error (accumulator ≤ 0)
9 EXP error (base < 0)
10 Index error
11 Bit error
411
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
STEP03 IN RI02 Places Real Input 2 into accumulator and pushes Real Input 1 value down
one stack location.
STEP04 IN RI03 Places Real Input 3 into accumulator and pushes the prior values down
one stack location.
STEP05 IN RI04 Places Real Input 4 into accumulator and pushes the prior values down
one stack location.
STEP06 AVE Reads all the values from the stack (values for Real Inputs 1 through 4),
calculates the mean algebraic value for them, and stores the result into the
accumulator, overwriting the Real Input 1 value. The other values are
inaccessible.
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.
412
14. CALCA – Advanced Calculator Block B0193AX – Rev N
Prod2
Diff
Quotient
Root
Prod3
413
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
STEP01 MUL RI01 RI02 Multiplies Real Input 1 by Real Input 2 and pushes
product Prod1 onto stack.
STEP02 MUL RI03 RI04 Multiplies Real Input 3 by Real Input 4 and pushes
product Prod2 onto stack.
STEP03 IN 1 Pushes constant “1” onto stack.
STEP04 SUB Pops “1” and Prod2 from stack, performs subtraction,
and pushes difference Diff onto stack.
STEP05 DIV Pops Diff and Prod1 from stack, divides them, and
pushes Quotient onto stack.
STEP06 SQRT Pops Quotient from stack, performs square root, and
pushes result (Root) onto stack.
STEP07 MUL RI05 Pops Root from stack, multiplies it by Real Input 5, and
pushes product Prod3 onto stack.
STEP08 OUT RO01 Writes Prod3 to Real Output 1. Prod3 remains in
position 1 on the stack.
STEP9 END
Figure 14-8. Arithmetic Chaining Example, Program
1 2 3 4 5
MUL MUL IN SUB DIV SQRT
STEP01 STEP02 STEP03 STEP04 STEP05 STEP06
S4
S3 1
6
MUL OUT
STEP07 STEP08
LEGEND:
Stack Stack
[RO01] Push Pop
Prod3
414
14. CALCA – Advanced Calculator Block B0193AX – Rev N
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 10 Branches to Step 10 if difference is positive.
STEP07 IN 10 Reads constant “10.0” and pushes it onto stack.
STEP08 GTO 10 Branches to Step 10.
STEP09 IN RI01 Reads Real Input 1 and pushes it onto stack.
STEP10 OUT RO01 Writes limited measurement value to Real Output 1.
STEP11 END
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.
415
B0193AX – Rev N 14. CALCA – Advanced Calculator Block
416
15. CHARC – Characterizer Block
This chapter covers the Characterizer, or CHARC, block, its features, parameters and detailed
operations.
15.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
15.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).
417
B0193AX – Rev N 15. CHARC – Characterizer Block
15.3 Parameters
Table 15-1. CHARC Block Parameters
418
15. CHARC – Characterizer Block B0193AX – Rev N
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
419
B0193AX – Rev N 15. CHARC – Characterizer Block
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
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
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.
BCALCO Back Calculation Output is a real output that is always equal to the Mea-
surement input. During Setpoint Tracking (initiated from another block),
420
15. CHARC – Characterizer Block B0193AX – Rev N
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
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
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.
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-
421
B0193AX – Rev N 15. CHARC – Characterizer Block
DELTI1 Change Delta for Input Range 1 is a real value that defines the resolution
as a percent of the measurement range. Entering a 1 causes the Object
Manager to recognize and respond to a change of 1 percent of the full
error range.
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
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 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.
422
15. CHARC – Characterizer Block B0193AX – Rev N
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.
“W47 – INVALID A tuning block is connected to a
PARAMETER CONNECTION” PIDA
block containing a connected tuning
constant.
“W53 – INVALID PARAMETER A parameter value is not in the
VALUE” acceptable range.
“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.
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
423
B0193AX – Rev N 15. CHARC – Characterizer Block
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.
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.
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.
424
15. CHARC – Characterizer Block B0193AX – Rev N
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 bit (starting from the right).
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.
425
B0193AX – Rev N 15. CHARC – Characterizer 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-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.
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.
426
15. CHARC – Characterizer Block B0193AX – Rev N
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.
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
427
B0193AX – Rev N 15. CHARC – Characterizer 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, and CP60.
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. See Integrated Control Software Concepts
(B0193AW) document.
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.
428
15. CHARC – Characterizer Block B0193AX – Rev N
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-
ization curve. The abscissa value (the value of X) must be monotonically
increasing with the X index number; that is, X_2 must have a greater value
than X_1, X_3 must be greater than X_2, and so on. If this condition is
not met, the block is declared “undefined” at installation time and is not
429
B0193AX – Rev N 15. CHARC – Characterizer Block
operational. X values are measurements in this curve and take on the range
and units of the measurement (HSCI1, LSCI1, and EI1).
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).
430
15. CHARC – Characterizer Block B0193AX – Rev N
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).
431
B0193AX – Rev N 15. 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.
432
16. 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.
16.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 16-1.
State Change
Invert
Option Option
State Change
Messages Messages
Input From
FBM or FBC State
Point Change Contact
Input From Inversion Input
Detection
Other Block
FBM and
Channel BAD
Alarming Alarms
Status Detection
Alarm Options
Figure 16-1. CIN Block Diagram
433
B0193AX – Rev N 16. CIN – Contact Input Block
16.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).
16.4 Parameters
Table 16-1. CIN Block Parameters
434
16. CIN – Contact Input Block B0193AX – Rev N
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:
435
B0193AX – Rev N 16. CIN – Contact 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
Boolean
Bit Number* Configured Alarm Options Connection
(0 to 31) When True (B32 to B1)
0 (Least Significant) Alarm Group 8 in Use ALMOPT.B32
1 Alarm Group 7 in Use ALMOPT.B31
7 Alarm Group 1 in Use ALMOPT.B25
22 Bad I/O Alarm Configured ALMOPT.B10
26 State Alarm Configured ALMOPT.B6
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
436
16. CIN – Contact Input Block B0193AX – Rev N
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
MA
ON
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
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.
437
B0193AX – Rev N 16. CIN – Contact Input Block
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.
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
438
16. CIN – Contact Input Block B0193AX – Rev N
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.
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
439
B0193AX – Rev N 16. CIN – 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 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.
IOM_ID Fieldbus Module Identifier is a string that specifies the FBM or FBC to
which the block is connected. IOM_ID can be either:
♦ The 6-character letterbug of the FBM or FBC. The ECB must
reside in the local compound <cp_letterbug>_ECB where
cp_letterbug is the station letterbug of the CP.
♦ The full pathname of the ECB. The ECB must be local but can
reside in any compound. The pathname must be of the form
<local_compound_name>:<ecb_name>, where <ecb_name> is the
NAME parameter of the ECB.
440
16. CIN – Contact Input Block B0193AX – Rev N
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.
441
B0193AX – Rev N 16. CIN – Contact Input 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
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, and CP60.
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. See Integrated Control Software Concepts
(B0193AW) document.
442
16. CIN – Contact Input Block B0193AX – Rev N
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 451).
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-
nection 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
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.
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,
443
B0193AX – Rev N 16. CIN – Contact Input Block
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.
444
16. CIN – Contact Input Block B0193AX – Rev N
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
445
B0193AX – Rev N 16. CIN – Contact Input Block
446
16. CIN – Contact Input Block B0193AX – Rev N
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 16.5.1 are true, or the out-of-service condition of
Section 16.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 16.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 always reflect the Invert Option (IVO). When IVO is true, a true
input point value is treated as false, and a false input point value is treated as true.
447
B0193AX – Rev N 16. CIN – Contact Input Block
♦ The FBM or FBC itself is bad, that is, it has detected a fatal hardware fault, or other
fatal fault. (In this case BLKSTA.FBM is also set true.)
♦ The connected point within the FBM or FBC is bad. (In this case, BLKSTA.BAD is
also set true.)
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.
448
16. CIN – Contact Input Block B0193AX – Rev N
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.
16.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 Integrated Control Software Concepts (B0193AW) document.
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:
449
B0193AX – Rev N 16. CIN – Contact Input Block
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
COUT
LOGIC
Program
Flow
BI11 BI09 BI04 BI02 Switch
Feedstock
CIN
CIN Solenoid
FBM 241 Valve
or
CIN FBM 09 o
CIN o
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 16-3. Typical CIN Block Application
450
16. CIN – Contact Input Block B0193AX – Rev N
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
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
451
B0193AX – Rev N 16. CIN – Contact Input Block
Legend: I = Input
O = Readback from Output
NOTE
Hardware Type 23 is used for HTG Interface Unit (HIU).
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
452
16. CIN – Contact Input Block B0193AX – Rev N
Hardware Type 60 62 86 92 94 97
Point
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
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
453
B0193AX – Rev N 16. 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.
454
17. 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
455
B0193AX – Rev N 17. CMP – Compounds
456
17. CMP – Compounds B0193AX – Rev N
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.
457
B0193AX – Rev N 17. 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.
458
17. CMP – Compounds B0193AX – Rev N
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.
459
B0193AX – Rev N 17. CMP – Compounds
460
17. CMP – Compounds B0193AX – Rev N
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.
461
B0193AX – Rev N 17. 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.
462
17. CMP – Compounds B0193AX – Rev N
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 Integrated Control Software Concepts (B0193AW) document.
463
B0193AX – Rev N 17. 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 Integrated Control Soft-
ware Concepts (B0193AW) document 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.
UNACK Unacknowledge is a boolean output that the block sets to true for notifica-
tion purposes when it detects an alarm. An alarm-acknowledge display
task typically resets UNACK.
464
18. 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.
18.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 18-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 18-1. COUT Block Diagram
465
B0193AX – Rev N 18. COUT – Contact Output Block
18.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.
466
18. COUT – Contact Output Block B0193AX – Rev N
18.4 Parameters
Table 18-1. COUT Block Parameters
467
B0193AX – Rev N 18. 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
468
18. COUT – Contact Output Block B0193AX – Rev N
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
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).
469
B0193AX – Rev N 18. 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.
470
18. COUT – Contact Output Block B0193AX – Rev N
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 18.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.
471
B0193AX – Rev N 18. 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.
472
18. COUT – Contact Output Block B0193AX – Rev N
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 string that specifies the FBM or FBC to
which the block is connected. IOM_ID can be either:
♦ The 6-character letterbug of the FBM or FBC. The ECB must
reside in the local compound <cp_letterbug>_ECB where
cp_letterbug is the station letterbug of the CP.
♦ The full pathname of the ECB. The ECB must be local but can
reside in any compound. The pathname must be of the form
<local_compound_name>:<ecb_name>, where <ecb_name> is the
NAME parameter of the ECB.
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.
473
B0193AX – Rev N 18. 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.
474
18. COUT – Contact Output Block B0193AX – Rev N
** 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, and CP60.
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. See Integrated Control Software Concepts
(B0193AW) document.
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 485).
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
475
B0193AX – Rev N 18. 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.
476
18. COUT – Contact Output Block B0193AX – Rev N
18.5 Functions
18.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
477
B0193AX – Rev N 18. 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.
478
18. COUT – Contact Output Block B0193AX – Rev N
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 18.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.
479
B0193AX – Rev N 18. COUT – Contact Output Block
480
18. COUT – Contact Output Block B0193AX – Rev N
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.
481
B0193AX – Rev N 18. 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.
482
18. COUT – Contact Output Block B0193AX – Rev N
18.9 Alarming
The COUT block supports the Bad I/O alarm type. The functionality of this alarm type is dis-
cussed in the Integrated Control Software Concepts (B0193AW) manual.
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 18-3. Alarm Nomenclature
Default Indicator
Type Option Priority Group Text Display Parameter
I/O Bad BAO = True BAP BAG BAT IOBAD BAD
483
B0193AX – Rev N 18. 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
484
18. COUT – Contact Output Block B0193AX – Rev N
Hardware
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
26 O O O O O O
27 O O O O O O
28 O O O O O O
29 O O O O O O
30 O O O O O O
31 O O O O O O
32 O O O O O O
33 I/O I/O
34 I/O I/O
485
B0193AX – Rev N 18. COUT – Contact Output Block
Hardware
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
486
18. COUT – Contact Output Block B0193AX – Rev N
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.
487
B0193AX – Rev N 18. COUT – Contact Output Block
488
19. DEP – Dependent Sequence
Block
This chapter covers the Dependent Sequence, or DEP, block, its features, parameters and
detailed operations.
19.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)
19.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
489
B0193AX – Rev N 19. 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 when
the compound in which it resides changes from Off to On, or when the control pro-
cessor in which it resides undergoes a restart operation, as follows:
♦ RSTACT = 0: ACTIVE is false.
♦ RSTACT = 1: ACTIVE is true.
♦ RSTACT = 2: ACTIVE retains the value it had before the compound was turned
Off or the control processor was restarted.
♦ 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.
490
19. DEP – Dependent Sequence Block B0193AX – Rev N
19.3 Parameters
Table 19-1. DEP Block Parameters
491
B0193AX – Rev N 19. DEP – Dependent Sequence Block
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.
492
19. DEP – Dependent Sequence Block B0193AX – Rev N
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 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 Number* Configured Alarm Option Boolean Connection
(0 to 31) When True (B32 to B1)
0 Alarm Group 8 in Use ALMOPT.B32
1 Alarm Group 7 in Use ALMOPT.B31
7 Alarm Group 1 in Use ALMOPT.B25
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
493
B0193AX – Rev N 19. 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
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
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
16 ACT Active/Inactive BLKSTA.B16
18 PAUS Paused BLKSTA.B14
19 SBX Executing Sequence Block BLKSTA.B13
Exception (SBX) Statements
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.
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.
494
19. DEP – Dependent Sequence Block B0193AX – Rev N
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 resolution
as a percent of the measurement range. Entering a 1 causes the Object
Manager to recognize and respond to a change of 1 percent of the full
error range.
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.
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
495
B0193AX – Rev N 19. DEP – Dependent Sequence 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).
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.
496
19. DEP – Dependent Sequence Block B0193AX – Rev N
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
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
497
B0193AX – Rev N 19. DEP – Dependent Sequence Block
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.
MSGGR1 to MSGGR4
Message Groups 1 through 4 are integer inputs (1, 2, or 3), that direct
alarm messages to one of three 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.
498
19. DEP – Dependent Sequence Block B0193AX – Rev N
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, 2, or 3) that directs the
operational alarm message to one of three groups of alarm devices. You
can change the group number at the workstation.
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).
499
B0193AX – Rev N 19. DEP – Dependent Sequence Block
current value of Owner. Once set to the null string, the value can then be
set as desired.
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.
***** Available in CP40, CP40B, and CP60.
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. See Integrated Control Software Concepts
(B0193AW) document.
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.
500
19. DEP – Dependent Sequence Block B0193AX – Rev N
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)
1 = sets ACTIVE to 1 (= true = Active)
2 = sets ACTIVE to 1 (= true = Active)
The block asserts this initial ACTIVE state whenever:
♦ The compound in which it resides is turned on
♦ The Control Processor undergoes a restart operation.
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-
501
B0193AX – Rev N 19. DEP – Dependent Sequence Block
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.
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.
502
19. DEP – Dependent Sequence Block B0193AX – Rev N
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
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.
503
B0193AX – Rev N 19. DEP – Dependent Sequence Block
When a DEP block is Active, it is capable of executing its HLBL statements in one of the follow-
ing modes:
♦ Auto
♦ Step (semiautomatic)
♦ Manual
♦ Subr-Trace
♦ SBX-Trace
Once an DEP block is set Active, it starts executing its Sequence language statements the first
scheduled Basic Processing Cycle (BPC). Since Sequence block algorithms vary in length, a block
may become Inactive within one BPC or it may require several BPCs to execute completely.
Once all statements have been executed, the block deactivates itself unless a statement in the user
algorithm causes it to repeat.
If you program an endless loop in an DEP block, the block does not deactivate itself.
In Auto, the block attempts, each scan period, to process the number of statements specified by
the block’s BPCSTM parameter. The actual number may be less than BPCSTM when statement
execution requires suspension (such as WAIT or WAIT UNTIL, SENDCONF, or access to
remote parameters).
Step mode (also called Semiautomatic) operation is very similar to Auto mode operation except
that the block executes only those statements that belong to a particular Step. Suspension-causing
statements and the value of the BPCSTM parameter determine the maximum number of state-
ments that can be executed per BPC. The block does not deactivate itself automatically in the
Step mode.
You can divide the block’s main section into steps by defining step labels in the block’s source file.
When in the step mode (STEPMD set to true), the block will stop statement execution at the
nearest step boundary. After reaching that boundary, the block idles on the first statement of the
next step and awaits a request (step-, statement-, or unexcused request) to continue statement pro-
cessing.
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.
504
19. DEP – Dependent Sequence Block B0193AX – Rev N
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.
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.
505
B0193AX – Rev N 19. DEP – Dependent Sequence Block
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.
♦ The surrounding compound is switched to OFF.
A DEP block is Paused when one or more EXC blocks within the same Compound are in the
Active state. The DEP block(s) become Paused during the BPC in which the EXC block(s)
become Active; that is, the switch to Paused of a DEP block is independent of its PERIOD and
PHASE.
Sequential control blocks are processed every scheduled Basic Processing Cycle (BPC) as defined
for the Control Processor in which they operate. The number of statements processed each BPC is
determined by the DEP block’s BPCSTM parameter.
The scheduled BPC is determined by the block parameters PHASE and PERIOD. The PHASE
parameter specifies the BPC in which a block should be processed relative to the other blocks in
the compound. PERIOD specifies how often to process a block. See the Integrated Control Soft-
ware Concepts (B0193AW) document.
All control blocks scheduled in any given BPC are processed in the following order:
506
19. DEP – Dependent Sequence Block B0193AX – Rev N
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. The system produces an error message to indicate when an overrun occurs.
See the Integrated Control Configurator (B0193AW) document for a definition of the HLBL syn-
tax and semantics and the sequence compiler related limits.
507
B0193AX – Rev N 19. DEP – Dependent Sequence Block
508
20. DGAP – Differential Gap Block
This chapter describes the Differential Gap controller block, or DGAP, its features, parameters
and detailed operations.
20.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 20-1 and Figure 20-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 20-2. DGAP Tristate and Bistate Typical Operation
509
B0193AX – Rev N 20. DGAP – Differential Gap Block
20.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 is enabled only when the LR parameter is in local and either the out-
put is in manual. 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
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.
♦ 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.
510
20. DGAP – Differential Gap Block B0193AX – Rev N
♦ 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.
20.3 Parameters
Table 20-1. DGAP Block Parameters
511
B0193AX – Rev N 20. DGAP – Differential Gap Block
512
20. DGAP – Differential Gap Block B0193AX – Rev N
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
513
B0193AX – Rev N 20. DGAP – Differential Gap Block
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)* 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
* Bit 0 is the least significant bit (starting from the right).
514
20. DGAP – Differential Gap Block B0193AX – Rev N
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
MA
ON
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)
15 ON Compound On BLKSTA.B17
20 WLCK Workstation Lock BLKSTA.B12
515
B0193AX – Rev N 20. DGAP – Differential Gap Block
Boolean
Bit Number* Connection
(0 to 31) Name Description When True (B32 to B1)
25 LRO Local/Remote Override BLKSTA.B7
26 MAO Manual/Auto Override BLKSTA.B6
* Bit 0 is the least significant bit (starting from the right).
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 is false,
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 is false,
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
block. DEFINE is the inverse of undefined (UDEF) in the BLKSTA
parameter.
516
20. DGAP – Differential Gap Block B0193AX – Rev N
DELTI1 to DELTI2
Change Delta for Input Ranges 1and 2 are real values that define the reso-
lution as a percent of the measurement range. Entering a 1 causes the
Object Manager to recognize and respond to a change of 1 percent of the
full range. DELTI1 is used with MEAS and SPT and DELTI2 is used with
the GAP.
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.
“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.
517
B0193AX – Rev N 20. DGAP – Differential Gap Block
Message Value
“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. GAP and the GAPDB should not overlap (See
“GAP and GAPDB Parameter Validation” on page 536.
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.
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.
518
20. DGAP – Differential Gap Block B0193AX – Rev N
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
519
B0193AX – Rev N 20. 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
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
16 LMA Low Absolute Alarm Inhib- INHSTA.B16
ited
520
20. DGAP – Differential Gap Block B0193AX – Rev N
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
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 bit (starting from the right).
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.
♦ The Control Processor undergoes a reboot operation.
♦ The compound in which it resides is turned on.
521
B0193AX – Rev N 20. 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.
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
522
20. DGAP – Differential Gap Block B0193AX – Rev N
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.
523
B0193AX – Rev N 20. 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
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.
524
20. DGAP – Differential Gap Block B0193AX – Rev N
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
525
B0193AX – Rev N 20. DGAP – Differential Gap Block
While the block is in Auto, the ERR status bit is set, if PROPT is not true,
if either the MEAS input or the local SPT is in error. In Manual, no on-off
control is performed and the output is settable.
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, and CP60.
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. See Integrated Control Software Concepts
(B0193AW) document.
526
20. DGAP – Differential Gap Block B0193AX – Rev N
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)
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
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 (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.
527
B0193AX – Rev N 20. DGAP – Differential Gap Block
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.
STRKOP Setpoint Track Option is a Boolean input. When true, STRKOP enables
the setpoint to track the measurement input if the setpoint source selector
LR is in Local and the block is in Manual. SPT is nonsettable while set-
point 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.
528
20. DGAP – Differential Gap Block B0193AX – Rev N
LR
LOCSP Manual
LOCSW
REMSW Local MODOPT
Remote SPTRK GAPBD 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
529
B0193AX – Rev N 20. 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
Figure 20-4. DGAP Bistate Controller Mode
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).
530
20. DGAP – Differential Gap Block B0193AX – Rev N
Deviation
50 Setpoint - Measurement = Error
40
30
GAPDB } Deadband = GAPDB
20
10
Dead Zone
GAP 0 SPT
-10
-20
GAPDB } Deadband = GAPDB
-30
-40
-50
1
OUTINC
0
OUTDEC 0
Time
Figure 20-5. DGAP Tristate Controller Mode
The dead zone 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 falls below the (deadzone low limit + deadband), and is false
when the error rises above the deadzone low limit. OUTDEC is true when the error rises above
the (deadzone high limit + deadband), and is false when the error falls below the deadzone high
limit. With the dual outputs, you can select either increase-increase or increase-decrease controller
action depending on the controller outputs that you select.
531
B0193AX – Rev N 20. 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.
532
20. DGAP – Differential Gap Block B0193AX – Rev N
20.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.
533
B0193AX – Rev N 20. DGAP – Differential Gap Block
GAP
MEASLL
LLALIM
Low-Low Alarm Indicator is set
Low Alarm Indicator is set
Time
Figure 20-6. Absolute Alarming
534
20. DGAP – Differential Gap Block B0193AX – Rev N
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 20-7. Deviation Alarming
535
B0193AX – Rev N 20. DGAP – Differential Gap Block
MEAS
PID OUT RSP DGAP
MEAS
FBK
BCALCI BCALCO
Figure 20-8. Typical Cascade Configuration
20.4.10 Application
Figure 20-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.
536
20. DGAP – Differential Gap Block B0193AX – Rev N
MEAS
SPT
PID
OUT
RSP
MEAS
DGAP
OUTINC OUTDEC
(Increase) (Decrease)
Motor
Driven
Actuator
Position PT
Sensor
Furnace
Air
Damper
537
B0193AX – Rev N 20. DGAP – Differential Gap Block
538
21. DPIDA Controller
This chapter covers the Distributed PIDA, or DPIDA, its basic operations, features,
parameters, ECB52 parameters, and DPIDA functions and an application example.
21.1 Overview
The Distributed PIDA (DPIDA) controller implements an advanced PID (PIDA) control algo-
rithm in Fieldbus Modules (FBM04, FBM17, and FBM22) to provide fast real-time control capa-
bility (see Figure 21-1). The DPIDA controller provides very fast control cycle times and high
single-loop security. The FBM synchronizes execution of the control algorithm 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.
The ECB52 block provides the FBM interface for measurement characterization, linearization,
redundancy, out-of-range detection, Failsafe operation, and CP/FBM communications.
539
B0193AX – Rev N 21. DPIDA Controller
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
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.
540
21. DPIDA Controller B0193AX – Rev N
The FBTUNE extender block adaptively tunes the feedback controller parameters for controller
modes containing proportional and integral terms. The FFTUNE extender block provides
dynamic compensation for an absolute multiplicative or additive feedforward input and both
static and dynamic compensations for 3 or 4 incremental feedforward inputs and adapts the com-
pensator parameters.
The algorithm enhancements over the PID and PIDX blocks include the following:
♦ Setpoint limiting, SPCLMP
♦ Local setpoint ramping by rate or time to target, SPROPT
♦ Setpoint compensation to prevent overshoot, SPLLAG
♦ Improved measurement (derivative) filtering, KD
♦ Feedforward ratio and bias inputs, MULT_IN and BIAS
♦ Non-interacting tuning, NIPID
The PID and PIDX blocks are described elsewhere in this manual.
21.3 Features
21.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
541
B0193AX – Rev N 21. DPIDA Controller
542
21. DPIDA Controller B0193AX – Rev N
♦ 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.
543
B0193AX – Rev N 21. DPIDA Controller
544
21. DPIDA Controller B0193AX – Rev N
21.4 Parameters
Table 21-1. DPIDA Block Parameters
545
B0193AX – Rev N 21. DPIDA Controller
546
21. DPIDA Controller B0193AX – Rev N
547
B0193AX – Rev N 21. DPIDA Controller
548
21. DPIDA Controller B0193AX – Rev N
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
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
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
LMA
BAD
LOA
LDA
LLA
INH
549
B0193AX – Rev N 21. DPIDA Controller
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.
550
21. DPIDA Controller B0193AX – Rev N
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.
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
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
MAO
FTNI
MTN
FBM
DEV
BAD
HOL
LRO
TRK
HLD
PTN
STN
FOL
FTN
LOL
CTL
FLB
MO
ILK
MA
ON
SC
SE
DF
FS
LR
Bit Number* Boolean Connection
(0 to 31) Name Description When True (B32 to B1)
0 MTN Manual tune mode** BLKSTA.B32
1 STN Self-tune mode** BLKSTA.B31
2 PTN Pre-tune mode** BLKSTA.B30
4 FOL Follow mode BLKSTA.B28
5 CTL Controlling BLKSTA.B27
6 TRK Tracking BLKSTA.B26
7 HLD Holding BLKSTA.B25
8 FBM FBM failure BLKSTA.B24
9 STRK Setpoint tracking BLKSTA.B23
10 LR 0 = Local; 1 = Remote BLKSTA.B22
11 MA 0 = Manual; 1 = Auto BLKSTA.B21
12 BAD Bad I/O BLKSTA.B20
14 UDEF Undefined BLKSTA.B18
15 ON Compound on BLKSTA.B17
16 FTNI Feedforward tune inactive BLKSTA.B16
17 FTN Feedforward tune active BLKSTA.B15
18 Not used BLKSTA.B14
19 DEV Redundant measurement BLKSTA.B13
input deviation limit
20 WLCK Workstation lock BLKSTA.B12
21 ILK Interlocked BLKSTA.B11
551
B0193AX – Rev N 21. 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 598. 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:
♦ 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 is false:
♦ MEAS meets any of the conditions described for CEOPT
= 1.
♦ MEAS has its ERROR status bit set true.
552
21. DPIDA Controller B0193AX – Rev N
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 Ranges 1 and 2 are configurable real values that
DELTI2 define the minimum percent of the input range that triggers change-
driven connections for parameters in the range RI1 or RI2. The default
value is 1.0 percent. If communication is within the same CP that con-
tains the block’s compound, DELTI1 and DELTI2 have no effect.
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.
DEVADB Deviation Alarm Deadband is a real input (range RI1) that applies to both
High and Low Deviation Alarm Limits.
553
B0193AX – Rev N 21. DPIDA Controller
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.
554
21. DPIDA Controller B0193AX – Rev N
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.
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
555
B0193AX – Rev N 21. DPIDA Controller
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.
556
21. DPIDA Controller B0193AX – Rev N
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
12 Out of range alarm INHALM.B4
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.
557
B0193AX – Rev N 21. 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
558
21. DPIDA Controller B0193AX – Rev N
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.
559
B0193AX – Rev N 21. DPIDA Controller
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) 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.
IOM_ID Fieldbus Module Identifier is a configurable string input that specifies the
ECB52 for the FBM that contains the algorithm for this block. It is the
full pathname of the ECB52, that is:
<LOCAL_COMPOUND_NAME>:<ECB_name>
<ECB_NAME> can be up to 12 characters.
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:
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
560
21. DPIDA Controller B0193AX – Rev N
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.
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.
561
B0193AX – Rev N 21. DPIDA Controller
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.
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).
562
21. DPIDA Controller B0193AX – Rev N
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
2 = No Output alarming in Manual
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.
MBADOP Manual if Bad Option is a configurable boolean input use for manual
override. When MBADOP is true, the block sets the unlinked MA input
to manual if it detects a BAD or OOS status bit in the MEAS input. This
forces the output state to manual as long as the BAD status remains.
After the BAD status clears, returning to Auto requires external interven-
tion unless AUTSW is true. MBADOP has the same priority as the
MANSW override, and it has precedence over the AUTSW override.
MCLOPT Manual Clamping Option is a configurable boolean input that allows you
to invoke output clamping while the block is in manual.
563
B0193AX – Rev N 21. DPIDA Controller
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.
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).
564
21. DPIDA Controller B0193AX – Rev N
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).
PBAND Proportional Band is a real input expressed in percent. PBAND is the per-
cent of span change in input, that causes a full-span change in output.
[100 / PBAND] determines the gain of the controller when MEAS and
565
B0193AX – Rev N 21. DPIDA Controller
OUT are converted to percent of span. For the PI, PID and NIPID
modes, PBAND is adaptively tuned by the FBTUNE block, if it is linked
to the DPIDA 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
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, and CP60.
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. See the Integrated Control Software Concepts (B0193AW)
document.
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-
566
21. DPIDA Controller B0193AX – Rev N
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
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.
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.
567
B0193AX – Rev N 21. DPIDA Controller
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).
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 573.
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),
Remote setpoint (RSP), and local setpoint (SPT).
568
21. DPIDA Controller B0193AX – Rev N
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.
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.
569
B0193AX – Rev N 21. DPIDA Controller
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.
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
570
21. DPIDA Controller B0193AX – Rev N
5= Wait
6= Settle
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
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.
571
B0193AX – Rev N 21. DPIDA Controller
UNACK Unacknowledge is a boolean output that the block sets to true when it
detects an alarm. It is typically reset by operator action.
572
21. DPIDA Controller B0193AX – Rev N
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.
573
B0193AX – Rev N 21. DPIDA Controller
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 = Disable port switching
1 = Enable 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
574
21. DPIDA Controller B0193AX – Rev N
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 filter-
ing (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:
Value Time (ms) Value Time (ms)
0 (default) CYCTIM 6 30
1 5 7 35
2 10 8 40
575
B0193AX – Rev N 21. DPIDA Controller
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
576
21. DPIDA Controller B0193AX – Rev N
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.
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 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%.
577
B0193AX – Rev N 21. DPIDA Controller
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:
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**
578
21. DPIDA Controller B0193AX – Rev N
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. See the Integrated Control Software Concepts (B0193AW) docu-
ment.
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.
0 = No panel
1 = Panel
REDOPT Redundancy Option is a short integer input that specifies redundant mea-
surement inputs MEASn for FBM04 and FBM17:
0 = no redundancy (default; channel 1 only)
1 = dual redundancy (channels 1 and 2)
2 = triple redundancy (channels 1, 2 and 3)
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
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.
579
B0193AX – Rev N 21. DPIDA Controller
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.
21.6 Functions
21.6.1 Detailed Functional Diagram
Figure 21-2 is a detailed functional diagram for the DPIDA Controller. Functions performed by
the FBM are not shaded in Figure 21-2. Functions performed by the DPIDA shadow block in the
CP are shaded in Figure 21-2.
580
21. DPIDA Controller B0193AX – Rev N
information, refer to “Setpoint Processing” on page 593 and the Supervisory Setpoint Control
(SSC) (B0193RY) document.
If SUPOPT is false, 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 is true while SUPOPT and LR are false, the local setpoint (SPT) tracks the mea-
surement 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.
581
582
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 = output
i t I ∫ 0 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 –b fb
c .
f bb ³ f r b
SELRQ
meas1
OUT2
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 21-2). The block provides:
♦ Absolute and deviation alarming of the measurement (see Figure 21-4)
♦ Absolute alarming of the controller output
♦ Bad I/O alarming.
FBM variables used in Figure 21-2 and the following sections to described controller operations
are listed in Figure 21-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
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)
583
B0193AX – Rev N 21. DPIDA Controller
Variable Description
r Selected setpoint
rf Compensated setpoint
t Time constant
x Lag input
y Lag output
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
584
21. DPIDA Controller B0193AX – Rev N
100
m b = --------- ( r – ( 1 + Ds )c f )f r + b
P
D-
τ = ------
KD
c
c f = -------------------------------------------
2
1 + τs + 0.5 ( τs )
The controller algorithms can also be expressed in the time domain as follows:
♦ Proportional only (P):
100
m b = --------- ( r – cf )fr + b
P
t
m b = --- ∫ ( r – cf ) dt f r + b
1
I 0
585
B0193AX – Rev N 21. DPIDA Controller
dc f
m b = --------- r – cf + D ------- f r + b
100
P dt
D
τ = -------
KD
100 1 t
m b = --------- --- ∫ ( r – c f ) dt + Ar – c fr + b
P I 0
100 1 t dc f
m b = --------- --- ∫ ( r – c f ) dt + Ar – 1 + ---- c f – D ------- f r + b
D
P I 0 I dt
1--- = 1--- + ---
1- K
τ I D D
♦ Non-interacting PID (NIPID):
100 1 t dc
m b = --------- --- ∫ ( r – c f ) dt + Ar – c f – D -------f f r + b
P I 0 dt
D
τ = -------
KD
2
dc f τ 2 d c f
c f + τ • ------- + ----- • 2 = c
dt 2 d t
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.
586
21. DPIDA Controller B0193AX – Rev N
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 21-5. The setpoint gain compensation
response is shown in Figure 21-7.
Table 21-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
587
B0193AX – Rev N 21. DPIDA Controller
In Auto, the controller uses either the measurement signal selected by the FBM or the signal
selected by the operator via SELRQ (see “Measurement Processing” on page 605).
If all measurement inputs are bad, the MEAS.BAD status is set true and the controller automati-
cally transitions to Hold or Manual, depending on the MBADOP and CEOPT settings, and
holds the control output at the last good value.
588
21. DPIDA Controller B0193AX – Rev N
MBADOP and FSOPT. Transfer back to Auto is bumpless (see “Bumpless Start-up and Trans-
fers” on page 589).
PRIBLK = 0 PRIBLK = 1
PID
MEAS OUT RSP DPIDA
Block
MEAS
FBK
BCALCI BCALCO
Figure 21-3. Cascade Configuration (Typical)
589
B0193AX – Rev N 21. DPIDA Controller
The cascade initialization information is contained in the status bits of BCALCO which is con-
nected to BCALCI of the upstream block. For the BCALCO status bit definitions, see
Table 21-7.
The settings of SPT and BCALCO on transition from initialization depend on the type of initial-
ization, conditional and unconditional.
Conditional initialization occurs when the controller returns from an open cascade that was
caused by a Remote/Local, Auto/Manual, or Track transition. For a DPIDA secondary controller,
SPT remains unchanged, and BCALCO = SPT at transition.
Unconditional initialization occurs when the controller returns from an open cascade that was not
caused by a Remote/Local, Auto/Manual, or Track transition. For a DPIDA secondary controller,
SPT tracks MEAS, and BCALCO = MEAS at transition.
In order to trigger upstream initialization in a cascade, the appropriate BCALCO status bits
remain set while the setpoint is switched to Local. This notifies an upstream block to perform its
own explicit initialization, while the cascade remains open, enabling a return to remote setpoint
operation to be bumpless.
If the upstream block is in Auto, it initializes when its BCALCI initialization status bit is true and
then acknowledges the initialization request by setting the RSP acknowledge status bit. During
initialization, the output tracks the value of the BCALCI input. If the downstream block is a
DPIDA controller, this action causes its remote setpoint to track its BCALCO output when it is
connected to the upstream block’s BCALCI input. As a result, a return to closed loop control is
bumpless.
The appropriate BCALCO status bits of the DPIDA controller are set in the Tracking
(TRKENL = 1) or Holding (HOLD = 1) state. This requests its upstream block to perform its
own initialization. When TRKENL or HOLD are reset to 0, the controller returns to the Con-
trolling substate of Auto to resume closed loop control.
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.
590
21. DPIDA Controller B0193AX – Rev N
OSV (units)
HSCO1
Output
LSCO1
OSV (units)
Time
Figure 21-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.
591
B0193AX – Rev N 21. 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.
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)
592
21. DPIDA Controller B0193AX – Rev N
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.5τs
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:
♦ 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 604).
♦ 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.
593
B0193AX – Rev N 21. DPIDA Controller
A typical Supervisory Setpoint Control cascade configuration using the DPIDA controller is
shown in Figure 21-6. The DPIDA controller can only be at the bottom of the cascade.
Operator Supervisory
Displays Application SUPBCO
SUP_IN
SE
LR DPIDA
SUPOPT Block
PID RSP
MEAS OUT
Block
MEAS
FBK
BCALCI BCALCO
Figure 21-6. Supervisory Setpoint Control Cascade Configuration (Typical)
For more information, refer to the Supervisory Setpoint Control (SSC) (B0193RY) document.
Local/Remote Overrides
DPIDA Key Parameters: INITLR, LOCSP, LOCSW, LR, REMSW
When the Local switch (LOCSW) override is true, it sets LR to false (Local) and secures it.
LOCSW has priority over REMSW, INITLR, and LOCSP. If both LOCSW and REMSW are
true, LR is set to Local.
When the Remote switch (REMSW) override is true, it sets LR to true (Remote) and secures it.
REMSW has priority over INITLR and LOCSP.
Setpoint State
DPIDA Key Parameters: INITLR, LOCSW, LR, MEAS, REMSW, SPT, STRKOP, TRKENL
The setpoint states are:
♦ Remote
♦ Tracking
♦ Local.
The INITLR, REMSW, and LOCSW overrides are applied to the LR parameter as described
above and in “Block Initialization” on page 602.
If LR is true, the setpoint state is Remote. If STRKOP is true, the setpoint state is Local, and the
status of MEAS is not Bad, the setpoint SPT tracks MEAS when the block is in Manual, or
TRKENL is true, or the cascade state is Open.
Local/Remote Setpoint Selection
DPIDA Key Parameters: LR, MEAS, PRIBLK, RSP, SPT, STRKOP
The setpoint (SPT) is a configurable output whose source is determined by LR. If LR is true
(Remote), SPT is secured and assumes the Remote setpoint (RSP) value. If LR is false (Local),
SPT is unsecured and can be changed by the operator. When LR is toggled, its status is immedi-
ately displayed on the faceplate of the Block Detail Display.
594
21. DPIDA Controller B0193AX – Rev N
Setpoint Limiting
DPIDA Key Parameters: HSCI1, LSCI1, SPCLMP, SPHLIM, SPLLIM
The setpoints limits are clamped as follows.
♦ If SPLLIM < LSCI1, it is set to LSCI1.
♦ If SPLLIM > HSCI1, it is set to HSCI1.
♦ If SPHLIM < SPLLIM, it is set to SPLLIM.
♦ If SPHLIM > HSCI1, it is set to HSCI1.
If SPCLMP = 0, and the setpoint state is Supervisory, Remote, or Tracking, the SUP_IN/RSP
value is clamped as follows:
♦ If SUP_IN/RSP <= LSCI1, it is set to LSCI1
♦ If SUP_IN/RSP >= HSCI1, it is set to HSCI1.
If SPCLMP = 0 and the setpoint state is Local, the SPT value is clamped as follows:
♦ If SPT <= SPLLIM, it is set to SPLLIM.
♦ If SPT >= SPHLIM, it is set to SPHLIM.
If SPCLMP = 1, the SPT value in Local mode (RSP in Remote mode, SUP_IN in Supervisory
mode) is clamped as follows:
♦ If SPT/RSP/SUP_IN <= SPLLIM, it is set to SPLLIM.
♦ If SPT/RSP?SUP_IN >= SPHLIM, it is set to SPHLIM.
If SPCLMP = 2, an attempt to set SPT in Local mode (RSP in Remote mode, SUP_IN in Super-
visory mode) less than SPLLIM or greater than SPHLIM via an OM Setval or OM Write opera-
tion will be rejected with an OUT_OF_RANGE error code.. If RSP has a source connection, it is
clamped as follows:
♦ If RSP <= SPLLIM, it is set to SPLLIM.
♦ If RSP >= SPHLIM, it is set to SPHLIM.
Setpoint Gain Compensation
DPIDA Key Parameters: INT, SPLLAG, SPT
Lead/lag compensation is applied to the setpoint with a user specified lead/lag ratio (SPLLAG see
Figure 21-7). SPLLAG adjustment allows the amount of proportional action applied to the set-
point to be different from that applied to the measurement (see Figure 21-2). This enables the
controller to be tuned for both good load rejection and non-overshooting setpoint response
simultaneously.
When the setpoint lead/lag ratio (SPLLAG) = 1, the controller behaves like the PID or PIDX,
applying the proportional term to the control error. This choice is best for a dominant deadtime
process.
When SPLLAG = 0, no proportional term is applied to the setpoint. A value of 0.2 is best for a
dominant lag process. SPLLAG is adaptively tuned by the FBTUNE block.
For the input (r) step shown in Figure 21-7, the lead/lag compensator output immediately rises to
the value SPLLAG (A). Then the output (rf ) rises exponentially from SPLLAG to 1.0r with a first
order lag response of time constant INT.
595
B0193AX – Rev N 21. DPIDA Controller
Input r
1.0
Output rf
A = SPLLAG
A
Time
τ = INT
Figure 21-7. Setpoint Lead/Lag Compensation
For example if SPLLAG is set to 0.5, the output at the end of one time constant is:
Setpoint Ramping
DPIDA Key Parameters: SPHLIM, SPLLIM, SPRAMP, SPRATE, SPROPT, SPT, SPTARG
If SPROPT is 1 and LR is Local, the setpoint ramps at the rate SPRATE (units/minute) from its
initial value to SPTARG, following an SPRAMP transition from 0 to 1.
If SPROPT is 2, ramping stops whenever the deviation (MEAS - SPT) is in alarm and continued
setpoint ramping would increase the deviation. If ramping decreases deviation, ramping is not
inhibited.
If SPROPT is 3 and LR is Local, the setpoint ramps from its initial value to SPTARG during the
time period SPRATE (minutes).
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 21-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 SPH-
LIM. When SPT reaches SPTARG or if the operator makes a local SPT change, setpoint ramping
stops and SPRAMP is reset to 0.
596
21. DPIDA Controller B0193AX – Rev N
If SPTARG is changed during ramping, the block continues to ramp at the initial rate calculated
for the SPRATE time.
Error Propagation
DPIDA Key Parameters: CEOPT, MEAS, OUT, PROPT, SPT
Errors in the MEAS and SPT parameters are propagated to the ERR status bit of the OUT
parameter based on the control error option (CEOPT) and propagate error option (PROPT).
If the MEAS or SPT status is BAD or OOS while in Auto with PROPT set true and CEOPT
set to 1, the ERR status bit of OUT is set true.
If the MEAS or SPT status is BAD, OOS, or ERR while in Auto with PROPT set true and
CEOPT set to 2, the ERR status bit of OUT is set true.
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
597
B0193AX – Rev N 21. DPIDA Controller
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 21-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
21.6.2.14 Feedforward
DPIDA Key Parameters: BIAS, MULTIN
There is provision for both multiplicative MULTIN and additive BIAS feedforward inputs (see
Figure 21-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.
598
21. DPIDA Controller B0193AX – Rev N
opened. When the error conditions clears, the appropriate BCALCO status bits reset to cause the
upstream block to initialize its OUT to BCALCI.
Global error detection is propagated to upstream blocks via the bad status indicator of the
BCALCO parameter record. In this manner, any errors detected along the cascade are propagated
up through the cascade, from block to block, by the BCALCO-to-BCALCI connections.
The FBM performs out-of-range checking on all configured measurement inputs using ECB52
parameters. If the out-of-range enable (OORENB) parameter is set true and a measurement input
configured by REDOPT exceeds the high out-of-range (HORVAL) or low out-of-range (LOR-
VAL) value, the Bad status bit of the associated MEASn parameter is set true. The Bad status bit
of the selected measurement (MEAS) is set true only if all redundant measurements are Bad.
The status of each block parameter value record is made up of the following 16 bits:
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Boolean B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 B16
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
599
B0193AX – Rev N 21. DPIDA Controller
Table 21-7. Status Bit Definitions for Parameter Value Record (Continued)
Boolean
Bit Number Connection
(0 to 15) Name Definition (B16 to B1)
12 SHADOW Shadow Parameter B4
13 LHI Limited High B3
14 LLO Limited Low B2
15 ERROR/INITU Error/Initialize Unconditional B1
21.6.2.16 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)
♦ Output high (HIOUT) and low (LOOUT)
The block generates alarm messages on transition into the alarm state, and on return to normal of
the alarm condition.
Bad I/O Alarm occurs when the BAD parameter is set. If redundant measurements are used, the
block generates a separate alarm message when any measurement is bad, but it sets the Bad I/O
Alarm state and BAD parameter only when all of the measurements are bad.
High, low, high-high, or low-low absolute alarming occurs when the measurement exceeds the
related alarm limit (MEASHL, MEASLL, HHALIM, or LLALIM).
High or low deviation alarming occurs when the deviation (SPT - MEAS) exceeds the related
alarm limit (HDALIM or LDALIM).
High or low output alarming occurs when OUT exceeds the related alarm limit (HOALIM or
LOALIM).
Separate deadbands for high and low absolute, deviation, and output alarming establish hysteresis
about the limits to avoid intermittent state changes, when the MEAS, deviation (SPT - MEAS),
or OUT is close to one of the limits.
High-high, high and low absolute, deviation, and output alarms have their own alarm group
parameter that is used for dispatching alarm messages to the alarm devices contained in the group.
The CINHIB (compound parameter), INHIB, or INHALM parameter settings allow each alarm
to be dynamically inhibited.
The INHOPT value defines the type of alarm inhibiting:
0 = Disable alarm messages when alarms are inhibited
1 = Disable alarm detection when alarms are inhibited
2 = Same as 0, and enable automatic acknowledgment
600
21. DPIDA Controller B0193AX – Rev N
601
B0193AX – Rev N 21. DPIDA Controller
ECB52 Connection
DPIDA Key Parameters: ERCODE, IOM_ID
The block establishes the connection to the ECB52 block using IOM_ID. If the ECB52 block
does not exist or if it is of the wrong software or hardware type, the block sets ERCODE to
ECB_UNDEFINED and enters the undefined state. The only valid hardware types are FBM4,
FBM17, and FBM22.
Engineering Ranges
DPIDA Key Parameters: HSCI1, HSCI2, HSCIN, HSCO1, LSCI1, LSCI2, LSCIN, LSCO1
The block checks the engineering ranges (RI1, RI2,RIN, and RO1) for crossover of the high and
low values. If any high value is less than its corresponding low value, the block sets ERCODE to
INV_ENG_RANGE and enters the undefined state.
602
21. DPIDA Controller B0193AX – Rev N
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 Integrated Control Software Concepts (B0193AW) document.
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.
603
B0193AX – Rev N 21. 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 21-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.
604
21. DPIDA Controller B0193AX – Rev N
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.
605
B0193AX – Rev N 21. DPIDA Controller
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
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
606
21. DPIDA Controller B0193AX – Rev N
You define the characterization function by specifying up to 9 pairs of X (input) and Y (output)
values and the number of points. The X (X_nPD) and Y (Y_nPD) values are 4000 scale signed
integers. They are required to be monotonically increasing.
The X-to-Y transformation is done by linear interpolation. If required, the range of the first or last
segment is extended by extrapolation.
FBM17 Measurement Input Bleeder Resistor
If the 0 to 10 V dc input field wiring is disconnected on an FBM17, the measurement input does
not drop immediately to 0 V dc. Instead, there is a slow decay to 0 V dc. It is recommended that
a bleeder resistor be placed across the + and - terminals of each measurement input to quicken the
response. This provides more responsive Bad point detection and redundant measurement selec-
tion when a measurement is Bad. Discharge time can be estimated using the following formula:
τ = 9 • 10-6 R
For more information, refer to Field Connection Diagrams in the System Equipment Installation
document.
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 605.
607
B0193AX – Rev N 21. DPIDA Controller
3 = go to Manual
4 = go to Manual with output set Failsafe (similar to MANFS option in PID blocks)
If a transition to Failsafe occurs, the required output value in 4000 scale normalized counts, is
back-calculated and placed in the output mb, and the FS parameter and BLKSTA.FS status bit are
set true. The upstream cascade is also opened by setting both the appropriate BCALCO status bits
to true.
If the controller is in Manual when Failsafe occurs, the controller stays in Manual.
When Failsafe clears in Hold, the controller goes to Auto. When Failsafe clears in Manual, the
controller stays in Manual.
FS5DPD specifies the Failsafe value for the controller output. FSMMPD specifies the fall-
back/Hold action for the FBM analog output. Failsafe configuration of the remaining FBM out-
puts is fixed.
FSENAB enables the Failsafe timer and FSDLAY specifies the Failsafe delay time. For more infor-
mation on Failsafe operation, see the Integrated Control Software Concepts (B0193AW) document.
Failsafe Output Scaling
FS5DPD 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.
The formula for determining the count value is:
25 – 0
&RXQW9DOXH = ------------------ • ( 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 605.
608
21. DPIDA Controller B0193AX – Rev N
609
B0193AX – Rev N 21. DPIDA Controller
610
21. DPIDA Controller B0193AX – Rev N
FBM17
Analog Input 1 Measurement
Output
Analog Output 1
Local Operator’s Panel*
Auto
Digital Output 4
Manual
LED
Key
611
B0193AX – Rev N 21. DPIDA Controller
If the A/M station is present, the FBM reads and processes the keys. The FBM monitors the A/M
key for transitions to detect Remote/Manual transfer requests. If the controller is in Local Man-
ual, the FBM processes the ramp keys.
The standard ramp rate is 0 to 20 seconds for full scale. The fast rate is 0 to 5 seconds for full
scale. The FAST key selects the fast rate of the up or down key.
NOTE
Output ramping from the A/M Station is actually smooth, but the meter display
tends to overshoot during ramping and data entry.
612
21. DPIDA Controller B0193AX – Rev N
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 21-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.
NOTE
This application example is not a complete control strategy for compressor surge
control. You must contact The Foxboro Company to design a complete control
strategy for your application.
613
B0193AX – Rev N 21. 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
614
21. DPIDA Controller B0193AX – Rev N
Surge Line
Flow
615
B0193AX – Rev N 21. DPIDA Controller
NOTE
The above is not a complete list of required parameters and is not specific to a par-
ticular surge control application.
NOTE
The above is not a complete list of required parameters and is not specific to a par-
ticular surge control application.
616
22. DSI – Display Station Interface
Block
This chapter covers the Display Station Interface Block, or DSI, its parameters and detailed
operations.
22.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.
22.2 Parameters
Table 22-1. DSI Block Parameters
617
B0193AX – Rev N 22. 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.
618
22. DSI – Display Station Interface Block B0193AX – Rev N
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
MA
ON
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 real values that define the
resolution as a percent of the measurement range. Entering a 1 causes the
Object Manager to recognize and respond to a change of 1 percent of the
full error range.
619
B0193AX – Rev N 22. 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.
“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).
620
22. DSI – Display Station Interface Block B0193AX – Rev N
IOM_ID Fieldbus Module Identifier is a string that specifies the FBM or FBC to
which the block is connected. IOM_ID can be either:
♦ The 6-character letterbug of the FBM or FBC. The ECB must
reside in the local compound <cp_letterbug>_ECB where
cp_letterbug is the station letterbug of the CP.
♦ The full pathname of the ECB. The ECB must be local but can
reside in any compound. The pathname must be of the form
<local_compound_name>:<ecb_name>, where <ecb_name> is the
NAME parameter of the ECB.
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 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.
621
B0193AX – Rev N 22. DSI – Display Station Interface Block
rithm. The block automatically limits the output to the output range
specified between LSCO1 and HSCO1, for analog blocks. In Manual, the
algorithm is not performed, and the output is unsecured. An external pro-
gram can then set the output to a desired value.
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. See Integrated Control Software Concepts
(B0193AW) document.
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.
622
22. DSI – Display Station Interface Block B0193AX – Rev N
623
B0193AX – Rev N 22. DSI – Display Station Interface Block
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 22-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.
624
22. DSI – Display Station Interface Block B0193AX – Rev N
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.
625
B0193AX – Rev N 22. DSI – Display Station Interface Block
626
23. DTIME – Dead Time
Compensator Block
This chapter covers the Dead Time Compensator Block, or DTIME, its features, parameters
and detailed operations.
23.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
23.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.
627
B0193AX – Rev N 23. DTIME – Dead Time Compensator Block
♦ INITMA, Initialize Manual/Auto, specifies the desired state of the MA input during
initialization.
♦ CEOPT, Control Error Option.
23.3 Parameters
Table 23-1. DTIME Block Parameters
628
23. DTIME – Dead Time Compensator Block B0193AX – Rev N
BKT_1 to BKT_10
Buckets 1 through 10 contain intermediate values calculated and stored by
the DTIME block algorithm. Bucket 1 is the oldest value, and Bucket 10
the most recent value (calculated over the most recent shift time period).
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
MA
ON
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
629
B0193AX – Rev N 23. 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 resolution
as a percent of the measurement range. Entering a 1 causes the Object
Manager to recognize and respond to a change of 1 percent of the full
error range.
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.
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.
630
23. DTIME – Dead Time Compensator Block B0193AX – Rev N
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”
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.
631
B0193AX – Rev N 23. DTIME – Dead Time Compensator Block
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.
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.
632
23. DTIME – Dead Time Compensator Block B0193AX – Rev N
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
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*****
633
B0193AX – Rev N 23. DTIME – Dead Time Compensator 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, and CP60.
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. See Integrated Control Software Concepts
(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,
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.
634
23. DTIME – Dead Time Compensator Block B0193AX – Rev N
635
B0193AX – Rev N 23. DTIME – Dead Time Compensator Block
636