Вы находитесь на странице: 1из 822

I/A Series® System

Integrated Control
Block Descriptions
Volume 1 of 3,
ACCUM – DTIME

B0193AX

Rev AB
November 30, 2011
Invensys, Foxboro, FoxCAE, FoxView, InFusion, I/A Series, the Invensys logo, and EXACT are trademarks of
Invensys plc, its subsidiaries, and affiliates.
All other brand names may be trademarks of their respective owners.

Copyright 1990-2011 Invensys Systems, Inc.


All rights reserved

SOFTWARE LICENSE AND COPYRIGHT INFORMATION


Before using the Invensys Systems, Inc. supplied software supported by this documentation, you
should read and understand the following information concerning copyrighted software.
1. The license provisions in the software license for your system govern your obligations
and usage rights to the software described in this documentation. If any portion of
those license provisions is violated, Invensys Systems, Inc. will no longer provide you
with support services and assumes no further responsibilities for your system or its
operation.
2. All software issued by Invensys Systems, Inc. and copies of the software that you are
specifically permitted to make, are protected in accordance with Federal copyright
laws. It is illegal to make copies of any software media provided to you by
Invensys Systems, Inc. for any purpose other than those purposes mentioned in the
software license.
Volume Set Information
Volume 1 of 3
ACCUM through DTIME
1. ACCUM – Accumulator Block............................................................................................. 1
2. AIN – Analog Input Block .................................................................................................. 25
3. AINR – Redundant Analog Input Block ............................................................................. 75
4. ALMPRI – Alarm Priority Change Block.......................................................................... 127
5. AOUT – Analog Output Block......................................................................................... 135
6. AOUTR – Redundant Analog Output Block.................................................................... 173
7. BIAS – Bias Block ............................................................................................................. 209
8. BIN – Binary Input Block................................................................................................. 237
9. BINR – Redundant Binary Input Block............................................................................ 259
10. BLNALM – Boolean Alarm Block .................................................................................. 285
11. BOOL – Boolean Variable Block .................................................................................... 295
12. BOUT – Binary Output Block ....................................................................................... 299
13. BOUTR – Redundant Binary Output Block .................................................................. 325
14. CALC – Calculator Block ............................................................................................... 353
15. CALCA – Advanced Calculator Block............................................................................. 433
16. CHARC – Characterizer Block ....................................................................................... 511
17. CIN – Contact Input Block ............................................................................................ 529
18. CINR – Redundant Contact Input Block ....................................................................... 553
19. CMP – Compounds........................................................................................................ 575
20. COUT – Contact Output Block..................................................................................... 585
21. COUTR – Redundant Contact Output Block................................................................ 609
22. DEP – Dependent Sequence Block ................................................................................. 633
23. DGAP – Differential Gap Block ..................................................................................... 653
24. DPIDA Controller .......................................................................................................... 685
25. DSI – Display Station Interface Block............................................................................. 769
26. DTIME – Dead Time Compensator Block..................................................................... 779

Volume 2 of 3
ECB through MOVLV
27. Equipment Control Blocks.............................................................................................. 791
28. Primary ECB (ECBP or ECB11) .................................................................................... 797
29. ECB1 – Analog Input ..................................................................................................... 805
30. ECB2 – Analog Input and Analog Output...................................................................... 813

iii
B0193AX – Rev AB Volume Set Information

31. ECB4 – Pulse In and Analog Output .............................................................................. 823


32. ECB5 – Digital In, Sustained/Momentary, and Digital Out ........................................... 831
33. ECB6 – Sequence of Events Input .................................................................................. 845
34. ECB7 – Digital and Pulse Count In................................................................................ 853
35. ECB8 – Ladder Logic or DC Out/Validated Input ......................................................... 861
36. ECB9 – Remote/Manual................................................................................................. 873
37. ECB11 (ECBP, Primary ECB)........................................................................................ 885
38. ECB12 – Intelligent Transmitter 2 Interface................................................................... 893
39. ECB13 – Hydrostatic Tank Gauge ................................................................................. 901
40. ECB14 – Panel-Mounted Display................................................................................... 919
41. ECB15 – Allen-Bradley PLC ECB .................................................................................. 927
42. ECB16 – Modicon PC ECB ........................................................................................... 933
43. ECB18 – Intelligent Transmitter 2 (Child) ..................................................................... 941
44. ECB19 – 760 Micro Controller ...................................................................................... 953
45. ECB21 – 761 Micro Controller ...................................................................................... 959
46. ECB22 – Mass Flow Transmitter.................................................................................... 965
47. ECB23 – Intelligent Transmitter 2 Interface (Parent) ..................................................... 977
48. ECB34 – MDACT Feedback Lag Tristate ...................................................................... 987
49. ECB36 – MDACT Pulse Width Tristate ........................................................................ 999
50. ECB38R – Intelligent Transmitter 2 Interface (Redundant Parent) .............................. 1011
51. ECB39 – AMSPRI........................................................................................................ 1023
52. ECB41 – Analog Input FBC ......................................................................................... 1033
53. ECB42 – Digital Input FBC ......................................................................................... 1039
54. ECB43 – Analog Output FBC ...................................................................................... 1045
55. ECB44 – Digital Output FBC ...................................................................................... 1053
56. ECB46 – Digital Input/Digital Output FBC ................................................................ 1061
57. ECB47 – FBP10 Interface to Cluster I/O ..................................................................... 1069
58. ECB47R – Redundant FBP10 Interface to Cluster I/O ................................................ 1079
59. ECB52 – DPIDA Controller ........................................................................................ 1091
60. ECB53 – Analog Output .............................................................................................. 1101
61. ECB73 – Valve and Transmitter Parent ECB ............................................................... 1109
62. ECB74 – Valve and Transmitter Child ECB................................................................. 1117
63. ECB110 – Interface for FCM10 Family of Devices....................................................... 1135
64. ECB200 – Single Module DCI FBM Interface ............................................................. 1141
65. ECB201 – Device Interface........................................................................................... 1155
66. ECB202 – REDUNDANT DCI FBM Interface .......................................................... 1175
67. ECB210 – Redundant FCM100 Interface .................................................................... 1191
68. EVENT – Event Block ................................................................................................. 1205

iv
Volume Set Information B0193AX – Rev AB

69. EXC – Exception Sequence Block................................................................................. 1221


70. FBTUNE – Feedback Tuner Block............................................................................... 1241
71. FFTUNE – Feedforward Tuner Block .......................................................................... 1251
72. GDEV – General Device Block..................................................................................... 1259
73. IIN – Integer Input Block ............................................................................................. 1291
74. IINR – Redundant Integer Input Block ........................................................................ 1309
75. IND – Independent Sequence Block............................................................................. 1331
76. IOUT – Integer Output Block...................................................................................... 1349
77. LIM – Limiter Block..................................................................................................... 1373
78. LLAG – Lead Lag Block................................................................................................ 1387
79. LOGIC – Logic Block................................................................................................... 1397
80. LONG – Long Integer Variable Block .......................................................................... 1429
81. MAIN – Multiple Analog Input Block.......................................................................... 1431
82. MATH – Mathematics Block........................................................................................ 1473
83. MCIN – Multiple Contact Input Block........................................................................ 1519
84. MCOUT – Multiple Contact Output Block................................................................. 1543
85. MDACT Motor Driven Actuator Controller ................................................................ 1563
86. MEALM – Measurement Alarm Block.......................................................................... 1607
87. MON – Monitor Block ................................................................................................ 1623
88. MOVLV – Motor Operated Valve Block...................................................................... 1639

Volume 3 of 3
MSG through VLV
89. MSG – Message Generator Block.................................................................................. 1663
90. MTR – Motor Control Block ....................................................................................... 1671
91. OUTSEL – Output Select Block................................................................................... 1693
92. PACK – Packed Long Integer Variable Block................................................................ 1705
93. PAKIN – Packed Input Block ....................................................................................... 1707
94. PAKINR – Redundant Packed Input Block .................................................................. 1719
95. PAKOUT – Packed Output Block................................................................................ 1735
96. PATALM – Pattern Alarm Block .................................................................................. 1753
97. PATT – Pattern Block .................................................................................................. 1765
98. PID – Proportional Integral Derivative Block ............................................................... 1783
99. PIDA – Advanced PID Block........................................................................................ 1819
100. PIDX – PID Extended Block ...................................................................................... 1895
101. PIDXE – PID Extended with EXACT Block .............................................................. 1933
102. PIDE – PID With EXACT Block ............................................................................... 1977
103. PLB – Programmable Logic Block............................................................................... 2019

v
B0193AX – Rev AB Volume Set Information

104. PLSOUT – Pulse Output Block.................................................................................. 2037


105. PTC – Proportional Time Controller Block................................................................ 2053
106. RAMP – Ramp Block ................................................................................................. 2085
107. REAL – Real Variable Block ....................................................................................... 2097
108. RATIO – Ratio Block ................................................................................................. 2101
109. REALM – Real Alarm Block ....................................................................................... 2133
110. RIN – Real Input Block .............................................................................................. 2157
111. RINR – Redundant Real Input Block ......................................................................... 2187
112. ROUT – Real Output Block....................................................................................... 2223
113. ROUTR – Redundant Real Output Block.................................................................. 2255
114. SIGSEL – Signal Selector Block .................................................................................. 2291
115. STALM – State Alarm Block ...................................................................................... 2305
116. STATE – State Block .................................................................................................. 2317
117. Station Block............................................................................................................... 2349
118. STRIN – String Input Block....................................................................................... 2377
119. STRING – String Variable Block................................................................................ 2387
120. STROUT – String Output Block ............................................................................... 2389
121. SWCH – Switch Block ............................................................................................... 2397
122. TIM – Timer Block .................................................................................................... 2409
123. VLV – Valve Block ..................................................................................................... 2417

vi
Contents
Volume Set Information........................................................................................................ iii

Figures.................................................................................................................................. xxi

Tables.................................................................................................................................. xxv

Preface................................................................................................................................ xxix

1. ACCUM – Accumulator Block.......................................................................................... 1


1.1 Overview ......................................................................................................................... 1
1.2 Basic Operation .................................................................................................................. 1
1.3 Features ............................................................................................................................... 2
1.4 Parameters ........................................................................................................................... 3
1.4.1 Parameter Definitions ................................................................................................. 4
1.5 Functions .......................................................................................................................... 15
1.5.1 Detailed Diagram ...................................................................................................... 16
1.5.2 Accumulator Process ................................................................................................. 16
1.5.2.1 Pulse Count Option .......................................................................................... 17
1.5.3 Meter Factor ............................................................................................................. 19
1.5.3.1 Meter Factor Functions ..................................................................................... 19
1.5.3.2 Meter Factor Calculation ................................................................................... 19
1.5.3.3 Meter Factor Examples ...................................................................................... 20
1.5.4 Carry ......................................................................................................................... 21
1.5.5 Block Control States .................................................................................................. 21
1.5.5.1 Measurement Error Handling for Auto to Manual Transitions .......................... 22
1.5.6 Alarming the Accumulator ........................................................................................ 23
1.5.7 Peer-to-Peer Connections of Real-Type Block Inputs ................................................ 23
1.5.8 Application Diagram ................................................................................................. 24

2. AIN – Analog Input Block .............................................................................................. 25


2.1 Overview ........................................................................................................................... 25
2.2 Basic Operation ................................................................................................................ 26
2.3 Features ............................................................................................................................. 26
2.4 Parameters ......................................................................................................................... 27
2.4.1 Parameter Definitions ............................................................................................... 29
2.5 Functions .......................................................................................................................... 44
2.5.1 Detailed Diagram ...................................................................................................... 44
2.5.2 Input and Signal Conditioning .................................................................................. 45
2.5.2.1 General Analog Input: 0 to 20 mA or 0 to 10 V dc ........................................... 45
2.5.2.2 Thermocouple Input ......................................................................................... 48
2.5.2.3 RTD Input ........................................................................................................ 50
2.5.2.4 Pulse Rate Input ................................................................................................ 52

vii
B0193AX – Rev AB Contents

2.5.2.5 Pulse Count Input ............................................................................................. 53


2.5.2.6 Intelligent Field Device Input ............................................................................ 53
2.5.2.7 Exceptions for Use of AIN Blocks with Intelligent Transmitters
and Positioners (Parent ECB73) .................................................................................... 55
2.5.2.8 Input from Another Block ................................................................................. 56
2.5.3 Zero and Span Scaling ............................................................................................... 57
2.5.4 Clamping .................................................................................................................. 57
2.5.5 Filtering .................................................................................................................... 58
2.5.5.1 First Order Lag Filtering (FLOP = 1) ................................................................ 59
2.5.5.2 Butterworth Filtering (FLOP = 2) ..................................................................... 60
2.5.5.3 Two-Sample-Average Filtering (FLOP = 3) ....................................................... 60
2.6 Bad Input and Out-of-Range Processing ........................................................................... 60
2.6.1 Bad Status and BAD Parameter ................................................................................. 60
2.6.2 Out-of-Range Conditions ......................................................................................... 61
2.6.2.1 Out-of-Range Due to Signal Conditioning ........................................................ 61
2.6.2.2 Out-of-Range Due to Clamping ........................................................................ 62
2.6.3 Out-of-Service Conditions ........................................................................................ 62
2.6.4 Last Good Value ....................................................................................................... 62
2.7 Manual Mode ................................................................................................................... 64
2.8 Alarming ........................................................................................................................... 65
2.9 Application Diagram ......................................................................................................... 66
2.10 Appendix A – Signal Conditioning Tables ...................................................................... 67
2.10.1 Summary ................................................................................................................. 67
2.10.2 Linear/Square Root Signal Conditioning ................................................................. 68
2.10.3 Thermocouple Signal Conditioning ........................................................................ 70
2.10.4 RTD Signal Conditioning ....................................................................................... 70
2.11 Appendix B – Valid Input Connections .......................................................................... 71
2.11.1 FBM201 through FBM242 Valid Input Connections ............................................. 71
2.11.2 FBM01 through FBM46 Valid Input Connections ................................................. 72
2.11.3 Cluster I/O Valid Input Connections ...................................................................... 73

3. AINR – Redundant Analog Input Block.......................................................................... 75


3.1 Overview ........................................................................................................................... 75
3.2 Basic Operation ................................................................................................................ 76
3.3 Features ............................................................................................................................. 76
3.4 Parameters ......................................................................................................................... 77
3.4.1 Parameter Definitions ............................................................................................... 79
3.5 Functions .......................................................................................................................... 96
3.5.1 Detailed Diagram ...................................................................................................... 96
3.5.2 Input And Signal Conditioning ................................................................................. 97
3.5.2.1 General Analog Input: 0 to 20 mA or 0 to 10 V dc ........................................... 97
3.5.2.2 Thermocouple Input ....................................................................................... 100
3.5.2.3 RTD Input ...................................................................................................... 103
3.5.2.4 Pulse Rate Input .............................................................................................. 104
3.5.2.5 Pulse Count Input ........................................................................................... 105
3.5.2.6 Intelligent Field Device Input .......................................................................... 106
3.5.2.7 Inputs from Other Blocks ................................................................................ 107
3.5.3 Zero and Span Scaling ............................................................................................. 108

viii
Contents B0193AX – Rev AB

3.5.4 Clamping ................................................................................................................ 109


3.5.5 Filtering .................................................................................................................. 110
3.5.5.1 First Order Lag Filtering (FLOP = 1) .............................................................. 110
3.5.5.2 Butterworth Filtering (FLOP = 2) ................................................................... 111
3.5.5.3 Two-Sample-Average Filtering (FLOP = 3) ..................................................... 111
3.6 Bad Input and Out-of-Range Processing ......................................................................... 112
3.6.1 Bad Status and BAD Parameter ............................................................................... 112
3.6.2 Out-of-Range Conditions ....................................................................................... 112
3.6.2.1 Out-of-Range Due to Signal Conditioning ...................................................... 112
3.6.2.2 Out-of-Range Due to Clamping ...................................................................... 113
3.6.3 Out-of-Service Conditions ...................................................................................... 113
3.6.4 Last Good Value ..................................................................................................... 113
3.7 Manual Mode ................................................................................................................. 115
3.8 Alarming ......................................................................................................................... 115
3.9 Application Diagram ....................................................................................................... 117
3.10 Appendix A – Signal Conditioning Tables .................................................................... 118
3.10.1 Summary ............................................................................................................... 118
3.10.2 Linear/Square Root Signal Conditioning ............................................................... 119
3.10.3 Thermocouple Signal Conditioning ...................................................................... 121
3.10.4 RTD Signal Conditioning ..................................................................................... 121
3.11 Appendix B – Valid Input Connections ........................................................................ 121
3.11.1 FBM201 through FBM242 Valid Input Connections ........................................... 121
3.11.2 FBM01 through FBM46 Valid Input Connections ............................................... 123
3.11.3 Cluster I/O Valid Input Connections .................................................................... 124

4. ALMPRI – Alarm Priority Change Block ...................................................................... 127


4.1 Overview ......................................................................................................................... 127
4.2 Features ........................................................................................................................... 127
4.3 Parameters ....................................................................................................................... 127
4.3.1 Parameter Definitions ............................................................................................. 128
4.4 Detailed Operation ......................................................................................................... 132
4.4.1 Detailed Diagram .................................................................................................... 132
4.4.2 Block States ............................................................................................................. 132
4.4.2.1 Initialization .................................................................................................... 132
4.4.2.2 Manual ............................................................................................................ 132
4.4.2.3 Auto ................................................................................................................ 132
4.4.3 Alarm Priority Changing ......................................................................................... 132
4.4.3.1 Example Application ....................................................................................... 133

5. AOUT – Analog Output Block ..................................................................................... 135


5.1 Overview ......................................................................................................................... 135
5.2 Basic Operation .............................................................................................................. 136
5.3 Features ........................................................................................................................... 136
5.4 Parameters ....................................................................................................................... 137
5.4.1 Parameter Definitions ............................................................................................. 139
5.5 Functions ........................................................................................................................ 154

ix
B0193AX – Rev AB Contents

5.5.1 Detailed Diagram .................................................................................................... 154


5.5.2 Block Initialization .................................................................................................. 155
5.5.3 Block Validation ...................................................................................................... 156
5.5.4 Output Processing ................................................................................................... 157
5.5.4.1 Zero and Span Scaling ..................................................................................... 158
5.5.4.2 Reset Balance Action ....................................................................................... 159
5.5.4.3 Clamping ........................................................................................................ 160
5.5.4.4 Back Calculated Outputs ................................................................................. 160
5.5.4.5 Signal Conditioning ........................................................................................ 161
5.5.4.6 Output to FBM or FBC .................................................................................. 163
5.5.4.7 Configuring the AOUT Block for Intelligent Positioners ................................ 163
5.5.5 Changing Engineering Range Limits ....................................................................... 164
5.5.6 Hold State ............................................................................................................... 165
5.5.7 PRIBLK and PRITIM Functionality ....................................................................... 165
5.5.8 Failsafe State ............................................................................................................ 165
5.5.9 Supervisory Control ................................................................................................ 166
5.6 Bad, Out-of-Service, and Error Conditions ..................................................................... 167
5.6.1 Bad Condition ........................................................................................................ 167
5.6.2 Out-of-Service Condition ........................................................................................ 168
5.6.3 Error Condition and Last Good Value Functionality .............................................. 168
5.7 Manual Mode ................................................................................................................. 169
5.8 Alarming ......................................................................................................................... 170
5.9 Application Diagram ....................................................................................................... 171

6. AOUTR – Redundant Analog Output Block ................................................................ 173


6.1 Overview ......................................................................................................................... 173
6.2 Basic Operation .............................................................................................................. 174
6.3 Features ........................................................................................................................... 175
6.4 Parameters ....................................................................................................................... 176
6.4.1 Parameter Definitions ............................................................................................. 178
6.4.2 Detailed Diagram .................................................................................................... 192
6.4.3 Block Initialization .................................................................................................. 193
6.4.4 Block Validation ...................................................................................................... 194
6.4.5 Output Processing ................................................................................................... 195
6.4.5.1 Zero and Span Scaling ..................................................................................... 196
6.4.5.2 Reset Balance Action ....................................................................................... 197
6.4.5.3 Clamping ........................................................................................................ 198
6.4.5.4 Back Calculated Outputs ................................................................................. 198
6.4.5.5 Signal Conditioning ........................................................................................ 199
6.4.5.6 Output to FBMs or FBCs ................................................................................ 201
6.4.6 Changing Engineering Range Limits ....................................................................... 201
6.4.7 Hold State ............................................................................................................... 201
6.4.8 PRIBLK and PRITIM Functionality ....................................................................... 202
6.4.9 Failsafe State ............................................................................................................ 202
6.4.10 Supervisory Control .............................................................................................. 202
6.5 Bad, Out-of-Service, and Error Conditions ..................................................................... 204
6.5.1 Bad Condition ........................................................................................................ 204
6.5.2 Out-of-Service Condition ........................................................................................ 205

x
Contents B0193AX – Rev AB

6.5.3 Error Condition and Last Good Value Functionality .............................................. 205
6.6 Manual Mode ................................................................................................................. 206
6.7 Alarming ......................................................................................................................... 207
6.8 Application Diagram ....................................................................................................... 208

7. BIAS – Bias Block ......................................................................................................... 209


7.1 Overview ......................................................................................................................... 209
7.1.1 I/O Diagram ........................................................................................................... 209
7.2 Features ........................................................................................................................... 210
7.3 Parameters ....................................................................................................................... 211
7.3.1 Parameter Definitions ............................................................................................. 214
7.4 Functions ........................................................................................................................ 232
7.4.1 Detailed Operation ................................................................................................. 232
7.4.1.1 Normal Configuration ..................................................................................... 234
7.4.2 PRIBLK and PRITIM Functionality ....................................................................... 236

8. BIN – Binary Input Block ............................................................................................. 237


8.1 Overview ......................................................................................................................... 237
8.2 Basic Operation .............................................................................................................. 237
8.3 Features ........................................................................................................................... 238
8.4 Parameters ....................................................................................................................... 238
8.4.1 Parameter Definitions ............................................................................................. 240
8.5 Functions ........................................................................................................................ 252
8.5.1 Detailed Diagram .................................................................................................... 252
8.5.2 Associated ECBs ...................................................................................................... 252
8.5.3 DCI Connection ..................................................................................................... 253
8.5.4 Origin of Input Data ............................................................................................... 253
8.5.5 Processing of Input Point Status .............................................................................. 254
8.5.6 Processing of Input Point Data ................................................................................ 254
8.5.7 Auto/Manual Arbitration ........................................................................................ 254
8.5.8 Operation in Auto Mode ......................................................................................... 255
8.5.9 Operation in Manual Mode .................................................................................... 255
8.5.10 State Change Messages (CP270 Only) .................................................................. 255
8.5.11 Alarming (CP270 Only) ........................................................................................ 256
8.5.11.1 BAD I/O Alarms ........................................................................................... 256
8.5.11.2 State Alarms .................................................................................................. 257
8.5.11.3 Alarm Management ....................................................................................... 257
8.5.12 Time Stamp .......................................................................................................... 257

9. BINR – Redundant Binary Input Block ........................................................................ 259


9.1 Overview ......................................................................................................................... 259
9.2 Basic Operation .............................................................................................................. 259
9.3 Features ........................................................................................................................... 260
9.4 Parameters ....................................................................................................................... 260
9.4.1 Parameter Definitions ............................................................................................. 262

xi
B0193AX – Rev AB Contents

9.5 Functions ........................................................................................................................ 276


9.5.1 Detailed Diagram .................................................................................................... 276
9.5.2 Associated ECBs ...................................................................................................... 276
9.5.3 DCI Connections .................................................................................................... 277
9.5.4 Origins of Input Data .............................................................................................. 277
9.5.5 Processing the Status and Data of the Input Points ................................................. 278
9.5.6 Arbitration Algorithm ............................................................................................. 279
9.5.7 Auto/Manual Arbitration ........................................................................................ 280
9.5.8 Operation in Auto Mode ......................................................................................... 280
9.5.9 Operation in Manual Mode .................................................................................... 280
9.5.10 State Change Messages (CP270 Only) .................................................................. 280
9.5.11 Alarming (CP270 Only) ........................................................................................ 281
9.5.11.1 BAD I/O Alarms ........................................................................................... 281
9.5.11.2 State Alarms .................................................................................................. 282
9.5.11.3 Alarm Management ....................................................................................... 282
9.5.12 Time Stamp .......................................................................................................... 283

10. BLNALM – Boolean Alarm Block............................................................................... 285


10.1 Overview ....................................................................................................................... 285
10.1.1 I/O Diagram ......................................................................................................... 285
10.2 Features ......................................................................................................................... 285
10.3 Parameters ..................................................................................................................... 286
10.3.1 Parameter Definitions ........................................................................................... 286
10.4 Functions ...................................................................................................................... 293
10.4.1 Detailed Operation ............................................................................................... 293

11. BOOL – Boolean Variable Block................................................................................. 295


11.1 Overview ....................................................................................................................... 295
11.2 Basic Operation ............................................................................................................ 295
11.3 Features ......................................................................................................................... 296
11.4 Parameters ..................................................................................................................... 296
11.4.1 Parameter Definitions ........................................................................................... 296

12. BOUT – Binary Output Block.................................................................................... 299


12.1 Overview ....................................................................................................................... 299
12.2 Basic Operation ............................................................................................................ 300
12.3 Features ......................................................................................................................... 301
12.4 Parameters ..................................................................................................................... 302
12.4.1 Parameter Definitions ........................................................................................... 303
12.5 Functions ...................................................................................................................... 315
12.5.1 Detailed Diagram .................................................................................................. 315
12.5.2 Associated ECBs .................................................................................................... 315
12.5.3 DCI Connections .................................................................................................. 316
12.5.4 Output Point and Initialization Input Point .......................................................... 316
12.5.5 Confirmed Output Parameters .............................................................................. 317
12.5.6 Status of the Readback Value ................................................................................ 317

xii
Contents B0193AX – Rev AB

12.5.7 Auto/Manual Switching ........................................................................................ 318


12.5.8 Fail-Safe Functions ................................................................................................ 318
12.5.9 Time Stamp .......................................................................................................... 319
12.5.10 Conditions for Sending a Block Output .............................................................. 320
12.5.11 Sending the Output ............................................................................................ 320
12.5.12 Status of Other Block Outputs ............................................................................ 320
12.5.13 PRIBLK and PRITIM Functionality ................................................................... 320
12.5.14 Change Timer ..................................................................................................... 321
12.5.15 Status of INI_PT ................................................................................................. 321
12.5.16 Initialization ........................................................................................................ 321
12.5.17 Cascade Processing .............................................................................................. 321
12.5.18 Holding and Tracking ......................................................................................... 322
12.5.19 Alarming (CP270 Only) ...................................................................................... 322

13. BOUTR – Redundant Binary Output Block ............................................................... 325


13.1 Overview ....................................................................................................................... 325
13.2 Basic Operation ............................................................................................................ 325
13.3 Features ......................................................................................................................... 327
13.4 Parameters ..................................................................................................................... 328
13.4.1 Parameter Definitions ........................................................................................... 329
13.5 Functions ...................................................................................................................... 342
13.5.1 Detailed Diagram .................................................................................................. 342
13.5.2 Associated ECBs .................................................................................................... 342
13.5.3 DCI Connections .................................................................................................. 343
13.5.4 Output Point and Initialization Input Point .......................................................... 343
13.5.5 Confirmed Output Parameters .............................................................................. 344
13.5.6 Status of the Readback Values ............................................................................... 345
13.5.7 Arbitration Algorithm ........................................................................................... 345
13.5.8 Auto/Manual Switching ........................................................................................ 346
13.5.9 Fail-Safe Functions ................................................................................................ 347
13.5.10 Time Stamp ........................................................................................................ 347
13.5.11 Conditions for Sending a Block Output .............................................................. 347
13.5.12 Sending the Output ............................................................................................ 348
13.5.13 Status of Other Block Outputs ............................................................................ 348
13.5.14 PRIBLK and PRITIM Functionality ................................................................... 348
13.5.15 Change Timer ..................................................................................................... 348
13.5.16 Status of INI_PT ................................................................................................. 349
13.5.17 Initialization ........................................................................................................ 349
13.5.18 Cascade Processing .............................................................................................. 349
13.5.19 Holding and Tracking ......................................................................................... 350
13.5.20 Simulation Option .............................................................................................. 350
13.5.21 Alarming (CP270 Only) ...................................................................................... 350
13.5.21.1 Bad Alarming Overview ............................................................................... 351
13.5.21.2 Inhibiting and Disabling Alarms .................................................................. 351

14. CALC – Calculator Block............................................................................................ 353


14.1 Overview ....................................................................................................................... 353
14.2 Basic Operation ............................................................................................................ 354

xiii
B0193AX – Rev AB Contents

14.3 Features ......................................................................................................................... 354


14.4 Parameters ..................................................................................................................... 355
14.4.1 Parameter Definitions ........................................................................................... 356
14.5 Functions ...................................................................................................................... 362
14.5.1 Arithmetic Instructions ......................................................................................... 364
14.5.2 Boolean Instructions .............................................................................................. 365
14.5.3 Input/Output Reference Instructions .................................................................... 366
14.5.4 Cascade and Propagation Instructions ................................................................... 367
14.5.5 Memory and Stack Reference Instructions ............................................................. 367
14.5.6 Program Control Instructions ............................................................................... 368
14.5.7 Clear/Set Instructions ............................................................................................ 369
14.5.8 Timing Functions ................................................................................................. 369
14.5.9 Logic Functions ..................................................................................................... 370
14.5.10 Error Control Instructions ................................................................................... 371
14.6 Instructions ................................................................................................................... 371
14.6.1 Instruction Processing ........................................................................................... 371
14.6.1.1 Auto Mode .................................................................................................... 371
14.6.1.2 Manual Mode ................................................................................................ 371
14.6.2 Instruction Syntax ................................................................................................. 372
14.6.2.1 Rules ............................................................................................................. 372
14.6.2.2 Constants ...................................................................................................... 373
14.6.3 Instruction Operation ........................................................................................... 373
14.6.3.1 Stack Operation ............................................................................................. 374
14.6.4 Instruction Definition Convention ........................................................................ 376
14.6.5 Instruction Definitions .......................................................................................... 377
14.7 Error Conditions ........................................................................................................... 425
14.8 Programming Concepts ................................................................................................. 426
14.8.1 Execution Sequence ............................................................................................... 427
14.8.2 Arithmetic Chaining ............................................................................................. 428
14.8.2.1 Stack Push Operation .................................................................................... 428
14.8.2.2 Stack Pop Operation ..................................................................................... 428
14.9 Application Example ..................................................................................................... 432

15. CALCA – Advanced Calculator Block ......................................................................... 433


15.1 Overview ....................................................................................................................... 433
15.2 Basic Operation ............................................................................................................ 434
15.3 Features ......................................................................................................................... 435
15.4 Parameters ..................................................................................................................... 435
15.4.1 Parameter Definitions ........................................................................................... 436
15.5 Functions ...................................................................................................................... 441
15.5.1 Arithmetic Instructions ......................................................................................... 441
15.5.2 Boolean Instructions .............................................................................................. 443
15.5.3 Input/Output Reference Instructions .................................................................... 443
15.5.4 Cascade and Propagation Instructions ................................................................... 444
15.5.5 Memory and Stack Reference Instructions ............................................................. 445
15.5.6 Program Control Instructions ............................................................................... 445
15.5.7 Clear/Set Instructions ............................................................................................ 446
15.5.8 Timing Instructions .............................................................................................. 446

xiv
Contents B0193AX – Rev AB

15.5.9 Logic Instructions .................................................................................................. 446


15.5.10 Error Control Instructions ................................................................................... 447
15.6 Instructions ................................................................................................................... 447
15.6.1 Instruction Processing ........................................................................................... 447
15.6.1.1 Auto Mode .................................................................................................... 447
15.6.1.2 Manual Mode ................................................................................................ 447
15.6.2 Instruction Syntax ................................................................................................. 448
15.6.2.1 Rules ............................................................................................................. 448
15.6.2.2 Constants ...................................................................................................... 449
15.6.3 Instruction Operation ........................................................................................... 449
15.6.3.1 Stack Operation ............................................................................................. 450
15.6.4 Instruction Definition Convention ........................................................................ 452
15.6.5 Instruction Definitions .......................................................................................... 453
15.7 Error Conditions ........................................................................................................... 504
15.8 Programming Concepts ................................................................................................. 505
15.8.1 Execution Sequence ............................................................................................... 506
15.8.2 Arithmetic Chaining ............................................................................................. 507
15.8.2.1 Stack Push Operations ................................................................................... 507
15.8.2.2 Stack Pop Operations .................................................................................... 507
15.9 Application Example ..................................................................................................... 509

16. CHARC – Characterizer Block.................................................................................... 511


16.1 Overview ....................................................................................................................... 511
16.1.1 I/O Diagram ......................................................................................................... 511
16.2 Features ......................................................................................................................... 511
16.3 Parameters ..................................................................................................................... 512
16.3.1 Parameter Definitions ........................................................................................... 513
16.4 Detailed Operation ....................................................................................................... 526
16.4.1 PRIBLK and PRITIM Functionality ..................................................................... 528

17. CIN – Contact Input Block......................................................................................... 529


17.1 Overview ....................................................................................................................... 529
17.2 Basic Operation ............................................................................................................ 529
17.3 Features ......................................................................................................................... 530
17.4 Parameters ..................................................................................................................... 530
17.4.1 Parameter Definitions ........................................................................................... 531
17.4.2 Detailed Diagram .................................................................................................. 542
17.4.3 Input from FBM or FBC ....................................................................................... 543
17.4.4 Input from Another Block ..................................................................................... 545
17.5 Bad Input, Out-of-Service and Error Conditions .......................................................... 545
17.5.1 Bad Input Condition ............................................................................................. 545
17.5.2 Out-of-Service Condition ...................................................................................... 546
17.5.3 Error Condition .................................................................................................... 546
17.6 Manual Mode ............................................................................................................... 546
17.7 Messages and Alarming ................................................................................................. 546
17.7.1 State Change Messages .......................................................................................... 547

xv
B0193AX – Rev AB Contents

17.7.2 Alarming ............................................................................................................... 547


17.8 Application Diagram ..................................................................................................... 548
17.9 Appendix A – Valid Input Connections ........................................................................ 548
17.9.1 Fieldbus Modules Valid Input Connections .......................................................... 548
17.9.2 Cluster I/O Valid Input Connections .................................................................... 550

18. CINR – Redundant Contact Input Block.................................................................... 553


18.1 Overview ....................................................................................................................... 553
18.2 Basic Operation ............................................................................................................ 554
18.3 Features ......................................................................................................................... 554
18.4 Parameters ..................................................................................................................... 555
18.4.1 Parameter Definitions ........................................................................................... 556
18.5 Functions ...................................................................................................................... 568
18.5.1 Detailed Diagram .................................................................................................. 568
18.5.2 Input from FBM ................................................................................................... 569
18.5.3 Input from Another Block ..................................................................................... 569
18.6 Bad Input and Out-of-Service Conditions .................................................................... 569
18.6.1 Bad Input Condition ............................................................................................. 569
18.6.2 Out-of-Service Condition ...................................................................................... 570
18.7 Manual Mode ............................................................................................................... 570
18.8 Messages and Alarming ................................................................................................. 570
18.8.1 State Change Messages .......................................................................................... 570
18.8.2 Alarming ............................................................................................................... 571
18.8.2.1 State Alarming Overview ............................................................................... 572
18.8.2.2 Bad Alarming Overview ................................................................................. 572
18.9 Application Diagram ..................................................................................................... 573

19. CMP – Compounds .................................................................................................... 575


19.1 Compound Overview .................................................................................................... 575
19.2 Compound I/O Diagram .............................................................................................. 576
19.3 Compound Features ...................................................................................................... 576
19.4 Compound Rules .......................................................................................................... 576
19.5 Compound Functions ................................................................................................... 576
19.5.1 Compound/Block Process Alarming ...................................................................... 576
19.5.2 Compound/Block Phasing .................................................................................... 577
19.5.3 Compound Attributes ........................................................................................... 577
19.5.4 Compound Access ................................................................................................. 577
19.5.5 Compound/Block Parameters ................................................................................ 577
19.5.5.1 Configurable Parameters ................................................................................ 578
19.5.5.2 Connectable Parameters ................................................................................ 578
19.5.5.3 Input Parameters ........................................................................................... 578
19.5.5.4 Output Parameters ........................................................................................ 579
19.5.5.5 Nonconnectable Parameters .......................................................................... 579
19.5.5.6 Compound Operation Information and Procedures ...................................... 579
19.6 Compound Parameters .................................................................................................. 580

xvi
Contents B0193AX – Rev AB

20. COUT – Contact Output Block.................................................................................. 585


20.1 Overview ....................................................................................................................... 585
20.2 Basic Operation ............................................................................................................ 586
20.3 Features ......................................................................................................................... 586
20.4 Parameters ..................................................................................................................... 587
20.4.1 Parameter Definitions ........................................................................................... 588
20.5 Functions ...................................................................................................................... 597
20.5.1 Detailed Diagram .................................................................................................. 597
20.5.2 Output Processing ................................................................................................. 598
20.5.3 Bumpless Operation Features ................................................................................ 600
20.6 Bad Input, Out-of-Service, and Error Conditions ......................................................... 601
20.6.1 Bad Input Conditions ........................................................................................... 601
20.6.2 Out-of-Service Condition ...................................................................................... 601
20.6.3 Error Condition and Last Good Value Functionality ............................................ 601
20.7 Failsafe State ................................................................................................................. 602
20.8 Manual Mode ............................................................................................................... 602
20.9 Alarming ....................................................................................................................... 603
20.10 Application Diagram ................................................................................................... 604
20.11 Appendix A – Valid Output Connections ................................................................... 605

21. COUTR – Redundant Contact Output Block............................................................. 609


21.1 Overview ....................................................................................................................... 609
21.2 Basic Operation ............................................................................................................ 610
21.3 Features ......................................................................................................................... 611
21.4 Parameters ..................................................................................................................... 612
21.4.1 Parameter Definitions ........................................................................................... 613
21.5 Functions ...................................................................................................................... 623
21.5.1 Detailed Diagram .................................................................................................. 623
21.5.2 Output Processing ................................................................................................. 624
21.5.2.1 Duplicate Output Channel Detection ........................................................... 624
21.5.2.2 Pulsed Output ............................................................................................... 625
21.5.3 Output Initialization ............................................................................................. 625
21.5.4 Cascade Initialization ............................................................................................ 625
21.5.5 Simulation Mode .................................................................................................. 626
21.6 Bad Input, Out-of-Service, and Error Conditions ......................................................... 626
21.6.1 Bad Input Conditions ........................................................................................... 626
21.6.2 Out-of-Service Condition ...................................................................................... 626
21.6.3 Error Condition and Last Good Value Functionality ............................................ 626
21.7 Failsafe State ................................................................................................................. 627
21.8 Block Modes ................................................................................................................. 627
21.8.1 Auto Mode ............................................................................................................ 627
21.8.2 Auto Hold Mode ................................................................................................... 628
21.8.3 Manual Mode ....................................................................................................... 628
21.9 Alarming ....................................................................................................................... 629

xvii
B0193AX – Rev AB Contents

21.9.1 Bad Alarming Overview ........................................................................................ 629


21.9.2 Inhibiting and Disabling Alarms ........................................................................... 630
21.10 Application Diagram ................................................................................................... 631

22. DEP – Dependent Sequence Block.............................................................................. 633


22.1 Overview ....................................................................................................................... 633
22.1.1 I/O Diagram ......................................................................................................... 633
22.2 Features ......................................................................................................................... 633
22.3 Parameters ..................................................................................................................... 635
22.3.1 Parameter Definitions ........................................................................................... 636
22.4 Detailed Operation ....................................................................................................... 648

23. DGAP – Differential Gap Block.................................................................................. 653


23.1 Overview ....................................................................................................................... 653
23.2 Features ......................................................................................................................... 654
23.3 Parameters ..................................................................................................................... 655
23.3.1 Parameter Definitions ........................................................................................... 657
23.4 Detailed Operation ....................................................................................................... 674
23.4.1 Detailed Diagram .................................................................................................. 674
23.4.1.1 BiState Mode ................................................................................................. 676
23.4.1.2 Tristate Mode ................................................................................................ 676
23.4.2 Setpoint Control Mode ......................................................................................... 677
23.4.3 Setpoint Tracking .................................................................................................. 678
23.4.4 Auto Control Mode .............................................................................................. 678
23.4.5 Hold Mode ........................................................................................................... 678
23.4.6 Manual Mode ....................................................................................................... 679
23.4.7 Alarming ............................................................................................................... 679
23.4.7.1 Inhibit Alarming ............................................................................................ 679
23.4.7.2 Absolute Alarming ......................................................................................... 680
23.4.7.2.1 High-High Absolute Alarming............................................................... 680
23.4.7.2.2 Low-Low Absolute Alarming ................................................................. 680
23.4.7.2.3 High Absolute Alarming ........................................................................ 680
23.4.7.2.4 Low Absolute Alarming ......................................................................... 680
23.4.7.3 Deviation Alarming ....................................................................................... 681
23.4.7.3.1 High Deviation Alarming ...................................................................... 681
23.4.7.3.2 Low Deviation Alarming ....................................................................... 682
23.4.8 GAP and GAPDB Parameter Validation ............................................................... 682
23.4.9 Normal Configuration .......................................................................................... 682
23.4.10 Application .......................................................................................................... 682

24. DPIDA Controller ...................................................................................................... 685


24.1 Overview ....................................................................................................................... 685
24.2 Basic Operation ............................................................................................................ 686
24.2.1 ECB52 Related Functions ..................................................................................... 686
24.3 Features ......................................................................................................................... 687
24.3.1 DPIDA Features .................................................................................................... 687
24.3.1.1 Control Modes .............................................................................................. 687

xviii
Contents B0193AX – Rev AB

24.3.1.2 Standard DPIDA Features ............................................................................. 687


24.3.1.3 Standard DPIDA Options ............................................................................. 688
24.3.1.4 Extended DPIDA Options ............................................................................ 689
24.3.1.5 ECB52 Features ............................................................................................. 690
24.4 Parameters ..................................................................................................................... 690
24.4.1 Parameter Definitions ........................................................................................... 694
24.5 ECB52 Parameters ........................................................................................................ 721
24.5.1 ECB52 Parameter Definitions ............................................................................... 722
24.6 Functions ...................................................................................................................... 730
24.6.1 Detailed Functional Diagram ................................................................................ 730
24.6.2 DPIDA Detailed Operation .................................................................................. 730
24.6.2.1 Control Modes .............................................................................................. 734
24.6.2.2 Manual State ................................................................................................. 737
24.6.2.3 Auto State ...................................................................................................... 738
24.6.2.4 Manual/Auto Overrides ................................................................................. 738
24.6.2.5 Holding State ................................................................................................ 739
24.6.2.6 PRIBLK and PRITIM Functionality ............................................................. 739
24.6.2.7 Output Tracking State .................................................................................. 739
24.6.2.8 Bumpless Start-up and Transfers ................................................................... 739
24.6.2.9 Cascade Handling ......................................................................................... 739
24.6.2.10 Output Limiting .......................................................................................... 741
24.6.2.11 FBM I/O Variable Scaling ........................................................................... 742
24.6.2.12 Measurement Filtering ................................................................................. 742
24.6.2.13 Setpoint Processing ...................................................................................... 744
24.6.2.13.1 Supervisory Setpoint......................................................................... 744
24.6.2.13.2 Local/Remote Overrides ................................................................... 745
24.6.2.13.3 Setpoint State ................................................................................... 745
24.6.2.13.4 Local/Remote Setpoint Selection ...................................................... 745
24.6.2.13.5 Setpoint Limiting ............................................................................. 746
24.6.2.13.6 Setpoint Gain Compensation............................................................ 747
24.6.2.13.7 Setpoint Ramping............................................................................. 747
24.6.2.13.8 Error Propagation ............................................................................. 748
24.6.2.14 Nonlinear Gain ........................................................................................... 748
24.6.2.15 Feedforward ................................................................................................ 750
24.6.2.16 Error Detection ........................................................................................... 750
24.6.2.17 Alarms ......................................................................................................... 751
24.6.2.18 Validation Checks ....................................................................................... 753
24.6.2.19 Block Initialization ...................................................................................... 754
24.6.2.20 Exception Processing ................................................................................... 754
24.6.3 ECB52 Detailed Operation ................................................................................... 755
24.6.3.1 Controller Cycle Time and Measurement Sampling ...................................... 755
24.6.3.2 Measurement Processing ................................................................................ 756
24.6.3.3 FBM Analog Output Scaling ......................................................................... 759
24.6.3.4 Failsafe Action ............................................................................................... 759
24.6.3.5 FBM04/FBM204 I/O Channels .................................................................... 760
24.6.3.6 FBM17/FBM227 I/O Channels and Operator’s Panel .................................. 760
24.6.3.7 FBM22 I/O Channels and Auto/Manual Station .......................................... 763
24.7 Application Example ..................................................................................................... 763
24.7.1 DPIDA Block Parameter Configuration ................................................................ 766
24.7.2 ECB52 Block Parameter Configuration ................................................................. 766

xix
B0193AX – Rev AB Contents

25. DSI – Display Station Interface Block......................................................................... 769


25.1 Overview ....................................................................................................................... 769
25.1.1 I/O Diagram ......................................................................................................... 769
25.2 Parameters ..................................................................................................................... 769
25.2.1 Parameter Definitions ........................................................................................... 770
25.3 Detailed Operation ....................................................................................................... 776

26. DTIME – Dead Time Compensator Block ................................................................. 779


26.1 Overview ....................................................................................................................... 779
26.1.1 I/O Diagram ......................................................................................................... 779
26.2 Features ......................................................................................................................... 779
26.3 Parameters ..................................................................................................................... 780
26.3.1 Parameter Definitions ........................................................................................... 781
26.4 Detailed Operation ....................................................................................................... 787
26.4.1 Algorithm Description .......................................................................................... 788

xx
Figures
1-1. ACCUM Block Diagram .............................................................................................. 1
1-2. ACCUM Block Operational Diagram ......................................................................... 16
1-3. ACCUM Block Algorithm .......................................................................................... 16
1-4. ACCUM Pulse Rate per Block Period ......................................................................... 17
1-5. ACCUM Pulse Count per Block Period ...................................................................... 17
1-6. ACCUM Pulse Rate per Minute ................................................................................. 18
1-7. ACCUM Pulse Count per Minute .............................................................................. 18
1-8. ACCUM CARRY Function ........................................................................................ 21
1-9. ACCUM SET, CLEAR, and HOLD Functionality .................................................... 22
1-10. ACCUM Block Alarming ........................................................................................... 23
1-11. Typical ACCUM Block Application ........................................................................... 24
2-1. AIN Block Diagram .................................................................................................... 25
2-2. AIN Block Operational Diagram ................................................................................ 44
2-3. General Analog Input Example ................................................................................... 45
2-4. Thermocouple Input Example .................................................................................... 48
2-5. RTD Input Example ................................................................................................... 50
2-6. Pulse Rate Input Example ........................................................................................... 52
2-7. Intelligent Field Device Input Example ....................................................................... 53
2-8. Typical Configuration for Intelligent Transmitters with Window ECB ...................... 55
2-9. Clamping .................................................................................................................... 58
2-10. First-Order Lag Filtering ............................................................................................. 59
2-11. Butterworth Filtering .................................................................................................. 60
2-12. Last Good Value ......................................................................................................... 64
2-13. Typical AIN Block Application ................................................................................... 66
3-1. AINR Block Diagram ................................................................................................. 75
3-2. AINR Block Operational Diagram .............................................................................. 96
3-3. General Analog Input Example ................................................................................... 97
3-4. Thermocouple Input Example .................................................................................. 100
3-5. RTD Input Example ................................................................................................. 103
3-6. Pulse Rate Input Example ......................................................................................... 104
3-7. Intelligent Field Device Input Example ..................................................................... 106
3-8. Clamping .................................................................................................................. 109
3-9. First-Order Lag Filtering ........................................................................................... 111
3-10. Butterworth Filtering ................................................................................................ 111
3-11. Last Good Value ....................................................................................................... 115
3-12. Typical AINR Block Application .............................................................................. 117
4-1. ALMPRI Block I/O Diagram .................................................................................... 127
4-2. ALMPRI, Detailed Block Diagram ........................................................................... 132
4-3. Example ALMPRI Block Connections ...................................................................... 133
5-1. AOUT Block Diagram .............................................................................................. 135
5-2. AOUT Block Operational Diagram .......................................................................... 154
5-3. Reset Balance Action ................................................................................................. 159
5-4. Typical Configuration for Intelligent Transmitters with Window ECB .................... 164
5-5. Typical AOUT Block Application ............................................................................. 171

xxi
B0193AX – Rev AB Figures

6-1. AOUTR Block Diagram ........................................................................................... 174


6-2. AOUTR Block Operational Diagram ....................................................................... 192
6-3. Reset Balance Action ................................................................................................. 197
6-4. Typical AOUTR Block Application .......................................................................... 208
7-1. BIAS Block I/O Diagram .......................................................................................... 209
7-2. Configuration for no Downstream Control Blocks ................................................... 235
7-3. Configuration for AOUT Downstream Block ........................................................... 235
7-4. Configuration for DGAP or PTC Secondary block ................................................... 236
7-5. Cascade Configuration .............................................................................................. 236
8-1. BIN Block Diagram .................................................................................................. 237
8-2. BIN Block Operational Diagram .............................................................................. 252
9-1. BINR Block Diagram ............................................................................................... 259
9-2. BINR Block Operational Diagram ............................................................................ 276
10-1. BLNALM Block I/O Diagram .................................................................................. 285
11-1. BOOL Block Functional Diagram ............................................................................ 295
12-1. BOUT Block Diagram .............................................................................................. 299
12-2. BOUT Block Operational Diagram .......................................................................... 315
13-1. BOUTR Block Diagram ........................................................................................... 326
13-2. BOUTR Block Operational Diagram ........................................................................ 342
14-1. CALC Block I/O Diagram ........................................................................................ 353
14-2. OSP, DON, DOFF Timing Diagram ....................................................................... 370
14-3. Manual Mode ........................................................................................................... 372
14-4. Examples of Stack Operation for Diadic Instructions ................................................ 374
14-5. Example of Stack Operation for Polyadic Instruction ................................................ 375
14-6. Timing Diagram for DOFF Example ........................................................................ 388
14-7. Timing Diagram for DON Example ......................................................................... 389
14-8. Timing Diagram for OSP Example ........................................................................... 411
14-9. Arithmetic Chaining Example, Operation Sequence ................................................. 429
14-10. Arithmetic Chaining, Stack Operation ...................................................................... 431
14-11. Application Example ................................................................................................. 432
15-1. CALCA Block I/O Diagram ..................................................................................... 433
15-2. Manual Mode ........................................................................................................... 448
15-3. Examples of Stack Operation for Diadic Instructions ................................................ 450
15-4. Example of Stack Operation for Polyadic Instruction ................................................ 451
15-5. Timing Diagram for DOFF Example ........................................................................ 466
15-6. Timing Diagram for DON Example ......................................................................... 467
15-7. Timing Diagram for OSP Example ........................................................................... 490
15-8. Program Branching Example ..................................................................................... 507
15-9. Arithmetic Chaining Example, Operation Sequence ................................................. 508
15-10. Arithmetic Chaining Example, Stack Operation ....................................................... 509
15-11. Application Example ................................................................................................. 509
16-1. CHARC Block I/O Diagram .................................................................................... 511
16-2. Functional Diagram, Characterizer Block .................................................................. 527
17-1. CIN Block Diagram .................................................................................................. 529
17-2. CIN Block Operational Diagram .............................................................................. 542
17-3. Typical CIN Block Application ................................................................................. 548
18-1. CINR Block Diagram ............................................................................................... 553
18-2. CINR Block Operational Diagram ........................................................................... 568

xxii
Figures B0193AX – Rev AB

18-3. Typical CINR Block Application .............................................................................. 573


19-1. Compound/Block Relationship ................................................................................. 575
19-2. Compound Inputs/Outputs ...................................................................................... 576
19-3. Compound Detail Display ........................................................................................ 580
20-1. COUT Block Diagram ............................................................................................. 585
20-2. COUT Block Operational Diagram .......................................................................... 597
21-1. COUTR Block Diagram ........................................................................................... 610
21-2. COUTR Block Operational Diagram ....................................................................... 623
22-1. DEP Block I/O Diagram .......................................................................................... 633
23-1. DGAP Block I/O Diagram ....................................................................................... 653
23-2. DGAP Tristate and Bistate Typical Operation .......................................................... 653
23-3. DGAP, Detailed Block Diagram ............................................................................... 675
23-4. DGAP Bistate Controller Mode ................................................................................ 676
23-5. DGAP Tristate Controller Mode .............................................................................. 677
23-6. Absolute Alarming .................................................................................................... 680
23-7. Deviation Alarming ................................................................................................... 681
23-8. Typical Cascade Configuration ................................................................................. 682
23-9. DGAP with Position Feedback ................................................................................. 683
24-1. DPIDA Controller Functional Diagram .................................................................... 685
24-2. PIDA Controller Detailed Functional Diagram ........................................................ 732
24-3. Cascade Configuration (Typical) ............................................................................... 740
24-4. Output Limiting ....................................................................................................... 741
24-5. Butterworth Measurement Filter Response ................................................................ 743
24-6. Supervisory Setpoint Control Cascade Configuration (Typical) ................................ 745
24-7. Setpoint Lead/Lag Compensation ............................................................................. 747
24-8. Nonlinear Gain Response .......................................................................................... 749
24-9. Measurement Sampling ............................................................................................. 756
24-10. FBM17/FBM227 (DPIDA) Local Operator’s Panel Configuration .......................... 761
24-11. Application Diagram ................................................................................................. 764
24-12. Surge Line and Control Line Curves ......................................................................... 765
25-1. DSI Block I/O Diagram ............................................................................................ 769
25-2. System with Display Station Capability ..................................................................... 776
25-3. DP10, CP30, CP40, or CP40B ................................................................................. 777
26-1. DTIME Block I/O Diagram ..................................................................................... 779
26-2. DTIME Signal Flow Diagram ................................................................................... 788

xxiii
B0193AX – Rev AB Figures

xxiv
Tables
1-1. ACCUM Block Parameters ........................................................................................... 3
1-2. Units of OUT and MEAS Are the Same ..................................................................... 20
1-3. Units of OUT and MEAS Are not the Same ............................................................... 20
2-1. AIN Block Parameters ................................................................................................. 27
2-2. Alarm Nomenclature ................................................................................................... 65
3-1. AINR Block Parameters .............................................................................................. 77
3-2. Alarm Nomenclature ................................................................................................. 116
4-1. ALMPRI Block Parameters ....................................................................................... 127
5-1. AOUT Block Parameters .......................................................................................... 137
5-2. AOUT Block Destinations ........................................................................................ 157
5-3. AOUT Block Alarm Nomenclature .......................................................................... 170
6-1. AOUTR Block Parameters ........................................................................................ 176
6-2. AOUTR Block Destinations ..................................................................................... 195
6-3. AOUT Block Alarm Nomenclature .......................................................................... 207
7-1. BIAS Block Parameters ............................................................................................. 211
8-1. BIN Block Parameters ............................................................................................... 238
8-2. ALMOPT Parameter Format .................................................................................... 240
8-3. ALMSTA Parameter Format ..................................................................................... 241
8-4. INHSTA Parameter Format ...................................................................................... 245
8-5. BIN Block Alarm Parameters .................................................................................... 256
9-1. BINR Block Parameters ............................................................................................ 260
9-2. ALMOPT Parameter Format .................................................................................... 262
9-3. ALMSTA Parameter Format ..................................................................................... 263
9-4. INHSTA Parameter Format ...................................................................................... 269
9-5. AI Block Alarm Parameters ....................................................................................... 281
10-1. BLNALM Block Parameters ...................................................................................... 286
10-2. INHALM Values ...................................................................................................... 293
11-1. BOOL Block Parameters ........................................................................................... 296
12-1. BOUT Block Parameters .......................................................................................... 302
12-2. ALMOPT Parameter Format .................................................................................... 303
12-3. ALMSTA Parameter Format ..................................................................................... 304
12-4. INHSTA Parameter Format ...................................................................................... 309
13-1. BOUTR Block Parameters ........................................................................................ 328
13-2. ALMOPT Parameter Format .................................................................................... 330
13-3. ALMSTA Parameter Format ..................................................................................... 330
13-4. INHSTA Parameter Format ...................................................................................... 336
13-5. Alarm Nomenclature ................................................................................................. 350
14-1. Block Comparison .................................................................................................... 353
14-2. CALC Block Parameters ........................................................................................... 355
14-3. Arithmetic Instructions ............................................................................................. 364
14-4. Boolean Instructions ................................................................................................. 365
14-5. Input/Output Reference Instructions ........................................................................ 366
14-6. Cascade and Propagation Instructions ....................................................................... 367
14-7. Memory and Stack Reference Instructions ................................................................ 368

xxv
B0193AX – Rev AB Tables

14-8. Program Control Instructions ................................................................................... 368


14-9. Clear/Set Instructions ................................................................................................ 369
14-10. Timing Instructions .................................................................................................. 370
14-11. Logic Instructions ..................................................................................................... 370
14-12. Error Control Instructions ........................................................................................ 371
14-13. Truth Table for FF Instruction ................................................................................. 391
14-14. Truth Table for MRS Instruction ............................................................................. 400
14-15. PERROR Syntax Error Codes ................................................................................... 426
14-16. PERROR Run-time Error Codes .............................................................................. 426
15-1. Block Comparison .................................................................................................... 434
15-2. CALCA Block Parameters ......................................................................................... 435
15-3. Arithmetic Instructions ............................................................................................. 442
15-4. Boolean Instructions ................................................................................................. 443
15-5. Input/Output Reference Instructions ........................................................................ 444
15-6. Cascade and Propagation Instructions ....................................................................... 444
15-7. Memory and Stack Reference Instructions ................................................................ 445
15-8. Program Control Instructions ................................................................................... 445
15-9. Clear/Set Instructions ................................................................................................ 446
15-10. Timing Instructions .................................................................................................. 446
15-11. Logic Instructions ..................................................................................................... 447
15-12. Error Control Instructions ........................................................................................ 447
15-13. Truth Table for FF Instruction ................................................................................. 469
15-14. Truth Table for MRS Instruction ............................................................................. 478
15-15. PERROR Syntax Error Codes ................................................................................... 505
15-16. PERROR Run-time Error Codes .............................................................................. 505
16-1. CHARC Block Parameters ........................................................................................ 512
17-1. CIN Block Parameters .............................................................................................. 530
17-2. Relationship Between IOMOPT, IVO, MA, CIN, and IN ....................................... 544
17-3. Alarm Nomenclature ................................................................................................. 547
18-1. CINR Block Parameters ............................................................................................ 555
18-2. Alarm Nomenclature ................................................................................................. 571
19-1. Compound Parameters .............................................................................................. 580
20-1. COUT Block Parameters .......................................................................................... 587
20-2. Input/Output Points, FBC10 and FBC10 Redundant .............................................. 599
20-3. Alarm Nomenclature ................................................................................................. 603
21-1. COUTR Block Parameters ........................................................................................ 612
21-2. Alarm Nomenclature ................................................................................................. 629
22-1. DEP Block Parameters .............................................................................................. 635
23-1. DGAP Block Parameters .......................................................................................... 655
24-1. DPIDA Block Parameters ......................................................................................... 690
24-2. ECB52 Parameters .................................................................................................... 721
24-3. FBM Variables .......................................................................................................... 733
24-4. Control Mode Filtering and Tuning Features ........................................................... 737
24-5. FBM I/O Variable Scaling ........................................................................................ 742
24-6. Ramping Action for SPROPT Options ..................................................................... 748
24-7. Status Bit Definitions for Parameter Value Record .................................................... 751
24-8. Parameter Settings for Block Initialization ................................................................. 754
24-9. Status of Critical Parameters ..................................................................................... 755

xxvi
Tables B0193AX – Rev AB

24-10. FBM Analog Input Signal Scaling ............................................................................. 757


24-11. Input Scaling Entry Examples ................................................................................... 758
24-12. FBM Analog Output Signal Scaling .......................................................................... 759
24-13. FBM04/FBM204 Channel Assignments ................................................................... 760
24-14. FBM17/FBM227 Channel Assignments ................................................................... 762
24-15. FBM22 Channel Assignments ................................................................................... 763
25-1. DSI Block Parameters ............................................................................................... 769
26-1. DTIME Block Parameters ......................................................................................... 780

xxvii
B0193AX – Rev AB Tables

xxviii
Preface
This document, Integrated Control Block Descriptions, provides operational and reference informa-
tion for using I/A Series® control blocks, equipment control blocks (ECBs) and window equip-
ment control blocks (window ECBs).
You use this document to gain detailed knowledge of the operation of each I/A Series Control
block. Using this knowledge, you can determine the correct block to apply to your control
strategy. You configure your control strategy using the InFusion™ Engineering Environment
(IEE), the Integrated Control Configurator (ICC), or the I/A Series Configuration Component
(IACC). While configuring your control strategy, you select the appropriate block, and connect
and/or configure the blocks individual parameters.
Before using this document you should be familiar with the concepts of the IA Series control sys-
tem. For I/A Series Release V8.0 (L03-2) and later releases, refer to Control Processor 270 (CP270)
Integrated Control Software Concepts (B0700AG). For I/A Series releases prior to Release V8.0
(L03-2), refer to Integrated Control Software Concepts (B0193AW).

NOTE
Distributed Control Interface (DCI) blocks for FOUNDATION™ fieldbus devices
(such as AI, AO, DI, DO, MAI, MAO, MDI and MDO) are provided in Integrated
Control Block Descriptions for FOUNDATION fieldbus Specific Control Blocks
(B0700EC).

Audience
This book is intended for experienced process engineers and application programmers.

Contents
The document is divided into sections. Each section describes one I/A Series block – with the
exception of Equipment Control Blocks (ECBs) and Window Equipment Control Blocks, which
describe multiple blocks of the same basic design.
Each control block section, if required, contains the following:
 A brief functional summary.
 A list of features and options.
 A list and a description of each of the parameters used by the block.
 Diagrams illustrating inputs, outputs, options and operation.
 A detailed description of block operation.

xxix
B0193AX – Rev AB Preface

Revision Information
For this release of the document (B0193AX-AB), the following changes were made to this vol-
ume:
Global
 Updated references to “CP60” to read “CP60 and later control processors” in
instances where all control processors released after the CP60 (such as the FCP270
and ZCP270) support the same functionality.
Chapter 1 “ACCUM – Accumulator Block”
 Updated the equation for PCNTOP = 2 in “Pulse Count Option” on page 17.
Chapter 2 “AIN – Analog Input Block”
 Updated the description of the DELTO1 parameter.
 Added note about how BLKSTA.BAD, PNT.BAD, and BAD track each other to
“Bad Status and BAD Parameter” on page 60.
Chapter 3 “AINR – Redundant Analog Input Block”
 Added note about how BLKSTA.BAD, PNT.BAD, and BAD track each other to
“Bad Status and BAD Parameter” on page 112.
Chapter 5 “AOUT – Analog Output Block”
Chapter 6 “AOUTR – Redundant Analog Output Block”
Chapter 7 “BIAS – Bias Block”
Chapter 12 “BOUT – Binary Output Block”
Chapter 13 “BOUTR – Redundant Binary Output Block”
Chapter 16 “CHARC – Characterizer Block”
Chapter 24 “DPIDA Controller”
 Removed the incorrect information for setting the PRIBLK parameter in the AOUT
block to 1 and the warning ‘W48 - INVALID BLOCK OPTION’ from the
“PRIBLK and PRITIM Functionality” section in each chapter.
Chapter 5 “AOUT – Analog Output Block”
Chapter 6 “AOUTR – Redundant Analog Output Block”
Chapter 7 “BIAS – Bias Block”
Chapter 16 “CHARC – Characterizer Block”
Chapter 24 “DPIDA Controller”
 Removed “PRITIM = zero” condition from ERCODE parameter fields.
Chapter 7 “BIAS – Bias Block”
 Added BLKSTA.B19/ Bit 13 (PORSCHE) to BLKSTA parameter - indicates the
presence of I/A Series v8.5 controller enhancements in the block (a set of parameters
which are not available/supported on earlier versions of I/A Series software.)
 Added the UNCLMP parameter to this block.
Chapter 8 “BIN – Binary Input Block”
Chapter 9 “BINR – Redundant Binary Input Block”

xxx
Preface B0193AX – Rev AB

Chapter 12 “BOUT – Binary Output Block”


 Added information on how to configure this block for the FBM247.

Reference Documents
Refer to the following documents for additional information:
 Integrated Control Software Concepts (B0193AW) for I/A Series releases prior to V8.0
 Control Processor 270 (CP270) Integrated Control Software Concepts (B0700AG) for
I/A Series Release V8.0 and later releases
 Supervisory Set Point Control (B0193RY)
 Fieldbus Cluster I/O User’s Guide (B0193RB)
 Enhanced PLC Block Descriptions (B0193YQ)
 Integrated Control Configurator (B0193AV)

I/A Series Configuration Component (IACC) User’s Guide (B0400BP)
 Integrated Control Block Descriptions for FOUNDATION fieldbus Specific Control Blocks
(B0700EC)
 FOUNDATION fieldbus H1 Interface Module (FBM220/221) User Guide (B0400FD)
 Field Device System Integrators (FBM230/231/232/233) User’s Guide (B0700AH)
 I/A Series® System PROFIBUS-DPTM Communication Interface Module (FBM223)
User’s Guide (B0400FE)
 I/A Series® System HART™ Communication Interface Modules User’s Guide
(B0400FF)
 I/A Series® System Modbus® Communication Interface Module (FBM224) User’s
Guide (B0400FK)
 Intrinsically Safe I/O Subsystem User’s Guide (B0700DP)
 Foxboro Control Software Deployment Guide (B0750BA)
Most are available on the I/A Series Electronic Documentation CD-ROM (K0173TQ or
K0173WT). The latest revisions may also be available through the IOM Global Customer Sup-
port Center at http://support.ips.invensys.com.

xxxi
B0193AX – Rev AB Preface

xxxii
1. ACCUM – Accumulator Block
This chapter describes the Accumulator block, or ACCUM, its features, parameters and
functions.

1.1 Overview
The Accumulator block, ACCUM, provides a convenient method for accumulating values from
an analog flow signal source, without using a pulse input primary device. The block accepts a real
input, as a rate or pulse count, and then scales it to create the correct rate units. ACCUM then
integrates the input over the block period time, accumulates the value with the results of the pre-
vious block period time(s) and stores it as a real value to the output. Scaling is accomplished using
a meter factor to achieve engineering unit and time scale compatibility between the measurement
inputs and the desired output units.

Block
Period Meter
Time Factor
Pulse
Count
Convert Rate Accumulated
Integrator
to Rate Rate Value
Meas
Input
High Scale Carry
Pulse Detector
Rate

Alarming Alarm
Indication
Figure 1-1. ACCUM Block Diagram

1.2 Basic Operation


The ACCUM block integrates the measurement input over the block’s period time, adds it to a
running total for the block, and then saves it to the output. An optional meter factor can be used
to make the output units compatible with desired output units. In all cases the meter factor
expresses a flow volume per pulse.
The pulse count option allows you to configure the type of totalization performed and determines
whether totalization is block period time dependent or independent. The pulse count option
selects four types of block operation:
 The measurement input can be a pulse rate variable in terms of block period time
(pulses per period.)
 The measurement input can be a pulse count variable in terms of block period time.

1
B0193AX – Rev AB 1. ACCUM – Accumulator Block

 The measurement input can be a pulse rate variable in terms independent of the block
period time, namely pulses per minute. Use of this option permits the meter factor to
be automatically adjusted to changes in the block period time.
 The measurement input can be a pulse count variable in terms independent of the
block period time. Use of this option permits the meter factor to be automatically
adjusted to changes in the block period time.
In each of these cases, the pulse count option dictates the type of measurement the block accepts
as an input. The pulse count option determines the type of value being integrated using the algo-
rithm shown in “ACCUM Block Algorithm” on page 16. Once the integration is complete, the
algorithm scales the output using an operator-set meter factor.
SET, HOLD, and CLEAR inputs control the output state of the block. The CLEAR input sets
the accumulator output to zero, HOLD stops the accumulator output at its current value, and
SET forces the output to be set to the PRESET input value. When these inputs are in contention,
CLEAR has the highest priority, followed by SET and then HOLD.
The ACCUM block also allows for the inhibiting of alarm detection, alarm messages, or both,
and set both High and High-High alarm indicator (see “Alarming the Accumulator” on page 23).
The High alarm indicator offers a pre-target alarm state indication before the High-High value is
reached.

1.3 Features
The features are:
 Manual/Auto control of the output, which can be initiated by a host process or
another block
 Accumulator control: set, clear, and hold
 Carry output to indicate accumulator rollover.
The options are:
 Pulse count option (PCNTOP), which allows you to select the type of count totaliza-
tion (rate or count) used.
 Target (High-High) alarming (HHAOPT), which allows you to configure a High-
High alarm limit.
 Pre-Target (High) alarming (HAOPT), which allows you to configure a High alarm
limit.
 Error propagation (PROPT), which allows you to propagate this block’s measurement
error state to other blocks.
 Control Error Option (CEOPT), which allows you to enable or disable the block’s
implicit Hold action when it detects an error in the MEAS input.
 Initial Clear (INITCL), when set to true, allows you to specify whether or not the
accumulated totals are cleared when the block initializes.
 Inhibit Option (INHOPT), which allows you to specify the actions taken when
alarms are inhibited in the block.
 Initialize Manual/Auto (INITMA), which specifies the desired state of MA input dur-
ing initialization.

2
1. ACCUM – Accumulator Block B0193AX – Rev AB

1.4 Parameters
Table 1-1. ACCUM Block Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set blank 0 to 12 chars
TYPE block type integer no-con/no-set 20 ACCUM
DESCRP descriptor string no-con/no-set blank 1 to 32 chars
PERIOD block sample time short no-con/no-set 1 0 to 13
PHASE block phase number integer no-con/no-set 0 ---
LOOPID loopid string no-con/set blank 1 to 32 chars
MEAS process input real con/set 0.0 RI1
HSCI1 high scale input 1 real no-con/no-set 100.0 specifiable
LSCI1 low scale input 1 real no-con/no-set 0.0 specifiable
DELTI1 change delta input 1 real no-con/no-set 1.0 percent
EI1 eng units input 1 string no-con/no-set % specifiable
MTRFAC meter factor real con/set 1.0 [1..]scalar
PROPT propagate error boolean no-con/no-set 0 0 to 1
SET accumulator set boolean con/set 0 0 to 1
PRESET accumulator preset real con/set 0.0 RO1
CLEAR accumulator clear boolean con/set 0 0 to 1
HOLD hold mode boolean con/set 0 0 to 1
HSCO1 high scale output 1 real no-con/no-set 100.0 specifiable
LSCO1 low scale output 1 real no-con/no-set 0.0 specifiable
DELTO1 change delta output1 real no-con/no-set 1.0 percent
EO1 eng unit output 1 string no-con/no-set % specifiable
INITCL initial clear boolean no-con/no-set 1 0 to 1
MA manual/auto boolean con/set 0 0 to 1
INITMA initialize MA short no-con/no-set 1 [0|1|2]
CEOPT control error option short no-con/no-set 1 0 to 2
PCNTOP pulse count option short no-con/no-set 0 0 to 3
INHOPT inhibit option short no-con/no-set 0 0 to 3
INHIB alarm inhibit boolean con/set 0 0 to 1
INHALM inhibit alarm pack_b con/set 0 0 to 0xFFFF
OUTNM output alarm name string no-con/no-set blank 1 to 12 chars
HAOPT high alarm option boolean no-con/no-set 0 0 to 1
HABLIM high absolute limit real con/set 100.0 RO1
HABTXT high alarm text string no-con/no-set blank 1 to 32 chars
ABSPRI absolute alarm priority integer con/set 5 [1 to 5]
ABSGRP absolute alarm group short no-con/set 1 [1 to 8]
HHAOPT high-high option short no-con/no-set 0 0 to 2
HHALIM high-high limit real con/set 100.0 RO1
HHATXT high-high alarm text string no-con/no-set blank 1 to 32 chars
HHAPRI high-high priority integer con/set 5 [1 to 5]
HHAGRP high-high group short no-con/set 1 [1 to 8]

3
B0193AX – Rev AB 1. ACCUM – Accumulator Block

Table 1-1. ACCUM Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


AMRTIN alarm regeneration timer integer no-con/no-set 0 0 to 32767 s
Non-Configurable Parameters
OUTPUTS
ALMSTA alarm status pack_l con/no-set 0 bit map
BLKSTA block status pack_l con/no-set 0 bit map
CARRY accumulator carry boolean con/no-set 0 0 to 1
CRIT criticality integer con/no-set 0 [0 to 5]
HAIND high absolute indicator boolean con/no-set 0 0 to 1
HHAIND high-high absolute indicator boolean con/no-set 0 0 to 1
INHSTA inhibit status pack_l con/no-set 0 0 to 0xFFFFFFFF
MRATE meas rate real con/no-set 0.0 RO1
OUT output real con/no-set 0.0 RO1
PRTYPE priority type integer con/no-set 0 [0 to 10]
UNACK alarm notification boolean con/noset 0 0 to 1
DATA STORES
ACHNGE alternate change integer con/no-set 0 -32768 to 32767
ALMOPT alarm options pack_l no-con/no-set 0 0 to 0xFFFFFFFF
DEFINE no config errors boolean no-con/no-set 1 0 to 1
ERCODE config error string no-con/no-set 0 1 to 43 chars
LOCKID lock identifier string no-con/no-set blank 8 to 13 chars
LOCKRQ lock request boolean no-con/set 0 0 to 1
OWNER owner name string no-con/set blank 1 to 32 chars
PERTIM period time real no-con/no-set 0.1 seconds
PRSCON present control short no-con/no-set 0 1 to 3
RI1 eng range input real[3] no-con/no-set 100,0,1 specifiable
RO1 eng range output real[3] no-con/no-set 100,0,1 specifiable

1.4.1 Parameter Definitions


ABSGRP Absolute Group is a short integer input that directs absolute alarm mes-
sages to one of eight groups of alarm devices. You can change the group
number through the workstation.

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.

ACHNGE Alternate Change is an integer output which is incremented each time a


block parameter is changed via a Set command.

ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use.

4
1. ACCUM – Accumulator Block B0193AX – Rev AB

For the ACCUM block, only the following unshaded bits are used

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B10
B11
B12
B13
B14
B15
B16
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit
Number*
(0 to 31) Configured Alarm Option When True
0 (Least Alarm Group 8 in Use
Significant)
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use
19 Pre-Target (High Absolute) Alarm Configured
25 Target (High-High Absolute) Alarm Configured
* Bit 0 is the least significant, low order bit.

ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the ACCUM block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B10
B11
B12
PTARG B13
B14
B15
B16
B1
UNAK B2
B3
B4
B5
B6
B7
B8
B9

CRIT PRTYPE
TARG
INH

Boolean
Bit Number Connection
(0 to 31)* Name Description When True (B32 to B1)
0 to 4 (Least PTYP_MSK Priority Type: See parame- ALMSTA.B32-
Significant) ter PRTYPE for values ALMSTA.B28
used in the ACCUM
block
5 to 7 CRIT_MSK Criticality; 5 = lowest pri- ALMSTA.B27-
ority, 1= highest ALMSTA.B25
19 PTARG Pre-Target (High) Alarm ALMSTA.B13
25 TARG Target (High-High) Alarm ALMSTA.B7
29 INH Alarm inhibit ALMSTA.B3
30 UNAK Unacknowledged ALMSTA.B2
* Bit 0 is the least significant, low order bit.

5
B0193AX – Rev AB 1. ACCUM – Accumulator Block

AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is gen-
erated.

BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the ACCUM block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B10
B11
WLCK B12
B13
B14
B15
B16
B1
B2
B3
B4
B5
B6
B7
B8
B9

ACC
HLD
ON

MA
Boolean
Bit Number* Connection
(0 to 31) Name Description When True (B32 to B1)
5 ACC Accumulating BLKSTA.B27
7 HLD Holding BLKSTA.B25
11 MA Manual = 0, Auto = 1 BLKSTA.B21
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
20 WLCK Access Locked BLKSTA.B12
* Bit 0 is the least significant, low order bit.

CARRY Carry is a boolean output that is set true for one scan period to indicate
when the accumulator has rolled over (that is, has exceeded HSCO1).
When the accumulator rolls over, the difference between the block’s run-
ning total and HSCO1 is saved and used as the initial accumulator total
for the next accumulation cycle.
The CARRY parameter can be “cascaded” to the MEAS parameter of
another ACCUM block to accumulate the number of times that the first
ACCUM block has wrapped around. For example, this allows the first
block with a range 0 to 999,999 to indicate “units” and the second block
to indicate “millions”.

CEOPT Control Error Option is a short integer that specifies how the block
responds to the MEAS input when it is in error. To provide backward
compatibility, CEOPT defaults to 1. CEOPT has a range of 0 to 2 where:
0 = The block takes no implicit Hold action when it detects a control
error.

6
1. ACCUM – Accumulator Block B0193AX – Rev AB

1 = The block goes to the Hold state if MEAS: (a) has its BAD sta-
tus bit set true; (b) has its Out-of-Service status bit set true; (c)
is experiencing peer-to-peer path failure.
2 = The block goes to the Hold state if MEAS meets any of the
conditions described for CEOPT=1, or if MEAS has its
ERROR status bit set true.

CEOPT is independent of the propagate error option, PROPT, and does


not affect the external logical input, HOLD. The HOLD input, when
true, still drives the block into the Hold state whenever the block is in
Auto.

CLEAR Clear is a boolean input that sets the accumulator output to zero when
CLEAR makes a zero-to-one transition. The ACCUM block automati-
cally clamps this input at zero if no connection exists.

CRIT Criticality is an integer output that indicates the priority, ranging from
1 to 5, of the block’s highest currently active alarm (1 is the highest prior-
ity). An output of zero indicates the absence of alarms.

DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. In that case, no further processing of the block occurs. To return
DEFINE to a true value, correct all configuration errors and re-install the
block.

DELTI1 Change Delta for Input Range 1 is a real value that defines the minimum
percent of the input range that triggers change driven connections for
parameters in the range of RI1. The default value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.

DELTO1 Change Delta for Output Range 1 is a real value that defines the mini-
mum percent of the output range that triggers change driven connections
for parameters in the range of RO1. The default value is 1 percent.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.

7
B0193AX – Rev AB 1. ACCUM – Accumulator Block

DESCRP Description is a user-defined string of up to 32 characters that describes


the block’s function (for example., “PLT 3 FURNACE 2 HEATER CON-
TROL”).

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.

HABTXT High Absolute Alarm Message Text is a user-defined text string of up to


32 characters, output with the alarm message to identify the alarm.

HAIND High Alarm Indicator is a boolean output set true when the measurement
exceeds the high absolute alarm limit (HABLIM). The block sets HAIND
to false when the measurement passes back through the deadband and
returns to normal operation.

HAOPT High Alarm Option is a boolean input that enables or disables high abso-
lute alarming for pre-target alarm in an ACCUM block.
0 = No alarming
1 = High alarming

HHAGRP High-High Absolute Alarm Group is a short integer input that directs
High-High Absolute alarm messages to one of eight groups of alarm
devices.

8
1. ACCUM – Accumulator Block B0193AX – Rev AB

HHAIND High-High Alarm Indicator is a boolean output set true when the block-
dependent parameter value (generally the measurement input) exceeds the
high-high absolute alarm limit (HHALIM). HHAIND is set to false when
the value is less than HHALIM. Once it is set true, it does not return to
false until the value falls below the limit less a deadband.

HHALIM High-High Absolute Alarm Limit is a real input that defines the value of
the output that triggers a High-High alarm.

HHAOPT High-High Alarm Option is a short integer input that enables High-High
absolute alarming for alarming of a block-dependent value, generally the
measurement input, or disables absolute alarming altogether. Each alarm
triggers an indicator and text message.
0 = No alarming
1 = High-High alarming
2 = High-High alarming only

HHAPRI High-High Absolute Priority is a integer input, from 1 to 5, that sets the
priority level of the high-high absolute alarm (1 is the highest priority).

HHATXT High-High Absolute Alarm Text is a user-defined text string of up to


32 characters, sent with the high-high absolute alarm message to identify
it.

HOLD Hold is a boolean input. When true, HOLD forces the block into the
Hold substate of Auto, holding the output at its last computed value.

HSCI1 High Scale for Input Range 1 is a real value that defines the upper limit of
the measurement range. EI defines the measurement unit text associated
with the value. Make the range and units consistent with the measurement
source. A typical value is 100 (percent).

HSCO1 High Scale for Output Range 1 is a real value that defines the upper range
value for the block’s output. EO defines the measurement unit text associ-
ated with the value.

INHALM Inhibit Alarm contains packed boolean values that represent alarm inhibit
requests for each alarm type or point configured in the block.
The ACCUM block uses the following bits:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10

B11

B12

B13

B14

B15

B16
B1

B2

B3

B4

B5

B6

B7

B8

B9

9
B0193AX – Rev AB 1. ACCUM – Accumulator Block

Bit Number* Boolean Connection


(0 to 15) Inhibit When True (B16 to B1)
3 Inhibit Pre-Target (High INHALM.B13
Absolute) Alarm
9 Inhibit Target (High-High INHALM.B7
Absolute) Alarm

* Bit 0 is the least significant, low order bit.


There are no mnemonic names for the individual bits of INHALM.

INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting. Alarms can also be inhibited based on INHALM and the com-
pound parameter CINHIB.

INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0 = When an alarm is inhibited, disable alarm messages but do not
disable alarm detection.
1 = When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the time
the alarm transitions into the inhibited state, clear the alarm
indicator.
2 = Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages may be acknowledged by explicitly setting
UNACK false.
3 = Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages may be acknowledged by explicitly setting
UNACK false.

INHSTA Inhibit Status contains packed boolean values that represent the actual
inhibit status of each alarm type configured in the block. For the ACCUM
block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B10
B11
B12
PTARG B13
B14
B15
B16
B1
B2
B3
B4
B5
B6
B7
B8
B9
HHA

10
1. ACCUM – Accumulator Block B0193AX – Rev AB

Bit boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
19 PTARG Pre-Target (High Absolute) INHSTA.B13
Alarm Inhibited
25 TARG Target (High-High Abso- INHSTA.B7
lute) Alarm Inhibited

* Bit 0 is the least significant, low order bit.

INITCL Initialize Clear is a boolean input. When true (1), the accumulation in an
ACCUM block is cleared (that is, set to 0) when the block initializes for
any reason. When false (0), the accumulation is not initialized and will
contain one of the following:
 the accumulation saved in the checkpoint file when the block ini-
tializes following a reboot of the CP station, or
 the accumulation saved in the block re-initializes after a configura-
tion modification or by turning on the compound containing the
block.

INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state as specified in the checkpoint file
The block asserts this initial M/A state whenever:
 It is installed into the Control Processor database.
 The Control Processor undergoes a reboot operation.
 The compound in which it resides is turned on.
 The INITMA parameter itself is modified via the control configu-
rator. (The block does not assert INITMA on ordinary
reconfiguration.)
The Initialize M/A state is ignored if the MA input has an established
linkage.

LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.

LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier

11
B0193AX – Rev AB 1. ACCUM – Accumulator Block

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.

LOOPID Loop Identifier is a string of up to 32 characters which identifies the loop


or process with which the block is associated. It is displayed on the detail
display of the block, immediately below the faceplate.

LSCI1 Low Scale for Input Range 1 is a real value that defines the lower limit of
the measurement range. A typical value is 0 (percent). EI1 defines the
measurement units text associated with the value. Make the range and
units consistent with those of the measurement source.

LSCO1 Low Scale for Output Range 1 is a real value that defines the lower range
value for the block’s output. EO1 defines the measurement units text asso-
ciated with the value.

MA Manual Auto is a boolean input that controls the Manual/Automatic


operating state (0 = false = Manual; 1 = true = Auto). In Auto, given the
measurement value, the block computes the output according to its spe-
cific algorithm. In Manual, the algorithm is not performed, and the out-
put is unsecured. An external program can then set the output to a desired
value.

MEAS Measurement is an input identifying the source of the block’s input, or the
controlled variable. The PCNTOP allows you to select the block opera-
tion that matches the measurement input.

MRATE The Measurement Rate output represents the change in the accumulated
total per second. If the pulse count option (PCNTOP) is 1 or 3, MRATE
represents the amount by which the total changed (including MTRFAC
scaling), since the last measurement change. If PCNTOP is 2 or 4,
MRATE represents the MEAS value scaled by MTRFAC.

MTRFAC Meter Factor is a real input. The block uses this multiplier to make the
units of measurement, usually scaled in rate units, compatible with the
assigned output units, typically a scalar value.
The meter factor can be used to:
 Convert time units if the input MEAS is using different time units
than those dictated by the block scan period
 Convert engineering units if the input MEAS is using different
engineering units than those dictated by OUT.
 Perform both of these conversions together.

12
1. ACCUM – Accumulator Block B0193AX – Rev AB

For example, if the period is 0.5 seconds and the flow rate is in cubic
feet/minute, then MTRFAC = 0.0083333, where 0.0083333 is derived
from: 0.5 (the block period in seconds) x 0.0166667 (or 1/60, to convert
minutes to seconds). For more examples, see “Meter Factor Examples” on
page 20.

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

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.

OUTNM The Output Alarm Name is a user-defined string of up to 12 characters


that identifies the alarm source in the alarm message. It serves as a point
descriptor label (for example, F2 Fuel Ctrl).

OWNER Owner is a settable string of up to 32 characters which are used to allocate


control blocks to applications. Attempts to set Owner are successful only
if the present value of Owner is the null string, an all-blank string, or iden-
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

13
B0193AX – Rev AB 1. ACCUM – Accumulator Block

* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the PERIOD
parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the PERIOD
parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but the PERIOD
parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec., but the
PERIOD parameter remains 12.

PERTIM Period Time is the period of the block expressed in seconds.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).

PRESET Preset is a real input parameter that specifies the value inserted into the
accumulator when the SET input makes a 0-to-1 transition.

PROPT Propagate Error Option is a boolean input. When true, PROPT sets the
ERROR Status bit of the output parameter if the input to the MEAS
parameter is in error while the block is in Auto. The input to the MEAS
parameter is in error when:
 Its BAD status bit is set true
 Its OOS (Out-of-Service) status bit is set true
 Its ERROR status bit is set true
 It is experiencing peer-to-peer path failure.
If a transition to Manual occurs while the ERROR status is true, it
remains true until either a set command is written to that output or until
the block transfers to Auto with the error condition returned to normal.
If PROPT is false, the block does not set the ERROR status bit of the out-
put parameter.

PRSCON Present Control state is a short integer data store that contains the sub-
states of Auto:
1 = Holding
2 = Bad Input State (holding)
3 = Controlling (not open loop)
PRSCON is set to 2 when:
 The block is transitioning from the Holding state (1) or the Accu-
mulating state (3),
 The MEAS input is in error, and
 CEOPT is set to 1 or 2.

14
1. ACCUM – Accumulator Block B0193AX – Rev AB

During this time, the block is in the holding state, and holds the output at
its last computed value.

PRTYPE Priority Type is an indexed (0 to 9) output parameter that indicates the


alarm type of the highest priority active alarm. The PRTYPE outputs for
this block include the following alarm types:
0 = No active alarm
1 = High Absolute
3 = High-High Absolute

RI1 Range Input is an array of real values that specify the high(HSCI1) and
low(LSCI1) engineering scale and change delta of a particular real input.
The array members are configured by their individual names; however,
RI1 and its members can be accessed by user programs and task displays.

RO1 Range Output is an array of real values that specify the high(HSCI1) and
low(LSCI1) engineering scale of a particular real output. The array mem-
bers are configured by their individual names; however, RO1 and its
members can be accessed by user programs and task displays.

SET Set is a boolean input that forces the accumulator to the PRESET input
value when SET makes a 0-to-1 transition. The ACCUM block automat-
ically clamps this input at zero if no connection exists.

TYPE When you enter “ACCUM” or select “ACCUM” from the block type list
under Show, an identifying integer is created specifying this block type.

UNACK Unacknowledge is a boolean output that the block sets to true when it
detects an alarm. It is typically reset by operator action.

1.5 Functions
This section describes the functions in the ACCUM block.

15
B0193AX – Rev AB 1. ACCUM – Accumulator Block

1.5.1 Detailed Diagram

HSCI MTRFAC HSCO


PERTIM PERTIM MA
MA
PCNTOP M OUT
S S
Count Convert p p
to Rate Integrator a
a
Meas n A
n
Input
Rate

LSCI LSCO
HOLD HOLD
SET AND High Scale
Target Detector CARRY
CLEAR
SET SET
CLEAR AND
CLEAR
HOLD
CEOPT = 1 or 2 AND OR
MEAS Error Bit

Figure 1-2. ACCUM Block Operational Diagram

1.5.2 Accumulator Process


Key Parameters: CARRY, HSCO1, HSCI1, LSCI1, LSCO1, MEAS, MTRFAC, MRATE, OUT,
PERTIM and PCNTOP
The accumulation process performs a totalization for the running accumulator using the general
algorithm shown in Figure 1-3. This algorithm is performed if the block is in Auto and not in the
Hold mode. The algorithm operates in the following manner: The integral change in measure-
ment for the present block period time is calculated and added to the running result from the pre-
vious accumulator output. This then becomes the new output (OUT) value. During each
calculation the result of the integral is multiplied by a user-determined metering factor
(MTRFAC) to ensure the compatibility of the output measurement units with those being used
in the process.

X(T) = MEAS Input for this Period


Y(T) = Output Quantity for this Period
Km = MTRFAC
T = Block Period Time
Yo = Previous Accum Output Quantity
dt = deadtime
Figure 1-3. ACCUM Block Algorithm

16
1. ACCUM – Accumulator Block B0193AX – Rev AB

1.5.2.1 Pulse Count Option


The pulse count option (PCNTOP) allows you to select the block algorithm used for performing
calculations. PCNTOP selects the type of block operation, either pulse rate or pulse count input,
and in both cases allows the meter factor to be adjusted automatically to the block period time
when the block time period is changed. The four types of block operation are explained below.

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

Figure 1-4. ACCUM Pulse Rate per Block Period

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

Figure 1-5. ACCUM Pulse Count per Block Period

PCNTOP = 2 MEAS is a pulse rate variable in terms independent of the block period
Pulse Rate Per time, namely pulses per minute (see Figure 1-6). The equation used is as
Minute follows:
OUT new = OUT previous + ((MEAS * MTRFAC /60.0) * elapsed
time)
where:
 OUT new = OUT value this block cycle
 OUT previous = OUT value from previous block cycle
 MEAS = measurement value (pulses/minute)
 MTRFAC = Meter Factor
 elapsed time = elapsed time, in seconds, between block cycles
This allows the block to automatically adjust the meter factor to the block
period time when the block period time is changed.

17
B0193AX – Rev AB 1. ACCUM – Accumulator Block

MTRFAC
elapsed time
MA
PCNTOP=2
Rate
MEAS Integrator OUT

Figure 1-6. ACCUM Pulse Rate per Minute

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

Figure 1-7. ACCUM Pulse Count per Minute

The block saves the running accumulator in extended precision format to minimize truncation
errors. However, the block stores the output (OUT) as a single precision float of 6-digit resolution
and you specify the range using the HSCO1 and LSCO1 parameters.

18
1. ACCUM – Accumulator Block B0193AX – Rev AB

1.5.3 Meter Factor


1.5.3.1 Meter Factor Functions
The meter factor can be used to:
1. Convert time units if the input MEAS is using different time units than those dictated
by the block period time.
2. Convert engineering units if the input MEAS is using different engineering units than
those required by OUT.
3. Perform both tasks simultaneously.
In the first instance, the meter factor becomes:
MTRFAC = Period * Time_Conv
where: Period is the block period time and Time_Conv is the time conversion factor.
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.3.2 Meter Factor Calculation


Assume a flow rate of 240 ft3/minute and a block scan period of 0.5 second. The block’s input
MEAS is in terms of minutes, therefore, you must adjust the input to seconds, as follows:
MTRFAC = 0.5 sec * 1 min/60 sec = 0.0083333 min
(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)).
This produces a meter factor expressed in terms of minutes, which dimensionally equals the input
measurement units of ft3/minute.
If the OUT parameter requires data in the form of cubic meters instead of cubic feet then:
EU_Conv would be 0.028317cm3/ft3
MTRFAC= 0.5sec * 1min/60sec *0.028317 cm3/1ft3 = .00023597

19
B0193AX – Rev AB 1. ACCUM – Accumulator Block

1.5.3.3 Meter Factor Examples


Meter Factor (MTRFAC) converts:
 Time units
 Engineering units.
Every block period, a portion of the input is added to the output. However, the:
 Input (MEAS) can be in different engineering units than the output (OUT)
 Period (PERIOD) can be in different time units than MEAS.
For these reasons, MTRFAC is provided to convert the units:
OUT = OUT + (MEAS * MTRFAC)
Calculating MTRFAC
Table 1-2 shows how MTRFAC is calculated when the units of OUT and MEAS are the same, for
example, the input is in pounds per time unit and the accumulation is in pounds:

Table 1-2. Units of OUT and MEAS Are the Same

Units of MEAS MTRFAC Calculation Results


units/second PERIOD * 1/1 (sec/sec) PERIOD
units/minute PERIOD * 1/60 (sec/minute) PERIOD * 0.016667
units/hour PERIOD * 1/3600 (sec/hour) PERIOD * 0.0002777778
units/day PERIOD * 1/86400 (sec/day) PERIOD * 0.000011574

If the units of OUT are not the same as the units of MEAS, for example, the input is in cubic feet
per time unit and the accumulation is in pounds:
eu_conv = units_OUT/units_MEAS
Table 1-3 shows how MTRFAC is calculated when the units of OUT and MEAS are not the
same.

Table 1-3. Units of OUT and MEAS Are not the Same

Units of MEAS MTRFAC Calculation Results


units/second PERIOD * 1/1 (sec/sec) * eu_conv PERIOD * eu_conv
units/minute PERIOD * 1/60 (sec/minute) * eu_conv PERIOD * 0.016666667 * eu_conv
units/hour: PERIOD * 1/3600 (sec/hour) * eu_conv PERIOD * 0.000277778 * eu_conv
units/day PERIOD * 1/86400 (sec/day) * eu_conv PERIOD * 0.000011574 * eu_conv

EXAMPLES
For a block PERIOD of 0.5 seconds, the measurement is in cubic feet per minute and the output
is accumulated as cubic feet:
MTRFAC = 0.5 * 1/60 = 0.008333
If the output is to be accumulated as pounds (1 cubic foot = 62.4 pounds):
MTRFAC = 0.5 * 1/60 * 62.4 = 0.52

20
1. ACCUM – Accumulator Block B0193AX – Rev AB

If the PERIOD of the block is changed to 2 seconds, the meter factor must be changed to:
MTRFAC = 2.0 * 1/60 * 62.4 = 2.08

1.5.4 Carry
The CARRY parameter transitions from 0 to 1 if the HSCO1 parameter is exceeded (see
Figure 1-8). When HSCO1 is exceeded, the block calculates the difference between the actual
integrated value and HSCO1 and assigns this value as the initial accumulator total for the next
accumulation cycle. In this way, the next block cycle accumulation process begins without losing
any input by using the remainder of the previous cycle. The rollover indicator (CARRY) is set for
one block period when the high scale is exceeded. You can use this indicator to cascade accumula-
tor block integrations.

CARRY Produced
Value Added to
HSCO1 Accumulator

ACCUM
Value

Block Time
Period
Figure 1-8. ACCUM CARRY Function

1.5.5 Block Control States


Key Parameters: CARRY, CEOPOT, CLEAR, HOLD, MEAS and SET.
During each cycle the block determines its operational status: holding or accumulating. Holding
indicates that the accumulation process has ceased and occurs:
 When the HOLD parameter is set
Or
 When the block input measurement is in error.
Once HOLD is reset to false, either through internal block operation or via a HOLD indication
from another block, the block is set to the accumulating mode and returns to its accumulating
function. As with any transition from Manual to Auto the accumulator process uses the last value
assigned to MEAS as its initial measurement value.
While in Auto, during each block cycle, the block can be configured to automatically CLEAR or
SET values. This configuration can either be directly dictated by configuring the CLEAR or SET
parameter for the ACCUM block or can be dictated through linkage to another block.
If the CLEAR parameter is configured, each time the block cycles it resets both the running accu-
mulator total and the measurement in use by the block to zero. If the SET parameter is config-
ured, each time the block cycles it sets the running accumulator value to an operator preset value
(PRESET) and the measurement in use is set to zero. In both cases, if the parameter is not set, the
block clamps the input to zero to negate the results of the accumulation operation.

21
B0193AX – Rev AB 1. ACCUM – Accumulator Block

1.5.5.1 Measurement Error Handling for Auto to Manual Transitions


The ACCUM block contains two parameters for respond to input error status during Auto/Man-
ual (MA) transitions: the control error parameter (CEOPT and the propagate error parameter
(PROPT). Under most circumstances you can use CEOPT (“CEOPT” on page 6) which deter-
mines the measurement input error status. Additionally, PROPT can be configured, to pass an
indication of measurement input error to other blocks by setting the error status bit in the output
(OUT).
The CEOPT parameter is active only when the block is in Auto. If the measurement input is in
error, CEOPT determines the HOLD status of the block. CEOPT can be configured to engage
the HOLD mode if it detects that the MEAS status BAD bit is set, the OOS bit is set, or during
peer-to-peer path failure. CEOPT also allows you to engage HOLD if it detects any of the previ-
ous conditions coupled with the measurement input bad bit being set. Lastly, CEOPT allows the
block to ignore a control error indication.

NOTE
The HOLD input from another block takes precedence over the functioning of
CEOPT in the block

Figure 1-9 shows the functioning of the SET, CLEAR and HOLD inputs during Auto operation
and during input error detection.

Integrator

HOLD HOLD
SET AND
CLEAR
SET SET
CLEAR AND
CLEAR
HOLD
CEOPT = 1 or 2 AND OR
MEAS Error Bit
Figure 1-9. ACCUM SET, CLEAR, and HOLD Functionality

If the block is changing to Manual it is set to the holding mode, which leaves the block implicitly
open to control inputs from other blocks. In the Manual mode, the output is unsecured, the accu-
mulation process is inhibited, and the last real value read is used as the MEAS value.
If the block is changing to Auto, to avoid a bump in process control, the block is set to the hold-
ing mode, OUT is restored to the last measured value, which is the present Manual mode output,
and the CARRY flag is reset to false.

22
1. ACCUM – Accumulator Block B0193AX – Rev AB

1.5.6 Alarming the Accumulator


Key Parameters: HAOPT, HHAOPT, HABLIM, HHALIM, HAIND, HHAIND and UNACK.
Alarm functions for the block include:
 The alarm inhibit option
 The block criticality level
 The pre-target alarming
 The target alarming
By configuring HAOPT to true, you can activate the High Alarm Option (“HAOPT” on page 8).
HAOPT allows a pre-target alarm indication to be sent before the High-High absolute alarm
limit is reached. HAOPT allows for a comparison of the present measurement level against a pre-
set value (HABLIM) for High alarming. Once these values are reached the block sets the high
output indication (HAIND) to true and sends a high output message to the alarm status.
The High-High alarm option (see “HHAOPT” on page 9) allows you to activate the target alarm-
ing feature. Target alarming functions in much the same as pre-target alarming. Once the High-
High absolute alarm limit (HHALIM) is reached the High-High output indication (HHAIND)
is set to true, which updates the appropriate bit of the alarm status.
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

Figure 1-10. ACCUM Block Alarming

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.

1.5.7 Peer-to-Peer Connections of Real-Type Block Inputs


When a block input of type “real” is configured to a parameter of a block in a different control
processor, a "change-driven" connection is established. The value of the receiving or “sink”
parameter is updated every time the value of the “source” parameter changes more than a preset
amount.

23
B0193AX – Rev AB 1. ACCUM – Accumulator Block

If the “sink” parameter has a configurable range (high and low scale values) and a change delta
value (typically DELTI1, DELTI2, etc.), then the size of the change required to trigger the update
is configurable.
Configuring a DELTI[1,2,etc.] value of zero (0.0) will NOT result in the “sink” being updated
every cycle. Within the system, the zero (0.0) will be replaced by the value 0.1 and the effective
change delta will be 0.1 percent of the "sink" parameter range (e.g. 0.1/100*(highscale-lowscale)).
When small changes must be communicated, specify an appropriate small, positive, non-zero
change delta value. e.g. DELTI[1,2,etc.] = 0.00001 on a parameter with a range of 20 to 50 would
result in an update for every change greater than [(0.00001/100)*(50-20)] = 0.0000030 units.
If the “sink” parameter does not have a configurable range or change delta value, as is the case
with the real inputs RI01 - RI08 of the CALCA and MATH blocks, then the change delta used
for peer-to-peer connections is a fixed value of 0.0001 (units of the source parameter, not percent
of range).
When very small changes must be communicated, consider scaling the value with gain and bias at
the source end. e.g. scale from tonnes to kilograms.

1.5.8 Application Diagram


In this example (Figure 1-11), the water filling the tank is controlled by an inlet valve. The
ACCUM block totalizes the amount of water flowing through the valve using data from the flow
transmitter. This totalized value is forwarded to a CALC block which performs calculations based
on the running total from the ACCUM block. When the CALC block determines that the water
has fallen below the desired fill level, it sends an indication to the GDEV block which operates the
valve.

PNT_No PNT_No

FT AIN ACCUM CALC GDEV

Typical Configuration Values:


HSCI1 = 100%
Water LSCI1 = 0%
Tank MTRFAC = 1
PROPT = 1
CEOPT = 1
PCNTOP = 0
HAOPT = 1
HABLIM = 90%
HHAOPT = 1
HHALIM = 100%
Figure 1-11. Typical ACCUM Block Application

24
2. AIN – Analog Input Block
This chapter gives a general overview of the Analog Input Block, or AIN, its features,
parameters and functions. It also covers bad input and out-of-range processes, manual mode,
alarming, and application diagrams and provides an appendix on signal conditioning and an
appendix on valid input connections.

2.1 Overview
The Analog Input Block (AIN) receives an input value from a single point of an analog, pulse
count, or Intelligent Field Device type of Fieldbus Module (FBM) or Fieldbus Card (FBC), or
from another block, and converts it into suitable form for use in an I/A Series control strategy.
The input to the block is the digitized data from the FBM’s Equipment Control Block (ECB),
and the output is a value expressed in the appropriate engineering units. See Figure 2-1.

High/Low Scale
for Output Range 1 BAD and OOR
Option

Signal
Condition Bad
ing Index output Bad & Indicator
Linear units Out-of-
Fieldbus Range High/
Module Square
Root Processing Low Out-
Identifier output of-
units Range
o
Point C Indicators
Number RTD
Scaling/
Filter Point
External Unit Con- Clamp
o version (Engineer-
Reference- Thermo- C ing Units
Option couple Value)
External
Reference o
Special C
Input Alarm
T.C.
Extender Alarming Indicators
Block counts
Characterizer

(None)

Gain Alarm Alarm


Options Limits
Offset
Figure 2-1. AIN Block Diagram

25
B0193AX – Rev AB 2. AIN – Analog Input Block

2.2 Basic Operation


The AIN block interfaces to an ECB which stores values from an FBM or FBC receiving analog
electrical signals, pulse inputs, or pulse rate inputs.
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.

26
2. AIN – Analog Input Block B0193AX – Rev AB

2.4 Parameters
Table 2-1. AIN Block Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set blank 1 to 12 chars
TYPE block type integer no-con/no-set 30 AIN
DESCRP descriptor string no-con/no-set blank 1 to 32 chars
PERIOD block sample time short no-con/no-set 1 0 to 13
PHASE block execute phase integer no-con/no-set 0 ---
LOOPID loop identifier string no-con/set blank 1 to 32 chars
IOMOPT FBM input option short no-con/no-set 1 0 to 2
IOM_ID FBM identifier string no-con/no-set blank ---
PNT_NO FBM point number string no-con/no-set 1 1 to 32
SCI signal condition index short no-con/no-set 0 0-15, 20-28, 40-44,
and 50-59
HSCO1 high scale, output 1 real no-con/no-set 100.0 specifiable
LSCO1 low scale, output 1 real no-con/no-set 0.0 specifiable
DELTO1 change delta, output 1 real no-con/no-set 1.0 percent
EO1 eng units, output 1 string no-con/no-set % RO1
OSV output span variance real no-con/no-set 2.0 [0..25] percent
EXTBLK extender block long con/set 0 ---
MA manual/auto boolean con/set 0 0 to 1
INITMA initialize MA short no-con/no-set 1 0 to 2
BADOPT BAD/Out-of-range option short no-con/no-set 3 0 to 7
LASTGV last good value boolean no-con/no-set 1 0 to 1
INHOPT inhibit option short no-con/no-set 0 0 to 3
INHIB alarm inhibit boolean con/set 0 0 to 1
INHALM inhibit alarm pack_b con/set 0 0 to 0xFFFF
MANALM manual alarm option short no-con/no-set 0 0 to 1
MTRF meter factor real no-con/set 1.0 flow rate/Hz
FLOP filter option short no-con/no-set 0 0 to 3
FTIM filter time constant real con/set 0.0 minutes
XREFIN external reference input real con/set 0.0 deg. Celsius
XREFOP external reference option boolean no-con/no-set 0 0 to 1
KSCALE gain scaler real con/set 1.0 scalar
BSCALE bias scale factor real con/set 0.0 output units
BAO bad alarm option boolean no-con/no-set 0 0 to 2
BAT bad alarm text string no-con/no-set blank 1 to 32 chars
BAP bad alarm priority integer con/set 5 1 to 5
BAG bad alarm group short no-con/set 1 1 to 8
ORAO out of range alarm option boolean no-con/no-set 0 0 to 1
ORAT out of range text string no-con/no-set blank 1 to 32 chars
ORAP out of range priority integer con/set 5 1 to 5
ORAG out of range group short no-con/set 1 1 to 8

27
B0193AX – Rev AB 2. AIN – Analog Input Block

Table 2-1. AIN Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


HLOP high/low alarm option short no-con/no-set 0 0 to 3
ANM alarm name point 1 string no-con/no-set blank 1 to 12 chars
HAL high alarm limit real con/set 100.0 RO1
HAT high alarm text string no-con/no-set blank 1 to 32 chars
LAL low alarm limit real con/set 0.0 RO1
LAT low alarm text string no-con/no-set blank 1 to 32 chars
HLDB high/low alarm deadband real no-con/set 0.0 RO1
HLPR high/low priority integer con/set 5 1 to 5
HLGP high alarm group short no-con/set 1 1 to 8
HHAOPT high-high alarm option short no-con/no-set 0 0 to 3
HHALIM high-high alarm limit real con/set 100.0 RO1
HHATXT high-high alarm text string no-con/no-set blank 1 to 32 chars
LLALIM low-low alarm limit real con/set 0.0 RO1
LLATXT low-low alarm text string no-con/no-set blank 1 to 32 chars
HHAPRI high-high alarm priority integer con/set 5 1 to 5
HHAGRP high-high alarm group short no-con/set 1 1 to 8
PROPT propagate error option boolean no-con/no-set 0 0 to 1
MEAS optional input real con/set 0.0 ---
AMRTIN alarm regeneration timer integer no-con/no-set 0 0 to 32767 s
NASTDB alarm deadband timer long integer no-con/no-set 0 0-2147483647 ms
NASOPT nuisance alarm suppression short no-con/no-set 0 0 to 2
option
Non-Configurable Parameters
OUTPUTS
BAD bad I/O status boolean con/no-set 0 0 to 1
CRIT alarm criticality integer con/no-set 0 0 to 5
HAI high alarm indicator boolean con/no-set 0 0 to 1
HHAIND high-high alarm indicator boolean con/no-set 0 0 to 1
HOR high out-of-range boolean con/no-set 0 0 to 1
LAI low alarm indicator boolean con/no-set 0 0 to 1
LLAIND low-low alarm indicator boolean con/no-set 0 0 to 1
LOR low out-of-range boolean con/no-set 0 0 to 1
PNT point output real con/no-set 0.0 RO1
PRTYPE priority type integer con/no-set 0 0 to 25
QALSTA quality status pack_l con/no-set 0 0 to 0xFFFFFFFF
RAWC raw counts real con/no-set 0.0 0 to 65535
UNACK unacknowledge alarm boolean con/no-set 0 0 to 1
ZERROP out of range error boolean con/no-set 0 0 to 1
DATA STORES
ACHNGE alternate change integer con/no-set 0 -32768 to 32767
ALMSTA alarm status pack_l con/no-set 0 bit map
ALMOPT alarm options pack_l no-con/no-set 0 0 to 0xFFFFFFFF
BLKSTA block status pack_l con/no-set 0 bit map
DEFINE no config errors boolean no-con/no-set 1 0 to 1
ERCODE configuration error string no-con/no-set 0 1 to 43 chars

28
2. AIN – Analog Input Block B0193AX – Rev AB

Table 2-1. AIN Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


DEV_ID FBM Letterbug char[6] no-con/no-set blank 1 to 6 chars
INHSTA inhibit status pack_l con/no-set 0 bit map
LOCKID lock identifier string no-con/no-set blank 8 to 13 chars
LOCKRQ lock request boolean no-con/set 0 0 to 1
OWNER owner name string no-con/set blank 1 to 32 chars
PERTIM period time real no-con/no-set 0.1 seconds
RO1 output range real[3] no-con/no-set 100,0,1 specifiable

2.4.1 Parameter Definitions


ACHNGE Alternate Change is an integer output which is incremented each time a
block parameter is changed via a Set command.

ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use.
For the AIN block, only the following unshaded bits are used

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

Bit Number1
(0 to 31) Configured Alarm Option When True
0 (Least Alarm Group 8 in Use
Significant)
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use
16 Low Absolute Alarm Configured
17 High Absolute Alarm Configured
22 Bad I/O Alarm Configured
24 Low-Low Absolute Alarm Configured
25 High-High Absolute Alarm Configured
28 Out-of-Range Alarm Configured
1. Bit 0 is the least significant, low order bit.

29
B0193AX – Rev AB 2. AIN – Analog Input Block

ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the AIN block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
OOR B4
B5
B6
B7
B8
B9
CRIT PRTYPE

HMA
HHA

BAD

LMA
LLA
INH

Bit Boolean
Number Connection
(0 to 31)* Name Description When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: See parame- ---
(Least ter PRTYPE for values
Significant) used in the AIN block
5 to 7 CRIT_MSK Criticality; 5 = lowest pri- ---
ority, 1= highest
16 LMA Low Absolute Alarm ALMSTA.B16
17 HMA High Absolute Alarm ALMSTA.B15
22 BAD Bad I/O Alarm ALMSTA.B10
24 LLA Low-Low Absolute Alarm ALMSTA.B8
25 HHA High-High Absolute ALMSTA.B7
Alarm
28 OOR Out-of-Range Alarm ALMSTA.B4
29 INH Inhibit Alarm ALMSTA.B3
30 UNAK Unacknowledged ALMSTA.B2

* Bit 0 is the least significant, low order bit.

AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is gen-
erated.

ANM Alarm Name is a user-defined string of up to 12 characters that identifies


the input point as the source of the alarm in the alarm messages. It serves
as a point-descriptor label.

BAD Bad is a boolean output parameter which is set true when the input to the
block is unacceptable in any way. The BAD bit of BLKSTA (BLK-
STA.BAD) is also set true whenever BAD is true.

BADOPT Bad and Out-of-Range Option is a short integer option that specifies the
conditions that set the BAD output true. Values are:

30
2. AIN – Analog Input Block B0193AX – Rev AB

0 = Bad Status (PNT.BAD) only


1 = Bad Status (PNT.BAD) or Low Out-of-Range (LOR)
2 = Bad Status (PNT.BAD) or High Out-of-Range (HOR)
3 = Bad Status (PNT.BAD) or LOR or HOR.
4 = Bad Status (PNT.BAD) when a scalar input (KSCALE or BSCALE) is
not healthy (i.e., value status is BAD, OOS, or has a broken OM connec-
tion)
5 = Bad Status (PNT.BAD) or one of the following is unhealthy: LOR or
KSCALE or BSCALE
6 = Bad Status (PNT.BAD) or one of the following is unhealthy: HOR or
KSCALE or BSCALE
7 = Bad Status (PNT.BAD) or one of the following is unhealthy: LOR or
HOR or KSCALE or BSCALE
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:

0= No generation of Bad alarms.


1= Bad alarm generation if the FBM or FBC has
Bad status.
2= Bad alarm generation in the measurement
(MEAS or OUTPUT parameter) of a PID
block family, RATIO block, or BIAS block
when the MEAS or OUT parameter is con-
nected to the AIN block.

BAP Bad Alarm Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the Bad alarm (1 is the highest priority).

BAT Bad Alarm Text is a user-configurable text string of up to 32 characters,


sent with the bad alarm message to identify it.

31
B0193AX – Rev AB 2. AIN – Analog Input Block

BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the AIN block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

FBM
BAD
ON

MA
Boolean
Bit Number* Connection
(0 to 31) Name Description When True (B32 to B1)
8 FBM FBM or FBC Failure BLKSTA.B24
11 MA Manual = 0, Auto = 1 BLKSTA.B21
12 BAD Bad I/O BLKSTA.B20
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
20 WLCK Access Locked BLKSTA.B12

* Bit 0 is the least significant, low order bit.

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.

DELTO1 The DELTO1 parameter is used only in peer-to-peer connections to an


absolute limit (HAL, LAL) or high-high low-low absolute limit
(HHALIM, LLALIM) input parameter to determine the minimum
change (in % of the HSCO1, LSCO1 engineering range) that must occur
in the source parameter to cause an OM scanner update to the limit
parameter to occur.

32
2. AIN – Analog Input Block B0193AX – Rev AB

DESCRP Description is a user-defined string of up to 32 characters that describes


the block’s function (for example, “PLT 3 FURNACE 2 HEATER CON-
TROL”).

DEV_ID Device Identifier is a character array data store that indicates the 6-charac-
ter letterbug of the connected FBM or FBC. In the case of IFD inputs,
DEV_ID contains the letterbug of the parent FBM (18, 43, 39, 44, 46,
243, or 246) to which the instrument interfaces.

EO1 Engineering Units for Output Range 1 provides the engineering units text
for the values defined for the output 1 range. The value configured for this
text string should be consistent with the values used for HSCO1 and
LSCO1.

ERCODE Error Code is a string data store which indicates the type of configuration
error which caused the block’s DEFINE parameter to be set false. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. For the AIN block, the following list specifies the
possible values of ERCODE, and the significance of each value in this
block:
ERCODE Value
W44 HSCO1 less than LSCO1
W48 FLOP or BADOPT out of range
W49 Invalid CHARC block extension
W50 Invalid SCI
W51 Cluster I/O specified but type is not analog input or
analog output
W52 PNT_NO out of range for the specified FBM or FBC
W54 Specified IOM_ID does not exist

EXTBLK Extender Block is a long input that specifies the pathname to the BLKSTA
parameter of a CHARC block used as an extender block. The CHARC
block must be in the same CP and compound as the AIN block and must
precede it in the compound.

FLOP Filter Option is an option parameter that specifies the type of filtering that
is applied to the signal before it is set into the PNT output. FLOP has the
following values:
0 = No Filtering
1 = First Order Lag Filtering
2 = Butterworth Filtering
3 = Two-Sample Average Filtering

FTIM Filter Time is an input that represents the time in minutes for the output
value to reach a certain percentage of its ultimate value after a step change
to the input. For first order lag filtering this percentage is approximately

33
B0193AX – Rev AB 2. AIN – Analog Input Block

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.

HAT High Absolute Alarm Text is a user-defined text string of up to 32 charac-


ters, sent with the high absolute alarm message to identify it.

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 Absolute Alarm Indicator is a boolean output that is true


whenever the value of PNT is greater than the value of HHALIM and
option HHAOPT is set to 1 or 2.

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.

HHAOPT High-High Absolute Alarm Option is a configured short integer input


that enables High-High Absolute and/or Low-Low Absolute alarming of
the PNT output, or disables this type of alarming altogether. Values:
0 = No Alarming
1 = High-High and Low-Low Absolute Alarming
2 = High-High Absolute Alarming Only
3 = Low-Low Absolute Alarming Only

HHAPRI High-High Absolute Alarm Priority is an integer input, ranging from


1 to 5, that sets the priority level of the high-high alarm (1 is the highest
priority).

HHATXT High-High Absolute Alarm Text is a user-defined text string of up to


32 characters, sent with the high-high absolute alarm message to identify
it.

HLDB High/Low Deadband is a real input that defines the size of the deadband
that applies to the high, low, high-high, and low-low absolute alarm limits
of the PNT output.

HLGP High/Low Group is a short integer input that directs High/Low Absolute
alarm messages to one of eight groups of alarm devices.

HLOP High/Low Option is a configured short integer input that enables Abso-
lute High and/or Low alarming of the PNT output, or disables absolute
alarming altogether. Values:

34
2. AIN – Analog Input Block B0193AX – Rev AB

0 = No Alarming
1 = High and Low Absolute Alarming
2 = High Absolute Alarming Only
3 = Low Absolute Alarming Only

HLPR High/Low Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the High/Low Absolute alarm (1 is the highest priority).

HOR High Out-of-Range is a boolean output that is set true if any one of the
seven high out-of-range conditions described in Section 2.6.2 (Out-of-
Range Conditions) occurs.

HSCO1 High Scale for Output Range 1 is a real value that defines the upper range
value for the block’s output.

INHALM Inhibit Alarm contains packed boolean values that represent alarm genera-
tion inhibit requests for each type of alarm configured in the block. For
the AIN block, only the following bits are used:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10

B11

B12

B13

B14

B15

B16
B1

B2

B3

B4

B5

B6

B7

B8

B9
Bit Number* Boolean Connection
(0 to 15) Description When True (B16 to B1)
0 (Least Inhibit Low Absolute Alarm INHALM.B16
Significant)
1 Inhibit High Absolute Alarm INHALM.B15
6 Inhibit Bad I/O Alarm INHALM.B10
8 Inhibit Low-Low Absolute INHALM.B8
Alarm
9 Inhibit High-High Absolute INHALM.B7
Alarm
12 Inhibit Out-of-Range Alarm INHALM.B4

* Bit 0 is the least significant, low order bit.


There are no mnemonic names for the individual bits of INHALM.

INHIB Suppresses all alarm message reporting, but alarm detection continues to
function (that is, alarm indicators, CRIT, PRTYPE, ALMSTA and
ALMEVT). When true, it inhibits all block alarms; the alarm handling
and detection functions are determined by the INHOPT setting.

35
B0193AX – Rev AB 2. AIN – Analog Input Block

INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do
not disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the
time the alarm transitions into the inhibited state, clear the
alarm indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.

INHSTA Inhibit Status contains packed long values that represent the current
inhibit status of each alarm type configured in the block. For the AIN
block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BAD B10
B11
B12
B13
B14
HMA B15
LMA B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
OOR B4
B5
B6
HHA B7
LLA B8
B9

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
16 LMA Low Absolute Alarm Inhibited INHSTA.B16
17 HMA High Absolute Alarm Inhibited INHSTA.B15
22 BAD Bad I/O Alarm Inhibited INHSTA.B10
24 LLA Low-Low Absolute Alarm INHSTA.B8
Inhibited
25 HHA High-High Absolute Alarm INHSTA.B7
Inhibited
28 OOR Out-of-Range Alarm Inhibited INHSTA.B4

* Bit 0 is the least significant, low order bit.

INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual

36
2. AIN – Analog Input Block B0193AX – Rev AB

1 = Auto
2 = The MA state as specified in the checkpoint file.
The block asserts this initial M/A state whenever:
 It is installed into the Control Processor database.
 The Control Processor undergoes a reboot operation.
 The compound in which it resides is turned on.
 The INITMA parameter itself is modified via the Integrated Con-
trol Configurator. (The block does not assert INITMA on
ordinary reconfiguration.)
INITMA is ignored if MA has an established linkage.

IOMOPT FBM Option is a short integer specifying whether an FBM or FBC con-
nection to the block exists, and if not, whether signal conditioning is to be
applied to the alternate source of the block input. Values:
0= The AIN block obtains input values from the MEAS
parameter and conditions them as specified by the value of SCI.
1= The block obtains input values from the FBM or FBC input
point specified by IOM_ID and PNT_NO.
2= The block obtains input values from the MEAS parameter. No
signal conditioning is performed. The input is subjected only to
scaling for units conversion (via KSCALE and BSCALE),
clamping using the configured HSCO1, LSCO1, and OSV
parameters, and filtering, in that order.

IOM_ID Fieldbus Module Identifier is a configurable string that specifies the path-
name of the ECB for the FBM or FBC to which the block is connected.
IOM_ID has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB. For
IFD inputs, the NAME parameter string of the parent ECB (12, 23, or
38R), not the child ECB18, must be used.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOM_ID configuration. In this case, the 1-12
character ECB block name is sufficient. For IFD inputs, this is the letter-
bug of the parent FBM (18, 43, 39, 44, 46, 243, or 246), not the con-
nected transmitter.

KSCALE Gain Scale is a real input which is used as the gain factor applied to the
conditioned signal to rescale it for compatibility with the output units.
KSCALE and BSCALE are always applied after any signal conditioning or
characterization of the raw input. It is usually used to convert from Celsius
to Fahrenheit scales.

37
B0193AX – Rev AB 2. AIN – Analog Input Block

LAI Low Absolute Alarm Indicator is a boolean output that is true whenever
the value of PNT is less than the value of LAL and option HLOP is set
to 1 or 3.

LAL Low Absolute Alarm Limit is a real input that defines the value of the
PNT output that triggers a Low Absolute Alarm.

LASTGV Last Good Value is a boolean option. When true in the situations
described in Section 2.6.4, LASTGV causes the previous value of PNT to
be retained, and the value obtained this cycle to be ignored.

LAT Low Absolute Alarm Text is a user-defined text string of up to 32 charac-


ters, sent with the low absolute alarm message to identify it.

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.

LLATXT Low-Low Absolute Alarm Text is a user-defined text string of up to


32 characters, sent with the low-low absolute alarm message to identify it.

LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.

LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are only honored (subject to the usual access rules) from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set false by any workstation at any time, whereupon a
new LOCKRQ is accepted, and a new ownership workstation identifier
written to LOCKID.

LOOPID Loop Identifier is a configurable string of up to 32 characters which iden-


tifies the loop or process with which the block is associated. It is displayed
on the detail display of the block, immediately below the faceplate.

LOR Low Out-of-Range is a boolean output that is set true if any one of the
seven low out-of-range conditions described in Section 2.6.2 (Out-of-
Range Conditions) occurs.

LSCO1 Low Scale for Output Range 1 is a real value that defines the lower range
value for the block’s output.

38
2. AIN – Analog Input Block B0193AX – Rev AB

MA Manual/Auto is a boolean input that controls the block’s operating state


(0 = false = Manual; 1 = true = Auto). When in Manual, the output PNT
is only updated manually, and not otherwise. It is released and can be set
by you or an external program. When IOMOPT = 1 (indicating that
there is a connected FBM or FBC) the output value of PNT is copied at
all times (Auto or Manual) to the MEAS parameter. Alarming in Manual
is dependent on the value of MANALM.

MANALM Manual Alarm Option is a configurable input which enables or disables


configured alarm options to function in Manual mode. Normally alarms
are processed only in the Auto mode. For the AIN block, the value of 0
indicates no alarming in Manual, and the value of 1 indicates full alarming
in Manual.

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.

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

NASOPT Nuisance Alarm Suppression Alarm Option is a configurable, non-settable


short integer that specifies how the nuisance alarm delay is implemented:
 0 = Suppress nuisance alarms by delaying the Return-to-Normal
(default) by the length of time specified in NASTDB
 1 = Suppress nuisance alarms by delaying alarm detection by the
length of time specified in NASTDB
 2 = Suppress nuisance alarms by delaying both the Alarm Detec-
tion and the Return-to-Normal by the length of time specified in
NASTDB

NASTDB Alarm Deadband Timer is a configurable long integer. Depending on the


value of NASOPT, it either specifies the deadband time interval that must
elapse before an alarm condition is allowed to return to normal, or the
length of a delay-on timer which specifies the amount of time between an
alarm’s detection and the announcement of the alarm. The parameter
value ranges from zero (default, no delay) to 2147483647 ms.

ORAG Out-of-Range Alarm Group is a short integer input that directs Out-of-
Range alarm messages to one of eight groups of alarm devices.

39
B0193AX – Rev AB 2. AIN – Analog Input Block

ORAO Out-of-Range Alarm Option is a configurable boolean which, when con-


figured true, enables an alarm for each change of the out-of-range status of
the block. The block has out-of-range status if either the HOR or the
LOR parameter is true.

ORAP Out-of-Range Alarm Priority is an integer input, ranging from 1 to 5, that


sets the priority level of the out-of-range alarm (1 is the highest priority).

ORAT Out-of-Range Alarm Text is a user-configurable text string of up to


32 characters, sent with the out-of-range alarm message to identify it.

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.

OWNER Owner is a string of up to 32 ASCII characters which allocate control


blocks to applications. Attempts to set OWNER are successful only if the
present value of OWNER is the null string, an all-blank string, or identi-
cal 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.

PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the
following period time lengths. (Integrator and Gateway blocks have differ-
ent period values than shown here.)
Period Length Period Length
0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****

* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.

40
2. AIN – Analog Input Block B0193AX – Rev AB

***** Available in CP40, CP40B, CP60 and later control processors.

PERTIM Period Time is the period of the block expressed in seconds.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).

PNT Point is the block output. It represents the analog input after all block
operations have been performed.

PNT_NO Point Number is the FBM or FBC point to which the AIN block is con-
nected. In the case of IFD inputs, the value of PNT_NO is the same as
the CHAN parameter of the child ECB18 if the desired input is the pri-
mary measurement of the instrument. If the first or second auxiliary mea-
surement is desired, see Section 2.5.2.6 to determine the required value of
PNT_NO.

PROPT Propagate Error Option is a boolean input which determines whether the
status of MEAS should be reflected in the Error bit of PNT status. If the
AIN block is in Auto and no FBM or FBC is configured (IOMOPT = 0
or 2), the true value of PROPT causes any one of the following conditions
to be reflected as an Error status of PNT:
 Bad status bit in MEAS
 OOS status bit in MEAS
 Error status bit in MEAS
 Any value in the OM field of the input source except 1
(ON_SCAN). Any other value in this field indicates that the
source of the connection has been deleted or is in a nonexistent
compound, or there has been a peer-to-peer path failure.

PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. The PRTYPE output of this block
consists of the following alarm types:
0 = No active alarm
1 = High Absolute
2 = Low Absolute
3 = High-High Absolute
4 = Low-Low Absolute
8 = Bad
25 = Out-of-Range
If there is more than one active alarm with highest priority, PRTYPE
reports the alarm type according to which occurs first as follows: Out-of-

41
B0193AX – Rev AB 2. AIN – Analog Input Block

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.

QALSTA Quality Status parameter (QALSTA) is a non-configurable packed long


that provides a combination of value record status, block status (BLK-
STA), and alarm status (ALMSTA) information in a single connectable
output parameter. Available bits for this block are provided below.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

Bit Boolean Connection


Number1 Definition Contents (B32 to B1)
30 Alarms Unacknowledged ALMSTA.UNA QALSTA.B2
29 Alarms Inhibited ALMSTA.INH QALSTA.B3
28 Out-of-Range Alarm ALMSTA.OOR QALSTA.B4
25 High-High Absolute Alarm ALMSTA.HHA QALSTA.B7
24 Low-Low Absolute Alarm ALMSTA.LLA QALSTA.B8
22 Bad Alarm2 ALMSTA.IOBD QALSTA.B10
17 High Absolute Alarm ALMSTA.HMA QALSTA.B15
16 Low Absolute Alarm ALMSTA.LMA QALSTA.B16
13 Bad Primary FBM BLKSTA.FBM1 QALSTA.B19
10 Bad Primary Point BLKSTA.BAD1 QALSTA.B22
5 Manual BLKSTA.MA QALSTA.B27
4 Low Limited PNT.LLO status QALSTA.B28
3 High Limited PNT.LHI status QALSTA.B29
2 Uncertain PNT.ERR status QALSTA.B30
1 Out-of-Service PNT.OOS status QALSTA.B31
0 Bad PNT.BAD status QALSTA.B32
1.
Bit 0 is the least significant, low order bit.
2. This bit records the status of the primary input (PNT). This status is the inverse of
the Manual/Auto (MA) status bit in BLKSTA. This bit is not available for I/A Series
software earlier than v8.0.

RAWC Raw Count is the value read from the ECB into the block before any form
of signal conditioning, characterization, scaling, clamping or filtering is

42
2. AIN – Analog Input Block B0193AX – Rev AB

applied. It is of real data type although the ECB value may be integer, or
long integer.

RO1 Range Output 1 is a real array consisting of the three parameters HSCO1,
LSCO1, and DELTO1. The array members are configured by their indi-
vidual names; however, RO1 and its members can be accessed on an array
basis by user tasks and displays.

SCI Signal Conditioning Index is an indexed input parameter that determines


how the raw count input will be conditioned. It is an alternate to charac-
terization and a predecessor to scaling, clamping and filtering. (See
“Appendix A – Signal Conditioning Tables” on page 67.)

TYPE When you enter “AIN” or select it from a configurator list, an identifying
integer is created specifying this block type.

UNACK Unacknowledge is a boolean output parameter which is set true, for notifi-
cation purposes, whenever the block goes into alarm. It is settable, but sets
are only allowed to clear UNACK to false, and never in the opposite direc-
tion. The clearing of UNACK is normally via an operator “acknowledge”
pick on a default display, user display, or Current Alarms Display, or via a
user task.

XREFIN External Reference Input is a real input used as the source of the cold
junction reference temperature for thermocouple SCIs when XREFOP is
configured true, or no FBM or FBC is configured. The block calculations
assume that XREFIN is in units of degrees Celsius.

XREFOP External Reference Option is a boolean input. When true, XREFOP


selects an external temperature measurement source, XREFIN, to be used
for thermocouple cold junction compensation. If XREFOP is false, the
FBM’s internal ninth channel (or the FBC’s internal thirty-third channel)
is used. XREFOP is configurable only.

ZERROP Zero Error Point is a status bit that indicates an out-of-range error (LOL
or LOR) in a DOWNSTREAM parameter (PNT.ERR) and also to indi-
cate an unconditional request for initialization in an UPSTREAM param-
eter (BCALCO.INITU). Normally, these usages are mutually exclusive
and there is no conflict. However, in some control applications where a
DOWNSTREAM parameter is used as part of an UPSTREAM connec-
tion, a High Out-of-Range (HOR) or Low Out-of-Range (LOR) condi-
tion can be misinterpreted as an unconditional initialization (INITU)
request. ZERROP is not configurable. To disable the setting of PNT.ERR
when out-of-range, you must use OMSET, OMA, or some other utility to
set ZERROP = 1.
ZERROP is a non-configurable boolean parameter with the following
meaning:
ZERROP = 0 set PNT.ERR when out of range (default setting, backward
compatible with previous version)

43
B0193AX – Rev AB 2. AIN – Analog Input Block

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.

2.5 Functions
2.5.1 Detailed Diagram
IOM_ID SCI KSCALE HSCO1 FLOP
PNT_NO XREFOP BSCALE
XREFIN LSCO1 FTIM (M)
FROM OSV
EXTBLK
ECB IOMOPT o MA
1
Signal
Conditioning- Scaling Clamping Filtering o o PNT
MEAS (A)
0,2 output
HSCO1 LSCO1 units
Converted-
RAWC OOR
OR LOR, HOR
Raw Data
OOR
Test

BAD
ECB Status
BADOPT PNT.BAD
Channel BLKSTA.BAD
Status

AUTO
BAD
MANUAL OR Alarming
AND AND
MANALM BAO
See individual diagrams

Figure 2-2. AIN Block Operational Diagram

44
2. AIN – Analog Input Block B0193AX – Rev AB

2.5.2 Input and Signal Conditioning


2.5.2.1 General Analog Input: 0 to 20 mA or 0 to 10 V dc
INPUT FROM FBM 01 (General Analog Input) Engineering
RAWC Units LASTGV
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:

FBM ECB Functional Description Electrical Type Valid Points


FBM201 ECB1 8 Analog In 0 to 20 mA Points 1 to 8
FBM204 ECB2 4 Analog In, 4 Analog Out 0 to 20 mA Points 1 to 8
FBM205 ECB2 As FBM 204, Redundant 0 to 20 mA Points 1 to 8
FBM211 ECB1 16 Analog In 0 to 20 mA Points 1 to 16
FBM01 ECB1 8 Analog In 0 to 20 mA Points 1 to 8
FBM04 ECB2 4 Analog In, 4 Analog Out 0 to 20 mA Points 1 to 8
FBM05 ECB2 As FBM 04, Redundant 0 to 20 mA Points 1 to 8
FBM06 ECB4 4 Pulse Rate In, 4 Analog Out 0 to 20 mA Points 5 to 8
FBM17 ECB9, 4 Analog In, 2 Analog Out, 0 to 10 V dc Points 1 to 6
33 to 36 4 Digital In, 4 Digital Out
FBM39 ECB23 4 IFD In, 4 Analog Out 0 to 20 mA Points 5 to 8
FBM44 ECB23 4 IFD In, 4 Analog Out, Dual 0 to 20 mA Points 5 to 8
FBM243 Baud Rate
FBM46 ECB38R 4 IFD In, 4 Analog Out, 0 to 20 mA Points 5 to 8
FBM246 Redundant
FBC21 ECB41 16 Analog In 0 to 20 mA Points 1 to 16
FBC01 ECB41 32 Analog In 0 to 20 mA Points 1 to 32
FBC17 ECB41 32 Analog In 0 to 10 V dc Points 1 to 32
FBC04 ECB43 16 Analog Out 0 to 20 mA Points 1 to 16

45
B0193AX – Rev AB 2. AIN – Analog Input Block

The following points in the above table are physical outputs rather than physical inputs. You can
use the readback values from these points as inputs to the AIN block:

FBM204: Points 5 to 8
FBM205: Points 5 to 8
FBM05: Points 5 to 8
FBM237: Points 1 to 8
FBM06: Points 5 to 8
FBM17: Points 5 to 6
FBM37 Points 1 to 8
FBM39: Points 5 to 8
FBM44: Points 5 to 8
FBM46: Points 5 to 8
FBM246
FBC04: Points 1 to 16

If FBM Option (IOMOPT) is not set to 1, then IOM_ID and PNT_NO are ignored. The input
is taken from another block, as described in Section 2.5.2.8.
General analog inputs are converted by the FBM or FBC from the electrical process input into a
form called “raw count,” which is an integer value between 0 and 64000. Based on the Signal
Conditioning Index (SCI) and the parameter Extender Block (EXTBLK) setting, a determination
is made as to how the raw count is to be conditioned.
If you wish the raw count to be characterized by a CHARC block, you should link the Extender
Block (EXTBLK) parameter of the AIN block to a CHARC block, and set the Extender Block
Option (EXTOPT) of that CHARC block to 1. The raw count is then characterized as described
below, and the value of SCI will be ignored. The characterizer output should be expressed in
counts, with full scale equal to 64000.
If you wish to apply linear or square root signal conditioning to the raw count, you should set SCI
to one of the values 0 to 7, or 9 to 15 as follows:

SCI = 0: No linearization; output = input


SCI = 1: Linear (0 to 64000). Analog Input 0 to 20 mA
SCI = 2: Linear (1600 to 64000). Analog Input 0 to 10 V dc
SCI = 3: Linear (12800 to 64000). Analog Input 4 to 20 mA
SCI = 4: Square root (0 to 64000). Analog Input 0 to 20 mA
SCI = 5: Square root (12800 to 64000), clamped. Analog Input 4 to 20 mA
SCI = 6: Square root, low cutoff (0 to 64000), clamp < 3/4%. Analog Input 0 to 20 mA
SCI = 7: Square root, low cutoff (12800 to 64000), clamp < 3/4%. Analog Input 4 to 20 mA
SCI = 9: Linear, low cutoff (1600 to 64000). Analog Input 0 to 10 V dc
SCI = 10: Linear, low cutoff (12800 to 64000). Analog Input 4 to 20 mA
SCI = 11 Square root, Intelligent Transmitter 2 (0 to 64000)
SCI = 12: Linear (14080 to 64000). Analog Input 2 to 10 V dc

46
2. AIN – Analog Input Block B0193AX – Rev AB

SCI = 13: Square root, low cutoff (14080 to 64000). Analog Input 2 to 10 V dc
SCI = 14 Linear (0 to 16383)
SCI = 15 Square root, low cutoff (1600 to 64000)
SCI = 50: Linear 0 to 65535 raw counts
SCI = 51: Linear -32768 to 32767 raw counts
SCI = 52: Linear 0 to 32767 raw counts
SCI = 53: Linear 0 to 1000 raw counts
SCI = 54: Linear 0 to 9999 raw counts
SCI = 55: Linear 0 to 2048 raw counts
SCI = 56: Linear 409 to 2048 raw counts
SCI = 57: Square root 0 to 2048 raw counts
SCI = 58: Square root 409 to 2048 raw counts with low cutoff
SCI = 59: Linear 0 to 4095 raw counts

Linear/Square Root Signal Conversion


Key Parameters: SCI, HSCO1, LSCO1, OSV
(See the definitions of the linear and square root SCI conversions in “Appendix A – Signal Condi-
tioning Tables” on page 67.)
Each linear SCI has an associated input span, consisting of the difference between the upper and
lower range values of the raw value. For example, SCI = 2 has an input span of 64000 minus
1600, or 62400, as shown in “Appendix A – Signal Conditioning Tables” on page 67. The upper
range value is always 64000 for any SCI, and the lower range value, which varies from one SCI to
another, is referred to as the raw low for the SCI.
The block also has an output span, which is the difference between the configured parameters
High Scale for Output Range 1 (HSCO1) and Low Scale for Output Range 1 (LSCO1).
If the raw value is greater than or equal to
64000.0 + Output Span Variance (OSV)/100.0 * (the input span of this SCI)
then High Out-of-Range (HOR) is set. Based on the two parameters Bad and Out-of-Range
Option (BADOPT) and Last Good Value (LASTGV), the value is either used or ignored, as
described in detail in Section 2.6.
Similarly, if the raw value is less than or equal to
(the raw low for this SCI - OSV/100.0) * (the input span of this SCI),
then Low Out-of-Range (LOR) is set. Based on BADOPT and LASTGV, the value is either used
or ignored, as described in Section 2.6.
The raw value is then converted according to the SCI definitions in “Appendix A – Signal Condi-
tioning Tables” on page 67.
Characterizer Signal Conversion
Key Parameters: EXTBLK, EXTOPT
If EXTBLK is linked to a CHARC block whose EXTOPT parameter is set to 1 or 2, then this is a
characterizer signal conversion.

47
B0193AX – Rev AB 2. AIN – Analog Input Block

The raw value from the input is passed to the CHARC block specified, and the resulting output
from the characterizer is then scaled (if not already accomplished by the characterization),
clamped, and optionally filtered.
If the CHARC input is outside the characterizer end-points, and BADOPT indicates that an out-
of-range in that direction is to be considered Bad status and LASTGV is true, then the value of
PNT is not updated this cycle, and the filter is re-initialized if Filter Option (FLOP) is non-zero.

2.5.2.2 Thermocouple Input

INPUT FROM FBM 02/36 (Thermocouple Input)


XREFOP
Input = XREFIN SCI = 20-28 KSCALE BSCALE
Raw Counts (1.8) (32.0) o
Cold oC F
Linearization
Channel 9 Junction
2.5.2.2 X +
Compensation
External
Block hor, lor hor,lor

Channel Status

FBM Status

Figure 2-4. Thermocouple Input Example

The following FBMs or FBCs and point numbers provide thermocouple inputs:

FBM ECB Functional Description Electrical Type Valid Points


FBM202 ECB1 8 Analog In mV Points 1 to 8
FBM212 ECB1 14 Analog In mV Points 1 to 14
FBM02 ECB1 8 Analog In mV Points 1 to 8
FBM36 ECB1 8 Analog In mV Points 1 to 8
FBC02 ECB41 32 Analog In mV Points 1 to 32
FBC02 ECB41 32 Analog In, Redundant mV Points 1 to 32
Redundant

If IOMOPT is not set to 1, then IOM_ID and PNT_NO are ignored. The input is taken from
another block, as described in Section 2.5.2.8.
A temperature input read from a thermocouple must be linearized before it can be used. The tem-
perature value must also be compensated for the thermocouple’s cold junction temperature. You
can obtain this value from Point 9 (FBM202, FBM02, or FBM36), Point 15 (FBM212), or Point
33 (FBC02), or it may be provided directly as a temperature value by setting XREFOP true and
providing the compensation temperature, in degrees Celsius, in the XREFIN parameter. The
engineering unit value obtained from signal conditioning is always in degrees Celsius. KSCALE

48
2. AIN – Analog Input Block B0193AX – Rev AB

and BSCALE can be used to convert the engineering units from Celsius to Fahrenheit. To do this,
enter KSCALE = 1.8 and BSCALE = 32.0 (see Section 2.5.3).
Thermocouple inputs are converted in the FBM or FBC from millivolts into raw counts in the
range 0 to 64000. This conversion is reversed by the CP when you specify a SCI value between 20
and 28 or you specify Special Thermocouple signal conversion.
When you apply thermocouple signal conditioning to the raw count, you should set SCI to one of
the values 20 to 28 as follows:

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 67. HSCO1 and LSCO1 are only used to
specify what portion of the range is to be used for display purposes, and for calculating percent of
range for peer-to-peer connections.
Thermocouple Signal Conversion
Key Parameters: IOM_ID, PNT_NO, SCI, XREFOP, XREFIN, KSCALE, BSCALE
(The details of thermocouple signal conversions are listed in “Appendix A – Signal Conditioning
Tables” on page 67.)
Cold junction compensation is now computed:
 The Point 9 value from the FBM202, FBM02, or FBM36, the Point 15 value from
the FBM212, or the Point 33 value from the FBC02 is ordinarily used for cold junc-
tion compensation. It provides the cold junction temperature from an RTD sensor
within the FBM on the ninth channel, or within the FBC on the thirty-third channel.
It is converted back from raw count to ohms in the CP.
 The RTD conversion table for SCI 43 (100 Ohm IEC) is used to convert the Point 9,
Point 15, or Point 33 value from ohms to degrees Celsius. If the ohms value exceeds
the highest or lowest ohms values in this table, it is clamped at those values, the HOR
or LOR block parameter is set true, and the processing described in Section 2.6
occurs.
 However, if the External Reference Option (XREFOP) is true or if IOMOPT indi-
cates that there is no FBM or FBC connected, the external reference in the External
Reference Input (XREFIN) is used. This must already be in degrees Celsius.

49
B0193AX – Rev AB 2. AIN – Analog Input Block

 The Thermocouple conversion table for the SCI in use is entered with the degrees
Celsius value of the cold junction compensation and converted to the corresponding
millivolt value. The compensation in millivolts is added to the basic millivolt value,
and the table is entered again to convert to degrees Celsius. But if the sum is out of the
table range for millivolts then parameter LOR or HOR is set true and the processing
of Section 2.6 occurs. If LASTGV is true, then the value of PNT is not updated this
cycle, and the filter is re-initialized.
Special Thermocouple Signal Conversion
Key Parameters: EXTBLK, EXTOPT
You can specify Special Thermocouple Signal Conversion if the thermocouple does not conform
to one of the standard types in “Appendix A – Signal Conditioning Tables” on page 67. In this
case you should link the Extender Block parameter (EXTBLK) to a CHARC block whose
Extender Block Option (EXTOPT) parameter is set to 2.
The compensation reference in degrees Celsius, however obtained, is passed to the CHARC block
specified by EXTBLK. It is used at this time to perform reverse characterization; that is, it is
entered with the passed degrees Celsius value and the corresponding millivolt equivalent is
returned.
The returned reference millivolts are added to the raw value and this sum is passed to the CHARC
block as the input. The corresponding output is the equivalent degrees Celsius.
If the CHARC input is out of range then parameter LOR or HOR is set true and the processing
of Section 2.6 occurs. If LASTGV is true, then the value of PNT is not updated this cycle, and
the filter is re-initialized.

2.5.2.3 RTD Input

INPUT FROM FBM 03 (RTD Input)


RAWC

SCI = 40-44
Input = Raw Counts KSCALE BSCALE
oC oF
Linearization
2.5.2.3 X +

hor,lor

Channel Status

FBM Status

Figure 2-5. RTD Input Example

50
2. AIN – Analog Input Block B0193AX – Rev AB

The following FBM and point numbers provide RTD inputs:

FBM ECB Functional Description Electrical Type Valid Points


FBM203 ECB1 8 Analog In ohms Points 1 to 8
FBM213 ECB1 8 Analog In ohms Points 1 to 8
FBM03 ECB1 8 Analog In ohms Points 1 to 8
FBM33 ECB1 6 Analog In ohms Points 1 to 8

In addition, the input data at Point 9 of an FBM202, FBM02, or FBM36, Point 15 of an


FBM212, or Point 33 of an FBC02, the cold junction compensation channel of thermocouple
inputs, originates in an RTD device within the FBM or FBC, and must be conditioned accord-
ingly before its use.
If you wish to apply RTD signal conditioning to the raw count, you should set SCI to one of the
values 40 to 44 as follows:

SCI = 40: Copper RTD (SAMA)


SCI = 41: Nickel RTD (SAMA)
SCI = 42: Platinum RTD (100 Ohm DIN 43760-1968)
SCI = 43: Platinum RTD (100 Ohm IEC) (DIN 43760-1980)
SCI = 44: Platinum RTD (100 Ohm SAMA)

RTD Signal Conversion


Key Parameters: IOM_ID, PNT_NO, SCI
(The details of RTD signal conversions are listed in “Appendix A – Signal Conditioning Tables”
on page 67.)
The raw count value is converted back into ohms. The RTD conversion table for this SCI is
entered with the ohms value and it returns the equivalent in degrees Celsius. If the entered ohms
value is outside the table limits, the input is clamped at the lowest or highest ohms value, and
LOR or HOR is set. Based on BADOPT and LASTGV, this clamped value is either used or
ignored, as described in Section 2.6.
As in the case of thermocouple inputs, HSCO1 and LSCO1 are not key parameters because the
signal conditioning understands what the engineering unit range is for a particular SCI. The
entered range is only used for display purposes, and for calculating percent of range for peer-to-
peer connections.

51
B0193AX – Rev AB 2. AIN – Analog Input Block

2.5.2.4 Pulse Rate Input

INPUT FROM FBM 06 (Pulse Rate Input)


MTRF

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

Figure 2-6. Pulse Rate Input Example

Key Parameters: SCI, MTRF


The following FBM and point numbers provide pulse rate inputs:

FBM ECB Functional Description Electrical Type Valid Points


FBM206 ECB4 8 Pulse rate In Frequency Points 1 to 8
FBM06 ECB4 4 Pulse rate In, 4 Analog Out Frequency Points 1 to 4

To apply pulse rate signal conditioning to the raw count, set SCI = 8. See the definition of this
SCI in “Appendix A – Signal Conditioning Tables” on page 67.
The Pulse Constant defined in the appendix converts the raw count in the ECB4 into the units of
Hertz. You must set Meter Factor (MTRF) with the value necessary to convert Hertz into the
configured Engineering Units for Output Range 1 (EO1). Typically MTRF is in units of Flow
Rate per Hertz.
For example, suppose a meter with an output factor of 50 pulses/gallon has a maximum flow rate
of 100 gallons/minute. Then:
 The maximum pulse rate is 5000 pulses per minute.
 5000 pulses per minute = 83.3 pulses per second (Hertz).
 MTRF = 100/83.3 = 1.2 (Gallons/minute per Hertz).
 EO1 = GPM (Gallons Per Minute).
You can apply pulse rate signal conditioning to the first four points of FBM06 and linear/square
root or characterizer signal conditioning to the last four points independently.

52
2. AIN – Analog Input Block B0193AX – Rev AB

2.5.2.5 Pulse Count Input


Key Parameters: IOM_ID, PNT_NO
The following FBMs and point numbers provide pulse count inputs:

FBM ECB Functional Description Electrical Type Valid Points


FBM07 ECB7 16 Digital In/Pulse Count In Contact/dc Points 1 to 16
FBM12 --- Expander for FBM 07 Contact/dc Points 17 to 32
FBM08 ECB7 16 Digital In/Pulse Count In 120 V ac Points 1 to 16
FBM13 --- Expander for FBM 08 120 V ac Points 17 to 32

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.

2.5.2.6 Intelligent Field Device Input


Key Parameters: EO1

INPUT FROM FBM18 (IFD Input)

RAWC
Output
Engineering
SCI = 0 KSCALE BSCALE Units

X +
Input Engineering Units

Channel Status

FBM Status

Figure 2-7. Intelligent Field Device Input Example

The following FBMs and point numbers provide Intelligent Field Device inputs:

FBM ECB Functional Description Electrical Type Valid Points


FBM18 ECB12 8 IFD In IFD Points 1 to 24
FBM39 ECB23 4 IFD In, 4 Analog Out IFD, 0 to 20 mA Points 1 to 4, 9 to 12,
17 to 20
FBM43 ECB12 8 IFD In IFD, 0 to 20 mA, Points 1 to 24
ECB 73 Dual Baud Rate
FBM44 ECB23 4 IFD In, 4 Analog Out IFD, 0 to 20 mA, Points 1 to 4, 9 to 12,
Dual Baud Rate 17 to 20

53
B0193AX – Rev AB 2. AIN – Analog Input Block

FBM ECB Functional Description Electrical Type Valid Points


FBM46 ECB38R 4 IFD In, 4 Analog Out IFD, 0 to 20 mA, Points 1 to 4, 9 to 12,
Dual Baud Rate, 17 to 20
Redundant
FBM243 ECB 73 8 IFD In/Out IFD, 0 to 20 mA, Points 1 to 4, 9 to 12,
Dual Baud Rate 17 to 20
FBM246 ECB73 8 IFD In/Out IFD, 0 to 20 mA, Points 1 to 4, 9 to 12,
Dual Baud Rate, 17 to 20
Redundant
FBM23 ECB13 24 Floating Point In HTG Points 1 to 24
FBM38 ECB22 8 Floating Point In Coriolis Points 1 to 8

For FBM18, 43, and 243 the primary measurements of the eight instruments are input on
Points 1 to 8 respectively, the first auxiliary measurements are on Points 9 to 16 respectively, and
the second auxiliary measurements are on Points 17 to 24 respectively. These numbers should be
entered into PNT_NO.
For FBM39, 44, 46, and 246 the primary measurements of the four instruments are input on
Points 1 to 4 respectively, the first auxiliary measurements are on Points 9 to 12 respectively, and
the second auxiliary measurements are on Points 17 to 20 respectively. These numbers should be
entered into PNT_NO. (Points 5 to 8 contain the analog output readback values and may be pro-
cessed as described in Section 2.5.2.1.)
You should configure the DEV_ID parameter of a parent ECB (12, 23, 38R, or 73) with the let-
terbug of the associated FBM (18, 39, 43, 44, 46, 243, or 246). The DEV_ID of the AIN block
is a non-configurable data store which always matches the DEV_ID of the parent ECB. The
DEV_ID of the child ECB18 can be any 6-character array, which, after Release 4.0, is no longer
required to match the DEVNAM parameter.
The PARENT parameter of the child ECB18 is identical to the DEV_ID parameter of the parent
ECB (12, 23, 38R, or 73) when the ECB is installed by the System Configurator/Definition. If
you install the child ECB18 manually via the Integrated Control Configurator, you must set the
PARENT parameter with the pathname to the NAME parameter of the parent ECB (12, 23,
38R, or 73). This pathname must be of the form <local_compound_name>:<ecb_name> unless
the parent is in the compound <cp_letterbug>_ECB (the “ECB compound”), in which case the
pathname <ecb_name> is also acceptable. The DEV_ID of the parent is not accepted as the value
of PARENT.
Intelligent Field Device inputs can also be read directly from the child ECB18s by connecting the
Measurement (MEAS) input of the AIN block to certain ECB18 output parameters. This
method is described in Section 2.5.2.8.
The inputs from Intelligent Field Devices, HTG Interface Units, and Coriolis (Mass Flow) Trans-
mitters are floating point values which are normally expressed in the final output units specified
by EO1. However, you can apply characterization (see Section 2.5.2.1), scaling (see
Section 2.5.3), clamping (see Section 2.5.4), and/or filtering (see Section 2.5.5) if required by the
application. If you do not wish to apply characterization, you should set SCI to 0.

54
2. AIN – Analog Input Block B0193AX – Rev AB

2.5.2.7 Exceptions for Use of AIN Blocks with Intelligent Transmitters


and Positioners (Parent ECB73)
When configuring a control strategy for intelligent transmitters, it may not be necessary for you
to configure AIN blocks. The existing ECB structure may provide the values that might otherwise
be read by AIN blocks. Alarming and trending can be performed on values obtained directly from
the ECBs. If you use window ECBs and a parent/child ECB structure, output from a child ECB
(ECB18, ECB74) can provide input to other blocks (such as the PID block) rather than an AIN
block providing the input.
For example, an Intelligent Positioner is driven through an FBM43 that provides support for up
to eight intelligent transmitters and positioners. The eight channels of this FBM are accessed
through a parent ECB73. The positioner occupies one channel of the FBM and is accessed
through an ECB74 as a child of the ECB73. The measurement value used in the control loop can
be provided in several ways: a separate analog signal through a simple FBM; a signal from an intel-
ligent transmitter through a separate FBM; or a signal from an intelligent transmitter through the
same FBM43 that the positioner uses. Figure 2-8 illustrates this third case. A child ECB18 from
an intelligent transmitter provides the loop's measurement.

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

Intelligent Positioner Intelligent Transmitter

Figure 2-8. Typical Configuration for Intelligent Transmitters with Window ECB

55
B0193AX – Rev AB 2. AIN – Analog Input Block

The output of the ECB74 can be linked directly to graphics, historical data collection, and other
blocks (such as the AOUT or PID), without using an AIN block interface.
This measurement can be passed to the PID MEAS parameter through an AIN block, or it may
be accessed directly by connecting MEAS to the ECB18's MEAS1, MEAS2, or MEAS3 parame-
ter. The AIN need only be used if filtering is desired. Measurement alarming can be performed, if
desired, by a measurement alarm block (MEALM) or a real alarm block (REALM) connected to
the ECB18 MEASn parameter or to the PID's MEAS parameter.
Figure 2-8 shows a typical configuration for FBM43/243 and its associated ECBs for an Intelli-
gent Positioner.
When AIN blocks read inputs from FBMs (non-intelligent input), IOMOPT is set to 1 (default
value; input values from the FBM or FBC input point specified by IOM_ID and PNT_NO).
When you use AIN with intelligent devices and their parent/child ECBs, set IOMOPT to 0
(input values from the MEAS parameter and signal conditioning is applied), or 2 (input values
from the MEAS parameter with no signal conditioning).
Refer to Section 2.5.2.8 for additional information on AIN input from another block.
If redundant analog or intelligent inputs are desired, an AINR block must be used since that is the
location for arbitration of analog inputs. Redundant out puts are not supported.

2.5.2.8 Input from Another Block


Key Parameters: MEAS, SCI
There are two ways to make use of the ability to take the input to AIN from another block:
 Process simulation without a connected FBM or FBC
 Connection to a Window ECB.
In either case, you should set IOMOPT to 0 or 2. This causes the block input to be taken from
the Measurement (MEAS) parameter, and the settings of IOM_ID, DEV_ID, and PNT_NO are
ignored.
In the process simulation application, you can connect any desired source to MEAS.
To take the block input from a Window ECB, you should configure the source connection to
MEAS in the format:
<compound_name>:<window_ecb_name>.<parameter>
where <compound_name> is the compound containing the Window ECB, <window_ecb_name>
is the NAME parameter of the Window ECB, and <parameter> is the measurement value to be
read.
The Window ECB can be in any compound, and where there is a parent-child relationship (for
example, ECB12 and ECB18) the parent and child need not be in the same compound.
Each measurement in a Window ECB has two values:
 The “device value”, which is the actual measurement as reported by the instrument. It
is connectable but not settable.
 The “point value”, which is the device value after any desired bypassing, last good
value retention, or setting for simulation purposes. It is connectable and settable.
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

56
2. AIN – Analog Input Block B0193AX – Rev AB

device and point values for each of its 24 measurements, but their names do not follow this con-
vention (see “ECB13 - Hydrostatic Tank Gauge”).
If you set IOMOPT to 0, you can use any valid SCI value to condition the input, or use charac-
terization as described in Section 2.5.2.1. If IOMOPT is set to 2, you cannot use signal condi-
tioning or characterization, and the values of SCI and EXTBLK are ignored.
In either case (IOMOPT = 0, IOMOPT = 2) you can use scaling (see Section 2.5.3), clamping
(see Section 2.5.4), and/or filtering (see Section 2.5.5).
Since MEAS becomes an input, the normal copying of the PNT output to MEAS is suspended.

2.5.3 Zero and Span Scaling


Key Parameters: KSCALE, BSCALE
Following any signal conditioning or characterization that is applied, you can then scale the con-
ditioned signal by application of the Gain Scale (KSCALE) and Offset Scale (BSCALE) parame-
ters in accordance with the formula:
Scaled Value = (Conditioned Value * KSCALE) + BSCALE.
Scaling allows the conditioned value to be made dimensionally compatible with the desired out-
put units, as for example in conversion from Celsius to Fahrenheit scales in the case of tempera-
ture measurements. In that conversion, KSCALE is 1.8 and BSCALE is 32.0.
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 67.)
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:

57
B0193AX – Rev AB 2. AIN – Analog Input Block

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.

osv (units)
HSCO1
INPUT

LSCO1
osv (units)

osv (units)
HSCO1
HOR = 1
OUTPUT
LOR = 1
LSCO1
osv (units)

Figure 2-9. Clamping

2.5.5 Filtering
Key Parameters: FLOP, FTIM
The clamped value is subjected to possible filtering, as the last signal processing activity. Filtering
introduces a lag to changes in the input signal, thus smoothing out input changes or suppressing
noise. Note that this feature should be used with caution to avoid removing true process informa-
tion.

58
2. AIN – Analog Input Block B0193AX – Rev AB

NOTE
When an AIN block is configured so that the MEAS parameter is connected to
another block (as opposed to an input from the field), filtering options have no
effect when the block is running in a CP40B. Regardless of how the filtering
options are set, the AIN block running in a CP40B station does not filter the input
if the MEAS parameter is connected to another block.

If the block is in Auto and Filter Option (FLOP) is non-zero, either first-order lag filtering
(FLOP = 1) or second-order Butterworth filtering (FLOP = 2) or two-sample-average filtering
(FLOP = 3) is applied. The lag that first or second-order filtering introduces has time constant
Filter Time (FTIM). You can use them to attenuate measurement noise. However, if FTIM is set
too low, there is relatively insignificant filtering. If set too high, the lag may be large enough to
affect loop accuracy.
In addition to filtering, aliasing is minimized and resolution improved by configuring the RES
parameter of the ECB so that the fieldbus integration time is equal to twice the block period.
Refer to the section “Fieldbus Integration Time” in the appropriate Integrated Control Software
Concepts document (B0700AG or B0193AW).

2.5.5.1 First Order Lag Filtering (FLOP = 1)


The algorithm of this filter is
Filter Output = PNT + (Filter Input - PNT) / ( + 1)
where PNT is the present value of the block output, which was actually calculated during the pre-
vious block processing cycle.  is computed as:
 = 60 * FTIM / Block Period in Seconds
and represents the number of block processing cycles for the output to reach approximately 63
percent of its ultimate value after a step change to the input.
In Laplace transform notation, the transfer function is 1/(1 + s).
A diagram of first-order lag filtering is shown in Figure 2-10.

OUTPUT
INPUT STEP

63% 100%

FTIM

Figure 2-10. First-Order Lag Filtering

59
B0193AX – Rev AB 2. AIN – Analog Input Block

2.5.5.2 Butterworth Filtering (FLOP = 2)


The algorithm of this filter is:
New vter = Old vter + (Filter Input - PNT - Old vter) / (/2 + 1)
Filter Output = PNT + New vter / ( + 1)
where  is computed as in the case of first order lag filtering.
In each block execution cycle, the first step is the computation of New vter, based on the stored
value of Old vter from the last cycle (when the filter is initialized the value of Old vter is set to
0.0). As before, PNT is the current value of the block output.
In Laplace transform notation, the transfer function is:
1
1 + s+ (s)2/2
A diagram of Butterworth filtering is shown in Figure 2-11.

INPUT STEP
OUTPUT

FTIM
Figure 2-11. Butterworth Filtering

2.5.5.3 Two-Sample-Average Filtering (FLOP = 3)


The algorithm of this filter is:
Filter Output = (Filter Input this cycle + Filter Input previous cycle)/2.
This algorithm eliminates integer multiples of the half-sampling frequency component and atten-
uates other high frequencies. The filter has a flatter low frequency pass band and sharper cutoff
than the other two filters, with the same low-frequency phase shift.

2.6 Bad Input and Out-of-Range Processing


2.6.1 Bad Status and BAD Parameter
Key Parameters: BAD, PNT, PNT_NO, BADOPT, BLKSTA
The BAD parameter and the bad status of PNT are simultaneously set true provided any one of
the following conditions is true:
 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.
 An out-of-range situation has met the conditions for being considered a bad condi-
tion, because of the setting of BADOPT. (See Section 2.6.2 below.)

60
2. AIN – Analog Input Block B0193AX – Rev AB

If there is no connected FBM or FBC, the first two conditions above are replaced by the
following:
 The MEAS value is linked and it has bad status.
As noted in Section 2.7, neither the BAD parameter nor the PNT status bits are updated when
the block is in Manual. In Auto, you can obtain current information about the input quality by
connecting to either BAD or PNT.BAD.
Note the following relationship between the input parameter BADOPT, Out-of-Range condi-
tions, and the BAD status:
BADOPT = 0: Errant input conditions do not affect BAD, PNT.BAD, and BLK-
STA.BAD
BADOPT = 1: Low Out-of-Range causes BAD, PNT.BAD, and BLKSTA.BAD
to be set
BADOPT = 2: High Out-of-Range causes BAD, PNT.BAD, and BLKSTA.BAD
to be set
BADOPT = 3: High or Low Out-of-Range causes BAD, PNT.BAD, and BLK-
STA.BAD to be set
BADOPT = 4: Unhealthy scalar input (KSCALE or BSCALE) causes BAD,
PNT.BAD, and BLKSTA.BAD to be set (i.e. input value status is
BAD, OOS, ERR, or has a broken OM connection)

Note that for BADOPT 1-4, BAD and PNT.BAD are only set when the block is in AUTO mode
and BLKSTA.BAD is set regardless of the block mode.

NOTE
BLKSTA.BAD, PNT.BAD, and BAD track each other differently depending on
whether the block is in MANUAL or AUTO mode. For example, switching a block
to MANUAL and performing a "set" operation will clear the PNT.BAD status bit,
which allows the operator to define the PNT value as acceptable. However, the
BAD parameter's state and value will remain the same as if the block was in AUTO
mode.

See “BADOPT” on page 30 for additional statuses.


When BADOPT is set, the appropriate Out-of_Range condition is OR’ed into other bad channel
conditions to cause the BAD status to be set.

2.6.2 Out-of-Range Conditions


2.6.2.1 Out-of-Range Due to Signal Conditioning
Key Parameters: HOR, LOR
Thermocouple Signal Conversion
If cold junction compensation is based on the FBM Point 9, FBM Point 15, or FBC Point 33
value, and the ohms value is outside of the limits of the SCI table 43 (100 ohms IEC), then HOR
or LOR is set true, depending on which limit was exceeded.

61
B0193AX – Rev AB 2. AIN – Analog Input Block

When the compensation reference has been converted to millivolts and added to the raw value
millivolts, the resulting sum is used to access the proper SCI table. If this sum is higher or lower
than the limits of the table, HOR and LOR are handled as in the last paragraph.
If the Special Thermocouple option is in use, when the sum of the reference value and raw value is
used to re-enter the characterizer, the entry is compared against the characterizer end-points. If
the entry value is outside the end-points, HOR and LOR are handled as in the preceding para-
graph.
RTD Signal Conversion
When the raw value in ohms is higher or lower than the limits of the SCI table in use, parameters
HOR and LOR are handled as above.
Linear/Square Root Signal Conversion
The raw value is compared against the raw_low for this SCI as adjusted for the OSV in use. If
below this limit, LOR is set, and similarly for HOR if the upper limit is exceeded.
Characterizer Signal Conversion
The raw value is compared against the characterizer end-points. If the value is outside the end-
points, HOR and LOR are handled as above.

2.6.2.2 Out-of-Range Due to Clamping


Key Parameters: HOR, LOR, HSCO1, LSCO1
As noted in Section 2.5.4, HOR or LOR can be set true as a result of clamping.

2.6.3 Out-of-Service Conditions


Key Parameters: PNT, EXTBLK, MEAS
The out-of-service status of PNT is set true provided any one of the following conditions is true:
 The FBM or FBC itself is out-of-service
 The FBM is of HTG or IFD type and the connected point is out-of-service, as indi-
cated by the status field of the connected point
 The EXTBLK parameter has out-of-service status, indicating an out-of-service
CHARC block.
If there is no connected FBM or FBC, the first two conditions above are replaced by the
following:
 The MEAS value is linked and it has out-of-service status.

2.6.4 Last Good Value


Key Parameters: LASTGV, BAD, PNT, HSCO1, LSCO1, OSV, IOMOPT, SCI
In the following situations, parameter Last Good Value (LASTGV) only takes effect when
BADOPT has caused BAD to be true, and its actions depend on the condition which caused the
BAD status.
 When BAD is true because thermocouple cold junction compensation is outside the
limits of the SCI 43 table, the reference value (in degrees Celsius) from the previous
cycle is used as the compensation.

62
2. AIN – Analog Input Block B0193AX – Rev AB

 When BAD is true because the compensated thermocouple millivolt value is outside
the limits of the SCI table in use, LASTGV causes PNT to retain its value from the
last cycle.
 In the Special Thermocouple option, if the compensated value is outside the limits of
the characterizer end-points, PNT retains its value from the last cycle.
 When an RTD ohms value is outside the limits of its SCI table, PNT retains its value
from the last cycle.
 In linear/square root signal conditioning, if the raw value is beyond the lower or upper
value of the span, as adjusted by OSV, PNT retains its value from the last cycle.
 In characterizer signal conversion, if the value is outside the limits of the characterizer
end-points, PNT retains its value from the last cycle.
 When BAD is true because an out-of-range condition occurred due to
HSCO1/LSCO1 clamping, PNT retains its value from the last cycle only if SCI = 0
(no linearization), and IOMOPT indicates that an FBM or FBC is connected.
Figure 2-12 shows the effect of LASTGV in.
In the following situations, retention of the PNT value from the last cycle is independent of
BADOPT.
 The connected FBM or FBC is out-of-service, regardless of the value of LASTGV.
 The connected HTG, IT2, or Coriolis point is out-of-service, regardless of the value
of LASTGV.
 The connected point has bad status and LASTGV is true.

63
B0193AX – Rev AB 2. AIN – Analog Input Block

LASTGV = 1
BADOPT = 2
SCI = 0
LASTGV = 0 IOMOPT = 1

osv (units)
HSCO1
Input Input

LSCO1
osv (units)

osv (units)
HSCO1
Output Output is the last
Output good value read
HOR = 1 HOR = 1 before Input went
out of range.
LSCO1
osv(units)

Figure 2-12. Last Good Value

2.7 Manual Mode


When the AIN block is in the Manual mode, it does not update the value of the PNT output.
PNT is released and becomes settable by you. When an FBM or FBC is connected, the manual
value set into PNT is copied to MEAS.
In Manual mode, the status bits (Bad, Out-of-Service, and Error) of the PNT output are not
updated, nor are the BAD, HOR, and LOR parameters. These status bits and parameters are not
cleared when Manual mode is entered. They retain their last values before the transition to Man-
ual, until and unless they are set by you.
The PROPT parameter is inactive when the block is in Manual (that, the Error bit of the PNT
status is not set based on various status bits of MEAS when no FBM or FBC is connected).

64
2. AIN – Analog Input Block B0193AX – Rev AB

If MANALM is true, alarming is enabled while in Manual mode, and is based on the manually-
set value of PNT.
In Manual mode, you may set the values of PNT, BAD, HOR, LOR, and the alarm indicators.

2.8 Alarming
The AIN block supports the Bad I/O, Out-of-Range, High/Low Absolute, and High-High/Low-
Low Absolute alarm types. The functionality of these alarm types is discussed in the appropriate
Integrated Control Software Concepts document (B0700AG or B0193AW).
The nomenclature for identical alarm types varies from block to block for historical reasons
involving backward compatibility requirements. The nomenclature for the AIN block is as fol-
lows:

Table 2-2. Alarm Nomenclature

Dead- Default Indicator


Type Option Limit Priority Group Text band Display Parameter
I/O Bad BAO = True ---- BAP BAG BAT ----- IOBAD BAD
Out-of-Range ORAO = True ---- ORAP ORAG ORAT ----- RANGE HOR/LOR
High Absolute HLOP = HAL HLPR HLGP HAT HLDB HIABS HAI
1 or 2
Low Absolute HLOP = LAL HLPR HLGP LAT HLDB LOABS LAI
1 or 3
High-High HHAOPT = 1 HHALIM HHAPRI HHAGRP HHATXT HLDB HHABS HHAIND
Absolute or 2
Low-Low HHAOPT = 1 LLALIM HHAPRI HHAGRP LLATXT HLDB LLABS LLAIND
Absolute or 3

The column titled “Option” in Table 2-2 specifies the required parameter configuration to enable
or disable the actual alarming of nay of the six alarm types.

65
B0193AX – Rev AB 2. AIN – Analog Input Block

2.9 Application Diagram

ECB 1

PNT_NO

AIN
PNT
MEAS

PID
FBM 203
or
OUT FBM 03
MEAS
AOUT
OUT

TT

Steam Heated Water


HEAT
EXCHANGER Cold Water
IOM_ID = HE0101
PNT_NO = 3
SCI = 42
KSCALE = 1.8
BSCALE = 32.0
LSCO1 = 50.0
HSCO1 = 210.0
EO1 = Deg F.
HLOP = 2
HHAOPT = 2
HAL = 190.0
HHALIM = 200.0
Figure 2-13. Typical AIN Block Application

66
2. AIN – Analog Input Block B0193AX – Rev AB

2.10 Appendix A – Signal Conditioning Tables


2.10.1 Summary

SCI = 0: No linearization; output = input


SCI = 1: Linear (0 to 64000) (“0 to 100%”)
SCI = 2: Linear (1600 to 64000) (“0 to 100%, Elevated Zero”)
SCI = 3: Linear (12800 to 64000) (“20 to 100%”)
SCI = 4: Square root (0 to 64000) (“0 to 100%”)
SCI = 5: Square root (12800 to 64000), clamped (“20 to 100%”)
SCI = 6: Square root, low cutoff (0 to 64000), clamp < 3/4% (“0 to 100%”)
SCI = 7: Square root, low cutoff (12800 to 64000), clamp < 3/4% (“20 to 100%”)
SCI = 8: Pulse rate
SCI = 9: Linear, low cutoff (1600 to 64000) (“0 to 100%, Elevated Zero”)
SCI = 10: Linear, low cutoff (12800 to 64000)(“20 to 100%”)
SCI = 11 Square root, Intelligent Transmitter 2 (0 to 64000)
SCI = 12: Linear (14080 to 64000)(“20 to 100%, Elevated Zero”)
SCI = 13: Square root, low cutoff (14080 to 64000),(“20 to 100%, Elevated Zero”)
SCI = 14 Linear (0 to 16383)
SCI = 15 Square root, low cutoff (1600 to 64000)
SCI = 20: Type B Thermocouple
SCI = 21: Type E Thermocouple
SCI = 22 Reserved for future use
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
SCI = 40: Copper RTD (SAMA)
SCI = 41: Nickel RTD (SAMA)
SCI = 42: Platinum RTD (100 Ohm DIN 43760-1968)
SCI = 43: Platinum RTD (100 Ohm IEC) (DIN 43760-1980)
SCI = 44: Platinum RTD (100 Ohm SAMA)
SCI = 50: Linear 0 to 65535 raw counts
SCI = 51: Linear -32768 to 32767 raw counts
SCI = 52: Linear 0 to 32767 raw counts
SCI = 53: Linear 0 to 1000 raw counts
SCI = 54: Linear 0 to 9999 raw counts
SCI = 55: Linear 0 to 2048 raw counts

67
B0193AX – Rev AB 2. AIN – Analog Input Block

SCI = 56: Linear 409 to 2048 raw counts


SCI = 57: Square root 0 to 2048 raw counts
SCI = 58: Square root 409 to 2048 raw counts with low cutoff
SCI = 59: Linear 0 to 4095 raw counts

2.10.2 Linear/Square Root Signal Conditioning

SCI = 0: No Linearization
Conditioned = Raw
SCI = 1: Linear (0 to 64000)
Analog Input 0 to 20 mA
Conditioned = (Raw * (HSCO1 - LSCO1)/64000) + LSCO1
SCI = 2: Linear (1600 to 64000)
Analog Input 0 to 10 V dc
Conditioned = ((Raw - 1600) * (HSCO1 - LSCO1)/62400) + LSCO1
SCI = 3: Linear (12800 to 64000)
Analog Input 4 to 20 mA
Conditioned = ((Raw - 12800) * (HSCO1 - LSCO1)/51200) + LSCO1
SCI = 4: Square Root (0 to 64000)
Analog Input 0 to 20 mA
Conditioned = (Sqrt(64000 * Raw) * (HSCO1 - LSCO1)/64000) + LSCO1
SCI = 5: Square Root (12800 to 64000), Clamped
Analog Input 4 to 20 mA
If Raw  12800
Conditioned = LSCO1
Otherwise,
Conditioned = (Sqrt(51200 * (Raw - 12800)) * (HSCO1 - LSCO1)/51200) +
LSCO1
SCI = 6: Square Root, Low Cutoff (0 to 64000), Clamped < 3/4%
Analog Input 0 to 20 mA
If Raw  480
Conditioned = LSCO1
Otherwise,
Conditioned = (Sqrt(64000 * Raw) * (HSCO1 - LSCO1)/ 64000) + LSCO1
SCI = 7: Square Root, Low Cutoff (12800 to 64000), Clamped < 3/4%
Analog Input 4 to 20 mA
If Raw  13184
Conditioned = LSCO1
Otherwise,
Conditioned = (Sqrt(51200 * (Raw - 12800)) * (HSCO1 - LSCO1)/51200) +
LSCO1
SCI = 8: Pulse Rate
Conditioned = Raw * MTRF * Pulse Constant
(Where Pulse Constant = 25000.0/(65535.0 * 65535.0) = 0.582094373 E-05 =
0.00000582094373)

68
2. AIN – Analog Input Block B0193AX – Rev AB

SCI = 9: Linear, Low Cutoff (1600 to 64000)


Analog Input 0 to 10 V dc
If Raw  1600
Conditioned = LSCO1
Otherwise,
Conditioned = ((Raw - 1600) * (HSCO1 - LSCO1) / 62400) + LSCO1
SCI = 10: Linear, Low Cutoff (12800 to 64000)
Analog Input 4 to 20 mA
If Raw  12800
Conditioned = LSCO1
Otherwise,
Conditioned = ((Raw - 12800) * (HSCO1 - LSCO1) / 51200) + LSCO1
SCI = 11: Square Root, Intelligent Transmitter 2 (0 to 64000)
Analog Input
Conditioned = Sqrt(Raw)
SCI = 12: Linear (14080 to 64000)
Analog Input 2 to 10 V dc
Conditioned = ((Raw - 14080) * (HSCO1 - LSCO1)/49920) + LSCO1
SCI = 13: Square Root, Low Cutoff (14080 to 64000)
Analog Input 2 to 10 V dc
If Raw  14080
Conditioned = LSCO1
Otherwise,
Conditioned = (Sqrt(49920 * (Raw - 14080)) * (HSCO1 - LSCO1)/49920)
+ LSCO1
SCI = 14: Linear (0 to 16383)
Analog Input 0 to 20 mA
Conditioned = (Raw * (HSCO1 - LSCO1)/16383) + LSCO1
SCI = 15: Square Root, Low Cutoff (1600 to 64000)
Analog Input 0 to 10 V dc
If Raw  1600
Conditioned = LSCO1
Otherwise,
Conditioned = (Sqrt(62400 * (Raw - 1600)) * (HSCO1 - LSCO1)/62400)
+ LSCO1
SCI = 50: Linear 0 to 65535 raw counts
Conditioned = ( Raw * ( HSCO1 - LSCO1 ) / 65535 ) + LSCO1
SCI = 51: Linear -32768 to 32767 raw counts
Conditioned = (( Raw + 32768 ) * ( HSCO1 - LSCO1 ) / 65535 ) + LSCO1
SCI = 52: Linear 0 to 32767 raw counts
Conditioned = ( Raw * ( HSCO1 - LSCO1 ) / 32767 ) + LSCO1
SCI = 53: Linear 0 to 1000 raw counts
Conditioned = ( Raw * ( HSCO1 - LSCO1 ) / 1000 ) + LSCO1
SCI = 54: Linear 0 to 9999 raw counts
Conditioned = ( Raw * ( HSCO1 - LSCO1 ) / 9999 ) + LSCO1

69
B0193AX – Rev AB 2. AIN – Analog Input Block

SCI = 55: Linear 0 to 2048 raw counts


Conditioned = ( Raw * ( HSCO1 - LSCO1 ) / 2048 ) + LSCO1
SCI = 56: Linear 409 to 2048 raw counts
Conditioned = (( Raw - 409 ) * ( HSCO1 - LSCO1 ) / 1639 ) + LSCO1
SCI = 57: Square root 0 to 2048 raw counts
Conditioned = ( SQRT( 2048 * Raw ) * ( HSCO1 - LSCO1 ) / 2048 ) + LSCO1
SCI = 58: Square root 409 to 2048 raw counts with low cutoff
IF raw_value <= 409
THEN
Conditioned = LSCO1;
ELSE
Conditioned = ( SQRT( 1639 * ( Raw - 409 ) ) * ( HSCO1 - LSCO1 ) / 1639 ) +
LSCO1;
SCI = 59: Linear 0 to 4095 raw counts
Conditioned = ( Raw * ( HSCO1 - LSCO1 ) / 4095 ) + LSCO1

The following applies to SCI = 50 through SCI = 59:


 m = engineering units value; n = normalized counts value
 Linear scaling of the analog inputs is also provided.

2.10.3 Thermocouple Signal Conditioning

SCI Type Material Range Curve


20 Type B Platinum-Platinum 0 to 1820°C P331-0/68 (TI 5-189a)
21 Type E Chromel-Constantan -270 to 910°C S303-0/68 (TI 5-17c)
23 Type J Iron-Constantan -210 to 1200°C S99J-0/68 (TI 5-12f )
24 Type K Chromel-Alumel -270 to 1372°C K223-0/68 (TI 5-13c)
25 Type N Nicrosil-Nisil -270 to 1300°C IPTS-68 (TI 5-19)
26 Type R Platinum-Platinum -50 to 1768°C P329-0/68 (TI 5-14d)
27 Type S Platinum-Platinum -50 to 1768°C P307-0/68 (TI 5 -15e)
28 Type T Copper-Constantan -270 to 400°C S233-0/68 (TI 5-11c)

2.10.4 RTD Signal Conditioning

SCI Type Material Range Curve


40 Copper (SAMA) Copper -70 to 150°C CR229 (TI 5H-25a)
41 Nickel (SAMA) Nickel -100 to 160°C NR-227 (SAMA) (TI 5-24a)
42 Platinum (100 Ohm Platinum 0 to 620°C PR-238 (TI 5-26a)
DIN 43760-1968)
43 Platinum (100 Ohm Platinum -200 to 620°C Foxboro® Dwg. 10104MU
IEC DIN 43760-1980) (TI 005-028)

70
2. AIN – Analog Input Block B0193AX – Rev AB

SCI Type Material Range Curve


44 Platinum (100 Ohm Platinum -200 to 600°C PR-279 (SAMA) (TI 5-27a)
SAMA)

2.11 Appendix B – Valid Input Connections


2.11.1 FBM201 through FBM242 Valid Input Connections

Hardware
201
202
203
204
205
206
207
211

212

213

217

242

237

241
Type
Point
1 I I I I I I I I I I I O O I
2 I I I I I I I I I I I O O I
3 I I I I I I I I I I I O O I
4 I I I I I I I I I I I O O I
5 I I I O O I I I I I I O O I
6 I I I O O I I I I I I O O I
7 I I I O O I I I I I I O O I
8 I I I O O I I I I I I O O I
9 C I I I I O O
10 I I I I O O
11 I I I I O O
12 I I I I O O
13 I I I I O O
14 I I I I O O
15 I I C I O O
16 I I I O O
17 I
18 I
19 I
20 I
21 I
22 I
23 I
24 I
25 I
26 I
27 I
28 I

71
B0193AX – Rev AB 2. AIN – Analog Input Block

Hardware

201
202
203
204
205
206
207
211

212

213

217

242

237

241
Type
Point
29 I
30 I
31 I
32

Legend: I = Input
O = Readback from Output
C = Thermal Compensation Channel

2.11.2 FBM01 through FBM46 Valid Input Connections

Hardware
Type 1 2 3 4 5 6 17 18 22 23 33 36 37 38 39 43 44 46
Point
1 I I I I I I I I I I I I O I I I I I
2 I I I I I I I I O I I I O I I I I I
3 I I I I I I I I I I I O I I I I I
4 I I I I I I I I I I I O I I I I I
5 I I I O O O O I I I I O I O I O O
6 I I I O O O O I I I I O I O I O O
7 I I I O O O I I I I O I O I O O
8 I I I O O O I I I I O I O I O O
9 C I C
10 I
11 I
12 I
13 I
14 I
15 I
16 I
17 I
18 I
19 I
20 I
21 I
22 I
23 I

72
2. AIN – Analog Input Block B0193AX – Rev AB

Hardware
Type 1 2 3 4 5 6 17 18 22 23 33 36 37 38 39 43 44 46
Point
24 I
25
26
27
28
29
30
31
32
33

Legend: I = Input
O = Readback from Output
C = Thermal Compensation Channel

2.11.3 Cluster I/O Valid Input Connections

Hardware
Type 57 58 59 61 63 95
Point
1 I I I O I I
2 I I I O I I
3 I I I O I I
4 I I I O I I
5 I I I O I I
6 I I I O I I
7 I I I O I I
8 I I I O I I
9 I I I O I I
10 I I I O I I
11 I I I O I I
12 I I I O I I
13 I I I O I I
14 I I I O I I
15 I I I O I I
16 I I I O I I
17 I I I I

73
B0193AX – Rev AB 2. AIN – Analog Input Block

Hardware
Type 57 58 59 61 63 95
Point
18 I I I I
19 I I I I
20 I I I I
21 I I I I
22 I I I I
23 I I I I
24 I I I I
25 I I I I
26 I I I I
27 I I I I
28 I I I I
29 I I I I
30 I I I I
31 I I I I
32 I I I I
33 C C

Legend: I = Input
O = Readback from Output
C = Thermal Compensation Channel

NOTE
Hardware Type 57 is used for FBC21.
Hardware Type 58 is used for FBC01.
Hardware Type 59 is used for FBC17.
Hardware Type 61 is used for FBC04.
Hardware Type 63 is used for FBC02.
Hardware Type 95 is used for FBC02 Redundant.

74
3. AINR – Redundant Analog Input
Block
This chapter covers the Redundant Analog Input Block, or AINR, its features, parameters and
functions, bad input and out-of-range processes, manual mode, alarming, and application
diagrams, and also provides appendixes on signal conditioning and valid input connections.

3.1 Overview
The Redundant Analog Input Block (AINR) receives an input value from a single process point
via two redundant Fieldbus Modules (FBMs) or Fieldbus Cards (FBCs) of the analog, pulse
count, or Intelligent Field Device types, or from two other blocks. Based on the quality of the two
inputs and the user specification of a default selection, one of the inputs is chosen for conversion
into suitable form for use in the I/A Series control strategy. The output value is expressed in the
appropriate engineering units. See Figure 3-1.

High/Low Scale Select BAD and OOR


Request
for Output Range 1 Option
Signal
Conditioning
Index
Fieldbus
Module Bad
Identifier
output Bad & Indicator
Redundant Linear units Out-of-
Fieldbus Range
Module Square High/
Identifier Root Processing Low Out-
output of-Range
Point oC units
Number Indicators
RTD
External Scaling/
Reference Point Point
oC Unit Clamp Filter (Engineering
Option Thermo- Selection
Conversion Units Value)
External couple
Reference
Input oC
Special
Extender
Block T.C. Alarm
Alarming
counts Indicators

Characterizer

(None)

Gain Alarm Alarm


Offset Options Limits
Figure 3-1. AINR Block Diagram

75
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

3.2 Basic Operation


The AINR block interfaces to two ECBs which store values from two FBMs or FBCs receiving
analog electrical signals, pulse inputs, or pulse rate inputs.
Each execution cycle, the AINR block reads from each ECB its FBM or FBC operational status,
and the channel status and input data for the specified point.
The AINR block then converts the raw data from each of the two channels 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. Each of the two inputs is separately converted in this fashion before the decision is made
as to which of the inputs, the primary or the secondary, is to be used, since various situations
detected only during signal conversion may result in rejection of one of the points.
This selected output is presented to the control strategy as Point (PNT). The original value as
present in the selected 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.

3.3 Features
 Redundant analog inputs from separate FBMs or FBCs
 Both redundant and non-redundant points can coexist in the same analog input FBM
or FBC. The non-redundant points are connected to AIN blocks
 Fieldbus Module option to permit configuration of AINR blocks without FBM or
FBC connections (inputs from two other blocks instead of from hardware)
 User selection of primary or secondary input, with automatic switchover if the
selected input is bad
 Processing of Pulse Rate and Pulse Count inputs
 Acceptance of Hydrostatic Tank Gauge (HTG), Intelligent Field Device (IFD), and
Coriolis inputs
 Connectability to Intelligent Field Device Window ECBs
 Choice of Linear/Square Root, Thermocouple, RTD, or specially characterized signal
conditioning
 External or FBM- or FBC-based temperature reference for thermocouple cold junc-
tion compensation
 Optional characterizer block (CHARC) extension
 Output gain and offset scaling
 Output clamping between user-selectable output limits
 First order, second order, or two-sample-average filtering
 Manual mode availability for disconnecting control schemes from the process, for
simulation and checkout purposes
 Raw Count output availability, for the selected point, used for troubleshooting pur-
poses; includes floating point values from HTG, IFD, and Coriolis inputs
 Optional Last Good Value output retention on I/O failure

76
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

 Error propagation option


 Separate Bad point alarming for primary and secondary inputs when Bad alarm
option true
 Out-of-Range conditions (and alarms generated if Out-of-Range alarm option is true)
when either point is out-of-range
 High/Low Absolute alarm options, applicable to the selected point
 High-High and Low-Low Absolute alarm options, applicable to the selected point
 Alarming in Manual option
 Deviation limit detection between primary and secondary points.

3.4 Parameters
Table 3-1. AINR Block Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set blank 1 to 12 chars
TYPE block type integer no-con/no-set 70 AINR
DESCRP descriptor string no-con/no-set blank 1 to 32 chars
PERIOD block sample time short no-con/no-set 1 0 to 13
PHASE block execute phase integer no-con/no-set 0 ---
LOOPID loop identifier string no-con/set blank 1 to 32 chars
IOMOPT FBM input option short no-con/no-set 1 0 to 2
IOM_ID FBM identifier string no-con/no-set blank ---
IOMIDR redundant FBM id string no-con/no-set blank ---
DEVLIM deviation limit real no-con/no-set -1 RO1
PNT_NO FBM point number string no-con/no-set 1 1 to 32
SCI signal condition index short no-con/no-set 0 0-15, 20-28, 40-44,
and 50-59
HSCO1 high scale, output 1 real no-con/no-set 100.0 specifiable
LSCO1 low scale, output 1 real no-con/no-set 0.0 specifiable
DELTO1 change delta, output 1 real no-con/no-set 1.0 percent
EO1 eng units, output 1 string no-con/no-set % specifiable
OSV output span variance real no-con/no-set 2.0 [0..25]percent
EXTBLK extender block long con/set 0 ---
MA manual/auto boolean con/set 0 0 to 1
INITMA initialize MA short no-con/no-set 1 0 to 2
BADOPT BAD/oor option short no-con/no-set 3 0 to 7
LASTGV last good value boolean no-con/no-set 1 0 to 1
INHOPT inhibit option short no-con/no-set 0 0 to 3
INHIB alarm inhibit boolean con/set 0 0 to 1
INHALM inhibit alarm pack_b con/set 0 0 to 0xFFFF
MANALM manual alarm option short no-con/no-set 0 0 to 1
MTRF meter factor real no-con/set 1.0 flow rate/Hz

77
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

Table 3-1. AINR Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


FLOP filter option short no-con/no-set 0 0 to 3
FTIM filter time constant real con/set 0.0 [0..]minutes
XREFIN external reference input real con/set 0.0 deg. Celsius
XREFOP external reference option boolean no-con/no-set 0 0 to 1
KSCALE gain scaler real con/set 1.0 scalar
BSCALE bias scale factor real con/set 0.0 output units
BAO bad alarm option boolean no-con/no-set 0 0 to 2
BAT bad alarm text string no-con/no-set blank 1 to 32 chars
BAP bad alarm priority integer con/set 5 1 to 5
BAG bad alarm group short no-con/set 1 1 to 8
ORAO out of range alarm option boolean no-con/no-set 0 0 to 1
ORAT out of range text string no-con/no-set blank 1 to 32 chars
ORAP out of range priority integer con/set 5 1 to 5
ORAG out of range group short no-con/set 1 1 to 8
HLOP high/low alarm option short no-con/no-set 0 0 to 3
ANM alarm name point 1 string no-con/no-set blank 1 to 12 chars
HAL high alarm limit real con/set 100.0 RO1
HAT high alarm text string no-con/no-set blank 1 to 32 chars
LAL low alarm limit real con/set 0.0 RO1
LAT low alarm text string no-con/no-set blank 1 to 32 chars
HLDB high/low alarm deadband real no-con/set 0.0 RO1
HLPR high/low priority integer con/set 5 1 to 5
HLGP high alarm group short no-con/set 1 1 to 8
HHAOPT high-high alarm option short no-con/no-set 0 0 to 3
HHALIM high-high alarm limit real con/set 100.0 RO1
HHATXT high-high alarm text string no-con/no-set blank 1 to 32 chars
LLALIM low-low alarm limit real con/set 0.0 RO1
LLATXT low-low alarm text string no-con/no-set blank 1 to 32 chars
HHAPRI high-high alarm priority integer con/set 5 1 to 5
HHAGRP high-high alarm group short no-con/set 1 1 to 8
PROPT propagate error option boolean no-con/no-set 0 0 to 1
SELREQ primary or secondary boolean con/set 0 0 to 1
MEAS_P primary meas real con/set 0.0 ---
MEAS_S secondary meas real con/set 0.0 ---
MEAS process input real con/set 0.0 ---
AMRTIN alarm regeneration timer integer no-con/no-set 0 0 to 32767 s
NASTDB alarm deadband timer long integer no-con/no-set 0 0-2147483647 ms
NASOPT nuisance alarm suppression short no-con/no-set 0 0 to 2
option
Non-Configurable Parameters
OUTPUTS
ALMSTA alarm status pack_l con/no-set 0 bit map
BAD bad I/O status boolean con/no-set 0 0 to 1
BLKSTA block status pack_l con/no-set 0 bit map
CRIT alarm criticality integer con/no-set 0 0 to 5

78
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

Table 3-1. AINR Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


HAI high alarm indicator boolean con/no-set 0 0 to 1
HHAIND high-high alarm indicator boolean con/no-set 0 0 to 1
HOR high out-of-range boolean con/no-set 0 0 to 1
INHSTA inhibit status pack_l con/no-set 0 bit map
LAI low alarm indicator boolean con/no-set 0 0 to 1
LLAIND low-low alarm indicator boolean con/no-set 0 0 to 1
LOR low out-of-range boolean con/no-set 0 0 to 1
PNT point output real con/no-set 0.0 RO1
PRTYPE priority type integer con/no-set 0 0 to 10
QALSTA quality status pack_l con/no-set 0 0 to 0xFFFFFFFF
RAWC raw counts real con/no-set 0.0 0 to 65535
UNACK unacknowledge alarm boolean con/no-set 0 0 to 1
ZERROP out of range error boolean con/no-set 0 0 to 1
DATA STORES
ACHNGE alternate change integer con/no-set 0 -32768 to 32767
ALMOPT alarm options pack_l no-con/no-set 0 0 to 0xFFFFFFFF
DEFINE no config errors boolean no-con/no-set 1 0 to 1
DEV_ID FBM letterbug char[6] no-con/no-set blank 6 chars
DEVIDR redundant FBM letterbug char[6] no-con/no-set blank 6 chars
ERCODE configuration error string no-con/no-set 0 1 to 43 chars
LOCKID lock identifier string no-con/no-set blank 8 to 13 chars
LOCKRQ lock request boolean no-con/set 0 0 to 1
OWNER owner name string no-con/set blank 1 to 32 chars
PERTIM period time real no-con/no-set 0.1 seconds
RO1 output range real[3] no-con/no-set 100,0,1 specifiable

3.4.1 Parameter Definitions


ACHNGE Alternate Change is an integer output which is incremented each time a
block parameter is changed via a Set command.

ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use.
For the AINR block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

79
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

Bit Number1 Configured Alarm Option


(0 to 31) When True
0 (Least Alarm Group 8 in Use
Significant)
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use
16 Low Absolute Alarm Configured
17 High Absolute Alarm
Configured
22 Bad I/O Alarm Configured
24 Low-Low Absolute Alarm
Configured
25 High-High Absolute Alarm
Configured
28 Out-of-Range Alarm Configured
1.
Bit 0 is the least significant, low order bit.

ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the AINR block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
OOR B4
B5
B6
B7
B8
B9

CRIT PRTYPE
HMA
HHA

LMA
BAD
LLA
INH

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: See parameter
(Least PRTYPE for values used in
Significant) the AINR block
5 to 7 CRIT_MSK Criticality; 5 = lowest prior-
ity, 1= highest priority
16 LMA Low Absolute Alarm ALMSTA.B16
17 HMA High Absolute Alarm ALMSTA.B15
22 BAD Bad I/O Alarm for both Pri- ALMSTA.B10
mary and Secondary
24 LLA Low-Low Absolute Alarm ALMSTA.B8

80
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
25 HHA High-High Absolute Alarm ALMSTA.B7
28 OOR Out-of-Range Alarm ALMSTA.B4
29 INH Inhibit Alarm (see Note) ALMSTA.B3
30 UNACK Unacknowledged ALMSTA.B2

* Bit 0 is the least significant, low order bit.

NOTE
Bit 29 is unused if no alarms are configured for the AINR block; that is, if the
disable alarm state is selected from the block detail display, Bit 29 is not set unless
an alarm is configured for that block.

AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is gen-
erated.

ANM Alarm Name is a user-defined string of up to 12 characters that identifies


the input point as the source of the alarm in the alarm messages. It serves
as a point descriptor label.

BAD Bad is a boolean output parameter which is set true when both of the
inputs to the block have Bad status. In this case, both the Bad Primary
(BLKSTA.BAD) and the Bad Secondary (BLKSTA.BADR) bits are set
true.

BADOPT Bad and Out-of-Range Option is a short integer option that specifies the
conditions that set the final Bad status true for each of the input points.
Values:
0 = Bad Status (PNT.BAD) only
1 = Bad Status (PNT.BAD) or Low Out-of-Range (LOR)
2 = Bad Status (PNT.BAD) or High Out-of-Range (HOR)
3 = Bad Status (PNT.BAD) or LOR or HOR.
4 = Bad Status (PNT.BAD) when a scalar input (KSCALE or BSCALE) is
not healthy (i.e., value status is BAD, OOS, or has a broken OM connec-
tion)
5 = Bad Status (PNT.BAD) or one of the following is unhealthy: LOR or
KSCALE or BSCALE
6 = Bad Status (PNT.BAD) or one of the following is unhealthy: HOR or
KSCALE or BSCALE
7 = Bad Status (PNT.BAD) or one of the following is unhealthy: LOR or
HOR or KSCALE or BSCALE

81
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

The default value is 3. Bad Status in the above table is a Logical OR of bad
ECB status (that is, the FBM or FBC itself is bad) and bad channel status
(that is, the connected point is bad). If there is no FBM or FBC connec-
tion, then Bad Status in the above table is considered to exist when
MEAS_P (for the primary side) or MEAS_S (for the secondary side) is
linked and has bad status.

BAG Bad Alarm Group is a short integer input that directs Bad alarm messages
to one of eight groups of alarm devices. You can change the group number
through the workstation.

BAO Bad Alarm Option is a configurable option that enables alarm generation
for each state change of the BAD parameter. The parameter values are:
0= No generation of Bad alarms.
1= Bad alarm generation if the FBM or FBC has Bad
status.
2= Bad alarm generation in the measurement (MEAS or
OUTPUT parameter) of a PID block family,
RATIO block, or BIAS block when the MEAS or
OUT parameter is connected to the AINR block.

BAP Bad Alarm Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the Bad alarms (1 is the highest priority).

BAT Bad Alarm Text is a user-configurable text string of up to 32 characters,


sent with a bad alarm message to identify it.

BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the AINR block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
FBMR B23
B24
B25
B26
B27
B28
B29
B30
BADR B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

FBM
BAD

DEV

SEL
ON

MA

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
0 SEL Redundant Input Selected (Pri- BLKSTA.B32
mary Input Selected when
False)
1 BADR Bad Secondary I/O BLKSTA.B31
2 DEV Primary/Secondary Deviation BLKSTA.B30
Limit Exceeded

82
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
8 FBM Primary FBM or FBC Failure BLKSTA.B24
9 FBMR Secondary FBM or FBC Failure BLKSTA.B23
11 MA Manual = 0, Auto = 1 BLKSTA.B21
12 BAD Bad Primary I/O BLKSTA.B20
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
20 WLCK Access Locked BLKSTA.B12

* Bit 0 is the least significant, low order bit.

BSCALE Offset Scale is a real input which is used as the offset factor, in output
units, applied to the conditioned signal to rescale it for compatibility with
the output units. It is usually used to convert from Celsius to Fahrenheit
scales.

CRIT Criticality is an integer output that indicates the priority, ranging from
1 to 5, of the block’s highest currently active alarm (1 is the highest prior-
ity). An output of zero indicates the absence of alarms.

DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. (See ERCODE for the list of all possible validation errors in this
block.) In that case, no further processing of the block occurs, including
further validation of remaining parameters. To return DEFINE to a true
value, correct all configuration errors and re-install the block. If DEFINE
= 0, the bit BLKSTA.UDEF = 1.

DELTO1 Change delta for Output Range 1 is a configurable real value that defines
the minimum percent of the output range that triggers change-driven
connections for parameters in the range RO1. The default value is 1.0 per-
cent. If communication is within the same control station that contains
the block’s compound, DELTO1 has no effect.

DESCRP Description is a user-defined string of up to 32 characters that describes


the block’s function (for example, “PLT 3 FURNACE 2 HEATER CON-
TROL”).

DEVIDR Redundant Device Identifier is a character array data store that indicates
the 6-character letterbug of the secondary connected FBM or FBC. In the
case of IFD inputs, DEVIDR contains the letterbug of the secondary par-
ent FBM (18, 43, 39, 44, or 46) to which the instrument interfaces.

83
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

DEVLIM Deviation Limit is the limit, in engineering units, of the deviation


between the primary and secondary measurements. When this limit is
exceeded, bit 2 of BLKSTA (BLKSTA.DEV) is set true.

DEV_ID Device Identifier is a character array data store that indicates the 6-charac-
ter letterbug of the primary connected FBM or FBC. In the case of IFD
inputs, DEV_ID contains the letterbug of the primary parent FBM (18,
43, 39, 44, or 46) to which the instrument interfaces.

EO1 Engineering Units for Output Range 1 provides the engineering units text
for the values defined for the output 1 range. The value configured for this
text string should be consistent with the values used for HSCO1 and
LSCO1.

ERCODE Error Code is a string data store which indicates the type of configuration
error which caused the block’s DEFINE parameter to be set false. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. For the AINR block, the following list specifies
the possible values of ERCODE, and the significance of each value in this
block:
ERCODE Description
W44 HSCO1 less than LSCO1)
W48 FLOP or BADOPT out of range
W49 Invalid CHARC block extension
W50 Invalid SCI
W51 Cluster I/O specified but type is not analog input or ana-
log output. Value 51 also used to indicate any mismatch
between hardware or software types of the primary and
secondary points.
W52 PNT_NO out of range for the specified FBMs or FBCs
W54 Specified IOM_ID or IOMIDR does not exist

EXTBLK Extender Block is a long input that specifies the pathname to the
BLKSTA parameter of a CHARC block used as an extender block.
The CHARC block must be in the same CP and compound as the
AINR block.

FLOP Filter Option is an option parameter that specifies the type of filtering that
is applied to the selected input signal before it is set into the PNT output.
FLOP has the following values:
0 = No Filtering
1 = First Order Lag Filtering
2 = Butterworth Filtering
3 = Two-Sample-Average Filtering

84
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

FTIM Filter Time is an input that represents the time in minutes for the output
value to reach a certain percentage of its ultimate value after a step change
to the input. For first order lag filtering this percentage is approximately
63 percent, and for Butterworth filtering it is approximately 50 percent.
FTIM is not applicable to two-sample-average filtering.

HAI High Absolute Alarm Indicator is a boolean output that is true whenever
the value of PNT (the selected point) is greater than the value of HAL and
option HLOP is set to 1 or 2.

HAL High Absolute Alarm Limit is a real input that defines the value of the
PNT output (the selected point) that triggers a High Absolute Alarm.

HAT High Absolute Alarm Text is a user-defined text string of up to


32 characters, sent with the high absolute alarm message to identify it.

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 Absolute Alarm Indicator is a boolean output that is true


whenever the value of PNT (the selected point) is greater than the value of
HHALIM and option HHAOPT is set to 1 or 2.

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.

HHAOPT High-High Absolute Alarm Option is a configured short integer input


that enables High-High Absolute and/or Low-Low Absolute alarming of
the PNT output (the selected point), or disables this type of alarming alto-
gether. Values:
0 = No Alarming
1 = High-High and Low-Low Absolute Alarming
2 = High-High Absolute Alarming Only
3 = Low-Low Absolute Alarming Only

HHAPRI High-High Absolute Alarm Priority is an integer input, ranging from


1 to 5, that sets the priority level of the high-high alarm (1 is the highest
priority).

HHATXT High-High Absolute Alarm Text is a user-defined text string of up to


32 characters, sent with the high-high absolute alarm message to identify
it.

HLDB High/Low Deadband is a real input that defines the size of the deadband
that applies to the high, low, high-high and low-low absolute alarm limits
of the PNT output (the selected point).

85
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

HLGP High/Low Group is a short integer input that directs High/Low Absolute
alarm messages to one of eight groups of alarm devices.

HLOP High/Low Option is a configured short integer input that enables Abso-
lute High and/or Low alarming of the PNT output (the selected point), or
disables absolute alarming altogether. Values:
0 = No Alarming
1 = High and Low Absolute Alarming
2 = High Absolute Alarming Only
3 = Low Absolute Alarming Only

HLPR High/Low Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the High/Low Absolute alarm (1 is the highest priority).

HOR High Out-of-Range is a boolean output that is set true if any one of the
seven high out-of-range conditions described in Section 3.6.2 (Out-of-
Range Conditions) occurs for either the primary point, the secondary
point, or both.

HSCO1 High Scale for Output Range 1 is a real value that defines the upper range
value for the block’s output.

INHALM Inhibit Alarm contains packed boolean values that represent alarm genera-
tion inhibit requests for each type of alarm configured in the block. For
the AINR block, only the following bits are used:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10

B11

B12

B13

B14

B15

B16
B1

B2

B3

B4

B5

B6

B7

B8

B9

Boolean
Bit Number* Connection
(0 to 15) Description When True (B16 to B1)
0 (Least Inhibit Low Absolute Alarm INHALM.B16
Significant)
1 Inhibit High Absolute INHALM.B15
Alarm
6 Inhibit Bad I/O Alarm INHALM.B10
8 Inhibit Low-Low Absolute INHALM.B8
Alarm
9 Inhibit High-High Abso- INHALM.B7
lute Alarm
12 Inhibit Out-of-Range Alarm INHALM.B4

* Bit 0 is the least significant, low order bit.


There are no mnemonic names for the individual bits of INHALM.

86
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting. Alarms can also be inhibited based on INHALM and the com-
pound parameter CINHIB.

INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do not
disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the time
the alarm transitions into the inhibited state, clear the alarm
indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages may be acknowledged by explicitly setting
UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages may be acknowledged by explicitly setting
UNACK false.

INHSTA Inhibit Status contains packed long values that represent the current
inhibit status of each alarm type configured in the block. For the AINR
block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BAD B10
B11
B12
B13
B14
HMA B15
LMA B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
OOR B4
B5
B6
HHA B7
LLA B8
B9

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
16 LMA Low Absolute Alarm Inhibited INHSTA.B16
17 HMA High Absolute Alarm Inhibited INHSTA.B15
22 BAD Bad I/O Alarm Inhibited INHSTA.B10
24 LLA Low-Low Absolute Alarm INHSTA.B8
Inhibited
25 HHA High-High Absolute Alarm INHSTA.B7
Inhibited
28 OOR Out-of-Range Alarm Inhibited INHSTA.B4

* Bit 0 is the least significant, low order bit.

87
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state as specified in the checkpoint file.
The block asserts this initial M/A state whenever:
 It is installed into the Control Processor database.
 The Control Processor undergoes a reboot operation.
 The compound in which it resides is turned on.
 The INITMA parameter itself is modified via the control configu-
rator. (The block does not assert INITMA on ordinary
reconfiguration.)
INITMA is ignored if MA has an established linkage.

IOMIDR Redundant Fieldbus Module Identifier is a configurable string that speci-


fies pathname of the ECB for the secondary 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, and, if not, whether signal conditioning is to be
applied to the alternate sources of the block input. Values:
0= The AINR block obtains input values from the MEAS_P and
MEAS_S parameters and conditions them as specified by the
value of SCI.
1= The block obtains input values from the FBM or FBC input
points specified by IOM_ID, IOMIDR, and PNT_NO.
2= The block obtains input values from the MEAS_P and MEAS_S
parameters. No signal conditioning is performed. The inputs are
subjected only to scaling for units conversion (via KSCALE and
BSCALE), clamping using the configured HSCO1, LSCO1,
and OSV parameters, and filtering, in that order.

IOM_ID Fieldbus Module Identifier is a configurable string that specifies the path-
name of the ECB for the primary FBM or FBC to which the block is con-
nected.
IOM_ID has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB. For
IFD inputs, this is the letterbug of the primary parent FBM (18, 43, 39,
44, or 46), not the connected transmitter.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOM_ID configuration. In this case, the 1-12
character ECB block name is sufficient. For IFD inputs, the NAME

88
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

parameter of the primary parent ECB (12, 23, or 38R), not the child ECB
18, must be used.

KSCALE Gain Scale is a real input which is used as the gain factor applied to the
conditioned signal to rescale it for compatibility with the output units.
KSCALE and BSCALE are always applied after any signal conditioning or
characterization of the raw input. It is usually used to convert from Celsius
to Fahrenheit scales.

LAI Low Absolute Alarm Indicator is a boolean output that is true whenever
the value of PNT (the selected point) is less than the value of LAL and
option HLOP is set to 1 or 3.

LAL Low Absolute Alarm Limit is a real input that defines the value of the
PNT output (the selected point) that triggers a Low Absolute Alarm.

LASTGV Last Good Value is a boolean option. When true in the situations
described in Section 3.6.4, LASTGV causes the previous value of the
input side (primary or secondary) to be retained, and the value obtained
this cycle to be ignored.

LAT Low Absolute Alarm Text is a user-defined text string of up to


32 characters, sent with the low absolute alarm message to identify it.

LLAIND Low_Low Absolute Alarm Indicator is a boolean output that is true when-
ever the value of PNT (the selected point) is less than the value of
LLALIM and option HHAOPT is set to 1 or 3.

LLALIM Low-Low Absolute Alarm Limit is a real input that defines the value of the
PNT output (the selected point) that triggers a Low-Low Absolute Alarm.

LLATXT Low-Low Absolute Alarm Text is a user-defined text string of up to 32


characters, sent with the low-low absolute alarm message to identify it.

LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1-6 character logi-
cal device name of the Display Manager task.

LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are only honored (subject to the usual access rules) from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set false by any workstation at any time, whereupon a
new LOCKRQ is accepted, and a new ownership workstation identifier
written to LOCKID.

89
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

LOOPID Loop Identifier is a configurable string of up to 32 characters which iden-


tifies the loop or process with which the block is associated. It is displayed
on the detail display of the block, immediately below the faceplate.

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.

MA Manual/Auto is a boolean input that controls the block’s operating state (0


= false = Manual; 1 = true = Auto). When in Manual, the output PNT is
only updated manually, and not otherwise. It is released and can be set by
you or an external program. When IOMOPT =0 or 2 (indicating that
there are no connected FBMs or FBCs) the output value of PNT is copied
at all times (Auto or Manual) to the MEAS parameter. Alarming in Man-
ual is dependent on the value of MANALM.

MANALM Manual Alarm Option is a configurable input which enables or disables


configured alarm options to function in Manual mode. Normally alarms
are processed only in the Auto mode. For the AINR block, the value of 0
indicates no alarming in Manual, and the value of 1 indicates full alarming
in Manual.

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.

MEAS_P Primary Measurement contains the conditioned/converted value of the


measurement signal from the primary FBM or FBC. In simulation mode,
that is, when IOMOPT is 0 or 2, it is linked to the output of another
block which provides the primary input.

MEAS_S Secondary Measurement contains the conditioned/converted value of the


measurement signal from the secondary FBM or FBC. In simulation
mode, that is, when IOMOPT is 0 or 2, it is linked to the output of
another block which provides the secondary input.

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.

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

90
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

NASOPT Alarm Suppression Option is a configurable, non-settable short integer


that specifies how the nuisance alarm delay is implemented:
 0 = Suppress nuisance alarms by delaying the Return-to-Normal
(default) by the length of time specified in NASTDB
 1 = Suppress nuisance alarms by delaying alarm detection by the
length of time specified in NASTDB
 2 = Suppress nuisance alarms by delaying both the Alarm Detec-
tion and the Return-to-Normal by the length of time specified in
NASTDB

NASTDB Alarm Deadband Timer is a configurable long integer. Depending on the


value of NASOPT, it either specifies the deadband time interval that must
elapse before an alarm condition is allowed to return to normal, or the
length of a delay-on timer which specifies the amount of time between an
alarm’s detection and the announcement of the alarm. The parameter
value ranges from zero (default, no delay) to 2147483647 ms.

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.

ORAO Out-of-Range Alarm Option is a configurable boolean which, when con-


figured true, enables an alarm for each change of the out-of-range status of
the block. The block has out-of-range status if either the HOR or the
LOR parameter is true.

ORAP Out-of-Range Alarm Priority is an integer input, ranging from 1 to 5, that


sets the priority level of the out-of-range alarm (1 is the highest priority).

ORAT Out-of-Range Alarm Text is a user-configurable text string of up to


32 characters, sent with the out-of-range alarm message to identify it.

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.

OWNER Owner is a string of up to 32 ASCII characters which are used to allocate


control blocks to applications. Attempts to set Owner are successful only
if the present value of Owner is the null string, an all-blank string, or iden-
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.

PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following

91
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)
Period Length Period Length
0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****

* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.

PERTIM Period Time is the period of the block expressed in seconds.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).

PNT Point is the block output. It represents the selected analog input after all
block operations have been performed.

PNT_NO Point Number is the FBM or FBC points to which the AINR block is
connected. In the case of IFD inputs, the value of PNT_NO is the same
as the CHAN parameter of the children ECB18s if the desired input is the
primary measurement of the instrument. If the first or second auxiliary
measurement is desired, see Section 3.5.2.6 to determine the required
value of PNT_NO.

PROPT Propagate Error Option is a boolean input which determines whether the
status of the selected input should be reflected in the Error bit of PNT sta-
tus. If the AINR block is in Auto and no FBM or FBC is configured
(IOMOPT = 0 or 2), the true value of PROPT causes any one of the fol-
lowing conditions to be reflected as an Error status of PNT:
 Bad status bit in both MEAS_P and MEAS_S

92
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

 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.

93
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

QALSTA Quality Status parameter (QALSTA) is a non-configurable packed long


that provides a combination of value record status, block status (BLK-
STA), and alarm status (ALMSTA) information in a single connectable
output parameter. Available bits for this block are provided below.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

Bit Boolean Connection


Number1 Definition Contents (B32 to B1)
30 Alarms Unacknowledged ALMSTA.UNA QALSTA.B2
29 Alarms Inhibited ALMSTA.INH QALSTA.B3
28 Out-of-Range Alarm ALMSTA.OOR QALSTA.B4
25 High-High Absolute Alarm ALMSTA.HHA QALSTA.B7
24 Low-Low Absolute Alarm ALMSTA.LLA QALSTA.B8
22 Bad Alarm2 ALMSTA.IOBD QALSTA.B10
17 High Absolute Alarm ALMSTA.HMA QALSTA.B15
16 Low Absolute Alarm ALMSTA.LMA QALSTA.B16
14 Bad Secondary FBM BLKSTA.FBM2 QALSTA.B18
13 Bad Primary FBM BLKSTA.FBM1 QALSTA.B19
11 Bad Secondary Point BLKSTA.BAD2 QALSTA.B21
10 Bad Primary Point BLKSTA.BAD1 QALSTA.B22
7 Primary Deviation BLKSTA.DEVN QALSTA.B25
5 Manual BLKSTA.MA QALSTA.B27
4 Low Limited PNT.LLO status QALSTA.B28
3 High Limited PNT.LHI status QALSTA.B29
2 Uncertain PNT.ERR status QALSTA.B30
1 Out-of-Service PNT.OOS status QALSTA.B31
0 Bad PNT.BAD status QALSTA.B32
1. Bit 0 is the least significant, low order bit.
2.
This bit records the status of the primary input (PNT). This status is the inverse of
the Manual/Auto (MA) status bit in BLKSTA. This bit is not available for I/A Series
software earlier than v8.0.

RAWC Raw Count is the value read from the ECB into the block before any form
of signal conditioning, characterization, scaling, clamping or filtering is
applied. It is of real data type although the ECB value may be integer, or
long integer.

94
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

RO1 Range Output 1 is a real array consisting of the three parameters HSCO1,
LSCO1, and DELTO1. The array members are configured by their indi-
vidual names; however, RO1 and its members may be accessed on an array
basis by user tasks and displays.

SCI Signal Conditioning Index is an indexed input parameter that determines


how the selected raw count input is conditioned. It is an alternate to char-
acterization and a predecessor to scaling, clamping, and filtering. (See
“Appendix A – Signal Conditioning Tables” on page 118.)

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.

XREFOP External Reference Option is a boolean input. When true, XREFOP


selects an external temperature measurement source, XREFIN, to be used
for thermocouple cold junction compensation. If XREFOP is false, the
FBM’s internal ninth channel (or the FBC’s internal thirty-third channel)
is used. XREFOP is configurable only.

ZERROP Zero Error Point is a status bit that indicates an out-of-range error (LOL
or LOR) in a DOWNSTREAM parameter (PNT.ERR) and also to indi-
cate an unconditional request for initialization in an UPSTREAM param-
eter (BCALCO.INITU). Normally, these usages are mutually exclusive
and there is no conflict. However, in some control applications where a
DOWNSTREAM parameter is used as part of an UPSTREAM connec-
tion, a High Out-of-Range (HOR) or Low Out-of-Range (LOR) condi-
tion can be misinterpreted as an unconditional initialization (INITU)
request. ZERROP is not configurable. To disable the setting of PNT.ERR
when out-of-range, you must use OMSET, OMA, or some other utility to
set ZERROP = 1.

95
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

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.

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

Figure 3-2. AINR Block Operational Diagram

96
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

3.5.2 Input And Signal Conditioning


3.5.2.1 General Analog Input: 0 to 20 mA or 0 to 10 V dc

INPUTS FROM TWO FBM01s (General Analog Inputs)

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:

FBM ECB Functional Description Electrical Type Valid Points


FBM201 ECB1 8 Analog In 0 to 20 mA Points 1 to 8
FBM204 ECB2 4 Analog In, 4 Analog Out 0 to 20 mA Points 1 to 8
FBM205 ECB2 As FBM204, Redundant 0 to 20 mA Points 1 to 8
FBM211 ECB1 16 Analog In 0 to 20 mA Points 1 to 16
FBM01 ECB1 8 Analog In 0 to 20 mA Points 1 to 8
FBM04 ECB2 4 Analog In, 4 Analog Out 0 to 20 mA Points 1 to 8
FBM05 ECB2 As FBM04, Redundant 0 to 20 mA Points 1 to 8
FBM06 ECB4 4 Pulse Rate In, 4 Analog Out 0 to 20 mA Points 5 to 8

97
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

FBM ECB Functional Description Electrical Type Valid Points


FBM17 ECB9, 4 Analog In, 2 Analog Out, 0 to 10 V dc Points 1 to 6
33 to 36 4 Digital In, 4 Digital Out
FBM39 ECB23 4 IFD In, 4 Analog Out 0 to 20 mA Points 5 to 8
FBM44 ECB23 As FBM39, Dual Baud Rate 0 to 20 mA Points 5 to 8
FBM46 ECB38R As FBM44, Redundant 0 to 20 mA Points 5 to 8
FBC21 ECB41 16 Analog In 0 to 20 mA Points 1 to 16
FBC01 ECB41 32 Analog In 0 to 20 mA Points 1 to 32
FBC17 ECB41 32 Analog In 0 to 10 V dc Points 1 to 32
FBC04 ECB43 16 Analog Out 0 to 20 mA Points 1 to 16

The following points in the above table are physical outputs rather than physical inputs. You can
use the readback values from these points as inputs to the AINR block:

FBM204: Points 5 to 8
FBM205: Points 5 to 8
FBM237: Points 1 to 8
FBM04: Points 5 to 8
FBM05: Points 5 to 8
FBM06: Points 5 to 8
FBM17: Points 5 to 6
FBM37 Points 1 to 8
FBM39: Points 5 to 8
FBM44: Points 5 to 8
FBM46: Points 5 to 8
FBC04: Points 1 to 16

If FBM Option (IOMOPT) is not set to 1, then IOM_ID, IOMIDR, and PNT_NO are
ignored. The input is taken from another block or blocks, as described in Section 3.5.2.7. General
analog inputs are converted by the FBM or FBC from the electrical process input into a form
called “raw count”, which is an integer value between 0 and 64000. Based on the Signal Condi-
tioning Index (SCI) and the parameter Extender Block (EXTBLK) setting, a determination is
made as to how the raw count is to be conditioned.
If you wish the raw count to be characterized by a CHARC block, you should link the Extender
Block (EXTBLK) parameter of the AINR block to a CHARC block, and set the Extender Block
Option (EXTOPT) of that CHARC block to 1. The raw count is then characterized as described
below, and the value of SCI is ignored. The characterizer output should be expressed in counts,
with full scale equal to 64000.

98
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

If you wish to apply linear or square root signal conditioning to the raw count, you should set SCI
to one of the following values:

SCI = 0: No linearization; output = input


SCI = 1: Linear (0 – 64000). Analog Input 0 to 20 mA
SCI = 2: Linear (1600 – 64000). Analog Input 0 to 10 V dc
SCI = 3: Linear (12800 – 64000). Analog Input 4 to 20 mA
SCI = 4: Square root (0 – 64000). Analog Input 0 to 20 mA
SCI = 5: Square root (12800 – 64000), clamped. Analog Input 4 to 20 mA
SCI = 6: Square root, low cutoff (0 – 64000), clamp < 3/4%. Analog Input 0 to 20 mA
SCI = 7: Square root, low cutoff (12800 – 64000), clamp < 3/4%. Analog Input 4 to 20 mA
SCI = 9: Linear, low cutoff (1600 – 64000). Analog Input 0 to 10 V dc
SCI = 10: Linear, low cutoff (12800 – 64000). Analog Input 4 to 20 mA
SCI = 11 Square root, Intelligent Transmitter 2 (0 to 64000)
SCI = 12: Linear (14080 – 64000). Analog Input 2 to 10 V dc
SCI = 13: Square root, low cutoff (14080 – 64000). Analog Input 2 to 10 V dc
SCI = 14 Linear (0 to 16383)
SCI = 15 Square root, low cutoff (1600 to 64000)
SCI = 50: Linear (0 to 65535)
SCI = 51: Linear (-32768 to 32767)
SCI = 52: Linear (0 to 32767)
SCI = 53: Linear (0 to 1000)
SCI = 54: Linear (0 to 999)
SCI = 55: Linear (0 to 2048)
SCI = 56: Linear (409 to 2048)
SCI = 57: Square Root (0 to 2048)
SCI = 58: Square Root (409 to 2048)
SCI = 59: Linear (0 to 4095)

Linear/Square Root Signal Conversion


Key Parameters: SCI, HSCO1, LSCO1, OSV
(See the definitions of the linear and square root SCI conversions in “Appendix A – Signal Condi-
tioning Tables” on page 118.)
Each linear SCI has an associated input span, consisting of the difference between the upper and
lower range values of the raw value. For example, SCI = 2 has an input span of 64000 minus
1600, or 62400, as shown in “Appendix A – Signal Conditioning Tables” on page 118. The upper
range value is always 64000 for any SCI, and the lower range value, which varies from one SCI to
another, is referred to as the raw low for the SCI.
The block also has an output span, which is the difference between the configured parameters
High Scale for Output 1 Range (HSCO1) and Low Scale for Output 1 Range (LSCO1).

99
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

If the raw value is greater than or equal to:


64000.0 + Output Span Variance (OSV)/100.0 * (the input span of this SCI)
for either the primary or the secondary input (or both), then High Out-of-Range (HOR) is set.
Based on the two parameters Bad and Out-of-Range Option (BADOPT) and Last Good Value
(LASTGV), the value is either used or ignored, as described in detail in Section 3.6.
Similarly, if the raw value is less than or equal to:
(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 118.
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.

3.5.2.2 Thermocouple Input

INPUTS FROM TWO FBM02/36s (Thermocouple Inputs)

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

Figure 3-4. Thermocouple Input Example

100
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

The following FBMs or FBCs and point numbers provide thermocouple inputs:

FBM ECB Functional Description Electrical Type Valid Points


FBM202 ECB1 8 Analog In mV Points 1 to 8
FBM212 ECB1 14 Analog In mV Points 1 to 14
FBM02 ECB1 8 Analog In mV Points 1 to 8
FBC02 ECB41 32 Analog In mV Points 1 to 32
FBC02 ECB41 32 Analog In, Redundant mV Points 1 to 32
Redundant
FBM36 ECB1 8 Analog In mV Points 1 to 8

If IOMOPT is not set to 1, then IOM_ID, IOMIDR, and PNT_NO are ignored. The input is
taken from another block or blocks, as described in Section 3.5.2.7.
A temperature input read from a thermocouple must be linearized before it can be used. The tem-
perature value must also be compensated for the thermocouple’s cold junction temperature. This
value may be obtained from Point 9 (FBM202, FBM02, or FBM36), Point 15 (FBM212), or
Point 33 (FBC02), or it can be provided directly as a temperature value by setting XREFOP true
and providing the compensation temperature, in degrees Celsius, in the XREFIN parameter. The
engineering unit value obtained from signal conditioning is always in degrees Celsius. KSCALE
and BSCALE can be used to convert the engineering units from Celsius to Fahrenheit. To do this,
enter KSCALE = 1.8 and BSCALE = 32.0. (See Section 3.5.3.)
Thermocouple inputs are converted in the FBM or FBC from millivolts into raw counts in the
range 0 to 64000. This conversion is reversed by the CP when you specify a SCI value between 20
and 28 or you specify Special Thermocouple signal conversion.
When you apply thermocouple signal conditioning to the raw count, you should set SCI to one of
the values 20 to 28 as follows:
SCI = 20: Type B Thermocouple
SCI = 21: Type E Thermocouple
SCI = 23: Type J Thermocouple
SCI = 24: Type K Thermocouple
SCI = 25: Type N Thermocouple
SCI = 26: Type R Thermocouple
SCI = 27: Type S Thermocouple
SCI = 28: Type T Thermocouple

The SCI specifies which thermocouple curve is to be used for the input signal. Unlike the general
SCIs 0 through 11, where you must tell the system what engineering units are associated with the
raw counts, with a thermocouple SCI the system knows what temperature range goes with each
SCI. The entire temperature range of the thermocouple is available to you, as it is stated in
“Appendix A – Signal Conditioning Tables” on page 118. HSCO1 and LSCO1 are only used to
specify what portion of the range is to be used for display purposes.

101
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

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 118.)
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 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 118. 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.

102
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

3.5.2.3 RTD Input

INPUTS FROM TWO FBM03s (RTD Inputs)

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

Figure 3-5. RTD Input Example

The following FBM and point numbers provide RTD inputs:

FBM ECB Functional Description Electrical Type Valid Points


FBM203 ECB1 8 Analog In ohms Points 1 to 8
FBM213 ECB1 8 Analog In ohms Points 1 to 8
FBM03 ECB1 8 Analog In ohms Points 1 to 8
FBM33 ECB1 6 Analog In ohms Points 1 to 8

In addition, the input data at Point 9 of an FBM202, FBM02, or FBM36, Point 15 of an


FBM212, or Point 33 of an FBC02, the cold junction compensation channel of thermocouple
inputs, originates in an RTD device within the FBM or FBC, and must be conditioned accord-
ingly before its use.
To apply RTD signal conditioning to the raw count, you should set SCI to one of the values 40 to
44 as follows:
SCI = 40: Copper RTD (SAMA)
SCI = 41: Nickel RTD (SAMA)
SCI = 42: Platinum RTD (100 Ohm DIN 43760-1968)
SCI = 43: Platinum RTD (100 Ohm IEC) (DIN 43760-1980)
SCI = 44: Platinum RTD (100 Ohm SAMA)

103
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

RTD Signal Conversion


Key Parameters: IOM_ID, IOMIDR, PNT_NO, SCI
(The types of RTD signal conversions are listed in “Appendix A – Signal Conditioning Tables” on
page 118.)
The raw count value is converted back into ohms. The RTD conversion table for this SCI is
entered with the ohms value and it returns the equivalent in degrees Celsius. If the entered ohms
value is outside the table limits, the input is clamped at the lowest or highest ohms value, and
block parameter LOR or HOR is set. If BADOPT indicates that an out-of-range in that direction
is to be considered Bad, then the Bad status is set true for that input side (primary or secondary).
See Section 3.6.
As in the case of thermocouple inputs, HSCO1 and LSCO1 are not key parameters because the
signal conditioning understands what the engineering unit range is for a particular SCI. The
entered range is only used for display purposes, and for calculating percent of range for peer-to-
peer connections.

3.5.2.4 Pulse Rate Input

INPUTS FROM TWO FBM06s (Pulse Rate Inputs)

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

Figure 3-6. Pulse Rate Input Example

Key Parameters: SCI, MTRF


The following FBM and point numbers provide pulse rate inputs:
FBM ECB Functional Description Electrical Type Valid Points
FBM206 ECB4 8 Pulse rate In Frequency Points 1 to 8
FBM06 ECB4 4 Pulse rate In, 4 Analog Out Frequency Points 1 to 4

104
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

To apply pulse rate signal conditioning to the raw count, set SCI = 8. See the definition of this
SCI in “Appendix A – Signal Conditioning Tables” on page 118.
The Pulse Constant defined in the appendix converts the raw count in the ECB4 into the units of
Hertz. You must set Meter Factor (MTRF) with the value necessary to convert Hertz into the
configured Engineering Units for Output Range 1 (EO1). Typically MTRF is in units of Flow
Rate per Hertz.
For example, suppose a meter with an output factor of 50 pulses/gallon has a maximum flow rate
of 100 gallons/minute. Then:
 The maximum pulse rate is 5000 pulses per minute
 5000 pulses per minute = 83.3 pulses per second (Hertz)
 MTRF = 100/83.3 = 1.2 (Gallons per Minute per Hertz)
 EO1 = GPM (Gallons Per Minute).
You can apply pulse rate signal conditioning to the first four points of FBM06 and linear/square
root or characterizer signal conditioning to the last four points independently.

3.5.2.5 Pulse Count Input


Key Parameters: IOM_ID, IOMIDR, PNT_NO
The following FBMs and point numbers provide pulse count inputs:

FBM ECB Functional Description Electrical Type Valid Points


FBM07 ECB7 16 Digital In/Pulse Count In Contact/dc Points 1 to 16
FBM12 - Expander for FBM07 Contact/dc Points 17 to 32
FBM08 ECB7 16 Digital In/Pulse Count In 120 V ac Points 1 to 16
FBM13 - Expander for FBM08 120 V ac Points 17 to 32

The selected pulse count input is transferred as is to the output PNT. You cannot condition, char-
acterize, scale, clamp, or filter pulse count inputs. The entered value of SCI is ignored.

105
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

3.5.2.6 Intelligent Field Device Input


Key Parameter: EO1

INPUTS FROM TWO FBM18s (IFD Inputs)

SCI = 0 KSCALE BSCALE Output


Input 1 = Engineering Units Engineering
Units
Input 2 = Engineering Units X +

Channel Status 1

FBM Status 1

Channel Status 2

FBM Status 2

Figure 3-7. Intelligent Field Device Input Example

The following FBMs and point numbers provide Intelligent Field Device inputs:

FBM ECB Functional Description Electrical Type Valid Points


FBM18 ECB12 8 IFD In IFD Points 1 to 24
FBM43 ECB12 8 IFD In Same, Dual Baud Rate Points 1 to 24
FBM39 ECB23 4 IFD In, 4 Analog Out IFD, 0 to 20 mA Points 1 to 4,
9 to 12, 17 to 20
FBM44 ECB23 4 IFD In, 4 Analog Out Same, Dual Baud Rate Points 1 to 4,
9 to 12, 17 to 20
FBM46 ECB38R 4 IFD In, 4 Analog Out Same, Dual Baud Rate, Points 1 to 4,
Redundant 9 to 12, 17 to 20
FBM23 ECB13 24 Floating Point In HTG Points 1 to 24
FBM38 ECB22 8 Floating Point In Coriolis Points 1 to 8

For FBM18 and 43, the primary measurements of the eight instruments are input on points
1 to 8 respectively, the first auxiliary measurements are on Points 9 to 16 respectively, and the sec-
ond auxiliary measurements are on Points 17 to 24 respectively. These numbers should be entered
into PNT_NO.
For FBM39, 44, and 46 the primary measurements of the four instruments are input on points
1 to 4 respectively, the first auxiliary measurements are on Points 9 to 12 respectively, and the sec-
ond auxiliary measurements are on Points 17 to 20 respectively. These numbers should be entered
into PNT_NO. Points 5 to 8 contain the analog output readback values and can be processed as
described in Section 3.5.2.1.

106
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

You should configure the DEV_ID parameter of the primary parent ECB (12, 23, or 38R) with
the letterbug of its associated FBM (18, 43, 39, 44, or 46) and the DEV_ID of the secondary par-
ent ECB with the letterbug of the secondary FBM. The DEV_ID and DEVIDR of the AINR
block are non-configurable data stores which always match the DEV_IDs of the primary and sec-
ondary parent ECB, respectively. The DEV_IDs of the children ECB18s can be any 6-character
arrays which after Release 4.0, are no longer required to match the corresponding DEVNAM
parameters.
The PARENT parameter of the child ECB18 on each side is identical to the DEV_ID parameter
of the parent ECB (12, 23, or 38R) on that side when the ECBs are installed by the System Con-
figurator/Definition. If you install the children ECB18s manually via the Integrated Control
Configurator, you must set each PARENT parameter with the pathname to the NAME parame-
ter of its parent ECB (12, 23, or 38R). This pathname must be of the form
<local_compound_name>:<ecb_name> unless the parent is in the compound
<cp_letterbug>_ECB (the “ECB compound”), in which case the pathname <ecb_name> is also
acceptable. The DEV_ID of the parent is not be accepted as the value of PARENT.
Intelligent Field Device inputs may also be read directly from the children ECB18s by connecting
the Primary and Secondary Measurements (MEAS_P and MEAS_S) inputs of the AINR block to
certain ECB18 output parameters. This method is described in Section 3.5.2.7.
The inputs from Intelligent Field Devices, HTG Interface Units, and Coriolis (Mass Flow) Trans-
mitters are floating point values which are normally expressed in the final output units specified
by EO1. However, you may apply characterization (see this topic in Section 3.5.2.1), scaling (see
Section 3.5.3), clamping (see Section 3.5.4), and/or filtering (see Section 3.5.5), if required by the
application. If you do not wish to apply characterization, you should set SCI = 0.

3.5.2.7 Inputs from Other Blocks


Key Parameters: MEAS_P, MEAS_S, MEAS, SCI
There are two ways to make use of the ability to take the inputs to AINR from other blocks:
 Process simulation without connected FBMs or FBCs
 Connections to Window ECBs.
In either case, you should set IOMOPT to 0 or 2. This causes the primary and secondary block
inputs to be taken from the MEAS_P and MEAS_S parameters respectively, and the settings of
IOM_ID, IOMIDR, DEV_ID, DEVIDR, and PNT_NO is ignored.
In the process simulation application, you can connect any desired sources to MEAS_P and
MEAS_S.
To take the block inputs from Window ECBs, you should configure the source connections to
MEAS_P and MEAS_S in the format:
<compound_name>:<window_ecb_name>.<parameter>
where <compound_name> is the compound containing the Window ECB, <window_ecb_name>
is the NAME parameter of the Window ECB, and <parameter> is the measurement value to be
read. The <parameter> name should be the same on both sides.
The primary and secondary Window ECBs may be in any compound, and where there is a par-
ent-child relationship (for example, ECB12 and ECB18) the parent and child need not be in the
same compound.

107
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

Each measurement in a Window ECB has two values:


 The “device value”, which is the actual measurement as reported by the instrument. It
is connectable but not settable.
 The “point value”, which is the device value after any desired bypassing, last good
value retention, or setting for simulation purposes. It is connectable and settable.
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.3 Zero and Span Scaling


Key Parameters: KSCALE, BSCALE
Following any signal conditioning or characterization that is applied, you can then scale the con-
ditioned signal by application of the Gain Scale (KSCALE) and Offset Scale (BSCALE) parame-
ters in accordance with the formula:
Scaled Value = (Conditioned Value * KSCALE) + BSCALE
Scaling allows the conditioned value to be made dimensionally compatible with the desired out-
put units, as for example in conversion from Celsius to Fahrenheit scales in the case of tempera-
ture measurements. In that conversion, KSCALE is set to 1.8 and BSCALE is 32.0.
Generally, scaling useful only when applying thermocouple or RTD signal conditioning.
You do not need to use scaling when linear/square root signal conditioning is applied, since that
already involves conversion into the final output units. (See Section 3.5.2.1 and
“Appendix A – Signal Conditioning Tables” on page 118.)
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 3.5.2.4).
Inputs from Intelligent Field Devices are usually in final output units when received from the
devices themselves (see Section 3.5.2.6).
Pulse count inputs cannot be scaled (see Section 3.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.
Scaling is applied independently to both the primary and secondary points.

108
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

3.5.4 Clamping
Key Parameters: HSCO1, LSCO1, OSV, HOR, LOR, LASTGV
Clamping keeps the linearized and converted value within the block’s engineering units range, as
determined by HSCO1 and LSCO1.
Clamping is applied independently to both the primary and secondary points. The effect of
clamping is shown in Figure 3-8.

osv (units)
HSCO1

INPUT

LSCO1
osv (units)

osv (units)
HSCO1
HOR = 1
OUTPUT
LOR = 1
LSCO1
osv (units)

Figure 3-8. Clamping

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 3.6.
Parameter OSV (Output Span Variance) keeps signals that are fluctuating right at the high or low
end of the range from continually setting and resetting the HOR or LOR condition. There is not

109
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

a traditional deadband effect however, since signals oscillating near the high or low clamp value
generate repeated HOR or LOR conditions.
Parameter LOR is set true if either the primary or the secondary point is low out of range; it is not
necessary for both to be. Similarly for parameter HOR. If BADOPT so specifies, a point which is
out of range is considered bad; however, the block output parameter BAD is set true only if both
the primary and secondary points are considered bad.

3.5.5 Filtering
Key Parameters: FLOP, FTIM
The clamped value is subjected to possible filtering, as the last signal processing activity. Filtering
introduces a lag to changes in the input signal, thus smoothing out input changes or suppressing
noise. Note that this feature should be used with caution to avoid removing true process informa-
tion.

NOTE
When an AINR block is configured so that the MEAS parameter is connected to
another block (as opposed to an input from the field), filtering options have no
effect when the block is running in a CP40B. Regardless of how the filtering
options are set, the AINR block running in a CP40B station does not filter the
input if the MEAS parameter is connected to another block.

If the block is in Auto and Filter Option (FLOP) is non-zero, either first-order lag filtering
(FLOP = 1) or second-order Butterworth filtering (FLOP = 2) or two-sample-average filtering
(FLOP = 3) is applied. The lag that first or second-order filtering introduces has time constant
Filter Time (FTIM). You can use them to attenuate measurement noise. However, if FTIM is set
too low, there is relatively insignificant filtering. If set too high, the lag may be large enough to
affect loop accuracy.
Since filtering involves previous values of a signal as well as its present value, the necessary data for
filtering is retained independently for both the primary and secondary points. This results in the
availability of a properly filtered signal on the first block processing cycle after switchover.
In addition, aliasing is minimized and resolution improved by configuring the RES parameters of
both ECBs so that the fieldbus integration time is equal to twice the block period. Refer to the
section “Fieldbus Integration Time” in the appropriate Integrated Control Software Concepts docu-
ment (B0700AG or B0193AW).

3.5.5.1 First Order Lag Filtering (FLOP = 1)


The algorithm of this filter is:
Filter Output = PREV + (Filter Input-PREV) / ( + 1)
where PREV is the previous conditioned value of the point, maintained separately for the primary
and secondary values.  is computed as:
 = 60 * FTIM / Block Period in Seconds
and represents the number of block processing cycles for the output to reach approximately 63
percent of its ultimate value after a step change to the input.
In Laplace transform notation, the transfer function is 1/(1 + s).

110
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

A diagram of first-order lag filtering in shown in Figure 3-9.

OUTPUT
INPUT STEP
63% 100%

FTIM

Figure 3-9. First-Order Lag Filtering

3.5.5.2 Butterworth Filtering (FLOP = 2)


The algorithm of this filter is:
New vter = Old vter + (Filter Input - PREV - Old vter) / (/2 + 1)
Filter Output = PREV + New vter / ( + 1)
where  is computed as in the case of first order lag filtering.
In each block execution cycle, the first step is the computation of New vter, based on the stored
value of Old vter from the last cycle and PREV, the previous conditioned point value. (When the
filter is initialized the value of Old vter is set to 0.0.) As before, PREV is the previous conditioned
point value. PREV and Old vter are maintained separately for the primary and secondary values.
In Laplace transform notation, the transfer function is:
1 / (1 + s+ (s)2/2)
A diagram of Butterworth filtering is shown in Figure 3-10.

INPUT STEP
OUTPUT

FTIM

Figure 3-10. Butterworth Filtering

3.5.5.3 Two-Sample-Average Filtering (FLOP = 3)


The algorithm of this filter is:
Filter Output = |Filter Input this cycle - Filter Input previous cycle| /2
This algorithm eliminates integer multiples of the half-sampling frequency component and atten-
uates other high frequencies. The filter has a flatter low frequency pass band and sharper cutoff
than the other two filters, with the same low-frequency phase shift.

111
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

The Filter Input from the previous cycle is retained separately for primary and secondary sides.

3.6 Bad Input and Out-of-Range Processing


3.6.1 Bad Status and BAD Parameter
Key Parameters: BAD, BLKSTA, PNT, BADOPT, MEAS_P, MEAS_S
The Bad status of each input is separately determined, based on a logical OR of the following con-
ditions:
 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 set true in the case of the primary side, and
BLKSTA.FBMR in the case of the secondary side.)
 The connected point within the FBM or FBC is bad. If either this condition or the
preceding one is true on an input side, then BLKSTA.BAD (for the primary side) or
BLKSTA.BADR (for the secondary side) is set true.
 An out-of-range situation has met the conditions for being considered a Bad condi-
tion, because of the setting of BADOPT. (See Section 3.6.2 below.)
If there are no connected FBMs or FBCs, the first two conditions above are replaced by the fol-
lowing:
 The MEAS_P value (in the case of the primary side) or the MEAS_S (in the case of
the secondary side) is linked and it has Bad status.
If both primary and secondary sides have Bad status, the output PNT status is set Bad, and the
block’s BAD parameter is true. Bad alarm messages are generated and displayed/printed separately
for each side, but unless both sides are bad, the BAD parameter and PNT.BAD remain false.
Note that for BADOPT 1-4, BAD and PNT.BAD are only set when the block is in AUTO mode
and BLKSTA.BAD is set regardless of the block mode.

NOTE
BLKSTA.BAD, PNT.BAD, and BAD track each other differently depending on
whether the block is in MANUAL or AUTO mode. For example, switching a block
to MANUAL and performing a "set" operation will clear the PNT.BAD status bit,
which allows the operator to define the PNT value as acceptable. However, the
BAD parameter's state and value will remain the same as if the block was in AUTO
mode.

3.6.2 Out-of-Range Conditions


3.6.2.1 Out-of-Range Due to Signal Conditioning
Key Parameters: HOR, LOR
Thermocouple Signal Conversion
If cold junction compensation is based on the FBM Point 9, FBM Point 15, or FBC Point 33
value, and the ohms value is outside of the limits of the SCI table 43 (100 Ohms IEC), then
HOR or LOR is set true, depending on which limit was exceeded.

112
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

When the compensation reference has been converted to millivolts and added to the raw value
millivolts, the resulting sum is used to access the proper SCI table. If this sum is higher or lower
than the limits of the table, HOR and LOR are handled as in the last paragraph.
If the Special Thermocouple option is in use, when the sum of the reference value and raw value is
used to re-enter the characterizer, the entry is compared against the characterizer end-points. If
the entry value is outside the end-points, HOR and LOR are handled as in the preceding para-
graph.
RTD Signal Conversion
When the raw value in ohms is higher or lower than the limits of the SCI table in use, parameters
HOR and LOR are handled as above.
Linear/Square Root Signal Conversion
The raw value is compared against the raw_low for this SCI as adjusted for the OSV in use.
If below this limit, LOR is set, and similarly for HOR if the upper limit is exceeded.
Characterizer Signal Conversion
The raw value is compared against the characterizer endpoints. If the value is outside the end-
points, HOR and LOR are handled as above.

3.6.2.2 Out-of-Range Due to Clamping


Key Parameters: HOR, LOR, HSCO1, LSCO1
As noted in Section 3.5.4 above, HOR or LOR can be set true as a result of clamping. Note that
if either the primary or the secondary input is out-of-range, the block parameter HOR or LOR is
set true; it is not necessary for both sides to be out-of-range.

3.6.3 Out-of-Service Conditions


Key Parameters: PNT, EXTBLK, MEAS_P, MEAS_S
The out-of-service status of PNT is set true provided any one of the following conditions is true
for the selected input side:
 The FBM or FBC itself is out-of-service
 The FBM is of HTG or IFD type and the connected point is out-of-service, as indi-
cated by the status field of the connected point
 The EXTBLK parameter has out-of-service status, indicating an out-of-service
CHARC block.
If there is no connected FBM or FBC, the first two conditions above are replaced by the
following:
 The selected input (either MEAS_P or MEAS_S) value is linked and it has out-of-ser-
vice status.

3.6.4 Last Good Value


Key Parameters: LASTGV, BAD, PNT, HSCO1, LSCO1, OSV, IOMOPT, SCI
The actions of parameter Last Good Value (LASTGV) affect each input side separately. If the side
which is ultimately selected has retained its value from the last cycle, then PNT retains its value.

113
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

In the following situations, parameter Last Good Value (LASTGV) only takes effect when
BADOPT has caused the input side to have Bad status, and its actions depend on the condition
which caused the Bad status.
 When Bad status is true because thermocouple cold junction compensation is outside
the limits of the SCI 43 table, the reference value (in degrees Celsius) from the previ-
ous cycle is used as the compensation.
 When Bad status is true because the compensated thermocouple millivolt value is out-
side the limits of the SCI table in use, LASTGV causes the side to retain its value from
the last cycle.
 In the Special Thermocouple option, if the compensated value is outside the limits of
the characterizer end-points, the side retains its value from the last cycle.
 When an RTD ohms value is outside the limits of its SCI table, the side retains its
value from the last cycle.
 In linear/square root signal conditioning, if the raw value is beyond the lower or upper
value of the span, as adjusted by OSV, the side retains its value from the last cycle.
 In characterizer signal conversion, if the value is outside the limits of the characterizer
end-points, the side retains its value from the last cycle.
 When Bad status exists because an out-of-range condition occurred due to
HSCO1/LSCO1 clamping, the side retains its value from the last cycle only if SCI = 0
(no linearization) and IOMOPT indicates that an FBM or FBC is connected.
Figure 3-11 shows the effect of LASTGV in.
In the following situations, retention of the value from the last cycle is independent of BADOPT.
 The connected FBM or FBC is out-of-service, regardless of the value of LASTGV.
 The connected HTG, IT2, or Coriolis point is out-of-service, regardless of the value
of LASTGV.
 The connected point has bad status and LASTGV is true.

114
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

LASTGV = 1
LASTGV = 0 BADOPT = 2
SCI = 0
IOMOPT = 1

osv (units)
HSCO1
Input Input

LSCO1
osv (units)

osv (units)
HSCO1
Output Output is the last
Output good value read
HOR = 1 HOR = 1 before Input went
out of range.
LSCO1
osv(units)

Figure 3-11. Last Good Value

3.7 Manual Mode


When the AINR block is in the Manual mode, it does not update the value of the PNT output.
PNT is released and becomes settable by the user. When no FBMs or FBCs are connected, the
manual value set into PNT is copied to MEAS.
In Manual mode, the status bits (Bad, Out-of-Service, and Error) of the PNT output are not
updated, nor are the BAD, HOR, and LOR parameters. Since they are not cleared, they retain
their last values before the transition to Manual.
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 appro-
priate Integrated Control Software Concepts document (B0700AG or B0193AW).

115
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

The nomenclature for identical alarm types varies from block to block for historical reasons
involving backward compatibility requirements. The nomenclature for the AINR block is as fol-
lows:

Table 3-2. Alarm Nomenclature

Dead- Default Indicator


Type Option Limit Priority Group Text band Display Parameter
I/O Bad BAO = True ---- BAP BAG BAT ----- IOBAD BAD
Out-of-Range ORAO = ---- ORAP ORAG ORAT ----- RANGE HOR/LOR
True
High Absolute HLOP = HAL HLPR HLGP HAT HLDB HIABS HAI
1 or 2
Low Absolute HLOP = LAL HLPR HLGP LAT HLDB LOABS LAI
1 or 3
High-High HHAOPT HHALIM HHAPRI HHAGRP HHATXT HLDB HHABS HHAIND
Absolute = 1 or 2
Low-Low HHAOPT LLALIM HHAPRI HHAGRP LLATXT HLDB LLABS LLAIND
Absolute = 1 or 3

116
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

3.9 Application Diagram

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

Figure 3-12. Typical AINR Block Application

117
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

3.10 Appendix A – Signal Conditioning Tables


3.10.1 Summary

SCI = 0: No linearization; output = input


SCI = 1: Linear (0 to 64000) (“0 to 100%”)
SCI = 2: Linear (1600 to 64000) (“0 to 100%, Elevated Zero”)
SCI = 3: Linear (12800 to 64000) (“20 to 100%”)
SCI = 4: Square root (0 to 64000) (“0 to 100%”)
SCI = 5: Square root (12800 to 64000), clamped (“20 to 100%”)
SCI = 6: Square root, low cutoff (0 to 64000), clamp < 3/4% (“0 to 100%”)
SCI = 7: Square root, low cutoff (12800 to 64000), clamp < 3/4% (“20 to 100%”)
SCI = 8: Pulse rate
SCI = 9: Linear, low cutoff (1600 to 64000) (“0 to 100%, Elevated Zero”)
SCI = 10: Linear, low cutoff (12800 to 64000)(“20 to 100%”)
SCI = 11 Square root, Intelligent Transmitter 2 (0 to 64000)
SCI = 12: Linear (14080 to 64000)(“20 to 100%, Elevated Zero”)
SCI = 13: Square root, low cutoff (14080 to 64000),(“20 to 100%, Elevated Zero”)
SCI = 14 Linear (0 to 16383)
SCI = 15 Square root, low cutoff (1600 to 64000)
SCI = 20: Type B Thermocouple
SCI = 21: Type E Thermocouple
SCI = 22 Reserved for future use
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
SCI = 40: Copper RTD (SAMA)
SCI = 41: Nickel RTD (SAMA)
SCI = 42: Platinum RTD (100 Ohm DIN 43760-1968)
SCI = 43: Platinum RTD (100 Ohm IEC) (DIN 43760-1980)
SCI = 44: Platinum RTD (100 Ohm SAMA)
SCI = 50: Linear (0 to 65535)
SCI = 51: Linear (-32768 to 32767)
SCI = 52: Linear (0 to 32767)
SCI = 53: Linear (0 to 1000)
SCI = 54: Linear (0 to 999)
SCI = 55: Linear (0 to 2048)

118
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

SCI = 56: Linear (409 to 2048)


SCI = 57: Square Root (0 to 2048)
SCI = 58: Square Root (409 to 2048)
SCI = 59: Linear (0 to 4095)

3.10.2 Linear/Square Root Signal Conditioning

SCI = 0: No Linearization
Conditioned = Raw
SCI = 1: Linear (0 to 64000)
Analog Input 0 to 20 mA
Conditioned = (Raw * (HSCO1 - LSCO1)/64000) + LSCO1
SCI = 2: Linear (1600 to 64000)
Analog Input 0 to 10 V dc
Conditioned = ((Raw - 1600) * (HSCO1 - LSCO1)/62400) + LSCO1
SCI = 3: Linear (12800 to 64000)
Analog Input 4 to 20 mA
Conditioned = ((Raw - 12800) * (HSCO1 - LSCO1)/51200) + LSCO1
SCI = 4: Square Root (0 to 64000)
Analog Input 0 to 20 mA
Conditioned = (Sqrt(64000 * Raw) * (HSCO1 - LSCO1)/64000) + LSCO1
SCI = 5: Square Root (12800 to 64000), Clamped
Analog Input 4 to 20 mA
If Raw  12800
Conditioned = LSCO1
Otherwise,
Conditioned = (Sqrt(51200 * (Raw - 12800)) * (HSCO1 - LSCO1)/51200) + LSCO1
SCI = 6: Square Root, Low Cutoff (0 to 64000), Clamped < 3/4%
Analog Input 0 to 20 mA
If Raw  480
Conditioned = LSCO1
Otherwise,
Conditioned = (Sqrt(64000 * Raw) * (HSCO1 - LSCO1)/ 64000) + LSCO1
SCI = 7: Square Root, Low Cutoff (12800 to 64000), Clamped < 3/4%
Analog Input 4 to 20 mA
If Raw  13184
Conditioned = LSCO1
Otherwise,
Conditioned = (Sqrt(51200 * (Raw - 12800)) * (HSCO1 - LSCO1)/51200) + LSCO1
SCI = 8: Pulse Rate
Conditioned = Raw * MTRF * Pulse Constant
(Where Pulse Constant = 25000.0/(65535.0 * 65535.0) = 0.582094373 E - 05 =
0.00000582094373)

119
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

SCI = 9: Linear, Low Cutoff (1600 to 64000)


Analog Input 0 to 10 V dc
If Raw  1600
Conditioned = LSCO1
Otherwise,
Conditioned = ((Raw - 1600) * (HSCO1 - LSCO1) / 62400) + LSCO1
SCI = 10: Linear, Low Cutoff (12800 to 64000)
Analog Input 4 to 20 mA
If Raw  12800
Conditioned = LSCO1
Otherwise,
Conditioned = ((Raw - 12800) * (HSCO1 - LSCO1) / 51200) + LSCO1
SCI = 11: Square Root, Intelligent Transmitter 2 (0 to 64000)
Analog Input
Conditioned = Sqrt(Raw)
SCI = 12: Linear (14080 to 64000)
Analog Input 2 to 10 V dc
Conditioned = ((Raw - 14080) * (HSCO1 - LSCO1)/49920) + LSCO1
SCI = 13: Square Root, Low Cutoff (14080 to 64000)
Analog Input 2 to 10 V dc
If Raw  14080
Conditioned = LSCO1
Otherwise,
Conditioned = (Sqrt(49920 * (Raw - 14080)) * (HSCO1 - LSCO1)/49920) + LSCO1
SCI = 14: Linear (0 to 16383)
Analog Input 0 to 20 mA
Conditioned = (Raw * (HSCO1 - LSCO1)/16383) + LSCO1
SCI = 15: Square Root, Low Cutoff (1600 to 64000)
Analog Input 0 to 10 V dc
If Raw  1600
Conditioned = LSCO1
Otherwise,
Conditioned = (Sqrt(62400 * (Raw - 1600)) * (HSCO1 - LSCO1)/62400)
+ LSCO1
SCI = 50: Linear (0 to 65535) y = (HSCI1-LSCI1)/65535 * x + LSCI1
SCI = 51: Linear (-32768 to 32767) y = (HSCI1-LSCI1)/65535 * (x + 32768) + LSCI1
SCI = 52: Linear (0 to 32767) y = (HSCI1-LSCI1)/32767 * x + LSCI1
SCI = 53: Linear (0 to 1000) y = (HSCI1-LSCI1)/1000 * x + LSCI1
SCI = 54: Linear (0 to 999) y = (HSCI1-LSCI1)/999 * x + LSCI1
SCI = 55: Linear (0 to 2048) y = (HSCI1-LSCI1)/2048 * x + LSCI1
SCI = 56: Linear (409 to 2048) y = (HSCI1-LSCI1)/1639 * (x – 409) + LSCI1
SCI = 57: Square Root (0 to 2048) y = sqrt (2048 * x) * (HSCI1-LSCI1)/2048 + LSCI1
SCI = 58: Square Root (409 to 2048) y = sqrt (1639 * (x - 409))* (HSCI1-LSCI1)/1639 + LSCI1
SCI = 59: Linear (0 to 4095) y = (HSCI1-LSCI1)/4095 * x + LSCI1

120
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

The following applies to SCI = 50 through SCI = 59:


 y = engineering units value; x = normalized counts value
 Linear scaling of the analog inputs is also provided.

3.10.3 Thermocouple Signal Conditioning

SCI Type Material Range Curve


20 Type B Platinum-Platinum 0 to 1820° C P331-0/68 (TI 5-189a)
21 Type E Chromel-Constantan -270 to 910° C S303-0/68 (TI 5-17c)
23 Type J Iron-Constantan -210 to 1200° C S99J-0/68 (TI 5-12f )
24 Type K Chromel-Alumel -270 to 1372° C K223-0/68 (TI 5-13c)
25 Type N Nicrosil-Nisil -270 to 1300° C IPTS-68 (TI 5-19)
26 Type R Platinum-Platinum -50 to 1768° C P329-0/68 (TI 5-14d)
27 Type S Platinum-Platinum -50 to 1768° C P307-0/68 (TI 5-15e)
28 Type T Copper-Constantan -270 to 400° C S233-0/68 (TI 5-11c)

3.10.4 RTD Signal Conditioning

SCI Type Material Range Curve


40 Copper (SAMA) Copper -70 to 150° C CR229 (TI 5-25a)
41 Nickel (SAMA) Nickel -100 to 160° C NR-227 (SAMA) (TI 5-24a)
42 Platinum (100 Ohm Platinum 0 to 620° C PR-238 (TI 5-26a)
DIN 43760-1968)
43 Platinum (100 Ohm Platinum -200 to 620° C Foxboro Dwg. 10104MU
IEC DIN 43760-1980) (TI 005-028)
44 Platinum (100 Ohm Platinum -200 to 600° C PR-279 (SAMA) (TI 5-27a)
SAMA)

3.11 Appendix B – Valid Input Connections


3.11.1 FBM201 through FBM242 Valid Input Connections

Hardware
201
202
203
204
205
206
207
211
212
213
217
237
241
242

Type
Point
1 I I I I I I I I I I I O I O
2 I I I I I I I I I I I O I O
3 I I I I I I I I I I I O I O
4 I I I I I I I I I I I O I O

121
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

Hardware

201
202
203
204
205
206
207
211
212
213
217
237
241
242
Type
Point
5 I I I O O I I I I I I O I O
6 I I I O O I I I I I I O I O
7 I I I O O I I I I I I O I O
8 I I I O O I I I I I I O I O
9 C I I I I O O
10 I I I I O O
11 I I I I O O
12 I I I I O O
13 I I I I O O
14 I I I I O O
15 I I C I O O
16 I I I O O
17 I
18 I
19 I
20 I
21 I
22 I
23 I
24 I
25 I
26 I
27 I
28 I
29 I
30 I
31 I
32 I

Legend: I = Input
O = Readback from Output
C = Thermal Compensation Channel

122
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

3.11.2 FBM01 through FBM46 Valid Input Connections

Hardware
Type 1 2 3 4 5 6 17 18 22 23 33 36 37 38 39 43 44 46
Point
1 I I I I I I I I I I I I O I I I I I
2 I I I I I I I I O I I I O I I I I I
3 I I I I I I I I I I I O I I I I I
4 I I I I I I I I I I I O I I I I I
5 I I I O O O O I I I I O I O I O O
6 I I I O O O O I I I I O I O I O O
7 I I I O O O I I I I O I O I O O
8 I I I O O O I I I I O I O I O O
9 C I C
10 I
11 I
12 I
13 I
14 I
15 I
16 I
17 I
18 I
19 I
20 I
21 I
22 I
23 I
24 I
25
26
27
28
29
30
31
32
33

123
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

Legend: I = Input
O = Readback from Output
C = Thermal Compensation Channel

3.11.3 Cluster I/O Valid Input Connections

Hardware
Type 57 58 59 61 63 95
Point
1 I I I O I I
2 I I I O I I
3 I I I O I I
4 I I I O I I
5 I I I O I I
6 I I I O I I
7 I I I O I I
8 I I I O I I
9 I I I O I I
10 I I I O I I
11 I I I O I I
12 I I I O I I
13 I I I O I I
14 I I I O I I
15 I I I O I I
16 I I I O I I
17 I I I I
18 I I I I
19 I I I I
20 I I I I
21 I I I I
22 I I I I
23 I I I I
24 I I I I
25 I I I I
26 I I I I
27 I I I I
28 I I I I
29 I I I I
30 I I I I
31 I I I I

124
3. AINR – Redundant Analog Input Block B0193AX – Rev AB

Hardware
Type 57 58 59 61 63 95
Point
32 I I I I
33 C C

Legend: I = Input
O = Readback from Output
C = Thermal Compensation Channel

NOTE
Hardware Type 57 is used for FBC21.
Hardware Type 58 is used for FBC01.
Hardware Type 59 is used for FBC17.
Hardware Type 61 is used for FBC04.
Hardware Type 63 is used for FBC02.
Hardware Type 95 is used for FBC02 Redundant.

125
B0193AX – Rev AB 3. AINR – Redundant Analog Input Block

126
4. ALMPRI – Alarm Priority Change
Block
This chapter covers the Alarm Priority Change Block, or ALMPRI, its features, parameters and
functions.

4.1 Overview
The Alarm Priority Change Block, ALMPRI, dynamically reassigns the priority of an alarm point.
This allows alarm priorities to be automatically revised based on specific plant conditions. See
Figure 4-1.

MA

Priority 1 Input Manual


Priority 2 Input
Priority 3 Input Priority Output
Priority 4 Input Auto
Priority 5 Input Block Status
Figure 4-1. ALMPRI Block I/O Diagram

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

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set blank 1 to 12 chars
TYPE block type integer no-con/no-set 26 ALMPRI
DESCRP descriptor string no-con/no-set blank 1 to 32 chars
PERIOD block sample time short no-con/no-set 1 0 to 13
PHASE block phase number integer no-con/no-set 0 ---
LOOPID loopid string no-con/set blank 1 to 32 chars
PR_IN1 to PR_IN5 priority 1 to 5 input boolean con/set 0 0 to 1
MA manual/auto boolean con/set 0 0 to 1
INITMA initialize MA short no-con/no-set 1 [0|1|2]

127
B0193AX – Rev AB 4. ALMPRI – Alarm Priority Change Block

Table 4-1. ALMPRI Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


OUTPUTS
BLKSTA block status pack_l con/no-set 0 bit map
PRIOUT priority output integer con/no-set 0 [0..5]
Non-Configurable Parameters
DATA STORES
ACHNGE alternate change integer con/no-set 0 -32768 to 32767
DEFINE no configuration boolean no-con/no-set 1 0-1
errors
ERCODE configuration error string no-con/no-set 0 1 to 43 chars
LOCKID lock identifier string no-con/no-set blank 8 to 13 chars
LOCKRQ lock request boolean no-con/set 0 0 to 1
OWNER owner name string no-con/set blank 1 to 32 chars

4.3.1 Parameter Definitions


ACHNGE Alternate Change is an integer output which is incremented each time a
block parameter is changed via a Set command.

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

* Bit 0 is the least significant, low order bit.

DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation

128
4. ALMPRI – Alarm Priority Change Block B0193AX – Rev AB

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.

DESCRP Description is a user-defined string of up to 32 characters that describe the


block’s function (for example, “PLT 3 FURNACE 2 HEATER CON-
TROL”).

ERCODE Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the block’s
DEFINE parameter to be set false, but not the warning situations. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. The block detailed display shows the ERCODE
on the primary page, if it is not null. For the ALPMRI block, the follow-
ing list specifies the possible values of ERCODE, and the significance of
each value in this block:
Message Value
“W43 – INVALID PERIOD/ PHASE does not exist for given block
PHASE COMBINATION” PERIOD, or block PERIOD not com-
patible with compound PERIOD.
“W46 – INVALID INPUT The source parameter specified in the
CONNECTION” input connection cannot be found in the
source block, or the source parameter is
not connectable, or an invalid boolean
extension connection has been
configured.
“W48 – INVALID BLOCK The configured value of a block option
OPTION” is illegal.
“W53 – INVALID A parameter value is not in the accept-
PARAMETER VALUE” able range.

INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state specified in the checkpoint file.
The block asserts this initial M/A state whenever:
 It is installed into the Control Processor database.
 The Control Processor undergoes a reboot operation.
 The compound in which it resides is turned on.
The INITMA parameter itself is modified via the control configurator.
(The block does not assert INITMA on ordinary reconfiguration.)
INITMA is ignored if MA has an established linkage.

129
B0193AX – Rev AB 4. ALMPRI – Alarm Priority Change Block

LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.

LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are honored (subject to the usual access rules) only from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set false by any workstation at any time, whereupon a
new LOCKRQ is accepted, and a new ownership workstation identifier
written to LOCKID.

LOOPID Loop Identifier is a configurable string of up to 32 characters which iden-


tifies the loop or process with which the block is associated. It is displayed
on the detail display of the block, immediately below the faceplate.

MA Manual Auto is a boolean input that controls the Manual/Automatic


operating state (0 = false = Manual; 1 = true = Auto). In Auto, given the
measurement value, the block computes the output according to its spe-
cific algorithm. In Manual, the algorithm is not performed, and the out-
put is unsecured. An external program can then set the output to a desired
value.

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

OWNER Owner is a string of up to 32 ASCII characters which are used to allocate


control blocks to applications. Attempts to set Owner are successful only
if the present value of Owner is the null string, an all-blank string, or iden-
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.

PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)

130
4. ALMPRI – Alarm Priority Change Block B0193AX – Rev AB

Period Length Period Length


0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****

*If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).

PRIOUT Priority Output has an integer value between 0 and 5. Integers 1 to 5 rep-
resent alarm priority levels. An output of 0 indicates that no priority level
input lines are true (that is, the absence of alarms). Connecting this out-
put to an alarm priority input of a downstream block reassigns the alarm
priority levels of that block.

PR_IN1 to PR_IN5
Priority Input, Levels 1 to 5, are boolean inputs which represent an alarm
priority level.
For example, when true, PR_IN1 enables a level 1 priority output (highest
priority) and supersedes priority levels 2 to 5. If the block is in the Auto
mode, then in this instance, PRIOUT = 1.

TYPE When you enter “ALMPRI” or select “ALMPRI” from the block type list
under Show, an identifying integer is created specifying this block type.

131
B0193AX – Rev AB 4. ALMPRI – Alarm Priority Change Block

4.4 Detailed Operation


The ALMPRI block dynamically reassigns the priority of an alarm point to allow an alarm prior-
ity to be automatically revised based on specific plant conditions.

4.4.1 Detailed Diagram


Figure 4-2 is a simplified block diagram that depicts the functional signal flow of the ALMPRI
block. It shows the forward path of the block as it relates to the various states, logic control sig-
nals, and options represented by toggle switches.

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 Block States


The ALMPRI block has three states: Initialization, Manual and Auto.

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.

4.4.3 Alarm Priority Changing


Key Parameters: PRI_IN1-PRI_IN5, PRIOUT
The Alarm Priority Change Block acts as a priority selector for an alarm point whose criticality
varies with the plant situation.
ALMPRI determines the value of PRIOUT based on the PRI_INx parameters. PRIOUT is an
integer output that indicates the priority, ranging from 0 to 5, for an alarm (1 is the highest prior-
ity, zero indicates the absence of alarms). PRI_IN1-PRI_IN5 each represent one of these priority
levels; PRI_IN1 represents priority 1, the highest priority, and so forth. PRIOUT is assigned the

132
4. ALMPRI – Alarm Priority Change Block B0193AX – Rev AB

priority level of the lowest PRI_INx parameter set to true. For example, if both PRI_IN2 and
PRI_IN4 are set to true, PRIOUT is set to 2. If none of the indicators are set to true, PRIOUT is
set to 0.
PRI_INx parameters can be connected to triggers in outside sources to indicate if a particular
event has occurred. You can set an unconnected PRI_INx parameter to true to act as a default
alarm priority until a higher alarm priority is triggered.
An example of ALMPRI use is provided below.

4.4.3.1 Example Application


Consider a block that has low to moderate criticality while the process is stable, but has primary
importance in an emergency. This example is illustrated in Figure 4-3.

Block or event with low to


Default = 0 Block with
moderate criticality when stable,
Emergency = 1 varying criticality
primary importance in emergency
ALMPRI Block
x PR_IN1 = x
External Block
Example Block
Or Event
PR_IN2 = 0
Control Block
PR_IN3 = 0 PRIOUT = (1 or 4)
PR_IN4 = 1
PR_IN5 = 0
Activated when an Alarm Priority Input
emergency is detected

Figure 4-3. Example ALMPRI Block Connections

To automatically upgrade its priority level, connect the PR_IN1 input line to a block that is acti-
vated when an emergency is detected (such as a BAD output). Configure the PR_IN4 input true
and the PR_IN2, PR_IN3, and PR_IN5 inputs false. Connect the PRIOUT output to an alarm
priority input of the control block with the varying criticality.
For example, an alarm priority input could be any of the following parameters:
 ABSPRI (Absolute Alarm Priority)
 BAP (Bad Alarm Priority)
 DEVPRI (Deviation Alarm Priority)
 HHAPRI (High-High Alarm Priority)
 MEASPR (Measurement Alarm Priority)
 ORAP (Out of Range Alarm Priority)
 OP_PRI (Operational Alarm Priority)
 ROCPRI (Rate of Change Alarm Priority)
 TAP (Trip Alarm Priority)
While the process is stable, the control block has a level 4 alarm priority (default). When an emer-
gency is detected, PR_IN1 is set true by the block detecting the emergency. This supersedes the
configured level 4 priority and gives the control block a level 1 priority. When the emergency is
over, the PR_IN1 goes false and PR_IN4, which is always true, determines the priority level.

133
B0193AX – Rev AB 4. ALMPRI – Alarm Priority Change Block

134
5. AOUT – Analog Output Block
This chapter covers the Analog Output Block, or AOUT, its features, parameters and functions,
bad, out-of-service and error conditions, manual mode, alarming, and application diagrams.

5.1 Overview
The Analog Output Block (AOUT) provides the control strategy with output capability for a sin-
gle analog value directed to any Fieldbus Module (FBM) or Fieldbus Card (FBC) capable of driv-
ing analog outputs. The block supports Auto/Manual control, signal conditioning, biasing, and
output balancing. Cascade initialization and supervisory control features are also available.

Measurement
Supervisory Scalar Balance Low Output Limit
Enable & Time High Output Limit
Bias

Back Back
Calculation Calculated
Outputs

Measure-
ment Input Reset
Scaling Clamping o Out
Supervisory Selection Balancing
Input

Signal Raw
Conditioning Count

Fieldbus Output
Output to
FBM/FBC
ECB Failsafe
Failsafe
Failsafe Processing

FBM and
BAD Bad
Channel Detection Alarming
Alarm
Status

Bad Alarm Signal Air- FBM


Option Conditioning to- Option
Output Close
Figure 5-1. AOUT Block Diagram

135
B0193AX – Rev AB 5. AOUT – Analog Output Block

5.2 Basic Operation


The AOUT block obtains its input from the Measurement (MEAS) parameter. If supervisory
control is enabled, input is from the Supervisory Input (SUP_IN) parameter. This input is
optionally scaled and biased using the Measurement Scalar (MSCALE) and Bias (BIAS) factors.
Last good value functionality is provided for both the input and bias terms.
The scaled and biased value is then modified by the addition of a reset balance term which is ini-
tialized on transition from a last good value condition of MEAS or BIAS, or closure of the cas-
cade. After initialization, this balance term is bled on each succeeding execution cycle, so that it
decays with a response characterized by a first order lag.
After the resulting value is clamped by the operational limits High Output Limit (HOLIM) and
Low Output Limit (LOLIM), it is available to the control strategy in Output (OUT). The value
of OUT may, optionally, be subjected to linear signal conditioning based on the configured value
of Signal Conditioning Output (SCO), with the result stored in Raw Count (RAWC). If the
block is operating with a connected FBM or FBC, the value of RAWC is transmitted to the spec-
ified analog output point.

5.3 Features
 Fieldbus Module option to permit configuration of AOUT blocks without FBM or
FBC connections (output only to control strategy).
 Output to any FBM or FBC driving 0 to 20 mA or 0 to 10 V dc analog outputs.
 Gain and offset scaling of the output.
 Reset balance action with specifiable time constant.
 Output clamping between selectable operational limits.
 Selectable linear signal conditioning of the output.
 Air-to-Close option to invert the sense of the output for use with air-to-close valves.
 Raw Count output to display the output after signal conditioning.
 Supervisory Control option for driving the block input from an external supervisory
application.
 Parameters to allow flexible choice of block action in case of supervisory control
fallback.
 Error Propagation option to permit non-standard conditions of the measurement or
bias inputs to be reflected as an error status of the output.
 Measurement Error option to permit selection of the conditions under which the last
good value of the measurement is retained.
 Bias Error option to perform the same function for the bias term.
 Manual/Auto mode for disconnecting the control scheme from the output, for simu-
lation and checkout purposes.
 Optional output clamping when in Manual.
 Manual if Failsafe option to force the block into Manual whenever a transition into
Failsafe occurs.

136
5. AOUT – Analog Output Block B0193AX – Rev AB

 Manual if Bad option to force the block into Manual whenever the measurement or
bias input has bad status, or the FBM or FBC is bad.
 Bias Tracking option to cause the bias value to track changes in the output by back
calculation, when the block is in Manual (see Section 5.7).
 The Primary Block option enables the block, when in a cascaded configuration, to ini-
tialize without bumping the process.
 Bad Alarm option to permit Bad alarm generation.

5.4 Parameters
Table 5-1. AOUT Block Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set blank 1 to 12 chars
TYPE block type integer no-con/no-set 32 AOUT
DESCRP descriptor string no-con/no-set blank 1 to 32 chars
PERIOD block sample time short no-con/no-set 1 0 to 13
PHASE block execute phase integer no-con/no-set 0 ---
LOOPID loop identifier string no-con/set blank 1 to 32 chars
IOMOPT FBM output option short no-con/no-set 1 0 to 2
IOM_ID FBM identifier string no-con/no-set blank ---
PNT_NO FBM point number string no-con/no-set 1 1 to 32 chars
SCO signal cond.index short no-con/no-set 0 0-5,12-15, 50-56, 59
ATC air-to-close boolean no-con/no-set 0 0 to 1
PROPT propagate error opt boolean no-con/no-set 0 0 to 1
MEAS process input real con/set 0.0 RI1
HSCI1 high scale for meas real no-con/no-set 100.0 specifiable
LSCI1 low scale for meas real no-con/no-set 0.0 specifiable
DELTI1 change delta for meas real no-con/no-set 1.0 percent
EI1 eng units for meas string no-con/no-set % specifiable
MEROPT meas error option short no-con/no-set 0 0 to 2
HSCO1 high scale for output 1 real no-con/no-set 100.0 specifiable
LSCO1 low scale for output 1 real no-con/no-set 0.0 specifiable
DELTO1 change delta output 1 real no-con/no-set 1.0 percent
EO1 eng units for output 1 string no-con/no-set % specifiable
HOLIM high output limit real con/set 100.0 RO1
LOLIM low ouput limit real con/set 0.0 RO1
OSV output span variance real no-con/no-set 2.0 0.0 to 25.0%
BIAS bias real con/set 0.0 RI2
MSCALE measurement scalar real no-con/set 1.0 scalar
HSCI2 high scale for bias real no-con/no-set 100.0 percent
LSCI2 low scale for bias real no-con/no-set 0.0 specifiable
DELTI2 change delta for meas real no-con/no-set 1.0 percent
EI2 eng units for bias string no-con/no-set % specifiable

137
B0193AX – Rev AB 5. AOUT – Analog Output Block

Table 5-1. AOUT Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


BEROPT bias error option short no-con/no-set 0 0 to 2
BTRKOP bias tracking option boolean no-con/no-set 0 0 to 1
MA manual/auto boolean con/set 0 0 to 1
INITMA initialize MA short no-con/no-set 1 0 to 2
AUTSW auto switch boolean con/set 0 0 to 1
MANSW manual switch boolean con/set 0 0 to 1
MANFS manual if failsafe boolean no-con/no-set 0 0 to 1
MBADOP manual if bad option boolean no-con/no-set 0 0 to 1
MCLOPT manual clamp option boolean no-con/no-set 0 0 to 1
PRIBLK primary block boolean no-con/no-set 0 0 to 1
PRITIM primary cascade timer real no-con/no-set 0.0 seconds
INHOPT inhibit option short no-con/no-set 0 0 to 3
INHIB alarm inhibit boolean con/set 0 0 to 1
BTIME balance time real con/set 0.0 minutes
BAO bad alarm option boolean no-con/no-set 0 0 to 2
BAT bad alarm text string no-con/no-set blank 1 to 32 chars
BAP bad alarm priority integer con/set 5 1 to 5
BAG bad alarm group short no-con/set 1 1 to 8
FLBOPT fallback option short no-con/no-set 0 0 to 2
INITSE initial SE short no-con/no-set 0 0 to 2
SE supervisory enable boolean no-con/set 0 0 to 1
SUPOPT supervisory option short no-con/no-set 0 0, 1, 3
SUPGRP supervisory group short no-con/no-set 1 1 to 8
AMRTIN alarm regeneration timer integer no-con/no-set 0 0 to 32767 s
Non-Configurable Parameters
OUTPUTS
ALMSTA alarm status pack_l con/no-set 0 bit map
BAD bad I/O status boolean con/set 0 0 to 1
BCALCO back calc output real con/no-set 0.0 RI1
BLKSTA block status pack_l con/no-set 0 bit map
CRIT criticality integer con/no-set 0 0 to 5
FLBREQ fallback request short con/no-set 0 0 to 2
FS failsafe state boolean con/no-set 0 0 to 1
HOLIND high output limit indicator boolean con/set 0 0 to 1
INHSTA inhibit status pack_l con/no-set 0 bit map
INITO initialize out short con/no-set 0 ---
LOLIND low ouput limit indicator boolean con/set 0 0 to 1
OUT output real con/set 0.0 RO1
PRTYPE priority type integer con/no-set 0 0 or 8
RAWC raw counts real con/no-set 0.0 0 to 65535
SUP_IN supervisory input real con/set 0.0 RI1
SUPBCO supervisory back calc out real no-con/no-set 0 RI1
UNACK unacknowledge alarm boolean con/set 0 0 to 1
DATA STORES
ACHNGE alternate change integer con/no-set 0 -32768 to 32767

138
5. AOUT – Analog Output Block B0193AX – Rev AB

Table 5-1. AOUT Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


ALMOPT alarm options pack_l no-con/no-set 0 0 to 0xFFFFFFFF
DEFINE no config errors boolean no-con/no-set 1 0 to 1
DEV_ID FBM letterbug char[6] no-con/no-set blank 1 to 6 chars
ERCODE configuration error string no-con/no-set 0 1 to 43 chars
LOCKID lock identifier string no-con/no-set blank 8 to 13 chars
LOCKRQ lock request boolean no-con/set 0 0 to 1
OWNER owner name string no-con/set blank 1 to 32 chars
PERTIM period time real no-con/no-set 0.1 ---
PRSCAS cascade state short no-con/no-set 0 0 to 7
RI1 measurement range real[3] no-con/no-set 100,0,1 specifiable
RI2 bias range real[3] no-con/no-set 100,0,1 specifiable
RO1 output range real[3] no-con/no-set 100,0,1 specifiable

5.4.1 Parameter Definitions


ACHNGE Alternate Change is an integer output which is incremented each time a
block parameter is changed via a Set command.

ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

Bit Number1
(0 to 31) Configured Alarm Option When True
0 (Least Significant) Alarm Group 8 in Use
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use
22 Bad I/O Alarm Configured
1. Bit 0 is the least significant, low order bit.

139
B0193AX – Rev AB 5. AOUT – Analog Output Block

ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the AOUT block, only the unshaded bits in this diagram are
used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
B4
B5
B6
B7
B8
B9
CRIT PRTYPE

BAD

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: See param- ---
(Least Sig- eter PRTYPE for values
nificant) used in the AOUT block
5 to 7 CRIT_MSK Criticality; 5 = lowest ---
priority, 1= highest
22 BAD Bad I/O Alarm ALMSTA.B10
30 UNAK Unacknowledged ALMSTA.B2

* Bit 0 is the least significant, low order bit.

AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is gen-
erated.

ATC Air-to-Close is a configurable option that inverts the sense of the conver-
sion from engineering units to raw count output, for use with air to close
valves.

AUTSW Auto Switch, when true, forces the block into the Auto mode and secures
MA against sets. It is of lower priority than MANSW, and is overridden by
it if both parameters are true. It is also overridden by MBADOP if the Bad
condition causing the Manual mode is still present. AUTSW overrides any
connections to MA.

BAD Bad is a boolean output which is set true when the FBM or FBC has a
fatal fault or the output point in an FBC has bad status.

BAG Bad Alarm Group is a short integer input that directs Bad alarm messages
to one of eight groups of alarm devices.

140
5. AOUT – Analog Output Block B0193AX – Rev AB

BAO Bad Alarm Option is a configurable option that enables alarm generation
for each state change of the BAD parameter. The parameter values are:

0= No generation of Bad alarms.


1= Bad alarm generation if the FBM or FBC has
Bad status.
2= Bad alarm generation in the measurement
(MEAS or OUTPUT parameter) of a PID
block family, RATIO block, or BIAS block
when the MEAS or OUT parameter is con-
nected to the AOUT block.

BAP Bad Alarm Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the Bad alarm (1 is the highest priority).

BAT Bad Alarm Text is a user-configurable text string of up to 32 characters,


sent with the bad alarm message to identify it.

BCALCO Back Calculated Output is a real value that specifies to the upstream block
the value of MEAS which leaves OUT unchanged. If the upstream block
sets its output to the BCALCO value, bumpless cascade initialization is
assured. The upstream block normally connects BCALCO from the
AOUT block to its BCALCI input.

BEROPT Bias Error Option is a short integer option which determines the condi-
tions under which last good value functionality is provided for the input
BIAS. BEROPT is only active when PROPT is true. (See Section 5.6.3 for
a detailed definition.)

BIAS Bias is an input used to offset the measurement value. It can be used inde-
pendently, or in conjunction with MSCALE to achieve units conversion
of the measurement.

BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the AOUT block, only the unshaded bits in this dia-
gram are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
FBMR B23
B24
B25
B26
B27
B28
B29
B30
BADR B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
MAO

FBM
HOL

BAD

DEV
LOL

MA
ON
FS

141
B0193AX – Rev AB 5. AOUT – Analog Output Block

Bit Boolean
Number** Connection
(0 to 31) Name Description When True (B32 to B1)
6 TRK Local Panel in Use BLKSTA.B26
7 HLD Auto/Hold State BLKSTA.B25
8 FBM FBM or FBC Failure BLKSTA.B24
11 MA Manual = 0, Auto = 1 BLKSTA.B21
12 BAD Bad I/O BLKSTA.B20
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
20 WLCK Access Locked BLKSTA.B12
24 FS Output in Failsafe or Await- BLKSTA.B8
ing Cascade Closure after
Transition
26 MAO Manual/Auto Override BLKSTA.B6
Active
27 LOL Output Clamped at Low BLKSTA.B5
Limit
28 HOL Output Clamped at High BLKSTA.B4
Limit
29 SE Supervisory Control Enabled BLKSTA.B3
30 SC Supervisory Cascade Closed BLKSTA.B2
31 FLB Block in Supervisory Fallback BLKSTA.B1

* Bit 0 is the least significant, low order bit.

BTIME Balance Time is a real input that specifies the time constant, in minutes,
for the value of OUT to reach approximately 63 percent of the value cal-
culated by the algorithm, when the block output changes its mode of con-
trol.

BTRKOP Bias Track Option, when true, causes BIAS to track the manually set value
of OUT by the following back calculation:
BIAS = OUT - (MEAS * MSCALE)
The block must be in Manual, and BIAS must be unlinked.

CRIT Criticality is an integer output which, for the AOUT block, indicates the
priority of an active Bad alarm (1 is the highest priority). An output of
zero indicates the absence of alarms.

DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing, other than those involved in duplicate output channel detection.

142
5. AOUT – Analog Output Block B0193AX – Rev AB

(See ERCODE for the list of all possible validation errors in this block.) In
that case, no further processing of the block occurs, including further vali-
dation of remaining parameters. To return DEFINE to a true value, cor-
rect all configuration errors and reinstall the block. If DEFINE = 0, the bit
BLKSTA.UDEF = 1.

DELTI1 Change Delta for Input Range 1 is a real value that defines the minimum
percent of the input range that triggers change driven connections for
parameters in the range of RI1. The default value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.

DELTI2 Change Delta for Input Range 2 is a real value that defines the minimum
percent of the input range that triggers change driven connections for
parameters in the range of RI2. The default value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.

DELTO1 Change delta for Output Range 1 is a configurable real value that defines
the minimum percent of the output range that triggers change-driven
connections for parameters in the range RO1. The default value is 1.0 per-
cent. If communication is within the same control station that contains
the block’s compound, DELTO1 has no effect.

DESCRP Description is a user-defined string of up to 32 characters that describes


the block’s function (for example, “PLT 3 FURNACE 2 HEATER CON-
TROL”).

DEV_ID Device Identifier is a character array data store that indicates the 6-charac-
ter letterbug of the connected FBM or FBC.

EI1 Engineering Units for Input Range 1 provides the engineering units text
for the values of MEAS, BCALCO, and SUPBCO. The value configured
for this text string should be consistent with the values used for HSCI1
and LSCI1. “Deg F” and “pH” are typical entries.

EI2 Engineering Units for Input Range 2 provides the engineering units text
for the value of BIAS. The value configured for this text string should be

143
B0193AX – Rev AB 5. AOUT – Analog Output Block

consistent with the values used for HSCI2 and LSCI2. “Deg F” and “pH”
are typical entries.

EO1 Engineering Units for Output Range 1 provides the engineering units text
for the values of OUT, HOLIM, and LOLIM. The value configured for
this text string should be consistent with the values used for HSCO1 and
LSCO1. “Deg F” and “pH” are typical entries.

ERCODE Error Code is a string data store which indicates the type of configuration
error or warning which caused the block’s DEFINE to be set false. Valida-
tion of the configuration does not proceed past the first error or warning
encountered by the block logic. (The duplicate output channel condition
does not cause DEFINE to be set false.) The block detailed display shows
the ERCODE on the primary page, if it is not null. For the AOUT block,
the following list specifies the possible values of ERCODE, and the signif-
icance of each value in this block:
ERCODE Description
W44 HSCO1 less than or equal to LSCO1.
W48 SUPOPT or FLBOPT out of range.
W50 Invalid SCO.
W51 The connected FBM or FBC is not a type containing
analog output points.
W52 PNT_NO out of range for the specified FBM or FBC.
W54 Specified IOM_ID does not exist.
W59 Warning: This block and another AOUT or AOUTR
block are connected to the same FBM or FBC and point
number. Both blocks receive the same warning message.

FLBOPT Fallback Option is a configured input that defines the control action to be
taken by the block when a supervisory control fallback occurs:
0 = Make no change in MA (default)
1 = Set MA to Auto
2 = Set MA to Manual
FLBOPT overrides a linked MA parameter, but does not override the
AUTSW and MANSW parameters.

FLBREQ Fallback Request is an output, which constitutes an explicit request for the
block to go to the supervisory control fallback state specified by FLBOPT,
regardless of the value of its fallback timer.
0= Fallback not requested.
1= Fallback requested; recovery at block or group level.
(See Section 5.5.9.)
2= Fallback requested; recovery only at block level.
(See Section 5.5.9.)

144
5. AOUT – Analog Output Block B0193AX – Rev AB

FS Failsafe is a boolean output that is set true when the block detects that the
FBM has transitioned into the Failsafe state. While in this state, the block
uses a measurement value based on a back calculation from the value read
back from the FBM or FBC. Once set true, FS remains true until the cas-
cade has closed.

HOLIM High Output Limit is a real input that establishes the maximum output
value. If the block is in Auto and the algorithm tries to drive the output to
a value higher than or equal to HOLIM, or if the block is in Manual (with
MCLOPT true) and the manually set value of the output is higher than or
equal to HOLIM, the output is clamped at the HOLIM value and
HOLIND is set true.
Configure HOLIM within the output engineering range RO1 defined by
parameters HSCO1 and LSCO1 (see “Block Initialization” on page 155).
If you change the HSCO1 and LSCO1 values to expand the engineering
range, make sure you change the HOLIM value accordingly to prevent
output limiting at the old limit. The block does not automatically adjust
HOLIM for the expanded range.

HOLIND High Output Limit Indicator is a boolean output that is set true whenever
the output is clamped at the high output limit, HOLIM.

HSCI1 High Scale for Input Range 1 is a real value that defines the upper range
value for MEAS, SUP_IN, BCALCO, and SUPBCO. It is only used in
displays.

HSCI2 High Scale for Input Range 2 is a real value that defines the upper range
value for BIAS. It is only used in displays.

HSCO1 High Scale for Output Range 1 is a real value that defines the upper range
value for the block’s output.

INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting.

INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do
not disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the
time the alarm transitions into the inhibited state, clear the
alarm indicator.

145
B0193AX – Rev AB 5. AOUT – Analog Output Block

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
* Bit 0 is the least significant, low order bit.

INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state as specified in the checkpoint file.
The block asserts this initial M/A state whenever any one of the following
occurs:
 It is installed into the Control Processor database.
 The Control Processor undergoes a reboot operation.
 The compound in which it resides is turned on.
 INITMA itself is modified via the control configurator. (The
block does not assert INITMA on ordinary reconfiguration.)
INITMA is ignored if MA has an established linkage.

INITO Initialization Output is set true when the primary cascade is open for any
reason, and returned to false when cascade closure is detected. The INITO
output of a downstream block is normally connected to the INITI of the
next upstream block, and serves to notify the upstream block of the open

146
5. AOUT – Analog Output Block B0193AX – Rev AB

loop condition. The information conveyed by the short value of INITO is


currently contained in the status bits of BCALCO, but INITO/INITI
have been retained for reasons of backward compatibility. This block
keeps INITO True, for one cycle (PRIBLK = 0), until the acknowledge is
received from upstream (PRIBLK = 1 and PRITIM = 0.0), or for a fixed
time delay (PRIBLK = 1 and PRITIM = nonzero).

INITSE Initialize Supervisory Enable is a configured value that specifies the initial
state of SE when the block is installed, the containing compound is turned
on, or the control processor is rebooted. Options are:
0 = Disable (SE is set false)
1 = Enable (SE is set true)
2 = No change (SE retains its current value)
INITSE is not asserted when the block is initialized due to
reconfiguration.

IOMOPT FBM Option is a short integer specifying whether an FBM or FBC con-
nection to the block exists. Values are:
0= The block does not transmit the OUT value to an FBM or
FBC point. The value in OUT is conditioned as specified by
SCO.
1= The block transmits the OUT value to the FBM or FBC point
specified by IOM_ID and PNT_NO. The value is conditioned
as specified by SCO.
2= There is no connected FBM or FBC. The value in OUT is not
conditioned.

IOM_ID Fieldbus Module Identifier is a configurable string that specifies the path-
name of the FBM or FBC to which the block is connected.
IOM_ID has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOM_ID configuration. In this case, the 1-12
character ECB block name is sufficient.

LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.

LOCKRQ Lock Request is a boolean input which can be set true or false only by a set
command from the LOCK U/L toggle key on workstation displays. When
LOCKRQ is set true in this fashion a workstation identifier accompany-
ing the SETVAL command is entered into the LOCKID of the block.

147
B0193AX – Rev AB 5. AOUT – Analog Output Block

Thereafter, set requests to any of the block’s parameters are honored (sub-
ject to the usual access rules) only from the workstation whose identifier
matches the contents of LOCKID. LOCKRQ can be set false by any
workstation at any time, whereupon a new LOCKRQ is accepted, and a
new ownership workstation identifier written to LOCKID.

LOLIM Low Output Limit is a real input that establishes the minimum output
value. If the block is in Auto and the algorithm tries to drive the output to
a value lower than or equal to LOLIM, or if the block is in Manual (with
MCLOPT true) and the manually set value of the output is lower than or
equal to LOLIM, the output is clamped at the LOLIM value and
LOLIND is set true.
Configure LOLIM within the output engineering range RO1 defined by
parameters HSCO1 and LSCO1 (see “Block Initialization” on page 155).
If you change the HSCO1 and LSCO1 values to expand the engineering
range, make sure you change the LOLIM value accordingly to prevent
output limiting at the old limit. The block does not automatically adjust
LOLIM for the expanded range.

LOLIND Low Output Limit Indicator is a boolean output that is set true whenever
the output is clamped at the low output limit, LOLIM.

LOOPID Loop Identifier is a configurable string of up to 32 characters which iden-


tifies the loop or process with which the block is associated. It is displayed
on the detail display of the block, immediately below the faceplate.

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.

MA Manual/Auto is a boolean input that controls the block’s operating state


(0 = false = Manual; 1 = true = Auto). When in Auto, the output OUT is
updated in accordance with the block algorithm. In Manual, OUT is
released and updated only by sets from a display or an external program.

MANFS Manual if Failsafe is a configurable option which, when true, causes the
block to switch to the Manual mode when the connected point is reported
by the FBM or FBC to have transitioned into the Failsafe state. MANFS
has no effect when MA is linked.

MANSW Manual Switch, when true, forces the block into the Manual mode and
secures MA against sets. It is of higher priority than AUTSW, and over-
rides it if both parameters are true. MANSW also overrides any connec-
tions to MA.

148
5. AOUT – Analog Output Block B0193AX – Rev AB

MBADOP Manual if Bad Option is a manual override feature which, when true,
causes the block to go into Manual mode if MEAS or BIAS has Bad status,
or the FBM or FBC is Bad. See Section 5.7 for the relationship between
MBADOP and AUTSW/MANSW.

MCLOPT Manual Clamping Option, when true, causes the value of OUT as set in
Manual mode to be clamped by operational limits HOLIM and LOLIM.

MEAS Measurement is the process input which is optionally scaled, balanced,


and clamped before being made available as the block output OUT. It can
also be subjected to linear signal conditioning when output to an FBM or
FBC is required.

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.)

MSCALE Measurement Scalar is used to apply a gain factor to the measurement


input of the block before adding it to the bias factor and balance term to
produce the block output.

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

NR_INP Number of Inputs is a short value datastore representing the number of


inputs in the block. It is only used internally.

NR_OUT Number of Outputs is a short value datastore representing the number of


outputs in the block. It is only used internally.

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.

OWNER Owner is a string of up to 32 ASCII characters which is used to allocate


control blocks to applications. Attempts to set Owner are only successful
if the present value of Owner is the null string, an all-blank string, or iden-
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

149
B0193AX – Rev AB 5. AOUT – Analog Output Block

setting it to the null string; this value is always accepted, regardless of the
current value of Owner. Once set to the null string, the value can then be
set as desired.

PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)

Period Length Period Length


0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****
*If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.

PERTIM Period Time is a real data store which, in the case of the AOUT block,
contains the number of execution cycles in one minute. It is only used in
the calculation of the reset balance factor.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).

PNT_NO Point Number is the FBM or FBC point to which the AOUT block is
connected.

PRIBLK Primary Block is a configured boolean which should be set true when the
AOUT block is in a secondary position in a control cascade, and not oth-
erwise. When true, PRIBLK enables bumpless initialization of the pri-

150
5. AOUT – Analog Output Block B0193AX – Rev AB

mary cascade at initial startup or transfer of control. Depending on the


value of PRITIM, PRIBLK 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 (PRITIM = 0.0), or until the
time defined by PRITIM expires (PRITIM > 0.0). In the latter case, the
explicit acknowledge from the upstream block is not needed.
Use PRIBLK in a cascade situation when the source of the block's input
connection needs to be initialized.
Refer to “PRIBLK and PRITIM Functionality” on page 165 for more
information on this parameter.

PRITIM Primary Cascade Timer is a configurable parameter used to delay the clos-
ing of the cascade to a primary block, when the output is initialized in the
AOUT block. It is used only if the PRIBLK option is set. The cascade is
closed automatically when the timer expires without requiring an explicit
acknowledge by the upstream block logic.
Refer to “PRIBLK and PRITIM Functionality” on page 165 for more
information on this parameter.

PROPT Propagate Error Option is a boolean input which, when the block is in
Auto, determines whether errors in the MEAS or BIAS parameters causes
the Error status bit of OUT to be set true. In addition, a true value of
PROPT causes MEAS to have last good value functionality based on the
error types specified by MEROPT. Similarly, PROPT and BEROPT,
taken together, determine whether BIAS has last good value functionality.
See Section 5.6.3 for details of PROPT, MEROPT, and BEROPT.

PRSCAS Present Cascade State is a data store that indicates the cascade state. It has
the following possible values:
Value State Description
1 “INIT_U” Unconditional initialization of the primary
cascade is in progress.
2 “PRI_OPN” The primary cascade is open.
3 “INIT_C” Conditional initialization of the primary cas-
cade is in progress.
4 “PRI_CLS” The primary cascade is closed.
5 “SUP_INIT” The supervisory cascade is initializing.
6 “SUP_OPN” The supervisory cascade is open.
7 “SUP_CLS” The supervisory cascade is closed.

PRTYPE Priority Type is an indexed output that indicates the alarm type of the
highest priority active alarm. The PRTYPE output of this block consists of
the following possible values:
0 = No active alarm
8 = Bad

151
B0193AX – Rev AB 5. AOUT – Analog Output Block

RAWC Raw Count is the value of the selected input source after any necessary
scaling, balancing, clamping, and conditioning are applied. If IOMOPT =
1, the value of RAWC is transferred to the FBM or FBC, provided the
ECB indicates normal status.

RI1 Range Input 1 is a real array consisting of the three parameters HSCI1,
LSCI1, and DELTI1. The array members are configured by their individ-
ual names; however, RI1 and its members can, optionally, be accessed on
an array basis by user tasks and displays.

RI2 Range Input 2 is a real array consisting of the three parameters HSCI2,
LSCI2, and DELTI2. The array members are configured by their individ-
ual names; however, RI2 and its members can, optionally, be accessed on
an array basis by user tasks and displays.

RO1 Range Output 1 is a real array consisting of the three parameters HSCO1,
LSCO1, and DELTO1. The first two of these array members are config-
ured by their individual names. (DELTO1 is unused). RO1 and any of its
members can be optionally, be accessed on an array basis by user tasks and
displays.

SCO Signal Conditioning Output is a configured option which specifies how


the final block output, in engineering units, is converted to a raw count
compatible with the electrical characteristics of the FBM or FBC. The use
of the SCO values is described in Section 5.5.4.5. When IOMOPT is set
to 0, you can use output signal conditioning without a connected FBM or
FBC, for test purposes.

SE Supervisory Enable is a boolean input that enables or disables supervisory


control in the block. It is not configurable, and should only be set by the
supervisory controller.
0 = Disable
1 = Enable

SUPBCO Supervisory Back Calculated Output is a real value that indicates the value
of SUP_IN which would leave OUT unchanged. If the supervisory appli-
cation sets its output to the BCALCO value, bumpless initialization of the
supervisory cascade is assured. SUPBCO also contains the following status
bits:
Status Meaning
Bit 10 = 1 Initialize SUP_IN
Bit 13 = 1 SUP_IN is limited high
Bit 14 = 1 SUP_IN is limited low
Bit 13 = 1 and Bit 14 =1 Supervisory cascade is open

SUPGRP Supervisory Group is a configured short integer that assigns this block to
one of eight groups for purposes of supervisory control fallback timing.

152
5. AOUT – Analog Output Block B0193AX – Rev AB

SUPOPT Supervisory Option is a configurable short integer input that specifies


whether or not this block is under control of a Supervisory Control appli-
cation:
0 = No Supervisory control (default)
1 = Set Point Control (SPC) of the block’s measurement (Supervisory set-
point control (SSC))
3 = SPC, with an implicit acknowledge by the CP
Be aware that option 1 requires an explicit acknowledge by the application
software to close the supervisory cascade. This must be done by setting the
ACK status bit in the SUP_IN parameter using special OM access func-
tions.

SUP_IN Supervisory Input is the input that the block uses as the measurement
when supervisory control is enabled. It is driven by the supervisory appli-
cation. The supervisor also uses the Acknowledge status bit of SUP_IN
(Bit 10) to indicate that a request to initialize has been honored, and that
the supervisory cascade may be closed.

TYPE When you enter “AOUT” or select it from a configurator list, an identify-
ing integer is created specifying this block type.

UNACK Unacknowledge is a boolean output which is set true, for notification pur-
poses, whenever the block goes into alarm on either the primary or sec-
ondary side. It is settable, but sets are only allowed to clear UNACK to
false, and never in the opposite direction. The clearing of UNACK is nor-
mally via an operator Acknowledge pick on a default display, user display,
or Current Alarms Display, or via a user task.

153
B0193AX – Rev AB 5. AOUT – Analog Output Block

5.5 Functions
5.5.1 Detailed Diagram

(M)
MSCALE OUT BTIME LOLIM HOLIM
MEAS
SUP_IN O MA
Last Good Value SCALING BALANCING CLAMPING O O OUT
Back Calculated Input (A)

Bias BCALCO
Back
Selection OUT
Calculation SUPBCO

HSCO1 LSCO1 SCO

OUT SIGNAL
RAWC
IOMOPT = 0,1 CONDITIONING

To
AND
IOMOPT = 1 ECB
SUPOPT
SE AND O USE SUP_IN
BLKSTA.SC Failsafe
AND FS
Transition Cycle
BLKSTA.FS

AND Manual
MANFS
MEAS.BAD
MEAS.OOS OR MEAS.ACK FS
MEAS.Disconnect MEROPT=1 AND
BLKSTA.FS
PROPT
Auto AND USE LAST
OR O GOOD VALUE
MEAS.BAD MEROPT= 2
MEAS.OOS AND USE BACK
OR Back
MEAS.Disconnect AND O CALCULATED
MEAS.ERROR Initialization Cycle Calculation
INPUT

FBM/FBC BAD
OR BAD
FBC Point BAD
BLKSTA.BAD
OUT.BAD
BCALCO.BAD
OUT.SECURE
FBM/FBC OOS OUT.OOS
BCALCO.OOS
OUT.SECURE
Figure 5-2. AOUT Block Operational Diagram

154
5. AOUT – Analog Output Block B0193AX – Rev AB

5.5.2 Block Initialization


Key Parameters: OSV, HOLIM, LOLIM, HSCO1, LSCO1, OUT, MEAS, BIAS, MSCALE,
PROPT, MEROPT, BEROPT, MA
The AOUT block initializes under any one of the following conditions:
 The block is installed.
 Any parameter of the block is reconfigured by the Integrated Control Configurator.
 The compound in which the block resides is turned on.
 The control processor containing the block is rebooted.
Whenever the block initializes, the following actions are taken, prior to any other block process-
ing activity:
 Block validation is performed (see Section 5.5.3).
 If Output Span Variance (OSV) has been configured less than 0.0 or greater than
25.0, it is clamped to 0.0 or 25.0 respectively, and this clamped value is used inter-
nally. The OSV parameter value itself is not modified, however.
 If HOLIM has been configured greater than High Scale for Output Range 1
(HSCO1) as adjusted by OSV, the parameter value is modified to the value:
HOLIM = HSCO1 + (OSV / 100.0) * (HSCO1 - LSCO1)
where LSCO1 is Low Scale for Output Range 1.
Similarly, if LOLIM is configured less than LSCO1 as adjusted by OSV, the value of
LOLIM is modified to:
LOLIM = LSCO1 - (OSV / 100.0) * (HSCO1 - LSCO1)
An attempt to set HOLIM or LOLIM outside of these limits, at any time, also results
in the same modifications.
 The readback value of the analog point is recovered from the Equipment Control
Block (ECB) and subjected to reverse signal conditioning to obtain an initial value of
OUT. This value of OUT is used, if necessary, in the back calculations described in
the next two items. These back calculations are only performed when it is necessary to
simulate a last good value for MEAS or BIAS on the first execution cycle.
 The status of MEAS is checked for the existence of a last good value condition. (The
last good value condition depends on the values of Propagate Error Option (PROPT),
Measurement Error Option (MEROPT), and Manual/Auto (MA), and the type of
error in MEAS. See Section 5.6.3.) Since this is the first execution cycle, there is no
previous history from which to obtain a last good value for MEAS. In order to avoid
bumping the output OUT, the value of MEAS used in this cycle is obtained by a back
calculation as follows:
MEAS used this cycle = (OUT-BIAS)/MSCALE.
 The status of BIAS is similarly checked. If last good value functionality is determined
to be required for BIAS (see Section 5.6.3), it is back calculated according to the fol-
lowing rule:
BIAS = OUT - (MEAS used this cycle * MSCALE)

155
B0193AX – Rev AB 5. AOUT – Analog Output Block

The value of “MEAS used this cycle” in this BIAS equation is the one selected by the
input source selection process described in Section 5.5.4, so that the output is not
bumped.
After block initialization, the block is processed normally on the remainder of the first execution
cycle.

5.5.3 Block Validation


Key Parameters: ERCODE, HSCO1, LSCO1, SUPOPT, FLBOPT, SCO, IOM_ID, PNT_NO,
IOMOPT
Whenever the block initializes (see Section 5.5.2), the following six types of validation are carried
out:
 HSCO1 is verified as having been configured greater than LSCO1. If HSCO1 is less
than or equal to LSCO1, Error Code (ERCODE) is set to the string “W44 –
INVALID ENGINEERING RANGE”.
 Supervisory Option (SUPOPT) is validated as having been configured with the values
0, 1, or 3 which are the only valid ones for the AOUT block. If SUPOPT is not 0, 1,
or 3, ERCODE is set to the string “W48 – INVALID BLOCK OPTION”.
 Fallback Option (FLBOPT) is validated as having been configured with a value
between 0 and 2, which is the only valid range for the AOUT block. If FLBOPT is
not in this range, ERCODE is set to the string “W48 – INVALID BLOCK
OPTION”.
 Unless FBM Option (IOMOPT) is set to 2, SCO is validated as configured with a
value in the range 0 to 5 or 12 to 15 inclusive. If SCO is not in this range, ERCODE
is set to the string “W50 – INVALID SIGNAL CONDITIONING INDEX”. (The
value IOMOPT = 2 indicates that the block operates without an FBM or FBC con-
nected, and that signal conditioning is not applied to the input.)
 The ECB named in Fieldbus Module Identifier (IOM_ID) is searched for in the data-
base. If it cannot be located, ERCODE is set to the string “W54 – ECB DOES NOT
EXIST”.
 If an FBM or FBC is connected, but it is not a type containing analog output points.
ERCODE is set to the string “W51 – INVALID HARDWARE/SOFTWARE
TYPE”.
 If an FBM or FBC is connected, Point Number (PNT_NO) must be one of the ana-
log output points. If not, ERCODE is set to the string “W52 – INVALID 1/O
CHANNEL/GROUP NUMBER”.
The following validation, which is called duplicate output channel detection, is intended to alert
you to the fact that this block and another AOUT or AOUTR block are connected to the same
output point. It is not automatically carried out every time the block is initialized, since it is costly
in terms of system resources. This check is performed under any one of the following conditions:
 The control processor is rebooted.
 The AOUT block is installed.
 An ECB connected to this block is installed or reconfigured.
 IOMOPT is modified.
 IOM_ID is modified.

156
5. AOUT – Analog Output Block B0193AX – Rev AB

 The output point number PNT_NO is modified.


When duplicate output detection is performed for any AOUT or AOUTR block, the entire data
base is checked for duplicate analog output channels.
All blocks connected to the same output point have their ERCODE parameters set to the string
“W59 – DUPLICATE OUTPUT CHANNEL”, but none of the blocks are set Undefined. The
duplicate output does not necessarily constitute a conflict, since the other block may be in a com-
pound which is not intended to run at the same time as the compound containing this AOUT
block, or the duplicate connection may be desired as part of an elaborate control scheme.

5.5.4 Output Processing


Key Parameters: IOM_ID, PNT_NO, MEAS, SUP_IN, OUT, RAWC
You specify the destination FBM or FBC in the IOM_ID parameter, and the point within the
FBM or FBC by the PNT_NO parameter. The following are the FBMs or FBCs and point num-
bers providing valid output destinations for the AOUT block

Table 5-2. AOUT Block Destinations

FBM ECB Functional Description Valid Output Points


FBM204 ECB2 4 Analog In, 4 Analog Out 5 to 8
FBM205 ECB2 4 Analog In, 4 Analog Out, Redundant 5 to 8
FBM237 ECB53 8 Analog Out 1 to 8
FBM04 ECB2 4 Analog In, 4 Analog Out 5 to 8
FBM05 ECB2 4 Analog In, 4 Analog Out, Redundant 5 to 8
FBM06 ECB4 4 Pulse Rate In, 4 Analog Out 5 to 8
FBM17 ECB9, 4 Analog In, 2 Analog Out 5 to 6
34, 36 4 Digital In, 4 Digital Out
FBM37 ECB53 8 Analog Out 1 to 8
FBM39 ECB23 4 IFD In, 4 Analog Out 5 to 8
FBM44 ECB23 4 IFD In, 4 Analog Out, Dual Baud 5 to 8
Rate, Redundant Output
FBM46 ECB38R 4 IFD In, 4 Analog Out, Dual Baud 5 to 8
246 Rate, Redundant Input/Output
FBC04 ECB43 16 Analog Out 1 to 16
FBC04 ECB43 16 Analog Out, Redundant 1 to 16
Redundant

All analog output points in FBMs and FBCs provide 0 to 20 mA outputs with the exception of
FBM17, which provides 0 to 10 V dc outputs.
The first step in generating the block output is selection of the input source, which is done
according to the following rules:
 If supervisory control is enabled, as described in Section 5.5.9, the supervisory input
SUP_IN is used as the input source, provided the supervisory cascade is closed. This
closure is indicated by the value of 7 in Present Cascade State (PRSCAS).

157
B0193AX – Rev AB 5. AOUT – Analog Output Block

 If supervisory control is not enabled, or the supervisory cascade is open, then the value
of MEAS is used as the input source, unless MEAS has the type of error requiring last
good value retention. The conditions for last good value retention are described in
Section 5.6.3.
 If the last good value is required, then the input source is the value of MEAS from the
last processing cycle. (There is no last good value functionality when SUP_IN is the
input source.)
In order to prevent the confusion that could result from seeing more than one input value for the
block, the following steps are taken:
 Whenever the input source is SUP_IN, its value is copied to MEAS, provided MEAS
is unlinked.
 Whenever the input source is MEAS, its value is copied to SUP_IN.
 If the input source is the last good value of MEAS, then that value is copied to
SUP_IN.
The selected input source is then scaled, balanced, clamped, and conditioned, in that order. The
result before conditioning is stored in OUT, and the result after conditioning in RAWC.

5.5.4.1 Zero and Span Scaling


Key Parameters: MEAS, SUP_IN, BIAS, MSCALE
You scale the input by using MSCALE and BIAS, according to the following equation:
Scaled Measurement = (MEAS_Value * MSCALE) + BIAS_Value
In this expression, MEAS_Value represents the measurement actually used in this execution cycle,
rather than the original value of the MEAS parameter. It is obtained from one of the following:
 SUP_IN
 MEAS
 the last good value of MEAS
 a back calculation if this is the first cycle.
(See Section 5.5.2 and Section 5.5.4.)
In similar fashion, BIAS_Value is obtained from one of the following:
 BIAS
 the last good value of BIAS
 a back calculation if this is the first cycle.
One use of scaling is to make the measurement value dimensionally compatible with the desired
output units, as for example in the conversion of temperature measurements from Celsius to
Fahrenheit scales. In that conversion, MSCALE is set to 1.8 and BIAS is 32.0.
To ignore the scaling function, leave MSCALE at the default value of 1.0 and leave BIAS at the
default value of 0.0. (Since BIAS is connectable, you can use it to offset the measurement inde-
pendently of the action of MSCALE.)

158
5. AOUT – Analog Output Block B0193AX – Rev AB

5.5.4.2 Reset Balance Action


Key Parameters: OUT, MEAS, BIAS, MSCALE, BTIME
The scaled measurement computed as described in Section 5.5.4.1 is modified by a balance term
B_Term:
Balanced Measurement = (MEAS_Value * MSCALE) + BIAS_Value + B_Term
B_Term is initialized to 0.0 and remains at this value under steady state conditions. When the
form of control of the output changes, however, B_Term is set to the (normally) nonzero value:
B_Term = OUT - (MEAS_Value * MSCALE) - BIAS_Value
The value of OUT is the output as calculated during the previous execution cycle.
MEAS_Value * MSCALE + BIAS_Value is the computed value of the output for this cycle.
When B_Term is first set, therefore, it represents the negative of the step function that would have
occurred in the output if balance action were not invoked.
On each cycle, including the one in which B_Term is initially set, a bleeding action is applied to
B_Term so that it decays with a response characterized by a first order lag.
New B_Term = Previous B_Term - (Previous B_Term / ( 1))
Balance Time (BTIME) should be specified as the number of minutes required for B_Term to
decay by approximately 63%, and  is the number of execution cycles in BTIME minutes.
If you configure or set BTIME with a negative value, it automatically adjusts to 0.0 (no balancing
action) and this value is entered into the parameter. If BTIME is linked, it is used as 0.0 in each
cycle in which its source is negative.
Figure 5-3 shows the effect of balancing action when a change in the form of control would other-
wise have produced a step function in the output.

BALANCED OUTPUT
OUPUT STEP

63% 100%

BTIME

Figure 5-3. Reset Balance Action

The conditions constituting a change in form of control of the output, and setting B_Term, are:
 The measurement value in use changes to the current value after having been held at
the last good value for one or more previous cycles.
 The bias value undergoes a similar transition.
 The primary cascade closes this cycle.
 The supervisory cascade closes this cycle.

159
B0193AX – Rev AB 5. AOUT – Analog Output Block

5.5.4.3 Clamping
Key Parameters: HOLIM, LOLIM, HOLIND, LOLIND, HSCO1, LSCO1
The scaled and balanced value as computed in Section 5.5.4.2 is clamped so that it does not
exceed the LOLIM and HOLIM operational limits.
If the computed value is less than or equal to LOLIM:
 It is set equal to LOLIM.
 Low Output Limit Indicator (LOLIND) is set true.
 Status bit BLKSTA.LOL is set true.
 High Output Limit Indicator (HOLIND) is set false.
 Status bit BLKSTA.HOL is set false.
If the computed value is greater than or equal to HOLIM:
 It is set equal to HOLIM.
 HOLIND is set true.
 Status bit BLKSTA.HOL is set true.
 LOLIND is set false.
 Status bit BLKSTA.LOL is set false.
Otherwise the value is not at or beyond either limit, and both indicators and both status bits are
set false.
Note that neither the operational limits HOLIM and LOLIM nor the range limits HSCO1 and
LSCO1 can be inverted, and that the operational limits are always within the range limits. The
block logic enforces the following constraints on these parameters:
 LSCO1 < HSCO1
 LOLIM  HOLIM
 LOLIM  LSCO1
 HOLIM  HSCO1

NOTE
If you change the HSCO1 and LSCO1 values to expand the engineering range,
make sure you change the HOLIM and LOLIM values accordingly to prevent out-
put limiting at the old limits. The block does not automatically adjust HOLIM and
LOLIM for the expanded range.

5.5.4.4 Back Calculated Outputs


Key Parameters: BCALCO, SUPBCO, OUT, BIAS, MSCALE
Once the value of OUT has been determined, the following back calculation is performed to
establish the values of Back Calculated Output (BCALCO) and Supervisory Back Calculated
Output (SUPBCO), which are used in intialization of the primary and supervisory cascades,
respectively:
BCALCO = SUPBCO = (OUT - BIAS_Value - B_Term) / MSCALE

160
5. AOUT – Analog Output Block B0193AX – Rev AB

BCALCO and SUPBCO are also used to indicate an open cascade situation, either to the
upstream block (in the case where the primary cascade is in use) or the supervisory application (if
supervisory control is enabled). The AOUT block sets status bits 13 and 14 simultaneously true
in BCALCO or SUPBCO to indicate an open cascade.
When the cascade is not open, these bits of BCALCO or SUPBCO are used to inform the
upstream block that the AOUT output is clamped at a limit, as follows:
 Bit 13 of BCALCO/SUPBCO true indicates that HOLIND is true.
 Bit 14 of BCALCO/SUPBCO true indicates that LOLIND is true.

5.5.4.5 Signal Conditioning


Key Parameters: IOMOPT, SCO, OUT. RAWC, RO1
If the output (OUT) of the block is sent to an FBM or FBC, then it must be converted, by the
application of signal conditioning, from engineering units within Range Output 1 (RO1) into
raw count, which is an integer value in the range used by the particular FBM or FBC. The value
IOMOPT = 1 specifies that an FBM or FBC is connected.
You can also apply signal conditioning, for test purposes, when no FBM or FBC is connected.
You should configure IOMOPT = 0 in this case. The values of IOM_ID and PNT_NO are
ignored.
The value IOMOPT = 2 indicates that there is no connected FBM or FBC, and that signal condi-
tioning is not used. The values of IOM_ID, PNT_NO, and SCO are all ignored.
The values of SCO, which must be in the ranges listed below, cause various inverse linear or
inverse square root signal conditionings to be applied to the scaled, balanced, and clamped input.
The signal conditioning algorithms are described in the following list. In each case, the input to
the algorithm is the value of OUT, and the output of the algorithm is stored in RAWC.

SCO = 0: No Conditioning
RAWC = OUT
SCO = 1: Inverse Linear (0 to 64000)
Analog Output 0 to 20 mA
RAWC = (OUT - LSCO1) * 64000/(HSCO1 - LSCO1)
SCO = 2: Inverse Linear (1600 to 64000)
Analog Output 0 to 10 V dc
RAWC = ((OUT - LSCO1) * 62400/(HSCO1 - LSCO1)) + 1600
SCO = 3: Inverse Linear (12800 to 64000)
Analog Output 4 to 20 mA
RAWC = ((OUT - LSCO1) * 51200/(HSCO1 - LSCO1)) + 12800
SCO = 4: Inverse Square Root (0 to 64000)
Analog Output 0 to 20 mA
RAWC = ((OUT - LSCO1) * 64000/(HSCO1 - LSCO1))2 / 64000
SCO = 5: Inverse Square Root (12800 to 64000)
Analog Output 4 to 20 mA
RAWC = ((OUT - LSCO1) * 51200/(HSCO1 - LSCO1))2 / 51200 + 12800

161
B0193AX – Rev AB 5. AOUT – Analog Output Block

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: Inverse Linear (0 to 16383)
RAWC = (OUT - LSCO1) * 16383 / (HSCO1 - LSCO1)
SCO = 15: Inverse Square Root (1600 to 64000)
Analog Output 0 to 10 V dc
RAWC = ((OUT - LSCO1) * 62400 / (HSCO1 - LSCO1))2 / 62400 + 1600
SCO = 50: Inverse linear (0 to 65535)
RAWC = (OUT - LSCO1) * 65535 / (HSCO1 - LSCO1)
SCO = 51: Inverse linear ( -32768 to 32767 )
RAWC = (OUT - LSCO1) * 65535 / (HSCO1 - LSCO1) - 32768
SCO = 52: Inverse linear ( 0 to 32767 )
RAWC = (OUT - LSCO1) * 32767 / (HSCO1 - LSCO1)
SCO = 53: Inverse linear ( 0 to 1000 )
RAWC = (OUT - LSCO1) * 1000 / (HSCO1 - LSCO1)
SCO = 54: Inverse linear ( 0 to 9999 )
RAWC = (OUT - LSCO1) * 9999 / (HSCO1 - LSCO1)
SCO = 55: Inverse linear ( 0 to 2048 )
RAWC = (OUT - LSCO1) * 2048 / (HSCO1 - LSCO1)
SCO = 56: Inverse linear ( 409 to 2048 )
RAWC = (OUT - LSCO1) * 1639 / (HSCO1 - LSCO1) + 409
SCO = 59: Inverse linear ( 0 to 4095 )
RAWC = (OUT - LSCO1) * 4095 / (HSCO1 - LSCO1)

The following applies to SCO = 50 through SCO = 59:


 y = engineering units value; x = normalized counts value.
 Linear scaling of the analog outputs is also provided.
Each SCO value has an associated raw span, consisting of the difference between the upper and
lower range values of the raw value. For example, SCO = 2 has a raw span of 64000 minus 1600,
or 62400. The upper range value is always 64000 for any nonzero SCO.
The block also has an engineering units span, which is the difference between HSCO1 and
LSCO1
The effect of inverse linear signal conditioning is to place RAWC at the same relative position
within the raw span as OUT occupies within the engineering units span.
Example:
If
LSCO1 = 200C
HSCO1 = 900C
OUT = 500C

162
5. AOUT – Analog Output Block B0193AX – Rev AB

SCO =2
Then
RAWC = ((50 - 20) * 62400 / (90 - 20)) + 1600
= (30 * 62400/70) + 1600 = 28343

Inverse square root signal conditioning is similar, but the relationship between RAWC and OUT
is non-linear.
When Air-to-Close (ATC) is true, the signal conditioning reverses the sense of the conversion. For
example, with SCO = 3, an output at 100 percent of the range (OUT = HSCO1) is converted
into a RAWC value of 12800. This drives the FBM or FBC output at 4 mA. A 0 percent output
(OUT = LSCO1) is converted into a RAWC of 64000, which drives 20 mA. Intermediate values
are converted proportionately.

5.5.4.6 Output to FBM or FBC


Key Parameters: IOMOPT, RAWC, ECB Parameter OPSTAT
If an FBM or FBC is connected, then the selected input is ready for physical output after any
required scaling, balancing, clamping, and signal conditioning are applied. This is the value stored
in RAWC.
Before the output is sent to the FBM or FBC however, the Module Operational Status (OPSTAT)
parameter of its ECB is examined to determine its status.
 If OPSTAT = 6 then the FBM or FBC is considered healthy, and the value of RAWC
is transferred to the ECB.
 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.

5.5.4.7 Configuring the AOUT Block for Intelligent Positioners


The Analog Output (AOUT) block is necessary in order to pass the controlled signal to the Intel-
ligent Positioner. By specifying an output signal conditioning value (SCO) of 14, the block is told
to convert the output value to a signal understood by the positioner. The AOUT connects directly
to the ECB74 (child), as shown in Figure 5-4; it is the ECB that actually communicates with the
positioner. Characterization for the particular valve being controlled is performed in the posi-
tioner itself. Specification of this characterization is done in the positioner through the Intelligent
Field Device Configurator (IFDC) or through the PC20.
AOUT allows the values of the setpoint to pressure parameters to be displayed as a series of
straight line segments over the operating range in the ECB faceplates in the process displays.
Configure AOUT for the Intelligent Positioner as you would normally except for the application-
specific parameter PNT_NO. AOUT software requires that the positioner’s communications be
assigned to the first channel in FBM43 (or FBM243), so this parameter, used to identify the
positioner’s intelligent output to be accessed via the ECB74, must be set to 1.
The IOMOPT parameter must be set to 1, the default value, reflecting a hardware connection.
This indicates that the block transmits the OUT value to the FBM point specified by IOM_ID
and PNT_NO. The value is conditioned as indicated by SCO.
The following parameters are mandatory when connecting the AOUT block to the ECB74:

163
B0193AX – Rev AB 5. AOUT – Analog Output Block

 IOM_ID = COMPOUND:BLOCK of ECB74 (can be the letterbug if the com-


pound is a station _ECB and the block name is the letterbug of the Intelligent
Positioner)
 PNT_NO = 1 (Always = 1)
 SCO = 14
 IOMOPT = 1
The following figure shows a typical configuration for the Intelligent Positioner.

AIN

PNT
MEAS
REALM REALM
or PID or
MEALM MEALM
Optional Real (REALM) OUT or Optional Real (REALM)
or Measurement (MEALM) or Measurement (MEALM)
Alarm Block Alarm Block
AOUT
To Displays and
Maintenance or
Data Collection
ECB74 ECB18

ECB73

FBM43/243

IT

Water

Intelligent Positioner Intelligent Transmitter

Figure 5-4. Typical Configuration for Intelligent Transmitters with Window ECB

5.5.5 Changing Engineering Range Limits


Key Parameters: HOLIM, HSCO1, LOLIM, LSCO1, OSV
Changing engineering range limits in the AOUT block may limit output with unexpected results.
For example, after changing the engineering units in the AOUT block from 4-20 to 0-100, the
block output may still be limited in the 4-20 range.
The absolute engineering range limits of the output in this block is specified by the LSCO1,
HSCO1, and OSV parameters. However, this block also contains output limit values (LOLIM

164
5. AOUT – Analog Output Block B0193AX – Rev AB

and HOLIM), which are normally used to constrain the output to operating limits that are nar-
rower than the engineering range limits.
When this block runs, the LOLIM and HOLIM limit values are not allowed to exceed the engi-
neering range. In the example noted above, the block logic sets LOLIM=4 and HOLIM=20 when
the block initializes, since LSCO1=4 and HSCO1=20.
When the block initializes with the modified engineering range (LSCO1=0 and HSCO1=100),
the LOLIM, HOLIM values are not modified since they are already within the new engineering
range. As a result, the output will remain limited between 4-20.
To expand the engineering range, also adjust the LOLIM and HOLIM values accordingly by set-
ting them to their desired values. Once this is done, the new limit values will be used correctly to
constrain the output value.

5.5.6 Hold State


Key Parameters: OUT, PRSCAS
The Hold state is a substate of Auto, in which OUT is unchanged by the block algorithm. It is
used to prevent uninitialized input data from an open cascade from affecting the block output.
The Hold state is entered when the primary or the supervisory cascade is opened, and exited when
the cascade is closed.
On any cycle in which the block is in Auto and in Hold state, the status bit BLKSTA.HLD is set
true, unless a local panel is in use (indicated by BLKSTA.TRK true).

5.5.7 PRIBLK and PRITIM Functionality


The Primary Block (PRIBLK) parameter indicates whether the AOUT block has a connection
from an upstream block (PRIBLK=1) or not (PRIBLK=0). Its value, together with that of the
Primary Cascade Timer (PRITIM), determines whether the AOUT block remains in Hold for a
fixed time delay (of length defined by PRITIM), or ends the Hold when the Acknowledge status
bit (Bit 10) of MEAS is detected from the upstream block (if PRITIM = 0.0). During initializa-
tion, the acknowledgement is not required and a Hold of one cycle only occurs.

5.5.8 Failsafe State


Key Parameters: FS, MANFS
During each execution cycle, the block inspects the ECB to determine whether the FBM or FBC
has reported the output point in the Failsafe state. If so, and if the state did not exist in the previ-
ous execution cycle, then this is considered a “Failsafe transition”.
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.

165
B0193AX – Rev AB 5. AOUT – Analog Output Block

5.5.9 Supervisory Control


Key Parameters: SUP_IN, SUPOPT, SE, INITSE, SUPBCO, SUPGRP, FLBOPT, FLBREQ,
Station Block Parameters
Supervisory control consists of features which permit a user application, such as a computer con-
trol program, to directly control the measurement input of the AOUT block. When supervisory
control is “enabled”, that is, active, the block input is taken from SUP_IN rather than MEAS.
Bumpless initialization of this input is accomplished by considering the supervisory application to
constitute a primary block above the AOUT block in a supervisory cascade. This cascade exists in
parallel with the usual, or “primary” cascade; however, only one cascade or the other is active at
any one time.
If SUPOPT is 1 or 3, you can place the block under supervisory control through the use of Super-
visory Enable (SE) and Initialize Supervisory Enable (INITSE).
 Setting SE true enables supervisory control and causes the status bit BLKSTA.SE to be
set true. Setting it false causes the block input to be taken from MEAS, and status bits
BLKSTA.SE, BLKSTA.SC, and BLKSTA.FLB to be set false.
 INITSE establishes the value of SE when the block is initialized for any reason except
reconfiguration of a parameter. The values of INITSE are:
 INITSE = 0: Supervisory control is disabled. SE, BLKSTA.SE, and
BLKSTA.SC are set false.
 INITSE = 1: Supervisory control is enabled. SE and BLKSTA.SE are set true.
 INITSE = 2: The previous values of SE and the BLKSTA status bits are retained.
These values are the ones stored in the checkpoint file (reboot case), the default
values (block install case), or the database (compound turn-on case).
If supervisory control is enabled in any fashion, status bit BLKSTA.SC is set true whenever the
supervisory cascade is closed, and not otherwise.
The Supervisory Back Calculated Output (SUPBCO) provides the current measurement and ini-
tialization bits to the Supervisory Application Program. When Supervisory Enable (SE) is set by
the application program or operator, the block is prepared to do Supervisory Setpoint Control
(SSC) functions. When the proper handshaking occurs with the application software, the block
accepts sets to the Supervisory Setpoint, (SUP_IN). If the block is in Auto, it then uses the
SUP_IN in the calculation of the block’s output.
If SUPOPT is set to 1, the handshake may require the application software to return an explicit
acknowledge to close the supervisory cascade. The software must set the ACK status bit in the
SUP_IN parameter using special OM access functions. However, if SUPOPT is set to 3, this
acknowledgement is implicitly provided by the CP and is not required from the software. In the
latter case, the CP closes the supervisory cascade automatically when the supervisory input
(SUP_IN) is written by the application, provided the block is in the Supervisory Initialization
(SUP_INIT) state. The control block enters the SUP_INIT state when supervisory control is
enabled in the block and the cascade is closed downstream. Upon entering this state, the CP sets
the initialize request bit (INITC) in the SUPBCO parameter for the application software. When
SUP_IN is then written by the software, the CP access logic sets the ACK status automatically in
the SUP_IN parameter. When the block runs, the CP block logic then closes the supervisory cas-
cade automatically.
When the supervisory application receives a request to initialize (see Section 5.5.4.4), it should:

166
5. AOUT – Analog Output Block B0193AX – Rev AB

 Set the value of SUPBCO from the AOUT block into its output (the value connected
to SUP_IN).
 Set the Acknowledge bit (Bit 10) true in the status of SUP_IN. When the AOUT
block detects this Acknowledge bit set, it resumes computation of OUT in accordance
with the block algorithm, and leaves the Hold state.
When supervisory control is enabled in the block, it is possible to use a fallback timer mechanism
to assure that SUP_IN is updated by the supervisory application at sufficiently frequent intervals.
The following group of AOUT and Station block parameters are used for this purpose:
 Supervisory Group (SUPGRP) assigns this block to one of eight possible groups used
by the Station block to control fallback timing. Each group is associated with one
timer maintained by the Station block.
 Station block parameters Timer Values 1 to 8 (TIMVL1 to TIMVL8) and Reset Val-
ues 1 to 8 (RESVL1 to RESVL8) are the running and reset values, respectively, of the
eight timers. When configuring RESVL1 to RESVL8, you base the values on the fact
that each timer counts down once every eight seconds.
 Station block parameter Timer Enable (TIMENA) is bit-mapped to enable, disable,
or force the reset of individual group timers.
 If the supervisory application fails to update the value of SUP_IN for any block in a
group within the timeout period, the fallback action specified by FLBOPT is taken.
 Fallback can also be specifically requested, for all blocks in a group, by setting the Sta-
tion block parameter Group Fallback Request (FLBRQn) true, where n is the number
of the group.
 Fallback can be requested, for this block only, by setting Fallback Request (FLBREQ)
to the value 1 or 2.
 When fallback occurs for any reason, SE and BLKSTA.SE are set false. Recovery,
which constitutes a return to supervisory control, is under control of FLBREQ, as
follows:
 FLBREQ = 1: Return to supervisory control occurs when block parameter SE is
set true, or when a set command to Station block parameter Group Supervisory
Enable (SUPENA) sets the bit corresponding to this group true.
 FLBREQ = 2: Return to supervisory control occurs only when SE is set true.

5.6 Bad, Out-of-Service, and Error Conditions


5.6.1 Bad Condition
Key Parameters: BAD, OUT, BCALCO, BLKSTA, PRIBLK, SUPOPT
The Bad (BAD) parameter, the bad status of OUT, and the bad status of BCALCO are simultane-
ously set true provided any one of the following conditions is true:
 The FBM or FBC itself is bad, that is, it has detected a fatal hardware fault, or other
fatal fault. (In this case both BLKSTA.FBM and BLKSTA.BAD are also set true.)
 An FBC is connected, and the output point within the FBC has bad status. (This
causes only BLKSTA.BAD to be set true, unless the FBC itself is also bad.)
If either of these conditions exists, OUT is secured.

167
B0193AX – Rev AB 5. AOUT – Analog Output Block

On any transition out of the Bad condition (that is, on a Bad-to-Good transition), the following
actions are performed:
 The current readback value of the output point is written into OUT.
 The Hold state is entered (see Section 5.5.6).
 If Primary Block (PRIBLK) is true, the primary cascade is opened.
 If SUPOPT is 1 or 3, the supervisory cascade is opened.

5.6.2 Out-of-Service Condition


Key Parameters: OUT, BCALCO
If the FBM or FBC is out-of-service:
 The out-of-service status of OUT is set true.
 The out-of-service status of BCALCO is set true.
 OUT is secured.
If neither this condition nor the ones described in Section 5.6.1 exist, OUT is released.
On any transition out of an Out-of-Service condition, the same actions are taken as in the case of
a Bad-to-Good transition. (See Section 5.6.1.)

5.6.3 Error Condition and Last Good Value Functionality


Key Parameters: PROPT, OUT, MEROPT, MEAS, BEROPT, BIAS
If PROPT is true and the block is in Auto, the Error status of OUT is set true in any of the fol-
lowing situations:
 Either MEAS or BIAS (or both) have Bad status.
 Either MEAS or BIAS (or both) have Out-of-Service status.
 Either MEAS or BIAS (or both) have Error status.
 Either MEAS or BIAS (or both) are experiencing source connection problems.
When PROPT is true and the block is in Auto, certain types of errors in MEAS cause the last
good value of MEAS to be used as the input source (see Section 5.5.4). The types of errors having
this effect are specified by the value of MEROPT, as follows:
 MEROPT = 0: There is no last good value functionality for MEAS.
 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:

168
5. AOUT – Analog Output Block B0193AX – Rev AB

 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.

5.7 Manual Mode


Key Parameters: MA, MCLOPT, MANFS, BTRKOP, MBADOP, MANSW, AUTSW
When the AOUT block is in the Manual mode, it does not update the value of the output OUT,
which is released and becomes settable. The following factors apply when the block is in Manual:
 If Manual Clamping Option (MCLOPT) is true, this value of OUT is clamped using
the operational limits HOLIM and LOLIM, as described in Section 5.5.4.3. The
limit indicators HOLIND and LOLIND are secured against sets.
 If MCLOPT is false, OUT is limited by the range limits HSCO1 and LSCO1, as
adjusted by OSV. In other words,
OUT  HSCO1 + (OSV / 100.0) * (HSCO1 - LSCO1)
OUT  LSCO1 - (OSV/100.0) * (HSCO1 - LSCO1)
In this case (MCLOPT false), HOLIND and LOLIND, and their corresponding bits
of BLKSTA, are set false.
 When signal conditioning is required (IOMOPT = 0 or 1), the clamped or limited
value of OUT is conditioned, and the result is written to RAWC. Otherwise, OUT is
simply copied to RAWC. (RAWC is always a derived parameter, and is never directly
settable.)
 If an FBM or FBC is connected (IOMOPT = 1), the value of RAWC is transferred to
it, as described in Section 5.5.4.6.
 In Manual mode, the status bits (Bad, Out-of-Service, and Error) of OUT are not
updated, nor is the BAD parameter. These status bits and parameter are not cleared
when Manual mode is entered. They retain their last values before the transition to
Manual, until and unless you set the value of OUT. On a transition into Auto, the
Bad and Out-of-Service bits of OUT are set false when no FBM or FBC is connected.
 Alarming is always active in Manual mode.
 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

169
B0193AX – Rev AB 5. AOUT – Analog Output Block

Manual. However, AUTSW is not inspected while the Bad condition persists. After
the Bad condition has cleared, a true value of AUTSW can then return the block to
Auto.
 Manual Switch (MANSW): When true, the block is forced into Manual, and MA is
secured against sets. In that case, the value of AUTSW is ignored. Neither MANSW
nor AUTSW are inspected if MBADOP has forced the block into Manual and the
Bad condition is still present. MANSW overrides any connections to MA.
 AUTSW: When true, the block is forced into Auto, and MA is secured against sets.
AUTSW is of lower priority than MANSW, and is ignored if both parameters are
true. AUTSW overrides any connections to MA.
 MANFS: (Described in Section 5.5.8.) When the block is in Manual due to the
action of MANFS, MA is not secured, unlike the previous three cases. Operator
action or AUTSW can override a Manual mode established due to MANFS. (But
AUTSW must not be inactive due to MBADOP action, as noted above.)

5.8 Alarming
The AOUT block supports the Bad I/O alarm type. The functionality of this alarm type is dis-
cussed in the appropriate Integrated Control Software Concepts document (B0700AG or
B0193AW).
The nomenclature for identical alarm types varies from block to block for historical reasons
involving backward compatibility requirements. The nomenclature for the AOUT block is as fol-
lows:
Table 5-3. AOUT Block Alarm Nomenclature

Default Indicator
Type Option Priority Group Text Display Parameter
I/O Bad BAO = True BAP BAG BAT IOBAD BAD

170
5. AOUT – Analog Output Block B0193AX – Rev AB

5.9 Application Diagram

ECB1

AIN

PNT
MEAS
PID
FBM203
or
OUT FBM03
MEAS

AOUT
RAWC

ECB2

FBM204
or
FBM04
TT

Steam HEAT Heated Water


EXCHANGER Cold Water
IOM_ID = STV001 PRIBLK = 1
PNT_NO = 5 MBADOP = 1
SCO = 1 IOMOPT = 1
LSCO1 = 0.0 LOLIM = 15.0
HSCO1 = 100.0 HOLIM = 85.0
BTIME = 3.0 SUPOPT = 0
MANFS = 1 BAP = 2
BAO = 1 BAG = 1
BIAS = 0 BAT = “STEAM VALVE 1 DRIVE DOWN”
MSCALE = 1
Figure 5-5. Typical AOUT Block Application

171
B0193AX – Rev AB 5. AOUT – Analog Output Block

172
6. AOUTR – Redundant Analog
Output Block
This chapter covers the Redundant Analog Output Block, or AOUTR, its features, parameters
and functions, bad, out-of-service, and error conditions, manual mode, alarming, and
application diagrams.

6.1 Overview
The Redundant Analog Output Block (AOUTR) provides the control strategy with output capa-
bility for a single analog value directed to any two redundant Fieldbus Modules (FBMs) or Field-
bus Cards (FBCs) capable of driving analog outputs. The block supports Auto/Manual control,
signal conditioning, biasing, and output balancing. Cascade initialization and supervisory control
features are also available.

173
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block

Measurement
Supervisory Scalar Balance Low Output Limit
Enable & Time High Output Limit
Bias

Back Back
Calculation Calculated
Outputs

Measure-
ment Input Reset
Scaling Clamping o Out
Supervisory Selection Balancing
Input

Signal Raw
Conditioning Count

Fieldbus Output
Output to
FBMs/FBCs
ECBs Failsafe
Failsafe
Failsafe/Bad Processing

FBM and
BAD Bad
Channel Detection Alarming
Alarm
Status

Bad Alarm Signal Air- FBM


Option Conditioning to- Option
Output Close
Figure 6-1. AOUTR Block Diagram

6.2 Basic Operation


The AOUTR block obtains its input from the Measurement (MEAS) parameter. If supervisory
control is enabled, input is from the Supervisory Input (SUP_IN) parameter. This input is
optionally scaled and biased using the Measurement Scalar (MSCALE) and Bias (BIAS) factors.
Last good value functionality is provided for both the input and bias terms.
The scaled and biased value is then modified by the addition of a reset balance term which is ini-
tialized on transition from a last good value condition of MEAS or BIAS, or closure of the cas-
cade. After initialization, this balance term is bled on each succeeding execution cycle, so that it
decays with a response characterized by a first order lag.
After the resulting value is clamped by the operational limits High Output Limit (HOLIM) and
Low Output Limit (LOLIM), it is made available to the control strategy in Output (OUT). The
value of OUT may, optionally, be subjected to linear signal conditioning based on the configured

174
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB

value of Signal Conditioning Output (SCO), with the result stored in Raw Count (RAWC). If
the block is operating with a pair of connected FBMs or FBCs, the value of RAWC is transmitted
to the specified analog output point in each module.

6.3 Features
 Fieldbus Module option to permit configuration of AOUTR blocks without FBM or
FBC connections (output only to control strategy).
 Output to any redundant pair of FBMs or FBCs driving 0 to 20 mA or 0 to 10 V dc
analog outputs.
 Gain and offset scaling of the output.
 Reset balance action with specifiable time constant.
 Output clamping between user-selectable operational limits.
 Selectable linear signal conditioning of the output.
 Air-to-Close option to invert the sense of the output for use with air-to-close valves.
 Raw Count output to display the output after signal conditioning.
 Supervisory Control option for driving the block input from an external supervisory
application.
 Parameters to allow flexible choice of block action in case of supervisory control
fallback.
 Error Propagation option to permit non-standard conditions of the measurement or
bias inputs to be reflected as an error status of the output.
 Measurement Error option to permit selection of the conditions under which the last
good value of the measurement is retained.
 Bias Error option to perform the same function for the bias term.
 Manual/Auto mode for disconnecting the control scheme from the output, for simu-
lation and checkout purposes.
 Optional output clamping when in Manual.
 Manual if Failsafe option to force the block into Manual whenever a transition into
Failsafe occurs. (See Section 6.4.9 for the definition of Failsafe in an AOUTR block.)
 Manual if Bad option to force the block into Manual whenever the measurement or
bias input has bad status, or both of the FBMs or FBCs are bad.
 Bias Tracking option to cause the bias value to track changes in the output by back
calculation, when the block is in Manual (see Section 6.6).
 The Primary Block option enables the block, when in a cascaded configuration, to ini-
tialize without bumping the process.
 Bad Alarm option to permit Bad alarm generation separately for the primary and sec-
ondary FBM or FBC.

175
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block

6.4 Parameters
Table 6-1. AOUTR Block Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set blank 1 to 12 chars
TYPE block type integer no-con/no-set 71 AOUTR
DESCRP descriptor string no-con/no-set blank 1 to 32 chars
PERIOD block sample time short no-con/no-set 1 0 to 13
PHASE block execute phase integer no-con/no-set 0 ---
LOOPID loop identifier string no-con/set blank 1 to 32 chars
IOMOPT FBM output option short no-con/no-set 0 0 to 2
IOM_ID FBM identifier string no-con/no-set blank ---
IOMIDR redundant FBM id string no-con/no-set blank ---
PNT_NO FBM point number string no-con/no-set 1 1 to 32 chars
SCO signal condition index short no-con/no-set 0 0-5,12-15, 50-56, 59
ATC air-to-close boolean no-con/no-set 0 0 to 1
PROPT propagate error option boolean no-con/no-set 0 0 to 1
MEAS process input real con/set 0.0 RI1
HSCI1 high scale in 1 for meas real no-con/no-set 100.0 specifiable
LSCI1 low scale in 1 for meas real no-con/no-set 0.0 specifiable
DELTI1 change delta in 1 for meas real no-con/no-set 1.0 percent
EI1 eng units in 1 for meas string no-con/no-set % specifiable
MEROPT meas error option short no-con/no-set 0 0 to 2
HSCO1 high scale for output 1 real no-con/no-set 100.0 specifiable
LSCO1 low scale for output 1 real no-con/no-set 0.0 specifiable
DELTO1 change delta, output 1 real no-con/no-set 1.0 percent
EO1 eng units for output 1 string no-con/no-set % specifiable
HOLIM high output limit real con/set 100.0 RO1
LOLIM low ouput limit real con/set 0.0 RO1
OSV output span variance real no-con/no-set 2.0 0.0 to 25.0%
BIAS bias real con/set 0.0 RI2
MSCALE measurement scalar real no-con/set 1.0 scalar
HSCI2 high scale in 2 for bias real no-con/no-set 100.0 specifiable
LSCI2 low scale in 2 for bias real no-con/no-set 0.0 specifiable
DELTI2 change delta in 2 for bias real no-con/no-set 1.0 percent
EI2 eng units in 2 for bias string no-con/no-set % specifiable
BEROPT bias error option short no-con/no-set 0 0 to 2
BTRKOP bias tracking option boolean no-con/no-set 0 0 to1
MA manual/auto boolean con/set 0 0 to 1
INITMA initialize MA short no-con/no-set 1 0 to 2
AUTSW auto switch boolean con/set 0 0 to 1
MANSW manual switch boolean con/set 0 0 to 1
MANFS manual if failsafe boolean no-con/no-set 0 0 to 1
MBADOP manual if bad option boolean no-con/no-set 0 0 to 1

176
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB

Table 6-1. AOUTR Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


MCLOPT manual clamp option boolean no-con/no-set 0 0 to 1
PRIBLK primary block boolean no-con/no-set 0 0 to 1
PRITIM primary cascade timer real no-con/no-set 0.0 seconds
INHOPT inhibit option short no-con/no-set 0 0 to 3
INHIB alarm inhibit boolean con/set 0 0 to 1
BTIME balance time real con/set 0.0 minutes
BAO bad alarm option boolean no-con/no-set 0 0 to 2
BAT bad alarm text string no-con/no-set blank 1 to 32 chars
BAP bad alarm priority integer con/set 5 1 to 5
BAG bad alarm group short no-con/set 1 1 to 8
FLBOPT fallback option short no-con/no-set 0 0 to 2
INITSE initial SE short no-con/no-set 0 0 to 2
SE supervisory enable boolean no-con/set 0 0 to 1
SUPGRP supervisory group short no-con/no-set 1 1 to 8
SUPOPT supervisory option short no-con/no-set 0 0, 1, 3
AMRTIN alarm regeneration timer integer no-con/no-set 0 0 to 32767 s
Non-Configurable Parameters
OUTPUTS
ALMSTA alarm status pack_l con/no-set 0 bit map
BAD bad I/O status boolean con/set 0 0 to 1
BCALCO back calculate output real con/no-set 0.0 RI1
BLKSTA block status pack_l con/no-set 0 bit map
CRIT criticality integer con/no-set 0 0 to 5
FLBREQ fallback request short no-con/set 0 0 to 2
FS failsafe state boolean con/no-set 0 0 to 1
HOLIND high output limit indicator boolean con/set 0 0 to 1
INHSTA inhibit status pack_l con/no-set 0 8 to 13 chars
INITO initialize out short con/no-set 0 ---
LOLIND low output limit indicator boolean con/set 0 0 to 1
OUT output real con/set 0.0 RO1
PRTYPE priority type integer con/no-set 0 0 or 8
RAWC raw counts real con/no-set 0.0 0 to 65535
SUP_IN supervisory input real con/set 0.0 RI1
SUPBCO sup back calculate output real no-con/no-set 0 RI1
UNACK unacknowledge alarm boolean con/set 0 0 to 1
DATA STORES
ACHNGE alternate change integer con/no-set 0 -32768 to 32767
ALMOPT alarm options pack_l no-con/no-set 0 0 to 0xFFFFFFFF
DEFINE no config errors boolean no-con/no-set 1 0 to 1
DEV_ID FBM letterbug char[6] no-con/no-set blank 6 chars
DEVIDR redundant FBM letterbug char[6] no-con/no-set blank 6 chars
ERCODE configuration error string no-con/no-set blank 1 to 43 chars
LOCKID lock identifier string no-con/no-set blank 8 to 13 chars
LOCKRQ lock request boolean no-con/set 0 0 to 1
OWNER owner name string no-con/set blank 1 to 32 chars

177
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block

Table 6-1. AOUTR Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


PERTIM period time real no-con/no-set 0.1 ---
PRSCAS cascade state short no-con/no-set 0 0 to 3
RI1 measurement range real[3] no-con/no-set 100,0,1 specifiable
RI2 bias range real[3] no-con/no-set 100,0,1 specifiable
RO1 output range real[3] no-con/no-set 100,0,1 specifiable

6.4.1 Parameter Definitions


ACHNGE Alternate Change is an integer output which is incremented each time a
block parameter is changed via a Set command.

ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use.
For the AOUTR block, only the unshaded bits in this diagram are used.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

Bit Number1
(0 to 31) Configured Alarm Option When True
0 (Least Significant) Alarm Group 8 in Use
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use
22 Bad I/O Alarm Configured
1.
Bit 0 is the least significant, low order bit.

ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the AOUTR block, only the unshaded bits in this diagram are
used.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
B4
B5
B6
B7
B8
B9

CRIT PRTYPE
BAD

178
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: See parame- ---
(Least Sig- ter PRTYPE for values
nificant) used in the AOUTR block
5 to 7 CRIT_MSK Criticality; 5 = lowest pri- ---
ority, 1= highest
22 BAD Bad I/O Alarm ALMSTA.B10
30 UNAK Unacknowledged ALMSTA.B2

* Bit 0 is the least significant, low order bit.

AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is gen-
erated.

ATC Air-to-Close is a configurable option that inverts the sense of the conver-
sion from engineering units to raw count output, for use with air-to- close
valves.

AUTSW Auto Switch, when true, forces the block into the Auto mode and secures
MA against sets. It is of lower priority than MANSW, and is overridden by
it if both parameters are true. It is also overridden by MBADOP if the Bad
condition causing the Manual mode is still present. AUTSW overrides any
connections to MA.

BAD Bad is a boolean output which is set true when both sides of the redun-
dant pair have bad status. A side is considered to have bad status if its
FBM or FBC has a fatal fault or the output point (in an FBC) has bad sta-
tus.

BAG Bad Alarm Group is a short integer input that directs Bad alarm messages
to one of eight groups of alarm devices.

BAO Bad Alarm Option is a configurable option that enables alarm generation
for each state change of the BAD parameter. The parameter values are:

0= No generation of Bad alarms.

179
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block

1= Bad alarm generation if the FBM or FBC has


Bad status.
2= Bad alarm generation in the measurement
(MEAS or OUTPUT parameter) of a PID
block family, RATIO block, or BIAS block
when the MEAS or OUT parameter is con-
nected to the AOUTR block.

BAP Bad Alarm Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the Bad alarm (1 is the highest priority).

BAT Bad Alarm Text is a user-configurable text string of up to 32 characters,


sent with the bad alarm message to identify it.

BCALCO Back Calculated Output is a real value that specifies to the upstream block
the value of MEAS which leaves OUT unchanged. If the upstream block
sets its output to the BCALCO value, bumpless cascade initialization is
assured. The upstream block normally connects BCALCO from the
AOUTR block to its BCALCI input.

BEROPT Bias Error Option is a short integer option which determines the condi-
tions under which last good value functionality is provided for the input
BIAS. BEROPT is only active when PROPT is true.

BIAS Bias is an input used to offset the measurement value. It may be used inde-
pendently, or in conjunction with MSCALE to achieve units conversion
of the measurement.

BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. The AOUTR block uses only the unshaded bits in this dia-
gram:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
FBMR B23
B24
HOLD B25
B26
B27
B28
B29
B30
BADR B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
MAO

FBM
HOL

BAD

TRK
LOL
FLB

ON

MA
SC
SE

FS

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
1 BADR Bad Secondary I/O BLKSTA.B31
6 TRK Local Panel in Use BLKSTA.B26
7 HLD Auto/Hold State BLKSTA.B25
8 FBM Primary FBM or FBC Failure BLKSTA.B24

180
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
9 FBMR Secondary FBM or FBC Failure BLKSTA.B23
11 MA Manual = 0, Auto = 1 BLKSTA.B21
12 BAD Bad Primary I/O BLKSTA.B20
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
20 WLCK Access Locked BLKSTA.B12
24 FS Outputs in Failsafe or Awaiting BLKSTA.B8
Cascade Closure after Transition
26 MAO Manual/Auto Override Active BLKSTA.B6
27 LOL Output Clamped at Low Limit BLKSTA.B5
28 HOL Output Clamped at High Limit BLKSTA.B4
29 SE Supervisory Control Enabled BLKSTA.B3
30 SC Supervisory Cascade Closed BLKSTA.B2
31 FLB Block in Supervisory Fallback BLKSTA.B1

* Bit 0 is the least significant, low order bit.

BTIME Balance Time is a real input that specifies the time constant, in minutes,
for the value of OUT to reach approximately 63 percent of the value cal-
culated by the algorithm, when the block output changes its mode of con-
trol.

BTRKOP Bias Track Option, when true, causes BIAS to track the manually set value
of OUT by the following back calculation:
BIAS = OUT - (MEAS * MSCALE)
The block must be in Manual, and BIAS must be unlinked.

CRIT Criticality is an integer output which, for the AOUTR block, indicates the
priority of any active Bad alarm (1 is the highest priority). Bad alarms on
the primary and secondary sides have the same priority, BAP. An output of
zero indicates the absence of alarms.

DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing, other than those involved in duplicate output channel detection.
(See ERCODE for the list of all possible validation errors in this block.) In
that case, no further processing of the block occurs, including further vali-
dation of remaining parameters. To return DEFINE to a true value, cor-
rect all configuration errors and reinstall the block. If DEFINE = 0, the bit
BLKSTA.UDEF = 1.

181
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block

DELTI1 to Change Delta for Input Range 1 or 2 is a real value that defines the mini-
DELTI2 mum percent of the input range that triggers change driven connections
for parameters in the range of RI1 or RI2. The default value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.

DELTO1 Change delta for Output Range 1 is a configurable real value that defines
the minimum percent of the output range that triggers change-driven
connections for parameters in the range RO1. The default value is 1.0 per-
cent. If communication is within the same control station that contains
the block’s compound, DELTO1 has no effect.

DESCRP Description is a user-defined string of up to 32 characters that describes


the block’s function (for example, “PLT 3 FURNACE 2 HEATER CON-
TROL”).

DEVIDR Redundant Device Identifier is a character array data store that specifies
the 6-character letterbug of the redundant connected FBM or FBC.

DEV_ID Device Identifier is a character array data store that indicates the 6-charac-
ter letterbug of the primary connected FBM or FBC.

EI1 Engineering Units for Input Range 1 provides the engineering units text
for the values of MEAS, BCALCO, and SUPBCO. The value configured
for this text string should be consistent with the values used for HSCI1
and LSCI1. “Deg F” and “pH” are typical entries.

EI2 Engineering Units for Input Range 2 provides the engineering units text
for the value of BIAS. The value configured for this text string should be
consistent with the values used for HSCI2 and LSCI2. “Deg F” and “pH”
are typical entries.

EO1 Engineering Units for Output Range 1 provides the engineering units text
for the values of OUT, HOLIM, and LOLIM. The value configured for
this text string should be consistent with the values used for HSCO1 and
LSCO1. “Deg F” and “pH” are typical entries.

ERCODE Error Code is a string data store which indicates the type of configuration
error or warning which caused the block’s DEFINE parameter to be set
false. Validation of the configuration does not proceed past the first error
or warning encountered by the block logic. (The duplicate output channel
condition does not cause the block’s DEFINE to be set false.) The block
detailed display shows the ERCODE on the primary page, if it is not null.

182
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB

For the AOUTR block, the following list specifies the possible values of
ERCODE, and the significance of each value in this block.
ERCODE Description
W44 HSCO1 less than or equal to LSCO1.
W48 SUPOPT or FLBOPT out of range.
W50 Invalid SCO.
W51 The specified FBMs or FBCs are not of the same hardware
and software types, or do not support analog output points.
W52 PNT_NO is out of range for the specified FBMs or FBCs.
W54 Specified IOM_ID or IOMIDR does not exist.
W59 Warning: This block and another AOUT or AOUTR
block are connected to the same FBM or FBC and point
number. Both blocks receive the same warning message.

FLBOPT Fallback Option is a configured input that defines the control action to be
taken by the block when a supervisory control fallback occurs:
0 = Make no change in MA (default)
1 = Set MA to Auto
2 = Set MA to Manual
FLBOPT overrides a linked MA parameter, but does not override the
AUTSW and MANSW parameters.

FLBREQ Fallback Request is an output, which constitutes an explicit request for the
block to go to the supervisory control fallback state specified by FLBOPT,
regardless of the value of its fallback timer.
0 = Fallback not requested.
1 = Fallback requested; recovery at block or group level.
2 = Fallback requested; recovery only at block level.

FS Failsafe is a boolean output that is set true when the block detects that the
FBM has transitioned into the Failsafe state. While in this state, the block
uses a measurement value based on a back calculation from the value read
back from the primary FBM or FBC. If the primary has bad status and the
redundant FBM or FBC has good status, then the redundant unit is used.
Once set true, FS remains true until the cascade has closed.

HOLIM High Output Limit is a real input that establishes the maximum output
value. If the block is in Auto and the algorithm tries to drive the output to
a value higher than or equal to HOLIM, or if the block is in Manual (with
MCLOPT true) and the manually set value of the output is higher than or
equal to HOLIM, the output is clamped at the HOLIM value and
HOLIND is set true.
Configure HOLIM within the output engineering range RO1 defined by
parameters HSCO1 and LSCO1 (see “Block Initialization” on page 193).
If you change the HSCO1 and LSCO1 values to expand the engineering

183
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block

range, make sure you change the HOLIM value accordingly to prevent
output limiting at the old limit. The block does not automatically adjust
HOLIM for the expanded range.

HOLIND High Output Limit Indicator is a boolean output that is set true whenever
the output is clamped at the high output limit, HOLIM.

HSCI1 High Scale for Input Range 1 is a real value that defines the upper range
value for MEAS, SUP_IN, BCALCO, and SUPBCO. It is only used in
displays.

HSCI2 High Scale for Input Range 2 is a real value that defines the upper range
value for BIAS. It is only used in displays.

HSCO1 High Scale for Output Range 1 is a real value that defines the upper range
value for the block’s output.

INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting. Alarms may also be inhibited based on the compound parameter
CINHIB.

INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do not
disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the time
the alarm transitions into the inhibited state, clear the alarm
indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages can be acknowledged by explicitly setting
UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages can be acknowledged by explicitly setting
UNACK false.

INHSTA Inhibit Status contains packed long values that represent the current
inhibit status of each alarm type configured in the block. For the AOUTR
block, only the unshaded bit in this diagram is used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BAD B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

184
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB

Bit Boolean
Number * Connection
(0 to 31) Name Description When True (B32 to B1)
22 BAD Bad I/O Alarm Inhibited INHSTA.B10

* Bit 0 is the least significant, low order bit.

INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state as specified in the checkpoint file.
The block asserts this initial M/A state whenever any one of the following
occurs:
 It is installed into the Control Processor database.
 The Control Processor undergoes a reboot operation.
 The compound in which it resides is turned on.
 INITMA itself is modified via the control configurator. (The
block does not assert INITMA on ordinary reconfiguration.)
INITMA is ignored if MA has an established linkage.

INITO Initialization Output is set true when the primary cascade is open for any
reason, and returned to false when cascade closure is detected. The INITO
output of a downstream block is normally connected to the INITI of the
next upstream block, and serves to notify the upstream block of the open
loop condition. The information conveyed by the short value of INITO is
currently contained in the status bits of BCALCO, but INITO/INITI
have been retained for reasons of backward compatibility. This block
keeps INITO True, for one cycle (PRIBLK = 0), until the acknowledge is
received from upstream (PRIBLK = 1 and PRITIM = 0.0), or for a fixed
time delay (PRIBLK = 1 and PRITIM = nonzero).

INITSE Initialize Supervisory Enable is a configured value that specifies the initial
state of SE when the block is installed, the containing compound is turned
on, or the control processor is rebooted. Options are:
0 = Disable (SE is set false)
1 = Enable (SE is set true)
2 = No change (SE retains its current value)
INITSE is not asserted when the block is initialized due to
reconfiguration.

IOMIDR Redundant Fieldbus Module Identifier is a string that specifies the redun-
dant FBM or FBC to which the block is connected. IOMIDR is entered
with the same format choices as IOM_ID.

185
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block

IOMOPT FBM Option is a short integer specifying whether FBM or FBC connec-
tions to the block exist. Values are:
0= The block does not transmit the OUT value to a pair of FBMs or
FBCs. The value in OUT is conditioned as specified by SCO.
1= The block transmits the OUT value to the FBMs or FBCs speci-
fied by IOM_ID and IOMIDR. The value is conditioned as
specified by SCO.
2= There are no connected FBMs or FBCs. The value in OUT is not
conditioned.

IOM_ID Fieldbus Module Identifier is a configurable string that specifies the path-
name of the primary FBM or FBC to which the block is connected.
IOM_ID has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOM_ID configuration. In this case, the 1-12
character ECB block name is sufficient.

LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.

LOCKRQ Lock Request is a boolean input which can be set true or false only by a set
command from the LOCK U/L toggle key on workstation displays. When
LOCKRQ is set true in this fashion a workstation identifier accompany-
ing the SETVAL command is entered into the LOCKID of the block.
Thereafter, set requests to any of the block’s parameters are only honored
(subject to the usual access rules) from the workstation whose identifier
matches the contents of LOCKID. LOCKRQ may be set false by any
workstation at any time, whereupon a new LOCKRQ is accepted, and a
new ownership workstation identifier written to LOCKID.

LOLIM Low Output Limit is a real input that establishes the minimum output
value. If the block is in Auto and the algorithm tries to drive the output to
a value lower than or equal to LOLIM, or if the block is in Manual (with
MCLOPT true) and the manually set value of the output is lower than or
equal to LOLIM, the output is clamped at the LOLIM value and
LOLIND is set true.
Configure LOLIM within the output engineering range RO1 defined by
parameters HSCO1 and LSCO1 (see “Block Initialization” on page 193).
If you change the HSCO1 and LSCO1 values to expand the engineering
range, make sure you change the LOLIM value accordingly to prevent
output limiting at the old limit. The block does not automatically adjust
LOLIM for the expanded range.

186
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB

LOLIND Low Output Limit Indicator is a boolean output that is set true whenever
the output is clamped at the low output limit, LOLIM.

LOOPID Loop Identifier is a configurable string of up to 32 characters which iden-


tifies the loop or process with which the block is associated. It is displayed
on the detail display of the block, immediately below the faceplate.

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.

MA Manual/Auto is a boolean input that controls the block’s operating state (0


= false = Manual; 1 = true = Auto). When in Auto, the output OUT is
updated in accordance with the block algorithm. In Manual, OUT is
released and updated only by sets from a display or an external program.

MANFS Manual if Failsafe is a configurable option which, when true, causes the
block to switch to the Manual mode when the connected point is reported
by the FBMs or FBCs to have transitioned into the Failsafe state. MANFS
has no effect when MA is linked.

MANSW Manual Switch, when true, forces the block into the Manual mode and
secures MA against sets. It is of higher priority than AUTSW, and over-
rides it if both parameters are true. MANSW also overrides any connec-
tions to MA.

MBADOP Manual if Bad Option is a manual override feature which, when true,
causes the block to go into Manual mode if MEAS or BIAS has Bad status,
or the FBM or FBC is Bad. For the relationship between MBADOP and
AUTSW/MANSW, see Section 6.7. MBADOP has no effect when MA is
linked.

MCLOPT Manual Clamping Option, when true, causes the value of OUT as set in
Manual mode to be clamped by the operational limits HOLIM and
LOLIM.

MEAS Measurement is the process input which is optionally scaled, balanced,


and clamped before being made available as the block output OUT. It
may also be subjected to linear signal conditioning when output to FBMs
or FBCs is required.

MEROPT Measurement Error Option is a short integer option which determines the
conditions under which last good value functionality is provided for the
input MEAS. MEROPT is only active when PROPT is true and the block
is in Auto.

187
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block

MSCALE Measurement Scalar is used to apply a gain factor to the measurement


input of the block before adding it to the bias factor and balance term to
produce the block output.

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

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.

OWNER Owner is a string of up to 32 ASCII characters used to allocate control


blocks to applications. Attempts to set Owner are successful only if the
present value of Owner is the null string, an all-blank string, or identical
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.

PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. Integrator and Gateway blocks have different period
values than shown here.
Period Length Period Length
0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****

* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.

188
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB

***** Available in CP40, CP40B, CP60 and later control processors.

PERTIM Period Time is a real data store which, in the case of the AOUTR block,
contains the number of execution cycles in one minute. It is only used in
the calculation of the reset balance factor.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).

PNT_NO Point Number specifies the FBM or FBC points to which the AOUTR
block is connected. The same point is driven in each FBM or FBC.

PRIBLK Primary Block is a configured boolean which should be set true when the
AOUTR block is in a secondary position in a control cascade, and not
otherwise. When true, PRIBLK enables bumpless initialization of the pri-
mary cascade at initial startup or transfer of control. Depending on the
value of PRITIM, PRIBLK does this by forcing the AOUTR block to
remain in the Hold state until the Acknowledge status bit (Bit 10) of
MEAS is detected from the upstream block (PRITIM = 0.0), or until the
time defined by PRITIM expires (PRITIM > 0.0). In the latter case, the
explicit acknowledge from the upstream block is not needed.
Use PRIBLK in a cascade situation when the source of the block's input
connection needs to be initialized.
Refer to “PRIBLK and PRITIM Functionality” on page 202 for more
information on this parameter.

PRITIM Primary Cascade Timer is a configurable parameter used to delay the clos-
ing of the cascade to a primary block, when the output is initialized in the
AOUTR block. It is used only if the PRIBLK option is set. The cascade is
closed automatically when the timer expires without requiring an explicit
acknowledge by the upstream block logic.
Refer to “PRIBLK and PRITIM Functionality” on page 202 for more
information on this parameter.

PROPT Propagate Error Option is a boolean input which, when the block is in
Auto, determines whether errors in the MEAS or BIAS parameters cause
the Error status bit of OUT to be set true. In addition, a true value of
PROPT causes MEAS to have last good value functionality based on the
error types specified by MEROPT. Similarly, PROPT and BEROPT,
taken together, determine whether BIAS has last good value functionality.
See Section 6.5.3 for details of PROPT, MEROPT, and BEROPT.

189
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block

PRSCAS Present Cascade State is a data store that indicates the cascade state. It has
the following possible values:
Value State Description
1 “INIT_U” Unconditional initialization of the primary
cascade is in progress.
2 “PRI_OPN” The primary cascade is open.
3 “INIT_C” Conditional initialization of the primary
cascade is in progress.
4 “PRI_CLS” The primary cascade is closed.
5 “SUP_INIT” The supervisory cascade is initializing.
6 “SUP_OPN” The supervisory cascade is open.
7 “SUP_CLS” The supervisory cascade is closed.

PRTYPE Priority Type is an indexed output that indicates the alarm type of the
highest priority active alarm. The PRTYPE output of this block consists of
the following possible values:
0 = No active alarm
8 = Bad

RAWC Raw Count is the value of the selected input source after any necessary
scaling, balancing, clamping, and conditioning are applied. If IOMOPT =
1, the value of RAWC is transferred to both FBMs or FBCs, provided
their ECBs indicate normal status.

RI1 Range Input 1 is a real array consisting of the three parameters HSCI1,
LSCI1, and DELTI1. The array members are configured by their individ-
ual names; however, RI1 and its members can, optionally, be accessed on
an array basis by user tasks and displays.

RI2 Range Input 2 is a real array consisting of the three parameters HSCI2,
LSCI2, and DELTI2. The array members are configured by their individ-
ual names; however, RI2 and its members can, optionally, be accessed on
an array basis by user tasks and displays.

RO1 Range Output 1 is a real array consisting of the three parameters HSCO1,
LSCO1, and DELTO1. The first two of these array members are config-
ured by their individual names. (DELTO1 is unused). RO1 and any of its
members can, optionally, be accessed on an array basis by user tasks and
displays.

SCO Signal Conditioning Output is a configured option which specifies how


the final block output, in engineering units, is to be converted to a raw
count compatible with the electrical characteristics of the FBMs or FBCs.
The use of the SCO values is described in Section 6.4.5.5. When
IOMOPT is set to 0 you can use output signal conditioning without any
connected FBMs or FBCs, for test purposes.

190
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB

SE Supervisory Enable is a boolean input that enables or disables supervisory


control in the block. It is not configurable, and should only be set by the
supervisory controller.
0 = Disable
1 = Enable

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.

SUPOPT Supervisory Option is a configurable short integer input that specifies


whether or not this block is under control of a Supervisory Control appli-
cation:
0 = No Supervisory control (default)
1 = Set Point Control (SPC) of the block’s measurement (Supervisory set-
point control (SSC))
3 = SPC, with an implicit acknowledge by the CP
Be aware that option 1 requires an explicit acknowledge by the application
software to close the supervisory cascade. This must be done by setting the
ACK status bit in the SUP_IN parameter using special OM access func-
tions.

SUP_IN Supervisory Input is the input that the block uses as the measurement
when supervisory control is enabled. It is driven by the supervisory appli-
cation. The supervisor also uses the Acknowledge status bit of SUP_IN
(Bit 10) to indicate that a request to initialize has been honored, and that
the supervisory cascade may be closed.

TYPE When you enter “AOUTR” or select it from a configurator list, an identi-
fying integer is created specifying this block type.

UNACK Unacknowledge is a boolean output which is set true, for notification pur-
poses, whenever the block goes into alarm on either the primary or sec-
ondary side. It is settable, but sets are only allowed to clear UNACK to
false, and never in the opposite direction. The clearing of UNACK is nor-
mally via an operator Acknowledge pick on a default display, user display,
or Current Alarms Display, or via a user task.

191
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block

6.4.2 Detailed Diagram

MSCALE OUT BTIME LOLIM HOLIM (M)


MEAS
SUP_IN O MA
Last Good Value SCALING BALANCING CLAMPING O O OUT
Back Calculated Input (A)

Bias
Selection Back BCALCO
OUT
Calculation SUPBCO

HSCO1 LSCO1 SCO

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

Primary FBM/FBC BAD


OR AND BAD
Primary FBC Point BAD
BLKSTA.BAD
Redundant FBM/FBC BAD OUT.BAD
OR
Redundant FBC Point BAD BCALCO.BAD
OUT.SECURE
Primary FBM/FBC OOS
AND OUT.OOS
Secondary FBM/FBC OOS BCALCO.OOS
OUT.SECURE
Figure 6-2. AOUTR Block Operational Diagram

192
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB

6.4.3 Block Initialization


Key Parameters: OSV, HOLIM, LOLIM, HSCO1, LSCO1, OUT, MEAS, BIAS, MSCALE,
PROPT, MEROPT, BEROPT, MA
The AOUTR block initializes under any one of the following conditions:
 The block is installed.
 Any parameter of the block is reconfigured by the Integrated Control Configurator.
 The compound in which the block resides is turned on.
 The control processor containing the block is rebooted.
Whenever the block initializes, the following actions are taken, prior to any other block process-
ing activity:
 Block validation is performed (see Section 6.4.4).
 If OSV has been configured less than 0.0 or greater than 25.0, it is clamped to 0.0 or
25.0 respectively, and this clamped value is used internally. The OSV parameter value
itself is not modified, however.
 If HOLIM has been configured greater than High Scale for Output Range 1
(HSCO1) as adjusted by OSV, the parameter value is modified to the value:
HOLIM = HSCO1 + (OSV / 100.0) * (HSCO1 - LSCO1)
where LSCO1 is Low Scale for Output Range 1.
Similarly, if LOLIM is configured less than LSCO1 as adjusted by OSV, the value of
LOLIM is modified to:
LOLIM = LSCO1 - (OSV / 100.0) * (HSCO1 - LSCO1)
An attempt to set HOLIM or LOLIM outside of these limits, at any time, also results
in the same modifications.
 The readback value of the analog point is recovered from the primary Equipment
Control Block (ECB) and subjected to reverse signal conditioning to obtain an initial
value of OUT. (If the primary FBM or FBC has Bad status, and the secondary is
healthy, the readback value is obtained from the secondary ECB.) This value of OUT
is used, if necessary, in the back calculations described in the next two items. These
back calculations are only performed when it is necessary to simulate a last good value
for MEAS or BIAS on the first execution cycle.
 The status of MEAS is checked for the existence of a last good value condition. (The
last good value condition depends on the values of Propagate Error Option (PROPT),
Measurement Error Option (MEROPT), and Manual/Auto (MA), and the type of
error in MEAS. See Section 6.5.3.) Since this is the first execution cycle, there is no
previous history from which to obtain a last good value for MEAS. In order to avoid
bumping the output OUT, the value of MEAS used in this cycle is obtained by a back
calculation as follows:
MEAS used this cycle = (OUT - BIAS) / MSCALE
 The status of BIAS is similarly checked. If last good value functionality is determined
to be required for BIAS (see Section 6.5.3), it is back calculated according to the fol-
lowing rule:
BIAS = OUT - (MEAS used this cycle * MSCALE)

193
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block

The value of “MEAS used this cycle” in this BIAS equation is the one selected by the
input source selection process described in Section 6.4.5, so that the output is not
bumped. Therefore, it could in practice be SUP_IN, MEAS, or the back calculated
value described in the previous bullet.
After block initialization, the block is processed normally on the remainder of the first execution
cycle.

6.4.4 Block Validation


Key Parameters: ERCODE, HSCO1, LSCO1, SUPOPT, FLBOPT, SCO, IOM_ID, IOMIDR,
PNT_NO, IOMOPT
Whenever the block initializes (see Section 6.4.3), the following seven types of validation are car-
ried out:
 HSCO1 is verified as having been configured greater than the LSCO1 parameter. If
HSCO1 is less than or equal to LSCO1, Error Code (ERCODE) is set to the string
“W44 – INVALID ENGINEERING RANGE”.
 Supervisory Option (SUPOPT) is validated as having been configured with the values
0,1, or 3 which are the only valid ones for the AOUTR block. If SUPOPT is not 0,1,
or 3, ERCODE is set to the string “W48 – INVALID BLOCK OPTION”.
 Fallback Option (FLBOPT) is validated as having been configured with a value
between 0 and 2, which is the only valid range for the AOUTR block. If FLBOPT is
not in this range, ERCODE is set to the string “W48 – INVALID BLOCK
OPTION”.
 Unless FBM Option (IOMOPT) is set to 2, SCO is validated as configured with a
value in the range 0 to 5 or 12 to 15 inclusive. If SCO is not in this range, ERCODE
is set to the string “W50 – INVALID SIGNAL CONDITIONING INDEX”. (The
value IOMOPT = 2 indicates that the block operates without FBMs or FBCs con-
nected, and that signal conditioning is not applied to the input.)
 If FBMs or FBCs are configured (IOMOPT = 1), the ECBs named in parameters
Fieldbus Module Identifier (IOM_ID) and Redundant Fieldbus Module Identifier
(IOMIDR) are searched for in the database. If either of these cannot be located,
ERCODE is set to the string “W54 – ECB DOES NOT EXIST”.
 If FBMs or FBCs are configured, the hardware and software types as specified in the
two ECBs must be identical, and of a type containing analog output points. The
FBMs and FBCs supporting analog output points are listed in Table 6-2. If the types
are not identical, or do not contain analog output points, ERCODE is set to the
string “W51 – INVALID HARDWARE/SOFTWARE TYPE”.
 If FBMs or FBCs are configured, Point Number (PNT_NO) must be one of the ana-
log output points. If not, ERCODE is set to the string “W52 – INVALID 1/O
CHANNEL/GROUP NUMBER”.
The following validation, which is called duplicate output channel detection, is intended to alert
you to the fact that this block and another AOUT or AOUTR block are connected to the same
output point. It is not automatically carried out every time the block is initialized, since it is costly
in terms of system resources. This check is performed under any one of the following conditions:
 The control processor is rebooted.
 The AOUTR block is installed.

194
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB

 An ECB connected to this block is installed or reconfigured.


 IOMOPT is modified.
 IOM_ID or IOMIDR is modified.
 The output point number PNT_NO is modified.
When duplicate output detection is performed for any AOUT or AOUTR block, the entire data
base is checked for duplicate analog output channels.
All blocks connected to the same output point have their ERCODE parameters set to the string
“W59 – DUPLICATE OUTPUT CHANNEL”, but none of the blocks are set Undefined. The
duplicate output does not necessarily constitute a conflict, since the other block may be in a com-
pound which is not intended to run at the same time as the compound containing this AOUTR
block, or the duplicate connection may be desired as part of an elaborate control scheme.

6.4.5 Output Processing


Key Parameters: IOM_ID, IOMIDR, PNT_NO, MEAS, SUP_IN, OUT, RAWC
You specify the primary destination FBM or FBC in the IOM_ID parameter, and the redundant
destination FBM or FBC in IOMIDR. The output point within the FBMs or FBCs is specified
by the PNT_NO parameter. Since the point must be the same in both FBMs or FBCs, there is
only one PNT_NO parameter. The following are the FBMs or FBCs and point numbers provid-
ing valid output destinations for the AOUTR block. (You are not limited to the types of FBMs
and FBCs defined as redundant; any analog outputs may be specified, provided that the software
and hardware types are identical.)

Table 6-2. AOUTR Block Destinations

FBM ECB Functional Description Valid Output Points


FBM204 ECB2 4 Analog In, 4 Analog Out 5 to 8
FBM205 ECB2 4 Analog In, 4 Analog Out 5 to 8
Redundant
FBM237 ECB53 8 Analog Out 1 to 8
FBM04 ECB2 4 Analog In, 4 Analog Out 5 to 8
FBM05 ECB2 4 Analog In, 4 Analog Out 5 to 8
Redundant
FBM06 ECB4 4 Pulse Rate In, 4 Analog Out 5 to 8
FBM17 ECB9, 4 Analog In, 2 Analog Out 5 to 6
34, 36 4 Digital In, 4 Digital Out
FBM37 ECB53 8 Analog Out 1 to 8
FBM39 ECB23 4 IFD In, 4 Analog Out 5 to 8
FBM44 ECB23 4 IFD In, 4 Analog Out, Dual Baud 1 to 8
Rate, Redundant Output
FBM46 ECB38R 4 IFD In, 4 Analog Out, Dual Baud 5 to 8
Rate, Redundant Input/Output
FBC04 ECB43 16 Analog Out 1 to 16

195
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block

Table 6-2. AOUTR Block Destinations (Continued)

FBM ECB Functional Description Valid Output Points


FBC04 ECB43 16 Analog Out, Redundant 1 to 16
Redundant

All analog output points in FBMs and FBCs provide 0 to 20 mA outputs with the exception of
FBM17, which provides 0 to 10 V dc outputs.
The first step in generating the block output is selection of the input source, which is done
according to the following rules:
 If supervisory control is enabled, as described in Section 6.4.10, the supervisory input
SUP_IN is used as the input source, provided the supervisory cascade is closed. This
closure is indicated by the value of 7 in Present Cascade State (PRSCAS).
 If supervisory control is not enabled, or the supervisory cascade is open, then the value
of MEAS is used as the input source, unless MEAS has the type of error requiring last
good value retention. The conditions for last good value retention are described in
Section 6.5.3.
 If the last good value is required, then the input source is the value of MEAS from the
last processing cycle. (There is no last good value functionality when SUP_IN is the
input source.)
Whenever the input source is SUP_IN, its value is copied to MEAS, provided MEAS is unlinked.
Whenever the input source is MEAS, its value is copied to SUP_IN. If the input source is the last
good value of MEAS, that value is copied to SUP_IN.
The selected input source is then scaled, balanced, clamped, and conditioned, in that order. The
result before conditioning is stored in OUT, and the result after conditioning in RAWC.

6.4.5.1 Zero and Span Scaling


Key Parameters: OUT, MEAS, BIAS, MSCALE, BTIME
You scale the input by using MSCALE and BIAS in the following equation:
Scaled Measurement = (MEAS_Value * MSCALE) + BIAS_Value
In this expression, MEAS_Value represents the measurement actually used this execution cycle,
rather than the original value of the MEAS parameter. It is obtained from SUP_IN, MEAS, the
last good value of MEAS, or a back calculation if this is the first cycle. (See Section 6.4.3 and
Section 6.4.5.) Similarly for BIAS_Value, which is obtained from BIAS, the last good value of
BIAS, or a back calculation on the first cycle.
One use of scaling is to make the measurement value dimensionally compatible with the desired
output units, as for example in the conversion of temperature measurements from Celsius to
Fahrenheit scales. In that conversion, MSCALE is set to 1.8 and BIAS is 32.0.
To ignore the scaling function, leave MSCALE at the default value of 1 and leave BIAS at the
default value of 0.0. (Since BIAS is connectable, you can use it to offset the measurement inde-
pendently of the action of MSCALE.)

196
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB

6.4.5.2 Reset Balance Action


Key Parameters: OUT, MEAS, BIAS, MSCALE, BTIME
The scaled measurement computed as described in Section 6.4.5.1 is modified by a balance term
B_Term:
Balanced Measurement = (MEAS_Value * MSCALE) + BIAS_Value + B_Term
B_Term is initialized to 0.0 and remains at this value under steady state conditions. When the
form of control of the output changes, however, B_Term is set to the (normally) nonzero value:
B_Term = OUT - (MEAS_Value * MSCALE) - BIAS_Value
The value of OUT is the output as calculated during the previous execution cycle.
MEAS_Value * MSCALE + BIAS_Value is the computed value of the output for this cycle.
When B_Term is first set, therefore, it represents the negative of the step function that would have
occurred in the output if balance action were not invoked. On each cycle, including the one in
which B_Term is initially set, a bleeding action is applied to B_Term so that it decays with a
response characterized by a first order lag.
New B_Term = Previous B_Term - (Previous B_Term / (
Balance Time (BTIME) should be specified as the number of minutes required for B_Term to
decay by approximately 63%, and  is the number of execution cycles in BTIME minutes.
If you configure or set BTIME with a negative value, it automatically adjusts to 0.0 (no balancing
action) and this value is entered into the parameter. If BTIME is linked, it is used as 0.0 in each
cycle in which its source is negative.
Figure 6-3 shows the effect of balancing action when a change in the form of control would other-
wise have produced a step function in the output.

BALANCED OUTPUT
OUPUT STEP

63% 100%

BTIME

Figure 6-3. Reset Balance Action

The conditions constituting a change in form of control of the output, and setting B_Term, are:
 The measurement value in use changes to the current value after having been held at
the last good value for one or more previous cycles.
 The bias value undergoes a similar transition.
 The primary cascade closes this cycle.
 The supervisory cascade closes this cycle.

197
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block

6.4.5.3 Clamping
Key Parameters: HOLIM, LOLIM, HOLIND, LOLIND, HSCO1, LSCO1
The scaled and balanced value as computed in Section 6.4.5.2 is clamped so that it does not
exceed the LOLIM and HOLIM operational limits.
If the computed value is less than or equal to LOLIM:
 It is set equal to LOLIM.
 Low Output Limit Indicator (LOLIND) is set true.
 Status bit BLKSTA.LOL is set true.
 High Output Limit Indicator (HOLIND) is set false.
 Status bit BLKSTA.HOL is set false.
If the computed value is greater than or equal to HOLIM:
 It is set equal to HOLIM.
 HOLIND is set true.
 Status bit BLKSTA.HOL is set true.
 LOLIND is set false.
 Status bit BLKSTA.LOL is set false.
Otherwise the value is not at or beyond either limit, and both indicators and both status bits are
set false.
Note that neither the operational limits HOLIM and LOLIM nor the range limits HSCO1 and
LSCO1 may be inverted, and that the operational limits are always within the range limits. The
block logic enforces the following constraints on these parameters:
 LSCO1 < HSCO1
 LOLIM  HOLIM
 LOLIM  LSCO1
 HOLIM  HSCO1

NOTE
If you change the HSCO1 and LSCO1 values to expand the engineering range,
make sure you change the HOLIM and LOLIM values accordingly to prevent out-
put limiting at the old limits. The block does not automatically adjust HOLIM and
LOLIM for the expanded range.

6.4.5.4 Back Calculated Outputs


Key Parameters: BCALCO, SUPBCO, OUT, BIAS, MSCALE
Once the value of OUT has been determined, the following back calculation is performed to
establish the values of Back Calculated Output (BCALCO) and Supervisory Back Calculated
Output (SUPBCO), which are used in initialization of the primary and supervisory cascades,
respectively:
BCALCO = SUPBCO = (OUT - BIAS_Value - B_Term) / MSCALE

198
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB

BCALCO and SUPBCO are also used to indicate an open cascade situation, either to the
upstream block (in the case where the primary cascade is in use) or the supervisory application (if
supervisory control is enabled). The AOUTR block sets status bits 13 and 14 simultaneously true
in BCALCO or SUPBCO to indicate an open cascade.
When the cascade is not open, these bits of BCALCO or SUPBCO are used to inform the
upstream block that the AOUTR output is clamped at a limit, as follows:
 Bit 13 of BCALCO/SUPBCO true indicates that HOLIND is true.
 Bit 14 of BCALCO/SUPBCO true indicates that LOLIND is true.

6.4.5.5 Signal Conditioning


Key Parameters: IOMOPT, SCO, OUT. RAWC, RO1
If the output (OUT) of the block is sent to a pair of FBMs or FBCs, then it must be converted, by
the application of signal conditioning, from engineering units within Range Output 1 (RO1) into
raw count, which is an integer value in the range used by the particular FBMs or FBCs. The value
IOMOPT = 1 specifies that FBMs or FBCs are connected.
You can also apply signal conditioning, for test purposes, when no FBMs or FBCs are connected.
You should configure IOMOPT = 0 in this case. The values of IOM_ID, IOMIDR, and
PNT_NO are ignored.
The value IOMOPT = 2 indicates that there are no connected FBMs or FBCs, and that signal
conditioning is not used. The values of IOM_ID, IOMIDR, PNT_NO, and SCO are all
ignored.
The values of SCO, which must be in the ranges listed below, cause the following inverse linear or
inverse square root signal conditionings to be applied to the scaled, balanced, and clamped input.
In each case, the input to the signal conditioning algorithm is the value of OUT, and the output
of the algorithm is stored in RAWC:

SCO = 0: No Conditioning
RAWC = OUT
SCO = 1: Inverse Linear (0 to 64000)
Analog Output 0 to 20 mA
RAWC = (OUT - LSCO1) * 64000 / (HSCO1 - LSCO1)
SCO = 2: Inverse Linear (1600 to 64000)
Analog Output 0 to 10 V dc
RAWC = ((OUT - LSCO1) * 62400 / (HSCO1 - LSCO1)) + 1600
SCO = 3: Inverse Linear (12800 to 64000)
Analog Output 4 to 20 mA
RAWC = ((OUT - LSCO1) * 51200 / (HSCO1 - LSCO1)) + 12800
SCO = 4: Inverse Square Root (0 to 64000)
Analog Output 0 to 20 mA
RAWC = ((OUT - LSCO1) * 64000 / (HSCO1 - LSCO1))2 / 64000
SCO = 5: Inverse Square Root (12800 to 64000)
Analog Output 4 to 20 mA
RAWC = ((OUT - LSCO1) * 51200 / (HSCO1 - LSCO1))2 / 51200 + 12800

199
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block

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: Inverse Linear (0 to 16383)
RAWC = ((OUT - LSCO1) * 16383 / (HSCO1 - LSCO1))
SCO = 15: Inverse Square Root (1600 to 64000)
Analog Output 0 to 10 V dc
RAWC = ((OUT - LSCO1) * 62400/ (HSCO1 - LSCO1))2 / 62400 + 1600
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)
SCO = 54: Linear (0 to 999) x = (y - LSCO1) * 999/(HSCO1-LSCO1)
SCO = 55: Linear (0 to 2048) x = (y - LSCO1) * 2048/(HSCO1-LSCO1)
SCO = 56: Linear (409 to 2048) x = (y - LSCO1) * 1639/(HSCO1-LSCO1) + 409
SCO = 59: Linear (0 to 4095) x = (y - LSCO1) * 4095/(HSCO1-LSCO1)

The following applies to SCO = 50 through SCO = 59:


 y = engineering units value; x = normalized counts value.
 Linear scaling of the analog outputs is also provided.
Each SCO value has an associated raw span, consisting of the difference between the upper and
lower range values of the raw value. For example, SCO = 2 has a raw span of 64000 minus 1600,
or 62400. The upper range value is always 64000 for any nonzero SCO.
The block also has an engineering units span, which is the difference between HSCO1 and
LSCO1.
The effect of inverse linear signal conditioning is to place RAWC at the same relative position
within the raw span as OUT occupies within the engineering units span.
Example:
If
LSCO1 = 200C
HSCO1 = 900C
OUT = 500C
SCO =2
Then
RAWC = ((50 - 20) * 62400 / (90 - 20)) + 1600
= (30 * 62400/70) + 1600 = 28343

200
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB

Inverse square root signal conditioning is similar, but the relationship between RAWC and OUT
is non-linear.
When Air-to-Close (ATC) is true, the signal conditioning reverses the sense of the conversion. For
example, with SCO = 3, an output at 100 percent of the range (OUT = HSCO1) is converted
into a RAWC value of 12800. This drives the FBM or FBC output at 4 mA. A 0 percent output
(OUT = LSCO1) is converted into a RAWC of 64000, which drives 20 mA. Intermediate values
are converted proportionately.

6.4.5.6 Output to FBMs or FBCs


Key Parameters: IOMOPT, RAWC, ECB Parameter OPSTAT
If a pair of FBMs or FBCs is connected, then the selected input is ready for physical output after
any required scaling, balancing, clamping, and signal conditioning are applied. This is the value
stored in RAWC.
Before the output is sent to the FBMs or FBCs however, the Module Operational Status
(OPSTAT) parameters of both ECBs are examined to determine their status. If the value of
OPSTAT = 6 on any side, then that FBM or FBC is considered healthy, and the value of RAWC
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.

6.4.6 Changing Engineering Range Limits


Key Parameters: HOLIM, HSCO1, LOLIM, LSCO1, OSV
Changing engineering range limits in the AOUTR block may limit output with unexpected
results. For example, after changing the engineering units in the AOUTR block from 4-20 to
0-100, the block output may still be limited in the 4-20 range.
The absolute engineering range limits of the output in this block is specified by the LSCO1,
HSCO1, and OSV parameters. However, this block also contains output limit values (LOLIM
and HOLIM), which are normally used to constrain the output to operating limits that are nar-
rower than the engineering range limits.
When this block runs, the LOLIM and HOLIM limit values are not allowed to exceed the engi-
neering range. In the example noted above, the block logic sets LOLIM=4 and HOLIM=20 when
the block initializes, since LSCO1=4 and HSCO1=20.
When the block initializes with the modified engineering range (LSCO1=0 and HSCO1=100),
the LOLIM, HOLIM values are not modified since they are already within the new engineering
range. As a result, the output will remain limited between 4-20.
To expand the engineering range, also adjust the LOLIM and HOLIM values accordingly by set-
ting them to their desired values. Once this is done, the new limit values will be used correctly to
constrain the output value.

6.4.7 Hold State


Key Parameters: OUT, PRSCAS
The Hold state is a substate of Auto, in which OUT is unchanged by the block algorithm. It is
used to prevent uninitialized input data from an open cascade from affecting the block output.
The Hold state is entered when the primary or the supervisory cascade is opened, and exited when

201
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block

the cascade is closed. On any cycle in which the block is in Auto and in Hold state, the status bit
BLKSTA.HLD is set true, unless a local panel is in use (indicated by BLKSTA.TRK true).

6.4.8 PRIBLK and PRITIM Functionality


The Primary Block (PRIBLK) parameter indicates whether the AOUTR block has a connection
from an upstream block (PRIBLK=1) or not (PRIBLK=0). Its value, together with that of the
Primary Cascade Timer (PRITIM), determines whether the AOUTR block remains in Hold for a
fixed time delay (of length defined by PRITIM), or ends the Hold when the Acknowledge status
bit (Bit 10) of MEAS is detected from the upstream block (if PRITIM = 0.0). During initializa-
tion, the acknowledgement is not required and a Hold of one cycle only occurs.

6.4.9 Failsafe State


Key Parameters: FS, MANFS
During each execution cycle, the block inspects the two ECBs to determine whether the FBMs or
FBCs have reported the output point in the Failsafe state. A Failsafe state is considered to exist if
both modules are reporting the point in Failsafe, or if one module is reporting the point in Failsafe
and the other module has Bad status. If so, and if the state did not exist in the previous execution
cycle, then this is considered a “Failsafe transition”. Failsafe (FS) is set true on a Failsafe transition,
and remains true until the cycle on which the cascade 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 tran-
sition 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 6.5.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.
With redundant FBMs or FBCs, the failsafe behavior of a failed module can compromise the abil-
ity of the good module to take over and drive the output correctly. The hardware arrangement uti-
lized to achieve output redundancy requires that any FBM in a redundant output configuration
must “fail low”. This is defined as an output of 0 mA, or in the case of the FBM17, 0 V dc.
Therefore the failsafe mask of each of the ECBs must specify “Fallback” (0) for each channel,
rather than “Hold” (1). In addition (except for the FBM17), the Fallback Value for each channel
must be 0 raw counts, even if the normal low end of the output span is 4 mA, or 12800 raw
counts. Since 0 V dc corresponds to 1200 raw counts in the FBM17, the Fallback Value of 1200
must be configured.

6.4.10 Supervisory Control


Key Parameters: SUP_IN, SUPOPT, SE, INITSE, SUPBCO, SUPGRP, FLBOPT, FLBREQ,
Station Block Parameters
Supervisory control consists of features which permit a user application, such as a computer con-
trol program, to directly control the measurement input of the AOUTR block. When supervisory
control is “enabled”, that is, active, the block input is taken from SUP_IN rather than MEAS.
Bumpless initialization of this input is accomplished by considering the supervisory application to
constitute a primary block above the AOUTR block in a supervisory cascade. This cascade exists

202
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB

in parallel with the usual, or “primary” cascade; however, only one cascade or the other is active at
any one time.
If SUPOPT is 1 or 3, you can place the block under supervisory control through the use of Super-
visory Enable (SE) and Initialize Supervisory Enable (INITSE).
 Setting SE true enables supervisory control and causes the status bit BLKSTA.SE to be
set true. Setting it false causes the block input to be taken from MEAS, and status bits
BLKSTA.SE, BLKSTA.SC, and BLKSTA.FLB to be set false.
 INITSE establishes the value of SE when the block is initialized for any reason except
reconfiguration of a parameter. The values of INITSE are:
 INITSE = 0: Supervisory control is disabled. SE, BLKSTA.SE, and
BLKSTA.SC are set false.
 INITSE = 1: Supervisory control is enabled. SE and BLKSTA.SE are set true.
 INITSE = 2: The previous values of SE and the BLKSTA status bits are retained.
These values are the ones stored in the checkpoint file (reboot case), the default
values (block install case), or the database (compound turn-on case).
If supervisory control is enabled in any fashion, status bit BLKSTA.SC is set true whenever the
supervisory cascade is closed, and not otherwise.
The Supervisory Back Calculated Output (SUPBCO) provides the current measurement and ini-
tialization bits to the Supervisory Application Program. When Supervisory Enable (SE) is set by
the application program or operator, the block is prepared to do Supervisory Setpoint Control
(SSC) functions. When the proper handshaking occurs with the application software, the block
accepts sets to the Supervisory Setpoint, (SUP_IN). If the block is in Auto, it then uses the
SUP_IN in the calculation of the block’s output.
If SUPOPT is set to 1, the handshake may require the application software to return an explicit
acknowledge to close the supervisory cascade. The software must set the ACK status bit in the
SUP_IN parameter using special OM access functions. However, if SUPOPT is set to 3, this
acknowledgement is implicitly provided by the CP and is not required from the software. In the
latter case, the CP closes the supervisory cascade automatically when the supervisory input
(SUP_IN) is written by the application, provided the block is in the Supervisory Initialization
(SUP_INIT) state. The control block enters the SUP_INIT state when supervisory control is
enabled in the block and the cascade is closed downstream. Upon entering this state, the CP sets
the initialize request bit (INITC) in the SUPBCO parameter for the application software. When
SUP_IN is then written by the software, the CP access logic sets the ACK status automatically in
the SUP_IN parameter. When the block runs, the CP block logic then closes the supervisory cas-
cade automatically.
When the supervisory application receives a request to initialize (see Section 6.4.5.4), it should:
 Set the value of SUPBCO from the AOUTR block into its output (the value con-
nected to SUP_IN)
 Set the Acknowledge bit (Bit 10) true in the status of SUP_IN. When the AOUTR
block detects this Acknowledge bit set, it resumes computation of OUT in accordance
with the block algorithm, and leaves the Hold state.
When supervisory control is enabled in the block, it is possible to use a fallback timer mechanism
to assure that SUP_IN is updated by the supervisory application at sufficiently frequent intervals.
The following group of AOUTR and Station block parameters are used for this purpose:

203
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block

 Supervisory Group (SUPGRP) assigns this block to one of eight possible groups used
by the Station block to control fallback timing. Each group is associated with one
timer maintained by the Station block.
 Station block parameters Timer Values 1 to 8 (TIMVL1-8) and Reset Values 1 to 8
(RESVL1 to RESVL8) are the running and reset values, respectively, of the eight tim-
ers. When configuring RESVL1 to RESVL8, you base the values on the fact that each
timer counts down once every eight seconds.
 Station block parameter Timer Enable (TIMENA) is bit-mapped to enable, disable,
or force the reset of individual group timers.
 If the supervisory application fails to update the value of SUP_IN for any block in a
group within the timeout period, the fallback action specified by FLBOPT is taken.
 Fallback can also be specifically requested, for all blocks in a group, by setting the Sta-
tion block parameter Group Fallback Request (FLBRQn) true, where n is the number
of the group.
 Fallback can be requested, for this block only, by setting Fallback Request (FLBREQ)
to the value 1 or 2.
 When fallback occurs for any reason, SE and BLKSTA.SE are set false. Recovery,
which constitutes a return to supervisory control, is under control of FLBREQ, as
follows:
 FLBREQ = 1: Return to supervisory control occurs when block parameter SE is
set true, or when a set command to Station block parameter Group Supervisory
Enable (SUPENA) sets the bit corresponding to this group true.
 FLBREQ = 2: Return to supervisory control occurs only when SE is set true.

6.5 Bad, Out-of-Service, and Error Conditions


6.5.1 Bad Condition
Key Parameters: BAD, OUT, BCALCO, BLKSTA, PRIBLK, SUPOPT
The status of each side is separately tested. If the FBM or FBC itself is bad, that is, it has detected
a fatal hardware fault or other fatal fault, BLKSTA.FBM and BLKSTA.BAD are set true in the
case of the primary side, and BLKSTA.FBMR and BLKSTA.BADR in the case of the secondary
side.
If FBCs are connected, the status of the output point on each side is also tested. If the point has
bad status, then BLKSTA.BAD is set true for the primary side, and/or BLKSTA.BADR is set true
for the secondary side.
If both sides are bad for any reason (BLKSTA.BAD and BLKSTA.BADR both true), the Bad
(BAD) parameter is set true, the bad statuses of both OUT and BCALCO are set true, and OUT
is secured. If either side of the redundant pair is operable, none of these actions are taken.
On any transition out of the Bad condition (that is, at least one side now has good status), the fol-
lowing actions are performed:
 The current readback value of the output point is written into OUT. (This is nor-
mally the value of the point in the primary FBM or FBC. If that side is still bad,
however, then the point value from the secondary FBM or FBC is used.)

204
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB

 The Hold state is entered (see Section 6.4.7).


 If Primary Block (PRIBLK) is true, the primary cascade is opened.
 If SUPOPT is 1 or 3, the supervisory cascade is opened.

6.5.2 Out-of-Service Condition


Key Parameters: OUT, BCALCO
If the FBM or FBC on each side is out-of-service, then the out-of-service statuses of OUT and
BCALCO are set true, and OUT is secured. If neither this condition nor the ones described in
Section 6.5.1 exist, OUT is released.
On any transition out of an Out-of-Service condition (that is, at least one side is now in-service),
the same actions are taken as in the case of a Bad-to-Good transition. (See Section 6.5.1.)

6.5.3 Error Condition and Last Good Value Functionality


Key Parameters: PROPT, OUT, MEROPT, MEAS, BEROPT, BIAS
If PROPT is true and the block is in Auto, the Error status of OUT is set true in any of the fol-
lowing situations:
 Either MEAS or BIAS (or both) have Bad status.
 Either MEAS or BIAS (or both) have Out-of-Service status.
 Either MEAS or BIAS (or both) have Error status.
 Either MEAS or BIAS (or both) are experiencing source connection problems.
When PROPT is true and the block is in Auto, certain types of errors in MEAS cause the last
good value of MEAS to be used as the input source (see Section 6.4.5). The types of errors having
this effect are specified by the value of MEROPT, as follows:
 MEROPT = 0: There is no last good value functionality for MEAS.
 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 to be 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.

205
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block

6.6 Manual Mode


When the AOUTR block is in the Manual mode, it does not update the value of the output
OUT, which is released and becomes settable. The following factors apply when the block is in
Manual:
 If Manual Clamping Option (MCLOPT) is true, this value of OUT is clamped using
the operational limits HOLIM and LOLIM, as described in Section 6.4.5.3.The limit
indicators HOLIND and LOLIND are secured against sets.
 If MCLOPT is false, OUT is limited by the range limits HSCO1 and LSCO1, as
adjusted by OSV. In other words,
OUT  HSCO1 + (OSV / 100.0) * (HSCO1 - LSCO1)
OUT  LSCO1 - (OSV/100.0) * (HSCO1 - LSCO1)
In this case (MCLOPT false), HOLIND and LOLIND, and their corresponding bits
of BLKSTA, are set false.
 When signal conditioning is to be applied (IOMOPT = 0 or 1), the clamped or lim-
ited value of OUT is conditioned, and the result is written to RAWC. Otherwise,
OUT is simply copied to RAWC. (RAWC is always a derived parameter, and is never
directly settable.)
 If a pair of FBMs or FBCs is connected (IOMOPT = 1), the value of RAWC is trans-
ferred to them, as described in Section 6.4.5.6.
 In Manual mode, the status bits (Bad, Out-of-Service, and Error) of OUT are not
updated, nor is the BAD parameter. These status bits and parameter are not cleared
when Manual mode is entered. They retain their last values before the transition to
Manual, until and unless you set the value of OUT. On a transition into Auto, the
Bad and Out-of-Service bits of OUT are set false when no FBM or FBC is connected.
 Alarming is always active in Manual mode.
 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.

206
6. AOUTR – Redundant Analog Output Block B0193AX – Rev AB

 Manual Switch (MANSW): When true, the block is forced into Manual, and MA is
secured against sets. In that case, the value of AUTSW is ignored. Neither MANSW
nor AUTSW are inspected if MBADOP has forced the block into Manual and the
Bad condition is still present. MANSW overrides any connections to MA.
 AUTSW: When true, the block is forced into Auto, and MA is secured against sets.
AUTSW is of lower priority than MANSW, and is ignored if both parameters are
true. AUTSW overrides any connections to MA.
 MANFS: (Described in Section 6.4.9.) When the block has been forced into Manual
due to the action of MANFS, MA is not secured, unlike the previous three cases.
Operator action or AUTSW can override a Manual mode established due to MANFS.
(But AUTSW must not be inactive due to MBADOP action, as noted above.)

6.7 Alarming
The AOUTR block supports the Bad I/O alarm type. The functionality of this alarm type is dis-
cussed in the appropriate Integrated Control Software Concepts document (B0700AG or
B0193AW). Separate “into alarm” and “return to normal” alarm messages are generated for each
output side, but the BAD parameter follows the rules described in Section 6.5.1.
The nomenclature for identical alarm types varies from block to block for historical reasons
involving backward compatibility requirements. The nomenclature for the AOUTR block is as
follows:
Table 6-3. AOUT Block Alarm Nomenclature

Indicator
Type Option Priority Group Text Default Display Parameter
I/O Bad BAO = True BAP BAG BAT IOBAD BAD

207
B0193AX – Rev AB 6. AOUTR – Redundant Analog Output Block

6.8 Application Diagram

ECB 1

AIN

PNT
MEAS

PID
OUT FBM03

MEAS

AOUTR
RAWC

ECB23 ECB23

FBM39 FBM39

TT

Steam HEAT Heated Water


EXCHANGER Cold Water

IOM_ID = STV01M PRIBLK = 1


IOMIDR = STV01R MBADOP = 1
PNT_NO = 5 IOMOPT = 1
SCO = 1 LOLIM = 15.0
LSCO1 = 0.0 HOLIM = 85.0
HSCO1 = 100.0 SUPOPT = 0
BTIME = 3.0 BAP = 2
MANFS = 1 BAG = 1
BAO = 1 BAT = “STEAM VALVE 1 BOTH DRIVES DOWN”
BIAS = 0
MSCALE = 1
Figure 6-4. Typical AOUTR Block Application

208
7. BIAS – Bias Block
This chapter covers the Bias Block, or BIAS, its features, parameters and functions.

7.1 Overview
The BIAS block produces an output that is the sum of the two input values, MEAS and BIAS,
each of which can be scaled independently. The block supports measurement alarm messages. It
does not support output alarm messages.

7.1.1 I/O Diagram

Manual/Auto
BIAS
Manual/Auto Overrides BLOCK

Local/Remote Bias Output


Local/Remote Overrides Controller Sum
Algorithm
Measurement

Measurement Scale Factors Block and Alarm Status


Bias

Bias Scale Factors Back Calculation Output


Remote Bias Initialization Output
Balance Time High Output Limit Indicator
Hold Low Output Limit Indicator
Back Calculation Input Criticality

Initialization Input Priority Type


Measurement Hi Alarm Limit Measurement Hi Alarm Indicator
Alarm
Measurement Lo Alarm Limit Measurement Lo Alarm Indicator
Algorithm
Measurement Alarm Priority Hi-Hi / Lo-Lo Alarm Indicator
High Output Limit
Low Output Limit

Hi-Hi/Lo-Lo Alarm Limit


Hi-Hi/Lo-Lo Alarm Priority
Figure 7-1. BIAS Block I/O Diagram

209
B0193AX – Rev AB 7. BIAS – Bias Block

7.2 Features
Features are:
 Manual/Auto control of the outputs, which can be initiated by a host process or
another block
 Auto and Manual latch switch inputs (AUTSW and MANSW) that force the block to
be switched to Auto or Manual
 Local/Remote bias source selection
 Local and Remote latch switch inputs (LOCSW and REMSW) that can force the
block to Local or Remote bias
 Bumpless transfer of the output signal when the block returns to controlling operation
in Auto
 Separate assignable engineering range and units to the parameters Measurement, and
Bias, and Output
 Back calculation of the BIAS input
 Output clamping and clamp indication between variable output limits
 An INITI input that enables output tracking by forcing the block to track the back
calculation (BCALCI) input signal
 Bad input detection and handling
 Initialization input/output connection parameters that enable automatic cascade han-
dling by providing proper coordination and initialization of cascade schemes.
Options are:
 MBADOP, Manual if Bad Option, is a manual override feature. When MBADOP is
set to 1, the block sets the MA input to manual when it detects a control error (CE =
true), or when the HOLD parameter goes true. In addition, when MBADOP is set
to 2, the block sets the MA input to manual when RBIAS is not healthy (i.e., value
status is BAD or has a broken OM connection). This forces the output state to man-
ual. Returning to Auto requires external intervention, unless AUTSW is true.
 MCLOPT, Manual Clamping Option, allows you to invoke output clamping while
the block is in manual. You can alter this boolean input at the workstation.
 BTRKOP, Bias Track Option, when true, causes the BIAS parameter to be back calcu-
lated when the block is in Manual. BTRKOP takes this action when the LR parameter
has transitioned in either direction and 1) either the output is in Manual or a cascade
is broken (a downstream block is in open loop - INITI true) or the block is in Man-
ual, or 2) when the block is in Manual only.
 MANALM, Manual Alarming Option, allows you to invoke all configured alarm
options while the block is in manual. Otherwise, alarming is normally performed only
in Auto.
 MALOPT, Measurement Alarming Option, provides absolute alarming of the mea-
surement during auto operation. This option also provides standard alarm
notification and reporting features.
 CEOPT, Control Error Option, allows you to enable, or disable, the block’s implicit
Hold action when it detects an error in the MEAS or INITI input.

210
7. BIAS – Bias Block B0193AX – Rev AB

 PROPT, Propagate Error Option, gives you the option of propagating the ERROR
status bit from the MEAS input to the block’s OUT parameter.
 LOCSP, Local Setpoint Secure, enables you to secure against any write access to the
LR parameter.
 MANFS, Manual If Failsafe, allows you to have the block go to the Manual state
when the block receives a Failsafe notification.
 HHAOPT, High-High Alarm Option, enables High-High and Low-Low absolute
alarming for the measurement input, or disables absolute alarming altogether. Each
alarm triggers an indicator (HHAIND or LLAIND) and text message (HHATXT and
LLATXT) at a given priority level (HHAPRI) to be sent to the configured alarm
group (HHAGRP). Once an alarm limit (HHALIM or LLALIM) is exceeded, the
indicators remain set until the measurement returns within the defined limit plus (or
minus) the deadband (MEASDB).
0 = No alarming
1 = High-High and Low-Low alarming
2 = High-High alarming only
3 = Low-Low alarming only
 Unacknowledge (UNACK) is a boolean output parameter which is set true, for notifi-
cation purposes, whenever the block goes into alarm. It is settable, but sets are only
allowed to clear UNACK to false, and never in the opposite direction. The clearing of
UNACK is normally via an operator “acknowledge” pick on a default or user display,
or via a user task.
 INITMA, Initialize Manual/Auto, specifies the desired state of the MA input during
initialization.
 PRIBLK, Primary Block, when true enables a block in a cascaded configuration to ini-
tialize without bumping the process at initial start-up or when control is transferred
up to a primary block.
 INITLR, Initialize Local/Remote, is an integer input specifying the desired state of
the LR input during initialization.
 INHOPT, Inhibit/Disable alarming.

7.3 Parameters
Table 7-1. BIAS Block Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set blank 1 to 12 chars
TYPE block type integer no-con/no-set 34 BIAS
DESCRP descriptor string no-con/no-set blank 1 to 32 chars
PERIOD block sample time short no-con/no-set 1 0 to 13
PHASE block phase number integer no-con/no-set 0 ---

211
B0193AX – Rev AB 7. BIAS – Bias Block

Table 7-1. BIAS Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


LOOPID loopid string no-con/set blank 1 to 32 chars
MEAS process input real con/set 0.0 RI1
HSCI1 high scale input 1 real no-con/no-set 100.0 specifiable
LSCI1 low scale input 1 real no-con/no-set 0.0 specifiable
DELTI1 change delta input 1 real no-con/no-set 1.0 percent
EI1 eng units input 1 string no-con/no-set % specifiable
PROPT propagate error short no-con/no-set 0 0 to 2
KMEAS scale factor real con/set 1.0 scalar
BMEAS scale factor real con/set 0.0 RO1
BIAS bias real con/no-set 0.0 RI2
HSCI2 high scale input 2 real no-con/no-set 100.0 specifiable
LSCI2 low scale input 2 real no-con/no-set 0.0 specifiable
DELTI2 change delta input 2 real no-con/no-set 1.0 percent
EI2 eng units input 2 string no-con/no-set % specifiable
HSCO1 high scale output 1 real no-con/no-set 100.0 specifiable
LSCO1 low scale output 1 real no-con/no-set 0.0 specifiable
DELTO1 change delta output 1 real no-con/no-set 1.0 percent
EO1 eng units output 1 string no-con/no-set % specifiable
HOLIM high output limit real con/set 100.0 RO1
LOLIM low output limit real con/set 0.0 RO1
OSV span variance real no-con/no-set 2.0 [0..25]percent
MA manual/auto boolean con/set 0 0 to 1
INITMA initialize MA short no-con/no-set 1 [0|1|2]
MANFS manual If FailSafe boolean no-con/no-set 0 0 to 1
MBADOP manual bad option short no-con/no-set 0 [0|1|2]
MANSW manual switch boolean con/set 0 0 to 1
AUTSW auto switch boolean con/set 0 0 to 1
MCLOPT manual clamp option boolean no-con/no-set 0 0 to 1
CEOPT control error option short no-con/no-set 1 0 to 2
HOLD hold mode boolean con/set 0 0 to 1
PRIBLK primary block cascade option boolean no-con/no-set 0 0 to 1
PRITIM primary cascade timer real no-con/no-set 0.0 seconds
INITI initialize input short con/set 0 ---
BCALCI back calculate input real con/set 0.0 RO1
LR local/remote boolean con/set 0 0 to 1
INITLR initialize LR short no-con/no-set 2 [0|1|2]
LOCSP local setpoint boolean no-con/no-set 0 0 to 1
LOCSW local switch boolean con/set 0 0 to 1
REMSW remote switch boolean con/set 0 0 to 1
RBIAS remote bias real con/set 0.0 RI2
KBIAS scale factor real con/set 1.0 scalar
BBIAS scale factor real con/set 0.0 RO1
BTRKOP bias track option short no-con/no-set 0 [0|1|2]
BTIME balance time real con/set 0.0 [0..]minutes
MANALM manual alarm option short no-con/no-set 1 0 to 4
INHOPT inhibit option short no-con/no-set 0 0 to 3

212
7. BIAS – Bias Block B0193AX – Rev AB

Table 7-1. BIAS Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


INHIB alarm inhibit boolean con/set 0 0 to 1
INHALM inhibit alarm pack_b con/set 0 0 to 0xFFFF
MEASNM meas alarm name string no-con/no-set blank 1 to 32 chars
MALOPT meas alarm option short no-con/no-set 0 0 to 3
MEASHL meas high alarm limit real con/set 100.0 RI1
MEASHT meas high alarm text string no-con/no-set blank 1 to 32 chars
MEASLL meas low alarm limit real con/set 0.0 RI1
MEASLT meas low alarm text string no-con/no-set blank 1 to 32 chars
MEASDB meas alarm deadband real no-con/set 0.0 RI1
MEASPR meas alarm priority integer con/set 5 [1..5]
MEASGR meas alarm group short no-con/set 1 [1..8]
HHAOPT high-high option short no-con/no-set 0 0 to 3
HHALIM high-high limit real con/set 100.0 RI1
HHATXT high-high alarm text string no-con/no-set blank 1 to 32 chars
LLALIM low-low alarm limit real con/set 0.0 RI1
LLATXT low-low absolute text string no-con/no-set blank 1 to 32 chars
HHAPRI high-high priority integer con/set 5 [1..5]
HHAGRP high-high group short no-con/set 1 [1..8]
OUTNM output alarm name string no-con/no-set blank 1 to 12 chars
BAO bad alarm option boolean no-con/no-set 0 0 to 1
BAT bad alarm text string no-con/no-set blank 1 to 32 chars
BAP bad alarm priority integer con/set 5 1 to 5
BAG bad alarm group short no-con/set 1 1 to 8
AMRTIN alarm regeneration timer integer no-con/no-set 0 0 to 32767 s
NASTDB alarm deadband timer long integer no-con/no-set 0 0-2147483647 ms
NASOPT nuisance alarm suppression short no-con/no-set 0 0 to 2
option
UNCLMP unclamp option boolean no-con/no-set 1 0 to 1
Non-Configurable Parameters
OUTPUTS
ALMSTA alarm status pack_l con/no-set 0 bit map
BCALCO back calc output real con/no-set 0.0 RI1
BLKSTA block status pack_l con/no-set 0 bit map
CRIT criticality integer con/no-set 0 [0..5]
HHAIND high-high absolute indicator boolean con/no-set 0 0 to 1
HOLIND high out limit indicator boolean con/no-set 0 0 to 1
INHSTA inhibit status pack_l con/no-set 0 0 to 0xFFFFFFFF
INITO initialize out short con/no-set 0 ---
LLAIND low-low alarm indicator boolean con/no-set 0 0 to 1
LOLIND low out limit indicator boolean con/no-set 0 0 to 1
MEASHI meas high alarm indicator boolean con/no-set 0 0 to 1
MEASLI meas low alarm indicator boolean con/no-set 0 0 to 1
OUT output real con/no-set 0.0 RO1
PRTYPE priority type integer con/no-set 0 [0..10]
QALSTA quality status pack_l con/no-set 0 0 to 0xFFFFFFFF

213
B0193AX – Rev AB 7. BIAS – Bias Block

Table 7-1. BIAS Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


SUM bias summer real con/no-set 0.0 RO1
UNACK alarm notification boolean con/no-set 0 0 to 1
DATA STORES
ACHNGE alternate change integer con/no-set 0 -32768 to 32767
ALMOPT alarm options pack_l no-con/no-set 0 0 to 0xFFFFFFFF
DEFINE no config errors boolean no-con/no-set 1 0 to 1
ERCODE config error string no-con/no-set 0 1 to 43 chars
LOCKID lock identifier string no-con/no-set blank 8 to 13 chars
LOCKRQ lock request boolean no-con/set 0 0 to 1
OWNER owner name string no-con/set blank 1 to 32 chars
PERTIM period time real no-con/no-set 0.1 ---
PRSCAS cascade state short no-con/no-set 0 0 to 7
PRSCON present control short no-con/no-set 0 0 to 3
RI1 to RI2 eng range input real[3] no-con/no-set 100,0,1 specifiable
RO1 eng range output real[3] no-con/no-set 100,0,1 specifiable

7.3.1 Parameter Definitions


ACHNGE Alternate Change is an integer output which is incremented each time a
block parameter is changed via a Set command.

ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use. For the BIAS block, only the following unshaded bits are
used.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

Bit Number1
(0 to 31) Configured Alarm Option When True
0 Alarm Group 8 in Use
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use
16 Low Absolute Alarm Configured
17 High Absolute Alarm Configured
24 Low-Low Absolute Alarm Configured
25 High-High Absolute Alarm Configured
1.
Bit 0 is the least significant, low order bit.

214
7. BIAS – Bias Block B0193AX – Rev AB

ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the BIAS block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
B4
B5
B6
B7
B8
B9
CRIT PRTYPE

HMA
HOA
HHA

LMA
LOA
LLA
INH

Bit Boolean
Number Connection
(0 to 31)* Name Description When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: See parameter ALMSTA.B32–
PRTYPE for values used in ALMSTA.B28
the BIAS block
5 to 7 CRIT_MSK Criticality; 5 = lowest priority, ALMSTA.B27–
1= highest ALMSTA.B25
16 LMA Low Measurement Alarm ALMSTA.B16
17 HMA High Absolute Alarm ALMSTA.B15
18 LOA Low Output Alarm ALMSTA.B14
19 HOA High Output Alarm ALMSTA.B13
24 LLA Low-Low Absolute Alarm ALMSTA.B8
25 HHA High-High Absolute Alarm ALMSTA.B7
29 INH Alarm inhibit ALMSTA.B3
30 UNAK Unacknowledged ALMSTA.B2

* Bit 0 is the least significant, low order bit.

AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is gen-
erated.

AUTSW Auto Switch is a boolean input that, when true, overrides the MA and
INITMA parameters, and drives the block to the Auto state. If both
MANSW and AUTSW are true, MANSW has priority.

BAG Bad Alarm Group is a short integer input that directs Bad alarm messages
to one of eight groups of alarm devices. You can change the group number
through the workstation.

215
B0193AX – Rev AB 7. BIAS – Bias Block

BAO Bad Alarm Option is a configurable option that enables alarm generation
for each state change of the BAD parameter. The parameter values are:

0= No generation of Bad alarms.


1= Bad alarm generation if the FBM or FBC has
Bad status.
2= Bad alarm generation in the measurement
(MEAS or OUTPUT parameter) of a PID
block family, RATIO block, or BIAS block
when the MEAS or OUT parameter is con-
nected to the BIAS block.

BAP Bad Alarm Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the Bad alarm (1 is the highest priority).

BAT Bad Alarm Text is a user-configurable text string of up to 32 characters,


sent with the bad alarm message to identify it.

BBIAS Bias Scale Factor is a real input used for offsetting the product of the BIAS
input with KBIAS.

BCALCI Back Calculation In is a real input that provides the initial value of the
output before the block enters the controlling state, so that the return to
controlling is bumpless. It is also the source of the output value when its
integration bit INITI, which puts the block into output tracking, is non-
zero. Typically, a source for this input is the back calculation output
(BCALCO) of the downstream block. With V4.2 and later software,
BCALCI contains the cascade initialization data bits which were formerly
contained in the INITI parameter. Therefore, BCALCI defines the source
block and parameter that drives this block into initialization, and INITI
and INITO are not required for cascade initialization.
BLKSTA includes bits which can indicate when the downstream output is
limited in either direction. BLKSTA.B11 monitors the Limited High
condition (BCALCI.LHI) and BLKSTA.B10 monitors the Limited Low
condition (BCALCI.LLO).

BCALCO Back Calculation Output is a real output that is determined by back calcu-
lation of the block algorithm, based on the BCALCI input from the
downstream block. When BCALCO is connected to the BCALCI param-
eter of an upstream block, the upstream block will be requested to initial-
ize to the BCALCO value when an open loop condition occurs.
With V4.2 and later software, the status bits of BCALCO contain the cas-
cade initialization requests formerly contained in the INITO
parameter. Therefore, with V4.2 and later software, INITO connection is
not required for cascade initialization.

BIAS Bias is a real input which is added to the controller or algorithm input, to
achieve OUT. When the block is in the Local mode, BIAS is settable. In

216
7. BIAS – Bias Block B0193AX – Rev AB

the Remote mode, BIAS is secured and follows the value of RBIAS. BIAS
is never connectable as an input. It is always connectable as an output, and
its value may be used to source other blocks.

BLKSTA Block Status is a 32-bit output, bit-mapped to indicate the block’s opera-
tional states. For the BIAS block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10
B11
B12
B13
B14
B15
B16
B17
B18
PORSCHE B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

WLCK

UDEF
MAO
HOL

LRO

TRK
HLD
LOL

CTL
LLO
LHI

ON

MA
LR
FS

Bit Boolean
Number1 Connection
(0 to 31) Name Description When True (B32 to B1)
5 CTL Controlling BLKSTA.B27
6 TRK Tracking BLKSTA.B26
7 HLD Holding BLKSTA.B25
10 LR Local(= false)/Remote(= true) BLKSTA.B22
11 MA Manual(= false)/Auto(= true) BLKSTA.B21
13 PORS Block contains I/A Series v8.5 BLKSTA.B19
CHE controller enhancements
(parameters BAO, BAG, BAP,
BAT and OUTNM)
14 UDEF Undefined BLKSTA.B18
15 ON Compound On BLKSTA.B17
20 WLCK Workstation Lock BLKSTA.B12
21 LHI Downstream Limited High BLKSTA.B11
22 LLO Downstream Limited Low BLKSTA.B10
24 FS Failsafe BLKSTA.B8
25 LRO Local/Remote Override BLKSTA.B7
26 MAO Manual/Auto Override BLKSTA.B6
27 LOL Low Output Limit (Clamped) BLKSTA.B5
28 HOL High Output Limit (Clamped) BLKSTA.B4
1.
Bit 0 is the least significant, low order bit.

BMEAS Measurement Bias is a real input used to offset the scaled measurement
value before it is added to the bias term.

217
B0193AX – Rev AB 7. BIAS – Bias Block

BTIME Balance Time is a real input that specifies the time constant, in minutes, of
the rate at which the OUT value returns to the Auto setting, when the
block transits from Manual, Tracking, or Holding, to Auto state.

BTRKOP Bias Track Option is a short integer input. When active, BTRKOP forces
the algorithm’s BIAS input to track the block BCALCO under the follow-
ing conditions.
0 = no option enabled
1 = BIAS input tracks BCALCO when the block is in Manual, or the cas-
cade is open downstream (Initialization input INITI is true).
2 = BIAS input tracks BCALCO only when the block is in Manual.
BTRKOP is active only when the setpoint source selector LR is in Local
and Supervisory Enable (SE) is enabled (1).
BIAS is nonsettable while setpoint tracking is active. You can change
BTRKOP only by reconfiguring the block.

CEOPT Control Error Option is a short integer that specifies how the block
responds to the MEAS and BCALCI inputs when either of those inputs is
in error. To provide backward compatibility, CEOPT defaults to 1.
CEOPT has a range of 0 to 2 where:
0= The block takes no implicit Hold action when it detects a con-
trol error.
1= The block goes to the Hold state if, while MBADOP = 0, either
MEAS or BCALCI: (a) has its BAD status bit set true; (b) has
its Out-of-Service status bit set true; (c) is experiencing peer-to-
peer path failure.
2= The block goes to the Hold state if, while MBADOP = 0, either
MEAS or BCALCI meets any of the conditions described for
CEOPT = 1, or if MEAS has its ERROR status bit set true.

CEOPT is independent of the propagate error option, PROPT, and does


not affect the external logical input, HOLD. The HOLD input, when
true, still drives the block into the Hold state whenever the block is in
Auto (and MBADOP = 0).

CRIT Criticality is an integer output that indicates the priority, ranging from
1 to 5, of the block’s highest currently active alarm (1 is the highest prior-
ity). An output of zero indicates the absence of alarms.

DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. In that case, no further processing of the block occurs. To return
DEFINE to a true value, correct all configuration errors and re-install the
block.

218
7. BIAS – Bias Block B0193AX – Rev AB

DELTI1 to DELTI2
Change Delta for Input Ranges 1 or 2 is a real value that defines the mini-
mum percent of the input range that triggers change driven connections
for parameters in the range of RI1 or RI2. The default value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.

DELTO1 Change delta for Output Range 1 is a configurable real value that defines
the minimum percent of the output range that triggers change-driven
connections for parameters in the range RO1. The default value is 1.0 per-
cent. If communication is within the same control station that contains
the block’s compound, DELTO1 has no effect.

DESCRP Description is a user-defined string of up to 32 characters that describe the


block’s function (for example, “PLT 3 FURNACE 2 HEATER CON-
TROL”).

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.

EO1 Engineering Units for Output Range 1, as defined by the parameters


HSCO1, LSCO1, and DELTO1. EO1 provides the engineering units text
for the values defined by Output Range 1. “Deg F” or “pH” are typical
entries. Make the units for the Output Range (EO1) consistent with the
units of Input Range 1 (EI1) and Input Range 2 (EI2).

ERCODE Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the block’s
DEFINE parameter to be set false, but not the warning situations. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. The block detailed display shows the ERCODE
on the primary page, if it is not null. For the BIAS block, the following list
specifies the possible values of ERCODE, and the significance of each
value in this block:
Message Value
“W43 – INVALID PERIOD/ PHASE does not exist for given block
PHASE COMBINATION” PERIOD, or block PERIOD not
compatible with compound PERIOD.
“W44 – INVALID High range value is less than or equal
ENGINEERING RANGE” to low range value.

219
B0193AX – Rev AB 7. BIAS – Bias Block

Message Value
“W46 – INVALID INPUT The source parameter specified in the
CONNECTION” input connection cannot be found in
the source block, or the source
parameter is not connectable, or an
invalid boolean extension connection
has been configured.
“W48 – INVALID BLOCK The configured value of a block
OPTION” option is illegal.
“W53 – INVALID A parameter value is not in the accept-
PARAMETER VALUE” able range.
“W58 – INSTALL ERROR; A Database Installer error has
DELETE/UNDELETE occurred.
BLOCK”

HHAGRP High-High Absolute Alarm Group is a short integer input that directs
High-High Absolute alarm messages to one of eight groups of alarm
devices.

HHAIND High-High Alarm Indicator is a boolean output that is set true when the
measurement (MEAS) value rises above the high-high absolute alarm limit
(HHALIM). Once HHAIND is set true, it does not return to false until
MEAS falls below HHALIM less the deadband (MEASDB).

HHALIM High-High Absolute Alarm Limit is a real input that defines the value of
the block-dependent parameter (generally the measurement input) that
triggers a High High alarm.

HHAOPT High-High Alarm Option is a configured short integer input that enables
High-High and Low-Low absolute alarming for alarming of a block-
dependent value, generally the measurement input, or disables absolute
alarming altogether. Each alarm triggers an indicator and text message.
0 = No alarming
1 = High-High and Low-Low alarming
2 = High-High alarming only
3 = Low-Low alarming only

HHAPRI High-High Absolute Priority is an integer input, from 1 to 5, that sets the
priority level of the high-high absolute alarm. (1 is the highest priority.)

HHATXT High-High Absolute Alarm Text is a user-defined text string of up to


32 characters, sent with the high-high absolute alarm message to identify
it.

HOLD Hold is a boolean input. When true, HOLD forces the block into the
Hold substate of Auto, holding the output at its last computed value.

220
7. BIAS – Bias Block B0193AX – Rev AB

HOLIM High Output Limit is a real input that establishes the maximum output
value, in OUT units. If the algorithm tries to drive the output to a higher
value, the output is clamped at the HOLIM value and the indicator
HOLIND is set true.

HOLIND High Output Limit Indicator is a boolean output that is set true whenever
the output is clamped at the high output limit, HOLIM.

HSCI1 to HSCI2 High Scale for Input Ranges 1 and 2 are configurable real values that
define the upper limit of input ranges RI1 and RI2. EI1 and EI2 define
the units. Make the range and units consistent with those of the input
sources. The default value is 100 (percent).

HSCO1 High Scale for Output Range 1 is a real value that defines the upper limit
of the ranges for output 1. A typical value is 100 (percent). EO1 defines
the units. Make the range and units consistent with those of the output
destination.

INHALM Inhibit Alarm contains packed boolean values that represent alarm inhibit
requests for each alarm type or point configured in the block. For the
BIAS block, only the following bits are used:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10

B11

B12

B13

B14

B15

B16
B1

B2

B3

B4

B5

B6

B7

B8

B9

Bit Boolean
Number* Connection
(0 to 15) Description When True (B16 to B1)
0 Inhibit Low Measurement Alarm INHALM.B16
1 Inhibit High Measurement Alarm INHALM.B15
8 Inhibit Low-Low Absolute Alarm INHALM.B8
9 Inhibit High-High Absolute Alarm INHALM.B7

* Bit 0 is the least significant, low order bit.


There are no mnemonic names for the individual bits of INHALM.

INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting. Alarms may also be inhibited based on INHALM and the com-
pound parameter CINHIB.

INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do
not disable alarm detection.

221
B0193AX – Rev AB 7. BIAS – Bias Block

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 BIAS block,
only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNACK B2
B3
B4
B5
B6
B7
B8
B9
HHA
LLA
INH

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
24 LLA Low-Low Absolute Alarm INHSTA.B8
Inhibited
25 HHA High-High Absolute Alarm INHSTA.B7
Inhibited
29 INH Inhibit Alarm INHSTA.B3
30 UNACK Unacknowledged INHSTA.B2

* Bit 0 is the least significant, low order bit.

INITI Initialization In defines the source block and parameter that drives this
block into initialization. The source for this short integer input is the ini-
tialization output of a downstream block. With V4.2 or later software,
BCALCI contains the cascade initialization request data bit eliminating
the need to configure INITI connections in cascades. However, to pre-
serve backward compatibility, the INITI parameter has been maintained
for use in existing configurations. Existing configurations do not need to
reconfigure their cascades. The logic to set or reset the INITI short value is

222
7. BIAS – Bias Block B0193AX – Rev AB

maintained, but the setting of the handshaking bits, via the INITI-INITO
connection, is eliminated.

INITLR Initialize Local/Remote is an integer input that specifies the desired state
of the LR input during initialization, where:
0 = Local
1 = Remote
2 = The LR state specified in the checkpoint file.
The block asserts this initial LR state whenever:
 It is installed into the Control Processor database
 The Control Processor undergoes a restart operation
 The compound in which it resides is turned on.
The Initialize LR state is ignored if the LR input has an established link-
age.

INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state as specified in the checkpoint file.
The block asserts this initial M/A state whenever:
 It is installed into the Control Processor database
 The Control Processor undergoes a reboot operation
 The compound in which it resides is turned on.
The INITMA parameter itself is modified via the control configurator.
The block does not assert INITMA on ordinary reconfiguration.
INITMA is ignored if MA has an established linkage.

INITO Initialization Output is set true when:


 The block is in Manual or initializing
 Permanent or temporary loss of FBM communications occurs
 The ladder logic in the FBM is not running
 MMAIND (mismatch indicator) is true
 DISABL is true
 RSP (the remote setpoint) is not the setpoint source.
The block clears INITO when none of these conditions exist. You connect
this parameter to the INITI input of upstream blocks so that these
upstream blocks can sense when this block is open loop. This block keeps
INITO True, for one cycle (PRIBLK = 0), until the acknowledge is
received from upstream (PRIBLK = 1 and PRITIM = 0.0), or for a fixed
time delay (PRIBLK = 1 and PRITIM = nonzero).

223
B0193AX – Rev AB 7. BIAS – Bias Block

With V4.2 or later software, BCALCO contains the initialization output


eliminating the need to configure INITO connections in cascades. How-
ever, to preserve backward compatibility, the INITO 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 INITO
short value has been maintained, but the setting of the handshaking bits,
via the INITI-INITO connection, is eliminated.

KBIAS Gain Factor is a real input that multiplies the BIAS input. It is expressed
in OUT units divided by BIAS units.

KMEAS Measurement Scale Factor is a constant used to scale the input span of the
measurement input signal in order to compensate for different engineer-
ing units. Once converted, the signal range is dictated by HSCI1 and
LSCI1.

LLAIND Low-Low Alarm Indicator is a boolean output that is set true when the
measurement (MEAS) value falls below the low-low absolute alarm limit
(LLALIM). Once LLAIND is set true, it does not return to false until
MEAS rises above LLALIM plus the deadband (MEASDB).

LLALIM Low-Low Absolute Alarm Limit is a real input that defines the value of the
block-dependent parameter (generally the measurement input) that trig-
gers a Low-Low Alarm.

LLATXT Low-Low Absolute Alarm Text is a user-defined text string of up to


32 characters, sent with the low-low absolute alarm message to identify it.

LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.

LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are honored (subject to the usual access rules) only from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set false by any workstation at any time, whereupon a
new LOCKRQ is accepted, and a new ownership workstation identifier
written to LOCKID.

LOCSP Local Bias Secure is a boolean input. When true, LOCSP provides lockout
of user write access to the LR parameter. If LOCSP is configured true, the
block secures LR when it initializes and maintains LR in the secured state.
The LOCSW and REMSW overrides have higher precedence, but LR
remains secured when they are no longer asserted.

224
7. BIAS – Bias Block B0193AX – Rev AB

LOCSW Local Switch is a boolean input. When true, LOCSW overrides the LR
and INITLR parameters and drives the block to the Local state. If both
LOCSW and REMSW are true, LOCSW has priority.

LOLIM Low Output Limit is a real input that establishes the minimum output
value. If the algorithm tries to drive the output to a lower value, the out-
put is clamped at the LOLIM value and the indicator LOLIND is set true.

LOLIND Low Output Limit Indicator is a boolean output that is set true whenever
the output is clamped at the low output limit, LOLIM.

LOOPID Loop Identifier is a configurable string of up to 32 characters which iden-


tifies the loop or process with which the block is associated. It is displayed
on the detail display of the block, immediately below the faceplate.

LR Local/Remote is a boolean input that selects the bias source (0 = false =


Local; 1 = true = Remote). If LR is set to Remote, the source of the set-
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 configurable real values that define
the lower limit of input ranges RI1 and RI2. EI1 and EI2 define the units.
Make the range and units consistent with those of the input sources. The
default value is 0 (percent).

LSCO1 Low Scale for Output Range 1 is a real value that defines the lower limit of
the ranges for Output 1. A typical value is 0 (percent). EO1 defines the
units. Make the range and units consistent with those of the output desti-
nation.

MA Manual Auto is a boolean input that controls the Manual/Automatic


operating state (0 = false = Manual; 1 = true = Auto). In Auto, given the
measurement value, the block computes the output according to its spe-
cific algorithm. The block automatically limits the output to the output
range specified between LSCO1 and HSCO1, for analog blocks. In Man-
ual, the algorithm is not performed, and the output is unsecured. An
external program can then set the output to a desired value.

MALOPT Measurement Alarm Option is a configured short integer input that


enables absolute High and Low measurement alarming, or disables abso-
lute 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.

225
B0193AX – Rev AB 7. BIAS – Bias Block

MANALM Manual Alarm Option is a configurable input which enables and disables
configured alarm options to function in Manual or Track mode. Normally
alarms are processed only in the Auto mode.
0 = No alarming in Manual
1 = Full alarming in Manual
2 = No output alarming in Manual
3 = No output alarming in Track
4 = No output alarming in Manual or Track

MANFS Manual If Failsafe is a boolean input. When configured true, MANFS


drives the block to the Manual state if the block detects an incoming fail-
safe status. MANFS is ignored if MA is linked.

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.

MBADOP Manual if Bad Option is a manual override feature. When MBADOP is


set to 1 or 2, the block sets the unlinked MA input to manual if it detects
a BAD status bit in the MEAS input, and when set to 2, it detects that
RBIAS is not healthy (i.e., value status is BAD or has a broken OM con-
nection). This forces the output state to manual as long as the BAD status
remains. After the BAD status clears, returning to Auto requires external
intervention unless AUTSW is true.
0 = no option enabled
1 = Switch to Manual when MEAS or BCALCI value status is BAD
2 = Same as option 1, plus switch to Manual when RBIAS is not healthy
You can change MBADOP only by reconfiguring the block. MBADOP
has the same priority as the MANSW override, and it has precedence over
the AUTSW override. MBADOP has no effect when MA is linked. If any
of the MBADOP conditions are true, the block will be switched to Man-
ual regardless of the MANSW and AUTSW settings.

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.

MEASDB Measurement Alarm Deadband is a configured input, expressed in MEAS


units, that is used for the measurement high, high-high, low, and low-low
absolute alarming functions. You can adjust this parameter at the worksta-
tion.

226
7. BIAS – Bias Block B0193AX – Rev AB

MEASGR Measurement Group is a short integer input that directs measurement


alarm messages to one of eight groups of alarm devices. You can change
the group number through the workstation.

MEASHI Measurement High Alarm Indicator is a boolean output that is set true
when the measurement (MEAS) value rises above the high alarm limit
(MEASHL). Once MEASHI is set true, it does not return to false until
MEAS falls below MEASHI less the deadband (MEASDB).

MEASHL Measurement High Alarm Limit is a real input that defines the value of
the measurement that initiates a high absolute alarm.

MEASHT Measurement High Alarm Message Text is a user-defined text string of up


to 32 characters that is output with the alarm message to identify the
alarm. You can only change the message text by reconfiguring the block.

MEASLI Measurement Low Alarm Indicator is a boolean output that is set true
when the measurement (MEAS) value falls below the low alarm limit
(MEASLL). Once MEASLI is set true, it does not return to false until
MEAS rises above MEASLL plus the deadband (MEASDB).

MEASLL Measurement Low Alarm Limit is a real input that defines the value of the
measurement that initiates a low absolute alarm.

MEASLT Measurement Low Alarm Message Text is a user-defined text string of up


to 32 characters that is output with the alarm message to identify the
alarm. You can only change the message text by reconfiguring the block.

MEASNM Measurement Alarm Name is a user-defined text string of up to


12 characters that identifies the alarm source in the alarm message. It
serves as a point descriptor label (for example, Furn 37 Temp).

MEASPR Measurement Priority is an integer input (1 to 5), that sets the priority
level of the measurement alarm (1 is the highest priority).

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

NASOPT Alarm Suppression Option is a configurable, non-settable short integer


that specifies how the nuisance alarm delay is implemented:
 0 = Suppress nuisance alarms by delaying the Return-to-Normal
(default) by the length of time specified in NASTDB
 1 = Suppress nuisance alarms by delaying alarm detection by the
length of time specified in NASTDB
 2 = Suppress nuisance alarms by delaying both the Alarm Detec-
tion and the Return-to-Normal by the length of time specified in
NASTDB

NASTDB Alarm Deadband Timer is a configurable long integer. Depending on the


value of NASOPT, it either specifies the deadband time interval that must

227
B0193AX – Rev AB 7. BIAS – Bias Block

elapse before an alarm condition is allowed to return to normal, or the


length of a delay-on timer which specifies the amount of time between an
alarm’s detection and the announcement of the alarm. The parameter
value ranges from zero (default, no delay) to 2147483647 ms.

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.

OUTNM The Output Alarm Name is a user-defined string of up to 32 characters


that identifies the alarm source in the alarm message. It serves as a point
descriptor label (for example, F2 Fuel Ctrl).

OWNER Owner is a string of up to 32 ASCII characters which is used to allocate


control blocks to applications. Attempts to set Owner is successful only if
the present value of Owner is the null string, an all-blank string, or identi-
cal 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.

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.

228
7. BIAS – Bias Block B0193AX – Rev AB

**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.

PERTIM Period Time is the period of the block expressed in seconds.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).

PRIBLK Primary Block is a configuration option. When true (=1), PRIBLK


enables a block in a cascaded configuration to initialize without bumping
the process, either at initial startup or whenever control is transferred up
to a primary block. Depending on the value of PRITIM, PRIBLK does
this by forcing the BIAS block to remain in the Hold state until the
Acknowledge status bit (Bit 10) of MEAS is detected from the upstream
block (PRITIM = 0.0), or until the time defined by PRITIM expires
(PRITIM > 0.0). In the latter case, the explicit acknowledge from the
upstream block is not needed.
For correct operation, set EROPT = 1 or 2, and implement the connec-
tions between each primary-secondary block combination. These connec-
tions include BCALCI/BCALCO and OUT/RSP (or OUT/MEAS).
Except for the most primary controller block, Invensys recommends that
PRIBLK be set true for all applicable blocks in a cascaded scheme. When
PRIBLK is false (default value), no special handling takes place.
Use PRIBLK in a cascade situation when the source of the block's input
connection needs to be initialized.
Refer to “PRIBLK and PRITIM Functionality” on page 236 for more
information on this parameter.

PRITIM Primary Cascade Timer is a configurable parameter used to delay the clos-
ing of the cascade to a primary block, when the output is initialized in the
BIAS block. It is used only if the PRIBLK option is set. The cascade is
closed automatically when the timer expires without requiring an explicit
acknowledge by the upstream block logic.
Refer to “PRIBLK and PRITIM Functionality” on page 236 for more
information on this parameter.

PROPT Propagate Error Option is a short integer input. It can be set to 0-2:
 0 = option is disabled (default)
 1 = set the ERROR Status bit of the output parameter (OUT) if
the input to the MEAS parameter is in error (see below) while the
block is in Auto

229
B0193AX – Rev AB 7. BIAS – Bias Block

 2 = copy the BAD, OOS (Out-of-Service), and ERROR status bits


from the MEAS parameter to the output parameter (OUT)
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
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

QALSTA Quality Status parameter (QALSTA) is a non-configurable packed long


that provides a combination of value record status, block status
(BLKSTA), and alarm status (ALMSTA) information in a single connect-
able output parameter. Available bits for this block are provided below.

230
7. BIAS – Bias Block B0193AX – Rev AB

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit Boolean Connection
Number1 Definition Contents (B32 to B1)
30 Alarms Unacknowledged ALMSTA.UNA QALSTA.B2
29 Alarms Inhibited ALMSTA.INH QALSTA.B3
25 High-High Absolute Alarm ALMSTA.HHA QALSTA.B7
24 Low-Low Absolute Alarm ALMSTA.LLA QALSTA.B8
17 High Absolute Alarm ALMSTA.HMA QALSTA.B15
16 Low Absolute Alarm ALMSTA.LMA QALSTA.B16
5 Manual BLKSTA.MA QALSTA.B27
4 Low Limited PNT.LLO status QALSTA.B28
3 High Limited PNT.LHI status QALSTA.B29
2 Uncertain MEAS.ERR status QALSTA.B30
1 Out-of-Service MEAS.OOS status QALSTA.B31
0 Bad MEAS.BAD status QALSTA.B32
1.
Bit 0 is the least significant, low order bit.

RBIAS Remote Bias is the selected bias source when LR is set to Remote. Typi-
cally, RBIAS connects to an upstream block in a cascade scheme.

REMSW Remote Switch is a boolean input. When true, REMSW overrides the
unlinked LR and INITLR parameters, and drives the block to the Remote
state. If both LOCSW and REMSW are true, LOCSW has priority.

RI1 to RI2 Range Input is an array of real values that specify the high and low engi-
neering scale and change delta of a particular real input. For a given block,
it also forms an association with a group of real input parameters that have
the same designated range and change delta.

RO1 Range Output is an array of real values that specify the high and low engi-
neering scale of a particular real output. For a given block, it also forms an
association with a group of real output parameters that have the same des-
ignated range.

SUM Sum is a real output that represents the output of the Bias summer. SUM
is always active regardless of the Manual/Auto state.

231
B0193AX – Rev AB 7. BIAS – Bias Block

TYPE When you enter “BIAS” or select “BIAS” from the block type list under
Show, an identifying integer is created specifying this block type.

UNACK Unacknowledge is a boolean output that the block sets to True when it
detects an alarm. It is typically reset by operator action.

UNCLMP UNCLMP is a non-connectable Boolean with a default value of 1


(TRUE). When it is set to 0 (FALSE), the BIAS block’s set point is
clamped between HSCI2 (high input range 2) and LSCI2 (low input
range 2). When the UNCLMP option is set to 1 (TRUE), no range
clamping of the set point is performed.

7.4 Functions
7.4.1 Detailed Operation
The BIAS block can function either as a two-term summer (doing a scaled algebraic addition of
the two inputs, MEAS and BIAS), or as a Bias control block.
The MEAS parameter is an input identifying the source of the analog output that comes to this
block as the controlled variable in the control loop.
The BIAS parameter is the local bias and always represents the active controller bias. BIAS is also
an output parameter which can be used to source the bias value to other blocks. The Bias source
selector input, LR (Local/Remote), together with the two overrides LOCSW and REMSW deter-
mines the bias source at any time.
When LR is switched to local (false), the block sets INITO to true and releases the BIAS parame-
ter, allowing any user to input the desired controller bias value. The bias track option, BTRKOP,
can be used to assure bumpless transfer.
When LR is switched to Remote (true), BIAS is no longer settable and takes on the value of the
remote bias input, RBIAS. RBIAS provides a link to the remote bias source. If RBIAS is unlinked
when LR is true, the block forces the LR parameter to local and secures it.
The BIAS block also provides the LOCSW and REMSW parameters to drive the bias state to
Local or Remote.
LOCSP allows the block to secure the LR parameter when the block initializes and to maintain
that secured state except when LOCSW and/or REMSW is asserted.
When the block is in the Remote mode, the status of the local bias (BIAS) tracks the status of the
remote bias (RBIAS).
When the block is switched to Local mode, the bias status depends on the bias tracking option
(BTRKOP):
 If BTRKOP = 1 or 2, the BIAS status is cleared.
 If BTRKOP = 0, the BIAS status reflects the RBIAS status at the time the switch to
Local occurred. The block maintains this status as long as block is in Local, unless the
user changes the BIAS value via data access. At that time the status is cleared.
The local set point is clamped each cycle when the set point mode is Remote, Local, or Supervi-
sory. The clamp limits used are the ratio/bias scale limits HSCI2 and LSCI2. If the set point value

232
7. BIAS – Bias Block B0193AX – Rev AB

before clamping is equal to or less than LCSI2, status bit LLO of SPT is set true. If the value
before clamping is equal to or higher than HSCI2, status bit LHI of SPT is true.
The BIAS block has two output states, Auto and Manual. In Manual, the block releases the out-
put, allowing it to be set by the user. In Auto, the block secures the output.
Auto has three sub-states: Controlling, Tracking, and Holding.
In the Controlling sub-state, the output is the result of the block’s summing algorithm subject to
the limits imposed by output clamping. The output, OUT, is determined as follows:
OUT = (MEAS * KMEAS + BMEAS) + bias_term
where:
bias_term = (RBIAS * KBIAS + BBIAS) if LR = true (Remote) and RBIAS is linked;
or
bias_term = RBIAS if LR = Remote and RBIAS is unlinked;
or
bias_term = BIAS
in all other cases.
While in Auto, the BIAS block clamps the output, OUT, between the LOLIM and HOLIM val-
ues. If the algorithm output calculates to a value less than LOLIM or greater then HOLIM, the
block clamps the value at the limit and sets the appropriate indicator, HOLIND or LOLIND, to
true. If you set LOLIM higher than HOLIM, then HOLIM is automatically set equal to the
higher of the two values, which is LOLIM. Output clamping also occurs in the Manual state if
the manual clamp option, MCLOPT, is configured true.
When the BIAS block changes from Manual, Tracking, or Holding, to Controlling, or from Local
to Remote while the output is controlling, the OUT value returns to the Auto setting at a rate
specified by the Balance Time (BTIME) parameter. During this time a diminishing balance term
(or bleed term) is added to the block output, OUT until it bleeds off to zero at the BTIME rate.
This makes the reset balance action decay with a response characteristic of a first order lag. A first
order lag reaches 66 percent of the bleed term after BTIME minutes. It takes three BTIME cycles
for the integral balance to approach 100 percent.
The block goes to Tracking when INITI is set true, as long as the block is not in HOLD, and
there is no control error. The block performs explicit initialization in the Tracking sub-state.
When INITI returns to false, the block returns to the Controlling sub-state to resume closed-loop
control.
In the Tracking sub-state, OUT = BCALCI, unless BCALCI is out of range, in which case OUT
is clamped between the LOLIM and HOLIM values. The block calculates the BCALCO parame-
ter, sets BCALCO to true (requesting upstream blocks to perform their own explicit initializa-
tion), and sets bit 6 (TRK) in the BLKSTA parameter. When the BIAS block is the upstream
block in a cascade control scheme, output tracking (BTRKOP = 1 or 2) assures a bumpless trans-
fer for the downstream block.
For the BIAS block, BLKSTA includes bits which indicate when the downstream output is lim-
ited in either direction by monitoring for the Limited High condition (BCALCI.LHI via
BLKSTA.B11) and Limited Low condition (BCALCI.LLO via BLKSTA.B10).
During Auto operation, the block checks the critical inputs MEAS and BCALCI for data errors
(off-scan, or BAD, OOS or ERROR status bits set). If an error is detected, the BIAS block,

233
B0193AX – Rev AB 7. BIAS – Bias Block

depending on the value of the CEOPT parameter (see CEOPT definition), may propagate the
error to its outputs by setting the ERROR status bit of the output, OUT.
The block goes to Hold if, while MBADOP = 0 and CEOPT = 1 or 2, either the HOLD param-
eter goes true, or a condition required by the CEOPT parameter is met. Even if MBADOP = 1 or
2, the block still goes to the Holding substate if the MA parameter is linked.
In the Hold sub-state, OUT keeps the last good value before the block went into Hold, and the
block secures this value against any changes. The block sets the BCALCO status to bad and sets
bit 7 (HOLD) in the BLKSTA parameter.
When all error conditions have ceased, the block returns to the Controlling substate and resumes
closed loop control.
No implicit Hold action takes place if CEOPT = 0.
A transition to Manual sets all alarm and limit indicators to false.
If MBADOP = 1 or 2 (and the MA parameter is unlinked), the block goes to the Manual state
when it detects a control error or when the HOLD input goes true, regardless of the CEOPT set-
ting. MBADOP has the same priority as MANSW and has precedence over AUTSW. Therefore,
if MBADOP = 1 or 2 and a bad input is detected, the block goes to Manual regardless of the
AUTSW setting.
The block also goes to Manual if, while MANFS is configured true, it detects the Failsafe status
bit (BCALCO.FS) at its BCALCI input.
When the block is switched to Manual, the OUT status reflects the MEAS/BIAS status at the
time the switch occurred. While the block is in Manual, it maintains this status until you change
the OUT output via data access. At that time, the block clears the status.
During manual operation, control is not performed. Alarm outputs are settable. The controller
output (OUT) is unsecured and may have its value set by an external task or program, and if the
manual clamp option (MCLOPT) is true, these set values undergo output clamping.
When the block restarts, the INITMA configured option specifies the value of the MA parameter,
unless MA has an established linkage, or MANSW or AUTSW are set true. Likewise, the INITLR
specifies the value of the LR parameter, unless LR is linked, or LOCSW or REMSW are set true.

7.4.1.1 Normal Configuration


Normal configuration of the BIAS block is as follows:

234
7. BIAS – Bias Block B0193AX – Rev AB

If there are no downstream control blocks, then link the BCALCI parameters to the OUT param-
eter (see Figure 7-2).

RBIAS

MEAS BIAS
OUT

BCALCI

Figure 7-2. Configuration for no Downstream Control Blocks

If the downstream block is an AOUT block, link BCALCI to the downstream block’s BCALCO
parameter and link the downstream block’s MEAS parameter to OUT (see Figure 7-3).

RBIAS

MEAS BIAS AOUT


OUT MEAS

BCALCI BCALCO

Figure 7-3. Configuration for AOUT Downstream Block

If the secondary block is a DGAP or PTC block, link BCALCI to the secondary block’s BCALCO
parameter (see Figure 7-4). Link OUT to the secondary block’s RSP.

235
B0193AX – Rev AB 7. BIAS – Bias Block

RBIAS

MEAS BIAS DGAP or


OUT RSP PTC

BCALCI BCALCO
Figure 7-4. Configuration for DGAP or PTC Secondary block

In a cascade configuration, link the blocks as shown in Figure 7-5. Use the PRIBLK option in all
cascade configurations.

RBIAS

MEAS OUT RBIAS OUT MEAS


BIAS BIAS AOUT
PRIBLK=0 PRIBLK=1 PRIBLK=1

BCALCI BCALCO BCALCI BCALCO


Figure 7-5. Cascade Configuration

7.4.2 PRIBLK and PRITIM Functionality


The Primary Block (PRIBLK) parameter indicates whether the BIAS block has a connection from
an upstream block (PRIBLK=1) or not (PRIBLK=0). Its value, together with that of the
Primary Cascade Timer (PRITIM), determines whether the BIAS block remains in Hold for a
fixed time delay (of length defined by PRITIM), or ends the Hold when the Acknowledge status
bit (Bit 10) of MEAS is detected from the upstream block (if PRITIM = 0.0). During initializa-
tion, the acknowledgement is not required and a Hold of one cycle only occurs.

236
8. BIN – Binary Input Block
This chapter covers the Binary Input (BIN) block features, parameters and functions, and
application diagrams.

NOTE
This chapter describes the Distributed Control Interface (DCI) BIN block. For a
description of how the BIN block is used in PLC applications, refer to PLC Interface
Block Descriptions (B0193YQ).

NOTE
In this chapter, CP270 Only indicates BIN features that are supported only on the
Field Control Processor 270 (FCP270) and Z-form Control Processor 270
(ZCP270) with I/A Series system software V8.4 or later.

8.1 Overview
The Binary Input (BIN) block is a Distributed Control Interface (DCI) block. (DCI blocks sup-
port connectivity of I/A Series control stations to various bus resident devices via a general pur-
pose interface.) The BIN block provides the control strategy with the capability to read a single
binary value from an address in an associated Fieldbus Module (FBM). The binary value has two
states such as ON and OFF or START and STOP.

Input from Input Processing To Upstream


External Device Block

Input from
Manual Set

Figure 8-1. BIN Block Diagram

8.2 Basic Operation


The BIN block is used in applications where an external device provides the binary data value to
the I/A Series system for use in a Display Manager or FoxView™ display or connection to an
Invensys control strategy.
The BIN block receives one binary value from the external device whose address is specified by
the parameter Point Number (PNT_NO). It presents that value at parameter BIN whether the
block mode is Auto or Manual. An additional parameter CIN is provided with the properties of a

237
B0193AX – Rev AB 8. BIN – Binary Input Block

standard output parameter. Its value is the same as that of BIN when the block is in Auto. When
the block is in Manual, CIN is independent of BIN, and may be used for manual sets.
With I/A Series system software V8.4, the BIN block provides Bad I/O alarm and state change
alarm detection and reporting on the FCP270 and ZCP270. Alarming is not supported on other
control processors.

8.3 Features
The BIN block:
 Reads a single binary value from its associated FBM
 Provides support for operator sets in Manual
 Specifies the FBM source point as a device-specific string
 Simulation option enables testing input to the control strategy without actual field
connections
 Quality Status (QLSTA) provides value record status, block status and alarm status in
a single connectable output parameter (CP270 Only)
 Bad I/O alarm and state change alarm detection and reporting (CP270 Only).

8.4 Parameters
Table 8-1. BIN Block Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set 2 blanks 1 to 12 chars
TYPE block type short integer no-con/no-set BIN_TYPE 148
DESCRP block description string no-con/no-set 2 blanks 1 to 32 chars
PERIOD block sample time short integer no-con/no-set 1 0 to10, and 13 for CPs,
0 to 12 for Gateways
PHASE block execution phase short integer no-con/no-set 0 ---
LOOPID loop/unit/batch identifier string no-con/set 2 blanks 1 to 32 chars
IOM_ID ECB identifier string no-con/no-set 2 blanks 1 to 12 chars
PNT_NO point number string no-con/no-set blanks 1 to 32 chars or device
specific
MA manual/auto switch boolean con/set 0 0 to 1
INITMA initialize manual/auto short integer no-con/no-set 1 0 to 2
BIN binary input boolean con/set 0 0 to 1
SELOPT selection option short integer no-con/no-set 1 1 = set False (0)
2 = set True (1)
0 or 3 = retain last
value
SIMOPT simulation option boolean no-con/no-set 0 0 = no simulation
1 = simulation
UPDPER parm update period integer no-con/no-set 10000ms 0 to 2147483647 ms
ANM point alarm name string no-con/no-set blank 0 to 12 chars

238
8. BIN – Binary Input Block B0193AX – Rev AB

Table 8-1. BIN Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


NM0 alarm state name 0 string no-con/no-set blank 0 to 12 chars
NM1 alarm state name 1 string no-con/no-set blank 0 to 12 chars
IVO invert option boolean no-con/no-set 0 0 to 1
INHOPT inhibit option short no-con/no-set 0 0 to 3
INVALM invert alarm boolean no-con/no-set 0 0 to 1
INHIB alarm inhibit boolean con/set 0 0 to 1
INHALM inhibit alarm packed b con/set 0 0 x FFFF
MANALM manual alarm option short integer no-con/set 0 0 to 1
SAO state alarm option boolean no-con/no-set 0 0 to 1
SAP state alarm priority integer con/set 5 1 to 5
SAG state alarm group short no-con/set 1 1 to 8
BAO bad alarm option boolean no-con/no-set 0 0 to 1
BAT bad alarm text string no-con/no-set blank 1 to 32 chars
BAP bad alarm priority integer con/set 5 1 to 5
BAG bad alarm group short no-con/set 1 1 to 8
SCOPT state change option short no-con/no-set 0 0 to 3
SCGRP state change group short no-con/set 1 1 to 8
SCTXTO state change 0 text string no-con/no-set blank 0 to 32 chars
SCTXT1 state change 1 text sting no-con/no-set blank 0 to 32 chars
AMRTIN alarm regeneration timer integer no-con/no-set 0 0 to32767 sec
NASTDB nuisance alarm suppres- long integer no-con/set 0 0 to 2147483647
sion deadband
NASOPT nuisance alarm suppres- short no-con/set 0 0 to 2
sion option
Non-Configurable Parameters
OUTPUTS
ACHNGE alternate change integer con/no-set 0 -32768 to 32767
ALMSTA alarm status packed long con/no-set 0 0 to 0xFFFFFFFF
BLKSTA block status packed long con/no-set 0 0 to 0xFFFFFFFF
CIN block output boolean con/set (in manual) 0 0 to 1
CRIT alarm criticality integer con/no-set 0 0 to 5
INHSTA inhibit status packed long con/no-set 0 0 to 0xFFFFFFFF
PRTYPE priority type integer con/no-set 0 0 to 8
QALSTA quality status pack_b con/no-set 0 0 to 0xFFFF
TSTAMP time stamp long integer con/no-set 0 ms after midnight
UNACK unacknowledged alarm boolean con/no-set 0 0 to 1
VALSTS FF value status integer con/no-set 0 0 to 0xFFFF
DATA STORES
ALMOPT alarm options packed long no-con/no-set 0 0 to 0xFFFFFFFF
DEFINE no configuration errors boolean no-con/no-set 1 0 to 1
LOCKID lock identifier string no-con/no-set 2 blanks 8 to 13 chars
LOCKRQ lock request boolean no-con/no-set 0 0 to 1
DEV_ID device identifier character no-con/no-set 6-character array
ERCODE configuration error string no-con/no-set 2 blanks 1 to 43 chars
OWNER owner name string no-con/set 2 blanks 1 to 32 chars

239
B0193AX – Rev AB 8. BIN – Binary Input Block

8.4.1 Parameter Definitions


ACHNGE Alternate Change is an integer output which is incremented each time a
block parameter is changed via a Set command.

ALMOPT Alarm Options contain packed long values representing the alarm types
(CP270 Only) that have been configured as options in the block, and the alarm groups
that are in use. Table 8-2 shows how the parameter is used by the BIN
block.

Table 8-2. ALMOPT Parameter Format

Bit Number1
(0 to 31) Configured Alarm Option, When True
0 (lsb) Alarm Group 8 in Use
1 Alarm Group 7 in Use
2 Alarm Group 6 in Use
3 Alarm Group 5 in Use
4 Alarm Group 4 in Use
5 Alarm Group 3 in Use
6 Alarm Group 2 in Use
7 Alarm Group 1 in Use
22 Bad I/O Alarm Configured
26 State Alarm Configured
1. Bit 0 is the least significant, low order bit.

ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
(CP270 Only) states. Table 8-3 shows the bits used by the BIN block.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
B4
B5
B6
B7
B8
B9

CRIT PRTYPE
BAD
STA
INH

240
8. BIN – Binary Input Block B0193AX – Rev AB

Table 8-3. ALMSTA Parameter Format

Bit Boolean
Number Description, Connection
(0 to 31)* Name When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: See PRYTPE parame- ---
ter for values used in the BIN block
5 to 7 CRIT_MSK Criticality: 1 (highest priority) to 5 ---
22 BAD Bad I/O Alarm ALMSTA.B10
26 STA State Alarm ALMSTA.B6
29 INH Inhibit Alarm. This bit is set when ALMSTA.B3
any of the block’s alarms is inhibited
30 UNAK Unacknowledged ALMSTA.B2
*Bit 0 is the least significant, low order bit.

AMRTIN Alarm Message Regeneration Time Interval specifies the rate at which
(CP270 Only) alarm messages are generated for alarm conditions that have not been
cleared. The interval is specified in seconds. The configured interval is
rounded up to the closest value that is an even multiple of the station
BPC. A value of 0 disables alarm message regeneration.

ANM Alarm Name is a user-defined string of up to 12 characters which serves as


(CP270 Only) a point descriptor label for Bad alarm, state alarm and state change mes-
sages (for example, “PLT3 F2 SDR”).

BAG Bad Alarm Group is a short integer input that directs Bad alarm messages
(CP270 Only) to one of eight groups of alarm devices. You can change the group number
through the workstation.

BAO Bad Alarm Option is a configurable option that enables alarm generation
(CP270 Only) for each state of CIN.BAD.

BAP Bad Alarm Priority is an integer input, ranging from 1 (highest priority) to
(CP270 Only) 5 (default), that sets the priority level of the Bad alarm.

BAT Bad Alarm Text is a user-configurable text string of up to 32 characters,


(CP270 Only) sent with the bad alarm message to identify it.

BIN Binary Input contains the discrete value read from point PNT_NO, in an
external device specified by IOM_ID. BIN displays the actual value at the
external device at all times, regardless of the block mode. When SIMOPT
is used, BIN can be used to simulate the Boolean input value from the
field device.

241
B0193AX – Rev AB 8. BIN – Binary Input Block

BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the BIN block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10
B11
B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
DCIX B9

FBM
ON

MA
Bit Number* Boolean Connection
(0 to 31) Name Description When True (B32 to B1)
8 FBM Bad Status of ECB BLKSTA.B24
11 MA Manual = 0, Auto = 1 BLKSTA.B21
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
23 DCIX Enhanced DCI block (CP270 Only) BLKSTA.B9
* Bit 0 is the least significant, low order bit.

CIN Block output CIN contains the same value as BIN when the block mode
is Auto and IVO=0. CIN contains the complement of BIN when the
block mode is Auto and IVO=1. In Manual, CIN is released and you can
set its value.

CRIT Criticality is an integer output that indicates the priority of the block’s
CP270 Only highest currently active alarm. The range is 1 (highest priority) to 5. An
output of 0 indicates the absence of alarms.

DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. (See ERCODE for the list of all possible validation errors in this
block.) In that case, no further processing of the block occurs, including
further validation of remaining parameters. To return DEFINE to a True
value, you should correct all configuration errors and reinstall the block.

DESCRP Description is a user-defined string of up to 32 characters used to describe


the block’s function (for example, “PLT 3 FURNACE 2 HEATER CON-
TROL”).

DEV_ID Device Identifier is a character array that specifies the 6-character identi-
fier of the connected device. It is copied from the DEV_ID configured in
the ECB specified by the IOM_ID parameter.

ERCODE Error Code is a character data store which indicates the type of configura-
tion error which caused the block’s DEFINE parameter to be set False,

242
8. BIN – Binary Input Block B0193AX – Rev AB

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:

ERCODE Message Meaning


W52 – INVALID I/O CHAN- PNT_NO string is blank.
NEL/GROUP NO.
W62 – UNRESOLVED CON- Connection not yet resolved. (Block
NECTION remains defined.)
W65 – INVALID POINT FBM parsing algorithm finds that a
ADDRESS used PNT_NO is invalid.
W66 – DUPLICATE CON- There is a duplicate connection to a
NECTION particular point.
W67 – INSUFFICIENT FBM There is no available memory or
MEMORY/CONNECTIONS point connections in the FBM.
W68 – INVALID DEVICE The device connection is invalid.
CONNECTION
W69 – INVALID POINT The point connection is invalid.
CONNECTION

If a DCI data connection cannot be resolved due to a lack of configuration


information, the block is marked DEFINED but the value is marked
OOS and one of the following strings is stored in ERCODE to indicate
the configuration error:
W77 - FIELDBUS COMMUNICATIONS FAULT (FBM228 only)
W78 - INVALID FUNCTION BLOCK (FBM228 only)
W80 - FIELDBUS DEVICE NOT FOUND (FBM228 only)
W73 - FF FUNCTION BLOCK CONFIGURATION ERROR
(FBM228 only).
If a DCI data connection cannot be resolved for any other reason, the
block is marked UNDEFINED and one of the following strings is stored
in ERCODE to indicate the configuration error:
W74 - FF FUNCTION BLOCK DDITEM MISMATCH (FBM228
only)
W75 - FF FUNCTION BLOCK DDMBR MISMATCH (FBM228
only)
W76 - INVALID FF MODE CONFIGURATION (FBM228 only)
W79 - INVALID PARAMETER INDEX (FBM228 only)
W81 - INVALID PARENT DCI ECB PERIOD/PHASE (FBM228
only).

243
B0193AX – Rev AB 8. BIN – Binary Input Block

INHALM Inhibit Alarm contains packed boolean values that represent alarm genera-
(CP270 Only) tion inhibit request for each type of alarm configured in the block: for the
BIN block, only the following bits are used:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10

B11

B12

B13

B14

B15

B16
B1

B2

B3

B4

B5

B6

B7

B8

B9
Bit Boolean
Number* Description, Connection
(0 to 15) When True (B16 to B1)
6 Inhibit Bad I/O Alarm INHALM.B10
10 Inhibit State Alarm INHALM.B6
*Bit 0 is the least significant, low order bit.

There are no mnemonic names for the individual bits of INHALM.

INHIB Inhibit is a configurable, connectable and settable boolean that, when set,
(CP270 Only) suppresses all alarm message reporting. INHIB affects only alarm message
reporting; the alarm handling and detection functions are determined by
the INHOPT setting.

INHOPT Inhibit Option specifies the following actions applying to all block alarms:
(CP270 Only)  0 = When an alarm is inhibited, disables alarm messages but does
not disable alarm detection.
 1 = When an alarm is inhibited, disables both alarm messages and
alarm detection. If an alarm condition exists at the time the alarm
transitions into the inhibited state, the alarm indicator is cleared.
 2 = Same as 0 for inhibited alarms. For uninhibited alarms,
automatically acknowledges “return-to-normal” messages.
“Into alarm” messages can be acknowledged by explicitly setting
UNACK False.
 3 = Same as 1 for inhibited alarms. For uninhibited alarms,
automatically acknowledges “return-to-normal” messages.
“Into alarm” messages can be acknowledged by explicitly setting
UNACK False.

244
8. BIN – Binary Input Block B0193AX – Rev AB

INHSTA Inhibit Status contains packed long values that represent the current
(CP270 Only) inhibit status of each alarm type configured in the block. Table 8-4 shows
how the parameter is used with the BIN block.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

BAD B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
STA B6
B7
B8
B9
Table 8-4. INHSTA Parameter Format

Bit Boolean
Number* Description, Connection
(0 to 31) Name When True (B32 to B1)
22 BAD Bad I/O Alarm Inhibited INHSTA.B10
26 STA State Alarm Inhibited INHSTA.B6
*Bit 0 is the least significant, low order bit.

INITMA Initialize Manual/Auto specifies the desired state of the MA input under
certain initialization conditions, namely:
 The block has just been installed into the I/A Series station
database.
 The I/A Series station is rebooted.
 The compound in which the block resides is turned on.
 The INITMA parameter is modified via the Integrated Control
Configurator.
INITMA is ignored if MA has an established linkage.
When INITMA is asserted, the value set into MA is:
 0 (Manual) if INITMA = 0.
 1 (Auto) if INITMA = 1.
 The MA value from the checkpoint file if INITMA = 2.

INVALM Invert Alarm is a configured boolean which specifies the sense of CIN
(CP270 Only) transitions considered “into alarm” and “return to normal” in State alarm
messages. Values are:
 0 = CIN transitions from 0 to 1 are considered “into alarm.” State
alarm messages contain the NM1 string. Transitions from 1 to 0
are considered “return to normal.” State alarm messages contain
the NM0 string.
 1 = CIN transitions from 1 to 0 are considered “into alarm.” State
alarm messages contain the NM1 string. Transitions from 0 to 1
are considered “return to normal.” State alarm messages contain
the NM0 string.

245
B0193AX – Rev AB 8. BIN – Binary Input Block

In any case, State alarm detection is disabled when option SAO is false.

IOM_ID ECB Identifier is a configurable string that specifies the pathname of the
ECB201 for the device, for the purpose of connecting to (accessing) a field
parameter that resides in a field device hosted by a parent FBM ECB.
IOM_ID has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOM_ID configuration. In this case, the 1-12
character ECB block name is sufficient.

IVO Invert Option, when true, causes the block to invert the value of the FBM
(CP270 Only) input or the BIN input before writing it to the CIN output. If IVO is
true, all alarming and state change message generation is based on the
inverted value of the input.

LOCKID Lock Identifier is a string identifying the workstation which has locked
(CP270 Only) access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.

LOCKRQ Lock Request is a Boolean input which can be set True or False only by a
(CP270 Only) SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set True in this fashion, a workstation identifier
accompanying the set command is entered into the LOCKID parameter
of the block. Thereafter, set requests to any of the block’s parameters are
honored (subject to the usual access rules) only from the workstation
whose identifier matches the contests of LOCKID. LOCKRQ can be set
False by any workstation at any time, whereupon a new LOCKRQ is
accepted, and a new ownership workstation identifier written to
LOCKID.

LOOPID Loop Identifier is a configurable string of up to 32 characters used to iden-


tify the loop or process with which the block is associated. It is displayed
on the detail display of the block, immediately below the faceplate.

MA Manual/Auto is a Boolean input that controls the block’s operating state


(0 = False = Manual; 1 = True = Auto). When in Auto, the block output is
copied from BIN to CIN if the IVO parameter is not set. When in Auto,
CIN contains the complement of BIN if the IVO parameter is set. In
Manual the block output is not copied or inverted, and CIN becomes set-
table.

MANALM Manual Alarm Option is a configurable input which enables or disables


(CP270 Only) configured alarm options to function in Manual mode. Normally alarms
are processed only in the Auto mode. Values for the BIN block:

246
8. BIN – Binary Input Block B0193AX – Rev AB

0 = No alarming in Manual
1 = Full alarming in Manual

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

NASOPT Nuisance Alarm Suppression Alarm Option is a configurable, settable


(CP270 Only) short integer that specifies how the nuisance alarm delay is implemented:
 0 = Suppress nuisance alarms by delaying the Return-to-Normal
(default) by the length of time specified in NASTDB
 1 = Suppress nuisance alarms by delaying alarm detection by the
length of time specified in NASTDB
 2 = Suppress nuisance alarms by delaying both the Alarm Detec-
tion and the Return-to-Normal by the length of time specified in
NASTDB

NASTDB Nuisance Alarm Suppression Time Deadband is used to reduce the


(CP270 Only) number of alarm messages generated when a block parameter crosses back
and forth over an alarm limit. When the parameter is set to zero, an alarm
is generated each time the parameter is outside the limit and is cleared
each time it crosses back. Thus, a parameter that is fluttering at the alarm
limit can result in nuisance alarms. NASTDB specifies, in milliseconds, a
time that must lapse before the alarm is cleared and before another alarm
message can be generated. The specified value is rounded up to the nearest
even multiple of the control station BPC. If the parameter passes from
outside one limit to outside the opposite extreme, the deadband is
ignored.

NM0 NM0 Name 0 is a user-defined string of up to 12 characters sent with a


(CP270 Only) State alarm message to indicate that the message is a “return to normal”
type. This means that CIN has transitioned from 1 to 0 if INVALM is
false, or 0 to 1 if INVALM is true.

NM1 Name 1 is a user-defined string of up to 12 characters sent with a State


(CP270 Only) alarm message to indicate that the message is an “into alarm” type. This
means that CIN has transitioned from 0 to 1 if INVALM is false, or 1 to 0
if INVALM is trueNM1

OWNER Owner is a string of up to 32 ASCII characters used to allocate control


blocks to applications. Attempts to set OWNER are successful only if the
present value of OWNER is the null string, an all-blank string, or identi-
cal 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.

PERIOD Period is an indexed input that dictates the block’s execution time base,
and allowable PHASE values. For CP stations, PERIOD values range

247
B0193AX – Rev AB 8. BIN – Binary Input Block

from 0 to 10, and 13, and map to the time lengths shown in the following
table. For Gateways and Integrators, PERIOD values range from 0 to 12
and map to the time lengths specified in the device specific user’s guide.

Period Length Period Length


0 0.1 second 7 10 minutes
1 0.5 second* 8 60 minutes
2 1.0 second 9 0.2 second
3 2.0 seconds 10 5.0 seconds**
4 10 seconds 11*** ----
5 30 seconds 12*** ----
6 1 minute 13**** 0.05 second

* If the BPC is 0.2 second, this period is treated internally as 0.6 second, but
the PERIOD parameter remains 1.
** If the BPC is 2.0 seconds, this period is treated internally as 6.0 seconds, but
the PERIOD parameter remains 10.
*** Not available for CP stations.
****Available in CP40, CP40B, CP60 and later control processors.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 seconds) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the
I/A Series station is 0.5 second. Refer to the appropriate Integrated Control
Software Concepts document (B0700AG or B0193AW).

PNT_NO Point Number identifies the address in the external device memory (or
external device data stream) to which the block output is directed. It is a
string whose syntax depends on the FBM type and fieldbus protocol of the
attached device:
 For the FBM223 Profibus interface, PNT_NO must be config-
ured to contain a Profibus data identifier. This information
identifies, to the FBM, the address of the input data unit from the
device. Refer to PROFIBUS-DP Communication Interface Module
(FBM223) User’s Guide (B0400FE) for further details.
 For the FBM222 Redundant Profibus interface, the PNT_NO
configuration string uses the FBM223 syntax with extensions for
PROFIBUS-PA status, custom status and other features. Refer to
Implementing Profibus Networks in Foxboro Control Software Appli-
cations (B0750BE) for further details.
 For the HART interface
(FBM214/214b/215/216/216b/218/244/245/247), PNT_NO
must be configured to contain a point address. This information
identifies, to the FBM, specific data in the HART data stream that
is to serve as the device data input to this block. Refer to HART™

248
8. BIN – Binary Input Block B0193AX – Rev AB

Communication Interface Modules User’s Guide (B0400FF) for


details.
 For the Modbus interface (FBM224), PNT_NO must be config-
ured to contain the address of a set of coils in a Modbus device.
Refer to Modbus Communication Interface Module (FBM224)
User’s Guide for details.
 For the FDSI (FBM230/231/232/23), PNT_NO contains a data
identifier to identify, to the FBM, specific data in the I/O data
stream and to specify the elements of the data. Refer to Field
Device System Integrators (FBM230/231/232/233) User’s Guide
(B0700AH) for more information.
 For the FBM228 Redundant FOUNDATION fieldbus interface, the
point number syntax specifies reads of H1 device function block
parameters using a client/server or publisher/subscriber connec-
tion, as described in Implementing FOUNDATION fieldbus on an
I/A Series System (B0700BA) and Implementing FOUNDATION field-
bus (B0750BC).

PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
CP270 Only of the highest priority active alarm. For the BIN block:
0 = No alarm
8 = Bad I/O alarm
9 = State alarm

QALSTA Quality Status parameter (QALSTA) is a non-configurable packed


(CP270 Only) boolean that provides a combination of value record status, block status
(BLKSTA), and alarm status (ALMSTA) information in a single connect-
able output parameter. Available bits for this block are provided below.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

Bit Boolean Connection


Number1 Definition Contents (B32 to B1)
30 Alarms Unacknowledged ALMSTA.UNA QALSTA.B2
29 Alarms Inhibited ALMSTA.INH QALSTA.B3
26 State Alarm ALMSTA.STAL QALSTA.B6
22 Bad Alarm ALMSTA.IOBD QALSTA.B10
5 Manual2 ~BLKSTA.MA QALSTA.B27
2 Uncertain CIN.ERR status QALSTA.B30

249
B0193AX – Rev AB 8. BIN – Binary Input Block

Bit Boolean Connection


Number1 Definition Contents (B32 to B1)
1 Out-of-Service CIN.OOS status QALSTA.B31
0 Bad CIN.BAD status QALSTA.B32
1. Bit 0 is the least significant, low order bit.
2. Bit 5 is the inverse of BLKSTA.MA bit (BLKSTA.B291).

SAG State Alarm Group is a short integer input that directs State alarm mes-
(CP270 Only) sages to one of eight groups of alarm devices.

SAO State Alarm Option is a configurable boolean which, when true, enables
(CP270 Only) the generation of State Alarms.

SAP State Alarm Priority is an integer input, ranging from 1 (highest priority)
(CP270 Only) to 5 (default), that sets the priority level of the State alarm.

SCGRP State Change Group is a short integer input that directs State Change
(CP270 Only) messages to one of eight groups of devices. However, Alarm Alert ignores
these messages when they arrive; State Change messages are printed only.

SCOPT State Change Option specifies which state changes of the block output
(CP270 Only) cause a State Change message to be the generated. These messages are
ignored by Alarm Alert, and are not shown in the Alarm Display; they are
printed on the alarm printers only. Depending on the value of SCOPT,
messages are generated for the following types of transitions (state
changes):
0 = No transitions (no messages generated)
1 = All transitions
2 = 0 to 1 transitions only
3 = 1 to 0 transitions only

SCTXT0 State Change Text 0 is a text string sent with the State Change message to
(CP270 Only) indicate that the state has changed from 1 to 0, after any optional inver-
sion.

SCTXT1 State Change Text 1 is a text string sent with the State Change message to
(CP270 Only) indicate that the state has changed from 0 to 1, after any optional inver-
sion.

SELOPT Selection Option is a configurable option used in a BIN block to specify a


fallback value when the input is not available and the block is in Auto
mode:
0 = retain the previous value
1 = set the value to 0 (False)
2 = set the value to 1 (True).

250
8. BIN – Binary Input Block B0193AX – Rev AB

SIMOPT Simulation Option is a configurable parameter that specifies whether the


DCI block input value is to be simulated. When SIMOPT is configured 1
(True), there are no DCI connections established for the block. BIN is not
updated from the field and, although it is normally secured, it is released
(provided it is unlinked) and becomes available for entry of simulated
values.

TSTAMP The Time Stamp parameter of the block is updated every time there is a
change in the value of CIN. In Auto mode, this means that the field input
value of BIN changes. In Manual mode, it means that a new manual value
has been set into CIN. TSTAMP, which is expressed in units of millisec-
onds past midnight, is read from the FBM when it is available there; oth-
erwise, it is computed by the I/A Series control station.

TYPE When you enter BIN or select it from a configurator list, an identifying
integer is created specifying this block type. For this block, the value of
TYPE is 148.

UPDPER Update Period is a configurable non-settable long integer that specifies the
update period for certain types of client/server access to FOUNDATION
fieldbus H1 devices and PROFIBUS slave devices:
 For the FBM228, the parameter defines the update period for cli-
ent/server access to device block parameters, as described in
Implementing FOUNDATION fieldbus on an I/A Series System
(B0700BA) or Implementing FOUNDATION fieldbus (B0750BC).
The parameter is not used for publisher/subscriber connections.
 For the FBM222, the parameter defines the update period for acy-
clic communication between the FBM222 and the
PROFIBUS slave device, as described in Implementing Profibus
Networks in Foxboro Control Software Applications (B0750BE).
The parameter is not used for cyclic communications.

UNACK Unacknowledged is a Boolean output parameter that is set True for notifi-
CP270 Only cation purposes whenever the block goes into alarm. It is settable, but sets
are only allowed to clear UNACK to False, and never in the
opposite direction. UNACK is cleared by an operator “acknowledge”
pick on a default display, a user display, or the alarms display.

VALSTS Value Status is an output parameter of any DCI block that contains the
value status of a FOUNDATION fieldbus function block parameter value or
PROFIBUS-PA parameter provided by a DCI connection to a field
device. For other fieldbus types, VALSTS is meaningless.
Bits 0-1: Limits:
0 = Not limited
1 = High limited
2 = Low limited
3 = High and Low limited
Bits 2-5: Substatus (definition depends on Quality)

251
B0193AX – Rev AB 8. BIN – Binary Input Block

Bits 6-7: Quality:


0 = Bad
1 = Uncertain
2-3 = Good
Note: Bit 0 is the least significant, low order bit.
Each time the BIN block is executed, VALSTS reports the status of the FF
or PROFIBUS-PA value from the information in the DCI connection.

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

8.5.2 Associated ECBs


The configured parameter IOM_ID in the BIN block specifies an ECB201 (the device ECB) to
connect to a field parameter that resides in a field device hosted by an ECB200 or ECB202 (the
FBM ECB). The PARENT parameter of the ECB201 specifies the associated FBM ECB hosting
the field device.
IOM_ID may also directly specify the parent FBM ECB of a Profibus FBM223 to retrieve a
parameter resident in the FBM itself.

252
8. BIN – Binary Input Block B0193AX – Rev AB

8.5.3 DCI Connection


The BIN block establishes one DCI connection to the specified ECB at any one of the following
times:
 When the block is first installed (added to your control strategy).
 When the I/A Series control station in which it resides has just been rebooted.
 When a parameter of the block has been modified by the ICC or FoxCAE™
configurator.
 When a device or parent ECB specified by the BIN block has just been installed.
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.

8.5.4 Origin of Input Data


The device address supplying the input value is configured as a string in PNT_NO. If PNT_NO
is null, the block is set undefined.
The format of PNT_NO is device specific. When the PIO maintenance task runs after the DCI
connection has been made (see Section 8.5.3), the PNT_NO string used by the block is passed to
the FBM for parsing and validation. (In DCI blocks, point identification strings are not parsed by
the I/A Series control station.)
If the first character of PNT_NO is blank, the PNT_NO string is not sent to the FBM, and the
block is set undefined, with ERCODE = 52. The detail display shows “W52 – INVALID I/O
CHANNEL/GROUP NUMBER”.
In each of the following cases, the block is also set undefined:
 If the FBM parsing algorithm finds that PNT_NO is invalid, the detail display shows
“W65 – INVALID POINT ADDRESS” with ERCODE = 65.
 If there is a duplicate connection to any point, the detail display shows “W66 –
DUPLICATE CONNECTION” with ERCODE = 66.
 If there is no available memory in the FBM, or if the maximum number of connec-
tions have been allocated in the FBM, the detail display shows “W67 –
INSUFFICIENT FBM MEMORY/CONNECTIONS” with ERCODE = 67.
 If the device connection is invalid, the detail display shows “W68 – INVALID
DEVICE CONNECTION” with ERCODE = 68.
 If the point connection is invalid, the detail display shows “W69 – INVALID POINT
CONNECTION” with ERCODE = 69.
In the following case, the block remains defined:
 If the connection is not yet resolved, the detail display shows “W62 – UNRE-
SOLVED CONNECTION” with ERCODE = 62.

253
B0193AX – Rev AB 8. BIN – Binary Input Block

8.5.5 Processing of Input Point Status


The status of the PNT_NO input is checked, together with the status of the ECB. Then the sta-
tus of the BIN parameter is set according to the following rules:
The status of BIN is set to Out-of-Service if:
 The appropriate device ECB status indicates that the field device is Off-line or Out-
of-Service.
 The DCI connection cannot be configured due to lack of configuration information
in the FBM database.
 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.

8.5.6 Processing of Input Point Data


If BIN is not bad or out-of-service as determined in the previous section, the value read from the
external device is set into the value of BIN. If the status of BIN is either Bad or Out-of-Service,
the value of BIN is determined as follows:
 If SELOPT is 1, BIN is set to 0.
 If SELOPT is 2, BIN is set to 1.
 If SELOPT has any other value (0 or 3), BIN remains at its last good value.

8.5.7 Auto/Manual Arbitration


The Auto/Manual mode selection arbitrates between inputs by the operator (Manual) and inputs
from the field (Auto). Parameters MA and INITMA are used to establish the control mode of the
BIN block.

254
8. BIN – Binary Input Block B0193AX – Rev AB

8.5.8 Operation in Auto Mode


In Auto mode, the Bad, Out-of-Service, and Error bits of BIN (as determined in Section 8.5.5)
replace the corresponding bits of CIN. If this status is neither Bad nor Out-of-Service, the value
of BIN is copied to the value of CIN; otherwise, CIN retains its last good value.
The control strategy should normally use CIN as the BIN block output, regardless of the block
mode.

8.5.9 Operation in Manual Mode


In Manual mode, CIN is not updated from BIN and can be used for manual sets.
The control strategy should normally use CIN as the BIN block output, regardless of the block
mode.
BIN is never settable and continues to monitor the input from the field for diagnostic purposes.

8.5.10 State Change Messages (CP270 Only)


With I/A Series system software V8.4, the BIN block supports state change messages on the
FCP270 and ZCP270. The feature is not supported on other control stations.
Key Parameters: SCOPT, CIN, SCTXT0, SCTXT1, IVO, SCGRP
State Change Option (SCOPT) specifies which state changes of the block output cause a State
Change message to be the generated.

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.

A value of 0 in SCOPT disables State Change detection.


When SCOPT is set to 1, State Change messages are generated for any transition:
 a message containing the text in State Change Text 1 (SCTXT1) is sent after any
change from 0 to 1 in the value of CIN
 a message containing the text in State Change Text 0 (SCTXT0) is sent after any
change from 1 to 0 in the value of CIN.

NOTE
State Alarming is independent of state change detection based on SCOPT.

When SCOPT is set to 2, any change from 0 to 1 in the value of CIN results in a State Change
message containing the text string in SCTXT1.
When SCOPT is set to 3, any change from 1 to 0 in the value of CIN results in a State Change
message containing the text string in SCTXT0.
Any required inversion based on IVO is applied before state change detection.
While the State Change Group (SCGRP) parameter holds the group to which all State Change
messages are directed, Alarm Alert ignores these messages when they arrive.

255
B0193AX – Rev AB 8. BIN – Binary Input Block

8.5.11 Alarming (CP270 Only)


With I/A Series system software V8.4, the BIN block supports Bad I/O alarms and state change
alarms on the FCP270 and ZCP270. The alarming features are not supported on other control
stations.
The BIN block uses standard I/A Series alarm detection and reporting features to provide bad I/O
and state change alarms. The functionality is configured with the parameters described in
Table 8-5.

Table 8-5. BIN Block Alarm Parameters

Alarm Type Option Priority Group Text Default Display


BAD BAO=1 BAP BAG BAT BAD
State SAO=1 and SAP SAG NM0 or NM1 STATE
INVALM = 0 or
INVALM =1

If MANALM=0, the selected alarming options are only applied when the block is in Auto mode;
if MANALM=1, the selected alarming options are applied when the block is in Auto and Manual
modes.
Refer to Control Processor 270 (CP270) Integrated Control Software Concepts (B0700AG) for infor-
mation on alarm functionality.

8.5.11.1 BAD I/O Alarms


Bad alarm detection is enabled when the bad alarm option (BAO) is set.
A Bad alarm message is generated for the input value when its status is bad (BIN.BAD). The Bad
alarm message is sent to all devices in the bad alarm group specified by the BAG parameter. This
message contains text string identifying the input value, the descriptive text in the BAT parameter,
and the loop identifier in the LOOPID parameter.
When the input value becomes good, a corresponding return-to-normal message is generated and
sent to all devices in the bad alarm group.
When the input value is bad, the following parameters and bits are set:
 BAD bit in the alarm status parameter (ALMSTA.BAD)
 UNACK parameter and the corresponding ALMSTA.UNACK bit.
 CRIT parameter and its corresponding ALMSTA.CRIT are set to the BAP parameter
value
 PRTYPE parameter and its corresponding ALMSTA.PRTYPE field are set to the Bad
alarm type.
When the input value returns to good status, BAD, CRIT, PRTYPE and their corresponding
fields in ALMSTA are cleared.
The UNACK parameter and the ALMSTA.UNACK bit are cleared in these cases:
 When the alarm is acknowledged by an OM set operation at either the compound
level (by setting the compound UNACK=0) or at the block level (by setting the block
UNACK=0).
 When all input values return to good status and INHOPT is set appropriately.

256
8. BIN – Binary Input Block B0193AX – Rev AB

 When the block is shut down.


When UNACK is cleared, an Alarm Acknowledge message is generated and sent to all devices in
the bad alarm group.

8.5.11.2 State Alarms


State alarming occurs when the State Alarm Option (SAO) is set and:
 The input transitions from 0 to 1 if INVALM is set to 0
 The input transitions from 1 to 0 if INVALM is set to 1.
When the input value is in the alarm state, a state alarm message is sent to all devices in the alarm
group specified by the SAG parameter. This message also contains the descriptive text in the
NM1 parameter and the loop identifier in the LOOPID parameter.
When the input is no longer in the alarm state, a corresponding return-to-normal message is gen-
erated and sent to all devices in the state alarm group (SAG). This message contains the descrip-
tive text in the NM0 parameter.
When the state alarm exists, the STA bit is set in the alarm status parameter (ALMSTA.B6). If a
Bad alarm condition of a higher priority does not also exists, the CRIT parameter and its corre-
sponding ALMSTA.CRIT field are set to the SAP parameter value, and the PRTYPE parameter
and its corresponding ALMSTA.PRTYPE field are set to the State alarm type.
When the state alarm condition returns to normal status, and if a Bad alarm condition of higher
priority does not exist, ALMSTA.SA, CRIT, PRTYPE and their corresponding fields in
ALMSTA are cleared.

8.5.11.3 Alarm Management


Alarm Inhibiting/Disabling are supported using a combination of the compound CINHIB
parameter and the INHOPT and INHIB parameters in the BIN block, to allow the bad alarm
and state alarm messages to be inhibited and/or the alarm detection to disabled dynamically.
When an alarm is inhibited or disabled, an appropriate Alarm Disable message is generated and
sent to all devices in the respective alarm group. If the Alarm is unacknowledged, an Alarm
Acknowledge message is also sent to these devices., and the ALMSTA.INHIB bit is set.
When the alarm is uninhibited or enabled, an appropriate Alarm Enable message is generated and
sent to all devices in the respective alarm group. If all alarms are uninhibited, the
ALMSTA.INHIB bit also is cleared.
The Alarm Message Regeneration Time Interval (AMRTIN) parameter specifies the rate at which
alarm messages are generated for alarm conditions that have not been cleared. The interval is spec-
ified in seconds. The configured interval is rounded up to the closest value that is an even multi-
ple of the station BPC. A value of 0 disables alarm message regeneration. Parameters NASDB and
NASOPT provide control of nuisance alarms by applying a delay (set in NASDB) to return-to-
normal condition (NASOPT = 0), to alarm detection (NASOPT=1) or to both (NASOPT=2).
Refer to CP270 Integrated Control Software Concepts (B0700AG) on alarm regeneration.

8.5.12 Time Stamp


The time stamp (TSTAMP) parameter of the block is updated every time there is a change in the
CIN value. TSTAMP, which is expressed in units of milliseconds past midnight, is read from the
FBM when it is available there; otherwise, it is computed by the I/A Series control station.

257
B0193AX – Rev AB 8. BIN – Binary Input Block

NOTE
For a FOUNDATION fieldbus (FF) connection, a 4-byte ms since midnight time-
stamp is provided by the FF FBM and stored in the TSTAMP parameter.

258
9. BINR – Redundant Binary Input
Block
This chapter covers the Redundant Binary Input (BINR) block features, parameters and
functions, and application diagrams.

NOTE
In this chapter, CP270 Only indicates BINR features that are supported only on the
Field Control Processor 270 (FCP270) and Z-form Control Processor 270
(ZCP270) with I/A Series system software V8.4 or later.

9.1 Overview
The Redundant Binary Input (BINR) block is a Distributed Control Interface (DCI) block.
(DCI blocks support connectivity of I/A Series control stations to various bus resident devices via
a general purpose interface.) BINR receives one binary value from an external device. The source
of the value can be specified as either two or three redundant inputs. The redundant inputs can
either be in the same device or in different devices. The block’s selection algorithm determines
which of the two or three input values is presented to the control strategy as the block output
BIN.

2 or 3 Redundant To Upstream
External Inputs Input Processing
Block

Input from
Manual Set

Figure 9-1. BINR Block Diagram

9.2 Basic Operation


The Redundant Binary Input (BINR) block receives inputs from 1, 2, or 3 device ECBs. The
inputs contain discrete values read from BI1_PT, BI2_PT, and BI3_PT in the device ECBs speci-
fied by IOMID1, IOMID2, and IOMID3 respectively. The ECBOPT parameter determines
whether the redundant inputs can be from the same device or in different devices. The ARBOPT
parameter enables the block to consider two or three redundant inputs. The block’s selection algo-
rithm then determines which of the two or three input values is to be presented to the control
strategy as the block output BIN. In Auto mode, this value is copied to parameter Contact Input
(CIN). In Manual mode, it is not copied to CIN, and you can set the value of CIN.

259
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block

With I/A Series system software V8.4, the BINR block provides Bad I/O alarm and state change
alarm detection and reporting on the FCP270 and ZCP270.
Alarming is not supported on other control processors. If alarms are desired for applications on
these processors, separate CIN blocks can be used with connections to the CIN, BIN_1, BIN_2,
and BIN_3 parameters of the BINR block.

9.3 Features
The BINR block:
 Reads up to three binary values from up to three external device ECBs, and arbitrates
between these redundant inputs
 In Auto mode, copies its input to the Contact Input (CIN) parameter
 In Manual mode, enables manual setting of the Contact Input (CIN) parameter.
 Simulation option enables testing input to the control strategy without actual field
connections
 Quality Status (QALSTA) provides value record status, block status and alarm status
in a single connectable output parameter (CP270 Only)
 Bad I/O alarm and state change alarm detection and reporting (CP270 Only).

9.4 Parameters
Table 9-1. BINR Block Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set 2 blanks 1 to 12 chars
TYPE block type short integer no-con/no-set BINR_TYPE 110
DESCRP block description string no-con/no-set 2 blanks 1 to 32 chars
PERIOD block sample time short integer no-con/no-set 1 0 to10, and 13 for CPs,
0 to 12 for Gateways
PHASE block execution phase short integer no-con/no-set 0 period specific
LOOPID loop/unit/batch identifier string no-con/set 2 blanks 1 to 32 chars
IOMID1 primary ECB identifier string no-con/no-set 2 blanks 1 to 12 chars
IOMID2 secondary ECB identifier string no-con/no-set 2 blanks 1 to 12 chars
IOMID3 tertiary ECB identifier string no-con/no-set 2 blanks 1 to 12 chars
BI1_PT primary bool input addrs string no-con/no-set blanks up to 32 chars, or device
specific
BI2_PT secondary bool input addrs string no-con/no-set blanks up to 32 chars, or device
specific
BI3_PT tertiary bool input addrs string no-con/no-set blanks up to 32 chars, or device
specific
MA manual/auto switch boolean con/set 0 0 to 1
INITMA initialize manual/auto short integer no-con/no-set 1 0 to 2

260
9. BINR – Redundant Binary Input Block B0193AX – Rev AB

Table 9-1. BINR Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


ARBOPT arbitration option boolean no-con/no-set 0 0 = dual redundant
1 = triple redundant
BIN binary input boolean con/set 0 0 to 1
BIN_1 primary boolean input boolean con/no-set 0 0 to 1
BIN_2 secondary boolean input boolean con/no-set 0 0 to 1
BIN_3 tertiary boolean input boolean con/no-set 0 0 to 1
ECBOPT redundant ECB option boolean no-con/no-set 0 0 = nonredundant ECBs
1 = redundant ECBs
ANM point alarm name string no-con/no-set blank 0 to 12 chars
NM0 alarm state name 0 string no-con/no-set blank 0 to 12 chars
NM1 alarm state name 1 string no-con/no-set blank 0 to 12 chars
IVO invert option boolean no-con/no-set 0 0 to 1
INHOPT inhibit option short no-con/no-set 0 0 to 3
INVALM inhibit alarm boolean no-con/no-set 0 0 to 1
INHIB alarm inhibit boolean con/set 0 0 to 1
INHALM inhibit alarm packed b con/set 0 0 x FFFF
MANALM manual alarm option short integer no-con/set 0 0 to 1
SAO state alarm option boolean no-con/no-set 0 0 to 1
SAP state alarm priority integer con/set 5 1 to 5
SAG state alarm group short no-con/set 1 1 to 8
BAO bad alarm option boolean no-con/no-set 0 0 to 1
BAT bad alarm text string no-con/no-set blank 1 to 32 chars
BAP bad alarm priority integer con/set 5 1 to 5
BAG bad alarm group short no-con/set 1 1 to 8
SCOPT state change option short no-con/no-set 0 0 to 3
SCGRP state change group short no-con/set 1 1 to 8
SCTXTO state change 0 text string no-con/no-set blank 0 to 32 chars
SCTXT1 state change 1 text sting no-con/no-set blank 0 to 32 chars
AMRTIN alarm regeneration timer integer no-con/no-set 0 0 to 32767 sec
NASTDB nuisance alarm suppres- long integer no-con/set 0 0 to 2147483647
sion deadband
NASOPT nuisance alarm suppres- short no-con/set 0 0 to 2
sion option
SELOPT selection option short integer no-con/no-set 1 0 = retain previous value
1 = set False (0)
2 = set True (1)
SIMOPT simulation option boolean no-con/no-set 0 0 = no simulation
1 = simulation
UPDPER parm update period integer no-con/no-set 10000ms 0 to 2147483647 ms
Non-Configurable Parameters
OUTPUTS
ACHNGE alternate change integer con/no-set 0 -32768 to 32767
ALMSTA alarm status packed long con/no-set 0 bit map
BLKSTA block status packed long con/no-set 0 0 to 0xFFFFFFFF
CIN block output boolean con/set 0 0 to 1
(in manual)
CRIT alarm criticality integer con/no-set 0 0 to 5

261
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block

Table 9-1. BINR Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


INHSTA inhibit status packed long con/no-set 0 0 to 0xFFFFFFFF
PRTYPE priority type integer con/no-set 0 0 to 8
QALSTA quality status pack_b con/no-set 0 0 to 0xFFFF
SELECT selection indicator short integer con/no-set 0 0 to 3
TSTAMP time stamp long integer con/no-set 0 ms after midnight
UNACK unacknowledged alarm boolean con/no-set 0 0 to 1
VALSTS FF value status integer con/no-set 0 0 to 0xFFFF
DATA STORES
ALMOPT alarm options packed long no-con/no-set 0 0 to 0xFFFFFFFF
DEFINE no config errors boolean no-con/no-set 1 0 to 1
DEVID1 primary device identifier character no-con/no-set 2 blanks 1 to 6 characters
DEVID2 secondary device identifier character no-con/no-set 2 blanks 1 to 6 characters
DEVID3 tertiary device identifier character no-con/no-set 2 blanks 1 to 6 characters
ERCODE configuration error string no-con/no-set 2 blanks 1 to 43 chars
LOCKID lock identifier string no-con/no-set 2 blanks 8 to 13 chars
LOCKRQ lock request boolean no-con/no-set 0 0 to 1
OWNER owner name string no-con/set 2 blanks 1 to 32 chars

9.4.1 Parameter Definitions


ACHNGE Alternate Change is an integer output which is incremented each time a
block parameter is changed via a Set command.

ALMOPT Alarm Options contain packed long values representing the alarm types
(CP270 Only) that have been configured as options in the block, and the alarm groups
that are in use. Table 9-2 shows how the parameter is used by the BINR
block.
Table 9-2. ALMOPT Parameter Format

Bit Number1
(0 to 31) Configured Alarm Option, When True
0 (lsb) Alarm Group 8 in Use
1 Alarm Group 7 in Use
2 Alarm Group 6 in Use
3 Alarm Group 5 in Use
4 Alarm Group 4 in Use
5 Alarm Group 3 in Use
6 Alarm Group 2 in Use
7 Alarm Group 1 in Use
22 Bad I/O Alarm Configured
26 State Alarm Configured
1.
Bit 0 is the least significant, low order bit.

262
9. BINR – Redundant Binary Input Block B0193AX – Rev AB

ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
(CP270 Only) states. Table 9-3 shows the bits used by the BINR block.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
B4
B5
B6
B7
B8
B9
CRIT PRTYPE

BAD
STA
INH

Table 9-3. ALMSTA Parameter Format

Boolean
Bit Number Connection
(0 to 31)* Name Description, When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: See PRYTPE parameter for ---
values used in the BINR block
5 to 7 CRIT_MSK Criticality: 1 (highest priority) to 5 ---
22 BAD Bad I/O Alarm ALMSTA.B10
26 STA State Alarm ALMSTA.B6
29 INH Inhibit Alarm. This bit is set when any of ALMSTA.B3
the block’s alarms is inhibited
30 UNAK Unacknowledged ALMSTA.B2
*Bit 0 is the least significant, low order bit.

AMRTIN Alarm Message Regeneration Time Interval specifies the rate at which
(CP270 Only) alarm messages are generated for alarm conditions that have not been
cleared. The interval is specified in seconds. The configured interval is
rounded up to the closest value that is an even multiple of the station
BPC. A value of 0 disables alarm message regeneration.

ANM Alarm Name is a user-defined string of up to 12 characters which serves as


(CP270 Only) a point descriptor label for Bad alarm, state alarm and state change mes-
sages (for example, “PLT3 F2 SDR”).

ARBOPT Arbitration Option is a Boolean input that specifies dual redundancy


(DMR) or triple redundancy (TMR); 0 = False = DMR, 1 = True = TMR.

BAG Bad Alarm Group is a short integer input that directs Bad alarm messages
(CP270 Only) to one of eight groups of alarm devices. You can change the group number
through the workstation.

BAO Bad Alarm Option is a configurable option that enables alarm generation
(CP270 Only) for each state of BIN_1.BAD, BIN_2.BAD and BIN_3.BAD.

BAP Bad Alarm Priority is an integer input, ranging from 1 (highest priority) to
(CP270 Only) 5 (default), that sets the priority level of the Bad alarm.

263
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block

BAT Bad Alarm Text is a user-configurable text string of up to 32 characters,


(CP270 Only) sent with the bad alarm message to identify it.

BIN Boolean Input contains the value read from BI1_PT, BI2_PT, or BI3_PT,
in the external device specified by IOMID1, IOMID2, or IOMID3
respectively after input processing. BIN displays this value at all times,
regardless of the block mode.

BIN_1 Primary Binary Input contains the discrete value read from BI1_PT, in the
device ECB specified by IOMID1.

BIN_2 Secondary Binary Input contains the discrete value read from BI2_PT, in
the device ECB specified by IOMID2.

BIN_3 Tertiary Binary Input contains the discrete value read from BI3_PT, in the
device ECB specified by IOMID3.

BI1_PT Primary Binary Input address identifies the source address in the external
device memory from which the block input is obtained. It is a string
whose syntax depends on the FBM and the fieldbus protocol of the
attached device.
 For the FBM223 Profibus interface, BIx_PT must be configured
to contain a Profibus data identifier. This information identifies,
to the FBM, the address of the input data unit from the device.
Refer to PROFIBUS-DP Communication Interface Module
(FBM223) User’s Guide (B0400FE) for further details.
 For the FBM222 Redundant Profibus interface, the BIx_PT con-
figuration string uses the FBM223 syntax with extensions for
PROFIBUS-PA status, custom status and other features. Refer to
Implementing Profibus Networks in Foxboro Control Software Appli-
cations (B0750BE) for further details.
 For the HART interface
(FBM214/214b/215/216/216b/218/244/245/247), BIx_PT
must be configured to contain a point address. This information
identifies, to the FBM, specific data in the HART data stream that
is to serve as the device data input to this block. Refer to HART™
Communication Interface Modules User’s Guide (B0400FF) for
details.
 For the Modbus interface (FBM224), BIx_PT must be configured
to contain the address of a set of coils in a Modbus device. Refer to
Modbus Communication Interface Module (FBM224) User’s Guide
for details.
 For the FDSI (FBM230/231/232/23), BIx_PT contains a data
identifier to identify, to the FBM, specific data in the I/O data
stream and to specify the elements of the data. Refer to Field
Device System Integrators (FBM230/231/232/233) User’s Guide
(B0700AH) for more information.

264
9. BINR – Redundant Binary Input Block B0193AX – Rev AB

 For the FBM228 Redundant FOUNDATION fieldbus interface, the


point number syntax specifies reads of H1 device function block
parameters using a client/server or publisher/subscriber connec-
tion, as described in Implementing FOUNDATION fieldbus on an
I/A Series System (B0700BA) and Implementing FOUNDATION field-
bus (B0750BC).

BI2_PT Secondary Binary Input address identifies the source address in the exter-
nal device memory from which the block input is obtained. It is a string
whose syntax depends on the FBM and the fieldbus protocol of the
attached device, as described for BI1_PT.

BI3_PT Tertiary Binary Input address identifies the source address in the external
device memory from which the block input is obtained. It is a string
whose syntax depends on the FBM and the fieldbus protocol of the
attached device, as described for BI1_PT.

BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the BINR block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
FBM3 B22
FBM2 B23
FBM1 B24
B25
B26
B27
B28
B29
BAD3 B30
BAD2 B31
BAD1 B32
B1
B2
B3
B4
B5
B6
B7
B8
DCIX B9

ON

MA

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
0 BAD1 Primary Point is BAD (CP 270 Only) BLKSTA.B32
1 BAD2 Secondary Point is BAD (CP 270 Only) BLKSTA.B31
2 BAD3 Tertiary Point is BAD (CP 270 Only) BLKSTA.B30
8 FBM1 Bad Status of primary ECB BLKSTA.B24
9 FBM2 Bad Status of secondary ECB BLKSTA.B23
10 FBM3 Bad Status of tertiary ECB BLKSTA.B22
11 MA Manual = 0, Auto = 1 BLKSTA.B21
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
23 DCIX Enhanced DCI block (CP 270 Only) BLKSTA.B9
* Bit 0 is the least significant, low order bit.

CIN Block output CIN contains the same value as BIN when the block mode
is Auto and IVO=0. CIN contains the complement of BIN when the

265
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block

block mode is Auto and IVO=1. In Manual, CIN is released and you can
set its value.

CRIT Criticality is an integer output that indicates the priority of the block’s
CP270 Only highest currently active alarm. The range is 1 (highest priority) to 5. An
output of 0 indicates the absence of alarms.

DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. (See ERCODE for the list of all possible validation errors in this
block.) In that case, no further processing of the block occurs, including
further validation of remaining parameters. To return DEFINE to a True
value, you should correct all configuration errors and reinstall the block.

DESCRP Description is a user-defined string of up to 32 characters used to describe


the block’s function (for example, “PLT 3 FURNACE 2 HEATER CON-
TROL”).

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.

ECBOPT Redundant ECB Option specifies whether a single device ECB is to be


used for all input points or each input point is to be associated with a sep-
arate device ECB. The latter is required if the redundant input points are
in different devices. If ECBOPT is 0 (False), only one device ECB is used
for all points and is specified by IOMID1 (IOMID2 and IOMID3 are
ignored). If ECBOPT is 1 (True), then either two or three separate device
ECBs are used depending on whether dual or triple redundancy is speci-
fied. This decision is based on the configured parameter ARBOPT.

ERCODE Error Code is a character data store which indicates the type of configura-
tion error which caused the block’s DEFINE parameter to be set False,
unless indicated otherwise (see meanings below). Validation of configured
parameters does not proceed past the first error encountered by the block
logic. Each nonzero value of ERCODE results in an explanatory message
at the block’s detail display. For the BINR block, the following list shows
the possible messages you may see:

266
9. BINR – Redundant Binary Input Block B0193AX – Rev AB

ERCODE Message Meaning


W52 – INVALID I/O CHAN- BI1_PT, BI2_PT, or BI3_PT
NEL/GROUP NO. string is blank.
W62 – UNRESOLVED CONNEC- Connection is not yet resolved.
TION (Block remains defined.)
W65 – INVALID POINT ADDRESS FBM parsing algorithm finds
that a used BIx_PT is invalid.
W66 – DUPLICATE CONNEC- There is a duplicate connection
TION to a particular point.
W67 – INSUFFICIENT FBM MEM- There is no available memory or
ORY/CONNECTIONS point connections in the FBM.
W68 – INVALID DEVICE CON- The device connection is invalid.
NECTION
W69 – INVALID POINT CON- The point connection is invalid.
NECTION

If a DCI data connection cannot be resolved due to a lack of configuration


information, the block is marked DEFINED but the value is marked
OOS and one of the following strings is stored in ERCODE to indicate
the configuration error:
W62 - UNRESOLVED CONNECTION
W77 - FIELDBUS COMMUNICATIONS FAULT (FBM228 only)
W78 - INVALID FUNCTION BLOCK (FBM228 only)
W80 - FIELDBUS DEVICE NOT FOUND (FBM228 only)
W73 - FF FUNCTION BLOCK CONFIGURATION ERROR
(FBM228 only).
If a DCI data connection cannot be resolved for any other reason, the
block is marked UNDEFINED and one of the following strings is stored
in ERCODE to indicate the configuration error:
W74 - FF FUNCTION BLOCK DDITEM MISMATCH (FBM228
only)
W75 - FF FUNCTION BLOCK DDMBR MISMATCH (FBM228
only)
W76 - INVALID FF MODE CONFIGURATION (FBM228 only)
W79 - INVALID PARAMETER INDEX (FBM228 only)
W81 - INVALID PARENT DCI ECB PERIOD/PHASE (FBM228
only).

INHALM Inhibit Alarm contains packed boolean values that represent alarm genera-
(CP270 Only) tion inhibit request for each type of alarm configured in the block: for the
BINR block, only the following bits are used:

267
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10

B11

B12

B13

B14

B15

B16
B1

B2

B3

B4

B5

B6

B7

B7

B9
Bit Boolean
Number* Description, Connection
(0 to 15) When True (B16 to B1)
6 Inhibit Bad I/O Alarm INHALM.B10
10 Inhibit State Alarm INHALM.B6
*Bit 0 is the least significant, low order bit.

There are no mnemonic names for the individual bits of INHALM.

INHIB Inhibit is a configurable, connectable and settable boolean that, when set,
(CP270 Only) suppresses all alarm message reporting. INHIB affects only alarm message
reporting; the alarm handling and detection functions are determined by
the INHOPT setting.

INHOPT Inhibit Option specifies the following actions applying to all block alarms:
(CP270 Only)  0 = When an alarm is inhibited, disables alarm messages but does
not disable alarm detection.
 1 = When an alarm is inhibited, disables both alarm messages and
alarm detection. If an alarm condition exists at the time the alarm
transitions into the inhibited state, the alarm indicator is cleared.
 2 = Same as 0 for inhibited alarms. For uninhibited alarms,
automatically acknowledges “return-to-normal” messages.
“Into alarm” messages can be acknowledged by explicitly setting
UNACK False.
 3 = Same as 1 for inhibited alarms. For uninhibited alarms,
automatically acknowledges “return-to-normal” messages.
“Into alarm” messages can be acknowledged by explicitly setting
UNACK False.

INHSTA Inhibit Status contains packed long values that represent the current
(CP270 Only) inhibit status of each alarm type configured in the block. Table 9-4 shows
how the parameter is used with the BINR block.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
INHB1 B17
INHB2 B18
INHB3 B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
BAD
STA

268
9. BINR – Redundant Binary Input Block B0193AX – Rev AB

Table 9-4. INHSTA Parameter Format

Bit Boolean
Number* Description, Connection
(0 to 31) Name When True (B32 to B1)
13 Primary Point Bad Alarm Inhibited INHSTA.B19
14 Secondary Point Bad Alarm Inhibited INHSTA.B18
15 Tertiary Point Bad Alarm Inhibited INHSTA.B17
22 BAD Bad I/O Alarm Inhibited INHSTA.B10
26 STA State Alarm Inhibited INHSTA.B6
*Bit 0 is the least significant, low order bit.

INVALM Invert Alarm is a configured boolean which specifies the sense of CIN
(CP270 Only) transitions considered “into alarm” and “return to normal” in State alarm
messages. Values are:
 0 = CIN transitions from 0 to 1 are considered “into alarm.” State
alarm messages contain the NM1 string. Transitions from 1 to 0
are considered “return to normal.” State alarm messages contain
the NM0 string.
 1 = CIN transitions from 1 to 0 are considered “into alarm.” State
alarm messages contain the NM1 string. Transitions from 0 to 1
are considered “return to normal.” State alarm messages contain
the NM0 string.
In any case, State alarm detection is disabled when option SAO is false.

INITMA Initialize Manual/Auto specifies the desired state of the MA input under
certain initialization conditions, namely:
 The block has just been installed into the I/A Series control sta-
tion database.
 The I/A Series control station is rebooted.
 The compound in which the block resides is turned on.
 The INITMA parameter is modified via the Integrated Control
Configurator.
INITMA is ignored if MA has an established linkage.
When INITMA is asserted, the value set into MA is:
 0 (Manual) if INITMA = 0
 1 (Auto) if INITMA = 1
 The MA value from the checkpoint file if INITMA = 2.

IOMID1 Primary ECB Identifier is a configurable string that specifies the path-
name of the ECB201 for the primary device, for the purpose of connect-
ing to (accessing) a field parameter that resides in the primary field device
hosted by a (parent) ECB200/202.

269
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block

IOMID1 has the form CompoundName:BlockName, where Compound-


Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOMID1 configuration. In this case, the 1-12
character ECB block name is sufficient.

IOMID2 Secondary ECB Identifier is a configurable string that specifies the path-
name of the ECB201 for the secondary device, for the purpose of connect-
ing to (accessing) a field parameter that resides in the secondary field
device hosted by a (parent) ECB200/202.
IOMID2 must be configured when dual or triple redundancy is specified.
For other details, see IOMID1 above.

IOMID3 Tertiary ECB Identifier is a configurable string that specifies the pathname
of the ECB201 for the tertiary device, for the purpose of connecting to
(accessing) a field parameter that resides in the tertiary field device hosted
by a (parent) ECB200/202.
IOMID3 must be configured when triple redundancy is specified. For
other details, see IOMID1 above.

IVO Invert Option, when true, causes the block to invert the value of the FBM
(CP270 Only) or FBC input or the BIN input before writing it to the CIN output. If
IVO is true, all alarming and state change message generation is based on
the inverted value of the input.

LOCKID Lock Identifier is a string identifying the workstation which has locked
(CP270 Only) access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.

LOCKRQ Lock Request is a Boolean input which can be set True or False only by a
(CP270 Only) SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set True in this fashion, a workstation identifier
accompanying the set command is entered into the LOCKID parameter
of the block. Thereafter, set requests to any of the block’s parameters are
honored (subject to the usual access rules) only from the workstation
whose identifier matches the contests of LOCKID. LOCKRQ can be set
False by any workstation at any time, whereupon a new LOCKRQ is
accepted, and a new ownership workstation identifier written to
LOCKID.

LOOPID Loop Identifier is a configurable string of up to 32 characters used to iden-


tify the loop or process with which the block is associated. It is displayed
on the detail display of the block, immediately below the faceplate.

270
9. BINR – Redundant Binary Input Block B0193AX – Rev AB

MA Manual/Auto is a Boolean input that controls the block’s operating state


(0 = False = Manual; 1 = True = Auto). When in Auto, the block output is
copied from BIN to CIN if the IVO parameter is not set. When in Auto,
CIN contains the complement of BIN if the IVO parameter is set. In
Manual the block output is not copied or inverted, and CIN becomes set-
table.

MANALM Manual Alarm Option is a configurable input which enables or disables


(CP270 Only) configured alarm options to function in Manual mode. Normally alarms
are processed only in the Auto mode. Values for the BINR block:
0 = No alarming in Manual
1 = Full alarming in Manual

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

NASOPT Nuisance Alarm Suppression Alarm Option is a configurable, settable


(CP270 Only) short integer that specifies how the nuisance alarm delay is implemented:
 0 = Suppress nuisance alarms by delaying the Return-to-Normal
(default) by the length of time specified in NASTDB
 1 = Suppress nuisance alarms by delaying alarm detection by the
length of time specified in NASTDB
 2 = Suppress nuisance alarms by delaying both the Alarm Detec-
tion and the Return-to-Normal by the length of time specified in
NASTDB

NASTDB Nuisance Alarm Suppression Time Deadband is used to reduce the


(CP270 Only) number of alarm messages generated when a block parameter crosses back
and forth over an alarm limit. When the parameter is set to zero, an alarm
is generated each time the parameter is outside the limit and is cleared
each time it crosses back. Thus, a parameter that is fluttering at the alarm
limit can result in nuisance alarms. NASTDB specifies, in milliseconds, a
time that must lapse before the alarm is cleared and before another alarm
message can be generated. The specified value is rounded up to the nearest
even multiple of the control station BPC. If the parameter passes from
outside one limit to outside the opposite extreme, the deadband is
ignored.

NM0 NM0 Name 0 is a user-defined string of up to 12 characters sent with a


(CP270 Only) State alarm message to indicate that the message is a “return to normal”
type. This means that CIN has transitioned from 1 to 0 if INVALM is
false, or 0 to 1 if INVALM is true.

NM1 Name 1 is a user-defined string of up to 12 characters sent with a State


(CP270 Only) alarm message to indicate that the message is an “into alarm” type. This
means that CIN has transitioned from 0 to 1 if INVALM is false, or 1 to 0
if INVALM is true.

271
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block

OWNER Owner is a string of up to 32 ASCII characters used to allocate control


blocks to applications. Attempts to set OWNER are successful only if the
present value of OWNER is the null string, an all-blank string, or identi-
cal 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.

PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For CP stations, PERIOD values range
from 0 to 10, and 13, and map to the time lengths shown in the following
table. For Gateways and Integrators, PERIOD values range from 0 to 12
and map to the time lengths specified in the device specific user’s guide.

Period Length Period Length


0 0.1 second 7 10 minutes
1 0.5 second* 8 60 minutes
2 1.0 second 9 0.2 second
3 2.0 seconds 10 5.0 seconds**
4 10 seconds 11*** ----
5 30 seconds 12*** ----
6 1 minute 13**** 0.05 second

* If the BPC is 0.2 second, this period is treated internally as 0.6 second, but
the PERIOD parameter remains 1.
** If the BPC is 2.0 seconds, this period is treated internally as 6.0 seconds, but
the PERIOD parameter remains 10.
*** Not available for CP stations.
****Available in CP40, CP40B, CP60 and later control processors.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 seconds) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the
I/A Series station is 0.5 second. Refer to the appropriate Integrated Control
Software Concepts document (B0700AG or B0193AW).

PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
CP270 Only of the highest priority active alarm. For the BINR block:
0 = No alarm
8 = Bad I/O alarm
9 = State alarm

QALSTA Quality Status parameter (QALSTA) is a non-configurable packed


(CP270 Only) boolean that provides a combination of value record status, block status

272
9. BINR – Redundant Binary Input Block B0193AX – Rev AB

(BLKSTA), and alarm status (ALMSTA) information in a single connect-


able output parameter. Available bits for this block are provided below.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit Boolean Connection
Number1 Definition Contents (B32 to B1)
30 Alarms Unacknowledged ALMSTA.UNA QALSTA.B2
29 Alarms Inhibited ALMSTA.INH QALSTA.B3
26 State Alarm ALMSTA.STAL QALSTA.B6
22 Bad Alarm ALMSTA.IOBD QALSTA.B10
15 Bad Tertiary FBM BLKSTA.FBM3 QALSTA.B17
14 Bad Secondary FBM BLKSTA.FBM2 QALSTA.B18
13 Bad Primary FBM BLKSTA.FBM1 QALSTA.B18
12 Bad Tertiary Point BLKSTA.BAD3 QALSTA.B20
11 Bad Secondary Point BLKSTA.BAD2 QALSTA.B21
10 Bad Primary Point BLKSTA.BAD1 QALSTA.B22
5 Manual2 BLKSTA.MA QALSTA.B27
2 Uncertain CIN.ERR status QALSTA.B30
1 Out-of-Service CIN.OOS status QALSTA.B31
0 Bad CIN.BAD status QALSTA.B32
1.
Bit 0 is the least significant, low order bit.
2. Bit 5 is the inverse of the BLKSTA.MA bit (BLKSTA.B21).

SAG State Alarm Group is a short integer input that directs State alarm mes-
(CP270 Only) sages to one of eight groups of alarm devices.

SAO State Alarm Option is a configurable boolean which, when true, enables
(CP270 Only) the generation of State Alarms.

SAP State Alarm Priority is an integer input, ranging from 1 (highest priority)
(CP270 Only) to 5 (default), that sets the priority level.

SCGRP State Change Group is a short integer input that directs State Change
(CP270 Only) messages to one of eight groups of devices. However, Alarm Alert ignores
these messages when they arrive; State Change messages are printed only.

SCOPT State Change Option specifies which state changes of the block output
(CP270 Only) cause a State Change message to be the generated. These messages are
ignored by Alarm Alert, and are not shown in the Alarm Display; they are

273
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block

printed on the alarm printers only. Depending on the value of SCOPT,


messages are generated for the following types of transitions (state
changes):
0 = No transitions (no messages generated)
1 = All transitions
2 = 0 to 1 transitions only
3 = 1 to 0 transitions only

SCTXT0 State Change Text 0 is a text string sent with the State Change message to
(CP270 Only) indicate that the state has changed from 1 to 0, after any optional inver-
sion.

SCTXT1 State Change Text 1 is a text string sent with the State Change message to
(CP270 Only) indicate that the state has changed from 0 to 1, after any optional inver-
sion.

SELECT Selection indicator shows which redundant BIN_x has been chosen by the
arbitration algorithm:
0 = none of the input values is selected
1 = primary input value is selected
2 = secondary input value is selected
3 = tertiary input value is selected.

SELOPT Selection Option is a configurable option that specifies the criteria for
selecting a redundant input in the BINR block when the arbitration algo-
rithm cannot resolve the choice. For the BINR block:
0 = retain the previous value
1 = set the value to 0 (False) (Default)
2 = set the value to 1 (True).

SIMOPT Simulation Option is a configurable parameter that specifies whether the


DCI block input/output value is to be simulated. When SIMOPT is con-
figured 1 (True), there are no DCI connections established for the block.
BIN, which is normally secured, is released (provided it is unlinked) and
becomes available for entry of simulated values.

TSTAMP The Time Stamp parameter of the block is updated every time there is a
change in the value of CIN. In Auto mode, this means that the field input
value of BIN changes. In Manual mode, it means that a new manual value
is set into CIN and written to the field device via the FBM. TSTAMP,
which is expressed in units of milliseconds past midnight, is read from the
FBM, when it is available there; otherwise, it is computed by the CP.

TYPE When you enter BINR or select it from a configurator list, an identifying
integer is created specifying this block type. For this block, the value of
TYPE is 110.

274
9. BINR – Redundant Binary Input Block B0193AX – Rev AB

UPDPER Update Period is a configurable non-settable long integer that specifies the
update period for certain types of client/server access to FOUNDATION
fieldbus H1 devices and PROFIBUS slave devices:
 For the FBM228, the parameter defines the update period for cli-
ent/server access to device block parameters, as described in
Implementing FOUNDATION fieldbus on an I/A Series System
(B0700BA) or Implementing FOUNDATION fieldbus (B0750BC).
The parameter is not used for publisher/subscriber connections.
 For the FBM222, the parameter defines the update period for acy-
clic communication between the FBM222 and the
PROFIBUS slave device, as described in Implementing Profibus
Networks in Foxboro Control Software Applications (B0750BE).
The parameter is not used for cyclic communications.

UNACK Unacknowledged is a Boolean output parameter that is set True for notifi-
CP270 Only cation purposes whenever the block goes into alarm. It is settable, but sets
are only allowed to clear UNACK to False, and never in the
opposite direction. UNACK is cleared by an operator “acknowledge”
pick on a default display, a user display, or the alarms display.

VALSTS Value Status is an output parameter of any DCI block that contains the
value status of a FOUNDATION fieldbus device function block or PROFI-
BUS-PA parameter provided by a DCI connection to a field device. For
other fieldbus types, VALSTS is meaningless.
Bits 0-1: Limits:
0 = Not limited
1 = High limited
2 = Low limited
3 = High and Low limited
Bits 2-5: Substatus (definition depends on Quality)
Bits 6-7: Quality:
0 = Bad
1 = Uncertain
2-3 = Good
Note: Bit 0 is the least significant, low order bit.
Each time the BINR block is executed, VALSTS reports the status of the
FF or PROFIBUS-PA value from the information in the DCI connection.

275
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block

9.5 Functions
9.5.1 Detailed Diagram

IOMID1
BI1_PT
SIMULATED
VALUE BIN

IOMID2
BI2_PT 1 AND CIN
AUTO
SIMOPT BIN
0 SELECT
IOMID3
BI3_PT BIN_1
AND CIN
1 BIN_2
ARBOPT AUTO
ECBOPT: BIN_3
0
False = 1 ECB
SELOPT
True = 2 or 3 ECBs INVALID
SELOPT=1 BIN = 0
SELOPT=2 BIN = 1
SELOPT=0 BIN = Last Value
SIMOPT
SELOPT=1 CIN = 0
AND
ECB Bad or Out-of-Service AND SELOPT=2 CIN = 1
AUTO SELOPT=0 CIN = Last Value

Figure 9-2. BINR Block Operational Diagram

9.5.2 Associated ECBs


The configured parameters IOMID1, IOMID2, and IOMID3 of the BINR block specify one or
more ECB201s (the device ECBs) to connect to field parameters that reside in field devices hosted
by one or more ECB200s or ECB202s (the FBM ECBs). The PARENT parameter of each
ECB201 specifies the associated FBM ECB hosting the field device.
The IOMIDx may also directly specify parent FBM ECBs to retrieve parameters resident in the
FBMs themselves.
Parameter ECBOPT specifies whether a single ECB is to be used for all input points, or each
input point is to be associated with a separate ECB. (The latter is the required choice if the redun-
dant inputs are in different devices or FBMs.) If ECBOPT is false, only one ECB is used for all
points, and is specified by IOMID1. (IOMID2 and IOMID3 are ignored.). If ECBOPT is true,
then either two or three separate ECBs are used, depending on whether dual or triple redundancy
is specified. This decision is based on the configured parameter ARBOPT. When dual redun-
dancy (DMR) is specified, IOMID2 must be configured, and IOMID3 is ignored. With triple
redundancy (TMR), all three IOMIDx values must be configured.

276
9. BINR – Redundant Binary Input Block B0193AX – Rev AB

9.5.3 DCI Connections


The BINR block establishes up to three DCI connections to the specified ECBs at any one of the
following times:
 The block is first installed (added to your control strategy).
 The I/A Series control station in which it resides has just been rebooted.
 A parameter of the block has been modified by the ICC or FoxCAE configurator.
 A device or parent ECB specified by the BINR block has just been installed.
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 following table shows the DCI connections for all combinations of ECBOPT and ARBOPT:
PT = 0 ARBOPT = 0 (DMR) 2 DCI connections to one ECB
ECBOPT = 0 ARBOPT = 1 (TMR) 3 DCI connections to one ECB
ECBOPT = 1 ARBOPT = 0 (DMR) 2 DCI connections to two ECBs
ECBOPT = 1 ARBOPT = 1 (TMR) 3 DCI connections to three ECBs

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.

9.5.4 Origins of Input Data


The device addresses supplying the input values are configured in strings in BI1_PT, BI2_PT, and
BI3_PT.
When ARBOPT is 0 (DMR), neither BI1_PT nor BI2_PT can be null, and BI3_PT is ignored.
When ARBOPT is 1 (TMR), BI1_PT, BI2_PT, and BI3_PT must not be null. These checks are
made at block validation time and violations of these rules result in the BINR block being set
undefined. Processing does not proceed further.
The format of the BIx_PT parameters is device specific. When the PIO maintenance task runs
after the DCI connections have been made, the BIx_PT strings used by the block are passed to
the FBM for parsing and validation. In DCI blocks, point identification strings are not parsed by
the control station.
If the first character of any used BIx_PT is blank, the BIx_PT string is not sent to the FBM, and
the block is set undefined with ERCODE = 52. The detail display shows “W52 – INVALID I/O
CHANNEL/GROUP NUMBER”.
In each of the following cases, the block is also set undefined:
 If the FBM parsing algorithm finds that BIx_PT is invalid, the detail display shows
“W65 – INVALID POINT ADDRESS” with ERCODE = 65.
 If there is a duplicate connection to any point, the detail display shows “W66 –
DUPLICATE CONNECTION” with ERCODE = 66.

277
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block

 If there is no available memory in the FBM, or if the maximum number of connec-


tions have been allocated in the FBM, the detail display shows “W67 –
INSUFFICIENT FBM MEMORY/CONNECTIONS” with ERCODE = 67.
 If the device connection is invalid, the detail display shows “W68 – INVALID
DEVICE CONNECTION” with ERCODE = 68.
 If the point connection is invalid, the detail display shows “W69 – INVALID POINT
CONNECTION” with ERCODE = 69.
The five tests listed above are also performed for any CO2_PT and, if used, CO3_PT and
INI_PT. The failure of any of these tests causes the block to be set undefined.
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.

9.5.5 Processing the Status and Data of the Input Points


The status of the BI1_PT and BI2_PT inputs are processed together with the status of their
ECBs. If ARBOPT specifies TMR, there is a similar processing for the status of the BI3_PT input
and its ECB. For each of the two or three inputs, the status of its BIN_x parameter is set accord-
ing to the following rules.
The status of BIN_x is set to Out-of-Service if:
 The appropriate device ECB status indicates that the field device is Off-line or Out-
of-Service.
 The DCI connection cannot be configured due to lack of configuration information
in the FBM database.
 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 9.5.3).
 The DCI connection status information, which specifies the condition of the accessed
device parameter, indicates Out-of-Service, meaning (in general) that the parameter
value is unavailable.
 The connection status information indicates Disconnected, meaning (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_x 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_x is set to Error if the status information indicates an uncertain or questionable
value of the field device parameter.

278
9. BINR – Redundant Binary Input Block B0193AX – Rev AB

Finally, if BIN_x is not Out-of-Service, the value of the input is copied into the value of BIN_x.
Otherwise, the last good value of BIN_x is retained.
The value and status of the individual BIN_x are available in three output parameters. In addi-
tion, they are used as the inputs to the arbitration algorithm.

9.5.6 Arbitration Algorithm


BIN_1, BIN_2, and BIN_3 each have a value and status, as described in the previous section. In
the table below, a BIN_x is Valid if its status is neither Bad nor Out-of-Service. Also, if ARBOPT
indicates DMR, BIN_3 is never Valid.

BIN_1 BIN_2 BIN_3


Valid Valid Valid Test Select
Yes Yes Yes BIN_1, BIN_2 values are equal. BIN_1
Yes Yes Yes BIN_1, BIN_2 values are different BIN_1
and BIN_1, BIN_3 values are equal.
Yes Yes Yes All other cases BIN_2
Yes Yes No BIN_1, BIN_2 values are equal. BIN_1
Yes Yes No BIN_1, BIN_2 values are different. See Case 1
Yes No Yes BIN_1, BIN_3 values are equal. BIN_1
Yes No Yes BIN_1, BIN_3 values are different. See Case 2
No Yes Yes BIN_2, BIN_3 values are equal. BIN_2
No Yes Yes BIN_2, BIN_3 values are different. See Case 3
Yes No No (No Test) BIN_1
No Yes No (No Test) BIN_2
No No Yes (No Test) BIN_3
No No No (No Test) See Case 4

When the Select column reads “See Case x”, the arbitration process cannot select a candidate.
Configured parameter SELOPT then determines the value of BIN as follows:
 If SELOPT = 0, BIN retains its previous value.
 If SELOPT = 1, BIN is set false.
 If SELOPT = 2, BIN is set true.
Output parameter SELECT shows which BIN_x has been selected:
 If BIN_1 is selected, SELECT = 1
 If BIN_2 is selected, SELECT = 2
 If BIN_3 is selected, SELECT = 3
 Otherwise, SELECT = 0
The status of BIN is set as follows:
 Case 1, 2 or 3: status of BIN is Error (the Error status bit is set)
 Case 4: status of BIN is Bad and Out-of-Service (the Bad and Out-of-Service status
bits are set).

279
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block

9.5.7 Auto/Manual Arbitration


The Auto/Manual mode selection arbitrates between inputs by the operator (Manual) and inputs
from the field (Auto). Parameters MA and INITMA are used to establish the control mode of the
BINR block.

9.5.8 Operation in Auto Mode


In Auto mode, the input data and status from the two or three candidate inputs are processed and
arbitrated as described in the previous sections. The Bad, Out-of-Service, and Error bits from the
status of BIN are copied to the corresponding status bits of CIN. If neither the Bad nor Out-of-
Service bit is set, the value of BIN is also copied to the value of CIN. If either the Bad or Out-of-
Service bit is set, the value of BIN is not copied to CIN, and CIN retains its last good value.

9.5.9 Operation in Manual Mode


In Manual mode, the input data and status from the two or three candidate inputs are processed
and arbitrated as in the case of the Auto mode. Therefore, the value and status of BIN continues
to reflect the actual field inputs. However, neither the status nor the value of BIN is copied to
CIN, and CIN can be used for manual sets.
The output of the BINR block, as normally used by the control strategy is, therefore, the CIN
parameter, whether the block mode is Auto or Manual.

9.5.10 State Change Messages (CP270 Only)


With I/A Series system software V8.4, the BINR block supports state change messages on the
FCP270 and ZCP270. The feature is not supported on other control stations.
Key Parameters: SCOPT, CIN, SCTXT0, SCTXT1, IVO, SCGRP
State Change Option (SCOPT) specifies which state changes of the block output cause a State
Change message to be the generated.

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.

A value of 0 in SCOPT disables State Change detection.


When SCOPT is set to 1, State Change messages are generated for any transition:
 a message containing the text in State Change Text 1 (SCTXT1) is sent after any
change from 0 to 1 in the value of CIN
 a message containing the text in State Change Text 0 (SCTXT0) is sent after any
change from 1 to 0 in the value of CIN.

NOTE
State Alarming is independent of state change detection based on SCOPT.

When SCOPT is set to 2, any change from 0 to 1 in the value of CIN results in a State Change
message containing the text string in SCTXT1.

280
9. BINR – Redundant Binary Input Block B0193AX – Rev AB

When SCOPT is set to 3, any change from 1 to 0 in the value of CIN results in a State Change
message containing the text string in SCTXT0.
Any required inversion based on IVO is applied before state change detection.
While the State Change Group (SCGRP) parameter holds the group to which all State Change
messages are directed, Alarm Alert ignores these messages when they arrive.

9.5.11 Alarming (CP270 Only)


With I/A Series system software V8.4, the BINR block supports Bad I/O alarms and state change
alarms on the FCP270 and ZCP270. The alarming features are not supported on other control
stations.
The BINR block uses standard I/A Series alarm detection and reporting features to provide alarms
for Bad I/O and/or state changes. The functionality is configured with the parameters described
in Table 9-5.

Table 9-5. AI Block Alarm Parameters

Default
Alarm Type Option Priority Group Text Display
BAD BAO=1 BAP BAG BAT BAD
State SAO=1 SAP SAG NM0 or NM1 STATE

If MANALM=0, the selected alarming options are only applied when the block is in Auto mode;
if MANALM=1, the selected alarming options are applied when the block is in Auto and Manual
modes.
Refer to Control Processor 270 (CP270) Integrated Control Software Concepts (B0700AG) for infor-
mation on alarm functionality.

9.5.11.1 BAD I/O Alarms


Bad alarm detection is enabled when the bad alarm option (BAO) is set.
A Bad alarm message is generated for an input value when its status is bad (BIN_1.BAD,
BIN_2.BAD, BIN_3.BAD) independent of the status of the other inputs. The Bad alarm mes-
sage is sent to all devices in the bad alarm group specified by the BAG parameter. This message
contains text string identifying the input value (BAD1, BAD2, or BAD3), the descriptive text in
the BAT parameter, and the loop identifier in the LOOPID parameter.
When any input value becomes good, a corresponding return-to-normal message is generated and
sent to all devices in the bad alarm group. Bad alarm status information, however, is generated
only when all input values are bad.
When all input values are bad, the following parameters and bits are set:
 BAD bit in the alarm status parameter (ALMSTA.BAD)
 UNACK parameter and the corresponding ALMSTA.UNACK bit.
 CRIT parameter and its corresponding ALMSTA.CRIT are set to the BAP parameter
value
 PRTYPE parameter and its corresponding ALMSTA.PRTYPE field are set to the Bad
alarm type.

281
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block

When all input values have returned to good status, CRIT, PRTYPE and their corresponding
fields in ALMSTA are cleared.
The UNACK parameter and the ALMSTA.UNACK bit are cleared in these cases:
 When the alarm is acknowledged by an OM set operation at either the compound
level (by setting the compound UNACK=0) or at the block level (by setting the block
UNACK=0).
 When all input values return to good status and INHOPT is set appropriately.
 When the block is shut down.
When UNACK is cleared, an Alarm Acknowledge message is generated and sent to all devices in
the bad alarm group.

9.5.11.2 State Alarms


State alarming occurs when the State Alarm Option (SAO) is set and the selected FBM input
transitions from 0 to 1, or 1 to 0 if INVALM is set to 1.
When the selected input value is in the alarm state, a state alarm message is sent to all devices in
the alarm group specified by the SAG parameter. This message also contains the descriptive text in
the NM1 parameter and the loop identifier in the LOOPID parameter.
When the selected input value is no longer in the alarm state, a corresponding return-to-normal
message is generated and sent to all devices in the state alarm group (SAG). This message contains
the descriptive text in the NM0 parameter.
When the state alarm exists, the STA bit is set in the alarm status parameter (ALMSTA.B6). If a
Bad alarm condition of a higher priority does not also exists, the CRIT parameter and its corre-
sponding ALMSTA.CRIT field are set to the SAP parameter value, and the PRTYPE parameter
and its corresponding ALMSTA.PRTYPE field are set to the State alarm type.
When the state alarm condition returns to normal status, and if a Bad alarm condition of higher
priority does not exist, ALMSTA.SA, CRIT, PRTYPE and their corresponding fields in ALMSTA
are cleared.

9.5.11.3 Alarm Management


Alarm Inhibiting/Disabling are supported using a combination of the compound CINHIB
parameter and the INHOPT and INHIB parameters in the BINR block, to allow the bad alarm
and state alarm messages to be inhibited and/or the alarm detection to disabled dynamically.
When an alarm is inhibited or disabled, an appropriate Alarm Disable message is generated and
sent to all devices in the respective alarm group. If the Alarm is unacknowledged, an Alarm
Acknowledge message is also sent to these devices., and the ALMSTA.INHIB bit is set.
When the alarm is uninhibited or enabled, an appropriate Alarm Enable message is generated and
sent to all devices in the respective alarm group. If all alarms are uninhibited, the
ALMSTA.INHIB bit also is cleared.
The Alarm Message Regeneration Time Interval (AMRTIN) parameter specifies the rate at which
alarm messages are generated for alarm conditions that have not been cleared. The interval is spec-
ified in seconds. The configured interval is rounded up to the closest value that is an even multi-
ple of the station BPC. A value of 0 disables alarm message regeneration. Parameters NASDB and
NASOPT provide control of nuisance alarms by applying a delay (set in NASDB) to return-to-
normal condition (NASOPT = 0), to alarm detection (NASOPT=1) or to both (NASOPT=2).

282
9. BINR – Redundant Binary Input Block B0193AX – Rev AB

Refer to Control Processor 270 (CP270) Integrated Control Software Concepts (B0700AG) on alarm
features.

9.5.12 Time Stamp


The time stamp (TSTAMP) parameter of the block is updated every time there is a change in the
CIN value. TSTAMP, which is expressed in units of milliseconds past midnight, is read from the
FBM when it is available there; otherwise, it is computed by the I/A Series control station.

NOTE
For a FOUNDATION fieldbus (FF) connection, a 4-byte ms since midnight time-
stamp is provided by the FF FBM and stored in the TSTAMP parameter.

283
B0193AX – Rev AB 9. BINR – Redundant Binary Input Block

284
10. BLNALM – Boolean Alarm
Block
This chapter covers the Boolean Alarm Block, or BLNALM, its features, parameters and
functions.

10.1 Overview
The Boolean Alarm Block, BLNALM, enables alarm message generation for up to 8 boolean
block outputs. For each input, you can assign a point descriptor and a unique state name for
going into, or coming out of, alarm.

10.1.1 I/O Diagram

IN_1 Compound, Block, and Parameter

SAP_1 State Alarm Priority


Alarm & Block Status

IN_2 through IN_8 (7 lines) Criticality


Inversion
SAP_2 through SAP_8 (7 lines) Priority Type
Alarming

Alarm Inhibit BLNALM


BLOCK

Figure 10-1. BLNALM Block I/O Diagram

10.2 Features
Features are:
 Supports alarming for up to 8 boolean inputs
 Last good value retention
 Alarm message and alarm notification inhibiting for all inputs.
Options are:
 Per-point state change alarming (SAO_1 to SAO_8)
 Per-point inversion (IVO_1 to IVO_8)
 INHOPT specifies the actions to be taken when alarms are inhibited in the block.

285
B0193AX – Rev AB 10. BLNALM – Boolean Alarm Block

10.3 Parameters
Table 10-1. BLNALM Block Parameters

Name Description Type Accessibility Default Units/Range


INPUTS
NAME block name string no-con/no-set blank 1 to 12 chars
TYPE block type integer no-con/no-set 24 BLNALM
DESCRP descriptor string no-con/no-set blank 1 to 32 chars
PERIOD block sample time short no-con/no-set 1 0 to 13
PHASE block phase number integer no-con/no-set 0 ---
LOOPID loopid string no-con/set blank 1 to 32 chars
IN_1 to IN_8 input point 1 to 8 boolean con/set 0 0 to 1
NM0_1 to NM0_8 pt1 to pt8 alarm state0 string no-con/no-set blank 1 to 12 chars
NM1_1 to NM1_8 pt1 to pt8 alarm state1 string no-con/no-set blank 1 to 12 chars
ANM_1 to ANM8 pt1 to pt8 alarm name string no-con/no-set blank 1 to 12 chars
INHIB alarm inhibit boolean con/set 0 0 to 1
INHALM Inhibit alarm pack_b con/set 0 0 to 0xFFFF
SAP_1 to SAP_8 pt1 to pt8 alarm priority integer con/set 5 [1..5]
INHOPT inhibit option short no-con/no-set 0 0 to 3
IVO_1 to IVO_8 pt1 to pt8 invert option boolean no-con/no-set 0 0 to 1
SAG_1 to SAG_8 pt1 to pt8 alarm group short no-con/set 1 [1..8]
SAO_1 to SAO_8 boolean alarm option 1 to 8 boolean no-con/no-set 0 0 to 1
AMRTIN alarm regeneration timer integer no-con/no-set 0 0 to 32767 s
Non-Configurable Parameters
OUTPUTS
ALMSTA alarm status pack_l con/no-set 0 bit map
BLKSTA block status pack_l con/no-set 0 bit map
CRIT criticality integer con/no-set 0 [0..5]
INHSTA inhibit status pack_l con/no-set 0 0 to 0xFFFFFFFF
PRTYPE priority type integer con/no-set 0 [0..10]
UNACK alarm notification boolean con/no-set 0 0 to 1
DATA STORES
ACHNGE alternate change integer con/no-set 0 -32768 to 32767
ALMOPT alarm options pack_l no-con/no-set 0 0 to 0xFFFFFFFF
DEFINE no config errors boolean no-con/no-set 1 0 to 1
ERCODE config error string no-con/no-set 0 1 to 43 chars
LOCKID lock identifier string no-con/no-set blank 8 to 13 chars
LOCKRQ lock request boolean no-con/set 0 0 to 1
OWNER owner name string no-con/set blank 1 to 32 chars

10.3.1 Parameter Definitions


ACHNGE Alternate Change is an integer output which is incremented each time a
block parameter is changed via a Set command.

286
10. BLNALM – Boolean Alarm Block B0193AX – Rev AB

ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use. For the BLNALM block, only the following unshaded bits
are used.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
Bit Number1
(0 to 31) Configured Alarm Option When True
0 Alarm Group 8 in Use
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use
1. Bit 0 is the least significant, low order bit.

ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the BLNALM block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
B4
B5
STAL B6
B7
B8
B9

PNT1 to PNT8 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 BLNALM block
5 to 7 CRIT_MSK Criticality; 5 = lowest ALMSTA.B27–
priority, 1= highest ALMSTA.B25
8 to 15 PNT1 to Points in STATE Alarm ALMSTA.B24–
PNT8 ALMSTA.B17
26 STAL State Change Alarm ALMSTA.B6
29 INH Alarm inhibit ALMSTA.B3
30 UNAK Unacknowledged ALMSTA.B2
* Bit 0 is the least significant, low order bit.

287
B0193AX – Rev AB 10. BLNALM – Boolean Alarm Block

AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is gen-
erated.

ANM_1 to ANM_8
Alarm Name for Inputs 1 through 8 are user-defined strings of up to
12 characters that identify the input as the cause of the event (that is, the
alarm source), in the alarm message. Each serves as a point descriptor
label, (for example, “Plt3 F2 SDR”).

BLKSTA Block Status is a 32-bit output, bit-mapped to indicate the block’s opera-
tional states. For the BLNALM block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

ON

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
14 UDEF Undefined BLKSTA.B18
15 ON Compound On BLKSTA.B17
20 WLCK Workstation Lock BLKSTA.B12

* Bit 0 is the least significant, low order bit.

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.

DESCRP Description is a user-defined string of up to 32 characters that describe the


block’s function (for example, “PLT 3 FURNACE 2 HEATER CON-
TROL”).

ERCODE Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the block’s

288
10. BLNALM – Boolean Alarm Block B0193AX – Rev AB

DEFINE parameter to be set false, but not the warning situations. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. The block detailed display shows the ERCODE
on the primary page, if it is not null. For the BLNALM block, the follow-
ing list specifies the possible values of ERCODE, and the significance of
each value in this block:

Message Value
“W43 – INVALID PERIOD/ PHASE does not exist for given block
PHASE COMBINATION” PERIOD, or block PERIOD not
compatible with compound PERIOD.
“W46 – INVALID INPUT The source parameter specified in the
CONNECTION” input connection cannot be found in
the source block, or the source
parameter is not connectable, or an
invalid boolean extension connection
has been configured.
“W53 – INVALID A parameter value is not in the accept-
PARAMETER VALUE” able range.
“W58 – INSTALL ERROR; A Database Installer error has
DELETE/UNDELETE occurred.
BLOCK”

INHALM Inhibit Alarm is a packed Boolean input value that specifies the alarm
inhibit requests for each alarm type configured in the block. The
BLNALM block, uses the following bits:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10

B11

B12

B13

B14

B15

B16
B1

B2

B3

B4

B5

B6

B7

B8

B9

Bit Number* Boolean Connection


(0 to 15) Description When True (B16 to B1)
8 Inhibit Input Point 8 Alarm INHALM.B8
. . .
. . .
14 Inhibit Input Point 2 Alarm INHALM.B2
15 Inhibit Input Point 1 Alarm INHALM.B1
* Bit 0 is the least significant, low order bit.

There are no mnemonic names for the individual bits of INHALM.

INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT

289
B0193AX – Rev AB 10. BLNALM – Boolean Alarm Block

setting. Alarms may also be inhibited based on INHALM and the com-
pound parameter CINHIB.

INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do
not disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the
time the alarm transitions into the inhibited state, clear the
alarm indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.

INHSTA Inhibit Status contains packed long values that represent the actual inhibit
status of each alarm type configured in the block. For the BLNALM
block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

INH 1-8

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
24 to 31 INH Inhibit Alarm status for INHSTA.B8–
boolean outputs 1-8 INHSTA.B1

* Bit 0 is the least significant, low order bit.

IN_1 to IN_8 Inputs 1 through 8 are boolean inputs. They identify the upstream out-
puts that are being monitored by the inputs of the block.

IVO_1 to IVO_8 Invert Options 1 through 8 are boolean inputs. When IVO is true, the
block inverts the value of the FBM input before writing it to the CIN out-
put. The state alarm messages process an off-to-on state change at the
input as an on-to-off state change. You can change IVO only by reconfig-
uring the block.

290
10. BLNALM – Boolean Alarm Block B0193AX – Rev AB

LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.

LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are honored (subject to the usual access rules) only from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can set false by any workstation at any time, whereupon a new
LOCKRQ is accepted, and a new ownership workstation identifier writ-
ten to LOCKID.

LOOPID Loop Identifier is a configurable string of up to 32 characters which iden-


tifies the loop or process with which the block is associated. It is displayed
on the detail display of the block, immediately below the faceplate.

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

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.

OWNER Owner is a string of up to 32 ASCII characters which are used to allocate


control blocks to applications. Attempts to set Owner are successful only
if the present value of Owner is the null string, an all-blank string, or iden-
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.

PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)

291
B0193AX – Rev AB 10. BLNALM – Boolean Alarm Block

Period Length Period Length


0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****

* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).

PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. The PRTYPE output of this block
includes the following alarm types:
0 = No active alarm
9 = State Alarm

SAG_1 to SAG_8 State Alarm Group, Inputs 1 through 8, are short integer inputs that
direct mismatch alarm messages to the corresponding group of alarm
devices. You can change the group number through the workstation.

SAO_1 to SAO_8 State Alarm Option, Inputs 1 through 8, when configured true, enable an
alarm message whenever the corresponding input changes state. You can
change SAO only by reconfiguring the block.

SAP_1 to SAP_8 State Alarm Priority, Inputs 1 through 8, are integer inputs (1 to 5), that
set the alarm priority for the mismatch alarm reporting (1 is the highest
priority).

292
10. BLNALM – Boolean Alarm Block B0193AX – Rev AB

TYPE When you enter “BLNALM” or select “BLNALM” from the block type
list under Show, an identifying integer is created specifying this block
type.

UNACK Unacknowledge is a boolean output that the block sets to True when it
detects an alarm. It is typically reset by operator action.

10.4 Functions
10.4.1 Detailed Operation
The BLNALM block monitors each of the up to eight boolean inputs that you have configured to
other block outputs using the input parameters IN_1 through IN_8.
When one of the inputs changes state the block, after confirming that alarming is not inhibited
for that point, and that the state alarm option for the particular input (SAO_x) is true, generates
an alarm message that includes the following block-level information:
 The Block Name (NAME)
 The Point Descriptor (ANM_x)
 The Alarm State Name (NM1_x if the input is changing from 0 to 1, or, NM0_x if
the change is from 1 to 0)
 Alarm Message Type (“Alarm” or “Normal”)
 Priority (SAP_x)
 Group (SAG_x)
Within the BLNALM block, the 0 to 1 transition always triggers the “Alarm” message while the
1 to 0 transition triggers the “Normal” message. Accordingly, the logical one state name (NM1_x)
is always sent with the going-into-alarm message and the logical zero state name (NM0_x) is
always sent with the return-to-normal message. If this convention is contrary to the input signal,
that is, if the actual input is entering the alarm state as it goes from 1 to 0, then configure the
Invert Option (IVO_x) for that particular input.
Unacknowledge (UNACK) is a boolean output parameter which is set true, for notification pur-
poses, whenever the block goes into alarm. It is settable, but sets are only allowed to clear
UNACK to false, and never in the opposite direction. The clearing of UNACK is normally via an
operator “acknowledge” pick on a default or user display, or via a user task.
INHALM is a parameter that is used in conjunction with the CINHIB compound parameter and
the INHIB block parameter to determine which alarm points are to be inhibited in the block.
The following table shows the value of INHALM which causes the inhibiting of each of the
points:

Table 10-2. INHALM Values

POINT INHALM Bit


IN_1 0x8000
IN_2 0x4000
IN_3 0x2000

293
B0193AX – Rev AB 10. BLNALM – Boolean Alarm Block

Table 10-2. INHALM Values (Continued)

POINT INHALM Bit


IN_4 0x1000
IN_5 0x0800
IN_6 0x0400
IN_7 0x0200
IN_8 0x0100

For example, you can inhibit alarming for points IN_2 and IN_5 by setting INHALM to
0x4800.

294
11. BOOL – Boolean Variable Block
This chapter covers the Boolean Variable Block, or BOOL, its basic operation, features and
parameters.

11.1 Overview
The Boolean (BOOL) variable block provides data storage for a boolean value and its associated
user-specified state name (see Figure 11-1). The boolean value parameter is typically connected by
a sequence block or sequence language for use in a control strategy.

Boolean
Application Value Boolean Value (VALUE)

False State Name (STATE0)


Current State Name (STATE) to
True State Name (STATE1) State Application

Figure 11-1. BOOL Block Functional Diagram

11.2 Basic Operation


The BOOL block contains a boolean output data variable parameter (VALUE) that can be set by
a set command to store a value for use by other blocks. The VALUE record contains a status field
in which an application can set the Bad and out-of-service (OOS) bits.
When the boolean VALUE is changed by a set command or block reconfiguration, the set com-
mand updates the STATE data store parameter with the corresponding user-specified true
(STATE1) or false (STATE0) name. This allows you to view the boolean VALUE as a named state
on process displays.
The BOOL block has a Detail Display for viewing and setting parameters. BOOL and other data
variable blocks appear on the Select display in the order they are configured, following all other
blocks in the compound.
The BOOL block does not contain PERIOD and PHASE parameters because it is not executed
by the compound processor. Using the Integrated Control Configurator, any number of BOOL
blocks can be inserted in the END DATA zone of any compound.
The BOOL block is validated whenever:
 It is installed in the Control Processor (CP) database
 The CP undergoes a reboot operation
 The compound in which the block resides is turned on.

295
B0193AX – Rev AB 11. BOOL – Boolean Variable Block

Block validation does not change any parameter values that have not been reconfigured, except for
a CP reboot, in which case it installs the parameter values in the checkpoint file. If you turn the
compound off and then on, the VALUE parameter value is unchanged.

11.3 Features
The BOOL block provides the following features:
 Boolean output data variable (VALUE) for storing a boolean value
 User-defined state names (STATE0 and STATE1) that describe the true and false
states of VALUE
 State string (STATE) for storing the name of the current state of VALUE.

11.4 Parameters
Table 11-1. BOOL Block Parameters

Name Description Type Accessibility Default Units/Range


Configured Parameters
INPUTS
NAME block name string no-con/no-set 2 blanks 1 to 12 chars
TYPE block type integer no-con/no-set 152 BOOL
DESCRP block descriptor string no-con/no-set 2 blanks 1 to 32 chars
STATE0 state0 name string no-con/no-set 2 blanks 1 to 32 chars
STATE1 state1 name string no-con/no-set 2 blanks 1 to 32 chars
Non-Configured Parameters
OUTPUT DATA VARIABLE
VALUE variable value boolean 0 0 to 1
DATA STORES
STATE variable state name string no-con/no-set 2 blanks 1 to 32 chars

11.4.1 Parameter Definitions


DESCRP Descriptor is a user-defined string of up to 32 characters that describes the
block function (for example, HEATER ON/OFF).

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

STATE State is a dynamic string that contains the name of the current state of the
VALUE parameter.

STATE0 State0 is a user-defined string of up to 32 characters that describes the


state when VALUE = 0.

296
11. BOOL – Boolean Variable Block B0193AX – Rev AB

STATE1 State1 is a user-defined string of up to 32 characters that describes the


state when VALUE = 1.

TYPE Type is a system-level mnemonic label indicating the block type. Enter
“BOOL” or select “BOOL” from the block type list under SHOW when
configuring the block.

VALUE Value is a boolean output data variable that can be set by a set command
or block reconfiguration to store data for use by other blocks.

297
B0193AX – Rev AB 11. BOOL – Boolean Variable Block

298
12. BOUT – Binary Output Block
This chapter covers the Binary Output (BOUT) block, its features, parameters and functions,
and application diagrams.

NOTE
This chapter describes the Distributed Control Interface (DCI) BOUT block. For a
description of how the BOUT block is used in PLC applications, refer to PLC Inter-
face Block Descriptions (B0193YQ).

NOTE
CP270 Only indicates BOUT features supported only on the Field Control Proces-
sor 270 (FCP270) and Z-form Control Processor 270 (ZCP270) with I/A Series
system software V8.4 or later.

12.1 Overview
The Binary Output (BOUT) block is a Distributed Control Interface (DCI) block. (DCI blocks
support connectivity of I/A Series control stations to various bus resident devices via a general
purpose interface.) BOUT sends one binary value to an address in an external device. It also con-
tinuously reports, to the I/A Series system, any changes made by the FBM to the field device value
at this address.

To
Cascade
Upstream
Processing
Block

Input To Field
from Input Output
Device (via
I/A Series Processing Processing
FBM)
System

ECB Fail-Safe
Fail-Safe Processing

Read-Back Read-Back
from Read-Back
Processing
Field Device

Figure 12-1. BOUT Block Diagram

299
B0193AX – Rev AB 12. BOUT – Binary Output Block

12.2 Basic Operation


In the outbound direction, the BOUT block accepts a binary value from the control strategy, or
an operator set, and sends it to the addressed point. In the inbound direction, the block’s con-
firmed output structure allows any change in value in the FBM to be read back by the I/A Series
block. Thus, the block logic permits changes to the point value to be made at either end, with the
two ends remaining in sync at all times.
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).
If BOUT is in Manual, the SET and the block output Contact Output (COUT) parameters will
be updated with the readback value. If the BOUT is in Auto, and the binary input (IN) parameter
is unlinked, both IN and COUT will be updated with the readback value. If the BOUT is in
Auto, and the IN parameter is linked, the Control Processor will re-issue the write operation to set
the output to the IN value.
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 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 displayed at parameter Out-
put 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.
With I/A Series system software V8.4 and later, the BOUT block provides Bad I/O alarm detec-
tion and reporting on the FCP270 and ZCP270. The BOUT block does not provide alarming on
other control processors. If alarms are desired, a separate CIN block can be used with a connec-
tion to the COUT parameter of the BOUT block.

300
12. BOUT – Binary Output Block B0193AX – Rev AB

12.3 Features
The BOUT block provides the following features:
 Separate block inputs for use in Auto and Manual
 Specification of external device destination point as device-specific string
 Output written to device only when output value changes
 Optional periodic outputs added to change-driven outputs
 Output values that are displayed as readback values
 Change timer that assures initialization to external device value
 Specific point reserved for tracking notification from external device
 Open cascade notification to upstream blocks
 Bad I/O alarm detection and reporting (CP270 Only)
 Option to have the block switch to manual when input or readback status is Bad
(CP270 Only)
 Option to have the block switch to manual when fail-safe is asserted (CP270 Only).

301
B0193AX – Rev AB 12. BOUT – Binary Output Block

12.4 Parameters
Table 12-1. BOUT Block Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set 2 blanks 1 to 12 chars
TYPE block type short integer no-con/no-set BOUT_TYPE 143
DESCRP block description string no-con/no-set 2 blanks 1 to 32 chars
PERIOD block sample time short integer no-con/no-set 1 0 to10, and 13 for CPs,
0 to 12 for Gateways
PHASE block execution phase short integer no-con/no-set 0 ---
LOOPID loop/unit/batch identifier string no-con/set 2 blanks 1 to 32 chars
IOM_ID ECB identifier string no-con/no-set 2 blanks 1 to 12 chars
UPDPER update period long no-con/no-set 10000 0-2147483647
PNT_NO point number string no-con/no-set blanks device specific
MA manual/auto switch boolean con/set 0 0 to 1
INITMA initialize manual/auto short integer no-con/no-set 1 0 to 2
AUTSW auto switch boolean con/set 0 0 to 1
EROPT error option short integer no-con/no-set 0 0 to 2
FSOPTN fail-safe option short integer no-con/no-set 0 bit map
IN binary input boolean con/set 0 0 to 1
INI_PT initialize point number string no-con/no-set blanks device specific
MANSW manual switch boolean con/set 0 0 to 1
PRIBLK primary block short integer no-con/no-set 0 0 to 1
PRITIM primary cascade timer real no-con/no-set 0.0 seconds
RBKTIM readback timer real no-con/no-set 5.0 seconds
SECTIM secondary timer real no-con/no-set 0.0 seconds
SIMOPT simulation option boolean no-con/no-set 0 0 = no simulation
1 = simulation
MANFS manual if fail-safe boolean no-con/no-set 0 0 to 1
MBADOP manual if bad option boolean no-con/no-set 0 0 to 1
INHOPT inhibit option short no-con/no-set 0 0 to 3
INHIB alarm inhibit boolean con/set 0 0 to 1
BAO bad alarm option boolean no-con/no-set 0 0 to 1
BAT bad alarm text string no-con/no-set blank 1 to 32 chars
BAP bad alarm priority integer con/set 5 1 to 5
BAG bad alarm group short no-con/set 1 1 to 8
AMRTIN alarm regeneration timer integer no-con/no-set 0 0 to32767 sec
SETFS set fail-safe request boolean con/set 0 0 to 1
OUTPUTS
FSCOUT fail-safe Boolean output boolean con/no-set 0 0 to 1
Non-Configurable Parameters
OUTPUTS
ACHNGE alternate change integer con/no-set 0 -32768 to 32767

302
12. BOUT – Binary Output Block B0193AX – Rev AB

Table 12-1. BOUT Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


ALMSTA alarm status packed long con/no-set 0 bit map
BKCO back calculated output boolean con/no-set 0 0 to 1
BLKSTA block status packed long con/no-set 0 0 to 0xFFFFFFFF
COUT contact output boolean con/no-set 0 0 to 1
COUTQ output request boolean no-con/no-set 0 (shadow)
CRIT alarm criticality integer con/no-set 0 0 to 5
INHSTA inhibit status packed long con/no-set 0 0 to 0xFFFFFFFF
INITCO initialize output boolean con/no-set 0 0 to 1
PRTYPE priority type integer con/no-set 0 0 to 8
SET manual set request boolean con/set 0 0 to 1
TSTAMP time stamp long integer con/no-set 0 ms after midnight
UNACK unacknowledged alarm boolean con/no-set 0 0 to 1
VALSTS FF value status integer con/no-set 0 0 to 0xFFFF
DATA STORES
ALMOPT alarm options packed long no-con/no-set 0 0 to 0xFFFFFFFF
DEFINE no config errors boolean no-con/no-set 1 0 to 1
DEV_ID device identifier character no-con/no-set 6-character array
ERCODE configuration error string no-con/no-set 2 blanks 1 to 43 chars
LOCKID lock identifier string no-con/set 2 blanks 8 to 13 chars
LOCKRQ lock request boolean no-con/set 0 0 to 1
OWNER owner name string no-con/set 2 blanks 1 to 32 chars

12.4.1 Parameter Definitions


ACHNGE Alternate Change is an integer output which is incremented each time a
block parameter is changed via a Set command.

ALMOPT Alarm Options contain packed long values representing the alarm types
CP270 Only that have been configured as options in the block, and the alarm groups
that are in use. Table 12-2 shows how the parameter is used by the BOUT
block.

Table 12-2. ALMOPT Parameter Format

Bit Number1
(0 to 31) Configured Alarm Option, When True
0 (lsb) Alarm Group 8 in Use
1 Alarm Group 7 in Use
2 Alarm Group 6 in Use
3 Alarm Group 5 in Use
4 Alarm Group 4 in Use
5 Alarm Group 3 in Use
6 Alarm Group 2 in Use

303
B0193AX – Rev AB 12. BOUT – Binary Output Block

Table 12-2. ALMOPT Parameter Format (Continued)

Bit Number1
(0 to 31) Configured Alarm Option, When True
7 Alarm Group 1 in Use
22 Bad I/O Alarm Configured
1.
Bit 0 is the least significant, low order bit.

ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
CP270 Only states. Table 12-3 shows the bits used by the BOUT block.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
B4
B5
B6
B7
B8
B9

CRIT PRTYPE
BAD
INH

Table 12-3. ALMSTA Parameter Format

Bit Boolean
Number Description, Connection
(0 to 31)* Name When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type ---
5 to 7 CRIT_MSK Criticality: 1 (highest priority) to 5 ---
22 BAD Bad I/O Alarm ALMSTA.B10
29 INH Inhibit Alarm. This bit is set when ALMSTA.B3
any of the block’s alarms is inhibited
30 UNAK Unacknowledged ALMSTA.B2
*Bit 0 is the least significant, low order bit.

AMRTIN Alarm Message Regeneration Time Interval specifies the rate at which
CP270 Only alarm messages are generated for alarm conditions that have not been
cleared. The interval is specified in seconds. The configured interval is
rounded up to the closest value that is an even multiple of the station
BPC. A value of 0 disables alarm message regeneration.

AUTSW Auto Switch forces the block mode to Auto. It is of higher priority than
configured, set, or linked values in MA, or the value of INITMA. It is of
lower priority than MANSW, however. If both MANSW and AUTSW are
True, the block mode is forced to Manual.

BAG Bad Alarm Group is a configurable, non-settable short integer parameter


CP270 Only used to specify the Alarm Group to be used for reporting Bad Alarm
messages in the block. The range is 1 (default) to 8.

304
12. BOUT – Binary Output Block B0193AX – Rev AB

BAO Bad Alarm Option is a configurable, non-settable Boolean parameter used


CP270 Only to specify whether or not Bad Alarming is to be performed in the block:
 0 (default) disables Bad Alarming
 1 enables Bad Alarming.

BAP Bad Alarm Priority is a configurable integer input used to specify the
CP270 Only Alarm Priority to be assigned to Bad Alarms in the block. BADPRI is
settable if unlinked. The range is 1 (highest) to 5 (default).

BAT Bad Alarm Text is a configurable, non-settable ASCII string of up to


CP270 Only 32 characters used as descriptive text in Bad Alarm messages in the block.

BKCO Back Calculated Contact Output is set equal to the confirmed component
of COUT while the cascade is initializing. Since its purpose is to provide
the upstream block with a back-calculated value, you should connect
BKCO to the BCALCI parameter of that block.

BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the BOUT block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
DCIX B9
MAO

FBM
HLD
TRK
MA
ON
FS

Bit Number* Boolean Connection


(0 to 31) Name Description When True (B32 to B1)
6 TRK Device Initializing BLKSTA.B26
7 HLD Block Output Holding BLKSTA.B25
8 FBM Bad Status of ECB BLKSTA.B24
11 MA Manual = 0, Auto = 1 BLKSTA.B21
14 UDEF Block Undefined BLKSTA.B18
15 ON Block On BLKSTA.B17
20 WLCK Access Locked BLKSTA.B12
23 DCIX Enhanced DCI block (CP270 Only) BLKSTA.B9
24 FS Fail-Safe Active BLKSTA.B8
26 MAO M/A Override Active BLKSTA.B6
* Bit 0 is the least significant, low order bit.

COUT Contact Output is the value sent from the block to the connected field
device at point PNT_NO. The displayed value of COUT is always the
confirmed component.

305
B0193AX – Rev AB 12. BOUT – Binary Output Block

COUTQ Output Request displays the value of the request component of the block
output for diagnostic purposes. It is not configurable.

CRIT Criticality is an integer output that indicates the priority of the block’s
CP270 Only highest currently active alarm. The range is 1 (highest priority) to 5. An
output of 0 indicates the absence of alarms.

DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. (See ERCODE for the list of all possible validation errors in this
block.) In that case, no further processing of the block occurs, including
further validation of remaining parameters. To return DEFINE to a True
value, correct all configuration errors and reinstall the block.

DESCRP Description is a user-defined string of up to 32 characters used to describe


the block’s function (for example, “PLT 3 FURNACE 2 HEATER CON-
TROL”).

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:

ERCODE Message Meaning


W48 – INVALID BLOCK OPTION “PRITIM = zero” is not allowed.
W52 – INVALID I/O CHANNEL/GROUP PNT_NO string is blank.
NO.
W62 – UNRESOLVED CONNECTION Connection is not yet resolved. (Block remains
defined.)
W65 – INVALID POINT ADDRESS FBM parsing algorithm finds that a used
BIx_PT is invalid.
W66 – DUPLICATE CONNECTION There is a duplicate connection to a particular
point.
W67 – INSUFFICIENT FBM MEM- There is no available memory or point connec-
ORY/CONNECTIONS tions in the FBM.
W68 – INVALID DEVICE CONNECTION The device connection is invalid.
W69 – INVALID POINT CONNECTION The point connection is invalid.

306
12. BOUT – Binary Output Block B0193AX – Rev AB

EROPT Error Option specifies the conditions under which IN is considered to


have bad status. It is used in determining whether there has been a bad-to-
good transition of IN.
If EROPT = 1, IN is considered Bad if its status word indicates Bad, Out-
of-Service, or Not On Scan. (If it is Not On Scan, then the source of the
connection has been deleted or is in a nonexistent compound, or there has
been a peer-to-peer failure.)
If EROPT = 2, IN is considered Bad in any of the above situations, and
when the Error bit in the status of IN is True.

FSCOUT Fail-safe Contact Output is the fail-safe value configured in a BOUT


block and downloaded into the FBM. It is used by the FBM, if the
FSOPTN is set in the BOUT block, to assert fail-safe action to a Boolean
output of a field device. The actions taken by the FBM (for example,
whether or not the FBM sends the fail-safe value to the field device) are
unique to the particular FBM subsystem. Refer to the subsystem user
guide for descriptions on how fail-safe functionality is implemented for
specific FBM types.
FSCOUT is also used to set the initial output value when the BOUT
block is installed and when the CP station is rebooted.
This parameter is currently not supported by Modbus FBM224.

FSOPTN Fail-Safe Option is a configurable option that specifies the fail-safe condi-
tions and action to be taken by the CP and the FBM for an output point
in a BOUT block. Any combination of the following options may be
configured:
 Bit 0: 1 = assert fail-safe if input/measurement error (that is,
input/measurement is BAD, OOS, or has a broken connection).
Note that EROPT must be configured nonzero for this option to
take effect.
 Bit 1: 1 = set/clear fail-safe when SETFS input is set/cleared.
 Bit 2: 1 = assert fail-safe if control station-to-FBM communication
is lost (FBM option). This option will be enabled only if fail-safe
is enabled at the FBM level via the FSENAB parameter in
ECB200 or ECB202.
 Bit 31: 1 = set the output BAD status if input/measurement error
(that is, input/measurement is BAD, OOS, or has a broken
connection).
 Bit 41: 1 = set/clear the output BAD status when the SETFS input
is set/cleared.
 Bit 51: 1 = set the output BAD status if control station-to-FBM
communication is lost (FBM option). This option will be enabled

1. Bits
3, 4 and 5 of FSOPTN only apply to FDSI FBMs. The FDSI FBM uses these options only
when interfacing to devices using protocols that support output point status.

307
B0193AX – Rev AB 12. BOUT – Binary Output Block

only if fail-safe is enabled at the FBM level via the FSENAB


parameter in ECB200 or ECB202.
Notes:
 Bit 0 is the least significant, low-order bit.
 For FDSI FBMs, the actual fail-safe actions to be taken for each
option are specified in the Field Device System Integrator (FDSI)
User’s Guide (B0700AH).
 This parameter is currently not supported by Modbus FBM224.

IN Binary Input is the value normally passed to COUT on a change-driven


basis when the block is in Auto mode. Readback changes and change
timer action can override the value specified by IN.

INHIB Inhibit is a configurable, connectable and settable boolean that, when set,
CP270 Only suppresses all alarm message reporting. INHIB affects only alarm message
reporting; the alarm handling and detection functions are determined by
the INHOPT setting.

INHOPT Inhibit Option specifies the following actions applying to all block alarms:
CP270 Only  0 = When an alarm is inhibited, disables alarm messages but does
not disable alarm detection.
 1 = When an alarm is inhibited, disables both alarm messages and
alarm detection. If an alarm condition exists at the time the alarm
transitions into the inhibited state, the alarm indicator is cleared.
 2 = Same as 0 for inhibited alarms. For uninhibited alarms,
automatically acknowledges “return-to-normal” messages.
“Into alarm” messages can be acknowledged by explicitly setting
UNACK False.
 3 = Same as 1 for inhibited alarms. For uninhibited alarms,
automatically acknowledges “return-to-normal” messages.
“Into alarm” messages can be acknowledged by explicitly setting
UNACK False.

INHSTA Inhibit Status contains packed long values that represent the current
CP270 Only inhibit status of each alarm type configured in the block. Table 12-4
shows how the parameter is used with the AI block.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BAD B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

308
12. BOUT – Binary Output Block B0193AX – Rev AB

Table 12-4. INHSTA Parameter Format

Bit Boolean
Number* Description, Connection
(0 to 31) Name When True (B32 to B1)
22 BAD Bad I/O Alarm Inhibited INHSTA.B10
*Bit 0 is the least significant, low order bit.

INITCO Initialization Output is a cascade initialization signal which is set True by


the block logic whenever the cascade is opened. You should connect
INITCO to the INITI input of the upstream block. The BOUT block
keeps INITCO True, for one cycle (PRIBLK = 0), until the acknowledge
is received from upstream (PRIBLK = 1 and PRITIM = 0.0), or for a fixed
time delay (PRIBLK = 1 and PRITIM = nonzero).

INITMA Initialize Manual/Auto specifies the desired state of the MA input under
certain initialization conditions, namely:
 The block has just been installed into the I/A Series station
database.
 The I/A Series station is rebooted.
 The compound in which the block resides is turned on.
 The INITMA parameter is modified via the Integrated Control
Configurator.
INITMA is ignored if MA has an established linkage.
When INITMA is asserted, the value set into MA is:
 0 (Manual) if INITMA = 0
 1 (Auto) if INITMA = 1
 The MA value from the checkpoint file if INITMA = 2.

INI_PT Initialize Address is a configurable string that specifies the point address of
an optional Boolean input connection in the BOUT block. If INI_PT is
used, the block output tracks the readback value when this input Boolean
value is set. On a transition of this input value to zero, if PRIBLK is used,
the I/A Series cascade is initialized. The address syntax depends on the
FBM type and the fieldbus protocol of the attached device, as described
for “PNT_NO” on page 311.

IOM_ID ECB Identifier is a configurable string that specifies the pathname of the
ECB201 for the device, for the purpose of connecting to (accessing) a field
parameter that resides in a field device hosted by a (parent) ECB200/202.
IOM_ID has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName

309
B0193AX – Rev AB 12. BOUT – Binary Output Block

may be omitted from the IOM_ID configuration. In this case, the 1-12
character ECB block name is sufficient.

LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.

LOCKRQ Lock Request is a Boolean input which can be set True or False only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set True in this fashion, a workstation identifier
accompanying the set command is entered into the LOCKID parameter
of the block. Thereafter, set requests to any of the block’s parameters are
honored (subject to the usual access rules) only from the workstation
whose identifier matches the contests of LOCKID. LOCKRQ can be set
False by any workstation at any time, whereupon a new LOCKRQ is
accepted, and a new ownership workstation identifier written to
LOCKID.

LOOPID Loop Identifier is a configurable string of up to 32 characters used to iden-


tify the loop or process with which the block is associated. It is displayed
on the detail display of the block, immediately below the faceplate.

MA Manual/Auto is a Boolean input that controls the block’s operating state


(0 = False = Manual; 1 = True = Auto). When in Auto mode, the block is
taken from IN, usually from the upstream connection. In Manual mode,
the input is taken from SET, usually via operator sets.

MANFS Manual if Fail-safe allows recovery from FBM fail-safe at the block in
CP270 Only which MANFS is set. If MANFS = 1, the output state is forced to manual
mode when the block detects the FBM being in fail-safe. The option only
takes effect if MA is unlinked. MANFS takes precedence over AUTSW
and INITMA.
Fail-safe in the block is cleared as soon as the output is changed.
For cascade operations, it is recommended that MANFS be enabled in
only one block.

MANSW Manual Switch, when True, forces the block into Manual mode. It is of
higher priority than any other method of establishing the value MA, since
it overrides configured, set, or linked values. MANSW is also of higher
priority than AUTSW or INITMA.

MBADOP Manual if Bad Option is manual override feature which, when set TRUE,
CP270 Only causes the block to go into Manual mode if the output value status is BAD
or IN value status is BAD.

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

310
12. BOUT – Binary Output Block B0193AX – Rev AB

OWNER Owner is a string of up to 32 ASCII characters used to allocate control


blocks to applications. Attempts to set OWNER are successful only if the
present value of OWNER is the null string, an all-blank string, or identi-
cal 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.

PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For CP stations, PERIOD values range
from 0 to 10, and 13, and map to the time lengths shown in the following
table. For Gateways and Integrators, PERIOD values range from 0 to 12
and map to the time lengths specified in the device specific user’s guide.

Period Length Period Length


0 0.1 second 7 10 minutes
1 0.5 second* 8 60 minutes
2 1.0 second 9 0.2 second
3 2.0 seconds 10 5.0 seconds**
4 10 seconds 11*** ----
5 30 seconds 12*** ----
6 1 minute 13**** 0.05 second

* If the BPC is 0.2 second, this period is treated internally as 0.6 second, but
the PERIOD parameter remains 1.
** If the BPC is 2.0 seconds, this period is treated internally as 6.0 seconds, but
the PERIOD parameter remains 10.
*** Not available for CP stations.
****Available in CP40, CP40B, CP60 and later control processors.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 seconds) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the
I/A Series station is 0.5 second. Refer to the appropriate Integrated Control
Software Concepts document (B0700AG or B0193AW).

PNT_NO Point Number identifies the address in the external device memory (or
external device data stream) to which the block output is directed. The
address syntax depends on the FBM type and the fieldbus protocol of the
attached device:
 For the FBM223 Profibus interface, PNT_NO must be config-
ured to contain a Profibus data identifier. This information
identifies, to the FBM, the address of the input data unit from the
device. Refer to PROFIBUS-DP Communication Interface Module
(FBM223) User’s Guide (B0400FE) for further details.

311
B0193AX – Rev AB 12. BOUT – Binary Output Block

 For the FBM222 Redundant Profibus interface, the PNT_NO


configuration string uses the FBM223 syntax with extensions for
PROFIBUS-PA status, custom status and other features. Refer to
Implementing Profibus Networks in Foxboro Control Software Appli-
cations (B0750BE) for further details.
 For the HART interface
(FBM214/214b/215/216/216b/218/244/245/247), PNT_NO
must be configured to contain a point address. This information
identifies, to the FBM, specific data in the HART data stream that
is to serve as the device data input to this block. Refer to HART™
Communication Interface Modules User’s Guide (B0400FF) for
details.
 For the Modbus interface (FBM224), PNT_NO must be config-
ured to contain the address of a set of coils in a Modbus device.
Refer to Modbus Communication Interface Module (FBM224)
User’s Guide for details.
 For the FDSI (FBM230/231/232/23), PNT_NO contains a data
identifier to identify, to the FBM, specific data in the I/O data
stream and to specify the elements of the data. Refer to Field
Device System Integrators (FBM230/231/232/233) User’s Guide
(B0700AH) for more information.
 For the FBM228 Redundant FOUNDATION fieldbus Interface, the
point number syntax specifies writes to an H1 device function
block parameter using a client/server or publisher/subscriber con-
nection, as described in Implementing FOUNDATION fieldbus on an
I/A Series System (B0700BA) and Implementing FOUNDATION field-
bus (B0750BC).

PRIBLK Primary Block indicates whether the BOUT block has a connection from
an upstream block (PRIBLK = 1) or not (PRIBLK = 0). Its value, together
with that of PRITIM, determines whether the BOUT block remains in
Hold for a fixed time delay, or ends the Hold after one cycle.
Use PRIBLK in a cascade situation when the source of the block's input
connection needs to be initialized.
Refer to “PRIBLK and PRITIM Functionality” on page 320 for more
information on this parameter.

PRITIM Primary Cascade Timer is a configurable parameter used to delay the clos-
ing of the cascade to a primary block, when the output is initialized in the
BOUT block. It is used only if the PRIBLK option is set.
Refer to “PRIBLK and PRITIM Functionality” on page 320 for more
information on this parameter.

PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
CP270 Only of the highest priority active alarm. For the BOUT block:
0 = No alarm
8 = Bad I/O alarm.

312
12. BOUT – Binary Output Block B0193AX – Rev AB

RBKTIM Readback Timer is a configurable parameter used to time out changes


made by I/A Series system to the output of the BOUT block. If the output
change is not confirmed within the allowable timeout, the output is re-ini-
tialized to the readback value. Its default value is 5.0 seconds, but you can
configure different values to accommodate different response times from
the external device.

SECTIM Secondary Timer is a configurable parameter used to force the output of


the BOUT block to be written periodically to the FBM, regardless of
whether or not the output has changed. It can be used to prevent the FBM
from asserting fail-safe action under normal operating conditions.

SET Set is the value normally passed to COUT, on a change-driven basis, when
the block is in Manual mode. Readback changes and change timer action
can override the value specified by SET.

SETFS Set Fail-Safe Request is a configurable Boolean parameter that requests


fail-safe action to be set/reset by the FBM and/or field device for the spe-
cific output value of the BOUT block:
 0 = reset fail-safe request.
 1 = set fail-safe request

SIMOPT Simulation Option is a configurable parameter that specifies whether the


DCI block input/output value is to be simulated. In the DCI BOUT
block, the block output is stored into its readback value to simulate confir-
mation by the FBM.

TSTAMP The Time Stamp parameter of the block is updated every time there has
been a change in the value of the readback from the external device point
(that is, the current readback differs from the readback value obtained in
the last execution cycle). TSTAMP, which is expressed in units of millisec-
onds past midnight, is read from the FBM, when it is available there; oth-
erwise, it is computed by the control station.

TYPE When you enter BOUT or select it from a configurator list, an identifying
integer is created specifying this block type. For this block, the value of
TYPE is 143.

UNACK Unacknowledged is a Boolean output parameter that is set True for notifi-
CP270 Only cation purposes whenever the block goes into alarm. It is settable, but sets
are only allowed to clear UNACK to False, and never in the
opposite direction. UNACK is cleared by an operator “acknowledge”
pick on a default display, a user display, or the alarms display.

UPDPER Update Period is a configurable, non-settable long integer that is used to


specify the update period for client/server connections scheduled by the
FBM228 to read the device function block View 1, View 2 and View 4
parameters. The range is 0 to 2147483647 milliseconds; the default is
10000.

313
B0193AX – Rev AB 12. BOUT – Binary Output Block

VALSTS Value Status is an output parameter of any DCI block that contains the
value status of a FOUNDATION fieldbus function block parameter value or
PROFIBUS-PA parameter provided by a DCI connection to a field
device. For other fieldbus types, VALSTS is meaningless.
Bits 0-1: Limits:
0 = Not limited
1 = High limited
2 = Low limited
3 = High and Low limited
Bits 2-5: Substatus (definition depends on Quality)
Bits 6-7: Quality:
0 = Bad
1 = Uncertain
2-3 = Good
Note: Bit 0 is the least significant, low order bit.
Each time the BOUT block is executed, VALSTS reports the status of the
FF or PROFIBUS-PA value from the information in the DCI connection.

314
12. BOUT – Binary Output Block B0193AX – Rev AB

12.5 Functions
12.5.1 Detailed Diagram

Holding Output to
Tracking Field Device
Periodic Output AND
OR

AND
IN Input
Selection  ECB Good
SET
FBM
MA AND Readback AND
Holding
OR Timer
Tracking
Expired
Reinitialize

FBM Read-Back Clear Timer Change


or Simulated Value 
Timer
(as selected per
SIMOPT)

IN.ACK
INITCO Up to INITI
PRIBLK Cascade
Open Cascade Processing BKCO
FBM Readback Up to
BKCO.Status BCALCI
PRITIM

ECB Status COUT Request.Status


COUT Read-back.Status
BKCO.Status

CP270 Only:

AND BAD Alarm


BAO

Figure 12-2. BOUT Block Operational Diagram

12.5.2 Associated ECBs


The configured parameter IOM_ID in the BOUT block specifies an ECB201 (the device ECB)
to connect to a field parameter that resides in a field device hosted by an ECB200 or ECB202 (the
FBM ECB).

315
B0193AX – Rev AB 12. BOUT – Binary Output Block

The PARENT parameter of the ECB201 specifies the associated FBM ECB hosting the field
device.
IOM_ID may also directly specify the parent FBM ECB to connect to a parameter resident in the
FBM itself.

12.5.3 DCI Connections


The BOUT block establishes one or two DCI connections to the specified ECB at any one of the
following times:
 When the block has just been installed.
 When the I/A Series control station in which it resides is rebooted.
 When a parameter of the block has been modified by the ICC or FoxCAE
configurator.
 When the block is deployed from IACC or the InFusion Engineering Environment
after modification.
 When a device or parent ECB specified by the BOUT block is installed.
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 most output
type blocks such as this one).
The BOUT block always establishes a DCI connection for parameter PNT_NO. If parameter
INI_PT is configured with a nonnull value, a second DCI connection is established for it.
The DCI connections are deleted (that is, the linkages are removed from the linked lists for the
ECB) when the BOUT block is deleted.
These parameter connections are made by the FBM on a client/server basis at the frequency spec-
ified in the UPDPER parameter. The parameter can be set from 0 to 2147483647 milliseconds;
the default is 10000 (10 seconds). Increasing the frequency of the client/server communication
can significantly add to the load on the H1 segment.

12.5.4 Output Point and Initialization Input Point


The device address of the output is configured as a string in PNT_NO. The device address of the
initialization input is configured as a string in INI_PT.
If PNT_NO is null, the BOUT block is set undefined at validation time, and processing does not
proceed further. INI_PT may be null if it is not used.
The formats of the PNT_NO and INI_PT parameters are device-specific. After the DCI connec-
tions have been made, the PNT_NO (and the INI_PT string, if it is used by the block) is passed
to the FBM for parsing and validation. (In DCI blocks, point identification strings are not parsed
by the I/A Series control station.)
If the first character of PNT_NO is blank, the PNT_NO string is not sent to the FBM, and the
block is set undefined, with ERCODE = 52. The detail display shows “W52 – INVALID I/O
CHANNEL/GROUP NUMBER”.
In each of the following cases, the block is also set undefined:

316
12. BOUT – Binary Output Block B0193AX – Rev AB

 If PRITIM = 0, the detail display shows “W48 – INVALID BLOCK OPTION” with
ERCODE = 48.
 If the FBM parsing algorithm finds that PNT_NO is invalid, the detail display shows
“W65 – INVALID POINT ADDRESS” with ERCODE = 65.
 If there is a duplicate connection to any point, the detail display shows “W66 –
DUPLICATE CONNECTION” with ERCODE = 66.
 If there is no available memory in the FBM, or if the maximum number of connec-
tions have been allocated in the FBM, the detail display shows “W67 –
INSUFFICIENT FBM MEMORY/CONNECTIONS” with ERCODE = 67.
 If the device connection is invalid, the detail display shows “W68 – INVALID
DEVICE CONNECTION” with ERCODE = 68.
 If the point connection is invalid, the detail display shows “W69 – INVALID POINT
CONNECTION” with ERCODE = 69.
In the following case, the block remains defined:
 If the connection is not yet resolved, the detail display shows “W62 – UNRE-
SOLVED CONNECTION” with ERCODE = 62.
If INI_PT is used, the tests described by the first six bullets above are repeated, but for INI_PT
rather than PNT_NO. The failure of any of these tests also causes the block to be set undefined.

12.5.5 Confirmed Output Parameters


As with most output parameters in DCI blocks, COUT is a confirmed output. A confirmed out-
put contains two components: a request value and a readback value. The request value is changed
by the I/A Series system end and sent to the external device, and the readback value is the value
read back each block cycle from the FBM.
In the BOUT block, the request value is made available for diagnostic purposes as parameter
COUTQ. (COUTQ is not shown on the detail display). Also, in the BOUT block, the readback
value is shown as parameter COUT.

12.5.6 Status of the Readback Value


The condition of the output readback in COUT, together with the status of the ECB, is deter-
mined each time the block is executed. The status bits of the COUT parameter are set according
to the following rules.
The status of COUT is set to Out-of-Service if one or more of the following conditions exist:
 The device ECB status indicates that the field device is Off-line or Out-of Service.
 The DCI connection cannot be configured, due to lack of configuration information
in the FBM database.
 The DCI is not yet connected.
 The DCI connection status information, which specifies the condition of the con-
nected device parameter, indicates Out-of-Service. This means (in general) that the
parameter value is unavailable from the field device.
 The status information indicates Disconnected, meaning (in general) that the param-
eter is not connected or not defined.

317
B0193AX – Rev AB 12. BOUT – Binary Output Block

 The connection status information indicates that the connection is not yet resolved.
The detail display shows “W62 – UNRESOLVED CONNECTION”, with
ERCODE = 62.
 An ECB201 is specified and the ECB device status indicates that the DCI connection
is unresolved.
The status of COUT is set to Bad if:
 The device ECB status indicates that the field device has failed, or
 The DCI connection status information indicates a bad value regarding the field
device parameter.
The status of COUT is set to Error if the status information indicates an uncertain or question-
able value of the field device parameter.
The status of COUT is set to Fail-safe if the status information indicates that the addressed device
parameter is in fail-safe.
If COUT is not Bad or Out-of Service, the value of the readback becomes the new value of
COUT. Otherwise, the previous last good value of COUT is retained.
With I/A Series system software V8.4 and later, the BOUT block on an FCP270 or ZCP270
switches to Manual mode when COUT is set Bad, if MBADOP =1. The block remains in Auto is
MADBOP = 0.This option is not supported on any other control processors.

12.5.7 Auto/Manual Switching


The Auto/Manual mode selection arbitrates between inputs by the operator (Manual) and inputs
from the field (Auto). Parameters MA, INITMA, AUTSW, and MANSW are used to establish
the control mode of the BOUT block.
With I/A Series system software V8.4 and above, the BOUT block provides two additional con-
trols of the block mode on the FCP270 and ZCP270:
 When MANFS=1, the block switches to manual mode when the fail-safe is asserted to
allow recovery from FBM fail-safe at the block. The option only takes effect if MA is
unlinked. MANFS takes precedence over AUTSW and INITMA. Fail-safe in the
block is cleared as soon as the output is changed. For cascade operations, it is recom-
mended that MANFS be enabled in only one block.
 When MBADOP=1, the block switches to manual mode when either the output
value status is BAD or the IN value status is BAD.
These options are not supported on other control processors.

12.5.8 Fail-Safe Functions


Fail-safe support is based on the following parameters:
 FSOPTN – This configured value specifies the condition(s) under which fail-safe is to
be asserted.
 FSCOUT – This configured value specifies the fail-safe value that is to be used by the
FBM when any condition specified in FSOPTN exists.
 SETFS – This boolean constitutes a command to assert fail-safe. It is only observed
when the appropriate FSOPTN so specifies.

318
12. BOUT – Binary Output Block B0193AX – Rev AB

 MANFS (CP270 Only) – When set to true (MANFS=1), this parameter forces the
block to Manual mode when fail-safe is asserted.
The FSOPTN conditions are:
 Assert fail-safe when there is an input error at IN, as defined by EROPT (Bit 0)
 Assert fail-safe when the block parameter SETFS has been set True (Bit 1)
 Assert fail-safe, using the FSCOUT value, when communications between the I/A
Series control station and the FBM is lost (Bit 2). The block does not perform this
option; it is carried out by the FBM software. This option will be enabled only if fail-
safe is enabled at the FBM level via the FSENAB parameter in ECB200 or ECB202.
 Set the output BAD status if Input/Measurement Error (Bit 3). The block does not
perform this option; it is carried out by the FBM software.
 Set the output BAD status if SETFS is set (Bit 4). The block does not perform this
option; it is carried out by the FBM software.
 Set the output BAD status if CP_FBM communications failure (Bit 5). The block
does not perform this option; it is carried out by the FBM software. This option will
be enabled only if fail-safe is enabled at the FBM level via the FSENAB parameter in
ECB200 or ECB202.
FSOPTN is a bit map, thereby allowing combinations of conditions for fail-safe to be specified.
If any of the FSOPTN conditions exists, and COUT is not Bad or Out-of-Service, the fail-safe
value is sent to the FBM when the BOUT block is shut down. This happens when turning off the
compound containing the BOUT block and when deleting the BOUT block or the compound
containing the BOUT block from the CP database. The actions taken by the FBM (for example,
whether or not the FBM sends the fail-safe value to the field device) are unique to the particular
FBM subsystem. Refer to the subsystem user guide for descriptions on how fail-safe functionality
is implemented for specific FBM types.
In addition, the FSCOUT value is sent to the field device via the FBM when the CP is rebooted.
This action is independent of the FSOPTN configuration.
With I/A Series system software V8.4 and later, the BOUT block on an FCP270 or ZCP270
switches to Manual mode when fail-safe is asserted, if MANFS =1. The block remains in Auto is
MANFS = 0. This option is not supported on any other control processors.

12.5.9 Time Stamp


The time stamp (TSTAMP) parameter of the block is updated every time there is a change in the
COUT value. TSTAMP, which is expressed in units of milliseconds past midnight, is read from
the FBM when it is available there; otherwise, it is computed by the I/A Series control station.

NOTE
For a FOUNDATION fieldbus (FF) connection, a 4-byte ms since midnight time-
stamp is provided by the FF FBM and stored in the TSTAMP parameter.

319
B0193AX – Rev AB 12. BOUT – Binary Output Block

12.5.10 Conditions for Sending a Block Output


There are several conditions that cause a new output from the BOUT block:
 When a periodic output is required. Whenever SECTIM has been configured with a
positive value and there has been no output for SECTIM seconds, a block output is
forced and the secondary timer is reinitialized.
 When a condition for fail-safe has been met in this cycle, but was not met in the pre-
vious cycle (start of a fail-safe period)
 When a condition for fail-safe was present in the previous cycle but not in this cycle
(end of fail-safe period)
 When a condition for fail-safe presently exists, but the DCI connection status infor-
mation indicates that the device parameter is not now in fail-safe (unaccepted or
delayed response to a fail-safe command)
 When the connection status indicates that an initialization request exists this cycle,
but did not on the previous cycle (“start of an IR period”)
 When the connection status indicates that an initialization request does not exist this
cycle, but did on the previous cycle (“end of an IR period”)
 When the block is in Auto mode, and the value of IN has changed in this cycle
 When the block is in Manual mode, and the value of SET has been changed in this
cycle
 When this is an initialization cycle as defined in Section 12.5.16, including bad-to-
good transitions of IN when in Auto.

12.5.11 Sending the Output


When any of the first six conditions for sending a block output (listed in Section 12.5.10) exists,
the current value of SET (Manual) or IN (Auto) is sent to the external device point.
The Write Flag is then set in the output buffer. If the connection has an Initialization Request flag
set, the Initialization Acknowledge flag is also set in the output buffer. If the outputs are being
sent because of a fail-safe condition (see Section 12.5.10), the Fail-safe Request flag is also set in
the output buffer.

12.5.12 Status of Other Block Outputs


The Out-of Service and Bad status bits of the readback value in COUT are copied to the status of
COUT_request and BKCO. The Error and Fail-safe status bits of COUT are only copied to the
status of COUT_request.

12.5.13 PRIBLK and PRITIM Functionality


The Primary Block (PRIBLK) parameter indicates whether the BOUT block has a connection
from an upstream block (PRIBLK=1) or not (PRIBLK=0). Its value, together with that of the
Primary Cascade Timer (PRITIM), determines whether the BOUT block remains in Hold for a
fixed time delay, or ends the Hold after one cycle. Note that a Hold of one cycle only occurs dur-
ing initialization.

320
12. BOUT – Binary Output Block B0193AX – Rev AB

12.5.14 Change Timer


The purpose of the change timer is to facilitate monitoring by the block for an indication that the
external device point has received the most recent I/A Series system change. The block expects the
device to have received the new value within that time.
The timer is initialized to the configured value of RBKTIM (in seconds) each time a value is sent
to the external device. In each cycle thereafter, so long as there is no new output sent, the timer is
decremented and tested for expiration.
If the change timer expires, the current read-back value 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 Status of INI_PT


Transitions in the status of the initialization input INI_PT are used in determining whether block
initialization is required (see Section 12.5.17). This status is considered True if:
 The device value of INI_PT is True (the external device has requested that the block
go into Tracking), or
 The DCI connection status information indicates Initialization Request, Local Over-
ride, Fail-safe, or Open Cascade.

12.5.16 Initialization
The BOUT block initializes whenever the block is restarted, there is a bad-to-good transition of
the status of COUT, or there is a true-to-false transition in the status of INI_PT (see
Section 12.5.15).
Initialization action consists of setting the read-back value from the output point into IN, SET,
COUT, and COUT_request. The cascade is then opened to force an upstream initialization. See
Section 12.5.17. A block output is sent to the output point at this time.
If the block is in Auto mode, and there has been a bad-to-good transition in the status of IN, the
read-back value is set into IN, and the cascade is opened as above. The definition of Bad for the
status of IN depends on EROPT.

12.5.17 Cascade Processing


The cascade is opened when the block has initialized for any of the reasons listed in
Section 12.5.16. When the cascade is opened, INITCO, which should be connected to INITI
input of the block immediately upstream from the BOUT block (if there is an INITI parameter
in that block), is turned on. The status of BKCO, which should be connected to the BCALCI
input of the block immediately upstream, is set to indicate “open cascade.” The BOUT block
then goes into a Hold (see Section 12.5.18), thereby disallowing any output changes.

321
B0193AX – Rev AB 12. BOUT – Binary Output Block

The upstream block (the block connected to IN) is then commanded to run immediately. This
feature sets a Run flag in the header of the upstream block, causing the compound processor to
execute this block on the next BPC without regard to its period and phase.
If there is no support for cascade processing in the upstream block, configure PRIBLK = 0. In this
case, the cascade is held open for one cycle, after which the Hold is released. If closure of the cas-
cade is to occur after a specific timeout, configure PRIBLK = 1. In this case, PRITIM must be
configured with a nonzero value. The cascade is closed again after the PRITIM delay has expired.
(The BOUT block does not support the closed-loop ACK option for cascade closure. If PRIBLK
is True and PRITIM = 0, the block fails validation.)

12.5.18 Holding and Tracking


The block goes into Holding whenever IN is Bad, when COUT has Bad status, or when it is in
Auto mode with the cascade not closed.
The block goes into Tracking when the status of INI_PT is True and remains that way as long as
it remains True.
Ordinarily, no output changes are allowed while the block is in Holding or Tracking. The only
exception is when there has been a fail-safe request, as described earlier in Section 12.5.10.

12.5.19 Alarming (CP270 Only)


With I/A Series system software V8.4 and later, Bad I/O alarm detection and reporting are sup-
ported on the FCP270 and ZCP270. Alarming is not supported on any other control processors.
Bad alarm detection is enabled when the bad alarm option (BAO) is set.
A Bad alarm message is generated when the status of COUT is set Bad. The Bad alarm message is
sent to all devices in the bad alarm group specified by the BAG parameter. This message contains
text string identifying the input value (BAD), the descriptive text in the BAT parameter, and the
loop identifier in the LOOPID parameter.
When COUT is Bad, the following parameters and bits are set:
 BAD bit in the alarm status parameter (ALMSTA.BAD)
 UNACK parameter and the corresponding ALMSTA.UNACK bit.
 CRIT parameter and its corresponding ALMSTA.CRIT are set to the BAP parameter
value
 PRTYPE parameter and its corresponding ALMSTA.PRTYPE field are set to the Bad
alarm type.
When COUT becomes Good, a corresponding return-to-normal message is generated and sent to
all devices in the bad alarm group, and BAD, CRIT, PRTYPE and their corresponding fields in
ALMSTA are cleared.
The UNACK parameter and the ALMSTA.UNACK bit are cleared in these cases:
 When the alarm is acknowledged by an OM set operation at either the compound
level (by setting the compound UNACK=0) or at the block level (by setting the block
UNACK=0).
 When all input values return to good status and INHOPT is set appropriately.
 When the block is shut down.

322
12. BOUT – Binary Output Block B0193AX – Rev AB

When UNACK is cleared, an Alarm Acknowledge message is generated and sent to all devices in
the bad alarm group.
Alarm Inhibiting/Disabling are supported using a combination of the compound CINHIB
parameter and the INHOPT and INHIB parameters in the BOUT block, to allow the bad alarm
messages to be inhibited and/or the alarm detection to disabled dynamically.
When the Bad alarm is inhibited or disabled, an appropriate Alarm Disable message is generated
and sent to all devices in the respective alarm group. If the Alarm is unacknowledged, an Alarm
Acknowledge message is also sent to these devices., and the ALMSTA.INHIB bit is set.
When the Bad alarm is uninhibited or enabled, an appropriate Alarm Enable message is generated
and sent to all devices in the respective alarm group. If all alarms are uninhibited, the ALM-
STA.INHIB bit also is cleared.
The Alarm Message Regeneration Time Interval (AMRTIN) parameter specifies the rate at which
alarm messages are generated for alarm conditions that have not been cleared. The interval is spec-
ified in seconds. The configured interval is rounded up to the closest value that is an even multi-
ple of the station BPC. A value of 0 disables alarm message regeneration. Parameters NASDB and
NASOPT provide control of nuisance alarms by applying a delay (set in NASDB) to return-to-
normal condition (NASOPT = 0) or to alarm detection (NASOPT=1).
Refer to CP270 Integrated Control Software Concepts (B0700AG) additional information on alarm
generation and management.

323
B0193AX – Rev AB 12. BOUT – Binary Output Block

324
13. BOUTR – Redundant Binary
Output Block
This chapter covers the Redundant Binary Output (BOUTR) block’s basic operations, features,
parameters, and functions, fail-safe operations, and manual mode.

NOTE
CP270 Only indicates BOUTR features supported only on the Field Control
Processor 270 (FCP270) and Z-form Control Processor 270 (ZCP270) with
I/A Series system software V8.4 or later.

NOTE
The BOUTR block is currently only qualified for use with DCS FBMs for
Migration to Moore APACS™+ systems. For more information on these DCS
FBMs, refer to the DCS Fieldbus Modules for Migration of Moore APACS+ Systems
User’s Guide (B0700BK).

13.1 Overview
The Redundant Binary Output (BOUTR) block is a Distributed Control Interface (DCI) block.
(DCI blocks support connectivity of I/A Series control stations to various bus resident devices via
a general purpose interface.) BOUTR provides the control strategy with output capability for a
single digital output point directed to up to three external field devices. The BOUTR block also
continuously reports to the I/A Series system any changes made by the FBMs to the field device
value at these addresses.

13.2 Basic Operation


In the outbound direction, the BOUTR block accepts a binary value from the control strategy or
an operator set, and sends it to up to three addressed field devices. In the inbound direction, the
block’s confirmed output structure allows any change in value in the FBM to be read back by the
I/A Series block. Thus, the block logic permits changes to the point values to be made at either
end, with the two ends remaining in sync at all times.
When in Auto, the BOUTR 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 up
to three external field devices specified by the device identifier (DEVIDx) and point number
(COx_PT) parameters.

325
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block

Device and
Address
ARBOPT
Identifiers
ECBOPT

Cascade To Upstream
Processing Block
Inputs
from A Requested
I/A Series Write Output to
Points Redundant
Manual Input ECBs
M
Contact
Output

Up to 3
Point Readback Readback
Readback
Selection Processing
Values (Confirmed
Output)

ECB Fail-safe
Processing Fail-safe
Fail-safe

Fail-safe
Options
Figure 13-1. BOUTR Block Diagram

Output from BOUTR is change driven when you configure parameter Secondary Timer
(SECTIM) as 0.0. The block only writes to the device when a change occurs in the value of IN
(Auto) or SET (Manual). If SECTIM is nonzero, an output is also forced when no change-driven
output has occurred for SECTIM seconds.
The “confirmed” structure of the block output Contact Output (COUT) allows the value sent to
the field device address to be entered into the “request component” of COUT and allows the
value read back from the FBM to be reflected in the “confirmed component”. The value of
COUT as shown in displays, and as made available for connection to the control strategy, is
always the confirmed component. This is the value which has been written successfully to the
field device. The value that is sent to the field device as the request component of COUT is dis-
played at parameter Output Request (COUTQ) to aid in diagnostic testing. Signals that are read
back from the field devices are stored as connectable output parameters, CRBK_1, CRBK_2, and
CRBK_3.
A change timer mechanism is used to keep the I/A Series end synchronized with the device end. If
a new I/A Series value is not accepted by the device within a pre-determined time, the I/A Series
control station re-initializes its inputs and its output value. The output value is retained for future
comparison against readback values, but is not sent to the field device at this time.
The block uses the parameters Initialization Output (INITCO) and Back Calculated Contact
Out (BKCO) to alert upstream blocks to various abnormal situations, and for cascade handling.

326
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB

To force the I/A Series control station to Track during initialization procedures within the external
device, a specific signal intended for this purpose is made available to the BOUTR block at a con-
figured Initialization Point Number (INI_PT) within the external device.
With I/A Series system software V8.4 and later, the BOUTR block provides Bad I/O alarm detec-
tion and reporting on the FCP270 and ZCP270. The BOUTR block does not provide alarming
on other control processors. If alarms are desired, a separate CIN block can be used with a con-
nection to the COUT parameter of the BOUTR block.

13.3 Features
The BOUTR block provides the following features:
 Drives up to three redundant binary signals to field devices
 Confirms one, two, or three binary values from associated external field devices, and
arbitrates between these redundant points
 Manual mode availability for disconnecting the process from the control scheme, for
simulation and checkout purposes
 Separate block inputs for use in Auto and Manual
 Specification of external device destination points as device-specific strings
 Simulation mode to permit block configuration without ECB/DCI connections
 Output written to devices only when output value changes
 Optional periodic outputs added to change-driven outputs
 Output values that are displayed as readback values
 Change timer that assures initialization to external device value
 Fail-safe support
 Specific point reserved for tracking notification from external device
 “Open cascade” notification to upstream blocks.
 Bad I/O alarm detection and reporting (CP270 Only)
 Option to have the block switch to manual when input or readback status is Bad
(CP270 Only)
 Option to have the block switch to manual when fail-safe is asserted (CP270 Only).

327
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block

13.4 Parameters
Table 13-1. BOUTR Block Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set 2 blanks 1 to 12 characters
TYPE block type short integer no-con/no-set BOUTR_TYPE 111
DESCRP block description string no-con/no-set 2 blanks 1 to 32 chars
PERIOD block sample time short integer no-con/no-set 1 0 to10, and 13 for CPs,
0 to 12 for Gateways
PHASE block execution phase short integer no-con/no-set 0 (period specific)
LOOPID loop/unit/batch identifier string no-con/set 2 blanks 1 to 32 characters
IOMID1 primary ecb address string no-con/no-set 2 blanks up to 32 characters
IOMID2 secondary ecb address string no-con/no-set 2 blanks up to 32 characters
IOMID3 tertiary ecb address string no-con/no-set 2 blanks up to 32 characters
CO1_PT boolean output 1 address string no-con/no-set blank device specific
CO2_PT boolean output 2 address string no-con/no-set blank device specific
CO3_PT boolean output 3 address string no-con/no-set blank device specific
UPDPER update period long no-con/no-set 10000 0-2147483647
MA manual/auto switch boolean con/set 0 0 to 1
INITMA initialize manual/auto short integer no-con/no-set 1 0 to 2
ARBOPT arbitration option boolean no-con/no-set 0 0 = dual redundant
1 = triple redundant
ECBOPT redundant ecb option boolean no-con/no-set 0 0 = non-redundant ecbs
1 = redundant ecbs
AUTSW auto override switch boolean con/set 0 0 to 1
EROPT error option short integer no-con/no-set 0 0 to 2
FSOPTN fail-safe option short integer no-con/no-set 0 bit map (see text)
IN binary input boolean con/set 0 0 to 1
INI_PT initialize point number string no-con/no-set 2 blanks device specific
MANSW manual override switch boolean con/set 0 0 to 1
PRIBLK primary block option short integer no-con/no-set 0 0 to 1
PRITIM primary cascade timer real no-con/no-set 0.0 seconds
RBKTIM readback timer real no-con/no-set 5.0 seconds
SECTIM secondary timer real no-con/no-set 0.0 seconds
SELOPT select option short integer no-con/no-set 0 0 to 3
SIMOPT simulation option boolean no-con/no-set 0 0 = no simulation
1 = simulation
MANFS manual if fail-safe boolean no-con/no-set 0 0 to 1
MBADOP manual if bad option boolean no-con/no-set 0 0 to 1
INHOPT inhibit option short no-con/no-set 0 0 to 3
INHIB alarm inhibit boolean con/set 0 0 to 1
BAO bad alarm option boolean no-con/no-set 0 0 to 1
BAT bad alarm text string no-con/no-set blank 1 to 32 chars
BAP bad alarm priority integer con/set 5 1 to 5
BAG bad alarm group short no-con/set 1 1 to 8

328
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB

Table 13-1. BOUTR Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


AMRTIN alarm regeneration timer integer no-con/no-set 0 0 to32767 sec
SETFS set fail-safe request boolean con/set 0 0 to 1
OUTPUTS
FSCOUT fail-safe boolean output boolean con/no-set 0 0 to 1
Non-Configurable Parameters
OUTPUTS
ACHNGE alternate change integer con/no-set 0 -32768 to 32767
ALMSTA alarm status packed long con/no-set 0 bit map
BKCO back calculated output boolean con/no-set 0 0 to 1
BLKSTA block status packed long con/no-set 0 0-0xFFFFFFFF
COUT contact output boolean con/no-set 0 0 to 1
COUTQ contact output request boolean no-con/no-set 0 (shadow)
CRBK_1 primary boolean readback boolean con/no-set 0 0 to 1
CRBK_2 secondary boolean read- boolean con/no-set 0 0 to 1
back
CRBK_3 tertiary boolean readback boolean con/no-set 0 0 to 1
CRIT alarm criticality integer con/no-set 0 0 to 5
INHSTA inhibit status packed long con/no-set 0 0 to 0xFFFFFFFF
INITCO initialize output boolean con/no-set 0 0 to 1
PRTYPE priority type integer con/no-set 0 0 to 8
SELECT selection indicator short con/no-set 0 0 to 3
SET manual set request boolean con/set 0 0 to 1
TSTAMP time stamp long integer con/no-set 0 ms after midnight
UNACK unacknowledged alarm boolean con/no-set 0 0 to 1
VALSTS value status integer con/no-set 0 0-0xFFFF
DATA STORES
ALMOPT alarm options packed long no-con/no-set 0 0 to 0xFFFFFFFF
DEFINE no config errors boolean no-con/no-set 1 0 to 1
DEVID1 primary device identifier character no-con/no-set 2 blanks 1 to 6 characters
DEVID2 secondary device identifier character no-con/no-set 2 blanks 1 to 6 characters
DEVID3 tertiary device identifier character no-con/no-set 2 blanks 1 to 6 characters
ERCODE configuration error string no-con/no-set 2 blanks 1 to 43 chars (see text)
LOCKID lock identifier string no-con/set 2 blanks 8 to 13 chars
LOCKRQ lock request boolean no-con/set 0 0 to 1
OWNER owner name string no-con/set 2 blanks 1 to 32 characters

13.4.1 Parameter Definitions


Parameters marked CP270 Only are supported only on the Field Control Processor 270 (FCP270)
and Z-form Control Processor 270 (ZCP270) with I/A Series system software V8.4 or later. The
parameters are ignored on other control stations.

ACHNGE Alternate Change is an integer output which is incremented each time a


block parameter is changed via a Set command.

329
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block

ALMOPT Alarm Options contain packed long values representing the alarm types
CP270 Only that have been configured as options in the block, and the alarm groups
that are in use. Table 13-2 shows how the parameter is used by the
BOUTR block.

Table 13-2. ALMOPT Parameter Format

Bit Number1
(0 to 31) Configured Alarm Option, When True
0 (lsb) Alarm Group 8 in Use
1 Alarm Group 7 in Use
2 Alarm Group 6 in Use
3 Alarm Group 5 in Use
4 Alarm Group 4 in Use
5 Alarm Group 3 in Use
6 Alarm Group 2 in Use
7 Alarm Group 1 in Use
22 Bad I/O Alarm Configured
1. Bit 0 is the least significant, low order bit.

ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
CP270 Only states. Table 13-3 shows the bits used by the BOUTR block.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
B4
B5
B6
B7
B8
B9

CRIT PRTYPE
BAD
INH

Table 13-3. ALMSTA Parameter Format

Bit Boolean
Number Description, Connection
(0 to 31)* Name When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type ---
5 to 7 CRIT_MSK Criticality: 1 (highest priority) to 5 ---
22 BAD Bad I/O Alarm ALMSTA.B10
29 INH Inhibit Alarm. This bit is set when any of ALMSTA.B3
the block’s alarms is inhibited
30 UNAK Unacknowledged ALMSTA.B2
*Bit 0 is the least significant, low order bit.

330
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB

AMRTIN Alarm Message Regeneration Time Interval specifies the rate at which
CP270 Only alarm messages are generated for alarm conditions that have not been
cleared. The interval is specified in seconds. The configured interval is
rounded up to the closest value that is an even multiple of the station
BPC. A value of 0 disables alarm message regeneration.

ARBOPT Arbitration Option is a boolean input that specifies dual redundancy


(DMR) or triple redundancy (TMR)
 0 = False = DMR.
 1 = True = TMR.

AUTSW Auto Switch, when true, forces the block mode into Auto mode. It is of
higher priority than configured, set, or linked values in MA, or the value
of INITMA. It is of lower priority than MANSW, however. If both
MANSW and AUTSW are true, the block mode is forced to Manual.

BAG Bad Alarm Group is a configurable, non-settable short integer parameter


CP270 Only used to specify the Alarm Group to be used for reporting Bad Alarm
messages in the block. The range is 1 (default) to 8.

BAO Bad Alarm Option is a configurable, non-settable Boolean parameter used


CP270 Only to specify whether or not Bad Alarming is to be performed in the block:
 0 (default) disables Bad Alarming
 1 enables Bad Alarming.

BAP Bad Alarm Priority is a configurable integer input used to specify the
CP270 Only Alarm Priority to be assigned to Bad Alarms in the block. BADPRI is
settable if unlinked. The range is 1 (highest) to 5 (default).

BAT Bad Alarm Text is a configurable, non-settable ASCII string of up to


CP270 Only 32 characters used as descriptive text in Bad Alarm messages in the block.

BKCO Back Calculated Contact Output is set equal to the confirmed component
of COUT while the cascade is initializing. Since its purpose is to provide
the upstream block with a back-calculated value, you should connect
BKCO to the BCALCI parameter of that block.

BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the BOUTR block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
FBM3 B22
FBM2 B23
FBM1 B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
DCIX B9
MAO

HLD
TRK
MA
ON
FS

331
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block

Bit Number* Boolean Connection


(0 to 31) Name Description When True (B32 to B1)
6 TRK Device initializing BLKSTA.B26
7 HLD Block output holding BLKSTA.B25
8 FBM1 Bad status of primary ECB BLKSTA.B24
9 FBM2 Bad status of secondary ECB BLKSTA.B23
10 FBM3 Bad status of tertiary ECB BLKSTA.B22
11 MA Manual = 0, Auto = 1 BLKSTA.B21
14 UDEF Block Undefined BLKSTA.B18
15 ON Block On BLKSTA.B17
20 WLCK Access Locked BLKSTA.B12
23 DCIX Enhanced DCI block (CP270 Only) BLKSTA.B9
24 FS Fail-Safe Active BLKSTA.B8
26 MAO M/A Override Active BLKSTA.B6
* Bit 0 is the least significant, low order bit.

CO1_PT Primary Point Number identifies the address in the primary external
device’s memory (or data stream) to which the block output is directed.
This parameter’s syntax depends on the made and model of the external
device.

CO2_PT Secondary Point Number identifies the address in the secondary external
device’s memory (or data stream) to which the block output is directed.
This parameter’s syntax depends on the made and model of the external
device.

CO3_PT Tertiary Point Number identifies the address in the secondary external
device’s memory (or data stream) to which the block output is directed.
This parameter’s syntax depends on the made and model of the external
device.

COUT Contact Output is the value sent from the block to the connected field
devices at points CO1_PT, CO2_PT, and/or CO3_PT. The displayed
value of COUT is always the confirmed component after the arbitration
algorithm selects one of the readback values.

COUTQ Output Request displays the value of the request component of the block
output for diagnostic purposes. It is not configurable.

CRBK_1 The primary boolean readback value is the confirmed value that has been
written successfully to the primary field device at address CO1_PT.

CRBK_2 The secondary boolean readback value is the confirmed value that has
been written successfully to the secondary field device at address
CO2_PT.

332
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB

CRBK_3 The tertiary boolean readback value is the confirmed value that has been
written successfully to the tertiary field device at address CO3_PT.

CRIT Criticality is an integer output that indicates the priority of the block’s
CP270 Only highest currently active alarm. The range is 1 (highest priority) to 5. An
output of 0 indicates the absence of alarms.

DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. (See ERCODE for the list of all possible validation errors in this
block.) In that case, no further processing of the block occurs, including
further validation of remaining parameters. To return DEFINE to a true
value, correct all configuration errors and reinstall the block. If DEFINE =
0, the bit BLKSTA.UDEF = 1.

DESCRP Description is a user-defined string of up to 32 characters used to describe


the block’s function (for example, “PLT 3 FURNACE 2 HEATER
CONTROL”).

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.

ECBOPT Redundant ECB Option specifies whether a single device ECB is to be


used for all output points, or each output point is associated with a sepa-
rate device ECB. The latter is required if the redundant output points are
in different devices.
If ECBOPT is 0 (false), only one device ECB is used for all outputs and is
specified by IOMID1 (IOMID2 and IOMID3 are ignored).
If ECBOPT is 1 (true), then either two or three separate device ECBs are
used depending on whether dual or triple redundancy is specified. This
decision is based on the configured parameter ARBOPT, which specifies
the use of either dual or triple redundancy.

ERCODE Error Code is a string data store that indicates the type of configuration
error that caused the block’s DEFINE parameter to be set false, unless
indicated otherwise (see meanings below). Validation of configuration
errors does not proceed past the first error encountered by the block logic.

333
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block

For the BOUTR block, the following list specifies the possible values of
ERCODE and the significance of each value in this block.

ERCODE Message Meaning


W48 – INVALID BLOCK “PRITIM = zero” is not allowed.
OPTION
W52 – INVALID I/O CO1_PT, CO2_PT, or CO3_PT
CHANNEL/GROUP NO. string is blank, and should be con-
figured according to other parame-
ters’ settings.
W62 – UNRESOLVED Connection is not yet resolved.
CONNECTION (Block remains defined.)
W65 – INVALID POINT FBM parsing algorithm finds that a
ADDRESS used COx_PT is invalid.
W66 – DUPLICATE There is a duplicate connection to
CONNECTION a particular point.
W67 – INSUFFICIENT FBM There is no available memory or
MEMORY/CONNECTIONS point connections in the FBM.
W68 – INVALID DEVICE The device connection is invalid.
CONNECTION
W69 – INVALID POINT The point connection is invalid.
CONNECTION

EROPT Error Option is a short integer option that determines the conditions
under which IN is considered to have bad status. It is used in determining
whether there has been a bad-to-good transition of IN.
If EROPT = 1, IN is considered Bad if its status word indicates Bad, Out-
of-Service, or Not On Scan. (If it is Not On Scan, then the source of the
connection has been deleted or is in a nonexistent compound, or there has
been a peer-to-peer failure.)
If EROPT = 2, IN is considered Bad in any of the above situations, and
when the Error bit in the status of IN is True.

FSCOUT Fail-safe Contact Output is the fail-safe value sent to the external device(s)
when any condition specified in FSOPTN exists. This parameter causes
the field devices to assert fail-safe. The FSCOUT value is also used to set
the initial output value when the BOUTR block is installed or when the
control processor is rebooted.

FSOPTN Fail-Safe Option is a configurable bit-mapped option that specifies the


fail-safe conditions under which the external device will receive a fail-safe
value from the I/A Series system:
 Bit 0: 1 = assert fail-safe if input/measurement error, that is, if
there is an input error in IN. Note that EROPT must be config-
ured nonzero for this option to take effect.

334
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB

 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.

IN Binary Input is the value normally passed to COUT on a change-driven


basis when the block is in Auto mode. Readback changes and change
timer action can override the value specified by IN.

INHIB Inhibit is a configurable, connectable and settable boolean that, when set,
CP270 Only suppresses all alarm message reporting. INHIB affects only alarm message
reporting; the alarm handling and detection functions are determined by
the INHOPT setting.

INHOPT Inhibit Option specifies the following actions applying to all block alarms:
CP270 Only  0 = When an alarm is inhibited, disables alarm messages but does
not disable alarm detection.
 1 = When an alarm is inhibited, disables both alarm messages and
alarm detection. If an alarm condition exists at the time the alarm
transitions into the inhibited state, the alarm indicator is cleared.
 2 = Same as 0 for inhibited alarms. For uninhibited alarms,
automatically acknowledges “return-to-normal” messages.
“Into alarm” messages can be acknowledged by explicitly setting
UNACK False.
 3 = Same as 1 for inhibited alarms. For uninhibited alarms,
automatically acknowledges “return-to-normal” messages.
“Into alarm” messages can be acknowledged by explicitly setting
UNACK False.

INHSTA Inhibit Status contains packed long values that represent the current
CP270 Only inhibit status of each alarm type configured in the block. Table 13-4
shows how the parameter is used with the AI block.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BAD B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

335
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block

Table 13-4. INHSTA Parameter Format

Bit Boolean
Number* Description, Connection
(0 to 31) Name When True (B32 to B1)
22 BAD Bad I/O Alarm Inhibited INHSTA.B10
*Bit 0 is the least significant, low order bit.

INITCO Initialization Output is a cascade initialization signal which is set true by


the block logic whenever the cascade is opened. You should connect
INITCO to the INITI input of the upstream block. The BOUTR block
keeps INITCO true for one cycle if PRIBLK = 0 or for a fixed time delay
(if PRIBLK = 1 and PRITIM = nonzero).

INITMA Initialize Manual/Auto specifies the desired state of the MA input under
certain initialization conditions, namely:
 The block has just been installed into the I/A Series control station
database.
 The I/A Series control station is rebooted.
 The compound in which the block resides is turned on.
 The INITMA parameter is modified via the Integrated Control
Configurator.
INITMA is ignored if MA has an established linkage.
When INITMA is asserted, the value set into MA is:
 0 (Manual) if INITMA = 0
 1 (Auto) if INITMA = 1
 The MA value from the checkpoint file if INITMA = 2.

INI_PT Initialize Address is a configurable string that specifies the point address of
an optional Boolean input connection in the BOUTR block. If INI_PT is
used, the block output tracks the readback value when this input Boolean
value is set. On a transition of this input value to zero, if PRIBLK is used,
the I/A Series cascade is initialized.

IOMID1 Primary ECB Identifier is a configurable string that specifies the path-
name of the ECB201 for the primary device, for the purpose of connect-
ing to (accessing) a field parameter that resides in the primary field device
hosted by a (parent) FBM ECB.
IOMID1 has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOMID1 configuration. In this case, the 1-12
character ECB block name is sufficient.

336
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB

IOMID2 Secondary ECB Identifier is a configurable string that specifies the path-
name of the ECB201 for the secondary device, for the purpose of connect-
ing to (accessing) a field parameter that resides in the secondary field
device hosted by a (parent) FBM ECB.
IOMID2 must be configured when dual or triple redundancy is specified.
For other details, see IOMID1 above.

IOMID3 Tertiary ECB Identifier is a configurable string that specifies the pathname
of the ECB201 for the tertiary device, for the purpose of connecting to
(accessing) a field parameter that resides in the tertiary field device hosted
by a (parent) FBM ECB.
IOMID3 must be configured when triple redundancy is specified. For
other details, see IOMID1 above.

LOCKID Lock Identifier is a string identifying the workstation that has exclusive
write access to the block. LOCKID arbitrates write access to the block
parameters by operator workstations on the network. Set requests to any
of the block’s parameters are honored only if the identifier of the worksta-
tion requesting the changes matches the identifier set in LOCKID.
The lock request message sets LOCKRQ to true and sets LOCKID to the
identifier of the requesting workstation. The corresponding lock release
message sets LOCKRQ to false and LOCKID to null.
LOCKID has the format Letterbug:DeviceName, where Letterbug is the
6-character letterbug of the workstation and DeviceName is the 1 to 6
character logical device name of the Display Manager task.

LOCKRQ Lock Request is a boolean value that is set true or false by a toggling the
LOCK U/L key on the Block Detail Display. An operator at any worksta-
tion can lock and unlock the block using the LOCK U/L key.
The lock request message sets LOCKRQ to true, sets LOCKID to the
identifier of the requesting workstation, and sets the WLCK bit in the
BLKSTA parameter. Thereafter, set requests to any of the block’s parame-
ters are honored (subject to the usual access rules) only if the requesting
workstation’s identifier matches the contents of LOCKID.
The corresponding lock release message sets LOCKRQ to false, sets
LOCKID to null, and resets the WLCK bit.

LOOPID Loop Identifier is a configurable string of up to 32 characters that identi-


fies the loop or process with which the block is associated. It is displayed
on the detail display of the block, immediately below the faceplate.

MA Manual/Auto is a boolean input that controls the block’s operating state:


 0 = False = Manual
 1 = True = Auto
When in Auto mode, the block is taken from IN, usually from the
upstream connection. In Manual mode, the input is taken from SET, usu-
ally via operator sets.

337
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block

MANFS Manual if Fail-safe allows recovery from FBM fail-safe at the block in
CP270 Only which MANFS is set. If MANFS = 1, the output state is forced to manual
mode when the block detects the FBM being in fail-safe. The option only
takes effect if MA is unlinked. MANFS takes precedence over AUTSW
and INITMA.
Fail-safe in the block is cleared as soon as the output is changed.
For cascade operations, it is recommended that MANFS be enabled in
only one block.

MANSW Manual Switch, when true, forces the block into Manual mode. It is of
higher priority than any other method of establishing the value MA, since
it overrides configured, set, or linked values. MANSW is also of higher
priority than AUTSW or INITMA.

MBADOP Manual if Bad Option is manual override feature which, when set TRUE,
CP270 Only causes the block to go into Manual mode if the output value status is BAD
or IN value status is BAD.

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

OWNER Owner is a string of up to 32 ASCII characters used to allocate control


blocks to applications. Attempts to set OWNER are successful only if the
present value of OWNER is the null string, an all-blank string, or identi-
cal 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.

PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For CP stations, PERIOD values range
from 0 to 10, and 13, and map to the time lengths shown in the following
table. For Gateways and Integrators, PERIOD values range from 0 to 12
and map to the time lengths specified in the device specific user’s guide.

Period Length Period Length


0 0.1 second 7 10 minutes
1 0.5 second* 8 60 minutes
2 1.0 second 9 0.2 second
3 2.0 seconds 10 5.0 seconds**
4 10 seconds 11*** ----
5 30 seconds 12*** ----
6 1 minute 13**** 0.05 second

* If the BPC is 0.2 second, this period is treated internally as 0.6 second, but
the PERIOD parameter remains 1.

338
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB

** If the BPC is 2.0 seconds, this period is treated internally as 6.0 seconds, but
the PERIOD parameter remains 10.
*** Not available for CP stations.
****Available in CP40, CP40B, CP60 and later control processors.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 seconds) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the
I/A Series station is 0.5 second. Refer to the appropriate Integrated Control
Software Concepts document (B0700AG or B0193AW).

PRIBLK Primary Block indicates whether the BOUTR block has a connection
from an upstream block (PRIBLK = 1) or not (PRIBLK = 0). Its value,
together with that of PRITIM, determines whether the BOUTR block
remains in Hold for a fixed time delay, or ends the Hold after one cycle.
Note that if PRIBLK is set true, PRITIM must be set to a non-zero value;
otherwise, the BOUTR block fails validation.
Use PRIBLK in a cascade situation when the source of the block's input
connection needs to be initialized.
Refer to “PRIBLK and PRITIM Functionality” on page 348 for more
information on this parameter.

PRITIM Primary Cascade Timer is a configurable parameter used to delay the clos-
ing of the cascade to a primary block, when the output is initialized in the
BOUTR block. It is used only if the PRIBLK option is set. Note that if
PRIBLK is set true, PRITIM must be set to a non-zero value; otherwise,
the BOUTR block fails validation.
Refer to “PRIBLK and PRITIM Functionality” on page 348 for more
information on this parameter.

PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
CP270 Only of the highest priority active alarm. For the BOUTR block:
 0 = No alarm
 8 = Bad I/O alarm.

RBKTIM Readback Timer is a configurable parameter used to time out changes


made by I/A Series system to the output of the BOUTR block. If the out-
put change is not confirmed within the allowable timeout, the output is
re-initialized to the readback value. Its default value is 5.0 seconds, but
you can configure different values to accommodate different response
times from the external device.

SECTIM Secondary Timer is a configurable parameter used to force the output of


the BOUTR block to be written periodically to the FBM, regardless of
whether or not the output has changed. It can be used to prevent the
assertion of fail-safe action under normal operating conditions.

339
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block

SELECT Selection Indicator shows which redundant readback value has been cho-
sen by the arbitration algorithm:
 0 = none of the input values is selected, SELOPT is used.
 1 = primary readback value CRBK_1 is selected
 2 = secondary readback value CRBK_2 is selected
 3 = tertiary readback value CRBK_3 is selected.

SELOPT Selection Option is a configurable option that specifies the criteria for
selecting a readback value in the BOUTR block when the arbitration algo-
rithm cannot resolve the choice. For the BOUTR block:
 0 = COUT_readback retains its previous value
 1 = COUT_readback is set false
 2 = COUT_readback is set true.

SET Set is the value normally passed to COUT, on a change-driven basis, when
the block is in Manual mode. Readback changes and change timer action
can override the value specified by SET.

SETFS Set Fail-Safe Request is a configurable Boolean parameter that requests


fail-safe action to be set/reset by the FBM and/or field device for the spe-
cific output value of the BOUTR block:
 0 = reset fail-safe request
 1 = set fail-safe request.

SIMOPT Simulation Option is a configurable parameter that specifies whether the


DCI block input/output value is to be simulated. In the DCI BOUTR
block, the block output is stored into its read-back values to simulate con-
firmation by the FBM.

TSTAMP The Time Stamp parameter of the block is updated every time there is a
change in the COUT value (that is, if COUT differs from the current
readback value). TSTAMP, which is expressed in units of milliseconds past
midnight, is read from the FBM, when it is available there; otherwise, it is
computed by the control station. TSTAMP is not updated when SELECT
= 0; it is left at its last good value.

TYPE When you enter BOUTR or select it from a configurator list, an identify-
ing integer is created specifying this block type. For this block, the value of
TYPE is 111.

UNACK Unacknowledged is a Boolean output parameter that is set True for notifi-
CP270 Only cation purposes whenever the block goes into alarm. It is settable, but sets
are only allowed to clear UNACK to False, and never in the
opposite direction. UNACK is cleared by an operator “acknowledge”
pick on a default display, a user display, or the alarms display.

UPDPER Update Period is a configurable, non-settable long integer that is used to


specify the update period for client/server connections scheduled by the

340
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB

FBM228 to read the device function block View 1, View 2 and View 4
parameters. The range is 0 to 2147483647 milliseconds; the default is
10000.

VALSTS Value Status is an output parameter of any DCI block that contains the
value status of a FOUNDATION fieldbus function block parameter value or
PROFIBUS-PA parameter provided by a DCI connection to a field
device. For other fieldbus types, VALSTS is meaningless.
Bits 0-1: Limits:
0 = Not limited
1 = High limited
2 = Low limited
3 = High and Low limited
Bits 2-5: Substatus (definition depends on Quality)
Bits 6-7: Quality:
0 = Bad
1 = Uncertain
2-3 = Good
Note: Bit 0 is the least significant, low order bit.
Each time the BOUTR block is executed, VALSTS reports the status of
the FF or PROFIBUS-PA value from the information in the DCI connec-
tion.

341
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block

13.5 Functions
13.5.1 Detailed Diagram

ARBOPT Output to
ECBOPT Up to Three
Field Devices
0 IOMID1
CRBK_1
CO1_PT
IOMID2 Read
CO2_PT Back CRBK_2
SECTIM
AND Holding IOMID3
Tracking CO3_PT CRBK_3
AND COUT
OR (Confirmed)
1
A AND COUT
IN (Simulated)
ECB SIMOPT
SET  Good
M
Holding AND FBM
MA OR Readback
Tracking AND
SELOPT
CRBK_1 Timer
Arbitration SELECT
CRBK_2 Expired
CRBK_3 Algorithm Reinitialize
Clear Timer Change
Simulated 
Value Timer

SIMOPT
RBKTIM

PRIBLK
INITCO Up to INITI
Open Cascade Cascade
Processing BKCO Up to
Readback
PRITIM BKCO.Status BCALCI

ECB Status COUT_request.Status


COUT_readback.Status
BKCO.Status

Figure 13-2. BOUTR Block Operational Diagram

13.5.2 Associated ECBs


The configured parameters IOMID1, IOMID2, and IOMID3 in the BOUTR block specify one
or more ECB201s (device ECBs) that connect to field parameters residing in field devices hosted
by ECB200s or ECB202s (FBM ECBs).

342
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB

The PARENT parameter of each ECB201 specifies the associated FBM ECB hosting the field
device.
The IOMIDx can also directly specify parent FBM ECBs to output to parameter resident in the
FBMs themselves.

13.5.3 DCI Connections


The BOUTR block establishes up to four DCI connections to the specified ECBs at any one of
the following times:
 When the block has just been installed.
 When the I/A Series control station in which it resides is rebooted.
 When a parameter of the block has been modified by the ICC or FoxCAE
configurator.
 When a device or parent ECB specified by the BOUTR block is installed.
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 most output
type blocks such as this one).
The following table shows the DCI connections (for the output points) for all combinations of
ECBOPT and ARBOPT:
ECBOPT = 0 ARBOPT = 0 (DMR) 2 DCI connections to one ECB
ECBOPT = 0 ARBOPT = 1 (TMR) 3 DCI connections to one ECB
ECBOPT = 1 ARBOPT = 0 (DMR) 2 DCI connections to two ECBs
ECBOPT = 1 ARBOPT = 1 (TMR) 3 DCI connections to three ECBs

In addition to the output point DCI connections, one additional DCI connection is established
whenever the initialization input point INI_PT has been configured with a non-null value. This
connection is always to the ECB used by the first of the output points (CO1_PT).
These parameter connections are made by the FBM on a client/server basis at the frequency spec-
ified in the UPDPER parameter. The parameter can be set from 0 to 2147483647 milliseconds;
the default is 10000 (10 seconds). Increasing the frequency of the client/server communication
can significantly add to the load on the H1 segment.
The DCI connections are deleted (that is, the linkages are removed from the linked lists for the
ECB) when the BOUTR block is deleted.

13.5.4 Output Point and Initialization Input Point


The device addresses of the outputs are configured as strings in the CO1_PT, CO2_PT, and
CO3_PT. The device address of the initialization input is configured as a string in INI_PT.
When ARBOPT is 0 (DMR), neither CO1_PT nor CO2_PT can be null, and CO3_PT is
ignored. When ARBOPT is 1 (TMR), CO1_PT, CO2_PT, and CO3_PT must all be non-null.
These checks are made during block validation; violations of these rules cause the BOUTR block
to be set undefined, and processing does not proceed further. INI_PT may be null if it is not used.

343
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block

The formats of the COx_PT and INI_PT parameters are device specific. When the PIO mainte-
nance task runs after the DCI connections have been made (see Section 13.5.3), the COx_PT
and INI_PT strings that are used by the block are passed to the FBM for parsing and validation.
(In DCI blocks, point identification strings are not parsed by the I/A Series control station.)
If the first character of either CO1_PT or CO2_PT is blank, the COx_PT string is not sent to
the FBM, and the block is set undefined with ERCODE = 52. Similarly, if the first character of
any used CO3_PT or INI_PT is blank, the associated string is not sent to the FBM, and the
block is set undefined with ERCODE = 52. The detail display shows “W52 – INVALID I/O
CHANNEL/GROUP NUMBER”.
In each of the following cases, the block is also set undefined:
 If the FBM parsing algorithm finds that CO1_PT is invalid, the detail display shows
“W65 – INVALID POINT ADDRESS” with ERCODE = 65.
 If there is a duplicate connection to any point, the detail display shows “W66 –
DUPLICATE CONNECTION” with ERCODE = 66.
 If there is no available memory in the FBM, or if the maximum number of connec-
tions have been allocated in the FBM, the detail display shows “W67 –
INSUFFICIENT FBM MEMORY/CONNECTIONS” with ERCODE = 67.
 If the device connection is invalid, the detail display shows “W68 – INVALID
DEVICE CONNECTION” with ERCODE = 68.
 If the point connection is invalid, the detail display shows “W69 – INVALID POINT
CONNECTION” with ERCODE = 69.
In the following case, the block remains defined:
 If the connection is not yet resolved, the detail display shows “W62 – UNRE-
SOLVED CONNECTION” with ERCODE = 62.
If INI_PT is used, the tests described by the first six bullets above are repeated, but for INI_PT
rather than COx_PT. The failure of any of these tests also causes the block to be set undefined.

13.5.5 Confirmed Output Parameters


As with most output parameters in DCI blocks, COUT is a confirmed output. A confirmed out-
put contains two components: a request value and a read-back value. The request value is changed
by the I/A Series system end and sent to the external device, and the read-back value is the value
read from or sent back by the external device.
In the BOUTR block, the request value is made available for diagnostic purposes as parameter
COUTQ. (COUTQ is not shown on the detail display). Also, in the BOUTR block, the read-
back value is first arbitrated from the readback values received from the redundant output points,
and then shown as parameter COUT.
The following documentation convention is used: if the name of a confirmed parameter is, for
example, PARM, then its request value is referred to as PARM_request and its read-back value is
referred to as PARM_readback.

344
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB

13.5.6 Status of the Readback Values


The statuses of the redundant output readback values CRBK_1 and CRBK_2, together with the
statuses of their ECB(s), are determined each time the block is executed. If ARBOPT specifies
TMR, there is a similar determination for the statuses of the CRBK_3 readback value and its
ECB. For each of the two or three readback values, the status of its CRBK_x parameter is set
according to the following rules.
The status of CRBK_x is set to out-of-service if one or more of the following conditions exist:
 The device ECB status indicates that the field device is off-line or out-of-service.
 The DCI connection cannot be configured due to lack of configuration information
in the FBM database.
 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, as described in
Section 13.5.3).
 The DCI connection status information, which specifies the condition of the con-
nected device parameter, indicates out-of-service. This means (in general) that the
parameter value is unavailable from the field device.
 The status information indicates Disconnected, meaning (in general) that the param-
eter 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 CRBK_x is set to Bad if:
 The device ECB status indicates that the field device has failed, or
 The DCI connection status information indicates a bad value of the field device
parameter.
The status of CRBK_x is set to Error if the status information indicates an uncertain or question-
able value of the field device parameter.
The status of CRBK_x is set to Fail-safe if the status information indicates that the addressed
device parameter is in fail-safe.
If CRBK_x is not bad or out-of-service, the value of the input becomes the new value of
CRBK_x. Otherwise, the previous last good value of CRBK_x is retained.
The values and statuses of the individual CRBK_x parameters are available in the three output
parameters, and, in addition, they are used as the inputs in the arbitration algorithm (see below).

13.5.7 Arbitration Algorithm


CRBK_1, CRBK_2, and CRBK_3 each has a value and status, as described in the previous sec-
tion. In the table below, a CRBK_x is valid if its status is neither bad nor out-of-service. Also, if
ARBOPT indicates DMR, CRBK_3 is never valid.

345
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block

CRBK_1 CRBK_2 CRBK_3


Valid Valid Valid Test Select
Yes Yes Yes CRBK_1, CRBK_2 values are equal. CRBK_1
Yes Yes Yes CRBK_1, CRBK_2 values are different CRBK_1
and CRBK_1, CRBK_3 values are
equal.
Yes Yes Yes All other cases CRBK_2
Yes Yes No CRBK_1, CRBK_2 values are equal. CRBK_1
Yes Yes No CRBK_1, CRBK_2 values are different. Use SELOPT
Yes No Yes CRBK_1, CRBK_3 values are equal. CRBK_1
Yes No Yes CRBK_1, CRBK_3 values are different. Use SELOPT
No Yes Yes CRBK_2, CRBK_3 values are equal. CRBK_2
No Yes Yes CRBK_2, CRBK_3 values are different. Use SELOPT
Yes No No (No Test) CRBK_1
No Yes No (No Test) CRBK_2
No No Yes (No Test) CRBK_3
No No No (No Test) Use SELOPT

When the Select column reads “Use SELOPT”, the arbitration process cannot select a readback.
The configured parameter SELOPT then determines the value of COUT_readback as follows:
 If SELOPT = 0, COUT_readback retains its previous value.
 If SELOPT = 1, COUT_readback is set false.
 If SELOPT = 2, COUT_readback is set true.
Output parameter SELECT shows which redundant CRBK_x has been selected:
 If CRBK_1 is selected, SELECT = 1
 If CRBK_2 is selected, SELECT = 2
 If CRBK_3 is selected, SELECT = 3
 Otherwise, if SELOPT is used, SELECT = 0

13.5.8 Auto/Manual Switching


The Auto/Manual mode selection arbitrates between inputs by the operator (Manual) and inputs
from the control strategy (Auto). Parameters MA, INITMA, AUTSW, and MANSW are used to
establish the control mode of the BOUTR block.
With I/A Series system software V8.4 and above, the BOUTR block provides two additional con-
trols of the block mode on the FCP270 and ZCP270:
 When MANFS=1, the block switches to manual mode when the fail-safe is asserted to
allow recovery from FBM fail-safe at the block. The option only takes effect if MA is
unlinked. MANFS takes precedence over AUTSW and INITMA. Fail-safe in the
block is cleared as soon as the output is changed. For cascade operations, it is recom-
mended that MANFS be enabled in only one block.

346
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB

 When MBADOP=1, the block switches to manual mode when either the output
value status is BAD or the status of the IN value is Bad.
These options are not supported on other control processors.

13.5.9 Fail-Safe Functions


Fail-safe support is based on the following parameters:
 FSOPTN – This configured value specifies the condition(s) under which the external
device will receive a fail-safe value from the I/A Series system.
 FSCOUT – This configured value specifies the fail-safe value that is to be sent to the
external device when any condition specified in FSOPTN exists.
 SETFS – This boolean option constitutes a command to send the configured
FSCOUT value to the external device. It is only observed when the appropriate
FSOPTN so specifies.
 MANFS (CP270 Only) – When set to true (MANFS=1), this parameter forces the
block to Manual mode when fail-safe is asserted.
The FSOPTN conditions are:
 Send the fail-safe value FSCOUT when there is an input error in IN, as defined by
EROPT (Bit 0)
 Send the fail-safe value FSCOUT when the block parameter SETFS has been set true
(Bit 1)
 Assert fail-safe, using the FSCOUT value, when communications between the
I/A Series control station and the FBM is lost (Bit 2). The block does not perform this
option; it is carried out by the FBM software. This option will be enabled only if fail-
safe is enabled at the FBM level via the FSENAB parameter in ECB200 or ECB202.
FSOPTN is a bit map, thereby allowing combinations of conditions for fail-safe to be specified. If
any of the FSOPTN conditions exists, and COUT is not bad or out-of-service, the fail-safe value
is sent to the external device point when the BOUTR block is shut down. This happens when
turning off the compound containing the BOUTR block and when deleting the BOUTR block
or the compound containing the BOUTR block from the CP database.
In addition, the FSCOUT value is sent to the field device via the FBM when the CP is rebooted.
This action is independent of the FSOPTN configuration.

13.5.10 Time Stamp


The time stamp (TSTAMP) parameter of the block is updated every time there is a change in the
COUT value (that is, if COUT differs from the current readback value). TSTAMP, which is
expressed in units of milliseconds past midnight, is read from the FBM when it is available there;
otherwise, it is computed by the I/A Series control station. TSTAMP is not updated when
SELECT = 0; it is left at its last good value. Refer to Section 13.5.7.

13.5.11 Conditions for Sending a Block Output


The following items are conditions that cause a new output from the BOUTR block:
 When a periodic output is required. Whenever SECTIM has been configured with a
positive value and there has been no output for SECTIM seconds, a block output is
forced and the secondary timer is reinitialized.

347
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block

 When a condition for fail-safe has been met in this cycle (described in Section 13.5.9),
but was not met in the previous cycle (start of a fail-safe period)
 When a condition for fail-safe was present in the previous cycle but not in this cycle
(end of fail-safe period)
 When the connection status indicates that an initialization request (IR) exists this
cycle, but did not on the previous cycle (“start of an IR period”)
 When the connection status indicates that an initialization request does not exist this
cycle, but did on the previous cycle (“end of an IR period”)
 When the block is in Auto mode, and the value of IN has changed in this cycle
 When the block is in Manual mode, and the value of SET has been changed in this
cycle
 When this is an initialization cycle as defined in Section 13.5.17, including bad-to-
good transitions of IN when in Auto.

13.5.12 Sending the Output


When any of the conditions for sending a block output (listed in Section 13.5.11) exists, the cur-
rent value of SET (Manual) or IN (Auto) is sent to the output buffers of the two or three DCI
connections for the COx_PTs used by the block.
If either of the last two conditions listed exists (the change timer has expired or the readback
changed in this cycle), the current readback value is sent to the used COx_PTs. This readback
value is also set into IN (provided that IN is unlinked) and SET, in order to establish the baseline
for change detection in the next cycle.
The Write Flag is then set in the output buffer receiving the new output. If any of the connections
has an Initialization Request flag set, the Initialization Acknowledge flag is also set in the output
buffer. If the outputs are being sent because of a fail-safe condition (see Section 13.5.11), the Fail-
safe Request flag is also set in the output buffer.

13.5.13 Status of Other Block Outputs


The Out-Of-Service (OOS), Bad, Error, and fail-safe statuses of COUT, COUT_request, and
BKCO are all copied from the corresponding statuses of the selected readback CRBK_x. See
Section 13.5.6 and Section 13.5.7.

13.5.14 PRIBLK and PRITIM Functionality


The Primary Block (PRIBLK) parameter indicates whether the BOUTR block has a connection
from an upstream block (PRIBLK=1) or not (PRIBLK=0). Its value, together with that of the
Primary Cascade Timer (PRITIM), determines whether the BOUTR block remains in Hold for a
fixed time delay, or ends the Hold after one cycle. Note that a Hold of one cycle only occurs dur-
ing initialization.

13.5.15 Change Timer


The purpose of the change timer is to facilitate monitoring by the block for an indication that the
external device point has received the most recent I/A Series system change. The block expects the
device to have received the new value within that time.

348
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB

The timer is initialized to the configured value of RBKTIM (in seconds) each time a value is sent
to the redundant outputs. In each cycle thereafter, as long as there is no new output sent, the
timer is decremented and tested for expiration.
If the change timer expires, the current read-back value (as arbitrated) is compared against the
value of COUT_request. If they differ, it is assumed that the output device should not change as
a result of the I/A Series system change (that is, that the most recent I/A Series system value sent
was rejected). The value of the readback from the FBM is then set into SET, IN (if it is unlinked),
and COUT_request to establish the new baseline for input change-detection.
If the change timer has not expired, the readback value is compared against its previous value on
any cycle in which there is no new output. If they differ and the new readback is not the same as
the current value of COUT_request, the new readback is set into SET, IN (if it is unlinked), and
COUT_request.

13.5.16 Status of INI_PT


Transitions in the status of the initialization input INI_PT are used in determining whether block
initialization is required (see Section 13.5.18). This status is considered true if:
 The device value of INI_PT is true (the external device has requested that the block
go into Tracking),
 The appropriate ECB status indicates that the field device containing INI_PT is off-
line or out-of-service,
 The DCI connection for INI_PT cannot be configured, due to lack of configuration
information in the FBM database,
 The DCI for INI_PT 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 13.5.3),
 The DCI connection status information for the selected COx_PT, as determined by
the arbitration algorithm, indicates Initialization Request, Local Override, Fail-safe, or
Open Cascade.

13.5.17 Initialization
The BOUTR block initializes whenever the block is restarted, there is a bad-to-good transition of
the status of COUT, or there is a true-to-false transition in the status of INI_PT (see
Section 13.5.16).
Initialization action consists of setting the readback value from the selected redundant output
point into IN, SET, and COUT_request. The cascade is then opened to force an upstream initial-
ization. See Section 13.5.18. A block output is sent to the redundant outputs at this time.
If the block is in Auto mode, and there has been a bad-to-good transition in the status of IN, the
same actions are taken, except for the initialization of SET. The definition of Bad for the status of
IN depends on EROPT.

13.5.18 Cascade Processing


The cascade is opened when the block has initialized for any of the reasons listed in
Section 13.5.17. When the cascade is opened, INITCO, which should be connected to INITI
input of the block immediately upstream from the BOUTR block (if there is an INITI parameter

349
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block

in that block), is turned on. The status of BKCO, which should be connected to the BCALCI
input of the block immediately upstream, is set to indicate “open cascade.”
The current readback value is set into the value of BKCO, and the BOUTR block then goes into
a Hold (see Section 13.5.19), thereby disallowing any output changes.
The upstream block (the block connected to IN) is then commanded to run immediately. This
feature sets a Run flag in the header of the upstream block, causing the compound processor to
execute this block on the next BPC without regard to its period and phase.
If there is no support for cascade processing in the upstream block, configure PRIBLK = 0. In this
case, the cascade is held open for one cycle, after which the Hold is released. If closure of the cas-
cade is to occur after a specific timeout, configure PRIBLK = 1. In this case, PRITIM must be
configured with a nonzero value. The cascade is closed again after the PRITIM delay has expired.
(The BOUTR block does not support the closed-loop ACK option for cascade closure. If
PRIBLK is True and PRITIM = 0, the block fails validation.)

13.5.19 Holding and Tracking


The block goes into Holding whenever IN is Bad, when COUT has Bad status, or when it is in
Auto mode with the cascade not closed.
The block goes into Tracking when the status of INI_PT is true and remains that way as long as it
remains true.
Ordinarily, no output changes are allowed while the block is in Holding or Tracking. The only
exceptions are when this is an initialization cycle or this is the beginning or end of a fail-safe or IR
period, as described earlier in Section 13.5.11.

13.5.20 Simulation Option


When Simulation Option (SIMOPT) is configured true, there are no ECBs and no DCI connec-
tions established for the block. The statuses of CRBK_1, CRBK_2, and CRBK_3 are not recov-
ered from the field, and no updates to the field occur.
However, the basic actions of Auto and Manual modes are still observed when SIMOPT is true. If
the block is in Auto, IN is used for simulated inputs, and if the block is in Manual mode, SET
may be used. All input processing, including change monitoring and readback change detection,
is performed normally.

13.5.21 Alarming (CP270 Only)


The BOUTR block supports the Bad I/O alarm type. This section provides a functional overview
of the Bad I/O alarm.
The nomenclature for identical alarm types varies from block to block for historical reasons
involving backward compatibility requirements. The nomenclature for the BOUTR block is as
follows:

Table 13-5. Alarm Nomenclature

Priority Default Indicator


Type Option Group Text Display Parameter
BAD I/O BAO BAG BAT IOBAD

350
13. BOUTR – Redundant Binary Output Block B0193AX – Rev AB

13.5.21.1 Bad Alarming Overview


Key Parameters: BAO, BAP, BAG, BAT, BAD, AMRTIN
Bad alarming occurs when the Bad Alarm Option (BAO) is set and one or both of the connected
readback values are bad. Bad alarm messages are generated for each readback value independently
when its status is bad (CRBK_P.BAD, CRBK_S.BAD).
When one readback value becomes bad, the BOUTR block creates a bad alarm message and sends
it to all devices specified in the bad alarm group (BAG) parameter. The bad alarm message con-
tains the descriptive text specified in the Bad Alarm Text parameter (BAT) and the loop identifier
(LOOPID). To identify which of the readback values are bad, the message also contains a
“BAD_P” text string if the primary readback value is bad or a “BAD_S” text string if the second-
ary readback value is bad.
When the readback value becomes good, a corresponding return-to-normal message is generated
and sent to all devices in the bad alarm group.
Bad alarm status information, however, is generated only when both readback values are bad.
When both readback values are bad, the BOUTR block takes the following actions:
 Sets the bad parameter (BAD) and the corresponding BAD bit of the Alarm Status
parameter (ALMSTA.BAD) true
 Sets the UNACK parameter and the corresponding ALMSTA.UNACK bit true
 Sets the criticality (CRIT) parameter and its corresponding ALMSTA.CRIT field to
the BAP (Bad Alarm Priority) value.
 Sets the Priority Type (PRTYPE) parameter and its corresponding ALMSTA.PRTYPE
bit to the Bad alarm type.
When both readback values return to good status, BAD, CRIT, PRTYPE and their corresponding
fields in ALMSTA are cleared. The UNACK parameter and the ALMSTA.UNACK bit are
cleared if one of the following is true:
 The alarm is acknowledged by an OM set operation at either the compound or block
level by setting the compound or block parameter UNACK to 0.
 Both readback values return to a good status and the Inhibit Option (INHOPT) is set
appropriately.
 The block is shut down.
When UNACK is cleared, an Alarm Acknowledge message is generated and sent to all devices in
the bad alarm group.

13.5.21.2 Inhibiting and Disabling Alarms


Using a combination of the BOUTR block parameters INHOPT and INHIB and the compound
parameter CINHIB, you can inhibit bad alarm messages and/or disable bad alarm detection.
When the Bad alarm is inhibited or disabled, an Alarm Disable message is sent to all devices in the
bad alarm group. If the Bad alarm is unacknowledged, an Alarm Acknowledge message is also sent
to the devices. In addition, the ALMSTA.INHIB, INHSTA.BAD, INHSTA.BAD_P, and
INHSTA.BAD_S bits are set.
When the Bad alarm is uninhibited or enabled, a corresponding Alarm Enable message is gener-
ated and sent to the devices belonging to the bad alarm group, the ALMSTA.INHIB bit is
cleared, and the INHSTA parameter is cleared.

351
B0193AX – Rev AB 13. BOUTR – Redundant Binary Output Block

The BOUTR block also supports alarm reprioritization and regeneration. Refer to the appropri-
ate Integrated Control Software Concepts document (B0700AG or B0193AW) for detailed infor-
mation on inhibiting, disabling, reprioritizing, and regenerating alarms.

352
14. CALC – Calculator Block
This chapter covers the Calculator, or CALC, block, its features, parameters and detailed
operations.

14.1 Overview
The Calculator (CALC) block provides both logical functions and arithmetic and boolean com-
putational capability within one integrated environment. This block lets you satisfy specialized
control needs that cannot be met efficiently with either the standard block set offering or the
sequence control blocks.
Use the Integrated Control Configurator to configure the CALC block. The configuration pro-
cess allows you to specify the system path for all desired input connections and constant data val-
ues, and to program the block by entering a series of programming steps. Each program step is
represented by a parameter string of up to 10 characters.
The CALC block inputs and outputs are shown in Figure 14-1.

8 Real Inputs 4 Real Outputs


Calculation
16 Boolean Inputs Program 8 Boolean Outputs
2 Integer Inputs (up to 50 steps; 6 Integer Outputs
configurable)
2 Long Integer Inputs 2 Long Integer Outputs
Manual/Auto Program Error
Step Error

Figure 14-1. CALC Block I/O Diagram

The differences between the CALC, CALCA, MATH, and LOGIC blocks are summarized in
Table 14-1.

Table 14-1. Block Comparison

CALC CALCA MATH LOGIC


Dual Operands --- X X X
Output Clamping X --- --- ---
Boolean Instructions X X --- X
Packed Boolean Instructions X X ---
Mathematical Instructions X X X ---
Cascade Instruction X X X ---
Steps 50 50 20 15

353
B0193AX – Rev AB 14. CALC – Calculator Block

Table 14-1. Block Comparison (Continued)

CALC CALCA MATH LOGIC


Memory Registers 24 24 5 5
Boolean Inputs 16 16 0 16
Boolean Outputs 8 8 0 4
Integer Inputs 2 2 0 0
Integer Outputs 6 6 0 0
Long Integer Inputs 2 2 0 1
Long Integer Outputs 2 2 0 1
Real Inputs 8 8 8 2
Real Outputs 4 4 4 0

14.2 Basic Operation


The CALC block operates like most programmable pocket calculators. The block’s input/output
modularity and programming capacity provides a level of functionality that complements the
standard block set offering.
The program which you enter is executed once each time the CALC block executes. A single exe-
cution of the program is defined as a single consecutive execution of each program step in turn. It
is, however, possible to specify conditional execution of steps or groups of steps.
Every program step contains an opcode, which identifies the operation to be performed, and one
command line argument. The command line argument consists of the actual operand for the step,
the location of the operand, a specification of details which further refine the opcode, or some
combination of these factors. The syntax of each individual instruction is provided in
Section 14.6.5.
The CALC block can operate in Auto or Manual mode. The operation of the block in Manual is
identical to the operation in Auto, except that any output parameters involved in the steps are not
modified by the block logic. They are released, and can be set only by user action. Manual mode
is described in Section 14.6.1.2.

14.3 Features
 Operates with the standard block set, within the same compound processor
environment.
 Provides tight synchronization with the real-time execution of the standard blocks.
 Provides 8 real inputs, 2 long integer inputs, 2 integer inputs, 16 boolean inputs,
4 real outputs, 2 long integer outputs, 8 boolean outputs, and 6 integer outputs.
 Provides 24 memory data storage registers that are preserved between execution cycles.
 Provides 50 programming steps and supports a chaining capacity of up to 16 operands
before a function is performed or before the stack is cleared.
 Allows arithmetic calculations to be conditionally executed, depending on arithmetic
or logic conditions detected under program control.

354
14. CALC – Calculator Block B0193AX – Rev AB

 Provides a complete mix and interchangeability between the results of boolean and
real operations.
 Provides system-level functions that let your algorithm read the status of any input
parameter for error detection and directly control the BAD status of any output
parameter. This capability lets your algorithm directly interface with the standard
block set.
 Checks correctness of all programming steps following block installation and recon-
figuration, and undefines the block if an error is detected.
 Provides the ability to detect run-time errors.
 Supports the standard block-level manual/auto capability for all of its outputs.
 Allows forward branching of program control. To keep you from creating endless
loops, backward branching is not allowed.
 Supports range and engineering units for each real input/output parameter. When in
Auto, the block automatically clamps all real outputs at the specified output ranges.
 Lets you initialize all timers and memory registers.

14.4 Parameters
Table 14-2. CALC Block Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set blank 1 to 12 chars
TYPE block type integer no-con/no-set 18 CALC
DESCRP descriptor string no-con/no-set blank 1 to 32 chars
PERIOD block sample time short no-con/no-set 1 0 to 13
PHASE block phase number integer no-con/no-set 0 ---
LOOPID loopid string no-con/set blank 1 to 32 characters
RI01 to RI08 real input 1 to 8 real con/set 0.0 RI1 to RI8
HSCI1 to HSCI8 high scale 1 to 8 real no-con/no-set 100.0 specifiable
LSCI1 to LSCI8 low scale 1 to 8 real no-con/no-set 0.0 specifiable
DELTI1 to DELTI8 change delta 1 to 8 real no-con/no-set 1.0 percent
EI1 to EI8 eng units input 1 to 8 string no-con/no-set % specifiable
BI01 to BI16 boolean input 1 to 16 boolean con/set 0 0 to 1
II01 and II02 integer input 1 and 2 integer con/set 0 ---
LI01 and LI02 long int input 1 and 2 long con/set 0 ---
HSCO1 to HSCO4 high scale 1 to 4 real no-con/no-set 100.0 specifiable
LSCO1 to LSCO4 low scale 1 to 4 real no-con/no-set 0.0 specifiable
EO1 to EO4 eng unit output 1 to 4 string no-con/no-set % specifiable
MA manual/auto boolean con/set 0 0 to 1
INITMA initialize MA short no-con/no-set 1 [0|1|2]
TIMINI timer initialize option short_int no-con/set 0 0 to 3
M01 to M24 memory 1 to 24 real no-con/no-set 0.0 ---
STEP01 to STEP50 program step 1 to 50 char[16] no-con/no-set --- 1 to 16 chars

355
B0193AX – Rev AB 14. CALC – Calculator Block

Table 14-2. CALC Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


Non-Configurable Parameters
OUTPUTS
BLKSTA block status pack_l con/no-set 0 bit map
BO01 to BO08 boolean output 1 to 8 boolean con/no-set 0 0 to 1
IO01 to IO06 integer output 1 to 6 integer con/no-set 0 ---
LO01 to LO02 long outputs 1 and 2 long con/no-set 0 ---
PERROR program error integer con/no-set 0 ---
RO01 to RO04 real output 1 to 4 real con/no-set 0.0 RO1
STERR step error number integer con/no-set 0 ---
DATA STORES
ACHNGE alternate change integer con/no-set 0 -32768 to 32767
DEFINE no config errors boolean no-con/no-set 1 0 to 1
DELTO1 to DELTO4 change delta 1 to 4 real no-con/no-set 1.0 percent
ERCODE config error string no-con/no-set 0 1 to 43 chars
LOCKID lock identifier string no-con/no-set blank 8 to 13 chars
LOCKRQ lock request boolean no-con/set 0 0 to 1
OWNER owner name string no-con/set blank 1 to 32 chars
RI1 to RI8 eng range input 1 to 8 real[3] no-con/no-set 100,0,1 specifiable
RO1 to RO4 eng range output 1 to 4 real[3] no-con/set 100,0,1 specifiable

14.4.1 Parameter Definitions


ACHNGE Alternate Change is an integer output which is incremented each time a
block parameter is changed via a Set command.

BI01 to BI16 Boolean Inputs 1 through 16 are configurator entries that identify the
upstream boolean outputs coming to the boolean inputs of the block.

BLKSTA Block Status is a 32-bit output, bit-mapped to indicate the block’s opera-
tional states. For the CALC block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

ON

MA

356
14. CALC – Calculator Block B0193AX – Rev AB

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
11 MA Manual(= false)/Auto(= true) BLKSTA.B21
14 UDEF Undefined BLKSTA.B18
15 ON Compound On BLKSTA.B17
20 WLCK Workstation Lock BLKSTA.B12

* Bit 0 is the least significant, low order bit.

BO01 to BO08 Boolean Outputs 1 through 8.

DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. In that case, no further processing of the block occurs. To return
DEFINE to a true value, correct all configuration errors and re-install the
block.

DELTI1 to DELTI8
Change Delta for Input Ranges 1 through 8 are a real values that define
the minimum percent of the input range that triggers change driven con-
nections for parameters in the range of RI1 through RI8. The default
value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.

DELTO1 to DELTO4
Change Deltas for Output Ranges 1 through 4 are presently unused.

DESCRP Description is a user-defined string of up to 32 characters that describe the


block’s function (for example, “PLT 3 FURNACE 2 HEATER CON-
TROL”).

EI1 to EI8 Engineering Units for Input Ranges 1 through 8, as defined by the param-
eters HSCI1 to HSCI8, LSCI1 to LSCI8, and DELTI1 to DELTI8. EI1
to EI8 provide the engineering units text for the values defined by Input
Ranges 1 through 8. “Deg F” or “pH” are typical entries.

EO1 to EO4 Engineering Units for Output Ranges 1 through 4, as defined by the
parameters HSCO1 to HSCO4, LSCO1 to LSCO4, and DELTO1 to

357
B0193AX – Rev AB 14. CALC – Calculator Block

DELTO4. EO1, for example, provides the engineering units text for the
values defined by Output Range 1. “Deg F” or “pH” are typical entries.
Make the units for the Output Range (EO1) consistent with the units of
Input Range 1 (EI1) and Input Range 2 (EI2).

ERCODE Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the block’s
DEFINE parameter to be set false, but not the warning situations. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. The block detailed display shows the ERCODE
on the primary page, if it is not null. For the CALC block, the following
list specifies the possible values of ERCODE, and the significance of each
value in this block:

Message Value
“W43 – INVALID PERIOD/ PHASE does not exist for given block
PHASE COMBINATION” PERIOD, or block PERIOD not
compatible with compound
PERIOD.
“W45 – CONFIGURATION A parsing error has been detected in a
ERROR IN STEP nn” CALC block; nn identifies the step in
error.
“W46 – INVALID INPUT The source parameter specified in the
CONNECTION” input connection cannot be found in
the source block, or the source
parameter is not connectable, or an
invalid boolean extension connection
has been configured.
“W48 – INVALID BLOCK The configured value of a block
OPTION” option is illegal.
“W53 – INVALID A parameter value is not in the accept-
PARAMETER VALUE” able range.
“W58 – INSTALL ERROR; A Database Installer error has
DELETE/UNDELETE occurred.
BLOCK”

HSCI1 to HSCI8 High Scale for Input Ranges 1 through 8 are real values that define the
upper limit of the measurement ranges. EI1 to EI8 define the units. Make
the range and units consistent with the measurement source. A typical
value is 100 (percent).

HSCO1 to HSCO4
High Scale for Output Ranges 1 through 4 are real values that define the
upper limit of the ranges for outputs 1 through 4. A typical value is 100
(percent). EO1 to EO4 define the units. Make the range and units consis-
tent with those of the output destination.

358
14. CALC – Calculator Block B0193AX – Rev AB

II01 Integer Input 1 is a 16-bit integer representing 16 packed boolean inputs.


II01 is processed when the IOMOPT option is false, and the parameter
INPUTS is not connected. The bits are numbered 1 through 16, with bit
1 as the Most Significant Bit. The bits are mapped to the CIN_x output of
the same number (that is, “II01” bit 1 is output at CIN_1, bit 2 at
CIN_2, and so on). If II01 and II02 are both used, II01 is positioned as
the more significant. II01 can be peer-to-peer connected as a sink to a
packed boolean output of another block (for example, PAKCRB from an
MCOUT block or IO01 through IO06 from a CALC block). In the case
of the MCIN block, II01 is a packed boolean long (32-bit) input.

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.

IO01 to IO06 Integer Outputs for Points 1 through 6.

LI01 to LI02 Long Integer Inputs 1 and 2.

LO01 to LO02 Long Integer Outputs 1 and 2.

LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-charac-
ter letterbug of the workstation and DEVNAME is the 1-6 character logi-
cal device name of the Display Manager task.

LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID

359
B0193AX – Rev AB 14. CALC – Calculator Block

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.

LOOPID Loop Identifier is a configurable string of up to 32 characters which iden-


tify the loop or process with which the block is associated. It is displayed
on the detail display of the block, immediately below the faceplate.

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.

MA Manual Auto is a boolean input that controls the Manual/Automatic


operating state (0 = false = Manual; 1 = true = Auto). In Auto, given the
measurement value, the block computes the output according to its spe-
cific algorithm. The block automatically limits the output to the output
range specified between LSCO1 and HSCO1, for analog blocks. In Man-
ual, the algorithm is not performed, and the output is unsecured. An
external program can then set the output to a desired value.

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

OWNER Owner is a string of up to 32 ASCII characters which are used to allocate


control blocks to applications. Attempts to set Owner are successful only
if the present value of Owner is the null string, an all-blank string, or iden-
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.

PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and

360
14. CALC – Calculator Block B0193AX – Rev AB

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 seconds, this period is treated internally as 0.6 seconds,
but the PERIOD parameter remains 1.
** If the BPC is 2.0 seconds, this period is treated internally as
6.0 seconds, but the PERIOD parameter remains 10.
*** If the BPC is 0.5 seconds this period is treated internally as
0.5 seconds, but the PERIOD parameter remains 11.
**** If the BPC is not 2.0 seconds, this period is treated internally as
5.0 seconds, but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.

PERROR Program Error is a coded integer output that indicates the type of instruc-
tion syntax error or program run-time error that occurred in the step spec-
ified by the STERR parameter.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 seconds. Refer to the appropriate Integrated Control
Software Concepts document (B0700AG or B0193AW).

RI01 to RI08 Real Inputs 1 through 8 are real inputs. Your configurator entry identifies
the upstream output that is coming to the inputs of this block to be
included in the calculation.

RI1 to RI8 Range Input is an array of real values that specify the high and low engi-
neering scale and change delta of a particular real input. For a given block,
it also forms an association with a group of real input parameters that have
the same designated range and change delta.

RO01 to RO04 Real Output for Points 1 through 4.

361
B0193AX – Rev AB 14. CALC – Calculator Block

RO1 to RO4 Range Output is an array of real values that specify the high and low engi-
neering scale of a particular real output. For a given block, it also forms an
association with a group of real output parameters that have the same des-
ignated range.

STEP01 to STEP50
Steps 1 through 50 are string inputs of up to 8 characters. They are the 50
executable commands that make up the CALC block program.

STERR Step Error is an integer output that indicates which program step is exhib-
iting the error defined by PERROR.

TIMINI Timer Initialization option specifies whether an initial state change can be
generated by a DON, DOFF, FF, MRS, or OSP instruction in a block
when the block initializes.
0= Initial state change allowed for DOFF, DON, FF, MRS, and OSP.
1= Initial state change disallowed for DOFF, DON, and OSP.
Initial state change allowed for FF and MRS.
2= Initial state change disallowed for FF and MRS.
Initial state change allowed for DOFF, DON, and OSP.
3= Initial state change disallowed for DOFF, DON, FF, MRS, and
OSP.

TYPE When you enter “CALC” or select it from a configurator list, it creates an
identifying integer specifying this block type.

14.5 Functions
The CALC block provides 114 program instructions, consisting of the following general types:
 32 Arithmetic instructions, which perform mathematical calculations.
 13 Boolean instructions, which provide various boolean and packed boolean
operations.
 27 Input/Output instructions, which perform the input or output of data or status
bits.
 2 Cascade and Propagation instructions for error propagation and downstream cas-
cade acknowledgments.
 10 Memory and Stack Reference instructions for reading and writing the memory reg-
isters, or directly manipulating the stack.
 10 Program Control instructions for conditional and unconditional branching, and
program termination.
 10 Clear/Set instructions, which provide for conditional or unconditional clearing or
setting of parameters, sometimes with simultaneous program control action.
 6 Timing instructions which control the operation of program timers.
 2 Logic instructions which emulate the operation of flip-flops.

362
14. CALC – Calculator Block B0193AX – Rev AB

 3 Error Control instructions which provide access to the run-time error flag.

363
B0193AX – Rev AB 14. CALC – Calculator Block

14.5.1 Arithmetic Instructions


Most CALC block operations center about a 16-position push-down stack of real data type val-
ues. The top position of this stack is referred to as the accumulator.
All arithmetic instructions involve the accumulator value, frequently in conjunction with various
block parameters. No arithmetic operations contribute rounding errors beyond one unit of the
least significant decimal digit of a real, single precision, floating point value.
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.
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 argument 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. Table 14-3 lists the arithmetic instructions.

Table 14-3. Arithmetic Instructions

Name Function Instruction Type


ABS Absolute Value Unary
ACOS Arc Cosine Unary
ADD Add Diadic or Polyadic
ALN Natural Antilog Unary
ALOG Common Antilog Unary
ASIN Arc Sine Unary
ATAN Arc Tangent Unary
AVE Average Diadic or Polyadic
CHS Change Sign Unary
COS Cosine Unary
DEC Decrement Unary
DIV Divide Diadic
EXP Exponent Diadic
IDIV Integer Division Diadic
IMOD Integer Modulus Diadic
INC Increment Unary
LN Natural Logarithm Unary

364
14. CALC – Calculator Block B0193AX – Rev AB

Table 14-3. Arithmetic Instructions (Continued)

Name Function Instruction Type


LOG Common Logarithm Unary
MAX Maximum Diadic or Polyadic
MAXO (Same as MAX)
MIN Minimum Diadic or Polyadic
MEDN Median Polyadic
MUL Multiply Diadic or Polyadic
RAND Generate Random Number Unary
RANG Generate Random Number, Gaussian Unary
RND Round Unary
SEED Seed Random Number Generator Unary
SIN Sine Unary
SQR Square Unary
SQRT Square Root Unary
SUB Subtract Diadic
TAN Tangent Unary
TRC Truncate Unary

14.5.2 Boolean Instructions


All boolean instructions involve the accumulator value, frequently in conjunction with various
block parameters. The boolean value of logical zero is stored on the stack or in memory registers
as real value 0.0, and logical one is stored as 1.0. When operands are fetched from the stack or
memory registers, the operation interprets any non-zero value to be a logical one, and a real zero
value to be a logical zero, in keeping with the usual C language convention.
In addition to ordinary boolean operations, a group of bitwise logical operations on packed bool-
ean values is supported. Table 14-4 lists the boolean instructions.

Table 14-4. Boolean Instructions

Name Function Instruction Type


AND Logical And Diadic or Polyadic
ANDX Packed Logical And Polyadic
NAND Logical Not And Diadic or Polyadic
NANX Packed Logical NAND Polyadic
NOR Logical Not Or Diadic or Polyadic
NORX Packed Logical Nor Or Polyadic. Packed Boolean
NOT Not Unary
NOTX Packed Logical Not Unary, Packed Boolean
NXOR Logical Not Exclusive Or Diadic or Polyadic, Packed Boolean

365
B0193AX – Rev AB 14. CALC – Calculator Block

Table 14-4. Boolean Instructions (Continued)

Name Function Instruction Type


NXOX Packed Logical Not Exclusive Or Polyadic, Packed Boolean
OR Logical Or Diadic or Polyadic
ORX Packed Logical Or Polyadic, Packed Boolean
XOR Logical Exclusive Or Diadic or Polyadic
XORX Packed Logical Exclusive Or Polyadic, Packed Boolean

14.5.3 Input/Output Reference Instructions


Input/Output reference instructions provide access to status bits of I/O parameters and permit
data transfer between a specific input or output parameter and the accumulator (top of stack).
Instructions referencing a specific input or output include an operand specifying the particular
I/O parameter.
Instructions only modify the values of output parameters when the CALC block is in Auto. If an
instruction performs several actions, one of which is modification of output values, the portions
of the instruction which do not relate to output modification are carried out even if the block is in
Manual. Modification of the status of output parameters is carried out in Auto or Manual.
The CALC block automatically clamps its integer and long integer output values on overflow and
underflow at the maximum positive and minimum negative values, respectively, as shown in the
following table.

Parameter Maximum Positive Minimum Negative


IO01 to IO04 32767 -32768
LO01 to LO02 2147483647 -2147483648

Table 14-5 lists the input/output reference instructions.

Table 14-5. Input/Output Reference Instructions

Name Function Instruction Type


CBD Clear Bad Status Output Status
CE Clear Error Status Output Status
COO Clear Out-of-Service Status Output Status
IN Input Input Value
INB Input Indexed Boolean Input Value
INH Input High Order Input Value
INL Input Low Order Input Value
INR Input Indexed Real Input Value
INS Input Status Input Status

366
14. CALC – Calculator Block B0193AX – Rev AB

Table 14-5. Input/Output Reference Instructions (Continued)

Name Function Instruction Type


OUT Output Output Value
RBD Read Bad and OOS Bits Input Status
RCL Read and Clear Input Value/Unconditional Clear
RCN Read Connect Status Input Linkage Type
RE Read Error Bit Input Status
REL Clear Secure Status Output Status
RON Read In-Service Status Input Status
ROO Read OOS Bit Input Status
RQE Read Quality Including Error Input Status
RQL Read Quality Input Status
SAC Store Accumulator in Output Output Value
SBD Set Bad Status Output Status
SE Set Error Status Output Status
SEC Set Secure Status Output Status
SOO Set Out-of-Service Status Output Status
STH Store High Order Output Value
STL Store Low Order Output Value
SWP Swap Input Value/Output Value

14.5.4 Cascade and Propagation Instructions


Cascade and propagation instructions pass various status bits of specified real inputs to specified
real outputs. They are used for error propagation and downstream cascade acknowledgment.
Table 14-6 lists the cascade and propagation instructions.

Table 14-6. Cascade and Propagation Instructions

Name Function Instruction Type


PRI Propagate Upstream Cascade/Propagation
PRO Propagate Downstream Cascade
PRP Propagate Errors Propagation

14.5.5 Memory and Stack Reference Instructions


The CALC block provides 24 memory data storage elements to store the result of any operation.
Data is stored as a real value but can represent either integer, real, or boolean results.
All memory elements are preserved between execution cycles.

367
B0193AX – Rev AB 14. CALC – Calculator Block

The letter M followed by an integer between 01 and 24 (or 1 and 24) designates the specific regis-
ter to be accessed by a memory referencing instruction. Table 14-7 lists the memory and stack ref-
erence instructions.

Table 14-7. Memory and Stack Reference Instructions

Name Function Instruction Type


CLA Clear All Memory Registers Memory
CLM Clear Memory Register Memory
CST Clear Stack Stack
DEC Decrement Operand/Stack
DUP Duplicate Stack
INC Increment Operand/Stack
LAC Load Accumulator Memory/Stack
LACI Load Accumulator Indirect Memory/Stack
POP Pop Stack Stack
RCL Read and Clear Operand/Stack
STM Store Memory Memory/Stack
STMI Store Memory Indirect Memory/Stack
SWP Swap Operand/Stack
TSTB Test Packed Boolean Stack

14.5.6 Program Control Instructions


The instructions in Table 14-8 provide conditional or unconditional branching to a program step
number as well direct termination of the program. A step number less than or equal to the present
program step or greater than 50 invalidates or terminates the program.

Table 14-8. Program Control Instructions

Name Function Instruction Type


BIF Branch If False Conditional Branch
BII Branch If Initializing Conditional Branch
BIN Branch If Negative Conditional Branch
BIP Branch If Positive or Zero Conditional Branch
BIT Branch If True Conditional Branch
BIZ Branch If Zero Conditional Branch
END End Program Program Termination
EXIT Exit Program Program Termination
GTI Go To Indirect Unconditional Branch
GTO Go To Unconditional Branch

368
14. CALC – Calculator Block B0193AX – Rev AB

Table 14-8. Program Control Instructions (Continued)

Name Function Instruction Type


NOP No Operation Unconditional Branch
SSF Set Boolean and Skip if Accumulator False Program Control
SSI Set Boolean and Skip if Block Initializing Program Control
SSN Set Boolean and Skip if Accumulator Negative Program Control
SSP Set Boolean and Skip if Accumulator Positive Program Control
SST Set Boolean and Skip if Accumulator True Program Control
SSZ Set Boolean and Skip if Accumulator Zero Program Control

14.5.7 Clear/Set Instructions


The following instructions allow you to clear or set a parameter value unconditionally, or set it
conditionally, depending on the accumulator value or the block initialization state.

Table 14-9. Clear/Set Instructions

Name Function Instruction Type


CLR Clear Unconditional Clear
CLRB Clear Packed Boolean Unconditional Clear
SET Set Unconditional Set
SETB Set Packed Boolean Unconditional Set
SSF Set and Skip if False Conditional Set
SSI Set and Skip if Initializing Conditional Set
SSN Set and Skip if Negative Conditional Set
SSP Set and Skip if Positive Conditional Set
SST Set and Skip if True Conditional Set
SSZ Set and Skip if Zero Conditional Set

14.5.8 Timing Functions


The operands of the timing instructions in Table 14-10, except for TIM, can specify a real value
constant or reference any real input or output parameter value record, for example, RI02. The
numeric value used in either case is assumed to be in units of seconds. During conversion, the
internal time values are truncated to the nearest block period. See the OSP, DON, DOFF Timing
Diagram (Figure 14-2).

369
B0193AX – Rev AB 14. CALC – Calculator Block

Table 14-10. Timing Instructions

Name Function Instruction Type


DOFF Delayed OFF Timing
DON Delayed ON Timing
OSP One-Shot Pulse Timing
TIM Time Since Midnight Time Reporting

Accumulator

nn sec
OSP

Accumulator

nn sec nn sec
DON nn

Accumulator

nn sec nn sec
DOFF nn

Figure 14-2. OSP, DON, DOFF Timing Diagram

14.5.9 Logic Functions


The higher-level logic functions listed in Table 14-11 are supported. They emulate the functions
of a traditional set-reset flip-flop and a reset-dominant flip-flop, respectively.

Table 14-11. Logic Instructions

Name Function Instruction Type


FF Flip-Flop Logic
MRS Master Reset Flip-Flop Logic

The FF instruction emulates the function of a traditional set-reset flip-flop. If both the “set” input
and the “reset” input take on a logical one value, the previous state of the “Q” output is retained.
The MRS instruction provides the same functionality as the FF, except that the reset input has
priority over the set input. If both inputs take on a logical one value, the flip-flop is forced to
reset.

370
14. CALC – Calculator Block B0193AX – Rev AB

14.5.10 Error Control Instructions


Error control instructions give your program the ability to detect, report, and clear errors during
run-time. An internal error flag (parameter PERROR) records the first run-time error event. The
instructions in Table 14-12 test and clear this flag, but do not in themselves handle the error con-
dition. In most cases, the accumulator value is clamped continuously to positive or negative
machine infinity.

Table 14-12. Error Control Instructions

Name Function Instruction Type


CLE Clear Error Flag Error Control
RER Read Error Flag Error Control
SIEC Skip if Error Cleared Error Control

14.6 Instructions
14.6.1 Instruction Processing
14.6.1.1 Auto Mode
Each block processing cycle, the CALC block executes each programmed step in sequence, except
for those bypassed because of branch conditions. When the program has been executed a single
time, the block execution is complete, and control is passed to the next block in the compound
processor list.
Program execution is complete when an END or EXIT statement is reached in the program flow,
or Step 50 has been executed, whichever occurs first in time.
Between instructions, the block stores intermediate results on a 16-position internal stack. You
can use stack values as arguments to subsequent instructions. The stack is cleared at the start of
each block execution cycle. You can use the 24 internal memory registers (Mxx) to store data
between block execution cycles. These memory registers can be pre-configured to contain con-
stants needed by the various instructions, or they can be used to store instruction arguments
and/or results.

14.6.1.2 Manual Mode


When the block is in Manual mode, it processes the steps the same way, except that the output
actions are ignored. When an instruction (such as RCL) involves both the writing of outputs and
other actions, the other actions are performed; only the output portions are ignored.
The actions carried out by the instruction RCL RO01 in Auto and Manual mode are shown in
Figure 14-3. The read portion, shown in part 1 of Figure 14-3, occurs unconditionally. Then the
clear action shown in part 2 of Figure 14-3, which depends on the Auto/Manual mode, follows.

371
B0193AX – Rev AB 14. CALC – Calculator Block

17.29 OUTPUT
RO01 = 17.29

Part 1. Read

(M) MA

17.29 O

O OUTPUT
0.0 O
RO01
(A)

Part 2. Clear

Figure 14-3. Manual Mode

Instructions which modify memory registers M01 to M24 continue to execute normally while in
Manual. For example, if your program ramps a value in M01, the ramping continues while in
Manual.

14.6.2 Instruction Syntax


The CALC block program is entered through the Control Configurator. A program consists of a
series of string-type entries configured in parameters STEP01 through STEP50, each of which
defines a single program instruction.
Each CALC block instruction consists of a string of alphanumeric characters, optionally followed
by a comment. The comment must follow a semi-colon character, and can contain any alphanu-
meric or punctuation characters. The comments are ignored by the block logic, but you may find
them useful when writing, debugging, or reading a CALC program.

14.6.2.1 Rules
The following pseudo instructions show the generic instruction syntax:
operation; comment
operation number_of_stack_operands; comment
operation operand; comment
As noted in Section 14.2, the instruction string comprises the opcode, followed by a command
line argument. You may use leading blanks before the opcode of a program step and between the
opcode and the argument, and between the argument and any comment you include.

372
14. CALC – Calculator Block B0193AX – Rev AB

Blank steps can be inserted anywhere in a CALC block program prior to the END statement.
This makes it easier to make minor modifications in the block program without reconfiguring
each step in the program. When a blank step is found in the program, the block logic skips to the
next step without taking any action.

14.6.2.2 Constants
Some instructions allow a constant value as a command line argument. The instruction defini-
tions of Section 14.6.5 use different letters to represent this constant, depending on the semantic
meaning of the constant, as follows:
 s = step number
 t = time constant
 b = bit number
 c = count of the number of stack values involved
 n = arithmetic operand
In all cases, the constant is expected to be an integer. If you enter a non-integer value for the con-
stant, it is automatically truncated to an integer before it is used. There is no warning message
when this truncation occurs. Certain instructions permit a zero or negative integer value, and this
is indicated in the individual instruction descriptions. Truncation of negative real values involves
dropping the decimal portion and retaining the negative sign.
If your program requires the use of a constant operand of real type, you should store it in one of
the memory registers M01 to M24 at configuration time. For example, the instruction ADD RI01
is valid, but ADD 0.7 is invalid.

14.6.3 Instruction Operation


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 is no command line argument specified, the two inputs are obtained from the two top loca-
tions of the stack, having typically been placed there by the two instructions immediately preced-
ing 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 second operand is also lost because it now resides in an inaccessible position one
location above the top of the stack.

NOTE
The term first, when used in describing the location of stack operands, refers to the
one which had been pushed earlier. Since the stack “grows toward high memory,” an
earlier operand has a lower stack pointer value.

A polyadic arithmetic or boolean instruction operates on a variable number of operands, and all of
them are on the stack.
Several polyadic instructions make use of the pseudo-parameters, Ixx and Oxx. These pseudo-
parameters allow the instructions to perform their work with individual bits of the LI01 and

373
B0193AX – Rev AB 14. CALC – Calculator Block

LO01 packed boolean long integer parameters. The xx index varies from 01 to 32. The polyadic
instructions making use of Ixx and Oxx are IN, OUT, AND, OR, NAND, NOR, XOR, and
NXOR.
For example, IN I12 extracts bit 12 from LI01, while IN O12 extracts bit 12 from LO01. OUT
O12 sets bit 12 of LO01 and OUT I12 sets bit 12 of LI01. AND I12 performs the logical AND
operation between the top of the accumulator stack and bit 12 of LI01. OR O12 performs the
logical OR operation between the top of the accumulator stack and bit 12 of LO01.

14.6.3.1 Stack Operation


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.
Program Example 1 includes typical diadic instructions. Figure 14-4 shows the stack operation for
each program instruction.
Example 1:
STEP01 IN RI01 Pushes RI01 value onto stack.
STEP02 ADD RI02 Pops Value1 from the stack, adds RI02 value to Value1, and
pushes the result (Sum1) onto stack.
STEP03 ADD RI03 Pops Sum1 from the stack, adds RI03 value to Sum1, and
pushes the result (Sum2) onto stack.
STEP04 IN 3 Pushes constant “3” onto stack.
STEP05 DIV Pops “3” and Sum2 from stack, divides them, and pushes
Quotient onto stack.

Examples of Stack Operation for Diadic Instructions to Solve

RO01 = (RI01 + RI02 + RI03) / 3

IN RI01 ADD RI02 ADD RI03 IN 3 DIV

S2 3
S1 Value1 S1 Sum1 S1 Sum2 S1 Sum2 S1 Quotient
Stack
Registers
(up to 16)

LEGEND:
Stack Stack
Push Pop

Figure 14-4. Examples of Stack Operation for Diadic Instructions

374
14. CALC – Calculator Block B0193AX – Rev AB

When there are no command line arguments, the polyadic instructions operate on all values on
the stack. When the command line argument is a constant (c), they operate on the “c” operands at
the highest stack positions. These are the most recently-pushed values before the polyadic instruc-
tion is executed.
The block decrements the stack pointer as the operation is being performed and stores the result
in the new accumulator location (the new top of the stack location determined by the decre-
mented stack pointer), overwriting the first operand. All other operands are also lost because they
now reside in inaccessible registers located above the top of the stack. When fewer than all values
on the stack are used, those stack values remaining after the execution of the statement are not
lost.
Program Example 2 includes a typical polyadic instruction (AVE). Figure 14-5 shows the stack
operation for each program instruction.
STEP01 IN RI01 Pushes RI01 value onto stack
STEP02 IN RI02 Pushes RI02 value onto stack
STEP03 IN RI03 Pushes RI03 value onto stack
STEP04 IN RI04 Pushes RI04 value onto stack
STEP05 AVE Pops Value4 to Value1 from stack, averages them, and
pushes Average onto stack

Example of Stack Operation for Polyadic Instruction to Solve

RO01 = (RI01 + RI02 + RI03 + RI04) / 4

IN RI01 IN RI02 IN RI03 IN RI04 AVE

S4 Value4
S3 Value3 S3 Value3
S2 Value2 S2 Value2 S2 Value2
S1 Value1 S1 Value1 S1 Value1 S1 Value1 S1 Average
Stack
Registers
(up to 16)

LEGEND:
Stack Stack
Push Pop

Figure 14-5. Example of Stack Operation for Polyadic Instruction

375
B0193AX – Rev AB 14. CALC – Calculator Block

14.6.4 Instruction Definition Convention


Section 14.6.5 uses a notational convention to describe the syntactical options available for an
instruction, as illustrated below for the Add instruction:
ADD
ADD c
ADD {RIxx, ROxx, Mxx}
(Add)
[Descriptions and examples appear here.]
This means that the Add instruction has the following four possible com-
mand line syntaxes:
 The opcode ADD alone. This pops the top two values on the stack,
adds them, and pushes the result onto the stack. The popped val-
ues are lost.
 The opcode ADD with integer constant c as the only command line
argument. This pops the c quantity of values at the top of the
stack, adds them, and pushes the result onto the stack. The
popped values are lost.
 The opcode ADD with exactly one of the operands RIxx, ROxx, or
Mxx. This pops the value at the top of the stack, adds the specified
operand to it, and pushes the result onto the stack. The popped
value is lost.

NOTE
Note that when operands are enclosed in curly brackets, you must select exactly one
from the group.

Following the syntax specifications, are the English-language meaning of the opcode, for example,
(Add), and the description and examples for the instruction’s use.
The location of the stack pointer after the execution of an instruction is indicated by an italicized
expression such as the following: sptr(after) = sptr(before) + 1. This means that the stack pointer
after the instruction has executed is one higher than it was before. Since the stack grows toward
high memory, this means that a value has been pushed onto the stack by the instruction.
Similarly, the expression sptr(after) = sptr(before) - 1 means that one value has been popped off the
stack by the instruction. The polyadic instructions finish with the stack pointer in the first posi-
tion of the stack, which is referred to as stackbottom.
One instruction, CST, finishes with the stack pointer one position lower than stackbottom, with
the pointer waiting for the first push. After CST, sptr(after) = stackbottom -1.

376
14. CALC – Calculator Block B0193AX – Rev AB

14.6.5 Instruction Definitions


The CALC block instructions are defined below in alphabetical order.

NOTE
The examples show the program step number preceding the instruction, that is, in
the instruction 17 ABS, 17 is the step number.

ABS (Absolute Value)


ABS reads the contents of the accumulator and returns the absolute value
to the accumulator, overwriting the original contents. sptr(after) =
sptr(before).
Example:
Accumulator = -.7853983 or +.7853983
17 ABS Compute absolute value of accumulator.
Accumulator = +.7853983
ACOS (Arc Cosine)
ACOS reads the value (cosine function value) in the accumulator and com-
putes the value, in radians, of the first or second quadrant angle that has
this cosine value. It then stores the angle value into the accumulator, over-
writing the original cosine value, which must have an absolute value equal
to or less than one. sptr(after) = sptr(before).
An attempt to ACOS a value > 1 or < -1 causes the instruction to be
skipped and writes a “3” (ACOS run-time error) to the PERROR parame-
ter.
Example 1:
Accumulator = 0.7071
17 ACOS Compute arc cosine of accumulator.
Accumulator = +0.7853983 (Pi/4) radians. (Pi/4 radians
= 45 degrees)

Example 2:
Accumulator = -0.5000
27 ACOS Compute arc cosine of accumulator.
Accumulator = 2.0944 (2*Pi/3) radians. (2*Pi/3 radians =
120 degrees)
ADD
ADD c
ADD {RIxx, ROxx, Mxx}
(Add)
ADD (or ADD c) reads the values from the top two stack locations (or a
specified number c of stack values), adds them, decrements the stack
pointer, and writes the sum into the new accumulator location (the new

377
B0193AX – Rev AB 14. CALC – Calculator Block

top of stack location). This overwrites the first operand and isolates the
second and any later operands from any further access. For ADD, sptr(after)
= sptr(before) - 1. For ADD c, sptr(after) = sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter. The same action
occurs if ADD has no operand and there is only one value on the stack.
ADD RIxx reads the value stored in RIxx (the CALC’s Real Input parame-
ter xx), adds it to the value that it pops from the stack, then pushes the
result back onto the stack. ADD ROxx and ADD Mxx do the same for the
values stored at ROxx and memory location xx, respectively. sptr(after) =
sptr(before).
ALN (Natural Antilog)
ALN reads the value in the accumulator, computes the natural antiloga-
rithm (base e) of the value, and writes the result to the accumulator, over-
writing the original contents. sptr(after) = sptr(before).
Example:
Accumulator = +0.69347
17 ALN Compute natural antilogarithm of accumulator.
Accumulator = +2.0000
ALOG (Common Antilog)
ALOG reads the value in the accumulator, computes the base 10 antiloga-
rithm of the value, and writes it to the accumulator, overwriting the origi-
nal contents. sptr(after) = sptr(before).
Example 1:
Accumulator = +1.30103
17 ALOG Compute common antilog of accumulator.
Accumulator = +20.0000

Example 2:
Accumulator = -3.00000
27 ALOG Compute common antilog of accumulator.
Accumulator = +0.00100
AND
AND c
AND {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
(Logical And)
AND performs a logical “and” of the contents of the specified operands and
stack locations.
If blank is specified, all stack locations are ANDed together, and the result
is written into the accumulator (the new top of stack location). This over-
writes the first operand and isolates the other operands from any further
access. sptr(after) = stackbottom.

378
14. CALC – Calculator Block B0193AX – Rev AB

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 one operand is specified, the operand is ANDed with the accumulator,
and the result replaces the accumulator. sptr(after) = sptr(before).
If ~ is specified, the operand value is inverted prior to being used.
Before the operand Mxx is used in the calculation, its value is truncated to
an integer; if the result is 0 the operand value is considered False, other-
wise it is True.
Example 1:
11 CST Clears the stack.
BI01 = True
BI07 = False
BO03 = True
BI14 = True
12 IN BI01 Puts BI01 into accumulator.
13 IN BI07 Puts BI07 into accumulator. The prior value is pushed
down one stack location.
14 IN BO03 Puts BO03 into accumulator. The prior values are
pushed down one stack location.
15 IN BI14 Puts BI14 into accumulator. The prior values are
pushed down one stack location.
16 AND Performs the logical AND function on the 4 stack
locations, overwriting the True value loaded in from
BI01. The other values are inaccessible.
Accumulator = 0 (False)

Example 2:
11 CST Clears the stack.
BI01 = True
BI02 = True
BI03 = False
12 IN BI01 Puts BI02 into accumulator.
13 AND BI02 Performs the logical AND of BI02 and the
accumulator and stores the result on the stack.
14 AND ~BI03 Inverts the BI03 value and performs the logi-
cal AND of this value with the accumulator
and stores the result on the stack.
Accumulator = True

379
B0193AX – Rev AB 14. CALC – Calculator Block

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)
ASIN (Arc Sine)
ASIN reads the value (sine function value) in the accumulator and com-
putes the value, in radians, of the first or fourth quadrant angle that has
this sine value. It then stores the angle value into the accumulator, over-
writing the original sine value, which must have an absolute value equal to
or less than one. sptr(after) = sptr(before).
An attempt to ASIN a value > 1 or < -1 causes the instruction to be
skipped and writes a “2” (ASIN run-time error) to the PERROR parame-
ter.
Example 1:
Accumulator = 0.7071
17 ASIN Compute arc sine of accumulator.
Accumulator = +0.7853983 (Pi/4) radians.
(Pi/4 radians = 45 degrees)

380
14. CALC – Calculator Block B0193AX – Rev AB

Example 2:
Accumulator = -0.5000
27 ASIN Compute arc sine of accumulator.
Accumulator = -0.5236 (-Pi/6) radians.
(-Pi/6 radians = -30 degrees)
ATAN (Arc Tangent)
ATAN reads the value (tangent function value) in the accumulator, com-
putes the value, in radians, of the first or fourth quadrant angle that has
this tangent value. It then stores the angle value into the accumulator,
overwriting the original tangent value. sptr(after) = sptr(before).
Example 1:
Accumulator = 1.000
17 ATAN Compute arc tangent of accumulator.
Accumulator = +.7853983 (Pi/4) radians.
(Pi/4 radians = 45 degrees)

Example 2:
Accumulator = -0.5000
27 ATAN Compute arc tangent of accumulator.
Accumulator = -.4636476 radians
AVE
AVE c
AVE {RIxx, ROxx, Mxx}
(Average)
AVE reads all the values from the stack, computes the mean algebraic
value, decrements the stack pointer, and writes this value into the new
accumulator location (the new top of stack location). This overwrites the
first operand and isolates the other operands from any further access.
sptr(after) = stackbottom.
AVE c reads the top c values from the stack, computes the mean algebraic
value of the c topmost values on the stack, writes this value into the c’th
position from the top of the stack, and sets the new top of the stack (the
accumulator) to this position. sptr(after) = sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
AVE RIxx reads the value stored in RIxx (the CALC’s Real Input parame-
ter xx), computes the mean algebraic value of the RIxx value and the value
that it pops from the stack, and then pushes the result onto the stack. AVE
ROxx and AVE Mxx do the same for the values stored at ROxx and mem-
ory location xx, respectively. sptr(after) = sptr(before).

381
B0193AX – Rev AB 14. CALC – Calculator Block

Example 1:
11 CST Clears the stack.
RI01 = 12.3485
RI02 = 3,73182
RI03 = -2.0037
RI04 = -0.8369
12 IN RI01 Places RI01 into accumulator.
13 IN RI02 Places RI02 into accumulator and pushes the RI01
value down one stack location.
14 IN RI03 Places RI03 into accumulator and pushes the prior
values down one stack location.
15 IN RI04 Places RI04 into accumulator and pushes the prior
values down one stack location.
16 AVE Reads all the values from the stack, calculates the mean
algebraic value for the stack values, and stores the result
into the accumulator, overwriting the RI01 value. The
other values are inaccessible.
Accumulator = 3.30993

Example 2:
RI01 = 12.3485
M01 = 3.73182
11 IN RI01 Places RI01 into accumulator.
12 AVE M01 Calculates the mean algebraic value for RI01
and M01 and stores the result on the stack.
Accumulator = 8.04016
BIF s (Branch If False)
BIF branches to the step number designated by s if the value in the accu-
mulator (the current top of stack location) is 0.0. sptr(after) = sptr(before).
BIF is identical to BIZ
BII s (Branch If Initializing)
BII s branches to the step number designated by s if the CALC block is
initializing this execution cycle. sptr(after) = sptr(before).
An attempt to branch to a step number less than or equal to the current
step number or greater than the step number containing the END state-
ment (50 if there is no END step) writes a “-4” (invalid goto syntax error)
to the PERROR parameter.
BIN s (Branch If Negative)
BIN s branches to the step number designated by s if the value in the
accumulator (the current top of stack location) is less than 0.0. sptr(after)
= sptr(before).

382
14. CALC – Calculator Block B0193AX – Rev AB

An attempt to branch to a step number less than or equal to the current


step number or greater than the step number containing the END state-
ment (50 if there is no END step) writes a “-4” (invalid goto syntax error)
to the PERROR parameter.
BIP s (Branch If Positive or Zero)
BIP s branches to the step number designated by s if the value in the
accumulator (the current top of stack location) is greater than or equal to
0.0. sptr(after) = sptr(before).
An attempt to branch to a step number less than or equal to the current
step number or greater than the step number containing the END state-
ment (50 if there is no END step), writes a “-4” (invalid goto syntax error)
to the PERROR parameter.
BIT s (Branch If True)
BIT s branches to the step number designated by s if the value in the
accumulator (the current top of stack location) is non-zero. sptr(after) =
sptr(before).
An attempt to branch to a step number less than or equal to the current
step number or greater than the step number containing the END state-
ment (50 if there is no END step), writes a “-4” (invalid goto syntax error)
to the PERROR parameter.
BIZ s (Branch If Zero)
BIZ s branches to the step number designated by s if the value in the
accumulator (the current top of stack location) is 0.0. sptr(after) =
sptr(before).
An attempt to branch to a step number less than or equal to the current
step number or greater than the step number containing the END state-
ment (50 if there is no END step), writes a “-4” (invalid goto syntax error)
to the PERROR parameter.
CBD {ROxx, BOxx, IOxx, LOxx}
(Clear Bad Status)
CBD clears the Bad status bit of the specified output parameter to False. Its
effect is identical in Auto or Manual mode. sptr(after) = sptr(before).
Use of no operands, constant operands, or input operands writes a “-2”
(invalid I/O) to the PERROR parameter during block validation and the
block is undefined.
CE {ROxx, BOxx, IOxx, LOxx}
(Clear Error Status)
CE clears the Error status bit of the specified output parameter to False. Its
effect is identical in Auto or Manual mode. sptr(after) = sptr(before).
Invalid values for “xx” (for example, RO06) activate the out-of-range
error.

383
B0193AX – Rev AB 14. CALC – Calculator Block

Use of no operands, constant operands, or input operands writes a “-2”


(invalid I/O) to the PERROR parameter during block validation and the
block is undefined.
CHI (Clear History)
CHI causes all timer history to be cleared, thereby setting all DON, DOFF,
and OSP elements in the program to the inactive state with accumulated
time of zero. sptr(after) = sptr(before).
CHN s (Clear Step History)
CHN s causes the history of any timer in Step s to be cleared, setting any
DON, DOFF, or OSP element in Step s to the inactive state with accumulated
time of zero. sptr(after) = sptr(before).
If s is less than 1 or greater than 50, a “-3” (out-of-range syntax error
value, treated as a run-time error) is written to the PERROR parameter.
CHS (Change Sign)
CHS reads the value in the accumulator, changes the sign of the mantissa,
and writes the result into the accumulator, overwriting the original con-
tents. sptr(after) = sptr(before).
Example 1:
Accumulator = -0.6734592
17 CHS Change sign of accumulator.
Accumulator = +0.6734592

Example 2:
Accumulator = +0.1086372
27 CHS Change sign of accumulator.
Accumulator = -0.1086372
CLA (Clear All Memory Registers)
CLA clears all 24 memory registers. sptr(after) = sptr(before).

CLE (Clear Error)


CLE clears the internal error flag (the PERROR parameter) during pro-
gram execution. PERROR is automatically reset prior to each block execu-
tion. Thereafter it retains the first run-time error encountered during
execution.
CLE also clears the step error (STERR) parameter, which records the step
in which the first run-time error occurred. sptr(after) = sptr(before).
CLM {Mxx} (Clear Memory Register)
CLM Mxx clears the memory register specified by the Mxx operand, where
xx is an index from 01 to 24 (or 1 to 24). sptr(after) = sptr(before).
CLR
CLR {ROxx, BOxx, IOxx, LOxx, Mxx}
(Clear)

384
14. CALC – Calculator Block B0193AX – Rev AB

CLR stores a “0” in the specified operand.


If blank is specified, a “0” is stored in the accumulator, overwriting the
current contents.
If Mxx is specified, a “0” is stored in memory location Mxx.
If any other operand type is specified, a “0” is stored in the specified out-
put, provided the block is in Auto; otherwise the step is skipped. In all
cases, sptr(after) = sptr(before).
CLRB (Clear Packed Boolean)
CLRB b
CLRB clears to 0 a specified bit in the accumulator. If blank is specified, the
bit number is expected to be at the top of the stack and this bit number is
removed from the stack before the instruction is executed. sptr(after) =
sptr(before) - 1.
If the bit number is less than 1 or greater than 16, an “11” (bit error run-
time error) is written to the PERROR parameter.
If the operand b is specified, it indicates a bit number between 1 and 16 in
the accumulator. The stack is not popped in this case. sptr(after) =
sptr(before).
Bit 1 is the most significant bit of the accumulator, and bit 16 is the least
significant bit.
COO {ROxx, BOxx, IOxx, LOxx}
(Clear Out-of-Service Status)
COO clears the Out-of-Service status bit of the specified output parameter
to False. Its effect is identical in Auto or Manual mode. sptr(after) =
sptr(before).
COS (Cosine)
COS reads the value (value of the angle in radians) in the accumulator,
computes the cosine of the angle, and writes the result into the accumula-
tor, overwriting the original contents. sptr(after) = sptr(before).
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.

385
B0193AX – Rev AB 14. CALC – Calculator Block

DEC
DEC n
DEC {ROxx, IOxx, LOxx, Mxx}
(Decrement)
DEC with a blank operand reads the value in the accumulator, algebraically
decreases it by 1.0, and returns the results to the accumulator, overwriting
the original contents. The decremented value is limited to
-16,777,215.
DEC n reads the value in the accumulator, algebraically decreases it by the
integer n, and returns the results to the accumulator. The decremented
value is limited to -16,777,215.
DEC Mxx reads the value in memory location Mxx, algebraically decreases
it by 1.0, and returns the result to Mxx. The decremented value is limited
to -16,777,215.
DEC ROxx reads the value stored at ROxx, algebraically decreases it by 1.0,
and returns the result to ROxx, but only if the block is in Auto. In Manual
the block skips this step. The decremented value is limited to LSCOxx.
DEC IOxx reads the value stored at IOxx, algebraically decreases it by 1,
and returns the result to IOxx, but only if the block is in Auto. In Manual
the block skips this step. The decremented value is limited to -32,768.
DEC LOxx reads the value stored at LOxx, algebraically decreases it by 1,
and returns the result to LOxx, but only if the block is in Auto. In Manual
the block skips this step. The decremented value is limited to
-2,147,483,648.
The stack is unaffected when the operand is other than blank or n. In all
cases, sptr(after) = sptr(before).
Example 1:
RI01 = -5.23
10 IN RI01 Places RI01 into the accumulator.
11 DEC 2 Decrement accumulator by 2.
Accumulator = -7.23. (that is, -5.23 - 2.0)

Example 2:
M02 = 11.2
11 DEC M02 Decrement M02.
M02 = 10.2
DIV
DIV {RIxx, ROxx, Mxx}
(Divide)
DIV reads the values from the top two stack locations, divides the second
operand (divisor) into the first operand (dividend), decrements the stack
pointer, and writes the quotient into the new accumulator location (the
new top of stack location). This overwrites the first operand and isolates
the second operand from any further access. sptr(after) = sptr(before) - 1.

386
14. CALC – Calculator Block B0193AX – Rev AB

DIV RIxx reads the value stored in RIxx (the CALC’s Real Input parame-
ter xx) as the divisor, divides the value (the dividend) that it pops from the
stack, then pushes the result back onto the stack. DIV ROxx and DIV Mxx
do the same for the values stored at ROxx and memory location xx,
respectively. sptr(after) = sptr(before).
An attempt to DIV by zero (divisor = 0) causes the value of 0 to be written
to the stack location at which the result would ordinarily be stored. A “4”
(DIV run-time error) is written to the PERROR parameter.
Example:
RI01 = 12.3485
M01 = 3.73182
12 IN RI01 Pushes RI01 onto top of stack (accumulator)
13 DIV M01 Divides RI01 by M01, and stores the result on
the stack.
Accumulator = +3.30898
DOFF (Delayed OFF}
DOFF t
DOFF produces a logical zero output if the input has been in the logical
DOFF Mxx
zero state for the consecutive length of time specified by the operand.
Once the timer has been activated by a zero value of the input, the output
is forced to logical one and remains in this state during the time-out. Once
the delay has been completed and the output is at logical zero, the output
returns to one as soon as the instruction reads a logical one at the input.
On each cycle, the input is found in the accumulator, and the output is
then written to the accumulator, overwriting the input after it has been
used.
DOFF with blank operand or with a 0 constant operand uses 0.5 seconds as
its delay value. If the operand is the integer t and greater than zero the
value of t indicates the number of seconds in the delay. If the operand is
Mxx, then the delay is determined by the contents of memory location xx.
A positive value in Mxx is used as the delay in seconds, and a negative
value is used as the delay in block execution cycles. If the value of the
memory location changes during the timing cycle, the instruction will
notice the change.
The maximum time delay with format DOFF t is 32,767 seconds, or
approximately 9.1 hours. The maximum delay with format DOFF Mxx can
be obtained by loading the maximum positive floating point value into
Mxx, before the DOFF Mxx instruction is reached in the program. Since
the maximum floating point value is 1038, the delay is 1038 seconds. If the
block period is longer than 1.0 second, an even longer delay can be
obtained by loading Mxx with the value of -1038. (The delay times obtain-
able with this instruction are effectively unlimited.)
The TIMINI parameter controls DOFF behavior at block initialization
time to avoid unexpected behavior of the DOFF timer and, possibly, unpre-
dicted activation of the CALC block’s outputs. If the TIMINI parameter
is set (TIMINI = 1) or (TIMINI = 3), the timer is considered to have been

387
B0193AX – Rev AB 14. CALC – Calculator Block

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 initializa-
tion, and a zero in the accumulator at block initialization begins to time
the specified delay. The timer, therefore, begins to run.
In all cases, sptr(after) = sptr(before).
Example:
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

BI01

8 sec 8 sec
BO04

Figure 14-6. Timing Diagram for DOFF Example

DON (Delayed ON)


DON t
DON produces a logical one output if the input has been in the logical one
DON Mxx
state for the consecutive length of time specified by the operand. The out-
put returns to zero as soon as the instruction reads a zero in the input. On
each cycle, the input is found in the accumulator, and the output is then
written to the accumulator, overwriting the input after it has been used.
DON with blank operand or with a 0 constant operand uses 0.5 seconds as
its delay value. If the operand is integer t and greater than zero the value of
t indicates the number of seconds in the delay. If the operand is Mxx, then
the delay is determined by the contents of memory location xx. A positive
value in Mxx is used as the delay in seconds, and a negative value is used as
the delay in block execution cycles. If the value of the memory location
changes during the timing cycle, the instruction will notice the change.

388
14. CALC – Calculator Block B0193AX – Rev AB

The maximum time delay with format DON t is 32,767 seconds, or


approximately 9.1 hours. The maximum delay with format DON Mxx can
be obtained by loading the maximum positive floating point value into
Mxx, before the DON 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 DON behavior at block initialization time
to avoid unexpected behavior of the DON timer and, possibly, unpredicted
activation of the CALC block’s outputs. If the TIMINI parameter is set
(TIMINI = 1) or (TIMINI = 3), the timer is considered to have been in
the expired state just before initialization. A zero-to-one transition of the
accumulator after initialization is required in order to start the timer. If the
TIMINI parameter is not set (TIMINI = 0) or (TIMINI = 2), the timer is
considered to have been in the inactive state just before initialization, and
a logical one in the accumulator at block initialization begins to time the
specified delay. The timer, therefore, begins to run.
In all cases, sptr(after) = sptr(before).
Example:
11 IN BI01 Inputs to the accumulator the state of BI01 at the
execution time of each cycle.
12 DON 7 Looks at BI01’s input to the accumulator, uses it to
control the Step 12 DON timer, and writes the
timer result to the accumulator.
13 OUT BO04 Outputs accumulator contents (the results of the
DON 7 instruction) to output BO04. Assume that
the block is in Auto.
BO04 = Step 12 timer output

BI01

7 sec 7 sec
BO04

Figure 14-7. Timing Diagram for DON Example

DUP (Duplicate)
DUP copies the last stack operand back onto the stack. The stack pointer is
advanced one position. sptr(after) = sptr(before) + 1.
END (End Program)

389
B0193AX – Rev AB 14. CALC – Calculator Block

END terminates the program. Any and all statements (including any addi-
tional END statements) following the first END are never executed. If any
skip statement skips over the first END statement, the block program ter-
minates as if the END had been executed.
The END instruction is not required. If there is no END statement, Step 50
(which may be any legal instruction) is the last statement executed, unless
the execution flow lands on an EXIT statement. sptr(after) = sptr(before).
EXIT (Exit Program)
EXIT terminates the program at the current step number. It is useful for
establishing multiple conditional exit points in the program. The EXIT
instruction is functionally equivalent to a GTO instruction pointing to an
END statement. You can use as many EXIT statements as you need.
sptr(after) = sptr(before).
EXP
EXP {RIxx, ROxx, Mxx}
(Exponent)
EXP with blank operand reads the values from the top two stack locations,
raises the first operand (base) to the power of the second operand (expo-
nent), decrements the stack pointer, and writes the result into the new
accumulator location (the new top of stack location). This overwrites the
first operand and isolates the second operand from any further access.
sptr(after) = sptr(before) - 1.
EXP RIxx reads the value stored in RIxx, raises the value that it pops from
the stack to the power of RIxx value, then pushes the result back onto the
stack. EXP ROxx and EXP Mxx do the same for the values stored at ROxx
and memory location xx, respectively. sptr(after) = sptr(before).
An attempt to EXP a negative value (base less than 0) causes the value of
the specified exponent to be written to the stack location that would have
contained the final result if the operation had been successful. A “9” (EXP
run-time error) is written to the PERROR parameter.
If the base is 0 and the exponent is less than or equal to 0, the result of the
operation is 0.0. PERROR is not set.
Example:
RI01 = 1.483
M01 = 3.10
11 IN RI01 Places RI01 into accumulator.
12 EXP M01 Raises RI01 to the power of M01 and pushes the
result on the stack.
Accumulator = +3.392638
FF (Flip-Flop)
FF emulates the function of a traditional set-reset flip-flop. It uses two
operands on the stack as inputs. The first operand is the “set” input and
the second operand is the “reset” input.

390
14. CALC – Calculator Block B0193AX – Rev AB

This instruction writes the output, which corresponds to the “Q” output
of a flip-flop, into the accumulator, overwriting the first operand (the “set”
value) and making the second operand (the “reset” value) inaccessible.

Table 14-13. Truth Table for FF Instruction

S R Q
0 0 No Change
0 1 0
1 0 1
1 1 No Change

The “No Change” condition causes the value of the flip-flop after the pre-
vious execution cycle, which is retained in a block data variable, to be writ-
ten to the accumulator. sptr(after) = sptr(before) - 1.
Example:
BI01 = True
BI02 = False
12 IN BI01 Puts BI01 into accumulator – has a True value for
“set.”
13 IN BI02 Puts BI02 into accumulator – has a False value for
“reset.” The “set” input is pushed down one stack
location.
14 FF Reads the two operands, determines the output
according to the truth table above (output = 1 for
this example), and writes it into the accumulator,
overwriting “set” input. The output (1) is also stored
in the block data for use the next execution cycle.
Accumulator = True
15 OUT BO01 Writes the accumulator contents (the FF output) to
BO01.
BO01 = True

The TIMINI parameter controls FF behavior at block initialization time


to avoid undesired operation of the CALC block's boolean outputs. This
option will only work when the CALC block is being modified in the
Integrated Control Configurator. If the TIMINI option is set and the
CALC block is loaded from a checkpoint file, the station is rebooted, or
the compound is turned ON or OFF, the FF output will be treated as if an
initialization has occurred. If the TIMINI parameter is set (TIMINI = 2)
or (TIMINI = 3), and the block has been modified, the FF output will not
be treated as if an initialization has occurred. If the TIMINI parameter is
set (TIMINI =0) or (TIMINI =1), FF output initialization will occur.

391
B0193AX – Rev AB 14. CALC – Calculator Block

GTI
GTI {RIxx, ROxx, IIxx, IOxx, Mxx}
(Go To Indirect)
GTI branches to the step number contained in the accumulator. GTI
RIxx branches to the step number specified by the current contents of
RIxx. Similarly for the other operand types. When the destination is in an
operand of real data type (accumulator, RIxx, ROxx, or Mxx), the operand
contents are truncated to an integer before use. sptr(after) = sptr(before).
An attempt to branch to a step number less than or equal to the current
step number or greater than the step number containing the END state-
ment (50 if there is no END step) writes a “10” (index run-time error) to
the PERROR parameter.
GTO s (Go To)
GTO s branches to the step number designated by s. sptr(after) =
sptr(before).
An attempt to branch to a step number less than or equal to the current
step number or greater than the step number containing the END state-
ment (50 if there is no END step) writes a “-4” (invalid goto syntax error)
to the PERROR parameter.
IDIV (Integer Division)
IDIV Mxx
IDIV, with either blank or Mxx operand, reads the numbers from the top
two stack locations, truncates the values, divides the second operand (divi-
sor) into the first operand (dividend), decrements the stack pointer, and
writes the truncated quotient into the new accumulator location (the new
top of stack location). This overwrites the first operand and isolates the
second operand from any further access.
The result of integer division is always truncated, so that the quotient
returned to the stack is always a whole number. When an operand Mxx is
specified, the quotient is handled as above, and the integer remainder (the
integer modulus) is stored in memory location xx. The integer modulus is
also always a whole number. In all cases, sptr(after) = sptr(before) - 1.
IDIV does not work for numbers greater than 32,767.
If the truncated value of the divisor is 0, the value 0.0 is written into the
stack location where the quotient would have been placed. The value “4”
(divide run-time error) is written to the PERROR parameter. The value of
Mxx (if specified as an operand) is unchanged.
Example:
RI01 = 19.713
RI02 = 5.9021
15 IN RI01 Places RI01 into accumulator.
16 IN RI02 Places RI02 into accumulator. The prior value is
pushed down one stack location.

392
14. CALC – Calculator Block B0193AX – Rev AB

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 accumula-
tor location (the new top of stack location). This overwrites the first oper-
and 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.
IMOD does not work for numbers greater than 32,767.
If the truncated value of the divisor is 0, the value 0.0 is written into the
stack location where the 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
15 IN RI01 Places RI01 into accumulator.
16 IN RI02 Places RI02 into accumulator. The prior value is
pushed down one stack location.
17 IMOD The integer modulus, which is 4.0, overwrites the value
of 19.713. The value of 5.9021 is inaccessible.
IN
IN {n, RIxx, ROxx, IIxx, IOxx, BIxx, BOxx, Ixx, Oxx, Mxx, ~RIxx, ~ROxx,
~IIxx,
~IOxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
(Input)
IN with no operands pushes the value 0.0 onto the stack. IN with operand
of type n (any integer), RIxx, ROxx, or Mxx pushes the operand value
onto the stack. IN IIxx and IN IOxx convert the operand value to real
data type and then push the result onto the stack. IN with one of the bool-
ean operands (BIxx, BOxx, Ixx, or Oxx) pushes the value 1.0 when the
operand value is True and 0.0 when it is False.
IN with inverted Boolean operand (~BIxx, ~BOxx, ~Ixx, or ~Oxx) pushes
the value 0.0 onto the stack when the parameter value is True and 1.0
when it is false. IN with inverted real or integer operand (~RIxx, ~ROxx,
~IIxx, ~IOxx, or ~Mxx) pushes the value 0.0 when the parameter is non-
zero, and 1.0 when the parameter value is 0.0. In all cases, sptr(after) =
sptr(before) + 1.

393
B0193AX – Rev AB 14. CALC – Calculator Block

INB (Input Indexed Boolean)


INB {IIxx, Mxx}
INB with blank operand reads the value in the accumulator, truncates it to
an integer, and uses the result as the index of the BIxx parameter to be
read. The value of BIxx is then pushed onto the stack. INB IIxx and INB
Mxx operate similarly, except that the index of the BIxx parameter is found
in IIxx or Mxx. (If in Mxx, the real contents of Mxx are first truncated to
an integer.)
A value of True in the indexed boolean is written to the stack as 1.0 and a
value of False is written as 0.0. 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 16, a “10” (index run-time error) is written to
the PERROR parameter.
INC
INC n
INC {ROxx, IOxx, LOxx, Mxx}
(Increment)
INC with a blank operand reads the value in the accumulator, algebraically
increases it by 1.0, and returns the results to the accumulator, overwriting
the original contents. The incremented value is limited to
-16,777,215.
INC n reads the value in the accumulator, algebraically increases it by the
integer n, and returns the results to the accumulator. The incremented
value is limited to -16,777,215.
INC Mxx reads the value in memory location Mxx, algebraically increases
it by 1.0, and returns the result to Mxx. The incremented value is limited
to -16,777,215.
INC ROxx reads the value stored at ROxx, algebraically increases it by 1.0,
and returns the result to ROxx, but only if the block is in Auto. In Manual
the block skips this step. The incremented value is limited to HSCOxx.
INC IOxx reads the value stored at IOxx, algebraically increases it by 1,
and returns the result to IOxx, but only if the block is in Auto. In Manual
the block skips this step. The incremented value is limited to -32,768.
INC LOxx reads the value stored at LOxx, algebraically increases it by 1,
and returns the result to LOxx, but only if the block is in Auto. In Manual
the block skips this step. The incremented value is limited to
-2,147,483,648.
The stack is unaffected when the operand is other than blank or n. In all
cases, sptr(after) = sptr(before).
Example 1:
RI01 = -5.23
10 IN RI01 Places RI01 into the accumulator.
11 INC 2 Increments accumulator by 2.
Accumulator = -3.23 (-5.23 + 2.0)

394
14. CALC – Calculator Block B0193AX – Rev AB

Example 2:
M02 = 11.2
11 INC M02 Increments M02 by 1.
M02 = 12.2
INH {LIxx, (Input High Order)
LOxx}
INH reads the high order 16 bits of parameter LIxx or LOxx as an integer
and pushes it onto the stack. sptr(after) = sptr(before) + 1.
INL {LIxx, (Input Low Order)
LOxx}
INL reads the low order 16 bits of parameter LIxx or LOxx as an integer
and pushes it onto the stack. sptr(after) = sptr(before) + 1.
INR (Input Indexed Real)
INR {IIxx, Mxx}
INR with blank operand reads the value in the accumulator, truncates it to
an integer, and uses the result as the index of the RIxx parameter to be
read. The value of RIxx is then pushed onto the stack. INR IIxx and INR
Mxx operate similarly, except that the index of the RIxx parameter is found
in IIxx or Mxx. (If in Mxx, the real contents of Mxx are first truncated to
an integer.) sptr(after) = sptr(before) + 1.
If the value of the index (the contents of the accumulator, IIxx, or Mxx) is
less than 1 or greater than 8, a “10” (index run-time error) is written to the
PERROR parameter.
INS {RIxx, BIxx, IIxx, LIxx, ROxx, BOxx, IOxx, LOxx}
(Input Status)
INS pushes the 16-bit status of the specified input or output parameter
onto the stack. The status value is not modified. sptr(after) = sptr(before) +
1.
The status integer is made up of the following fields: (Bit 0 is the least sig-
nificant bit; Bit 15 is most significant.)

Bit Definition
0 to 4 Data Type
5 to 7 OM Status
8 Bad
9 Secure/Release
10 Acknowledge
11 Out of Service
12 Shadow Parameter
13 Limited High
14 Limited Low
15 Propagated Error

395
B0193AX – Rev AB 14. CALC – Calculator Block

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.

10 IN 5 Loads accumulator with value 5.0.


11 STM M04 Places value 5.0 into M04.
12 IN 9 Loads accumulator with value 9.0.
13 STM M05 Places value 9.0 into M05.
14 LACI M04 Loads accumulator with contents of M05 (9.0).
15 OUT RO01 Outputs accumulator value of 9.0 to RO01.
LN (Natural Logarithm)
LN reads the value (which must be positive) in the accumulator, computes
the natural (base e) 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 an “8” (LN
run-time error) to the PERROR parameter.
Example 1:
Accumulator = +1000.00
17 LN Computes natural logarithm of accumulator
Accumulator = +6.907755

Example 2:
Accumulator = +0.130570
27 LN Computes natural logarithm of accumulator
Accumulator = 2.035846

396
14. CALC – Calculator Block B0193AX – Rev AB

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}
(Maximum)
MAX reads all the values from the stack, selects the maximum algebraic
value, decrements the stack pointer, and writes this value into the new
accumulator location (the new top of stack location). This overwrites the
first operand and isolates other operands from any further access.
sptr(after) = stackbottom.
MAX c reads the top c values from the stack, selects the maximum alge-
braic value from the c topmost values on the stack, writes this value into
the c’th position from the top of the stack, and sets the new top of the
stack (the accumulator) to this position. sptr(after) = sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
MAX RIxx reads the value stored in RIxx (the CALC’s Real Input param-
eter xx), selects the maximum algebraic value from the RIxx value and the
value that it pops from the stack, and then pushes the result onto the
stack. MAX ROxx and MAX Mxx do the same for the values stored at ROxx
and memory location xx, respectively. sptr(after) = sptr(before).
Example 1:
11 CST Clears the stack.
RI01 = 12.3485
RI02 = 3.73182
RI03 = -2.0037
RI04 = -0.8369

397
B0193AX – Rev AB 14. CALC – Calculator Block

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 IN RI01 Places RI01 into accumulator.
12 MAX M01 Selects the maximum algebraic value from M01
and the value that it pops from the stack and
stores the result on the stack.
Accumulator = 12.3485
MAXO Identical to MAX
MEDN (Median)
MEDN reads all the values from the stack, determines the median value,
decrements the stack pointer, and writes this value into the new accumula-
tor location (the new top of stack location). This overwrites the first oper-
and and isolates the other operands from any further access.
The median value is determined as follows: The stack values are arranged
conceptually in ascending order; then the median is the middle value if
the number of operands is odd, or the average of the two middle values if
the number of operands is even. sptr(after) = stackbottom.
Example:
11 CST Clears the stack.
RI01 = 12.3485
RI02 = 3.73182
RI03 = -2.0037
RI04 = -0.8369
12 IN RI01 Places RI01 into accumulator.
13 IN RI02 Places RI02 into accumulator and pushes the RI01 value
down one stack location.
14 IN RI03 Places RI03 into accumulator and pushes the prior values
down one stack location.
15 IN RI04 Places RI04 into accumulator and pushes the prior values
down one stack location.

398
14. CALC – Calculator Block B0193AX – Rev AB

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}
(Minimum)
MIN reads all the values from the stack, selects the minimum algebraic
value, decrements the stack pointer, and writes this value into the new
accumulator location (the new top of stack location). This overwrites the
first operand and isolates the other operands from any further access.
sptr(after) = stackbottom.
MIN c reads the top c values from the stack, selects the minimum alge-
braic value from the c topmost values on the stack, writes this value into
the c’th position from the top of the stack, and sets the new top of the
stack (the accumulator) to this position. sptr(after) = sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
MIN RIxx reads the value stored in RIxx (the CALC’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).
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

399
B0193AX – Rev AB 14. CALC – Calculator Block

Example 2:
RI01 = 12.3485
M01 = 3.73182
11 IN RI01 Places RI01 into accumulator.
12 MIN M01 Selects the minimum algebraic value from M01
and the value that it pops from the stack and
stores the result on the stack.
Accumulator = 3.73182
MRS (Master Reset Flip-Flop)
MRS emulates the function of a traditional reset-dominant flip-flop. It uses
two operands on the stack as inputs. The first operand is the “set” input
and the second operand is the “reset” input.
This instruction writes the output, which corresponds to the “Q” output
of a flip-flop, into the accumulator, overwriting the first operand (the “set”
value) and making the second operand (the “reset” value) inaccessible.
Note that the MRS instruction provides the same functionality as the FF,
except that the reset input has priority over the set input. If both inputs
take on a logical one value, the flip-flop is forced to reset.

Table 14-14. Truth Table for MRS Instruction

S R Q
0 0 No Change
0 1 0
1 0 1
1 1 0

The “No Change” condition causes the value of the MRS flip-flop after the
previous execution cycle, which is retained in a block data variable, to be
written to the accumulator. sptr(after) = sptr(before) - 1.
Example:
BI01 = True
BI02 = True
12 IN BI01 Puts BI01 into accumulator – has a True value for “set.”
13 IN BI02 Puts BI02 into accumulator – has a True value for
“reset.” The “set” input is pushed down one stack
location.
14 MRS Reads the two operands, determines the output
according to the truth table above (output = 0 for this
example), and writes it into the accumulator,
overwriting “set” input. The output (0) is also stored in
the block data for use the next execution cycle.
Accumulator = False

400
14. CALC – Calculator Block B0193AX – Rev AB

15 OUT BO01 Writes the accumulator contents (the MRS output) to


BO01.
BO01 = False

The TIMINI parameter controls MRS behavior at block initialization


time to avoid undesired operation of the CALC block's boolean outputs.
This option will only work when the CALC block is being modified in the
Integrated Control Configurator. If the TIMINI option is set and the
CALC block is loaded from a checkpoint file, the station is rebooted, or
the compound is turned ON or OFF, the MRS output will be treated as if
an initialization has occurred. If the TIMINI parameter is set (TIMINI =
2) or (TIMINI = 3), and the block has been modified, the MRS output
will not be treated as if an initialization has occurred. If the TIMINI
parameter is set (TIMINI =0) or (TIMINI =1), MRS output initialization
will occur.
MUL
MUL c
MUL {RIxx, ROxx, Mxx}
(Multiply)
MUL (or MUL c), reads the values from the top two stack locations (or a
specified number (c) of stack locations), multiplies them, decrements the
stack pointer, and writes the product into the new accumulator location
(the new top of stack location). This overwrites the first operand and iso-
lates the second and any later operand from any further access. For MUL,
sptr(after) = sptr(before) - 1. For MUL 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 MUL has no operand and there is only one value on the stack.
MUL RIxx reads the value stored in RIxx (the CALC’s Real Input parame-
ter xx), multiplies it with the value that it pops from the stack, then pushes
the result back on the stack. MUL ROxx and MUL Mxx do the same for the
values stored at ROxx and memory location xx, respectively. sptr(after) =
sptr(before).
Example 1 – Calculate (RI01 * M01):
RI01 = 12.3485
M01 = 3.73182
12 IN RI01 Places RI01 into accumulator.
13 MUL M01 Multiplies the value it pops from the stack by
M01 and stores the result on the stack.
Accumulator = 46.08238

401
B0193AX – Rev AB 14. CALC – Calculator Block

Example 2 – Calculate (RI01 + RI02) * (RI03 - RI04):


RI01 = 12.3485
RI02 = 3.73182
RI03 = 8.919
RI04 = 5.199
12 IN RI01 Places RI01 into accumulator.
13 ADD RI02 Adds RI02 to the value that it pops from the
stack and stores (pushes) the result on the stack.
Accumulator = 16.08032
14 IN RI03 Places RI03 into accumulator.
15 SUB RI04 Subtracts RI04 from the value that it pops from
the stack 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.
NAND
NAND c
NAND {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 one operand is specified, the operand is NANDed with the accumula-
tor, and the result replaces the accumulator. sptr(after) = sptr(before).
If ~ is specified, the operand value is inverted prior to being used.
Before the operand Mxx is used in the calculation, its value is truncated to
an integer; if the result is 0 the operand value is considered False, other-
wise it is True.

402
14. CALC – Calculator Block B0193AX – Rev AB

Example 1:
11 CST Clears the stack.
BI01 = True
BI07 = False
BO03 = True
BI14 = True
12 IN BI01 Puts BI01 into accumulator.
13 IN BI07 Puts BI07 into accumulator. The prior value is pushed
down one stack location.
14 IN BO03 Puts BO03 into accumulator. The prior values are
pushed down one stack location.
15 IN BI14 Puts BI14 into accumulator. The prior values are
pushed down one stack location.
16 NAND Performs the logical NAND function, and stores result
into the accumulator, overwriting the True value
loaded in from BI01. The other values are inaccessible.
Accumulator = True

Example 2:
BI04 = False
BO01 = True
11 IN BI04 Puts BI04 into accumulator.
12 NAND BO01 Performs the logical NAND of BI04 and
BO01 and stores the result on the stack.
Accumulator = True
NANX (Packed Logical Not And)
NANX c
NANX reads all the values or a specified number (c) of values from the
stack, performs a 16-bit bitwise logical “nand” function on them, and
stores the result into the new accumulator location (the new top of stack).
This overwrites the first operand and isolates the other operands from any
further access. Logical Not And is defined as producing a False output if
all of the inputs are True and a True output if any one of the inputs is
False.
For NANX, sptr(after) = stackbottom. For NANX c, sptr(after) = sptr(before) - c
+ 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
Each operand is truncated from real to 16-bit integer type before it is used
in the calculation. The final result is stored on the stack as a real value.

403
B0193AX – Rev AB 14. CALC – Calculator Block

Example:
II01 = 5 (0000000000000101)
II02 = 1 (0000000000000001)
RI01 = 13.078 (0000000000001101)
13 IN II01 Puts II01 into accumulator. The prior value is pushed
down one stack location.
14 IN II02 Puts II02 into accumulator. The prior values are pushed
down one stack location.
15 IN RI01 Puts RI01 into accumulator. Value is truncated to 13 and
used as 0000000000001101 in the calculation. The prior
values are pushed down one stack location.
16 NANX 3 Performs the packed logical NANX function and stores
the result, 1111111111111110, into the accumulator,
overwriting the value of II01. The other values are
inaccessible.
Accumulator = -2.0
NOP (No Operation)
This instruction causes the step to be ignored. The program continues
with the next instruction. sptr(after) = sptr(before).
NOR
NOR c
NOR {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
(Logical Not Or)
NOR performs a logical “nor” (not or) of the contents of the specified oper-
ands and stack locations. Logical Not Or is defined as producing a False
output if any input is True and a True output if all of the inputs are False.
If blank is specified, all stack locations are NORed together, and the result
is written into the accumulator (the new top of stack location). This over-
writes the first operand and isolates the other operands from any further
access. sptr(after) = stackbottom.
If c is specified, the last c stack locations are NORed together, removed
from the stack, and the result stored in the accumulator. sptr(after) =
sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
If one operand is specified, the operand is NORed with the accumulator,
and the result replaces the accumulator. sptr(after) = sptr(before).
If ~ is specified, the operand value is inverted prior to being used.
Before the operand Mxx is used in the calculation, its value is truncated to
an integer; if the result is 0 the operand value is considered False, other-
wise it is True.
Example 1:
11 CST Clears the stack.

404
14. CALC – Calculator Block B0193AX – Rev AB

BI01 = True
BI07 = False
BO03 = True
BI14 = True
12 IN BI01 Puts BI01 into accumulator.
13 IN BI07 Puts BI07 into accumulator. The prior value is pushed
down one stack location.
14 IN BO03 Puts BO03 into accumulator. The prior values are
pushed down one stack location.
15 IN BI14 Puts BI14 into accumulator. The prior values are
pushed down one stack location.
16 NOR Performs the logical NOR function, and stores the
result into the accumulator, overwriting the True value
loaded in from BI01. The other values are inaccessible.
Accumulator = False

Example 2:
BI04 = False
BO01 = True
12 IN BI04 Puts BI04 into accumulator.
12 NOR BO01 Performs the logical NOR of BI04 and BO01
and stores the result on the stack.
Accumulator = False
NORX (Packed Logical Not Or)
NORX c
NORX reads all the values or a specified number (c) of values from the
stack, performs a 16-bit bitwise logical “nor” function on them, and stores
the result into the new accumulator location (the new top of stack). This
overwrites the first operand and isolates the other operands from any fur-
ther access. Logical Not Or is defined as producing a False output if any
input is True and a True output if all of the inputs are False.
For NORX, sptr(after) = stackbottom. For NORX c, sptr(after) = sptr(before) - c
+ 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
Each operand is truncated from real to 16-bit integer type before it is used
in the calculation. The final result is stored on the stack as a real value.
Example:
II01 = 5 (0000000000000101)
II02 = 1 (0000000000000001)
RI01 = 13.078 (0000000000001101)
13 IN II01 Puts II01 into accumulator. The prior value is pushed
down one stack location.

405
B0193AX – Rev AB 14. CALC – Calculator Block

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.)
NXOR
NXOR c
NXOR {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

406
14. CALC – Calculator Block B0193AX – Rev AB

overwrites the first operand and isolates the other operands from any fur-
ther access. sptr(after) = stackbottom.
If c is specified, the last c stack locations are NXORed together, removed
from the stack, and the result stored in the accumulator. sptr(after) =
sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
If one operand is specified, the operand is NXORed with the accumulator,
and the result replaces the accumulator. sptr(after) = sptr(before).
If ~ is specified, the operand value is inverted prior to being used.
Before the operand Mxx is used in the calculation, its value is truncated to
an integer; if the result is 0 the operand value is considered False, other-
wise it is True.
Example 1:
11 CST Clears the stack.
BI01 = True
BI07 = False
BO03 = True
BI14 = True
12 IN BI01 Puts BI01 into accumulator.
13 IN BI07 Puts BI07 into accumulator. The prior value is pushed
down one stack location.
14 IN BO03 Puts BO03 into accumulator. The prior values are
pushed down one stack location.
15 IN BI14 Puts BI14 into accumulator. The prior values are
pushed down one stack location.
16 NXOR Performs the logical NXOR function, and stores result
into accumulator, overwriting the True value loaded in
from BI01. The other values are inaccessible.
Accumulator = False

Example 2:
BI04 = False
BO01 = True
11 IN BI04 Puts BI04 into accumulator.
12 NXOR BO01 Performs the logical NXOR of BI04 and
BO01 and stores the result on the stack.
Accumulator = False

407
B0193AX – Rev AB 14. CALC – Calculator Block

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
OR
OR c
OR {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.

408
14. CALC – Calculator Block B0193AX – Rev AB

If c exceeds the current number of stack operands, a “6” (stack underflow


run-time error) is written to the PERROR parameter.
If one operand is specified, the operand is ORed with the accumulator,
and the result replaces the accumulator. sptr(after) = sptr(before).
If ~ is specified, the operand value is inverted prior to being used.
Before the operand Mxx is used in the calculation, its value is truncated to
an integer; if the result is 0 the operand value is considered False, other-
wise it is True.
Example 1:
11 CST Clears the stack.
BI01 = True
BI07 = False
BO03 = True
BI14 = True
12 IN BI01 Puts BI01 into accumulator.
13 IN BI07 Puts BI07 into accumulator. The prior value is pushed
down one stack location.
14 IN BO03 Puts BO03 into accumulator. The prior values are
pushed down one stack location.
15 IN BI14 Puts BI14 into accumulator. The prior values are
pushed down one stack location.
16 OR Performs the logical OR function, and stores result
into accumulator, overwriting the True value loaded in
from BI01. The other values are inaccessible.
Accumulator = True

Example 2:
BI04 = False
BO01 = True
11 IN BI04 Puts BI04 into accumulator.
12 OR BO01 Performs the logical OR of BI04 and BO01 and
stores the result on the stack.
Accumulator = True
ORX (Packed Logical Or)
ORX c
ORX reads all the values or a specified number (c) of values from the stack,
performs a 16-bit bitwise logical “or” function on them, and stores the
result into the new accumulator location (the new top of stack). This over-
writes the first operand and isolates the other operands from any further
access.
For ORX, sptr(after) = stackbottom. For ORX c, sptr(after) = sptr(before) - c +
1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.

409
B0193AX – Rev AB 14. CALC – Calculator Block

Each operand is truncated from real to 16-bit integer type before it is used
in the calculation. The final result is stored on the stack as a real value.
Example:
11 CST Clears the stack.
BI01 = True (0000000000000001)
II01 = 5 (0000000000000101)
II02 = 0 (0000000000000000)
RI01 = 12.078 (0000000000001100)
12 IN BI01 Puts BI01 into accumulator. Stored as 1.0 and used as
0000000000000001 in the calculation.
13 IN II01 Puts II01 into accumulator. The prior value is pushed
down one stack location.
14 IN II02 Puts II02 into accumulator. The prior values are pushed
down one stack location.
15 IN RI01 Puts RI01 into accumulator. Value is truncated to 12
and used as 0000000000001100 in the calculation. The
prior values are pushed down one stack location.
16 ORX Performs the packed logical OR function and stores the
result, 0000000000001101, into the accumulator,
overwriting the value loaded in from BI01. The other
values are inaccessible.
Accumulator = 13.0
OSP (One-Shot Pulse)
OSP t
OSP with blank operand or with a 0 constant operand uses 0.5 seconds as
OSP Mxx
its pulse width value. If the operand is integer t and greater than zero the
value of t indicates the number of seconds in the pulse width. If the oper-
and is Mxx, then the pulse width is determined by the contents of mem-
ory location xx. A positive value in Mxx is used as the pulse width in
seconds, and a negative value is used as the pulse width in block execution
cycles. If the value of the memory location changes during the timing
cycle, the instruction will notice the change.
The maximum pulse width with format OSP t is 32,767 seconds, or
approximately 9.1 hours. The maximum pulse width with format OSP
Mxx can be obtained by loading the maximum positive floating point
value into Mxx, before the OSP Mxx instruction is reached in the program.
Since the maximum floating point value is 1038, the pulse width is 1038
seconds. If the block period is longer than 1.0 second, an even longer
pulse width can be obtained by loading Mxx with the value of -1038. (The
pulse widths obtainable with this instruction are effectively unlimited.)
OSP generates a non-retriggerable (triggering is disabled while the output
is true) one-shot pulse when the accumulator value makes a zero-to-one
transition. The output remains true for a period specified by the operand,
after which the block resets the output to zero.

410
14. CALC – Calculator Block B0193AX – Rev AB

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 CALC 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

Figure 14-8. Timing Diagram for OSP Example

OUT {ROxx, BOxx, IOxx, Oxx, Mxx, ~BOxx, ~Oxx, ~Mxx}


(Output)
OUT writes the accumulator contents to the output parameter specified by
the operand. When operating in the Manual state, this instruction is
skipped without changing the value of the output, unless the operand is
Mxx or ~Mxx, in which case the operation is executed.
The value of the accumulator is first clamped between 32,767 and
-32,768 and then truncated to an integer value before writing it to an
operand of type IOxx.
Any non-zero value in the accumulator is converted to True in an operand
of type BOxx or Oxx, and a 0.0 value is converted to False. If the operand
is of type ~BOxx or ~Oxx a non-zero value in the accumulator causes a
False to be written and a 0.0 causes a True to be written.

411
B0193AX – Rev AB 14. CALC – Calculator Block

If the operand is of type Mxx, the accumulator value is simply copied to


the specified memory location. If it is of type ~Mxx, any non-zero accu-
mulator value is written to Mxx as the real value 0.0 and an accumulator
value of 0.0 is written to Mxx as real value 1.0.
OUT does not alter the contents or location of the accumulator. sptr(after)
= sptr(before).
Example:
Accumulator = 3.1416
OUT IO02 Writes accumulator value to output IO02.
OUT RO02 Writes accumulator value to output RO02.
OUT ~BO01 Writes accumulator value to output BO01.
IO02 = 3
RO02 = 3.1416
BO01 = False
POP (Pop Stack)
POP removes the value at the top of the stack and discards it. The stack
pointer is decremented to point to the next value on the stack. sptr(after) =
sptr(before) - 1.
PRI ROxx (Propagate Upstream)
PRI allows you to propagate cascade status and bad status from a specified
RInn input, to a specified ROnn output. The RInn input index is loaded
onto the stack by a prior instruction.
This instruction copies the LHI, LLO, INITU, INITC, FS, BAD, and
OOS bits from the status field of RInn to the status field of the ROnn
output. If this operation causes any of these bits to be changed in the sta-
tus of ROnn, an immediate execution of the upstream block is requested.
sptr(after) = sptr(before) - 1.
If the popped index value for RIxx is less than 1 or greater than 8, a “-3”
(out-of-range syntax error value, treated as a run-time error) is written to
the PERROR parameter.
Example:
31 IN 4 Loads “4” onto the stack to specify the RI04 will be
used by the PRI instruction.
32 PRI RO02 Propagates the LHI, LLO, INITU, INITC, FS, BAD
and OOS status bits, from RI04 to real output RO02.
PRO ROxx (Propagate Downstream)
PRO allows you to propagate the cascade acknowledgment from a specified
RIxx input to the specified ROxx output. The RIxx input index is loaded
onto the stack by a prior instruction, and popped from the stack when it is
used. sptr(after) = sptr(before) - 1.
This instruction copies the PRIBLK initialization acknowledgment bit
(the Acknowledge status bit) from RIxx to ROxx.

412
14. CALC – Calculator Block B0193AX – Rev AB

If the popped index value for RIxx is less than 1 or greater than 8, a “-3”
(out-of-range syntax error value, treated as a run-time error) is written to
the PERROR parameter.
Example:
41 IN 5 Loads “5” onto the stack to specify that RI05 will
be used by the PRO instruction.
42 PRO RO03 Propagates the PRIBLK initialization
acknowledgment bit in RI05 to real output RO03.
PRP ROxx (Propagate Errors)
PRP allows you to propagate certain types of RIxx input errors to the spec-
ified ROxx output. The RIxx inputs whose error conditions are to be
propagated are specified by a mask on the stack, loaded by a prior instruc-
tion. The mask is popped from the stack after it is used. sptr(after) =
sptr(before) - 1.
This instruction sets the ERROR status bit of the specified output oper-
and if any of the specified RIxx inputs are in error. An RIxx input is con-
sidered to be in error when:
 Its BAD status bit is true, or
 Its Out-of-Service (OOS) status bit is true, or
 Its ERROR status bit is true, or
 It is experiencing peer-to-peer path failure.
If all masked inputs have the same status, for example, all OOS or all
BAD bits are set, the output will have this status set, in addition to setting
ERROR.
Example:
12 IN H29 Puts Hexadecimal 29 into accumulator.
13 PRP RO02 Propagates any error in RI03 or RI05 or RI08 to the
real output RO02.
where:
7 6 5 4 3 2 1 0
RI01

RI02

RI03

RI04

RI05

RI06

RI08

RI08

0 0 1 0 1 0 0 1
{
{

2 9 H29

RAND (Generate Random Number)


RAND generates a random number with uniform distribution and places it
in the accumulator. The following formula is used:
Seed = (Seed*125) modulo 2,796,203
Accumulator = Seed / 2,796,203
Seed is a CALC block variable which is set to the value 100,001 when the
block initializes, and is changed each time a RAND instruction is executed.

413
B0193AX – Rev AB 14. CALC – Calculator Block

You can re-initialize Seed with any desired value at any time, by using the
SEED instruction. sptr(after) = sptr(before) + 1.

RANG (Generate Random Number, Gaussian)


RANG generates a random number with Gaussian distribution and places it
in the accumulator. Two consecutive implicit RAND executions are used,
after which the following formula determines the value to be set into the
accumulator:
x = result of the first of two RAND iterations
y = result of the second of two RAND iterations
Accumulator = square root ((-2.0 ln (x)) * cos(2.0y))
In this expression, “ln” represents the natural logarithm function.
sptr(after) = sptr(before) + 1.
RBD {RIxx, IIxx, LIxx, BIxx, ROxx, IOxx, LOxx, BOxx}
(Read Bad and OOS Bits)
RBD reads both the Out-of-Service and Bad status bits of the specified
parameter and writes the value 1 to the accumulator if either of the bits is
set. If neither bit is set the value 0 is written to the accumulator. sptr(after)
= sptr(before) + 1.
RCL {RIxx, ROxx, IIxx, IOxx, BIxx, BOxx, Ixx, Oxx, Mxx, ~RIxx, ~ROxx,
~IIxx, ~IOxx,
~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
(Read and Clear)
RCL with RIxx, IIxx, BIxx, or Ixx operand unconditionally pushes
onto the stack the contents of the operand. If the operand is unlinked (in
the case of Ixx, if the LI01 operand is unlinked) a zero value is written to
the operand. Otherwise the operand is unchanged.
RCL with ROxx, IOxx, BOxx, or Oxx operand unconditionally pushes onto
the stack the operand contents, and, if the CALC block is in Auto, writes
a zero value to the operand. Otherwise the operand is unchanged.
RCL Mxx always pushes the Mxx value onto the stack and writes 0.0 to
Mxx.
For real type operands, a written zero value is 0.0; for integer types it is 0;
and for boolean types it is False. Values of integer operands are converted
to real type when pushed on the stack. False boolean operands are pushed
as 0.0, and true boolean operands are pushed as 1.0.
RCL with inverted operand follows the same rules as above, except that
operand values are inverted before they are pushed on the stack. Inverted
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.

414
14. CALC – Calculator Block B0193AX – Rev AB

RCN {RIxx, IIxx. LIxx, Bxx}


(Read Connect Status)
RCN reads the linkage type of the specified input and stores the signed
integer result in the accumulator. sptr(after) = sptr(before) + 1.
The connection status values are:
-1 or -2 = Unresolved linkage; the source compound or block
cannot be found
0= No linkage is specified
1 or 3 = Resolved Local Linkage; the source parameter is in the
same station
2 or 4 = Resolved Remote linkage; the source parameter is in a
different station
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 instruction
to check for errors that may have occurred since starting the current execu-
tion 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).

415
B0193AX – Rev AB 14. CALC – Calculator Block

Example 1:
16... Assume the accumulator has value of 43.499 after Step 16.
17 RND Accumulator has value of 43.0 after Step 17.

Example 2:
26... Assume the accumulator has value of -1.68 after Step 26.
27 RND Accumulator has value of -2.0 after Step 27.
RON {RIxx, IIxx, LIxx, BIxx, ROxx, IOxx, LOxx, BOxx}
(Read In-Service Status)
RON reads the Out-of-Service status bit of the specified parameter and
writes the inverse of its value to the accumulator. (1 = True = OOS bit not
set = parameter in service, 0 = False = OOS bit set = parameter out-of-ser-
vice).
The result of the RON instruction is always the inverse of the result of the
ROO instruction. sptr(after) = sptr(before) + 1.
ROO {RIxx, IIxx, LIxx, BIxx, ROxx, IOxx, LOxx, BOxx}
(Read OOS Bit)
ROO reads the Out-of-Service status bit of the specified parameter and
writes its value to the accumulator. (1 = True = OOS bit set, 0 = False =
OOS bit not set.)
The result of the ROO instruction is always the inverse of the result of the
RON instruction. sptr(after) = sptr(before) + 1.

RQE {RIxx, IIxx, LIxx, BIxx}


(Read Quality Including Error)
RQE reads the Bad, Out-of-Service, and Error status bits and the OM sta-
tus field of the specified input. It writes the value 1 to the accumulator if
any of the three bits is set or if the OM status field does not have the value
“ON_SCAN”. In any other case, it writes the value 0 to the accumulator.
sptr(after) = sptr(before) + 1.
RQL {RIxx, IIxx, LIxx, BIxx}
(Read Quality)
RQL reads the Bad and Out-of-Service status bits and the OM status field
of the specified input. It writes the value 1 to the accumulator if either of
the two bits is set or if the OM status field does not have the value
“ON_SCAN”. In any other case, it writes the value 0 to the accumulator.
sptr(after) = sptr(before) + 1.
SAC {ROxx, BOxx, IOxx, Mxx, ~BOxx, ~Mxx}
(Store Accumulator in Output)
SAC is identical to OUT, except that outputs to the pseudo-parameters Oxx
are not permitted. sptr(after) = sptr(before).
SBD {ROxx, BOxx, IOxx, LOxx}
(Set Bad Status)

416
14. CALC – Calculator Block B0193AX – Rev AB

SBD sets the Bad status bit of the specified output parameter to True. Its
effect is identical in Auto or Manual mode. sptr(after) = sptr(before).
SE {ROxx, BOxx, IOxx, LOxx}
(Set Error Status)
SE sets the Error status bit of the specified output parameter to True. Its
effect is identical in Auto or Manual mode. sptr(after) = sptr(before).
SEC {ROxx, BOxx, IOxx, LOxx}
(Set Secure Status)
SEC sets the Secure status bit of the specified output parameter to True,
thereby making the parameter non-settable. Its effect is identical in Auto
or Manual mode. The effect of SEC overrides that of MA. sptr(after) =
sptr(before).
SEED (Seed Random Number Generator)
SEED stores the contents of the accumulator into the Seed value used by
the RAND and RANG instructions. The initial Seed value is set, when the
block initializes, at 100,001 and is changed by each iteration of the RAND
or RANG instruction. If the accumulator value is less than zero or greater
than 100,001 when the SEED instruction is executed, the instruction is
skipped. sptr(after) = sptr(before).
Use of no operands, constant operands, or input operands writes a “-2”
(Syntax Error Code -2, INV_IO) to the PERROR parameter during block
validation and the block is undefined.
SET
SET {ROxx, BOxx, IOxx, LOxx, Mxx}
(Set)
SET stores a “1” in the specified operand.
If blank is specified, a “1” is stored in the accumulator. If Mxx is specified,
a “1” is stored in memory location Mxx.
If any other operand type is specified, a “1” is stored in the specified out-
put, provided the block is in Auto; otherwise the step is skipped. In all
cases, sptr(after) = sptr(before).
SETB (Set Packed Boolean)
SETB b
SETB sets to 1 a specified bit in the accumulator. If blank is specified the
bit number is expected to be at the top of the stack and this bit number is
removed from the stack before the instruction is executed. sptr(after) =
sptr(before) - 1.
If the bit number is less than 1 or greater than 16 an “11” (bit error run-
time error) is written to the PERROR parameter.
If the operand b is specified it indicates a bit number between 1 and 16 in
the accumulator. The stack is not popped in this case. sptr(after) =
sptr(before).
Bit 1 is the most significant bit of the accumulator, and bit 16 the least sig-
nificant.

417
B0193AX – Rev AB 14. CALC – Calculator Block

SIEC (Skip if Error Clear)


SIEC skips the next program step if the internal error flag (the PERROR
parameter) is zero. PERROR retains the first run-time error encountered
during each block execution, or the first error encountered after a CLE
instruction sptr(after) = sptr(before).
SIN (Sine)
SIN reads the value (value of the angle in radians) in the accumulator,
computes the sine of the angle, and writes the result into the accumulator,
overwriting the original contents. sptr(after) = sptr(before).
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.

418
14. CALC – Calculator Block B0193AX – Rev AB

Example:
Accumulator = +49.0000
17 SQRT Computes square root of accumulator
Accumulator = +7.00000
SSF {ROxx, BOxx, IOxx, LOxx, Mxx}
(Set and Skip if False)
SSF sets the specified operand to 1.0 (if ROxx or Mxx) or 1 (if IOxx or
LOxx) or True (if BOxx) and skips the next program step when the accu-
mulator value is 0.0. Otherwise the instruction is ignored and the next
instruction in sequence is executed.
If this instruction is the last or next-to-last step in the CALC block pro-
gram and the accumulator is zero, the operand is set and then the block
program terminates.
When the block is in Manual, the outputs ROxx, BOxx, IOxx, and LOxx
are unchanged, but the skip action still occurs based on the value of the
accumulator. sptr(after) = sptr(before). SSF is identical to SSZ.
SSI {ROxx, BOxx, IOxx, LOxx, Mxx}
(Set and Skip if Initializing)
SSI sets the specified operand to 1.0 (if ROxx or Mxx) or 1 (if IOxx or
LOxx) or True (if BOxx) and skips the next program step if the CALC
block is initializing this execution cycle. Otherwise the instruction is
ignored and the next instruction in sequence is executed.
If this instruction is the last or next-to-last step in the CALC block pro-
gram and the block is initializing, the operand is set and then the block
program terminates.
When the block is in Manual, the outputs ROxx, BOxx, IOxx, and LOxx
are unchanged, but the skip action still occurs based on the value of the
accumulator. sptr(after) = sptr(before).
SSN {ROxx, BOxx, IOxx, LOxx, Mxx}
(Set and Skip if Negative)
SSN sets the specified operand to 1.0 (if ROxx or Mxx) or 1 (if IOxx or
LOxx) or True (if BOxx) and skips the next program step when the accu-
mulator is negative. Otherwise the instruction is ignored and the next
instruction in sequence is executed.
If this instruction is the last or next-to-last step in the CALC block pro-
gram and the accumulator is negative, the operand is set and then the
block program terminates.
When the block is in Manual, the outputs ROxx, BOxx, IOxx, and LOxx
are unchanged, but the skip action still occurs based on the value of the
accumulator. sptr(after) = sptr(before).

419
B0193AX – Rev AB 14. CALC – Calculator Block

SSP {ROxx, BOxx, IOxx, LOxx, Mxx}


(Set and Skip if Positive)
SSP sets the specified operand to 1.0 (if ROxx or Mxx) or 1 (if IOxx or
LOxx) or True (if BOxx) and skips the next program step when the accu-
mulator is positive or zero. Otherwise the instruction is ignored and the
next instruction in sequence is executed.
If this instruction is the last or next-to-last step in the CALC block pro-
gram and the accumulator is positive or zero, the operand is set and then
the block program terminates.
When the block is in Manual, the outputs ROxx, BOxx, IOxx, and LOxx
are unchanged, but the skip action still occurs based on the value of the
accumulator. sptr(after) = sptr(before).
SST {ROxx, BOxx, IOxx, LOxx, Mxx}
(Set and Skip if True)
SST sets the specified operand to 1.0 (if ROxx or Mxx) or 1 (if IOxx or
LOxx) or True (if BOxx) and skips the next program step when the accu-
mulator is non-zero. Otherwise the instruction is ignored and the next
instruction in sequence is executed.
If this instruction is the last or next-to-last step in the CALC 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 CALC block pro-
gram and the accumulator is zero, the operand is set and then the block
program terminates.
When the block is in Manual, the outputs ROxx, BOxx, IOxx, and LOxx
are unchanged, but the skip action still occurs based on the value of the
accumulator. sptr(after) = sptr(before).
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).

420
14. CALC – Calculator Block B0193AX – Rev AB

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.
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.
SUB
SUB {RIxx, ROxx, Mxx}
(Subtract)
SUB reads the values from the top two stack locations, subtracts the second
operand (subtrahend) from the first operand (minuend), decrements the
stack pointer, and writes the difference into the new accumulator location
(the new top of stack location). This overwrites the first operand and iso-
lates 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 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. sptr(after)
= sptr(before).
Example:
M01 = 3.73182
RI01 = 12.3485
11 IN RI01 Puts RI01 into accumulator.
12 SUB M01 Substracts M01 from RI01 and stores the result
on the stack
Accumulator = +8.61668

421
B0193AX – Rev AB 14. CALC – Calculator Block

SWP
SWP {ROxx, BOxx, IOxx, Mxx}
(Swap)
SWP with no argument causes the contents of the last two positions on the
stack to be interchanged. The stack pointer is not moved.
SWP ROxx swaps the contents of the last position on the stack with that of
output ROxx. If the block is not in Auto, the value of ROxx is copied to
the stack, but the stack value is not copied to ROxx.
SWP BOxx swaps the contents of the last position on the stack with that of
output BOxx. A True value in BOxx is converted to 1.0 on the stack, and
a False value is converted to 0.0 on the stack. Any non-zero value on the
stack is converted to True in BOxx, and a 0.0 value is converted to False in
BOxx. If the block is not in Auto, the swap is treated as in the ROxx case.
SWP IOxx swaps the contents of the last position on the stack with that of
output IOxx. The accumulator value is clamped between 32,767.0 and
-32,768.0 before the swap. If the block is not in Auto, the swap is treated
as in the ROxx case.
SWP Mxx swaps the contents of the last position on the stack with that of
memory location Mxx.
In all cases, sptr(after) = sptr(before).
TAN (Tangent)
TAN reads the value (value of the angle in radians) in the accumulator,
computes the tangent of the angle, and writes the result into the accumu-
lator, overwriting the original contents. sptr(after) = sptr(before).
Example:
Accumulator = +0.7853983 (Pi/4) radians.
(Pi/4 radians = 45 degrees)
17 TAN Computes tangent of accumulator.
Accumulator = +1.0000
TIM (Time Since Midnight)
TIM gets the time, in seconds since midnight, and pushes it onto the stack
sptr(after) = sptr(before) + 1.
TRC (Truncate)
TRC reads the number in the accumulator, truncates the mantissa, or deci-
mal portion, and writes the result into the accumulator as a floating point
value, overwriting the original value. sptr(after) = sptr(before).
Example:
Accumulator = 43.999
17 TRC Truncates the accumulator
Accumulator = 43.0
TSTB (Test Packed Boolean)
TSTB b

422
14. CALC – Calculator Block B0193AX – Rev AB

TSTB tests a specified bit in the accumulator. If blank is specified the bit
number is expected to be at the top of the stack and this bit number is
removed from the stack before the instruction is executed. sptr(after) =
sptr(before) - 1.
If the bit number is less than 1 or greater than 16 an “11” (bit error run-
time error) is written to the PERROR parameter.
If the argument b is specified it indicates a bit number between 1 and 16
in the accumulator. The stack is not popped in this case. sptr(after) =
sptr(before).
Bit 1 is the most significant bit of the accumulator, and bit 16 the least sig-
nificant.
If the tested bit is 0, the value False (0.0) replaces the accumulator; if it is
1, the value True (1.0) replaces the accumulator.
XOR
XOR c
XOR {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
(Logical Exclusive Or)
XOR performs a logical “xor” of the contents of the specified operands and
stack locations. Exclusive Or is defined as producing a True output for an
odd number of True inputs, a False output for an even number of True
inputs, and a False output if all inputs are False.
If blank is specified, all stack locations are XORed together, and the result
is written into the accumulator (the new top of stack location). This over-
writes the first operand and isolates the other operands from any further
access. sptr(after) = stackbottom.
If c is specified, the last c stack locations are XORed together, removed
from the stack, and the result stored in the accumulator. sptr(after) =
sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
If one operand is specified, the operand is XORed with the accumulator,
and the result replaces the accumulator. sptr(after) = sptr(before).
If ~ is specified, the operand value is inverted prior to being used.
Before the operand Mxx is used in the calculation, its value is truncated to
an integer; if the result is 0 the operand value is considered False, other-
wise it is True.
Example 1:
11 CST Clears the stack.
BI01 = True
BI07 = False
BO03 = True
BI14 = True
12 IN BI01 Puts BI01 into accumulator.

423
B0193AX – Rev AB 14. CALC – Calculator Block

13 IN BI07 Puts BI07 into accumulator. The prior value is pushed


down one stack location.
14 IN BO03 Puts BO03 into accumulator. The prior values are
pushed down one stack location.
15 IN BI14 Puts BI14 into accumulator. The prior values are
pushed down one stack location.
16 XOR Performs the logical XOR function, and stores result
into accumulator, overwriting the value loaded in from
BI01. The other values are inaccessible.
Accumulator = True

Example 2:
BI04 = False
BO01 = True
11 IN BI04 Puts BI04 into accumulator.
12 XOR BO01 Performs the logical XOR of BI04 and BO01
and stores the result on the stack.
Accumulator = True
XORX (Packed Logical Exclusive Or)
XORX c
XORX reads all the values or a specified number (c) of values from the
stack, performs a 16-bit bitwise logical “xor” function on them, and stores
the result into the new accumulator location (the new top of stack). This
overwrites the first operand and isolates the other operands from any fur-
ther access. Exclusive Or is defined as producing a True output for an odd
number of True inputs, a False output for an even number of True inputs,
and a False output if all inputs are False.
For XORX, sptr(after) = stackbottom. For XORX c, sptr(after) = sptr(before) - c
+ 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
Each operand is truncated from real to 16-bit integer type before it is used
in the calculation. The final result is stored on the stack as a real value.
Example:
II01 = 5 (binary 0000000000000101)
II02 = 7 (binary 0000000000000111)
LI01 =12 (binary
00000000000000000000000000001100)
13 IN II01 Puts II01 into accumulator. The prior value is pushed
down one stack location.
14 IN II02 Puts II02 into accumulator. The prior values are
pushed down one stack location.

424
14. CALC – Calculator Block B0193AX – Rev AB

15 IN LI01 Puts the low 16 bits (0000000000001100) of LI01


into accumulator. The prior values are pushed down
one stack location.
16 XORX 3 Performs the packed logical XORX function on the
stack locations by bit position. If all bits in a certain bit
position are 0 (false) the result is 0. If there is an odd
number of 1’s (trues), the result is 1. If there is an even
number of 1’s, the result is 0. The resulting value,
binary 0000000000001110, is stored into the accumu-
lator, overwriting the value loaded in from II01. The
other values are inaccessible.
Accumulator = 14.0 (binary 0000000000001110)

14.7 Error Conditions


For each instruction, the specified operation code (for example, ADD or RCL) and operand,
including the index range of the operand (xx), are validated when the CALC block is installed or
modified by the Control Configurator. An invalid operation code or operand causes the block to
be undefined. An error message indicating the type of syntax error and the step in error is sent to
the Control Configurator and displayed on the screen.
Two types of errors are detected by the CALC block:
 Syntax errors – those detected when the program is validated, as the block is installed
or modified.
 Run-time (dynamic) errors – those detected while the program is running. Note that
these errors do not cause the program to halt.
An integer code stored in the output parameter PERROR indicates the type of the first detected
error.
The output parameter STERR indicates the number of the program step that experienced the first
error.
Displaying the automatically-updated run-time values of PERROR and STERR at the display
interface enables you to monitor these parameters while in the debugging phase of the CALC pro-
gram development.
Syntax errors are detected when the CALC block is installed or reconfigured, but not when the
compound is turned ON, or when the control processor is rebooted. This avoids control cycle
overruns that might occur if validation of complex CALC blocks were to be done during ordinary
block processing. Configuration errors generate screen messages that you can view and act upon
for correction while configuring the block, without interrupting the configuration session.
A non-zero value for PERROR indicates an error. A negative value generally indicates a syntax
error, and a positive value generally indicates that an error occurred while executing the program
(that is, a run-time error). The only exceptions to this convention are described in the CHN and
PRO instructions (q.v.).
The syntax error codes for the PERROR parameter are listed in Table 14-15.

425
B0193AX – Rev AB 14. CALC – Calculator Block

Table 14-15. PERROR Syntax Error Codes

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.

Table 14-16. PERROR Run-time Error Codes

Code Definition
1 SQRT error (accumulator < 0)
2 ASIN error (absolute value of accumulator > 1)
3 ACOS error (absolute value of accumulator > 1)
4 DIV error (divide by zero)
5 Stack overflow
6 Stack underflow
7 LOG error (accumulator  0)
8 LN error (accumulator  0)
9 EXP error (base < 0)
10 Index error
11 Bit error

14.8 Programming Concepts


The CALC block operates in the same way as do most programmable pocket calculators. To spec-
ify program operations, you type in a series of programming steps, which are analogous to “key-
strokes” on a calculator. A programming step can contain zero or one command line argument
which serve to complete the specification of the action to be performed. Each instruction per-
forms a unique operation over a set of one or more operands.
The block accepts programs entered through the Reverse Polish Notation (RPN) method, which
is more efficient than other methods of programming. In a simple example, you specify first the
operands and then the action to be performed, which terminates the operation. This convention
works especially well with those instructions that operate on more than two operands.
CALC block instructions use the following types of operands:
1. Real Variables – Real variable values used in block calculations are either specified as a
command line argument (RIxx, ROxx, or Mxx) or obtained from the stack, where
they were stored as the result of earlier operations such as the IN instruction.
2. Integer Variables – Parameters IIxx, IOxx, LIxx, and LOxx or the constant command
line argument “n.”

426
14. CALC – Calculator Block B0193AX – Rev AB

3. Boolean Variables – Parameters BIxx and BOxx, and pseudo-parameters Ixx and Oxx.
Boolean variables can be optionally inverted before use. For information on pseudo-
parameters, see “Instruction Syntax” on page 372.
4. Other Constants – In addition to arguments of type “n” used as integer variables in
the calculation, constant command line arguments are also used to represent a timer
constant (“t”), a program step number (“s”), a bit number (“b”), or the number of
stack operands to be used (“c”).
The opcode and any required argument for a program step are entered in the STEPxx position of
the Control Configurator screen.
Arithmetic Examples
Example 1 illustrates an instruction that uses two operands to compute the result. Example 2
shows an instruction involving more than two operands.
Example 1 – Calculate (RI01 * RI02) and output the result to RO01:
STEP01 IN RI01 Places Real Input 1 into accumulator.
STEP02 MUL RI02 Multiplies the RI01 value it pops from the stack by RI02 and
stores the result on the stack.
STEP03 OUT RO01 Writes the product of RI01 and RI02 to RO01.

Example 2 – Calculate ((RI01 + RI02 + RI03 + RI04) / 4):


STEP01 CST Clears the stack.
STEP02 IN RI01 Places Real Input 1 into accumulator.
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.

14.8.1 Execution Sequence


You can consider the sequencing of programming steps to be under control of an internal pro-
gram counter that indicates the next program step to be processed. Instructions such as GTO that
affect program control directly reference the step number of the next step to be processed. Your
program can have up to 50 steps.
The CALC block supports both conditional and unconditional means of altering the control of
program execution. Unconditional transfer of control is supported only in a forward direction;
looping backwards is not allowed. Conditional transfer of control is dependent on the results of
arithmetic comparisons or logical conditions.
The following example demonstrates these concepts.

427
B0193AX – Rev AB 14. CALC – Calculator Block

Branching Example:

RI01
Program function:
To select either of two
real inputs based on the BI01 SELECTOR LOGIC RO01
IN CALC BLK
status of a binary input.
RI02

Example:
STEP01 CST Clear any pending results from stack
STEP02 IN BI01 Read binary input, to select a real
STEP03 BIT 06 Branch if binary input is true
STEP04 IN RI01 Binary is false, read real input #1
STEP05 GTO 07 Go to output step
STEP06 IN RI02 Binary is true, read real input #2
STEP07 OUT RO01 Write selected real value to output
STEP08 END

14.8.2 Arithmetic Chaining


An internal FILO (first-in, last-out) stack preserves the results of prior, intermediate operations
required for calculation of the final result. You can chain arithmetic operations without using
memory registers to store and retrieve data. This approach greatly simplifies program entries and
minimizes the number of programming steps.

14.8.2.1 Stack Push Operation


A chaining sequence begins with a stack clear instruction (CST) to clear the results of any prior
operations. The first operand of the sequence is placed in the first stack register. The second oper-
and is read into the second stack register.
When the next step contains an arithmetic operator, the contents of the first two stack registers
are removed and processed according to the operator (add, subtract, multiply, divide, or exponen-
tiation). The result is stored in the first stack register.
An operand immediately following the first arithmetic operator goes into the second stack posi-
tion unless a CST command is issued first. Then the input goes into stack position one.

14.8.2.2 Stack Pop Operation


When one diadic arithmetic instruction is followed immediately by another one, a stack pop
operation occurs. A stack pop retrieves the most recent pending result from the stack to complete
the current operation. The stack pop operation repeats for each additional arithmetic instruction
until an operand (or an operation that does not use the stack) is encountered. Each pop operation
closes a pending operation. Pending operations involving a unary instruction operate directly on
the accumulator value and are not saved on the stack.

428
14. CALC – Calculator Block B0193AX – Rev AB

Stack operations occur only for diadic arithmetic operations and for boolean operations other
than the unary NOT function. This approach enables you to mix arithmetic and boolean opera-
tions.
The operation sequence for an arithmetic chaining example is shown in Figure 14-9. It shows the
stack operations involved in the equation, working from the innermost parentheses outward. The
actual program steps that implement the procedures are shown below. Figure 14-10 shows the
stack operations for this example.

Equation: RO01 = RI05 * SQRT [(RI01 * RI02) / ((RI03 * RI04) - 1)]

6 5 1 4 2 3

Prod1
Prod2

Diff

Quotient

Root

Prod3
Figure 14-9. Arithmetic Chaining Example, Operation Sequence

429
B0193AX – Rev AB 14. CALC – Calculator Block

Programming steps to compute the following equation:


RO01 = RI05 * SQRT ((RI01 * RI02) / ((RI03 * RI04) - 1)

STEP01 CST Clears stack.


STEP02 IN RI01 Pushes RI01 value onto stack.
STEP03 IN RI02 Pushes RI02 value onto stack.
STEP04 MUL Pops RI01 and RI02 values from stack, multiplies
them, and pushes the product (Prod1) onto stack.
STEP05 IN RI03 Pushes RI03 value onto stack.
STEP06 IN RI04 Pushes RI04 value onto stack.
STEP07 MUL Pops RI03 and RI04 values from stack, multiplies
them, and pushes the product (Prod2) onto stack.
STEP08 IN 1 Pushes constant “1” onto stack.
STEP09 SUB Pops Prod2 and constant “1” from stack, subtracts 1
from Prod2, and pushes difference (Diff ) onto stack.
STEP10 DIV Pops Prod1 and Diff from stack, divides Prod1 by Diff,
and pushes results (Quotient) onto stack.
STEP11 SQRT Pops Quotient from stack, computes the square root of
Quotient, and pushes the result (Root) onto stack.
STEP12 IN RI05 Pushes RI05 value onto stack.
STEP13 MUL Pops Root and RI05 value from stack, multiplies them,
and pushes the result (Prod3) onto stack.
STEP14 OUT RO01 Writes Prod3 to RO01, and Prod3 remains in
position 1 on stack.
STEP15 END

430
14. CALC – Calculator Block B0193AX – Rev AB

Arithmetic Chaining, Stack Operation

RO01 = RI05 * SQRT ((RI01 * RI02) / ((RI03 * RI04) - 1))


Sequence: 6 5 1 4 2 3

1
CST IN IN MUL IN IN
STEP01 STEP02 STEP03 STEP04 STEP05 STEP06

S3 RI04
S2 RI02 S2 RI03 S2 RI03
S1 S1 RI01 S1 RI01 S1 Prod1 S1 Prod1 S1 Prod1
Stack
Registers
(up to 16)

2 3 4 5
MUL IN SUB DIV SQRT IN
STEP07 STEP08 STEP09 STEP10 STEP11 STEP12

S3 1
S2 Prod2 S2 Prod2 S2 Diff S2 RI05
S1 Prod1 S1 Prod1 S1 Prod1 S1 Quotient S1 Root S1 Root

6
MUL OUT
STEP13 STEP14

S1 Prod1 [RO01] LEGEND:


Stack Stack
Push Pop

Figure 14-10. Arithmetic Chaining, Stack Operation

431
B0193AX – Rev AB 14. CALC – Calculator Block

14.9 Application Example

Program Function RI01 RO01


CALC Block
Measurement Program
Limit measurement input to
downstream control block to the
range 10.0 to 90.0
Figure 14-11. Application Example

Example:
STEP01 IN RI01 Reads Real Input 1 and pushes it onto stack.
STEP02 IN 90 Reads constant “90.0” and pushes it onto stack.
STEP03 SUB Pops Real Input 1 and constant “90” from stack, subtracts 90
from Real Input 1, and pushes difference onto stack.
STEP04 BIN 5 Branches to Step 7 if difference is negative.
STEP05 IN 90 Reads constant “90.0” and pushes it onto stack.
STEP06 GTO 14 Branches to Step 10.
STEP07 IN RI01 Reads Real Input 1 and pushes it onto stack.
STEP08 IN 10 Reads constant “10.0” and pushes it onto stack.
STEP09 SUB Pops Real Input 1 and constant “10” from stack, subtracts 10
from Real Input 1, and pushes difference onto stack.
STEP10 BIP 13 Branches to Step 13 if difference is positive.
STEP11 IN 10 Reads constant “10.0” and pushes it onto stack.
STEP12 GTO 14 Branches to Step 14.
STEP13 IN RI01 Reads Real Input 1 and pushes it onto stack.
STEP14 OUT RO01 Writes limited measurement value to Real Output 1.
STEP15 END

432
15. CALCA – Advanced Calculator
Block
This chapter covers the Advanced Calculator, or CALCA, block, its basic operations, features,
parameters, and functions, instruction processing, syntax and definitions, error conditions,
programming concepts, and an application example.

15.1 Overview
The Advanced Calculator (CALCA) block provides both logical functions and arithmetic compu-
tational capability within one integrated environment.
This block provides dual-operand efficiency in several mathematical and logical instructions,
resulting in as much as a three-to-one reduction in the length of your program relative to the same
calculations performed in a CALC block program.
The CALCA block does not support the clamping of real outputs, whereas the CALC block does.
With this exception, programs written for the CALC, MATH, or LOGIC blocks will execute in
the CALCA block without change.
The configuration process allows you to program the block by entering a series of up to 50 pro-
gramming steps. Each program step is represented by a parameter string of up to 16 characters.
The CALCA block inputs and outputs are shown in Figure 15-1.

8 Boolean Outputs
16 Boolean Inputs
Advanced 4 Real Outputs
8 Real Inputs Calculation
2 Integer Inputs Program 6 Integer Outputs

2 Long Integer Inputs 2 Long Integer Outputs


(up to 50 steps;
Program Error
configurable)
Step Error

Figure 15-1. CALCA Block I/O Diagram

The differences between the CALCA, CALC, MATH, and LOGIC blocks are summarized in
Table 15-1.

433
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

Table 15-1. Block Comparison

CALCA CALC MATH LOGIC


Dual Operands X --- X X
Output Clamping --- X --- ---
Boolean Instructions X X --- X
Packed Boolean Instructions X X ---
Mathematical Instructions X X X ---
Cascade Instruction X X X ---
Steps 50 50 20 15
Memory Registers 24 24 5 5
Boolean Inputs 16 16 0 16
Boolean Outputs 8 8 0 4
Integer Inputs 2 2 0 0
Integer Outputs 6 6 0 0
Long Integer Inputs 2 2 0 1
Long Integer Outputs 2 2 0 1
Real Inputs 8 8 8 2
Real Outputs 4 4 4 0

15.2 Basic Operation


The CALCA block operates like most programmable pocket calculators. The block’s input/output
modularity and programming capacity provides a level of functionality that complements the
standard block set offering.
The program which you enter is executed once each time the CALCA block executes. A single
execution of the program is defined as a single consecutive execution of each program step in turn.
It is, however, possible to specify conditional execution of steps or groups of steps.
Every program step contains an opcode, which identifies the operation to be performed, and up
to two command line arguments. The command line arguments consist of the actual operands for
the step, the location of the operands, a specification of details which further refine the opcode, or
some combination of these factors. The syntax of each individual instruction is provided in
Section 15.6.5.
The CALCA block can operate in Auto or Manual mode. The operation of the block in Manual is
identical to the operation in Auto, except that any output parameters involved in the steps are not
modified by the block logic. They are released, and can be set only by user action. Manual mode
is described in Section 15.6.1.2.

434
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

15.3 Features
 Provides 8 real inputs, 2 long integer inputs, 2 integer inputs, 16 boolean inputs, 4
real outputs, 2 long integer outputs, 8 boolean outputs, and 6 integer outputs.
 Provides 24 floating point memory data storage registers that are preserved between
execution cycles.
 Uses a stack of 24 floating point values for storage of intermediate computational
results.
 Provides 50 programming steps of up to 16 characters, allowing dual operands in all
appropriate instructions.
 Clamping of outputs is not supported.
 Accepts any CALC, MATH, or LOGIC block instruction without change; outputs
are not clamped in the CALCA block, however.
 Allows arithmetic calculations to be conditionally executed, depending on arithmetic
or logic conditions detected under program control.
 Provides a complete mix and interchangeability between the results of boolean, inte-
ger, and real operations.
 Lets your algorithm read the status bits of input/output parameters and directly con-
trol the status bits of output parameters (for example, Bad, Out-of-Service, Error).
 Allows you to propagate the cascade acknowledgment from an upstream to a down-
stream block.
 Checks correctness of all programming steps following block installation and recon-
figuration, and marks the block as undefined if an error is detected.
 Provides the ability to detect run-time errors.
 Supports Auto/Manual capability for all block outputs; in Manual, all functions are
performed normally except for changes of output values.
 Allows forward branching of program control. However, backward branching is not
allowed, to prevent endless loops.
 Lets you initialize all timers and memory registers.
 Permits effectively unlimited time delays and pulse widths in the timer instructions.

15.4 Parameters
Table 15-2. CALCA Block Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set blank 1 to 12 chars
TYPE block type integer no-con/no-set 75 CALCA
DESCRP descriptor string no-con/no-set blank 1 to 32 chars
PERIOD block sample time short no-con/no-set 1 0 to 10

435
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

Table 15-2. CALCA Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


PHASE block execute phase integer no-con/no-set 0 ---
LOOPID loop identifier string no-con/set blank 1 to 32 chars
RI01 to RI08 real input 1 to 8 real con/set 0.0 ---
BI01-BI16 boolean input 1 to 16 boolean con/set 0 0 to 1
II01 to II02 integer input 1 to 2 integer con/set 0 ---
LI01 to LI02 long int input 1 to 2 long con/set 0 ---
MA manual/auto boolean con/set 0 0 to 1
INITMA initialize MA short no-con/no-set 1 0 to 2
TIMINI timer initialize option short_int no-con/set 0 0 to 3
M01 to M24 memory 1 to 24 real no-con/no-set 0.0 Any real value
STEP01 to STEP50 program steps 1 to 50 char[16] no-con/no-set blank 1 to 8 chars
Non-Configurable Parameters
OUTPUTS
BLKSTA block status pack_l con/no-set 0 bit map
BO01 to BO08 boolean output 1 to 8 boolean con/no-set 0 0 to 1
IO01 to IO06 integer output 1 to 6 integer con/no-set 0 ---
LO01 to LO02 long int output 1 to 2 long con/no-set 0 ---
PERROR program error integer con/no-set 0 ---
RO01 to RO04 real output 1 to 4 real con/no-set 0.0 ---
STERR step error number integer con/no-set 0 ---
DATA STORES
ACHNGE alternate change integer con/no-set 0 -32768 to 32767
DEFINE no config errors boolean no-con/no-set 1 0 to 1
ERCODE configuration error string no-con/no-set blank 1 to 43 chars
LOCKID lock identifier string no-con/no-set blank 8 to 13 chars
LOCKRQ lock request boolean no-con/set 0 0 to 1
OWNER owner name string no-con/set blank 1 to 32 chars

15.4.1 Parameter Definitions


ACHNGE Alternate Change is an integer output which is incremented each time a
block parameter is changed via a Set command.

BI01 to BI16 Boolean Inputs 1 through 16 are inputs to the block calculations which
can be configured, linked to upstream blocks, or set when unlinked.

436
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the CALCA block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

ON

MA
Boolean
Bit Number* Connection
(0 to 31) Name Description When True (B32 to B1)
11 MA Manual = 0, Auto = 1 BLKSTA.B21
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
20 WLCK Access Locked BLKSTA.B12

* Bit 0 is the least significant, low order bit.

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.

DESCRP Description is a user-defined string of up to 32 characters that describe the


block’s function (for example, “PLT 3 FURNACE 2 HEATER CON-
TROL”).

ERCODE Error Code is a string data store which indicates the type of configuration
error which caused the block’s DEFINE parameter to be set false. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. For the CALCA block, the following is the only
possible error value of ERCODE. (More specific information as to the
type of syntax error encountered can be found in PERROR and STERR.)
“W45 - CONFIGURATION ERROR IN STEP nn”

II01 to II02 Integer Inputs 1 and 2 are inputs to the block calculations which can be
configured, linked to upstream blocks, or set when unlinked.

437
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state as specified in the checkpoint file.
The block asserts this initial M/A state whenever:
 It is installed into the Control Processor database.
 The Control Processor undergoes a reboot operation.
 The compound in which it resides is turned on.
 The INITMA parameter itself is modified via the control configu-
rator. (The block does not assert INITMA on ordinary
reconfiguration.)
INITMA is ignored if MA has an established linkage.

IO01 to IO06 Integer Outputs 1 through 6 are outputs from the block calculations.
They can be set when the block is in Manual.

LI01 to LI02 Long Integer Inputs 1 and 2 are inputs to the block calculations which can
be configured, linked to upstream blocks, or set when unlinked. In addi-
tion, the individual bits of LI01 can only be accessed in the calculation as
I1 (or I01) through I32. I1 is the most significant bit of LI01, and I32 is
the least significant bit.

LO01 to LO02 Long Integer Outputs 1 and 2 are outputs from the block calculations.
They can be linked to downstream blocks, or set when the block is in
Manual. In addition, the individual bits of LO01 can only be accessed in
the calculation as O1 (or O01) through O32. O1 is the most significant
bit of LO01, and O32 is the least significant bit.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5

O1 O2 ... ... O32

LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-char-
acter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.

LOCKRQ Lock Request is a boolean input which can be set True or False only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set True in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are honored (subject to the usual access rules) only from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set False by any workstation at any time, whereupon a

438
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

new LOCKRQ is accepted, and a new ownership workstation identifier


written to LOCKID.

LOOPID Loop Identifier is a configurable string of up to 32 characters which iden-


tifies the loop or process with which the block is associated. It is displayed
on the detail display of the block, immediately below the faceplate.

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.

MA Manual/Auto is a boolean input that controls the block’s operating state:


0 = False = Manual
1 = True = Auto
When in Manual, all block outputs are released and can only be updated
manually. In Auto the outputs are secured and only updated based on the
programmed step operations.

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

OWNER Owner is a string of up to 32 ASCII characters which are used to allocate


control blocks to applications. Attempts to set OWNER are successful
only if the present value of OWNER is the null string, an all-blank string,
or identical 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.

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*****

439
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec.,
but the PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec.,
but the PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec.,
but the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0
sec., but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.

PERROR Program Error is a coded integer output that indicates the type of instruc-
tion syntax error or program run-time error that occurred in the step spec-
ified by the STERR parameter. See Section 15.7 for tables of the
PERROR values.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).

RI01 to RI08 Real Inputs 1 through 8 are inputs to the block calculations which can be
configured, linked to upstream blocks, or set when unlinked. The CALCA
block does not have change delta parameters. When one of the RI01 to
RI08 parameters is the sink of a peer-to-peer connection, it will be
updated whenever the value at the source of the connection changes by
more than 0.0001 units.

RO01 to RO04 Real Outputs 1 through 4 are outputs from the block calculations. They
can be set when the block is in Manual.

STEP01 to STEP50
Steps 1 through 50 are string inputs of up to 16 characters. They are the
50 executable commands that make up the CALCA block program.

STERR Step Error is an integer output that indicates which program step is exhib-
iting the error defined by PERROR.

TIMINI Timer Initialization option specifies whether an initial state change can be
generated by a DON, DOFF, FF, MRS, or OSP instruction in a block
when the block initializes.
0= Initial state change allowed for DOFF, DON, FF, MRS, and OSP.
1= Initial state change disallowed for DOFF, DON, and OSP.
Initial state change allowed for FF and MRS.
2= Initial state change disallowed for FF and MRS.

440
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

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.

15.5 Functions
The CALCA block provides 114 program instructions, consisting of the following general types:
 32 Arithmetic instructions, which perform mathematical calculations.
 13 Boolean instructions, which provide various boolean and packed boolean
operations.
 27 Input/Output instructions, which perform the input or output of data or status
bits.
 2 Cascade and Propagation instructions for error propagation and downstream cas-
cade acknowledgments.
 10 Memory and Stack Reference instructions for reading and writing the memory reg-
isters, or directly manipulating the stack.
 10 Program Control instructions for conditional and unconditional branching, and
program termination.
 9 Clear/Set instructions, which provide for conditional or unconditional clearing or
setting of parameters, sometimes with simultaneous program control action.
 6 Timing instructions which control the operation of program timers.
 2 Logic instructions which emulate the operation of flip-flops.
 3 Error Control instructions which provide access to the run-time error flag.

15.5.1 Arithmetic Instructions


Most CALCA block operations center about a 25-position push-down stack of real data type val-
ues. The top position of this stack is referred to as the accumulator.
All arithmetic instructions involve the accumulator value, frequently in conjunction with various
block parameters. No arithmetic operations contribute rounding errors beyond one unit of the
least significant decimal digit of a real, single precision, floating point value.
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.
The range of real values is 10-38 to 1038 for positive and negative numbers.

441
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

Each of the arithmetic operations (and boolean operations) utilize one or more inputs to the cal-
culation, generically referred to as operands. These inputs are obtained from various block param-
eters, the push-down stack, and/or the command line arguments of the instruction syntax.
Regardless of the origin of the inputs, instructions using one input are designated unary, those uti-
lizing two inputs are designated diadic, and those utilizing a variable number of inputs are desig-
nated polyadic.

Table 15-3. Arithmetic Instructions

Name Function Instruction Type


ABS Absolute Value Unary
ACOS Arc Cosine Unary
ADD Add Diadic or Polyadic
ALN Natural Antilog Unary
ALOG Common Antilog Unary
ASIN Arc Sine Unary
ATAN Arc Tangent Unary
AVE Average Diadic or Polyadic
CHS Change Sign Unary
COS Cosine Unary
DEC Decrement Unary
DIV Divide Diadic
EXP Exponent Diadic
IDIV Integer Division Diadic
IMOD Integer Modulus Diadic
INC Increment Unary
LN Natural Logarithm Unary
LOG Common Logarithm Unary
MAX Maximum Diadic or Polyadic
MAXO (Same as MAX)
MIN Minimum Diadic or Polyadic
MEDN Median Polyadic
MUL Multiply Diadic or Polyadic
RAND Generate Random Number Unary
RANG Generate Random Number, Gaussian Unary
RND Round Unary
SEED Seed Random Number Generator Unary
SIN Sine Unary
SQR Square Unary
SQRT Square Root Unary
SUB Subtract Diadic

442
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

Table 15-3. Arithmetic Instructions (Continued)

Name Function Instruction Type


TAN Tangent Unary
TRC Truncate Unary

15.5.2 Boolean Instructions


All boolean instructions involve the accumulator value, frequently in conjunction with various
block parameters. The boolean value of logical zero is stored on the stack or in memory registers
as real value 0.0, and logical one is stored as 1.0. When operands are fetched from the stack or
memory registers, the operation interprets any non-zero value to be a logical one, and a real zero
value to be a logical zero, in keeping with the usual C language convention.
In addition to ordinary boolean operations, a group of bitwise logical operations on packed bool-
ean values is supported.

Table 15-4. Boolean Instructions

Name Function Instruction Type


AND Logical And Diadic or Polyadic
ANDX Packed Logical And Polyadic
NAN Logical Not And Diadic or Polyadic
NAND (Same as NAN)
NOR Logical Not Or Diadic or Polyadic
NORX Packed Logical Nor Or Polyadic. Packed Boolean
NOT Not Unary
NOTX Packed Logical Not Unary, Packed Boolean
NXO Logical Not Exclusive Or Diadic or Polyadic, Packed Boolean
NXOR (Same as NXO)
NXOX Packed Logical Not Exclusive Or Polyadic, Packed Boolean
OR Logical Or Diadic or Polyadic
ORX Packed Logical Or Polyadic, Packed Boolean
XOR Logical Exclusive Or Diadic or Polyadic
XORX Packed Logical Exclusive Or Polyadic, Packed Boolean

15.5.3 Input/Output Reference Instructions


Input/Output reference instructions provide access to status bits of I/O parameters and permit
data transfer between a specific input or output parameter and the accumulator (top of stack).
Instructions referencing a specific input or output include an operand specifying the particular
I/O parameter.
Instructions only modify the values of output parameters when the CALCA block is in Auto. If an
instruction performs several actions, one of which is modification of output values, the portions
of the instruction which do not relate to output modification are carried out even if the block is in
Manual. Modification of the status of output parameters is be carried out in Auto or Manual.

443
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

Table 15-5. Input/Output Reference Instructions

Name Function Instruction Type


CBD Clear Bad Status Output Status
CE Clear Error Status Output Status
COO Clear Out-of-Service Status Output Status
IN Input Input Value
INB Input Indexed Boolean Input Value
INH Input High Order Input Value
INL Input Low Order Input Value
INR Input Indexed Real Input Value
INS Input Status Input Status
OUT Output Output Value
RBD Read Bad and OOS Bits Input Status
RCL Read and Clear Input Value/Unconditional Clear
RCN Read Connect Status Input Linkage Type
RE Read Error Bit Input Status
REL Clear Secure Status Output Status
RON Read In-Service Status Input Status
ROO Read OOS Bit Input Status
RQE Read Quality Including Error Input Status
RQL Read Quality Input Status
SAC Store Accumulator in Output Output Value
SBD Set Bad Status Output Status
SE Set Error Status Output Status
SEC Set Secure Status Output Status
SOO Set Out-of-Service Status Output Status
STH Store High Order Output Value
STL Store Low Order Output Value
SWP Swap Input Value/Output Value

15.5.4 Cascade and Propagation Instructions


Cascade and propagation instructions pass various status bits of specified real inputs to specified
real outputs. They are used for error propagation and downstream cascade acknowledgment.

Table 15-6. Cascade and Propagation Instructions

Name Function Instruction Type


PRI Propagate Upstream Cascade/Propagation
PRO Propagate Downstream Cascade
PRP Propagate Errors Propagation

444
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

15.5.5 Memory and Stack Reference Instructions


The CALCA block provides 24 memory data storage elements to store the result of any operation.
Data is stored as a real value but can represent either integer, real, or boolean results.
All memory elements are preserved between execution cycles.
The letter M followed by an integer between 01 and 24 (or 1 and 24) designates the specific regis-
ter to be accessed by a memory referencing instruction.

Table 15-7. Memory and Stack Reference Instructions

Name Function Instruction Type


CLA Clear All Memory Registers Memory
CLM Clear Memory Register Memory
CST Clear Stack Stack
DUP Duplicate Stack
LAC Load Accumulator Memory/Stack
LACI Load Accumulator Indirect Memory/Stack
POP Pop Stack Stack
STM Store Memory Memory/Stack
STMI Store Memory Indirect Memory/Stack
TSTB Test Packed Boolean Stack

15.5.6 Program Control Instructions


The following instructions provide conditional or unconditional branching to a program step
number as well direct termination of the program. A step number less than or equal to the present
program step or greater than 50 invalidates or terminates the program.

Table 15-8. Program Control Instructions

Name Function Instruction Type


BIF Branch If False Conditional Branch
BII Branch If Initializing Conditional Branch
BIN Branch If Negative Conditional Branch
BIP Branch If Positive or Zero Conditional Branch
BIT Branch If True Conditional Branch
BIZ Branch If Zero Conditional Branch
END End Program Program Termination
EXIT Exit Program Program Termination
GTI Go To Indirect Unconditional Branch
GTO Go To Unconditional Branch
NOP No Operation Unconditional Branch

445
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

15.5.7 Clear/Set Instructions


The following instructions allow you to clear or set a parameter value unconditionally, or set it
conditionally, depending on the accumulator value or the block initialization state.

Table 15-9. Clear/Set Instructions

Name Function Instruction Type


CLL (Unused – NOP)
CLR Clear Unconditional Clear
CLRB Clear Packed Boolean Unconditional Clear
SET Set Unconditional Set
SETB Set Packed Boolean Unconditional Set
SSF Set and Skip if False Conditional Set
SSI Set and Skip if Initializing Conditional Set
SSN Set and Skip if Negative Conditional Set
SSP Set and Skip if Positive Conditional Set
SST Set and Skip if True Conditional Set
SSZ Set and Skip if Zero Conditional Set

15.5.8 Timing Instructions


The operands of the following instructions (except for TIM) specify a time constant or a number
of block cycles as the duration of the timing function involved. If a time constant in seconds is
specified, the duration of the timing function is rounded up to the next block execution following
the specified number of seconds. (In other words, timing functions do not reach their target val-
ues between block executions.)

Table 15-10. Timing Instructions

Name Function Instruction Type


CHI Clear History Timing
CHN Clear Step History Timing
DOFF Delayed OFF Timing
DON Delayed ON Timing
OSP One-Shot Pulse Timing
TIM Time Since Midnight Time Reporting

15.5.9 Logic Instructions


The following higher-level logic functions are supported. They emulate the functions of a tradi-
tional set-reset flip-flop and a reset-dominant flip-flop, respectively.

446
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

Table 15-11. Logic Instructions

Name Function Instruction Type


FF Flip-Flop Logic
MRS Master Reset Flip-Flop Logic

15.5.10 Error Control Instructions


Error control instructions give your program the ability to detect, report, and clear errors during
run-time. An internal error flag (parameter PERROR) records the first run-time error event. The
following instructions test and clear this flag, but do not in themselves handle the error condition.

Table 15-12. Error Control Instructions

Name Function Instruction Type


CLE Clear Error Error Control
RER Read Error Error Control
SIEC Skip if Error Clear Error Control

15.6 Instructions
15.6.1 Instruction Processing
15.6.1.1 Auto Mode
Each block processing cycle, the CALCA block executes each programmed step in sequence,
except for those bypassed because of branch conditions. When the program has been executed a
single time, the block execution is complete, and control is passed to the next block in the com-
pound processor list.
Program execution is complete when an END or EXIT statement is reached in the program flow,
or Step 50 has been executed, whichever occurs first in time.
Between instructions, the block stores intermediate results on a 24-position internal stack. You
can use stack values as arguments to subsequent instructions. The stack is cleared at the start of
each block execution cycle. You can use the 24 internal memory registers (Mxx) to store data
between block execution cycles. These memory registers can be pre-configured to contain con-
stants needed by the various instructions, or they can be used to store instruction arguments
and/or results.

15.6.1.2 Manual Mode


When the block is in Manual mode, it processes the steps the same way, except that the output
actions are ignored. When an instruction (such as RCL) involves both the writing of outputs and
other actions, the other actions are performed; only the output portions are ignored.
The actions carried out by the instruction RCL RO01 in Auto and Manual mode are shown in
Figure 15-2. The read portion, shown in part 1 of Figure 15-2, occurs unconditionally. Then the
clear action shown in part 2 of Figure 15-2, which depends on the Auto/Manual mode, follows.

447
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

17.29 OUTPUT
RO01 = 17.29

Part 1. Read

(M) MA

17.29 O

O OUTPUT
0.0 O
RO01
(A)

Part 2. Clear

Figure 15-2. Manual Mode

It should be noted that instructions which modify the memory registers M01 to M24 continue to
execute normally while in Manual mode. If, for example, your program ramps a value in M01,
then the ramping continues throughout the Manual mode, and M01 contains an indeterminate
value when the block is returned to Auto.

15.6.2 Instruction Syntax


The CALCA block program is entered through the Control Configurator. A program consists of a
series of string-type entries configured in parameters STEP01 through STEP50, each of which
defines a single program instruction.
Each CALCA block instruction consists of a string of alphanumeric characters, optionally fol-
lowed by a comment. The comment must follow a semi-colon character, and can contain any
alphanumeric or punctuation characters. The comments are ignored by the block logic, but you
may find them useful when writing, debugging, or reading a CALCA program.

15.6.2.1 Rules
The following pseudo instructions show the generic instruction syntax:
operation; comment
operation number_of_stack_operands; comment
operation operand_1 operand_2; comment
operation operand_1; comment
As noted in Section 15.2, the instruction string comprises the opcode, followed by up to two
command line arguments. Any comment must follow a semi-colon (;) character, and can contain
any alphanumeric or punctuation characters. No punctuation is allowed between arguments.
Blank steps can be inserted anywhere in a CALCA block program prior to the END statement.
This makes it easier to make minor modifications in the block program without reconfiguring

448
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

each step in the program. When a blank step is found in the program, the block logic skips to the
next step without taking any action.

15.6.2.2 Constants
Some instructions allow a constant value as a command line argument. The instruction defini-
tions of Section 15.6.5. use different letters to represent this constant, depending on the semantic
meaning of the constant, as follows:
 s = step number
 t = time constant
 b = bit number
 c = count of the number of stack values involved
 n = arithmetic operand
In all cases, the constant is expected to be an integer. If you enter a non-integer value for the con-
stant, it is automatically truncated to an integer before it is used. There is no warning message
when this truncation occurs. Certain instructions permit a zero or negative integer value, and this
is indicated in the individual instruction descriptions. Truncation of negative real values involves
dropping the decimal portion and retaining the negative sign.
If your program requires the use of a constant operand of real type, you should store it in one of
the memory registers M01 to M24 at configuration time. For example, the instruction ADD RI01
M01 is valid, but ADD RI01 0.7 is invalid.

15.6.3 Instruction Operation


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 second operand is also lost because it now resides in an inaccessible position one
location above the top of the stack.

NOTE
The term first, when used in describing the location of stack operands, refers to the
one which had been pushed earlier. Since the stack “grows toward high memory,”
an earlier operand has a lower stack pointer value.

A polyadic arithmetic or boolean instruction operates on a variable number of operands, and all of
them are on the stack.
Several polyadic instructions make use of the pseudo-parameters, Ixx and Oxx. These pseudo-
parameters allow the instructions to perform their work with individual bits of the LI01 and
LO01 packed boolean long integer parameters. The xx index varies from 01 to 32. The polyadic

449
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

instructions making use of Ixx and Oxx are IN, OUT, AND, OR, NAND, NOR, XOR, and
NXOR.
For example, IN I12 extracts bit 12 from LI01, while IN O12 extracts bit 12 from LO01. OUT
O12 sets bit 12 of LO01 and OUT I12 sets bit 12 of LI01. AND I12 performs the logical AND
operation between the top of the accumulator stack and bit 12 of LI01. OR O12 performs the
logical OR operation between the top of the accumulator stack and bit 12 of LO01.

15.6.3.1 Stack Operation


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.
Program Example 1 includes typical diadic instructions. Figure 15-3 shows the stack operation for
each program instruction.
Example 1:
STEP01 ADD RI01 RI02 Adds RI01 to RI02 and pushes the result (Sum1) onto stack.
STEP02 ADD RI03 RI04 Adds RI03 to RI04 and pushes the result (Sum2) onto stack.
STEP03 ADD Pops Sum2 and Sum1 from stack, performs addition, and
pushes the result (Sum3) onto stack.
STEP04 IN 4 Pushes constant “4” onto stack.
STEP05 DIV Pops “4” and Sum3 from stack, divides them, and pushes
Quotient onto stack.

Examples of Stack Operation for Diadic Instructions to Solve

RO01 = [(RI01 + RI02) + (RI03 + RI04)] / 4

ADD RI01 RI02 ADD RI03 RI04 ADD IN 4 DIV

S2 Sum2 S2 4
S1 Sum1 S1 Sum1 S1 Sum3 S1 Sum3 S1 Quotient
Stack
Registers
(up to 24)

LEGEND:
Stack Stack
Push Pop

Figure 15-3. Examples of Stack Operation for Diadic Instructions

450
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

When there are no command line arguments, the polyadic instructions operate on all values on
the stack. When the command line argument is a constant (c), they operate on the “c” operands at
the highest stack positions. These are the most recently-pushed values before the polyadic instruc-
tion is executed.
The block decrements the stack pointer as the operation is being performed and stores the result
in the new accumulator location (the new top of the stack location determined by the decre-
mented stack pointer), overwriting the first operand. All other operands are also lost because they
now reside in inaccessible registers located above the top of the stack. When fewer than all values
on the stack are used, those stack values remaining after the execution of the statement are not
lost.
Program Example 2 includes a typical polyadic instruction (AVE). Figure 15-4 shows the stack
operation for each program instruction.
STEP01 IN RI01 Pushes RI01 value onto stack
STEP02 IN RI02 Pushes RI02 value onto stack
STEP03 IN RI03 Pushes RI03 value onto stack
STEP04 IN RI04 Pushes RI04 value onto stack
STEP05 AVE Pops Value4 to Value1 from stack, averages them, and
pushes Average onto stack

Example of Stack Operation for Polyadic Instruction to Solve

RO01 = (RI01 + RI02 + RI03 + RI04) / 4

IN RI01 IN RI02 IN RI03 IN RI04 AVE

S4 Value4
S3 Value3 S3 Value3
S2 Value2 S2 Value2 S2 Value2
S1 Value1 S1 Value1 S1 Value1 S1 Value1 S1 Average
Stack
Registers
(up to 24)

LEGEND:
Stack Stack
Push Pop

Figure 15-4. Example of Stack Operation for Polyadic Instruction

451
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

15.6.4 Instruction Definition Convention


Section 15.6.5 uses a notational convention to describe the syntactical options available for an
instruction, as illustrated below for the Add instruction:
ADD
ADD c
ADD {RIxx, ROxx, Mxx}
ADD {RIxx, ROxx, Mxx} {n, RIxx, ROxx, Mxx}
(Add)
[Descriptions and examples appear here.]
This means that the Add instruction has the following four possible com-
mand line syntaxes:
 The opcode ADD alone. This pops the top two values on the stack,
adds them, and pushes the result onto the stack. The popped val-
ues are lost.
 The opcode ADD with integer constant c as the only command line
argument. This pops the c quantity of values at the top of the
stack, adds them, and pushes the result onto the stack. The
popped values are lost.
 The opcode ADD with exactly one of the operands RIxx, ROxx, or
Mxx. This pops the value at the top of the stack, adds the specified
operand to it, and pushes the result onto the stack. The popped
value is lost.

NOTE
Note that when operands are enclosed in curly brackets, you must select exactly one
from the group.

 The opcode ADD with exactly one operand from the group {RIxx,
ROxx, Mxx} followed by exactly one operand from the group {n,
RIxx, ROxx, Mxx}, as for example ADD RO01 M02. This adds the
two specified operands and pushes the result onto the stack.

NOTE
Note that there is no comma between the two operands. Except within comment
fields, commas are never valid in command lines.

Following the syntax specifications, are the English-language meaning of the opcode, for example,
(Add), and the description and examples for the instruction’s use.
The location of the stack pointer after the execution of an instruction is indicated by an italicized
expression such as the following: sptr(after) = sptr(before) + 1. This means that the stack pointer
after the instruction has executed is one higher than it was before. Since the stack grows toward
high memory, this means that a value has been pushed onto the stack by the instruction.
Similarly, the expression sptr(after) = sptr(before) - 1 means that one value has been popped off the
stack by the instruction. The polyadic instructions finish with the spack pointer in the first posi-
tion of the stack, which is referred to as stackbottom.

452
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

One instruction, CST, finishes with the stack pointer one position lower than stackbottom, with
the pointer waiting for the first push. After CST, sptr(after) = stackbottom -1.

15.6.5 Instruction Definitions


The CALCA block instructions are defined below in alphabetical order.

NOTE
The examples show the program step number preceding the instruction, that is, in
the instruction 17 ABS, 17 is the step number.

ABS (Absolute Value)


ABS reads the contents of the accumulator and returns the absolute value
to the accumulator, overwriting the original contents. sptr(after) =
sptr(before).
Example:
Accumulator = -.7853983 or +.7853983
17 ABS Compute absolute value of accumulator.
Accumulator = +.7853983
ACOS (Arc Cosine)
ACOS reads the value (cosine function value) in the accumulator and com-
putes the value, in radians, of the first or second quadrant angle that has
this cosine value. It then stores the angle value into the accumulator, over-
writing the original cosine value, which must have an absolute value equal
to or less than one. sptr(after) = sptr(before).
An attempt to ACOS a value > 1 or < -1 causes the instruction to be
skipped and writes a “3” (ACOS run-time error) to the PERROR parame-
ter.
Example 1:
Accumulator = 0.7071
17 ACOS Compute arc cosine of accumulator.
Accumulator = +0.7853983 (Pi/4) radians. (Pi/4 radians
= 45 degrees)

Example 2:
Accumulator = -0.5000
27 ACOS Compute arc cosine of accumulator.
Accumulator = 2.0944 (2*Pi/3) radians. (2*Pi/3 radians =
120 degrees)

453
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

ADD
ADD c
ADD {RIxx, ROxx, Mxx}
ADD {RIxx, ROxx, Mxx} {n, RIxx, ROxx, Mxx}
(Add)
ADD (or ADD c) reads the values from the top two stack locations (or a
specified number c of stack values), adds them, decrements the stack
pointer, and writes the sum into the new accumulator location (the new
top of stack location). This overwrites the first operand and isolates the
second and any later operands from any further access. For ADD, sptr(after)
= sptr(before) - 1. For ADD c, sptr(after) = sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
runtime error) is written to the PERROR parameter. The same action
occurs if ADD has no operand and there is only one value on the stack.
ADD RIxx reads the value stored in RIxx (the CALCA’s Real Input param-
eter xx), adds it to the value that it pops from the stack, then pushes the
result back onto the stack. ADD ROxx and ADD Mxx do the same for the
values stored at ROxx and memory location xx, respectively. sptr(after) =
sptr(before).
ADD RIxx n reads the RIxx value and a specified integer constant (n),
adds them and stores the result on the stack. If the first operand is ROxx
or Mxx, the operation is similar. sptr(after) = sptr(before) + 1.
The range of n is 0 to 127.

NOTE
Values of n outside of this range will cause the block to go undefined with a config-
uration error in the appropriate step.

ADD RIxx Mxx reads the values stored in RIxx and Mxx, adds them, and
stores the result on the stack. Similarly when ROxx or Mxx is the first
operand or RIxx or ROxx is the second operand. sptr(after) = sptr(before) +
1.
Example:
RI01 = 12.3485
M01 = 3.73182
12 ADD RI01 M01 Adds RI01 to M01 and stores the result on the
stack.
Accumulator = 16.08032
ALN (Natural Antilog)
ALN reads the value in the accumulator, computes the natural antiloga-
rithm (base e) of the value, and writes the result to the accumulator, over-
writing the original contents. sptr(after) = sptr(before).

454
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

Example:
Accumulator = +0.69347
17 ALN Compute natural antilogarithm of accumulator.
Accumulator = +2.0000
ALOG (Common Antilog)
ALOG reads the value in the accumulator, computes the base 10 antiloga-
rithm of the value, and writes it to the accumulator, overwriting the origi-
nal contents. sptr(after) = sptr(before).
Example 1:
Accumulator = +1.30103
17 ALOG Compute common antilog of accumulator.
Accumulator = +20.0000

Example 2:
Accumulator = -3.00000
27 ALOG Compute common antilog of accumulator.
Accumulator = +0.00100
AND
AND c
AND {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
AND {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx} {BIxx,
BOxx, Ixx,
Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
(Logical And)
AND performs a logical “and” of the contents of the specified operands and
stack locations.
If blank is specified, all stack locations are ANDed together, and the result
is written into the accumulator (the new top of stack location). This over-
writes the first operand and isolates the other operands from any further
access. sptr(after) = stackbottom.
If c is specified, the last c stack locations are ANDed together, removed
from the stack, and the result stored in the accumulator. sptr(after) =
sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
If only one operand is specified, the operand is ANDed with the accumu-
lator, and the result replaces the accumulator. sptr(after) = sptr(before).
If both operands are specified, the operands are ANDed together and the
result is stored in the accumulator. sptr(after) = sptr(before) + 1.
If ~ is specified, the operand value is inverted prior to being used.

455
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

Before the operand Mxx is used in the calculation, its value is truncated to
an integer; if the result is 0 the operand value is considered False, other-
wise it is True.
Example 1:
11 CST Clears the stack.
BI01 = True
BI07 = False
BO03 = True
BI14 = True
12 IN BI01 Puts BI01 into accumulator.
13 IN BI07 Puts BI07 into accumulator. The prior value is pushed
down one stack location.
14 IN BO03 Puts BO03 into accumulator. The prior values are
pushed down one stack location.
15 IN BI14 Puts BI14 into accumulator. The prior values are
pushed down one stack location.
16 AND Performs the logical AND function on the 4 stack
locations, overwriting the True value loaded in from
BI01. The other values are inaccessible.
Accumulator = 0 (False)

Example 2:
11 IN BI02 Puts BI02 into accumulator.
BI03 = False
BO01 = True
12 AND BI03 BO01 Performs the logical AND of BI03 and BO01
and stores the result on the stack.
Accumulator = False
ANDX (Packed Logical And)
ANDX c
ANDX reads all the values or a specified number (c) of values from the
stack, performs a 16-bit bitwise logical “and” function on them, and stores
the result into the new accumulator location (the new top of stack). This
overwrites the first operand and isolates the other operands from any fur-
ther access.
For ANDX, sptr(after) = stackbottom. For ANDX c, sptr(after) = sptr(before) - c
+ 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
Each operand is truncated from real to 16-bit integer type before it is used
in the calculation. The final result is stored on the stack.

456
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

Example:
11 CST Clears the stack.
BI01 = True (0000000000000001)
II01 = 5 (0000000000000101)
II02 = 7 (0000000000000111)
12 IN BI01 Puts BI01 into accumulator. Stored as 1.0.
13 IN II01 Puts II01 into accumulator. The prior value is pushed
down one stack location.
14 IN II02 Puts II02 into accumulator. The prior values are
pushed down one stack location.
15 ANDX Performs the packed logical AND function and stores
the result into the accumulator overwriting the value
loaded in from BI01. The other values are inaccessible.
Accumulator = 0000000000000001 (stored as 1.0)
ASIN (Arc Sine)
ASIN reads the value (sine function value) in the accumulator and com-
putes the value, in radians, of the first or fourth quadrant angle that has
this sine value. It then stores the angle value into the accumulator, over-
writing the original sine value, which must have an absolute value equal to
or less than one. sptr(after) = sptr(before).
An attempt to ASIN a value > 1 or < -1 causes the instruction to be
skipped and writes a “2” (ASIN run-time error) to the PERROR parame-
ter.
Example 1:
Accumulator = 0.7071
17 ASIN Compute arc sine of accumulator.
Accumulator = +0.7853983 (Pi/4) radians.
(Pi/4 radians = 45 degrees)

Example 2:
Accumulator = -0.5000
27 ASIN Compute arc sine of accumulator.
Accumulator = -0.5236 (-Pi/6) radians.
(-Pi/6 radians = -30 degrees)
ATAN (Arc Tangent)
ATAN reads the value (tangent function value) in the accumulator, com-
putes the value, in radians, of the first or fourth quadrant angle that has
this tangent value. It then stores the angle value into the accumulator,
overwriting the original tangent value. sptr(after) = sptr(before).
Example 1:
Accumulator = 1.000
17 ATAN Compute arc tangent of accumulator.

457
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

Accumulator = +.7853983 (Pi/4) radians.


(Pi/4 radians = 45 degrees)

458
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

Example 2:
Accumulator = -0.5000
27 ATAN Compute arc tangent of accumulator.
Accumulator = -.4636476 radians
AVE
AVE c
AVE {RIxx, ROxx, Mxx}
AVE {RIxx, ROxx, Mxx} {n, RIxx, ROxx, Mxx}
(Average)
AVE reads all the values from the stack, computes the mean algebraic
value, decrements the stack pointer, and writes this value into the new
accumulator location (the new top of stack location). This overwrites the
first operand and isolates the other operands from any further access.
sptr(after) = stackbottom.
AVE c reads the top c values from the stack, computes the mean algebraic
value of the c topmost values on the stack, writes this value into the c’th
position from the top of the stack, and sets the new top of the stack (the
accumulator) to this position. sptr(after) = sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
AVE RIxx reads the value stored in RIxx (the CALCA’s Real Input param-
eter xx), computes the mean algebraic value of the RIxx value and the
value that it pops from the stack, and then pushes the result onto the
stack. AVE ROxx and AVE Mxx do the same for the values stored at ROxx
and memory location xx, respectively. sptr(after) = sptr(before).
AVE RIxx Mxx reads the values stored in RIxx and Mxx, computes the
mean algebraic value of the RIxx and Mxx values, and stores the result on
the stack. Whenever both operands are specified, the mean algebraic value
of the first and second operand is computed. sptr(after) = sptr(before) + 1.
AVE RIxx n reads the value stored in RIxx and a specified integer con-
stant (n), computes the mean algebraic value of RIxx and n, and stores the
result on the stack. If the first operand is ROxx or Mxx, the operation is
similar. sptr(after) = sptr(before) + 1.
Example 1:
11 CST Clears the stack.
RI01 = 12.3485
RI02 = 3,73182
RI03 = -2.0037
RI04 = -0.8369
12 IN RI01 Places RI01 into accumulator.
13 IN RI02 Places RI02 into accumulator and pushes the RI01
value down one stack location.
14 IN RI03 Places RI03 into accumulator and pushes the prior
values down one stack location.

459
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

15 IN RI04 Places RI04 into accumulator and pushes the prior


values down one stack location.
16 AVE Reads all the values from the stack, calculates the mean
algebraic value for the stack values, and stores the result
into the accumulator, overwriting the RI01 value. The
other values are inaccessible.
Accumulator = 3.30993

Example 2:
RI01 = 12.3485
M01 = 3.73182
11 AVE RI01 M01 Calculates the mean algebraic value for RI01
and M01 and stores the result on the stack.
Accumulator = 8.04016
BIF s (Branch If False)
BIF branches to the step number designated by s if the value in the accu-
mulator (the current top of stack location) is 0.0. sptr(after) = sptr(before).
BIF is identical to BIZ
BII s (Branch If Initializing)
BII s branches to the step number designated by s if the CALCA block
is initializing this execution cycle. sptr(after) = sptr(before).
An attempt to branch to a step number less than or equal to the current
step number or greater than the step number containing the END state-
ment (50 if there is no END step) writes a “-4” (invalid goto syntax error)
to the PERROR parameter.
BIN s (Branch If Negative)
BIN s branches to the step number designated by s if the value in the
accumulator (the current top of stack location) is less than 0.0. sptr(after)
= sptr(before).
An attempt to branch to a step number less than or equal to the current
step number or greater than the step number containing the END state-
ment (50 if there is no END step) writes a “-4” (invalid goto syntax error)
to the PERROR parameter.
BIP s (Branch If Positive or Zero)
BIP s branches to the step number designated by s if the value in the
accumulator (the current top of stack location) is greater than or equal to
0.0. sptr(after) = sptr(before).
An attempt to branch to a step number less than or equal to the current
step number or greater than the step number containing the END state-
ment (50 if there is no END step), writes a “-4” (invalid goto syntax error)
to the PERROR parameter.

460
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

BIT s (Branch If True)


BIT s branches to the step number designated by s if the value in the
accumulator (the current top of stack location) is non-zero. sptr(after) =
sptr(before).
An attempt to branch to a step number less than or equal to the current
step number or greater than the step number containing the END state-
ment (50 if there is no END step), writes a “-4” (invalid goto syntax error)
to the PERROR parameter.
BIZ s (Branch If Zero)
BIZ s branches to the step number designated by s if the value in the
accumulator (the current top of stack location) is 0.0. sptr(after) =
sptr(before).
An attempt to branch to a step number less than or equal to the current
step number or greater than the step number containing the END state-
ment (50 if there is no END step), writes a “-4” (invalid goto syntax error)
to the PERROR parameter.
CBD {ROxx, BOxx, IOxx, LOxx}
(Clear Bad Status)
CBD clears the Bad status bit of the specified output parameter to False. Its
effect is identical in Auto or Manual mode. sptr(after) = sptr(before).
CE {ROxx, BOxx, IOxx, LOxx}
(Clear Error Status)
CE clears the Error status bit of the specified output parameter to False. Its
effect is identical in Auto or Manual mode. sptr(after) = sptr(before).
CHI (Clear History)
CHI causes all timer history to be cleared, thereby setting all DON, DOFF,
and OSP elements in the program to the inactive state with accumulated
time of zero. sptr(after) = sptr(before).
CHN s (Clear Step History)
CHN s causes the history of any timer in Step s to be cleared, setting any
DON, DOFF, or OSP element in Step s to the inactive state with accumulated
time of zero. sptr(after) = sptr(before).
If s is less than 1 or greater than 50, a “-3” (out-of-range syntax error
value, treated as a run-time error) is written to the PERROR parameter.
CHS (Change Sign)
CHS reads the value in the accumulator, changes the sign of the mantissa,
and writes the result into the accumulator, overwriting the original con-
tents. sptr(after) = sptr(before).
Example 1:
Accumulator = -0.6734592
17 CHS Change sign of accumulator.

461
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

Accumulator = +0.6734592

Example 2:
Accumulator = +0.1086372
27 CHS Change sign of accumulator.
Accumulator = -0.1086372
CLA (Clear All Memory Registers)
CLA clears all 24 memory registers. sptr(after) = sptr(before).

CLE (Clear Error)


CLE clears the internal error flag (the PERROR parameter) during pro-
gram execution. PERROR is automatically reset prior to each block execu-
tion. Thereafter it retains the first run-time error encountered during
execution.
CLE also clears the step error (STERR) parameter, which records the step
in which the first run-time error occurred. sptr(after) = sptr(before).
CLM {Mxx} (Clear Memory Register)
CLM Mxx clears the memory register specified by the Mxx operand, where
xx is an index from 01 to 24 (or 1 to 24). sptr(after) = sptr(before).
CLR
CLR {ROxx, BOxx, IOxx, LOxx, Mxx}
(Clear)
CLR stores a “0” in the specified operand.
If blank is specified, a “0” is stored in the accumulator, overwriting the
current contents.
If Mxx is specified, a “0” is stored in memory location Mxx.
If any other operand type is specified, a “0” is stored in the specified out-
put, provided the block is in Auto; otherwise the step is skipped. In all
cases, sptr(after) = sptr(before).
CLRB (Clear Packed Boolean)
CLRB b
CLRB clears to 0 a specified bit in the accumulator. If blank is specified the
bit number is expected to be at the top of the stack and this bit number is
removed from the stack before the instruction is executed. sptr(after) =
sptr(before) - 1.
If the bit number is less than 1 or greater than 16 an “11” (bit error run-
time error) is written to the PERROR parameter.
If the operand b is specified it indicates a bit number between 1 and 16 in
the accumulator. The stack is not popped in this case. sptr(after) =
sptr(before).
Bit 1 is the most significant bit of the accumulator, and bit 16 the least sig-
nificant.

462
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

COO {ROxx, BOxx, IOxx, LOxx}


(Clear Out-of-Service Status)
COO clears the Out-of-Service status bit of the specified output parameter
to False. Its effect is identical in Auto or Manual mode. sptr(after) =
sptr(before).
COS (Cosine)
COS reads the value (value of the angle in radians) in the accumulator,
computes the cosine of the angle, and writes the result into the accumula-
tor, overwriting the original contents. sptr(after) = sptr(before).
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 with a blank operand reads the value in the accumulator, algebraically
decreases it by 1.0, and returns the results to the accumulator, overwriting
the original contents. The decremented value is limited to
-16,777,215.
DEC n reads the value in the accumulator, algebraically decreases it by the
integer n, and returns the results to the accumulator. The decremented
value is limited to -16,777,215.
DEC Mxx reads the value in memory location Mxx, algebraically decreases
it by 1.0, and returns the result to Mxx. The decremented value is limited
to -16,777,215.
DEC ROxx reads the value stored at ROxx, algebraically decreases it by 1.0,
and returns the result to ROxx, but only if the block is in Auto. In Manual
the block skips this step. The decremented value is limited to LSCOxx.
DEC IOxx reads the value stored at IOxx, algebraically decreases it by 1,
and returns the result to IOxx, but only if the block is in Auto. In Manual
the block skips this step. The decremented value is limited to -32,768.

463
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

DEC LOxx reads the value stored at LOxx, algebraically decreases it by 1,


and returns the result to LOxx, but only if the block is in Auto. In Manual
the block skips this step. The decremented value is limited to
-2,147,483,648.
The stack is unaffected when the operand is other than blank or n. In all
cases, sptr(after) = sptr(before).
Example 1:
RI01 = -5.23
10 IN RI01 Places RI01 into the accumulator.
11 DEC 2 Decrement accumulator by 2.
Accumulator = -7.23. (that is, -5.23 - 2.0)

Example 2:
M02 = 11.2
11 DEC M02 Decrement M02.
M02 = 10.2
DIV
DIV {RIxx, ROxx, Mxx}
DIV {RIxx, ROxx, Mxx} {n, RIxx, ROxx, Mxx}
(Divide)
DIV reads the values from the top two stack locations, divides the second
operand (divisor) into the first operand (dividend), decrements the stack
pointer, and writes the quotient into the new accumulator location (the
new top of stack location). This overwrites the first operand and isolates
the second operand from any further access. sptr(after) = sptr(before) - 1.
DIV RIxx reads the value stored in RIxx (the CALCA’s Real Input param-
eter xx) as the divisor, divides the value (the dividend) that it pops from
the stack, then pushes the result back onto the stack. DIV ROxx and DIV
Mxx do the same for the values stored at ROxx and memory location xx,
respectively. sptr(after) = sptr(before).
DIV RIxx Mxx reads the values stored in RIxx and Mxx, divides the RIxx
value by the Mxx value, and stores the result on the stack. Whenever both
operands are specified, the first operand is divided by the second operand.
sptr(after) = sptr(before) + 1.
DIV RIxx n reads the value stored in RIxx and a specified integer con-
stant n, divides the RIxx value by n, and stores the result on the stack. If
the first operand is ROxx or Mxx, the operation is similar. sptr(after) =
sptr(before) + 1.
The range of n is 1 to 127.

NOTE
Values of n outside of this range will cause the block to go undefined with a config-
uration error in the appropriate step.

464
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

An attempt to DIV by zero (divisor = 0) causes the value of 0 to be written


to the stack location at which the result would ordinarily be stored. A “4”
(DIV run-time error) is written to the PERROR parameter.
Example:
RI01 = 12.3485
M01 = 3.73182
12 DIV RI01 M01 Divides RI01 by M01, and stores the result on
the stack.
Accumulator = +3.30898
DOFF (Delayed OFF}
DOFF t
DOFF produces a logical zero output if the input has been in the logical
DOFF Mxx
zero state for the consecutive length of time specified by the operand.
Once the timer has been activated by a zero value of the input, the output
is forced to logical one and remains in this state during the time-out. Once
the delay has been completed and the output is at logical zero, the output
returns to one as soon as the instruction reads a logical one at the input.
On each cycle, the input is found in the accumulator, and the output is
then written to the accumulator, overwriting the input after it has been
used.
DOFF with blank operand or with a 0 constant operand uses 0.5 seconds as
its delay value. If the operand is the integer t and greater than zero the
value of t indicates the number of seconds in the delay. If the operand is
Mxx, then the delay is determined by the contents of memory location xx.
A positive value in Mxx is used as the delay in seconds, and a negative
value is used as the delay in block execution cycles. If the value of the
memory location changes during the timing cycle, the instruction will
notice the change.
The maximum time delay with format DOFF t is 32,767 seconds, or
approximately 9.1 hours. The maximum delay with format DOFF Mxx can
be obtained by loading the maximum positive floating point value into
Mxx, before the DOFF Mxx instruction is reached in the program. Since
the maximum floating point value is 1038, the delay is 1038 seconds. If the
block period is longer than 1.0 second, an even longer delay can be
obtained by loading Mxx with the value of -1038. (The delay times obtain-
able with this instruction are effectively unlimited.)
The TIMINI parameter controls DOFF behavior at block initialization
time to avoid unexpected behavior of the DOFF timer and, possibly, unpre-
dicted activation of the 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 initializa-
tion, and a zero in the accumulator at block initialization begins to time
the specified delay. The timer, therefore, begins to run.

465
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

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

BI01

8 sec 8 sec
BO04

Figure 15-5. Timing Diagram for DOFF Example

DON (Delayed ON)


DON t
DON produces a logical one output if the input has been in the logical one
DON Mxx
state for the consecutive length of time specified by the operand. The out-
put returns to zero as soon as the instruction reads a zero in the input. On
each cycle, the input is found in the accumulator, and the output is then
written to the accumulator, overwriting the input after it has been used.
DON with blank operand or with a 0 constant operand uses 0.5 seconds as
its delay value. If the operand is integer t and greater than zero the value of
t indicates the number of seconds in the delay. If the operand is Mxx, then
the delay is determined by the contents of memory location xx. A positive
value in Mxx is used as the delay in seconds, and a negative value is used as
the delay in block execution cycles. If the value of the memory location
changes during the timing cycle, the instruction will notice the change.
The maximum time delay with format DON t is 32,767 seconds, or
approximately 9.1 hours. The maximum delay with format DON Mxx can
be obtained by loading the maximum positive floating point value into
Mxx, before the DON 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

466
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

obtained by loading Mxx with the value of -1038. (The delay times obtain-
able with this instruction are effectively unlimited.)
The TIMINI parameter controls DON behavior at block initialization time
to avoid unexpected behavior of the DON timer and, possibly, unpredicted
activation of the CALCA block’s outputs. If the TIMINI parameter is set
(TIMINI = 1) or (TIMINI = 3), the timer is considered to have been in
the expired state just before initialization. A zero-to-one transition of the
accumulator after initialization is required in order to start the timer. If the
TIMINI parameter is not set (TIMINI = 0) or (TIMINI = 2), the timer is
considered to have been in the inactive state just before initialization, and
a logical one in the accumulator at block initialization begins to time the
specified delay. The timer, therefore, begins to run.
In all cases, sptr(after) = sptr(before).
Example:
11 IN BI01 Inputs to the accumulator the state of BI01 at the
execution time of each cycle.
12 DON 7 Looks at BI01’s input to the accumulator, uses it to
control the Step 12 DON timer, and writes the
timer result to the accumulator.
13 OUT BO04 Outputs accumulator contents (the results of the
DON 7 instruction) to output BO04. Assume that
the block is in Auto.
BO04 = Step 12 timer output

BI01

7 sec 7 sec
BO04

Figure 15-6. Timing Diagram for DON Example

DUP (Duplicate)
DUP copies the last stack operand back onto the stack. The stack pointer is
advanced one position. sptr(after) = sptr(before) + 1.
END (End Program)
END terminates the program. Any and all statements (including any addi-
tional END statements) following the first END are never executed. If any
skip statement skips over the first END statement, the block program ter-
minates as if the END had been executed.
The END instruction is not required. If there is no END statement, Step 50
(which may be any legal instruction) is the last statement executed, unless
the execution flow lands on an EXIT statement. sptr(after) = sptr(before).

467
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

EXIT (Exit Program)


EXIT terminates the program at the current step number. It is useful for
establishing multiple conditional exit points in the program. The EXIT
instruction is functionally equivalent to a GTO instruction pointing to an
END statement. You can use as many EXIT statements as you need.
sptr(after) = sptr(before).
EXP
EXP {RIxx, ROxx, Mxx}
(Exponent)
EXP with blank operand reads the values from the top two stack locations,
raises the first operand (base) to the power of the second operand (expo-
nent), decrements the stack pointer, and writes the result into the new
accumulator location (the new top of stack location). This overwrites the
first operand and isolates the second operand from any further access.
sptr(after) = sptr(before) - 1.
EXP RIxx reads the value stored in RIxx, raises the value that it pops from
the stack to the power of RIxx value, then pushes the result back onto the
stack. EXP ROxx and EXP Mxx do the same for the values stored at ROxx
and memory location xx, respectively. sptr(after) = sptr(before).
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)

468
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

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.

Table 15-13. Truth Table for FF Instruction

S R Q
0 0 No Change
0 1 0
1 0 1
1 1 No Change

The “No Change” condition causes the value of the flip-flop after the pre-
vious execution cycle, which is retained in a block data variable, to be writ-
ten to the accumulator. sptr(after) = sptr(before) - 1.
Example:
BI01 = True
BI02 = False
12 IN BI01 Puts BI01 into accumulator – has a True value for
“set.”
13 IN BI02 Puts BI02 into accumulator – has a False value for
“reset.” The “set” input is pushed down one stack
location.
14 FF Reads the two operands, determines the output
according to the truth table above (output = 1 for
this example), and writes it into the accumulator,
overwriting “set” input. The output (1) is also stored
in the block data for use the next execution cycle.
Accumulator = True
15 OUT BO01 Writes the accumulator contents (the FF output) to
BO01.
BO01 = True

The TIMINI parameter controls FF behavior at block initialization time


to avoid undesired operation of the CALCA block's boolean outputs. This
option will only work when the CALCA block is being modified in the
Integrated Control Configurator. If the TIMINI option is set and the
CALCA block is loaded from a checkpoint file, the station is rebooted, or
the compound is turned ON or OFF, the FF output will be treated as if an
initialization has occurred. If the TIMINI parameter is set (TIMINI = 2)
or (TIMINI = 3), and the block has been modified, the FF output will not

469
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

be treated as if an initialization has occurred. If the TIMINI parameter is


set (TIMINI =0) or (TIMINI =1), FF output initialization will occur.
GTI
GTI {RIxx, ROxx, IIxx, IOxx, Mxx}
(Go To Indirect)
GTI branches to the step number contained in the accumulator. GTI
RIxx branches to the step number specified by the current contents of
RIxx. Similarly for the other operand types. When the destination is in an
operand of real data type (accumulator, RIxx, ROxx, or Mxx), the operand
contents are truncated to an integer before use. sptr(after) = sptr(before).
An attempt to branch to a step number less than or equal to the current
step number or greater than the step number containing the END state-
ment (50 if there is no END step) writes a “10” (index run-time error) to
the PERROR parameter.
GTO s (Go To)
GTO s branches to the step number designated by s. sptr(after) =
sptr(before).
An attempt to branch to a step number less than or equal to the current
step number or greater than the step number containing the END state-
ment (50 if there is no END step) writes a “-4” (invalid goto syntax error)
to the PERROR parameter.
IDIV (Integer Division)
IDIV Mxx
IDIV, with either blank or Mxx operand, reads the 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.
IDIV does not work for numbers greater than 32,767.
If the truncated value of the divisor is 0, the value 0.0 is written into the
stack location where the quotient would have been placed. The value “4”
(divide run-time error) is written to the PERROR parameter. The value of
Mxx (if specified as an operand) is unchanged.
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 accumula-
tor location (the new top of stack location). This overwrites the first oper-
and and isolates the second operand from any further access. The integer

470
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

modulus is defined as the remainder after an integer division, and is


always a whole number. sptr(after) = sptr(before) - 1.
IMOD does not work for numbers greater than 32,767.
If the truncated value of the divisor is 0, the value 0.0 is written into the
stack location where the 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
15 IN RI01 Places RI01 into accumulator.
16 IN RI02 Places RI02 into accumulator. The prior value is
pushed down one stack location.
17 IMOD The integer modulus, which is 4.0, overwrites the value
of 19.713. The value of 5.9021 is inaccessible.
IN
IN {n, RIxx, ROxx, IIxx, IOxx, BIxx, BOxx, Ixx, Oxx, Mxx, ~RIxx, ~ROxx,
~IIxx,
~IOxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
(Input)
IN with no operands pushes the value 0.0 onto the stack. IN with operand
of type n (any integer), RIxx, ROxx, or Mxx pushes the operand value
onto the stack. IN IIxx and IN IOxx convert the operand value to real
data type and then push the result onto the stack. IN with one of the bool-
ean operands (BIxx, BOxx, Ixx, or Oxx) pushes the value 1.0 when the
operand value is True and 0.0 when it is False.
IN with inverted Boolean operand (~BIxx, ~BOxx, ~Ixx, or ~Oxx) pushes
the value 0.0 onto the stack when the parameter value is True and 1.0
when it is false. IN with inverted real or integer operand (~RIxx, ~ROxx,
~IIxx, ~IOxx, or ~Mxx) pushes the value 0.0 when the parameter is non-
zero, and 1.0 when the parameter value is 0.0. In all cases, sptr(after) =
sptr(before) + 1.
INB (Input Indexed Boolean)
INB {IIxx, Mxx}
INB with blank operand reads the value in the accumulator, truncates it to
an integer, and uses the result as the index of the BIxx parameter to be
read. The value of BIxx is then pushed onto the stack. INB IIxx and INB
Mxx operate similarly, except that the index of the BIxx parameter is found
in IIxx or Mxx. (If in Mxx, the real contents of Mxx are first truncated to
an integer.)
A value of True in the indexed boolean is written to the stack as 1.0 and a
value of False is written as 0.0. 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 16, a “10” (index run-time error) is written to
the PERROR parameter.

471
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

INC
INC n
INC {ROxx, IOxx, LOxx, Mxx}
(Increment)
INC increments the accumulator or the specified operand.
If blank is specified, the value in the accumulator is read, algebraically
increased by 1.0, and returned to the accumulator, overwriting the origi-
nal contents. If an integer n is specified, the accumulator value is algebra-
ically increased by n and returned to the accumulator.
If Mxx is specified, the value in memory location xx is algebraically
increased by 1.0. The stack is unaffected.
If ROxx is specified and the block is in Auto, the indicated output is alge-
braically increased by 1.0. If the block is in Manual, the step is skipped.
If IOxx or LOxx is specified and the block is in Auto, the indicated output
is incremented by 1 as an integer addition without overflow. If the oper-
and value before incrementation is equal to 32,767 (2,147,483,647 in the
case of LOxx) or the block is in Manual, the step is skipped.
The stack is unaffected when the operand is other than blank or n. In all
cases, sptr(after) = sptr(before).
Example 1:
RI01 = -5.23
10 IN RI01 Places RI01 into the accumulator.
11 INC 2 Increments accumulator by 2.
Accumulator = -3.23 (-5.23 + 2.0)

Example 2:
M02 = 11.2
11 INC M02 Increments M02 by 1.
M02 = 12.2
INH {LIxx, (Input High Order)
LOxx}
INH reads the high order 16 bits of parameter LIxx or LOxx as an integer
and pushes it onto the stack. sptr(after) = sptr(before) + 1.
INL {LIxx, (Input Low Order)
LOxx}
INL reads the low order 16 bits of parameter LIxx or LOxx as an integer
and pushes it onto the stack. sptr(after) = sptr(before) + 1.
INR (Input Indexed Real)
INR {IIxx, Mxx}
INR with blank operand reads the value in the accumulator, truncates it to
an integer, and uses the result as the index of the RIxx parameter to be
read. The value of RIxx is then pushed onto the stack. INR IIxx and INR
Mxx operate similarly, except that the index of the RIxx parameter is found
in IIxx or Mxx. (If in Mxx, the real contents of Mxx are first truncated to
an integer.) sptr(after) = sptr(before) + 1.

472
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

If the value of the index (the contents of the accumulator, IIxx, or Mxx) is
less than 1 or greater than 8, a “10” (index run-time error) is written to the
PERROR parameter.
INS {RIxx, BIxx, IIxx, LIxx, ROxx, BOxx, IOxx, LOxx}
(Input Status)
INS pushes the 16-bit status of the specified input or output parameter
onto the stack. The status value is not modified. sptr(after) = sptr(before) +
1.
The status integer is made up of the following fields: (Bit 0 is the least sig-
nificant bit; Bit 15 is most significant.)

Bit Definition
0 to 4 Data Type
5 to 7 OM Status
8 Bad
9 Secure/Release
10 Acknowledge
11 Out of Service
12 Shadow Parameter
13 Limited High
14 Limited Low
15 Propagated Error
LAC Mxx (Load Accumulator)
LAC Mxx loads the accumulator with contents of memory location xx,
where xx is a one or two digit number, between 01 and 24 (or 1 and 24),
that specifies the specific memory register whose contents are to be loaded
into the accumulator. sptr(after) = sptr(before) + 1.
LACI Mxx (Load Accumulator Indirect)
LACI Mxx loads the accumulator with the contents of a memory register
indexed by the contents of the memory register specified by the Mxx oper-
and, where xx is an index from 01 to 24 (or 1 to 24). Neither memory reg-
ister is affected.
If Mxx does not contain an integer value, the truncated contents are used
as the index.
If the specified memory contents are less than 1 or greater than 24, a “10”
(index run-time error) is written to the PERROR parameter at run-time.
sptr(after) = sptr(before) + 1.

10 IN 5 Loads accumulator with value 5.0.


11 STM M04 Places value 5.0 into M04.
12 IN 9 Loads accumulator with value 9.0.

473
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

13 STM M05 Places value 9.0 into M05.


14 LACI M04 Loads accumulator with contents of M05 (9.0).
15 OUT RO01 Outputs accumulator value of 9.0 to RO01.
LN (Natural Logarithm)
LN reads the value (which must be positive) in the accumulator, computes
the natural (base e) 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 an “8” (LN
run-time error) to the PERROR parameter.
Example 1:
Accumulator = +1000.00
17 LN Computes natural logarithm of accumulator
Accumulator = +6.907755

Example 2:
Accumulator = +0.130570
27 LN Computes natural logarithm of accumulator
Accumulator = 2.035846
LOG (Common Logarithm)
LOG reads the value (which must be positive) in the accumulator, com-
putes the common (base 10) logarithm of the value, and writes the result
to the accumulator, overwriting the original contents. sptr(after) =
sptr(before).
An attempt to execute this instruction with a zero or negative value in the
accumulator causes the instruction to be skipped and writes a “7” (LOG
run-time error) to the PERROR parameter.
Example 1:
Accumulator = +2000.00
17 LOG Computes common logarithm of accumulator.
Accumulator = +3.30103

Example 2:
Accumulator = +0.02000
27 LOG Computes common logarithm of accumulator.
Accumulator = -1.69897
MAX
MAX c
MAX {RIxx, ROxx, Mxx}
MAX {RIxx, ROxx, Mxx} {n, RIxx, ROxx, Mxx}
(Maximum)

474
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

MAX reads all the values from the stack, selects the maximum algebraic
value, decrements the stack pointer, and writes this value into the new
accumulator location (the new top of stack location). This overwrites the
first operand and isolates other operands from any further access.
sptr(after) = stackbottom.
MAX c reads the top c values from the stack, selects the maximum alge-
braic value from the c topmost values on the stack, writes this value into
the c’th position from the top of the stack, and sets the new top of the
stack (the accumulator) to this position. sptr(after) = sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
MAX RIxx reads the value stored in RIxx (the CALCA’s Real Input
parameter xx), selects the maximum algebraic value from the RIxx value
and the value that it pops from the stack, and then pushes the result onto
the stack. MAX ROxx and MAX Mxx do the same for the values stored at
ROxx and memory location xx, respectively. sptr(after) = sptr(before).
MAX RIxx Mxx reads the values stored in RIxx and Mxx, selects the maxi-
mum algebraic value from the RIxx and Mxx values, and stores the result
on the stack. Whenever both operands are specified, the maximum alge-
braic value is selected from the first and second operands. sptr(after) =
sptr(before) + 1.
MAX RIxx n reads the value stored in RIxx and a specified integer con-
stant (n), selects the maximum algebraic value from RIxx and n, and stores
the result on the stack. If the first operand is ROxx or Mxx, the operation
is similar. sptr(after) = sptr(before) + 1.
Example 1:
11 CST Clears the stack.
RI01 = 12.3485
RI02 = 3.73182
RI03 = -2.0037
RI04 = -0.8369
12 IN RI01 Places RI01 into accumulator.
13 IN RI02 Places RI02 into accumulator and pushes the RI01 value
down one stack location.
14 IN RI03 Places RI03 into accumulator and pushes the prior values
down one stack location.
15 IN RI04 Places RI04 into accumulator and pushes the prior values
down one stack location.
16 MAX Selects the maximum algebraic value (12.3485) and
stores this value into the accumulator, overwriting the
RI01 value. The other values are inaccessible.
Accumulator = 12.3485

475
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

Example 2:
RI01 = 12.3485
M01 = 3.73182
11 MAX RI01 M01 Selects the maximum algebraic value from RI01
and M01 and stores the result on the stack.
Accumulator = 12.3485
MAXO Identical to MAX
MEDN (Median)
MEDN reads all the values from the stack, determines the median value,
decrements the stack pointer, and writes this value into the new accumula-
tor location (the new top of stack location). This overwrites the first oper-
and and isolates the other operands from any further access.
The median value is determined as follows: The stack values are arranged
conceptually in ascending order; then the median is the middle value if
the number of operands is odd, or the average of the two middle values if
the number of operands is even. sptr(after) = stackbottom.
Example:
11 CST Clears the stack.
RI01 = 12.3485
RI02 = 3.73182
RI03 = -2.0037
RI04 = -0.8369
12 IN RI01 Places RI01 into accumulator.
13 IN RI02 Places RI02 into accumulator and pushes the RI01 value
down one stack location.
14 IN RI03 Places RI03 into accumulator and pushes the prior values
down one stack location.
15 IN RI04 Places RI04 into accumulator and pushes the prior values
down one stack location.
16 MEDN Computes the average of the two middle values (3.73182
and -0.8369) and stores this value into the accumulator,
overwriting the RI01 value. The other values are
inaccessible.
Accumulator = 1.44746

476
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

MIN
MIN c
MIN {RIxx, ROxx, Mxx}
MIN {RIxx, ROxx, Mxx} {n, RIxx, ROxx, Mxx}
(Minimum)
MIN reads all the values from the stack, selects the minimum algebraic
value, decrements the stack pointer, and writes this value into the new
accumulator location (the new top of stack location). This overwrites the
first operand and isolates the other operands from any further access.
sptr(after) = stackbottom.
MIN c reads the top c values from the stack, selects the minimum alge-
braic value from the c topmost values on the stack, writes this value into
the c’th position from the top of the stack, and sets the new top of the
stack (the accumulator) to this position. sptr(after) = sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
MIN RIxx reads the value stored in RIxx (the CALCA’s Real Input param-
eter xx), selects the minimum algebraic value from the RIxx value and the
value that it pops from the stack, and then pushes the result onto the
stack. MIN ROxx and MIN Mxx do the same for the values stored at ROxx
and memory location xx, respectively. sptr(after) = sptr(before).
MIN RIxx Mxx reads the values stored in RIxx and Mxx, selects the mini-
mum algebraic value from the RIxx and Mxx values, and stores the result
on the stack. Whenever both operands are specified, the minimum alge-
braic value is selected from the first and second operands. sptr(after) =
sptr(before) + 1.
MIN RIxx n reads the value stored in RIxx and a specified integer con-
stant (n), selects the minimum algebraic value from RIxx and n, and stores
the result on the stack. If the first operand is ROxx or Mxx, the operation
is similar. sptr(after) = sptr(before) + 1.
Example 1:
11 CST Clears the stack.
RI01 = 12.3485
RI02 = 3.73182
RI03 = -2.0037
RI04 = -0.8369
12 IN RI01 Places RI01 into accumulator.
13 IN RI02 Places RI02 into accumulator and pushes the RI01
value down one stack location.
14 IN RI03 Places RI03 into accumulator and pushes the prior
values down one stack location.
15 IN RI04 Places RI04 into accumulator and pushes the prior
values down one stack location.

477
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

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.
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.

Table 15-14. Truth Table for MRS Instruction

S R Q
0 0 No Change
0 1 0
1 0 1
1 1 0

The “No Change” condition causes the value of the MRS flip-flop after the
previous execution cycle, which is retained in a block data variable, to be
written to the accumulator. sptr(after) = sptr(before) - 1.
Example:
BI01 = True
BI02 = True
12 IN BI01 Puts BI01 into accumulator – has a True value for “set.”
13 IN BI02 Puts BI02 into accumulator – has a True value for
“reset.” The “set” input is pushed down one stack
location.

478
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

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

The TIMINI parameter controls MRS behavior at block initialization


time to avoid undesired operation of the CALCA block's boolean outputs.
This option will only work when the CALCA block is being modified in
the Integrated Control Configurator. If the TIMINI option is set and the
CALCA block is loaded from a checkpoint file, the station is rebooted, or
the compound is turned ON or OFF, the MRS output will be treated as if
an initialization has occurred. If the TIMINI parameter is set (TIMINI =
2) or (TIMINI = 3), and the block has been modified, the MRS output
will not be treated as if an initialization has occurred. If the TIMINI
parameter is set (TIMINI =0) or (TIMINI =1), MRS output initialization
will occur.
MUL
MUL c
MUL {RIxx, ROxx, Mxx}
MUL {RIxx, ROxx, Mxx} {n, RIxx, ROxx, Mxx}
(Multiply)
MUL (or MUL c), reads the values from the top two stack locations (or a
specified number (c) of stack locations), multiplies them, decrements the
stack pointer, and writes the product into the new accumulator location
(the new top of stack location). This overwrites the first operand and iso-
lates the second and any later operand from any further access. For MUL,
sptr(after) = sptr(before) - 1. For MUL 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 MUL has no operand and there is only one value on the stack.
MUL RIxx reads the value stored in RIxx (the CALCA’s Real Input param-
eter xx), multiplies it with the value that it pops from the stack, then
pushes the result back on the stack. MUL ROxx and MUL Mxx do the same
for the values stored at ROxx and memory location xx, respectively.
sptr(after) = sptr(before).
MUL RIxx Mxx reads the values stored in RIxx and Mxx, multiplies the
RIxx value by the Mxx value, and stores the result on the stack. Whenever
both operands are specified, the first operand is multiplied by the second
operand. sptr(after) = sptr(before).
MUL RIxx n reads the value stored in RIxx and a specified integer con-
stant (n), multiplies the RIxx value by n, and stores the result on the stack.

479
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

If the first operand is ROxx or Mxx, the operation is similar. sptr(after) =


sptr(before).
Example 1 – Calculate (RI01 * M01):
RI01 = 12.3485
M01 = 3.73182
12 MUL RI01 M01 Multiplies RI01 by M01 and stores the result
on the stack.
Accumulator = 46.08238

Example 2 – Calculate (RI01 + RI02) * (RI03 - RI04):


RI01 = 12.3485
RI02 = 3.73182
RI03 = 8.919
RI04 = 5.199
12 ADD RI01 RI02 Adds RI01 to RI02 and stores (pushes) the
result on the stack.
Accumulator = 16.08032
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.

480
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

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.
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.

481
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

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.
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 oper-
ands and stack locations. Logical Not Or is defined as producing a False
output if any input is True and a True output if all of the inputs are False.
If blank is specified, all stack locations are NORed together, and the result
is written into the accumulator (the new top of stack location). This over-
writes the first operand and isolates the other operands from any further
access. sptr(after) = stackbottom.
If c is specified, the last c stack locations are NORed together, removed
from the stack, and the result stored in the accumulator. sptr(after) =
sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.

482
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

If only one operand is specified, the operand is NORed with the accumu-
lator, and the result replaces the accumulator. sptr(after) = sptr(before).
If both operands are specified, the operands are NORed together and the
result is stored in the accumulator. sptr(after) = sptr(before) + 1.
If ~ is specified, the operand value is inverted prior to being used.
Before the operand Mxx is used in the calculation, its value is truncated to
an integer; if the result is 0 the operand value is considered False, other-
wise it is True.
Example 1:
11 CST Clears the stack.
BI01 = True
BI07 = False
BO03 = True
BI14 = True
12 IN BI01 Puts BI01 into accumulator.
13 IN BI07 Puts BI07 into accumulator. The prior value is pushed
down one stack location.
14 IN BO03 Puts BO03 into accumulator. The prior values are
pushed down one stack location.
15 IN BI14 Puts BI14 into accumulator. The prior values are
pushed down one stack location.
16 NOR Performs the logical NOR function, and stores the
result into the accumulator, overwriting the True value
loaded in from BI01. The other values are inaccessible.
Accumulator = False

Example 2:
BI04 = False
BO01 = True
12 NOR BI04 BO01 Performs the logical NOR of BI04 and BO01
and stores the result on the stack.
Accumulator = False

483
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

NORX (Packed Logical Not Or)


NORX c
NORX reads all the values or a specified number (c) of values from the
stack, performs a 16-bit bitwise logical “nor” function on them, and stores
the result into the new accumulator location (the new top of stack). This
overwrites the first operand and isolates the other operands from any fur-
ther access. Logical Not Or is defined as producing a False output if any
input is True and a True output if all of the inputs are False.
For NORX, sptr(after) = stackbottom. For NORX c, sptr(after) = sptr(before) - c
+ 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
Each operand is truncated from real to 16-bit integer type before it is used
in the calculation. The final result is stored on the stack as a real value.
Example:
II01 = 5 (0000000000000101)
II02 = 1 (0000000000000001)
RI01 = 13.078 (0000000000001101)
13 IN II01 Puts II01 into accumulator. The prior value is pushed
down one stack location.
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.

484
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

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
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.

485
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

Example 1:
11 CST Clears the stack.
BI01 = True
BI07 = False
BO03 = True
BI14 = True
12 IN BI01 Puts BI01 into accumulator.
13 IN BI07 Puts BI07 into accumulator. The prior value is pushed
down one stack location.
14 IN BO03 Puts BO03 into accumulator. The prior values are
pushed down one stack location.
15 IN BI14 Puts BI14 into accumulator. The prior values are
pushed down one stack location.
16 NXOR Performs the logical NXOR function, and stores result
into accumulator, overwriting the True value loaded in
from BI01. The other values are inaccessible.
Accumulator = False

Example 2:
BI04 = False
BO01 = True
12 NXOR BI04 BO01 Performs the logical NXOR of BI04 and
BO01 and stores the result on the stack.
Accumulator = False
NXOX (Packed Logical Not Exclusive Or)
NXOX c
NXOX reads all the values or a specified number (c) of values from the
stack, performs a 16-bit bitwise logical “nxor” function on them, and
stores the result into the new accumulator location (the new top of stack).
This overwrites the first operand and isolates the other operands from any
further access. Not Exclusive Or is defined as producing a True output for
an even number of True inputs, a False output for an odd number of True
inputs, and a True output if all inputs are False.
For NXOX, sptr(after) = stackbottom. For NXOX c, sptr(after) = sptr(before) - c
+ 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
Each operand is truncated from real to 16-bit integer type before it is used
in the calculation. The final result is stored on the stack as a real value.

486
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

Example:
II01 = 5 (0000000000000101)
II02 = 7 (0000000000000111)
RI01 = 12.078 (0000000000001100)
13 IN II01 Puts II01 into accumulator. The prior value is pushed
down one stack location.
14 IN II02 Puts II02 into accumulator. The prior values are
pushed down one stack location.
15 IN RI01 Puts RI01 into accumulator. Value is truncated to 12
and used as 0000000000001100 in the calculation.
The prior values are pushed down one stack location.
16 NXOX 3 Performs the packed logical NXOX function and stores
the result, 1111111111110001, into the accumulator,
overwriting the value loaded in from II01. The other
values are inaccessible.
Accumulator = -15.0
OR
OR c
OR {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
OR {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx} {BIxx, BOxx,
Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
(Logical Or)
OR performs a logical “or” of the contents of the specified operands and
stack locations.
If blank is specified, all stack locations are ORed together, and the result is
written into the accumulator (the new top of stack location). This over-
writes the first operand and isolates the other operands from any further
access. sptr(after) = stackbottom.
If c is specified, the last c stack locations are ORed together, removed from
the stack, and the result stored in the accumulator. sptr(after) = sptr(before)
- c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
If only one operand is specified, the operand is ORed with the accumula-
tor, and the result replaces the accumulator. sptr(after) = sptr(before).
If both operands are specified, the operands are ORed together and the
result is stored in the accumulator. sptr(after) = sptr(before) + 1.
If ~ is specified, the operand value is inverted prior to being used.
Before the operand Mxx is used in the calculation, its value is truncated to
an integer; if the result is 0 the operand value is considered False, other-
wise it is True.

487
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

Example 1:
11 CST Clears the stack.
BI01 = True
BI07 = False
BO03 = True
BI14 = True
12 IN BI01 Puts BI01 into accumulator.
13 IN BI07 Puts BI07 into accumulator. The prior value is pushed
down one stack location.
14 IN BO03 Puts BO03 into accumulator. The prior values are
pushed down one stack location.
15 IN BI14 Puts BI14 into accumulator. The prior values are
pushed down one stack location.
16 OR Performs the logical OR function, and stores result
into accumulator, overwriting the True value loaded in
from BI01. The other values are inaccessible.
Accumulator = True

Example 2:
BI04 = False
BO01 = True
12 OR BI04 BO01 Performs the logical OR of BI04 and BO01 and
stores the result on the stack.
Accumulator = True
ORX (Packed Logical Or)
ORX c
ORX reads all the values or a specified number (c) of values from the stack,
performs a 16-bit bitwise logical “or” function on them, and stores the
result into the new accumulator location (the new top of stack). This over-
writes the first operand and isolates the other operands from any further
access.
For ORX, sptr(after) = stackbottom. For ORX c, sptr(after) = sptr(before) - c +
1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
Each operand is truncated from real to 16-bit integer type before it is used
in the calculation. The final result is stored on the stack as a real value.

488
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

Example:
11 CST Clears the stack.
BI01 = True (0000000000000001)
II01 = 5 (0000000000000101)
II02 = 0 (0000000000000000)
RI01 = 12.078 (0000000000001100)
12 IN BI01 Puts BI01 into accumulator. Stored as 1.0 and used as
0000000000000001 in the calculation.
13 IN II01 Puts II01 into accumulator. The prior value is pushed
down one stack location.
14 IN II02 Puts II02 into accumulator. The prior values are pushed
down one stack location.
15 IN RI01 Puts RI01 into accumulator. Value is truncated to 12
and used as 0000000000001100 in the calculation. The
prior values are pushed down one stack location.
16 ORX Performs the packed logical OR function and stores the
result, 0000000000001101, into the accumulator,
overwriting the value loaded in from BI01. The other
values are inaccessible.
Accumulator = 13.0
OSP (One-Shot Pulse)
OSP t
OSP with blank operand or with a 0 constant operand uses 0.5 seconds as
OSP Mxx
its pulse width value. If the operand is integer t and greater than zero the
value of t indicates the number of seconds in the pulse width. If the oper-
and is Mxx, then the pulse width is determined by the contents of mem-
ory location xx. A positive value in Mxx is used as the pulse width in
seconds, and a negative value is used as the pulse width in block execution
cycles. If the value of the memory location changes during the timing
cycle, the instruction will notice the change.
The maximum pulse width with format OSP t is 32,767 seconds, or
approximately 9.1 hours. The maximum pulse width with format OSP
Mxx can be obtained by loading the maximum positive floating point
value into Mxx, before the OSP Mxx instruction is reached in the program.
Since the maximum floating point value is 1038, the pulse width is 1038
seconds. If the block period is longer than 1.0 second, an even longer
pulse width can be obtained by loading Mxx with the value of -1038. (The
pulse widths obtainable with this instruction are effectively unlimited.)
OSP generates a non-retriggerable (triggering is disabled while the output
is true) one-shot pulse when the accumulator value makes a zero-to-one
transition. The output remains true for a period specified by the operand,
after which the block resets the output to zero.
The TIMINI parameter controls OSP behavior at block initialization time
to avoid unexpected behavior of the OSP element and, possibly, unpre-
dicted activation of the CALCA block’s outputs. If the TIMINI parameter
is set (TIMINI = 1) or (TIMINI = 3), the pulse is considered to have been

489
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

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

Figure 15-7. Timing Diagram for OSP Example

OUT {ROxx, BOxx, IOxx, Oxx, Mxx, ~BOxx, ~Oxx, ~Mxx}


(Output)
OUT writes the accumulator contents to the output parameter specified by
the operand. When operating in the Manual state, this instruction is
skipped without changing the value of the output, unless the operand is
Mxx or ~Mxx, in which case the operation is executed.
The value of the accumulator is first clamped between 32,767 and
-32,768 and then truncated to an integer value before writing it to an
operand of type IOxx.
Any non-zero value in the accumulator is converted to True in an operand
of type BOxx or Oxx, and a 0.0 value is converted to False. If the operand
is of type ~BOxx or ~Oxx a non-zero value in the accumulator causes a
False to be written and a 0.0 causes a True to be written.
If the operand is of type Mxx, the accumulator value is simply copied to
the specified memory location. If it is of type ~Mxx, any non-zero accu-
mulator value is written to Mxx as the real value 0.0 and an accumulator
value of 0.0 is written to Mxx as real value 1.0.

490
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

OUT does not alter the contents or location of the accumulator. sptr(after)
= sptr(before).
Example:
Accumulator = 3.1416
OUT IO02 Writes accumulator value to output IO02.
OUT RO02 Writes accumulator value to output RO02.
OUT ~BO01 Writes accumulator value to output BO01.
IO02 = 3
RO02 = 3.1416
BO01 = False
POP (Pop Stack)
POP removes the value at the top of the stack and discards it. The stack
pointer is decremented to point to the next value on the stack. sptr(after) =
sptr(before) - 1.
PRI ROxx (Propagate Upstream)
PRI allows you to propagate cascade status and bad status from a specified
RInn input, to a specified ROnn output. The RInn input index is loaded
onto the stack by a prior instruction.
This instruction copies the LHI, LLO, INITU, INITC, FS, BAD, and
OOS bits from the status field of RInn to the status field of the ROnn
output. If this operation causes any of these bits to be changed in the sta-
tus of ROnn, an immediate execution of the upstream block is requested.
sptr(after) = sptr(before) - 1.
If the popped index value for RIxx is less than 1 or greater than 8, a “-3”
(out-of-range syntax error value, treated as a run-time error) is written to
the PERROR parameter.
Example:
31 IN 4 Loads “4” onto the stack to specify the RI04 will be
used by the PRI instruction.
32 PRI RO02 Propagates the LHI, LLO, INITU, INITC, FS, BAD
and OOS status bits, from RI04 to real output RO02.
PRO ROxx (Propagate Downstream)
PRO allows you to propagate the cascade acknowledgment from a specified
RIxx input to the specified ROxx output. The RIxx input index is loaded
onto the stack by a prior instruction, and popped from the stack when it is
used. sptr(after) = sptr(before) - 1.
This instruction copies the PRIBLK initialization acknowledgment bit
(the Acknowledge status bit) from RIxx to ROxx.
If the popped index value for RIxx is less than 1 or greater than 8, a “-3”
(out-of-range syntax error value, treated as a run-time error) is written to
the PERROR parameter.

491
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

Example:
41 IN 5 Loads “5” onto the stack to specify that RI05 will
be used by the PRO instruction.
42 PRO RO03 Propagates the PRIBLK initialization
acknowledgment bit in RI05 to real output RO03.
PRP ROxx (Propagate Errors)
PRP allows you to propagate certain types of RIxx input errors to the spec-
ified ROxx output. The RIxx inputs whose error conditions are to be
propagated are specified by a mask on the stack, loaded by a prior instruc-
tion. The mask is popped from the stack after it is used. sptr(after) =
sptr(before) - 1.
This instruction sets the ERROR status bit of the specified output oper-
and if any of the specified RIxx inputs are in error. An RIxx input is con-
sidered to be in error when:
 Its BAD status bit is true, or
 Its Out-of-Service (OOS) status bit is true, or
 Its ERROR status bit is true, or
 It is experiencing peer-to-peer path failure.
If all masked inputs have the same status, for example, all OOS or all
BAD bits are set, the output will have this status set, in addition to setting
ERROR.
Example:
12 IN H29 Puts Hexadecimal 29 into accumulator.
13 PRP RO02 Propagates any error in RI03 or RI05 or RI08 to the
real output RO02.
where:
7 6 5 4 3 2 1 0
RI01

RI02

RI03

RI04

RI05

RI06

RI08

RI08

0 0 1 0 1 0 0 1
{
{

2 9 H29

RAND (Generate Random Number)


RAND generates a random number with uniform distribution and places it
in the accumulator. The following formula is used:
Seed = (Seed*125) modulo 2,796,203
Accumulator = Seed / 2,796,203
Seed is a CALCA block variable which is set to the value 100,001 when
the block initializes, and is changed each time a RAND instruction is exe-
cuted. You can re-initialize Seed with any desired value at any time, by
using the SEED instruction. sptr(after) = sptr(before) + 1.
RANG (Generate Random Number, Gaussian)

492
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

RANG generates a random number with Gaussian distribution and places it


in the accumulator. Two consecutive implicit RAND executions are used,
after which the following formula determines the value to be set into the
accumulator:
x = result of the first of two RAND iterations
y = result of the second of two RAND iterations
Accumulator = square root ((-2.0 ln (x)) * cos(2.0y))
In this expression, “ln” represents the natural logarithm function.
sptr(after) = sptr(before) + 1.
RBD {RIxx, IIxx, LIxx, BIxx, ROxx, IOxx, LOxx, BOxx}
(Read Bad and OOS Bits)
RBD reads both the Out-of-Service and Bad status bits of the specified
parameter and writes the value 1 to the accumulator if either of the bits is
set. If neither bit is set the value 0 is written to the accumulator. sptr(after)
= sptr(before) + 1.
RCL {RIxx, ROxx, IIxx, IOxx, BIxx, BOxx, Ixx, Oxx, Mxx, ~RIxx, ~ROxx,
~IIxx, ~IOxx,
~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
(Read and Clear)
RCL with RIxx, IIxx, BIxx, or Ixx operand unconditionally pushes
onto the stack the contents of the operand. If the operand is unlinked (in
the case of Ixx, if the LI01 operand is unlinked) a zero value is written to
the operand. Otherwise the operand is unchanged.
RCL with ROxx, IOxx, BOxx, or Oxx operand unconditionally pushes onto
the stack the operand contents, and, if the CALCA block is in Auto, writes
a zero value to the operand. Otherwise the operand is unchanged.
RCL Mxx always pushes the Mxx value onto the stack and writes 0.0 to
Mxx.
For real type operands, a written zero value is 0.0; for integer types it is 0;
and for boolean types it is False. Values of integer operands are converted
to real type when pushed on the stack. False boolean operands are pushed
as 0.0, and true boolean operands are pushed as 1.0.
RCL with inverted operand follows the same rules as above, except that
operand values are inverted before they are pushed on the stack. Inverted
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 signed
integer result in the accumulator. sptr(after) = sptr(before) + 1.

493
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

The connection status values are:


-1 or -2 = Unresolved linkage; the source compound or block
cannot be found
0= No linkage is specified
1 or 3 = Resolved Local Linkage; the source parameter is in the
same station
2 or 4 = Resolved Remote linkage; the source parameter is in a
different station
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 instruction
to check for errors that may have occurred since starting the current execu-
tion 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.

494
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

Example 2:
26... Assume that the accumulator has value of -1.68 after Step 26.
27 RND Accumulator has value of -2.0 after Step 27.
RON {RIxx, IIxx, LIxx, BIxx, ROxx, IOxx, LOxx, BOxx}
(Read In-Service Status)
RON reads the Out-of-Service status bit of the specified parameter and
writes the inverse of its value to the accumulator. (1 = True = OOS bit not
set = parameter in service, 0 = False = OOS bit set = parameter out-of-ser-
vice).
The result of the RON instruction is always the inverse of the result of the
ROO instruction. sptr(after) = sptr(before) + 1.
ROO {RIxx, IIxx, LIxx, BIxx, ROxx, IOxx, LOxx, BOxx}
(Read OOS Bit)
ROO reads the Out-of-Service status bit of the specified parameter and
writes its value to the accumulator. (1 = True = OOS bit set, 0 = False =
OOS bit not set.)
The result of the ROO instruction is always the inverse of the result of the
RON instruction. sptr(after) = sptr(before) + 1.

RQE {RIxx, IIxx, LIxx, BIxx}


(Read Quality Including Error)
RQE reads the Bad, Out-of-Service, and Error status bits and the OM sta-
tus field of the specified input. It writes the value 1 to the accumulator if
any of the three bits is set or if the OM status field does not have the value
“ON_SCAN”. In any other case, it writes the value 0 to the accumulator.
sptr(after) = sptr(before) + 1.
RQL {RIxx, IIxx, LIxx, BIxx}
(Read Quality)
RQL reads the Bad and Out-of-Service status bits and the OM status field
of the specified input. It writes the value 1 to the accumulator if either of
the two bits is set or if the OM status field does not have the value
“ON_SCAN”. In any other case, it writes the value 0 to the accumulator.
sptr(after) = sptr(before) + 1.
SAC {ROxx, BOxx, IOxx, Mxx, ~BOxx, ~Mxx}
(Store Accumulator in Output)
SAC is identical to OUT, except that outputs to the pseudo-parameters Oxx
are not permitted. sptr(after) = sptr(before).
SBD {ROxx, BOxx, IOxx, LOxx}
(Set Bad Status)
SBD sets the Bad status bit of the specified output parameter to True. Its
effect is identical in Auto or Manual mode. sptr(after) = sptr(before).

495
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

SE {ROxx, BOxx, IOxx, LOxx}


(Set Error Status)
SE sets the Error status bit of the specified output parameter to True. Its
effect is identical in Auto or Manual mode. sptr(after) = sptr(before).
SEC {ROxx, BOxx, IOxx, LOxx}
(Set Secure Status)
SEC sets the Secure status bit of the specified output parameter to True,
thereby making the parameter non-settable. Its effect is identical in Auto
or Manual mode. The effect of SEC overrides that of MA. sptr(after) =
sptr(before).
SEED (Seed Random Number Generator)
SEED stores the contents of the accumulator into the Seed value used by
the RAND and RANG instructions. The initial Seed value is set, when the
block initializes, at 100,001 and is changed by each iteration of the RAND
or RANG instruction. If the accumulator value is less than zero or greater
than 100,001 when the SEED instruction is executed, the instruction is
skipped. sptr(after) = sptr(before).
SET
SET {ROxx, BOxx, IOxx, LOxx, Mxx}
(Set)
SET stores a “1” in the specified operand.
If blank is specified, a “1” is stored in the accumulator. If Mxx is specified,
a “1” is stored in memory location Mxx.
If any other operand type is specified, a “1” is stored in the specified out-
put, provided the block is in Auto; otherwise the step is skipped. In all
cases, sptr(after) = sptr(before).
SETB (Set Packed Boolean)
SETB b
SETB sets to 1 a specified bit in the accumulator. If blank is specified the
bit number is expected to be at the top of the stack and this bit number is
removed from the stack before the instruction is executed. sptr(after) =
sptr(before) - 1.
If the bit number is less than 1 or greater than 16 an “11” (bit error run-
time error) is written to the PERROR parameter.
If the operand b is specified it indicates a bit number between 1 and 16 in
the accumulator. The stack is not popped in this case. sptr(after) =
sptr(before).
Bit 1 is the most significant bit of the accumulator, and bit 16 the least sig-
nificant.

496
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

SIEC (Skip if Error Clear)


SIEC skips the next program step if the internal error flag (the PERROR
parameter) is zero. PERROR retains the first run-time error encountered
during each block execution, or the first error encountered after a CLE
instruction sptr(after) = sptr(before).
SIN (Sine)
SIN reads the value (value of the angle in radians) in the accumulator,
computes the sine of the angle, and writes the result into the accumulator,
overwriting the original contents. sptr(after) = sptr(before).
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

497
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

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.
SSI {ROxx, BOxx, IOxx, LOxx, Mxx}
(Set and Skip if Initializing)
SSI sets the specified operand to 1.0 (if ROxx or Mxx) or 1 (if IOxx or
LOxx) or True (if BOxx) and skips the next program step if the CALCA
block is initializing this execution cycle. Otherwise the instruction is
ignored and the next instruction in sequence is executed.
If this instruction is the last or next-to-last step in the CALCA block pro-
gram and the block is initializing, the operand is set and then the block
program terminates.
When the block is in Manual, the outputs ROxx, BOxx, IOxx, and LOxx
are unchanged, but the skip action still occurs based on the value of the
accumulator. sptr(after) = sptr(before).
SSN {ROxx, BOxx, IOxx, LOxx, Mxx}
(Set and Skip if Negative)
SSN sets the specified operand to 1.0 (if ROxx or Mxx) or 1 (if IOxx or
LOxx) or True (if BOxx) and skips the next program step when the accu-
mulator is negative. Otherwise the instruction is ignored and the next
instruction in sequence is executed.
If this instruction is the last or next-to-last step in the CALCA block pro-
gram and the accumulator is negative, the operand is set and then the
block program terminates.
When the block is in Manual, the outputs ROxx, BOxx, IOxx, and LOxx
are unchanged, but the skip action still occurs based on the value of the
accumulator. sptr(after) = sptr(before).
SSP {ROxx, BOxx, IOxx, LOxx, Mxx}
(Set and Skip if Positive)
SSP sets the specified operand to 1.0 (if ROxx or Mxx) or 1 (if IOxx or
LOxx) or True (if BOxx) and skips the next program step when the accu-
mulator is positive or zero. Otherwise the instruction is ignored and the
next instruction in sequence is executed.

498
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

If this instruction is the last or next-to-last step in the CALCA block pro-
gram and the accumulator is positive or zero, the operand is set and then
the block program terminates.
When the block is in Manual, the outputs ROxx, BOxx, IOxx, and LOxx
are unchanged, but the skip action still occurs based on the value of the
accumulator. sptr(after) = sptr(before).
SST {ROxx, BOxx, IOxx, LOxx, Mxx}
(Set and Skip if True)
SST sets the specified operand to 1.0 (if ROxx or Mxx) or 1 (if IOxx or
LOxx) or True (if BOxx) and skips the next program step when the accu-
mulator is non-zero. Otherwise the instruction is ignored and the next
instruction in sequence is executed.
If this instruction is the last or next-to-last step in the CALCA block pro-
gram and the accumulator is non-zero, the operand is set and then the
block program terminates.
When the block is in Manual, the outputs ROxx, BOxx, IOxx, and LOxx
are unchanged, but the skip action still occurs based on the value of the
accumulator. sptr(after) = sptr(before).
SSZ {ROxx, BOxx, IOxx, LOxx, Mxx}
(Set and Skip if Zero)
SSZ sets the specified operand to 1.0 (if ROxx or Mxx) or 1 (if IOxx or
LOxx) or True (if BOxx) and skips the next program step when the accu-
mulator value is 0.0. Otherwise the instruction is ignored and the next
instruction in sequence is executed.
If this instruction is the last or next-to-last step in the CALCA block pro-
gram and the accumulator is zero, the operand is set and then the block
program terminates.
When the block is in Manual, the outputs ROxx, BOxx, IOxx, and LOxx
are unchanged, but the skip action still occurs based on the value of the
accumulator. sptr(after) = sptr(before).
STH LOxx (Store High Order)
STH stores the last stack value into the high order integer of the specified
long integer output (LOxx), after type conversion into an unsigned inte-
ger. The output is changed only when the block is in Auto, otherwise the
instruction is skipped. sptr(after) = sptr(before).
STL LOxx (Store Low Order)
STL stores the last stack value into the low order integer of the specified
long integer output (LOxx), after type conversion into an unsigned inte-
ger. The output is changed only when the block is in Auto, otherwise the
instruction is skipped. sptr(after) = sptr(before).

499
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

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.
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 second
operand (subtrahend) from the first operand (minuend), decrements the
stack pointer, and writes the difference into the new accumulator location
(the new top of stack location). This overwrites the first operand and iso-
lates 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. When-
ever 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 con-
stant (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

500
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

SWP
SWP {ROxx, BOxx, IOxx, Mxx}
(Swap)
SWP with no argument causes the contents of the last two positions on the
stack to be interchanged. The stack pointer is not moved.
SWP ROxx swaps the contents of the last position on the stack with that of
output ROxx. If the block is not in Auto, the value of ROxx is copied to
the stack, but the stack value is not copied to ROxx.
SWP BOxx swaps the contents of the last position on the stack with that of
output BOxx. A True value in BOxx is converted to 1.0 on the stack, and
a False value is converted to 0.0 on the stack. Any non-zero value on the
stack is converted to True in BOxx, and a 0.0 value is converted to False in
BOxx. If the block is not in Auto, the swap is treated as in the ROxx case.
SWP IOxx swaps the contents of the last position on the stack with that of
output IOxx. The accumulator value is clamped between 32,767.0 and -
32,768.0 before the swap. If the block is not in Auto, the swap is treated as
in the ROxx case.
SWP Mxx swaps the contents of the last position on the stack with that of
memory location Mxx.
In all cases, sptr(after) = sptr(before).
TAN (Tangent)
TAN reads the value (value of the angle in radians) in the accumulator,
computes the tangent of the angle, and writes the result into the accumu-
lator, overwriting the original contents. sptr(after) = sptr(before).
Example:
Accumulator = +0.7853983 (Pi/4) radians.
(Pi/4 radians = 45 degrees)
17 TAN Computes tangent of accumulator.
Accumulator = +1.0000
TIM (Time Since Midnight)
TIM gets the time, in seconds since midnight, and pushes it onto the stack
sptr(after) = sptr(before) + 1.
TRC (Truncate)
TRC reads the number in the accumulator, truncates the mantissa, or deci-
mal portion, and writes the result into the accumulator as a floating point
value, overwriting the original value. sptr(after) = sptr(before).
Example:
Accumulator = 43.999
17 TRC Truncates the accumulator
Accumulator = 43.0
TSTB (Test Packed Boolean)
TSTB b

501
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

TSTB tests a specified bit in the accumulator. If blank is specified the bit
number is expected to be at the top of the stack and this bit number is
removed from the stack before the instruction is executed. sptr(after) =
sptr(before) - 1.
If the bit number is less than 1 or greater than 16 an “11” (bit error run-
time error) is written to the PERROR parameter.
If the argument b is specified it indicates a bit number between 1 and 16
in the accumulator. The stack is not popped in this case. sptr(after) =
sptr(before).
Bit 1 is the most significant bit of the accumulator, and bit 16 the least sig-
nificant.
If the tested bit is 0, the value False (0.0) replaces the accumulator; if it is
1, the value True (1.0) replaces the accumulator.
XOR
XOR c
XOR {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
XOR {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx} {BIxx,
BOxx,
Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
(Logical Exclusive Or)
XOR performs a logical “xor” of the contents of the specified operands and
stack locations. Exclusive Or is defined as producing a True output for an
odd number of True inputs, a False output for an even number of True
inputs, and a False output if all inputs are False.
If blank is specified, all stack locations are XORed together, and the result
is written into the accumulator (the new top of stack location). This over-
writes the first operand and isolates the other operands from any further
access. sptr(after) = stackbottom.
If c is specified, the last c stack locations are XORed together, removed
from the stack, and the result stored in the accumulator. sptr(after) =
sptr(before) - c + 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
If only one operand is specified, the operand is XORed with the accumu-
lator, and the result replaces the accumulator. sptr(after) = sptr(before).
If both operands are specified, the operands are XORed together and the
result is stored in the accumulator. sptr(after) = sptr(before) + 1.
If ~ is specified, the operand value is inverted prior to being used.
Before the operand Mxx is used in the calculation, its value is truncated to
an integer; if the result is 0 the operand value is considered False, other-
wise it is True.

502
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

Example 1:
11 CST Clears the stack.
BI01 = True
BI07 = False
BO03 = True
BI14 = True
12 IN BI01 Puts BI01 into accumulator.
13 IN BI07 Puts BI07 into accumulator. The prior value is pushed
down one stack location.
14 IN BO03 Puts BO03 into accumulator. The prior values are
pushed down one stack location.
15 IN BI14 Puts BI14 into accumulator. The prior values are
pushed down one stack location.
16 XOR Performs the logical XOR function, and stores result
into accumulator, overwriting the value loaded in from
BI01. The other values are inaccessible.
Accumulator = True

Example 2:
BI04 = False
BO01 = True
12 XOR BI04 BO01 Performs the logical XOR of BI04 and BO01
and stores the result on the stack.
Accumulator = True
XORX (Packed Logical Exclusive Or)
XORX c
XORX reads all the values or a specified number (c) of values from the
stack, performs a 16-bit bitwise logical “xor” function on them, and stores
the result into the new accumulator location (the new top of stack). This
overwrites the first operand and isolates the other operands from any fur-
ther access. Exclusive Or is defined as producing a True output for an odd
number of True inputs, a False output for an even number of True inputs,
and a False output if all inputs are False.
For XORX, sptr(after) = stackbottom. For XORX c, sptr(after) = sptr(before) - c
+ 1.
If c exceeds the current number of stack operands, a “6” (stack underflow
run-time error) is written to the PERROR parameter.
Each operand is truncated from real to 16-bit integer type before it is used
in the calculation. The final result is stored on the stack as a real value.
Example:
II01 = 5 (binary 0000000000000101)
II02 = 7 (binary 0000000000000111)
LI01 =12 (binary
00000000000000000000000000001100)

503
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

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 LI01 Puts the low 16 bits (0000000000001100) of LI01
into accumulator. The prior values are pushed down
one stack location.
16 XORX 3 Performs the packed logical XORX function on the
stack locations by bit position. If all bits in a certain bit
position are 0 (false) the result is 0. If there is an odd
number of 1’s (trues), the result is 1. If there is an even
number of 1’s, the result is 0. The resulting value,
binary 0000000000001110, is stored into the accumu-
lator, overwriting the value loaded in from II01. The
other values are inaccessible.
Accumulator = 14.0 (binary 0000000000001110)

15.7 Error Conditions


For each instruction, the specified operation code (for example, ADD or RCL) and operands,
including the index ranges of the operands (xx), are validated when the CALCA block is installed
or modified by the Control Configurator. An invalid operation code or operand causes the block
to be undefined. An error message indicating the type of syntax error and the step in error is sent
to the Control Configurator and displayed on the screen.
Two types of errors are detected by the CALCA block:
 Syntax errors – those detected when the program is validated, as the block is installed
or modified.
 Run-time (dynamic) errors – those detected while the program is running. Note that
these errors do not cause the program to halt.
An integer code stored in the output parameter PERROR indicates the type of the first detected
error.
The output parameter STERR indicates the number of the program step that experienced the first
error.
Displaying the automatically-updated run-time values of PERROR and STERR at the display
interface enables you to monitor these parameters while in the debugging phase of the CALCA
program development.
Syntax errors are detected when the CALCA block is installed or reconfigured, but not when the
compound is turned ON, or when the control processor is rebooted. This avoids control cycle
overruns that might occur if validation of complex CALCA blocks were to be done during ordi-
nary block processing. Configuration errors generate screen messages that you can view and act
upon for correction while configuring the block, without interrupting the configuration session.
A non-zero value for PERROR indicates an error. A negative value generally indicates a syntax
error, and a positive value generally indicates that an error occurred while executing the program
(that is, a run-time error). The only exceptions to this convention are described in the CHN and
PRO instructions (q.v.).

504
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

The syntax error codes for the PERROR parameter are listed in Table 15-15.

Table 15-15. PERROR Syntax Error Codes

Code Definition
-1 Invalid operation code
-2 Invalid operand type
-3 Out of range operand index
-4 Invalid go to step number

The run-time error codes for the PERROR parameter are listed in Table 15-16.

Table 15-16. PERROR Run-time Error Codes

Code Definition
1 SQRT error (accumulator < 0)
2 ASIN error (absolute value of accumulator > 1)
3 ACOS error (absolute value of accumulator > 1)
4 DIV error (divide by zero)
5 Stack overflow
6 Stack underflow
7 LOG error (accumulator  0)
8 LN error (accumulator  0)
9 EXP error (base < 0)
10 Index error
11 Bit error

15.8 Programming Concepts


The CALCA block operates in the same way as do most programmable pocket calculators. To
specify program operations, you type in a series of programming steps, which are analogous to
“keystrokes” on a calculator. A programming step can contain zero, one, or two command line
arguments which serve to complete the specification of the action to be performed. Each instruc-
tion performs a unique operation over a set of one or more operands.
The block accepts programs entered through the Reverse Polish Notation (RPN) method, which
is more efficient than other methods of programming. In a simple example, you specify first the
operands and then the action to be performed, which terminates the operation. This convention
works especially well with those instructions that operate on more than two operands.
CALCA block instructions use the following types of operands:
1. Real Variables – Real variable values used in block calculations are either specified as
command line arguments (RIxx, ROxx, or Mxx) or obtained from the stack, where
they were stored as the result of earlier operations.
2. Integer Variables – Parameters IIxx, IOxx, LIxx, and LOxx or the constant command
line argument “n.”

505
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

3. Boolean Variables – Parameters BIxx and BOxx, and pseudo-parameters Ixx and Oxx.
Boolean variables can be optionally inverted before use. For information on pseudo-
parameters, see “Instruction Syntax” on page 448.
4. Other Constants – In addition to arguments of type “n” used as integer variables in
the calculation, constant command line arguments are also used to represent a timer
constant (“t”), a program step number (“s”), a bit number (“b”), or the number of
stack operands to be used (“c”).
The opcode and any required arguments for a program step are entered in the STEPxx position of
the Control Configurator screen.
Arithmetic Examples
Example 1 illustrates an instruction that uses two operands to compute the result. Example 2
shows an instruction involving more than two operands.
Example 1 – Calculate (RI01 * RI02) and output the result to RO01:
STEP01 MUL RI01 RI02 Multiplies Real Input 1 by Real Input 2 and stores the results
on the stack.
STEP02 OUT RO01 Writes the product of RI01 and RI02 to RO01.

Example 2 – Calculate ((RI01 + RI02 + RI03 + RI04) / 4):


STEP01 CST Clears the stack.
STEP02 IN RI01 Places Real Input 1 into accumulator.
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.

15.8.1 Execution Sequence


You can consider the sequencing of program steps to be under control of an internal program
counter that indicates the next program step to be processed. Instructions such as GTO that affect
program control reference the step number of the next step to be processed. Transfer of control is
permissible only in a forward direction; looping backwards or to the same step is not allowed.
Your program can have up to 50 steps.
The CALCA block supports both conditional and unconditional means of altering the control of
program execution. Conditional transfer of control is dependent on various tests of the accumula-
tor value, or on the block initialization status.
The following example demonstrates this concept.
Branching Example

506
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

RI01

Program Function
Select Real Input 1 if
it is positive; other- SELECTOR LOGIC RO01
wise, select Real IN CALCA BLK
Input 2.

RI02

Figure 15-8. Program Branching Example

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.

15.8.2 Arithmetic Chaining


An internal LIFO (last-in, first-out) stack preserves the results of prior, intermediate operations
required for calculation of the final result. You can chain arithmetic operations without using
memory registers to store and retrieve data. This approach greatly simplifies program entries and
minimizes the number of programming steps.

15.8.2.1 Stack Push Operations


If the first instruction of the chained group has two operands, the operands are processed accord-
ing to the operator (add, subtract, multiply, divide, or exponentiation), and the result is stored in
the first stack register (top of stack).
If the next instruction of the group is also an arithmetic instruction with two operands, as in the
example of this section, the next operands are processed according to the operator and the new
result is pushed onto the stack. The result of the previous arithmetic operation is pushed down to
the second stack register.

15.8.2.2 Stack Pop Operations


If an arithmetic instruction has no command line arguments, as in the fourth step of the example,
both operands are popped from the stack. If it has one command line argument, as in the seventh
step of the example, the first of the two operands is obtained by popping it from the stack. Any
stack pop retrieves the most recently pushed value from the stack to complete the current opera-
tion. When instructions in the chain operate directly on the accumulator value, the stack pointer
is not moved.
The operation sequence for an arithmetic chaining example is shown in Figure 15-9. It shows the
stack operations involved in the equation, working from the innermost parentheses outward. The
actual program steps that implement the procedures are shown below. Figure 15-10 shows the
stack operations for this example.

507
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

Equation: RO01 = RI05 * SQRT [(RI01 * RI02) / ((RI03 * RI04) - 1)]

6 5 1 4 2 3

Prod1
Prod2

Diff

Quotient

Root

Prod3
Figure 15-9. Arithmetic Chaining Example, Operation Sequence

Programming steps to compute the following equation:


RO01 = RI05 * SQRT ((RI01 * RI02) / ((RI03 * RI04) - 1)

STEP01 MUL RI01 RI02 Multiplies RI01 value by RI02 value and pushes
product (Prod1) onto stack.
STEP02 MUL RI03 RI04 Multiplies RI03 value by RI04 value and pushes
product (Prod2) onto stack.
STEP03 IN 1 Pushes constant “1” onto stack.
STEP04 SUB Pops Prod2 and constant “1” from stack, subtracts 1
from Prod2, and pushes difference (Diff ) onto stack.
STEP05 DIV Pops Prod1 and Diff from stack, divides Prod1 by Diff,
and pushes results (Quotient) onto stack.
STEP06 SQRT Pops Quotient from stack, computes the square root of
Quotient, and pushes the result (Root) onto stack.
STEP07 MUL RI05 Pops Root from stack, multiplies it by RI05 value, and
pushes product (Prod3) onto stack.
STEP08 OUT RO01 Writes Prod3 to RO01, and Prod3 remains in
position 1 on stack.
STEP9 END

508
15. CALCA – Advanced Calculator Block B0193AX – Rev AB

Arithmetic Chaining, Stack Operation

RO01 = RI05 * SQRT ((RI01 * RI02) / ((RI03 * RI04) - 1))


Sequence: 6 5 1 4 2 3

1 2 3 4 5
MUL MUL IN SUB DIV SQRT
STEP01 STEP02 STEP03 STEP04 STEP05 STEP06

S3 1
S2 Prod2 S2 Prod2 S2 Diff
S1 Prod1 S1 Prod1 S1 Prod1 S1 Prod1 S1 Quotient S1 Root
Stack
Registers
(up to 24)

6
MUL OUT LEGEND:
STEP07 STEP08
Stack Stack
[RO01] Push Pop
S1 Prod3

Figure 15-10. Arithmetic Chaining Example, Stack Operation

15.9 Application Example

Program Function RI01 RO01


CALCA Block
Measurement Program
Limit measurement input to
downstream control block to the
range 10.0 to 90.0
Figure 15-11. Application Example

Example:
STEP01 SUB RI01 90 Substracts constant “90.0” from Real Input 1.
STEP02 BIN 5 Branches to Step 5 if difference is negative.
STEP03 IN 90 Reads constant “90.0” and pushes it onto stack.
STEP04 GTO 10 Branches to Step 10.
STEP05 SUB RI01 10 Substracts constant “10.0” from Real Input 1.
STEP06 BIP 09 Branches to Step 09 if difference is positive.

509
B0193AX – Rev AB 15. CALCA – Advanced Calculator Block

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.

510
16. CHARC – Characterizer Block
This chapter covers the Characterizer, or CHARC, block, its features, parameters and detailed
operations.

16.1 Overview
The Characterizer block (CHARC) simulates signal characterization by building a “piecewise” lin-
ear characteristic curve of up to 20 segments. The MEAS is the block input. You determine the
output characteristic and construct the curve using up to 21 separate break points. In operation,
the block produces an output based on the MEAS and the user-specified characteristic curve.

16.1.1 I/O Diagram

Manual/Auto
Output

Measurement CHARC
BLOCK Block Status
Out-of-Range
Alarm Limit
Alarm Priority

Figure 16-1. CHARC Block I/O Diagram

16.2 Features
The features are:
 20 segment characterization curve
 Specifiable interpolation interval
 Discontinuous signal characterization through a specifiable step function
 Auto/Manual
 Input/Output assignable engineering units and range
 Output clamping between the output specified span limits
 Full support for cascade initialization.
The options are:
 Extender Block Option (EXTOPT) which allows the CHARC block to function as an
extension to an AIN or MAIN block, for signal conditioning and for performing ther-
mocouple compensation.
 Out-of-range alarming (ORAO).
 Error propagation (PROPT and EROPT).

511
B0193AX – Rev AB 16. CHARC – Characterizer Block

 Inhibit/Disable alarming (INHOPT).


 Primary Block (PRIBLK) option for bumpless cascade operation.
 Initialize Manual/Auto (INITMA) which specifies the desired state of MA input dur-
ing initialization.
 Step Function Option (STPOPT) which enables the discontinuous step function and
disables the interpolation function.

16.3 Parameters
Table 16-1. CHARC Block Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set blank 1 to 12 chars
TYPE block type integer no-con/no-set 19 CHARC
DESCRP descriptor string no-con/no-set blank 1 to 32 chars
PERIOD block sample time short no-con/no-set 1 0 to 13
PHASE block phase number integer no-con/no-set 0 ---
LOOPID loopid string no-con/set blank 1 to 32 chars
EXTOPT extender block option short no-con/no-set 0 [0..2]
MEAS process input real con/set 0.0 RI1
HSCI1 high scale input 1 real no-con/no-set 100.0 specifiable
LSCI1 low scale input 1 real no-con/no-set 0.0 specifiable
DELTI1 change delta input 1 real no-con/no-set 1.0 percent
EI1 eng units input 1 string no-con/no-set % specifiable
PRIBLK primary block cascade operation boolean no-con/no-set 0 0 to 1
PRITIM primary cascade timer real no-con/no-set 0.0 seconds
BCALCI back calculated input real con/set 0.0 RO1
PROPT propagate error boolean no-con/no-set 0 0 to 1
EROPT error option short no-con/no-set 1 [0|1|2]
STPOPT step function option boolean no-con/no-set 0 0 to 1
HSCO1 high scale output 1 real no-con/no-set 100.0 specifiable
LSCO1 low scale output 1 real no-con/no-set 0.0 specifiable
DELTO1 change delta output 1 real no-con/no-set 1.0 percent
EO1 eng unit output 1 string no-con/no-set % specifiable
STARTP starting point integer no-con/no-set 1 [1..21]
ENDP ending point integer no-con/no-set 21 [1..21]
X_1 - X_21 abscissa point real no-con/no-set 0.0 RI1
Y_1 - Y_21 ordinate point real no-con/no-set 0.0 RO1
MA manual/auto boolean con/set 0 0 to 1
INITMA initialize MA short no-con/no-set 1 [0|1|2]
INHOPT inhibit option short no-con/no-set 0 0 to 3
INHIB alarm inhibit boolean con/set 0 0 to 1
ORAO out-of-range alarming boolean no-con/no-set 0 0 to 1
ORAT out-of-range text string no-con/no-set blank 1 to 32 chars

512
16. CHARC – Characterizer Block B0193AX – Rev AB

Table 16-1. CHARC Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


ORAP out-of-range priority integer con/set 5 [1..5]
ORAG out-of-range group short no-con/set 1 [1..8]
AMRTIN alarm regeneration timer integer no-con/no-set 0 0 to 32767 s
Non-Configurable Parameters
OUTPUTS
ALMSTA alarm status pack_l con/no-set 0 bit map
BCALCO back calculated output real con/no-set 0.0 RI1
BLKSTA block status pack_l con/no-set 0 bit map
CRIT criticality integer con/no-set 0 [0..5]
HOR high out-of-range boolean con/no-set 0 0 to 1
INHSTA inhibit status pack_l con/no-set 0 0 to 0xFFFFFFFF
INITO initialize out short con/no-set 0 ---
LOR low out-of-range boolean con/no-set 0 0 to 1
OUT output real con/no-set 0.0 RO1
PRTYPE priority type integer con/no-set 0 [0..10]
UNACK alarm notification boolean con/no-set 0 0 to 1
DATA STORES
ACHNGE alternate change integer con/no-set 0 -32768 to 32767
ALMOPT alarm options pack_l no-con/no-set 0 0 to 0xFFFFFFFF
DEFINE no config errors boolean no-con/no-set 1 0 to 1
ERCODE config error string no-con/no-set 0 1 to 43 chars
LOCKID lock identifier string no-con/no-set blank 8 to 13 chars
LOCKRQ lock request boolean no-con/set 0 0 to 1
OWNER owner name string no-con/set blank 1 to 32 chars
PRSCAS cascade state short no-con/no-set 0 0 to 7
RI1 eng range input 1 real[3] no-con/no-set 100,0,1 specifiable
RO1 eng range output 1 real[3] no-con/no-set 100,0,1 specifiable

16.3.1 Parameter Definitions


ACHNGE Alternate Change is an integer output which is incremented each time a
block parameter is changed via a Set command.

ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use. For the CHARC block, only the following unshaded bits
are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

513
B0193AX – Rev AB 16. CHARC – Characterizer Block

Bit Number1
(0 to 31) Configured Alarm Option When True
0 Alarm Group 8 in Use
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use
28 Out-of-Range Alarm Configured
1.
Bit 0 is the least significant, low order bit.

ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the CHARC block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
OOR B4
B5
B6
B7
B8
B9

CRIT PRTYPE
INH

Bit Boolean
Number Connection
(0 to 31)* Name Description When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: See parameter ALMSTA.B32–
PRTYPE for values used in ALMSTA.B28
the AIN block
5 to 7 CRIT_MSK Criticality; 5 = lowest ALMSTA.B27–
priority, 1= highest ALMSTA.B25
28 OOR Out of Range Alarm ALMSTA.B4
29 INH Alarm inhibit ALMSTA.B3
30 UNAK Unacknowledged ALMSTA.B2

* Bit 0 is the least significant, low order bit.

AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is gen-
erated.

BCALCI Back Calculation In is a real input that provides the initial value of the
output before the block enters the controlling state, so that the return to
controlling is bumpless. It is also the source of the output value when its
integration bit, which puts the block into output tracking, is non-zero.
The source for this input is the back calculation output (BCALCO) of the
downstream block. With V4.2 and later software, BCALCI contains the
cascade initialization data bits which were formerly contained in the

514
16. CHARC – Characterizer Block B0193AX – Rev AB

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 passed upstream for
bumpless initialization purposes. It is the inverse interpolation of the out-
put and is the value for the upstream block to write to avoid bumping the
process.
With V4.2 and later software, BCALCO contains the initialization output
which was formerly contained in the INITO parameter. The initialization
output data bit is set true when:
 the block is in manual or initializing
 the downstream block has passed an initialization request via the
BCALCI input of this block.
The block clears the initialization bit when none of those conditions exist.
If you expect an upstream block to initialize when this one is doing so, you
connect BCALCO to the BCALCI input of the upstream block so that
the block can sense when this block is in open cascade condition.

BLKSTA Block Status is a 32-bit output, bit-mapped to indicate the block’s opera-
tional states. For the CHARC block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
MAO

ON

MA

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
11 MA Manual(= false)/Auto(= true) BLKSTA.B21
14 UDEF Undefined BLKSTA.B18
15 ON Compound On BLKSTA.B17
20 WLCK Workstation Lock BLKSTA.B12
26 MAO Manual/Auto Override BLKSTA.B6

* Bit 0 is the least significant, low order bit.

CRIT Criticality is an integer output that indicates the priority, ranging from 1
to 5, of the block’s highest currently active alarm (1 is the highest priority).
An output of zero indicates the absence of alarms.

515
B0193AX – Rev AB 16. CHARC – Characterizer Block

DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. In that case, no further processing of the block occurs. To return
DEFINE to a true value, correct all configuration errors and re-install the
block.

DELTI1 Change Delta for Input Range 1 is a real value that defines the minimum
percent of the input range that triggers change driven connections for
parameters in the range of RI1. The default value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.

DELTO1 Change delta for Output Range 1 is a configurable real value that defines
the minimum percent of the output range that triggers change-driven
connections for parameters in the range RO1. The default value is 1.0 per-
cent. If communication is within the same control station that contains
the block’s compound, DELTO1 has no effect.

DESCRP Description is a user-defined string of up to 32 characters that describe the


block’s function (for example, “PLT 3 FURNACE 2 HEATER CON-
TROL”).

EI1 Engineering Units for Input Range 1, as defined by the parameters


HSCI1, LSCI1, and DELTI1, is the engineering units text for the values
defined by Input Range 1. “Deg F” or “pH” are typical entries.

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.

EO1 Engineering Units for Output Range 1, as defined by the parameters


HSCO1, LSCO1, and DELTO1, is the engineering units text for the val-
ues 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).

ERCODE Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the block’s
DEFINE parameter to be set false, but not the warning situations. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. The block detailed display shows the ERCODE

516
16. CHARC – Characterizer Block B0193AX – Rev AB

on the primary page, if it is not null. For the CHARC block, the following
list specifies the possible values of ERCODE, and the significance of each
value in this block:

Message Value
“W43 – INVALID PERIOD/ PHASE does not exist for given
PHASE COMBINATION” block PERIOD, or block
PERIOD not compatible with
compound PERIOD.
“W44 – INVALID High range value is less than or
ENGINEERING RANGE” equal to low range value.
“W46 – INVALID INPUT The source parameter specified in
CONNECTION” the input connection cannot be
found in the source block, or the
source parameter is not connect-
able, or an invalid boolean exten-
sion connection has been
configured.
“W53 – INVALID A parameter value is not in the
PARAMETER VALUE” acceptable range. The
X_parameters for STARTP to
ENP are not monotonically
increasing.
“W58 – INSTALL ERROR; A Database Installer error has
DELETE/UNDELETE BLOCK” occurred.

EROPT Error Option is a short integer. If PROPT is true, EROPT specifies how
the block responds to MEAS when the MEAS parameter is in error.
EROPT has a range of 0 to 2, where:
0= The block ignores the errors.
1= The block sets the ERROR bit in OUT if the MEAS parame-
ter:
 has its BAD status bit set true;
 has its OOS status bit set true;
 is experiencing peer-to-peer path failure.
2= The block sets the ERROR bit in OUT if the MEAS parame-
ter:
 has its BAD status bit set true;
 has its OOS status bit set true;
 has its ERROR status bit set true;
 is experiencing peer-to-peer path failure.

The block disregards EROPT if PROPT is configured false. If EROPT =


0, a block in a cascaded scheme does not open the cascade in response to
an error of its input signal, even if PRIBLK is configured true.

517
B0193AX – Rev AB 16. CHARC – Characterizer Block

EXTOPT Extender Block Option is a short integer input that allows the block to be
used as an extension to a host block.
0 = Non-extender
1 = Standard characterization extender
2 = Thermocouple signal conversion extender
The host block’s EXTBLK parameter must be linked to this block’s BLK-
STA parameter. This block and its host block must reside in the same
compound, and this block must precede (that is, must be installed in the
CP database before) the host block, to avoid having the host go to the
Undefined state. When the host block runs, it passes control to the
extender block. When the extender block finishes its calculations, the host
block regains control.
When the EXTOPT parameter is set to 1 or 2, indicating that the block is
running as an extender, the PHASE parameter is set to -1. The CONFIG
overlay for the CHARC block detail display shows -1 for the PHASE
parameter when the extender block option (EXTOPT) is set.

HOR High Out-of-Range is a boolean output that is set true if any one of the
following cases occurs:
 The upper range of an RTD table has been exceeded during RTD
signal conversion.
 The upper range of the 100 ohms IEC table has been exceeded
during cold junction compensation for thermocouple signal
conversion.
 The compensated millivolt value of a thermocouple signal conver-
sion has exceeded the upper range of the SCI table in use.
 The compensated millivolt value of a special thermocouple signal
conversion has exceeded the upper range of the characterizer
block.
 The raw high value of a linear/square root signal conversion has
been exceeded.
 The upper end-point of the characterizer has been exceeded in a
characterizer signal conditioning.
 The output has been modified due to clamping based on HSCO1.

HSCI1 High Scale for Input Range 1 is a real value that defines the upper limit of
the measurement ranges. EI1 defines the units. Make the range and units
consistent with the measurement source. A typical value is 100 (percent).

HSCO1 High Scale for Output Range 1 is a real value that defines the upper limit
of the ranges for Output 1. A typical value is 100 (percent). EO1 define
the units. Make the range and units consistent with those of the output
destination.

518
16. CHARC – Characterizer Block B0193AX – Rev AB

INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting. Alarms may also be inhibited based on the compound parameter
CINHIB.

INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do
not disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the
time the alarm transitions into the inhibited state, clear the
alarm indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.

INHSTA Inhibit Status contains packed long values that represent the actual inhibit
status of each alarm type configured in the block. For the CHARC block,
only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNACK B2
B3
B4
B5
B6
B7
B8
B9
OOR
INH

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
28 OOR Out-of-Range Alarm Inhibited INHSTA.B4
29 INH Inhibit Alarm INHSTA.B3
30 UNACK Unacknowledged INHSTA.B2
* Bit 0 is the least significant, low order bit.

519
B0193AX – Rev AB 16. CHARC – Characterizer Block

INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state as specified in the checkpoint file.
The block asserts this initial M/A state whenever:
 It is installed into the Control Processor database.
 The Control Processor undergoes a reboot operation.
 The compound in which it resides is turned on.
 The INITMA parameter itself is modified via the control configu-
rator. (The block does not assert INITMA on ordinary
reconfiguration.)
INITMA is ignored if MA has an established linkage.

INITO Initialization Output is set true when the primary cascade is open for any
reason, and returned to false when cascade closure is detected. The INITO
output of a downstream block is normally connected to the INITI of the
next upstream block, and serves to notify the upstream block of the open
loop condition. The information conveyed by the short value of INITO is
currently contained in the status bits of BCALCO, but INITO/INITI
have been retained for reasons of backward compatibility. This block
keeps INITO True, for one cycle (PRIBLK = 0), until the acknowledge is
received from upstream (PRIBLK = 1 and PRITIM = 0.0), or for a fixed
time delay (PRIBLK = 1 and PRITIM = nonzero).

LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-char-
acter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.

LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation
identifier accompanying the SETVAL command is entered into the
LOCKID parameter of the block. Thereafter, set requests to any of the
block’s parameters are honored (subject to the usual access rules) only
from the workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set false by any workstation at any time, whereupon a
new LOCKRQ is accepted, and a new ownership workstation identifier
written to LOCKID.

LOOPID Loop Identifier is a configurable string of up to 32 characters which iden-


tify the loop or process with which the block is associated. It is displayed
on the detail display of the block, immediately below the faceplate.

520
16. CHARC – Characterizer Block B0193AX – Rev AB

LOR Low Out-of-Range is a boolean output that is set true if any one of the fol-
lowing cases occurs:
 The lower range of an RTD table has been exceeded during RTD
signal conversion.
 The lower range of the 100 ohms IEC table has been exceeded
during cold junction compensation for thermocouple signal
conversion.
 The compensated millivolt value of a thermocouple signal conver-
sion has exceeded the lower range of the SCI table in use.
 The compensated millivolt value of a special thermocouple signal
conversion has exceeded the lower range of the characterizer block.
 The raw low value of a linear/square root signal conversion has
been exceeded.
 The lower end-point of the characterizer has been exceeded in a
characterizer signal conditioning.
 The output has been modified due to clamping based on LSCO1.

LSCI1 Low Scale for Input Range 1 is a real value that defines the lower limit of
the measurement ranges. A typical value is 0 (percent). EI1 defines the
units. Make the range and units consistent with those of the measurement
source.

LSCO1 Low Scale for Output Range 1 is a real value that defines the lower limit of
the ranges for Output 1. A typical value is 0 (percent). EO1 defines the
units. Make the range and units consistent with those of the output desti-
nation.

MA Manual Auto is a boolean input that controls the Manual/Automatic


operating state (0 = false = Manual; 1 = true = Auto). In Auto, given the
measurement value, the block computes the output according to its spe-
cific algorithm. The block automatically limits the output to the output
range specified between LSCO1 and HSCO1, for analog blocks. In Man-
ual, the algorithm is not performed, and the output is unsecured. An
external program can then set the output to a desired value.

MEAS Measurement is an input identifying the source of the block’s input, or the
controlled variable.

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters. It is used internally.

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.

ORAO Out-of-Range Alarm Option, when configured as true, enables an alarm


message for each state change of either out-of-range parameter (LOR or
HOR). This parameter is not writable while the block is in operation.

521
B0193AX – Rev AB 16. CHARC – Characterizer Block

ORAP Out-of-Range Alarm Priority is an integer input, ranging from 1 to 5, that


sets the priority level of the out-of-range alarm (1 is the highest priority).

ORAT Out-of-Range Alarm Text is a user-configurable text string of up to


32 characters, sent with the out-of-range alarm message to identify it.

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.

OWNER Owner is a string of up to 32 ASCII characters which are used to allocate


control blocks to applications. Attempts to set Owner are successful only
if the present value of Owner is the null string, an all-blank string, or iden-
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.

PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)
Period Length Period Length
0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****

* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
****If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or

522
16. CHARC – Characterizer Block B0193AX – Rev AB

fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).

NOTE
When the EXTOPT parameter is set to 1 or 2, indicating that the block is running
as an extender, the PHASE parameter is set to -1. The CONFIG overlay for the
CHARC block detail display shows -1 for the PHASE parameter when the extender
block option (EXTOPT) is set.

PRIBLK Primary Block is a configuration option. When true (=1), PRIBLK


enables a block in a cascaded configuration to initialize without bumping
the process, either at initial startup or whenever control is transferred up
to a primary block. Depending on the value of PRITIM, PRIBLK 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 (PRITIM = 0.0), or until the time defined by PRITIM expires
(PRITIM > 0.0). In the latter case, the explicit acknowledge from the
upstream block is not needed.
Use PRIBLK in a cascade situation when the source of the block's input
connection needs to be initialized.
For correct operation, set EROPT = 1 or 2, and implement the three con-
nections between each primary-secondary block combination. These con-
nections include BCALCI/BCALCO, and OUT/RSP (or OUT/MEAS).
Except for the most primary controller block, it is recommended that
PRIBLK be set true for all applicable blocks in a cascaded scheme. When
PRIBLK is false (default value), no special handling takes place.
Refer to “PRIBLK and PRITIM Functionality” on page 528 for more
information on this parameter.

PRITIM Primary Cascade Timer is a configurable parameter used to delay the clos-
ing of the cascade to a primary block, when the output is initialized in the
CHARC block. It is used only if the PRIBLK option is set. The cascade is
closed automatically when the timer expires without requiring an explicit
acknowledge by the upstream block logic.
Refer to “PRIBLK and PRITIM Functionality” on page 528 for more
information on this parameter.

PROPT Propagate Error Option is a boolean input. When true, PROPT sets the
ERROR status bit of the output parameter if the input to the MEAS
parameter is in error while the block is in Auto. The input to the MEAS
parameter is in error when:
 Its BAD status bit is set true.
 Its OOS (Out-of-Service) status bit is set true.
 Its ERROR status bit is set true.

523
B0193AX – Rev AB 16. CHARC – Characterizer Block

 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.

PRTYPE Priority Type is an indexed (0 to 9) output parameter 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
25 = Out-of-Range Alarm

RI1 Range Input is an array of real values that specify the high and low engi-
neering scale and change delta of a particular real input. For a given block,
it also forms an association with a group of real input parameters that have
the same designated range and change delta.

RO1 Range Output is an array of real values that specify the high and low engi-
neering scale of a particular real output. For a given block, it also forms an
association with a group of real output parameters that have the same des-
ignated range.

STARTP Start Point is an integer input that specifies the index number of the
breakpoint at which the active portion of the characterization curve
begins. The default value of 1 starts the active portion of the curve at
(X_1, Y_1). You can change STARTP only by reconfiguring the block.
STARTP must be less than ENDP.

STPOPT Step Function Option enables the discontinuous step function and
disables the interpolation function in the CHARC block

TYPE When you enter “CHARC” or select “CHARC” from the block type list
under Show, an identifying integer is created specifying this block type.

UNACK Unacknowledge is a boolean output that the block sets to True when it
detects an alarm. It is typically reset by operator action.

X_1 to X_21 X_1 through X_21 are the abscissa values of the first through the twenty-
first breakpoints in the series of line segments that make up the character-

524
16. CHARC – Characterizer Block B0193AX – Rev AB

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
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).

525
B0193AX – Rev AB 16. CHARC – Characterizer Block

16.4 Detailed Operation


The active portion of the characteristic curve is specified by the parameters STARTP and ENDP,
which designate the starting and ending breakpoints, respectively. These parameters are specified
in terms of the index numbers (1 through 21) of the desired start and end breakpoints. The closed
interval containing all the line segments between the start and end breakpoints becomes the active
portion of the characteristic curve. Within this active portion, the block performs piecewise linear
interpolation on the measurement. See Figure 16-2.
When specifying the coordinates of up to 21 breakpoints, the set of X-abscissa values contained
between STARTP and ENDP must be actually increasing with the X index number (X_2 must be
greater than X_1, X_3, greater than X_2, and so on). If this condition is not met, the block is
declared “undefined” at installation and is not operational.
CHARC can also be configured to use a discontinuous step function on the measurement value
by setting the STPOPT option parameter. This disables CHARC’s normal interpolation function
and instead sets the OUT parameter to a given constant Y value according to the following
formula:
For any X_i £ MEAS < X_i+1, OUT = Y_i
where MEAS is the measurement parameter and OUT is the output parameter.
In Auto, given the measurement value, the block determines the output using a straight line inter-
polation within the line segment that includes the measurement value.
If the measurement takes on a value outside the closed interval between the start and end break-
points, the output is computed by an extrapolation based upon the closest line segment contained
within the specified closed interval.
After characterization, the block automatically limits the output to the specified output range
(between LSCO1 and HSCO1) of the output parameter. This prevents the output from exceed-
ing reasonable bounds when the measurement is extrapolated beyond the active portion of the
characteristic curve. You can set ORAO for out-of-range alarming when the measurement does
overstep the output range. When ORAO is set and the alarm has high enough priority (ORAP),
the block sets OOR Alarm Status Boolean, and an alarm message text (ORAT) is sent to the con-
figured alarm group (ORAG). The OOR status bit remains set until the measurement returns
within the HSCO1 and LSCO1 limits.
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.
In Manual, characterization is not performed, and the output is unsecured. An external program
can then set the output (which is not limited while the block is in Manual) to a desired value.

526
16. CHARC – Characterizer Block B0193AX – Rev AB

MA

OUT (EO1)
(X21, Y21)
HSCO1
ENDP(21)
(X20, Y20)

(X2, Y2)
MEAS OUT

(X3, Y3)
STARTP(1) (X1, Y1)
Interpolation * MEAS
Interval (EI1)
LSCO1

Note: A characterization curve can start and end with any of


the points between 1 and 21. STARTP defines the first
breakpoint and ENDP defines the last breakpoint. ENDP
must be greater than STARTP.
* If STPOPT is set to true, the interpolation function is
disabled and instead, CHARC performs the
discontinuous step function.

Figure 16-2. Functional Diagram, Characterizer Block

When EXTOPT is set, the CHARC block performs ordinary characterization (EXTOPT = 1) or
thermocouple compensation (EXTOPT = 2). The reference value is supplied by the AIN or
MAIN block connected to the extension. If XREFOP is set in the AIN/MAIN block, the refer-
ence value is provided in degrees Celsius by the XREFIN input. Otherwise, the AIN or MAIN
block converts the RTD input from Channel 9 in the FBM from Ohms to degrees Celsius.
In either case, the CHARC block converts the reference value from degrees Celsius to mV, using a
reverse Y-to-X piecewise linear interpolation of its configured segments. The AIN/MAIN logic
then adds the result of the conversion to the input signal, converting the compensated value from
mV back to degrees Celsius, using a forward piecewise linear interpolation of the same segments
in the CHARC block. As with the X values in X-to-Y piecewise linear interpolation, the Y values
must be increasing (that is, the value at Y_2 must be greater than Y_1, Y_3, greater than Y_2, and
so on), or the block is declared “undefined” at installation and does not operate.
When the block is in Auto, status propagation from input to output occurs, in accordance with
these rules:
 The Bad and Out-of-Service status bits of MEAS are copied to the Bad and Out-of-
Service status bits of OUT.
 When option parameter PROPT is true, the Error status bit of OUT is set true or
false based on the value of parameter EROPT, as follows:
EROPT = 0: The Error status bit of OUT is set false.
EROPT = 1: The Error status bit of OUT is set true if MEAS has Bad or Out-of-Ser-
vice status, or if the OM field of MEAS status has any value other than 1
(ON_SCAN).

527
B0193AX – Rev AB 16. CHARC – Characterizer Block

EROPT = 2: The Error status bit of OUT is set true if MEAS has Bad, Out-of-Ser-
vice, or Error status, or if the OM field of MEAS status has any value other than 1
(ON_SCAN).
Cascade initialization is accomplished by use of the BCALCI, BCALCO, EROPT, PRSCAS, and
PRIBLK parameters, and several parameter status bits.
If the CHARC block is an intermediate member of a cascade, its PRIBLK option should be set
true, its BCALCO parameter should be connected to the BCALCI input of the upstream block,
and its MEAS input should be connected to the output of the upstream block. In any case, the
OUT parameter of the CHARC block should be connected to the input of the downstream
block, and its BCALCI to the BCALCO of the downstream block.
The CHARC block considers the cascade to be open in the following situations:
 The CHARC block is in Manual mode.
 PROPT is true and EROPT = 1 or 2, and the status of MEAS fulfills the conditions
listed above for the Error status bit of OUT to be set true. In this case, the block out-
put is in HOLD mode.
 The cascade is open downstream, as indicated by the conditional or unconditional
initialization status bit of the block’s BCALCI parameter. If the unconditional initial-
ization bit is true, the block’s output OUT tracks the value of BCALCI. If the
conditional initialization bit is true, the value of OUT track BCALCI if the block is in
Auto, and retains its value if the block is in Manual.
The upstream actions taken by the CHARC block when it detects an open cascade are as follows:
 An initialization request is sent via the status bits of BCALCO.
 An inverse piecewise linear interpolation is performed on the output to determine the
abscissa producing that output ordinate, and the result becomes the back-
calculated BCALCO value.
 The back-calculated value of BCALCO is retained until the open cascade condition
no longer exists, and, in addition, the acknowledgment from upstream has been
received via a status bit of MEAS.
A unique result of the inverse interpolation is needed for the back calculation, and this will only
be possible if the “Y” coordinates of the breakpoints are all either actually increasing or actually
decreasing (not monotonically). If PRIBLK is set true in the block, this is verified at validation
time. Failure of this validation produces an appropriate message in ERCODE, and the CHARC
block is set Undefined.

16.4.1 PRIBLK and PRITIM Functionality


The Primary Block (PRIBLK) parameter indicates whether the CHARC block has a connection
from an upstream block (PRIBLK=1) or not (PRIBLK=0). Its value, together with that of the
Primary Cascade Timer (PRITIM), determines whether the CHARC block remains in Hold for a
fixed time delay (of length defined by PRITIM), or ends the Hold when the Acknowledge status
bit (Bit 10) of MEAS is detected from the upstream block (if PRITIM = 0.0). During initializa-
tion, the acknowledgement is not required and a Hold of one cycle only occurs.

528
17. CIN – Contact Input Block
This chapter covers the Contact Input Block, or CIN, its basic operations, features and
parameters, bad input, out-of-service and error conditions, manual mode, messages and
alarms, application diagrams, and a valid input connection appendix.

17.1 Overview
The Contact Input Block (CIN) provides the control strategy with input capability for a single
digital input or digital output point in any Fieldbus Module (FBM) or Fieldbus Card (FBC) con-
taining such points. The block also provides alarm handling features relating to the input. See
Figure 17-1.

Invert State Change


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 Alarms
Detection Alarming
Status

Alarm Options

Figure 17-1. CIN Block Diagram

17.2 Basic Operation


The CIN block interfaces to an Equipment Control Block (ECB) which stores digital input or
output values from an FBM or FBC. Each execution cycle, the block presents the value of the
specified digital point at its output, called Contact Input (CIN). When no FBM or FBC is con-
figured, the block input is taken from another block connected to the Input (IN) parameter. The
CIN block provides optional point inversion, Bad I/O and State alarming, State Change message
processing, and Auto/Manual capability.

529
B0193AX – Rev AB 17. CIN – Contact Input Block

17.3 Features
 Interfacing of the control scheme to all digital points in any FBMs or FBCs, including
digital output readback values
 Fieldbus Module option to permit configuration of CIN blocks without FBM or FBC
connections (input from another block instead of from hardware)
 Manual mode availability for disconnecting control schemes from the process, for
simulation and checkout purposes
 Last good value retention in the event of bad input quality
 Point inversion option
 Continuous FBM input monitoring during Manual mode and last good value
retention
 Optional bad FBM/FBC and bad input point alarming
 Optional State Change messages and State alarming
 Alarming in Manual option
 Alarm inhibit options.
 Optional State alarm inversion (“into alarm” message generated on transition from 1
to 0, and “return to normal” on transition from 0 to 1).

17.4 Parameters
Table 17-1. CIN Block Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set --- 1 to 12 chars
TYPE block type integer no-con/no-set 31 CIN
DESCRP descriptor string no-con/no-set blank 1 to 32 chars
PERIOD block sample time short no-con/no-set 1 0 to 13
PHASE block execute phase integer no-con/no-set 0 ---
LOOPID loop identifier string no-con/set blank 1 to 32 chars
IOMOPT FBM input option boolean no-con/no-set 1 0 to 1
IOM_ID FBM identifier string no-con/no-set blank 1 to 6 chars
PNT_NO FBM point number string no-con/no-set 1 1 to 32
ANM point alarm name string no-con/no-set blank 1 to 12 chars
NM0 alarm state name 0 string no-con/no-set blank 1 to 12 chars
NM1 alarm state name 1 string no-con/no-set blank 1 to 12 chars
IVO invert option boolean no-con/no-set 0 0 to 1
MA manual/auto boolean con/set 0 0 to 1
INITMA initialize MA short no-con/no-set 1 0 to 2
INHOPT inhibit option short no-con/no-set 0 0 to 3
INHIB alarm inhibit boolean con/set 0 0 to 1
INHALM inhibit alarm pack_b con/set 0 0 to 0xFFFF

530
17. CIN – Contact Input Block B0193AX – Rev AB

Table 17-1. CIN Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


INVALM invert alarm option boolean no-con/no-set 0 0 to 1
MANALM manual alarm option short no-con/no-set 0 0 to 1
SAO state alarm option boolean no-con/no-set 0 0 to 1
SAP state alarm priority integer con/set 5 1 to 5
SAG state alarm group short no-con/set 1 1 to 8
BAO bad alarm option boolean no-con/no-set 0 0 to 1
BAT bad alarm text string no-con/no-set blank 1 to 32 chars
BAP bad alarm priority integer con/set 5 1 to 5
BAG bad alarm group short no-con/set 1 1 to 8
SCOPT state change option short no-con/no-set 0 0 to 3
SCGRP state change group short no-con/set 1 1 to 8
SCTXT0 state change 0 text string no-con/no-set blank 1 to 32 chars
SCTXT1 state change 1 text string no-con/no-set blank 1 to 32 chars
PROPT propagate error option boolean no-con/no-set 0 0 to 1
IN input boolean con/set 0 0 to 1
AMRTIN alarm regeneration timer integer no-con/no-set 0 0 to 32767 s
NASTDB alarm deadband timer long integer no-con/no-set 0 0-2147483647 ms
NASOPT nuisance alarm suppres- short no-con/no-set 0 0 to 2
sion option
Non-Configurable Parameters
OUTPUTS
ALMSTA alarm status pack_l con/no-set 0 bit map
BAD bad I/O status boolean con/no-set 0 0 to 1
BLKSTA block status pack_l con/no-set 0 bit map
CIN contact input boolean con/no-set 0 0 to 1
CRIT alarm criticality integer con/no-set 0 0 to 5
INHSTA inhibit status pack_l con/no-set 0 bit map
PRTYPE priority type integer con/no-set 0 0 to 9
QALSTA quality status pack_l con/no-set 0 0 to 0xFFFFFFFF
UNACK unacknowledge alarm boolean con/no-set 0 0 to 1
DATA STORES
ACHNGE alternate change integer con/no-set 0 -32768 to 32767
ALMOPT alarm options pack_l no-con/no-set 0 0 to 0xFFFFFFFF
DEFINE no config errors boolean no-con/no-set 1 0 to 1
DEV_ID FBM letterbug char[6] no-con/no-set blank 1 to 6 chars
ERCODE configuration error string no-con/no-set blank 1 to 43 chars
LOCKID lock identifier string no-con/no-set blank 8 to 13 chars
LOCKRQ lock request boolean no-con/set 0 0 to 1
OWNER owner name string no-con/set blank 1 to 32 chars

17.4.1 Parameter Definitions


ACHNGE Alternate Change is an integer output which is incremented each time a
block parameter is changed via a Set command.

531
B0193AX – Rev AB 17. CIN – Contact Input Block

ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use.
For the CIN block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

Bit Number1
(0 to 31) Configured Alarm Options When True
0 (Least Significant) Alarm Group 8 in Use
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use
22 Bad I/O Alarm Configured
26 State Alarm Configured
1.
Bit 0 is the least significant, low order bit.

ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the CIN block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
Boolean B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

CRIT PRTYPE
UNAK

BAD
STA

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: See parameter
(Least Sig- PRTYPE for values used in
nificant) the CIN block
5 to 7 CRIT_MSK Criticality; 5 = lowest prior-
ity, 1= highest
22 BAD Bad I/O Alarm ALMSTA.B10
26 STA State Alarm ALMSTA.B6
30 UNAK Unacknowledged ALMSTA.B2

532
17. CIN – Contact Input Block B0193AX – Rev AB

* Bit 0 is the least significant, low order bit.

AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is gen-
erated.

ANM Alarm Name is a user-defined string of up to 12 characters which serves as


a point descriptor label in State Alarm, State Change, and Bad Alarm mes-
sages, for example, “PLT3 F2 SDR”.

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).

BAT Bad Alarm Text is a user-configurable text string of up to 32 characters,


sent with the Bad alarm message to identify it.

BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the CIN block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

FBM
BAD
ON

MA

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
8 FBM FBM or FBC Failure BLKSTA.B24
11 MA Manual = 0, Auto = 1 BLKSTA.B21
12 BAD Bad I/O BLKSTA.B20
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
20 WLCK Access Locked BLKSTA.B12

533
B0193AX – Rev AB 17. CIN – Contact Input Block

* Bit 0 is the least significant, low order bit.

CIN Contact Input is the block output. It represents the state of the input
point specified by IOM_ID and PNT_NO when IOMOPT indicates
that an FBM or FBC is configured, or the value of the input IN otherwise.
In any case, CIN is subject to optional inversion based on the state of
option IVO.

CRIT Criticality is an integer output that indicates the priority, ranging from 1
to 5, of the block’s highest currently active alarm (1 is the highest priority).
An output of zero indicates the absence of alarms.

DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. (See ERCODE for the list of all possible validation errors in this
block.) In that case, no further processing of the block occurs, including
further validation of remaining parameters. To return DEFINE to a true
value, correct all configuration errors and re-install the block. If DEFINE
= 0, the bit BLKSTA.UDEF = 1.

DESCRP Description is a user-defined string of up to 32 characters that describe the


block’s function (for example, “PLT 3 FURNACE 2 HEATER CON-
TROL”).

DEV_ID Device Identifier is a character array that specifies the 6-character letter-
bug of the connected FBM or FBC.

ERCODE Error Code is a string data store which indicates the type of configuration
error which caused the block’s DEFINE parameter to be set false. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. For the CIN block, the following list specifies the
possible values of ERCODE, and the significance of each value in this
block:

ERCODE Description
W51 Cluster I/O specified but type is not digital input, dig-
ital output, or digital input/output.
W52 PNT_NO out of range for the specified FBM or FBC.
W54 Specified IOM_ID does not exist.

IN Input is an alternate source for the CIN block input, used when there is
no connected FBM or FBC. When the block has a connected FBM or
FBC, IN reflects the actual physical input, even when the output CIN is
under Manual control or when CIN is holding the last good value due to
the quality of the physical input.

534
17. CIN – Contact Input Block B0193AX – Rev AB

INHALM Inhibit Alarm contains packed boolean values that represent alarm genera-
tion inhibit requests for each type of alarm configured in the block. For
the CIN block, only the following bits are used:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10

B11

B12

B13

B14

B15

B16
B1

B2

B3

B4

B5

B6

B7

B8

B9
Bit Number* Boolean Connection
(0 to 15) Description When True (B16 to B1)
6 Inhibit Bad I/O Alarm INHALM.B10
10 Inhibit State Alarm INHALM.B6

* Bit 0 is the least significant, low order bit.


There are no mnemonic names for the individual bits of INHALM.

INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting. Alarms can also be inhibited based on INHALM and the com-
pound parameter CINHIB.

INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do not
disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the time
the alarm transitions into the inhibited state, clear the alarm
indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages can be acknowledged by explicitly setting
UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages can be acknowledged by explicitly setting
UNACK false.

535
B0193AX – Rev AB 17. CIN – Contact Input Block

INHSTA Inhibit Status contains packed long values that represent the current
inhibit status of each alarm type configured in the block. For the CIN
block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

BAD B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
STA B6
B7
B8
B9

Bit Number* Boolean Connection


(0 to 31) Name Description When True (B32 to B1)
22 BAD Bad I/O Alarm Inhibited INHSTA.B10
26 STA State Alarm Inhibited INHSTA.B6
* Bit 0 is the least significant, low order bit.

INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The M/A state as specified in the checkpoint file.
The block asserts this initial M/A state whenever:
 It is installed into the Control Processor database.
 The Control Processor undergoes a reboot operation.
 The compound in which it resides is turned on.
 The INITMA parameter is modified via the control configurator.
(The block does not assert INITMA on ordinary reconfiguration.)
INITMA is ignored if MA has an established linkage.

INVALM Invert Alarm is a configured boolean which specifies the sense of CIN
transitions considered “into alarm” and “return to normal” in State alarm
messages. Values are:
0= CIN transitions from 0 to 1 are considered “into alarm.” State
alarm messages contain the NM1 string. Transitions from 1 to 0
are considered “return to normal.” State alarm messages contain
the NM0 string.
1= CIN transitions from 1 to 0 are considered “into alarm.” State
alarm messages contain the NM1 string. Transitions from 0 to 1
are considered “return to normal.” State alarm messages contain
the NM0 string.

In any case, State alarm detection is disabled when option SAO is false.

536
17. CIN – Contact Input Block B0193AX – Rev AB

IOMOPT FBM Option is a boolean specifying whether an FBM or FBC connection


to the block exists. Values:
0= The CIN block obtains input values from the IN parameter.
1= The block obtains input values from the FBM or FBC input
point specified by IOM_ID and PNT_NO.

IOM_ID Fieldbus Module Identifier is a configurable string that specifies the path-
name of the FBM or FBC to which the block is connected.
IOM_ID has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOM_ID configuration. In this case, the 1-12
character ECB block name is sufficient.

IVO Invert Option, when true, causes the block to invert the value of the FBM
or FBC input or the IN input before writing it to the CIN output. If IVO
is true, all alarming and state change message generation is based on the
inverted value of the input.

LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-char-
acter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.

LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion, a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are honored (subject to the usual access rules) only from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set false by any workstation at any time, whereupon a
new LOCKRQ is accepted, and a new ownership workstation identifier
written to LOCKID.

LOOPID Loop Identifier is a configurable string of up to 32 characters which iden-


tify the loop or process with which the block is associated. It is displayed
on the detail display of the block, immediately below the faceplate.

MA Manual/Auto is a boolean input that controls the block’s operating state:


0 = False = Manual
1 = True = Auto
When in Manual, the CIN block output is released and can only be
updated manually. In Auto, CIN is secured and updated by the physical

537
B0193AX – Rev AB 17. CIN – Contact Input Block

input point value (or the value of IN when there is no connected FBM or
FBC).

MANALM Manual Alarm Option is a configurable input which enables or disables


configured alarm options to function in Manual mode. Normally alarms
are processed only in the Auto mode. Values for the CIN block:
0 = No alarming in Manual
1 = Full alarming in Manual

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

NASOPT Nuisance Alarm Suppression Option is a configurable, non-settable short


integer that specifies how the nuisance alarm delay is implemented:
 0 = Suppress nuisance alarms by delaying the Return-to-Normal
(default) by the length of time specified in NASTDB
 1 = Suppress nuisance alarms by delaying alarm detection by the
length of time specified in NASTDB
 2 = Suppress nuisance alarms by delaying both the Alarm Detec-
tion and the Return-to-Normal by the length of time specified in
NASTDB

NASTDB Alarm Deadband Timer is a configurable long integer. Depending on the


value of NASOPT, it either specifies the deadband time interval that must
elapse before an alarm condition is allowed to return to normal, or the
length of a delay-on timer which specifies the amount of time between an
alarm’s detection and the announcement of the alarm. The parameter
value ranges from zero (default, no delay) to 2147483647 ms.

NM0 Name 0 is a user-defined string of up to 12 characters sent with a State


alarm message to indicate that the message is a “return to normal” type.
This means that CIN has transitioned from 1 to 0 if INVALM is false, or
0 to 1 if INVALM is true.

NM1 Name 1 is a user-defined string of up to 12 characters sent with a State


alarm message to indicate that the message is an “into alarm” type. This
means that CIN has transitioned from 0 to 1 if INVALM is false, or 1 to 0
if INVALM is true.

OWNER Owner is a string of up to 32 ASCII characters which are used to


allocate control blocks to applications. Attempts to set OWNER are suc-
cessful only if the present value of OWNER is the null string, an all-blank
string, or identical 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.

538
17. CIN – Contact Input Block B0193AX – Rev AB

PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)
Period Length Period Length
0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****

* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).

PNT_NO Point Number is the FBM or FBC point to which the CIN block is con-
nected (see “Appendix A – Valid Input Connections” on page 548).

PROPT Propagate Error Option is a boolean input which determines whether the
status of IN should be reflected in the error bit of CIN status. If the CIN
block is in Auto and no FBM or FBC is configured (IOMOPT = 0), the
true value of PROPT causes any one of the following conditions to be
reflected as an error status of CIN:
 Bad status bit in IN
 OOS status bit in IN
 Error status bit in IN
 Any value in the OM field of the IN status except 1 (ON_SCAN).
Any other value in this field indicates that the source of the con-

539
B0193AX – Rev AB 17. CIN – Contact Input Block

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.

QALSTA Quality Status parameter (QALSTA) is a non-configurable packed long


that provides a combination of value record status, block status
(BLKSTA), and alarm status (ALMSTA) information in a single connect-
able output parameter. Available bits for this block are provided below.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

Bit Boolean Connection


Number1 Definition Contents (B32 to B1)
30 Alarms Unacknowledged ALMSTA.UNA QALSTA.B2
29 Alarms Inhibited ALMSTA.INH QALSTA.B3
26 State Alarm ALMSTA.STAL QALSTA.B6
22 Bad Alarm2 ALMSTA.IOBD QALSTA.B10
13 Bad Primary FBM BLKSTA.FBM1 QALSTA.B19
10 Bad Primary Point BLKSTA.BAD1 QALSTA.B22
5 Manual BLKSTA.MA QALSTA.B27
2 Uncertain CIN.ERR status QALSTA.B30
1 Out-of-Service CIN.OOS QALSTA.B31
0 Bad CIN.BAD status QALSTA.B32
1. Bit 0 is the least significant, low order bit.

540
17. CIN – Contact Input Block B0193AX – Rev AB

2. This bit records the status of the primary input (CIN). This status is the inverse of
the Manual/Auto (MA) status bit in BLKSTA. This bit is not available for
I/A Series software earlier than v8.0.

SAG State Alarm Group is a short integer input that directs State alarm mes-
sages to one of eight groups of alarm devices.

SAO State Alarm Option is a configurable boolean which, when true, enables
the generation of State Alarms.

SAP State Alarm Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the State alarm (1 is the highest priority).

SCGRP State Change Group is a short integer input that directs State Change
messages to one of eight groups of devices. However, Alarm Alert ignores
these messages when they arrive; State Change messages are printed only.

SCOPT State Change Option specifies which state changes of the block output
cause a State Change message to be the generated. These messages are
ignored by Alarm Alert, and are not shown in the Alarm Display; they are
printed on the alarm printers only. Depending on the value of SCOPT,
messages are generated for the following types of transitions (state
changes):
0 = No transitions (no messages generated)
1 = All transitions
2 = 0 to 1 transitions only
3 = 1 to 0 transitions only

SCTXT0 State Change Text 0 is a text string sent with the State Change message to
indicate that the state has changed from 1 to 0, after any optional inver-
sion.

SCTXT1 State Change Text 1 is a text string sent with the State Change message to
indicate that the state has changed from 0 to 1, after any optional inver-
sion.

TYPE When you enter “CIN” or select it from a configurator list, an identifying
integer is created specifying this block type.

UNACK Unacknowledge is a boolean output parameter which is set true, for notifi-
cation purposes, whenever the block goes into alarm. It is settable, but sets
are only allowed to clear UNACK to false, and never in the opposite direc-
tion. The clearing of UNACK is normally via an operator “acknowledge”
pick on a default display, user display, or Current Alarms Display, or via a
user task.

541
B0193AX – Rev AB 17. CIN – Contact Input Block

17.4.2 Detailed Diagram

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

Figure 17-2. CIN Block Operational Diagram

542
17. CIN – Contact Input Block B0193AX – Rev AB

17.4.3 Input from FBM or FBC


Key Parameters: IOM_ID, PNT_NO, CIN, IN, IVO
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 valid inputs for the CIN block:

Valid Output Points


FBM Electrical Type Valid Input Points (Readbacks)
FBM207 Contact or dc In Points 1 to 16 None
FBM217 Group-Isolated Contact In Points 1 to 32 None
FBM219 Contact or dc In/Out Points 1 to 24 Points 25 to 32
FBM241 Contact or dc In/Out Points 1 to 8 Points 9 to 16
FBM07 Contact or dc In Points 1 to 16 None
FBM08 120 V ac In Points 1 to 16 None
FBM09 Contact or dc In; Output Switch with Points 1 to 8 Points 9 to 16
Internal or External Source
FBM10 120 V ac In; 120 V ac Output Switch Points 1 to 8 Points 9 to 16
FBM11 240 V ac In; 240 V ac Output Switch Points 1 to 8 Points 9 to 16
FBM12 Contact or dc In Expansion Points 17 to 32 None
FBM13 120 V ac In Expansion Points 17 to 32 None
FBM14 Contact or dc In; Output Switch with Points 17 to 24 Points 25 to 32
Internal or External Source
FBM15 120 V ac In; 120 V ac Output Switch Points 17 to 24 Points 25 to 32
Expansion
FBM16 240 V ac In; 240 V ac Output Switch Points 17 to 24 Points 25 to 32
Expansion
FBM17 Contact or dc In; Output Switch with Points 7 to 10 Points 11 to 14
Internal or External Source
(Plus Analog I/O)
FBM20 240 V ac In Points 1 to 16 None
FBM21 240 V ac In Expansion Points 17 to 32 None
FBM23 HTG Interface Unit Points 1 to 32 None
FBM24 Contact or 125 V dc or Points 1 to 16 None
Contact Externally Powered In
FBM25 Contact or 125 V dc or Contact Points 17 to 32 None
Externally Powered In Expansion
FBM26 Contact or 125 V dc or Contact Points 1 to 8 Points 9 to 16
Externally Powered In; Externally
Powered Output Switch
FBM27 Contact or 125 V dc or Contact Points 17 to 24 Points 25 to 32
Externally Powered In; Externally
Powered Output Switch Expansion

543
B0193AX – Rev AB 17. CIN – Contact Input Block

Valid Output Points


FBM Electrical Type Valid Input Points (Readbacks)
FBM41 Contact or 60 V dc In/Out Points 1 to 8 Points 9 to 16
FBM42 Contact or 60 V dc In/Out Points 17 to 24 Points 25 to 32
FBC07 Isolated Voltage or Points 1 to 32 None
Non-Isolated Contact In
FBC09 Isolated Contact or Relay Out None Points 1 to 32
FBC10 Configurable ac or dc In; Configurable Points 1 to 8, 17 to Points 9 to 16, 25 to
ac, dc, or Contact Out 24, 33 to 40, and 32, 41 to 48, and
49 to 56 57 to 64
FBC07 Isolated Voltage or Non-Isolated Points 1 to 32 None
Redundant Contact In, Redundant
FBC09 Isolated Contact or Relay Out, None Points 1 to 32
Redundant Redundant
FBC10 Configurable ac or dc In; Configurable Points 1 to 8, 17 to Points 9 to 16, 25 to
Redundant ac, dc or Contact Out, Redundant 24, 33 to 40, and 32, 41 to 48, and 57
49 to 56 to 64

The points in the above table identified as valid output points are readback values from physical
outputs. You can use these values as inputs to the CIN block.
If the block is in Auto, the value of the input point is presented at the block’s output, CIN. If any
of the bad input conditions of Section 17.5.1 are true, or the out-of-service condition of
Section 17.5.2 is true, the CIN parameter value is not updated this cycle. This provides the block
with a “last good value” functionality. The value of CIN is not updated from the input point if
the block is in Manual (see Section 17.6).
The IN parameter always tracks the current value of the input point, regardless of the quality of
the point, and regardless of the Auto/Manual state of the block.
The values of both IN and CIN reflect the Invert Option (IVO) as described in Table 17-2.
When IVO is true, a true input point value is treated as false, and a false input point value is
treated as true.
Extra care is required when considering the relationship between the CIN, IN, IVO, and
IOMOPT parameter values. The table below summarizes the effects that the IOMOPT and IVO
values and the block state (Auto or Manual) have on the resulting values of CIN and IN.

Table 17-2. Relationship Between IOMOPT, IVO, MA, CIN, and IN

Manual/
IOMOPT Auto IVO CIN, IN
0 Auto 0 (N) CIN = IN = value of IN’s source connection
0 Auto 1 (Y) CIN = inverted value of IN’s source connection
IN = value of IN’s source connection (no inversion)

544
17. CIN – Contact Input Block B0193AX – Rev AB

Table 17-2. Relationship Between IOMOPT, IVO, MA, CIN, and IN (Continued)

Manual/
IOMOPT Auto IVO CIN, IN
0 Manual 0 (N) CIN = manual value
IN = value of IN’s source connection
0 Manual 1 (Y) CIN = manual value
IN = value of IN’s source connection

1 Auto 0 (N) If FBM value is OK:


 CIN = IN = FBM value

If FBM value is BAD or OOS:


 CIN = unchanged
 IN = FBM value
1 Auto 1 (Y) If FBM value is OK:
 CIN = IN = inverted FBM value

If FBM value is BAD or OOS:


 CIN = unchanged
 IN = inverted FBM value

1 Manual 0 (N) CIN = manual value


IN = FBM value
1 Manual 1 (Y) CIN = manual value
IN = inverted FBM value

17.4.4 Input from Another Block


Key Parameters: IOMOPT, CIN, IN, IVO
When FBM Option (IOMOPT) has the value 0, indicating that there is no connected FBM or
FBC, the value of IN is copied to CIN, after any necessary inversion based on IVO. IN is not
copied to CIN when the block is in Manual.
IN is ordinarily connected to another block, and used for control scheme debugging.

17.5 Bad Input, Out-of-Service and Error Conditions


17.5.1 Bad Input Condition
Key Parameters: BAD, PNT_NO, BLKSTA, IOM_ID, CIN, IN
When there is a connected FBM or FBC, the BAD parameter, the bad status of CIN, and the bad
status of IN are simultaneously set true, provided any one of the following conditions is true:
 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.)

545
B0193AX – Rev AB 17. CIN – Contact Input Block

If there is no connected FBM or FBC, the two conditions above are replaced by the following:
 The IN value is linked and it has bad status.
If the block is in Manual, however, the status bits of CIN are not changed by any of the above
conditions.

17.5.2 Out-of-Service Condition


Key Parameters: IOM_ID, CIN, IN
When there is a connected FBM or FBC, the out-of-service status of CIN and the out-of-service
status of IN are set true if the FBM or FBC itself is out-of-service.
If there is no connected FBM or FBC, the out-of-service status of CIN reflects the out-of-service
status of IN.
If the block is in Manual, the status bits of CIN are not changed by the above condition.

17.5.3 Error Condition


Key Parameters: PROPT, CIN, IN
If the Propagate Error Option (PROPT) parameter is true, the error status bit of CIN is set true
when there is no FBM or FBC connection and IN has one or more of the following conditions:
 The Dad status bit is set.
 The Out-Of-Service status bit is set.
 The error status bit is set.
 The OM field of IN status has any value except ON_SCAN.
If the block is in Manual, the status bits of CIN are not changed by the above conditions.

17.6 Manual Mode


Key Parameters: MA, CIN, IN, BAD, MANALM
When the CIN block is in the Manual mode, it does not update the value of the CIN output.
CIN is released and becomes settable by you. When an FBM or FBC is connected, the IN param-
eter continues to reflect the value of the physical input, regardless of the manual value set into
CIN.
In Manual mode, the status bits (Bad, Out-of-Service, and Error) of the CIN output are not
updated. Since they are not cleared, they retain their last values before the transition to Manual.
The BAD parameter is updated when in Manual, based on the conditions stated in
Section 17.5.1.
The PROPT parameter is inactive when the block is in Manual (that is, the Error bit of the CIN
status is not set based on various status bits of IN when no FBM or FBC is connected).
If MANALM is true, alarming is enabled while in Manual mode. The Bad I/O Alarm is based on
the value of the BAD parameter, and the State Alarm on the current value of CIN, as set by you.

17.7 Messages and Alarming


The following sections discuss messages and alarms generated by the CIN block.

546
17. CIN – Contact Input Block B0193AX – Rev AB

17.7.1 State Change Messages


Key Parameters: SCOPT, CIN, SCTXT0, SCTXT1, IVO, SCGRP
State Change Option (SCOPT) specifies which state changes of the block output cause a State
Change message to be the generated.

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.

A value of 0 in SCOPT disables State Change detection.


When SCOPT is set to 1, State Change messages are generated for any transition:
 a message containing the text in State Change Text 1 (SCTXT1) is sent after any
change from 0 to 1 in the value of CIN
 a message containing the text in State Change Text 0 (SCTXT0) is sent after any
change from 1 to 0 in the value of CIN.

NOTE
State Alarming is independent of state change detection based on SCOPT.

When SCOPT is set to 2, any change from 0 to 1 in the value of CIN results in a State Change
message containing the text string in SCTXT1.
When SCOPT is set to 3, any change from 1 to 0 in the value of CIN results in a State Change
message containing the text string in SCTXT0.
Any required inversion based on IVO is applied before state change detection.
While the State Change Group (SCGRP) parameter holds the group to which all State Change
messages are directed, Alarm Alert ignores these messages when they arrive.

17.7.2 Alarming
Key Parameters: BAO, SAO, BAD, INVALM
The CIN block supports the Bad I/O and State Alarm alarm types. The functionality of these
alarm types is discussed in the appropriate Integrated Control Software Concepts document
(B0700AG or B0193AW).
The nomenclature for identical alarm types varies from block to block for historical reasons
involving backward compatibility requirements. The nomenclature for the CIN block is as fol-
lows:

Table 17-3. Alarm Nomenclature

Default Indicator
Type Option Priority Group Text Display Parameter
I/O Bad BAO = True BAP BAG BAT IOBAD BAD
State Alarm SAO = True SAP SAG NM0 or NM1 STATE CIN/INVALM

547
B0193AX – Rev AB 17. CIN – Contact Input Block

17.8 Application Diagram

COUT

BO02 BO01 COUT

LOGIC
Program
Flow
BI11 BI09 BI04 BI02 Switch
Feedstock

CIN
CIN Solenoid
FBM 241 Valve
or
CIN FBM 09 o
o
CIN FLS001

Tank Full
Switch
FBM207b o
CIN
CIN or o
Tank Half
FBM 07
Full Switch
TFS001
CIN
CIN

Output
Product

Solenoid
Flow Valve
Switch
Figure 17-3. Typical CIN Block Application

17.9 Appendix A – Valid Input Connections


17.9.1 Fieldbus Modules Valid Input Connections

Hardware
207
217
241

10
11
12
13
14
15
16
17
20
21
23
24
25
26
27
41
42
7
8
9

Type
Point
1 I I I I I I I I I I I I I
2 I I I I I I I I I I I I I

548
17. CIN – Contact Input Block B0193AX – Rev AB

Hardware

207
217
241

10
11
12
13
14
15
16
17
20
21
23
24
25
26
27
41
42
7
8
9
Type
Point
3 I I I I I I I I I I I I I
4 I I I I I I I I I I I I I
5 I I I I I I I I I I I I I
6 I I I I I I I I I I I I I
7 I I I I I I I I I I I I I I
8 I I I I I I I I I I I I I I
9 I I O I I O O O I I I I O O
10 I I O I I O O O I I I I O O
11 I I O I I O O O O I I I O O
12 I I O I I O O O O I I I O O
13 I I O I I O O O O I I I O O
14 I I O I I O O O O I I I O O
15 I I O I I O O O I I I O O
16 I I O I I O O O I I I O O
17 I I I I I I I I I I I
18 I I I I I I I I I I I
19 I I I I I I I I I I I
20 I I I I I I I I I I I
21 I I I I I I I I I I I
22 I I I I I I I I I I I
23 I I I I I I I I I I I
24 I I I I I I I I I I I
25 I I I O O O I I I O O
26 I I I O O O I I I O O
27 I I I O O O I I I O O
28 I I I O O O I I I O O
29 I I I O O O I I I O O
30 I I I O O O I I I O O
31 I I I O O O I I I O O
32 I I I O O O I I I O O

Legend: I = Input
O = Readback from Output

NOTE
Hardware Type 23 is used for HTG Interface Unit (HIU).

549
B0193AX – Rev AB 17. CIN – Contact Input Block

17.9.2 Cluster I/O Valid Input Connections

Hardware Type 60 62 86 92 94 97
Point
1 I O I I O I
2 I O I I O I
3 I O I I O I
4 I O I I O I
5 I O I I O I
6 I O I I O I
7 I O I I O I
8 I O I I O I
9 I O O I O I
10 I O O I O I
11 I O O I O I
12 I O O I O I
13 I O O I O I
14 I O O I O I
15 I O O I O I
16 I O O I O I
17 I O I I O I
18 I O I I O I
19 I O I I O I
20 I O I I O I
21 I O I I O I
22 I O I I O I
23 I O I I O I
24 I O I I O I
25 I O O I O I
26 I O O I O I
27 I O O I O I
28 I O O I O I
29 I O O I O I
30 I O O I O I
31 I O O I O I
32 I O O I O I
33 I O
34 I O
35 I O

550
17. CIN – Contact Input Block B0193AX – Rev AB

Hardware Type 60 62 86 92 94 97
Point
36 I O
37 I O
38 I O
39 I O
40 I O
41 O O
42 O O
43 O O
44 O O
45 O O
46 O O
47 O O
48 O O
49 I O
50 I O
51 I O
52 I O
53 I O
54 I O
55 I O
56 I O
57 O O
58 O O
59 O O
60 O O
61 O O
62 O O
63 O O
64 O O

Legend: I = Input
O = Readback from Output

551
B0193AX – Rev AB 17. CIN – Contact Input Block

NOTE
Hardware Type 60 is used for FBC 07.
Hardware Type 62 is used for FBC 09.
Hardware Type 86 is used for FBC 10.
Hardware Type 92 is used for FBC 07 Redundant.
Hardware Type 94 is used for FBC 09 Redundant.
Hardware Type 97 is used for FBC 10 Redundant.

552
18. CINR – Redundant Contact
Input Block
This chapter covers the Redundant Contact Input (CINR) block, its basic operations, features
and parameters, bad input and out-of-service conditions, manual mode, messages and alarms,
and application diagram.

18.1 Overview
The Redundant Contact Input (CINR) block receives redundant input values for a single digital
input process point via redundant Fieldbus Modules (FBMs) (see Figure 18-1). The CINR block
is currently qualified for use only with DCS FBMs for Migration to Moore APACS+ systems, and
with redundant FBM207 and FBM217. Based on the quality of the two inputs and the user spec-
ification of a default selection, one of the inputs is chosen for use in the I/A Series control strategy.
The block also provides alarm handling features relating to the input. For more information on
these DCS FBMs, refer to the DCS Fieldbus Modules for Migration of Moore APACS+ Systems
User’s Guide (B0700BK).

State State
Invert FBM Change Alarm
Option Option Option Option

State State Change Alarms


Change Alarming and
Detection Messages Messages

Inputs from
Point Point Manual
Redundant
Selection Inversion
FBMs
Contact
Auto Input
Inputs from
Point
Other Blocks
(Simulation) Selection

FBM and Alarms


Channel Bad FBM/Input Bad Alarming
Status Detection and Messages Messages

Alarm
Option

Figure 18-1. CINR Block Diagram

553
B0193AX – Rev AB 18. CINR – Redundant Contact Input Block

18.2 Basic Operation


The CINR block interfaces to two Equipment Control Blocks (ECBs) which store digital input
or output values from two FBMs.
Each execution cycle, the CINR block reads from each ECB its FBM operational status, and the
channel status and input data for the specified point. The block selects either the primary or sec-
ondary value, based on the quality of the two inputs, and presents this value at its output, called
Contact Input (CIN).
The CINR block provides optional point inversion, Bad I/O and State alarming, State Change
message processing, and Auto/Manual capability.

18.3 Features
The CINR block provides the following features:
 Redundant digital inputs from separate FBMs
 Both redundant and non-redundant points can coexist in the same digital input
module; non-redundant points are connected to CIN blocks
 Simulation option allows configuring the CINR blocks with input connections to two
other blocks instead of the FBMs
 Automatic switchover to the secondary input if the primary input is bad
 Interfacing of the control scheme to all digital points in the FBMs, including digital
output readback values
 Manual mode availability for disconnecting control schemes from the process, for
simulation and checkout purposes
 Optional last good value retention or fallback value for the output upon I/O failure
 Point inversion option
 Continuous FBM input monitoring during Manual mode and last good value
retention
 Optional bad FBM and bad input point alarming
 Optional State Change messages and State alarming
 Alarming in Manual option
 Alarm inhibit options
 Optional State alarm inversion (“into alarm” message generated on transition from 1
to 0, and “return to normal” on transition from 0 to 1).
 Re-alarming of active block alarms when the alarm priority is changed
 Optional re-alarming of active block alarms when the re-alarm timer expires
 Optional nuisance/flutter alarm suppression of all contact input alarms until the
alarm deadband timer expires.

554
18. CINR – Redundant Contact Input Block B0193AX – Rev AB

18.4 Parameters
Table 18-1. CINR Block Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set blank 1 to 12 chars
TYPE block type integer no-con/no-set 107 CINR
DESCRP block descriptor string no-con/no-set blank 1 to 32 chars
PERIOD block sample time short no-con/no-set 1 0 to 13
PHASE block execution phase integer no-con/no-set 0 see Parameter Def.
LOOPID loop identifier string no-con/set blank 1 to 32 chars
IOMOPT FBM input option boolean no-con/no-set 1 0 to 1
IOM_ID primary ECB name string no-con/no-set blank 1 to 25 chars
IOMIDR secondary ECB name string no-con/no-set blank 1 to 25 chars
PNT_NO FBM point number string no-con/no-set 1 1 to 32
ANM point alarm name string no-con/no-set blank 1 to 32 chars
NM0 alarm state 0 name string no-con/no-set blank 1 to 32 chars
NM1 alarm state name 1 string no-con/no-set blank 1 to 32 chars
IVO invert option boolean no-con/no-set 0 0 to 1
MA manual/auto boolean con/set 0 0 to 1
INITMA initialize MA short no-con/no-set 1 0 to 2
INHOPT alarm inhibit option short no-con/no-set 0 0 to 3
INHIB alarm inhibit boolean con/set 0 0 to 1
INHALM inhibit alarm request pack_b con/set 0 0 to 0xFFFF
INVALM invert alarm option boolean no-con/no-set 0 0 to 1
MANALM manual alarm option short no-con/no-set 0 0 to 1
SAO state alarm option boolean no-con/no-set 0 0 to 1
SAP state alarm priority short con/set 5 1 to 5
SAG state alarm group short no-con/set 1 1 to 8
BAO bad alarm option boolean no-con/no-set 0 0 to 1
BAT bad alarm text string no-con/no-set blank 1 to 32 chars
BAP bad alarm priority integer con/set 5 1 to 5
BAG bad alarm group short no-con/set 1 1 to 8
SCOPT state change option short no-con/no-set 0 0 to 3
SCGRP state change group short no-con/no-set 1 1 to 8
SCTXT0 state 0 change text string no-con/no-set blank 1 to 32 chars
SCTXT1 state 1 change text string no-con/no-set blank 1 to 32 chars
SELOPT select option short no-con/no-set 1 0 to 2
CIN_P primary contact input boolean con/set 0 0 to 1
CIN_S secondary contact input boolean con/set 0 0 to 1
AMRTIN alarm message regeneration integer no-con/set 0 0 to 32767 s
NASTDB noise suppression deadband long no-con/set 0 0 to 2147483647 ms
NASOPT nuisance alarm suppression short no-con/no-set 0 0 to 2
option

555
B0193AX – Rev AB 18. CINR – Redundant Contact Input Block

Table 18-1. CINR Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


Non-Configurable Parameters
OUTPUTS
ALMSTA alarm status pack_l con/no-set 0 see Parameter Def.
BAD bad I/O status indicator boolean con/no-set 0 0 to 1
BLKSTA block status pack_l con/no-set 0 see Parameter Def.
CIN contact input boolean con/no-set 0 0 to 1
CRIT alarm criticality integer con/no-set 0 0 to 5
INHSTA alarm inhibit status pack_l con/no-set 0 see Parameter Def.
INITO initialize output short con/no-set 0 0 to 1
PRTYPE priority type integer con/no-set 0 0 to 9
QALSTA quality status pack_l con/no-set 0 0 to 0xFFFFFFFF
UNACK unacknowledge alarm boolean con/no-set 0 0 to 1
DATA STORES
ACHNGE alternate change integer con/no-set 0 0 to 32767
ALMOPT alarm options pack_l no-con/no-set 0 see Parameter Def.
DEFINE no configuration errors boolean no-con/no-set 1 0 to 1
DEV_ID primary FBM letterbug char[6] no-con/no-set blank 1 to 6 chars
DEVIDR secondary FBM letterbug char[6] no-con/no-set blank 1 to 6 chars
ERCODE configuration error code string no-con/no-set blank see Parameter Def.
LOCKID lock identifier string no-con/no-set blank 8 to 13 chars
LOCKRQ lock request boolean no-con/set 0 0 to 1
OWNER owner name string no-con/set blank 1 to 32 chars

18.4.1 Parameter Definitions


ACHNGE Alternate Change is an integer output which is incremented each time a
block parameter is changed via a Set command.

ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use.
For the CINR block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

556
18. CINR – Redundant Contact Input Block B0193AX – Rev AB

Bit Number1
(0 to 31) Configured Alarm Options When True
0 (Least Significant) Alarm group 8 in use
1 Alarm group 7 in use
2 Alarm group 6 in use
3 Alarm group 5 in use
4 Alarm group 4 in use
5 Alarm group 3 in use
6 Alarm group 2 in use
7 Alarm group 1 in use
14 Secondary point Bad alarm configured
15 Primary point Bad alarm configured
22 Bad I/O alarm configured
26 State alarm configured
1. Bit 0 is the least significant, low order bit.

ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the CINR block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
BAD_P B17
BAD_S B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
UNACK B1
B2
B3
B4
B5
B6
B7
B8
B9

CRIT PRTYPE
BAD
STA

Bit Boolean
Number*( Connection
0 to 31) Name Description When True (B32 to B1)
0 to 4 PRTYPE Priority Type: See parameter
(Least PRTYPE for values used in
Significant) the CINR block
5 to 7 CRIT Criticality; 5 = lowest prior-
ity, 1= highest
14 BAD_S Secondary point Bad ALMSTA.B18
15 BAD_P Primary point Bad ALMSTA.B17
22 BAD Bad I/O alarm** ALMSTA.B10
26 STA State alarm ALMSTA.B6
30 --- Alarms inhibited ALMSTA.B2

557
B0193AX – Rev AB 18. CINR – Redundant Contact Input Block

Bit Boolean
Number*( Connection
0 to 31) Name Description When True (B32 to B1)
31 UNACK Unacknowledged ALMSTA.B1
* Bit 0 is the least significant, low order bit.
** Both the primary and secondary points are bad.

AMRTIN Alarm Regeneration Timer is an integer option that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is
generated. Separate timers are maintained for Bad alarms (for each input)
and State alarms (for the selected input).

ANM Alarm Name is a user-defined string of up to 32 characters that identifies


the input point as the source of the alarm in the alarm messages. It serves
as a point-descriptor label.

BAD Bad is a boolean output parameter that is set true when the connected
FBM has bad status or the connected point within it is bad. If there is no
connected FBM, BAD is true when CIN_P or CIN_S is linked and has a
bad status. The BAD bit of BLKSTA (BLKSTA.BAD) is also set true
whenever BAD is true.

BAG Bad Alarm Group is a short integer input that directs Bad alarm messages
to one of eight groups of alarm devices. You can change the group number
through the workstation.

BAO Bad Alarm Option is a configurable boolean value. When configured true,
it enables alarm generation for each state change of the BAD parameter.

BAP Bad Alarm Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the Bad alarm (1 is the highest priority).

BAT Bad Alarm Text is a user-configurable text string of up to 32 characters,


that is sent with the Bad alarm message to identify it.

BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the CINR block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
FBMR B23
B24
B25
B26
B27
B28
B29
B30
BIOR B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

FBM
LCK

BIO
MA
ON

558
18. CINR – Redundant Contact Input Block B0193AX – Rev AB

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
1 BIOR Secondary Input Bad BLKSTA.B31
8 FBM Primary FBM Failure BLKSTA.B24
9 FBMR Secondary FBM Failure BLKSTA.B23
11 MA Manual = 0, Auto = 1 BLKSTA.B21
12 BIO Bad I/O BLKSTA.B20
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
20 WLCK Workstation Access Locked BLKSTA.B12
* Bit 0 is the least significant, low order bit.

CIN Contact Input is the block output. It represents the state of the input
point specified by IOM_ID or IOMIDR, and PNT_NO when
IOMOPT indicates that an FBM is configured. Otherwise, it represents
the value of the CIN_P or CIN_S input. In any case, CIN is subject to
optional inversion based on the state of option IVO.

CIN_P Primary Contact Input is a Boolean input that contains the current state
of the contact input read from the primary module of a redundant contact
FBM pair. If the block selects the CIN_P value while running in the Auto
mode, it writes this value to the output CIN parameter each execution
cycle. If IOMOPT=0, CIN_P contains the simulated primary input
value.

CIN_S Secondary Contact Input is a Boolean input that contains the current state
of the contact input read from the secondary module of a redundant con-
tact FBM pair. If the block selects the CIN_S value while running in the
Auto mode, it writes this value to the output CIN parameter each execu-
tion cycle. If IOMOPT=0, CIN_S contains the simulated secondary
input value.

CRIT Criticality is an integer output that indicates the priority, ranging from 1
to 5, of the block’s highest currently active alarm (1 is the highest priority).
An output of zero indicates the absence of alarms.

DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. (See ERCODE for the list of all possible validation errors in this
block.) In that case, no further processing of the block occurs, including
further validation of remaining parameters. To return DEFINE to a true
value, correct all configuration errors and re-install the block. If
DEFINE = 0, the bit BLKSTA.UDEF = 1.

559
B0193AX – Rev AB 18. CINR – Redundant Contact Input Block

DESCRP Description is a user-defined string of up to 32 characters that describe the


block’s function (for example, “PLT 3 FURNACE 2 HEATER CON-
TROL”).

DEV_ID Primary Device Identifier is a character array data store that specifies the
6-character letterbug of the connected primary FBM.

DEVIDR Secondary Device Identifier is a character array data store that specifies the
6-character letterbug of the connected secondary FBM.

ERCODE Error Code is a string data store which indicates the type of configuration
error which caused the block’s DEFINE parameter to be set false. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. For the CINR block, the following list specifies
the possible values of ERCODE, and the significance of each value in this
block:
ERCODE Description
W43 - INVALID PERIOD/ The configured PHASE parame-
PHASE COMBINATION ter value is not consistent with
the configured PERIOD value.
W51 - INVALID HARDWARE/ Hardware type is not digital
SOFTWARE TYPE input.
W52 - INVALID I/O CHANNEL/ PNT_NO out of range for the
GROUP NUMBER specified FBM.
W54 - ECB DOES NOT EXIST Specified IOM_ID does not
exist.

INHALM Inhibit Alarm contains packed boolean values that represent alarm genera-
tion inhibit requests for each type of alarm configured in the block. For
the CINR block, only the following bits are used:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10

B11

B12

B13

B14

B15

B16
B1

B2

B3

B4

B5

B6

B7

B8

B9

Bit
Number* Boolean Connection
(0 to 15) Description When True (B16 to B1)
6 Inhibit Bad I/O alarm INHALM.B10
10 Inhibit State alarm INHALM.B6
* Bit 0 is the least significant, low order bit.

There are no mnemonic names for the individual bits of INHALM.

INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT

560
18. CINR – Redundant Contact Input Block B0193AX – Rev AB

setting. Alarms can also be inhibited based on INHALM and the com-
pound parameter CINHIB.

INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do not
disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the time
the alarm transitions into the inhibited state, clear the alarm
indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages can be acknowledged by explicitly setting
UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages can be acknowledged by explicitly setting
UNACK false.

INHSTA Inhibit Status contains packed long values that represent the current
inhibit status of each alarm type configured in the block. For the CINR
block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
BAD_P B17
BAD_S B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
BAD
STA

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
14 BAD_S Secondary point Bad alarm INHSTA.B18
inhibited**
15 BAD_P Primary point Bad alarm INHSTA.B17
inhibited**
22 BAD Bad I/O alarm inhibited** INHSTA.B10
26 STA State alarm inhibited*** INHSTA.B6
* Bit 0 is the least significant, low order bit.
** Bit is set if 0 < Compound.CINHIB  BAP, INHALM.BAD,
or INHIB = 1.
***Bit is set if 0 < Compound.CINHIB  SAP, INHALM.SA, or
INHIB = 1.

561
B0193AX – Rev AB 18. CINR – Redundant Contact Input Block

INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The M/A state as specified in the checkpoint file.
The block asserts this initial M/A state whenever:
 It is installed into the Control Processor database.
 The Control Processor undergoes a reboot operation.
 The compound in which it resides is turned on.
 The INITMA parameter is modified via the Integrated Control
Configurator. (The block does not assert INITMA on ordinary
reconfiguration.)
INITMA is ignored if MA has an established linkage.

INVALM Invert Alarm is a configured boolean which specifies the sense of CIN
transitions considered “into alarm” and “return to normal” in State alarm
messages. Values are:
0= CIN transitions from 0 to 1 are considered “into alarm”; State
alarm messages contain the NM1 string. Transitions from 1 to 0
are considered “return to normal”; State alarm messages contain
the NM0 string.
1= CIN transitions from 1 to 0 are considered “into alarm”; State
alarm messages contain the NM1 string. Transitions from 0 to 1
are considered “return to normal”; State alarm messages contain
the NM0 string.

In any case, State alarm detection is disabled when option SAO is false.

IOMOPT FBM Option is a boolean specifying whether an FBM connection to the


block exists, where:
0= CINR block obtains input values from the CIN_P or CIN_S
parameter.
1= CINR block obtains input values from the FBM input
point specified by IOM_ID or IOMIDR and PNT_NO.

IOM_ID Primary Fieldbus Module Identifier is a configurable string that specifies


the pathname of the primary FBM to which the block is connected.
IOM_ID has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOM_ID configuration. In this case, the 1-12
character ECB block name is sufficient.

562
18. CINR – Redundant Contact Input Block B0193AX – Rev AB

IOMIDR Secondary Fieldbus Module Identifier is a configurable string that speci-


fies the pathname of the secondary FBM to which the block is connected.
IOMIDR has the form CompoundName:BlockName, where Com-
poundName is the 1-12 character name of the local compound containing
the ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOMIDR configuration. In this case, the 1-12
character ECB block name is sufficient.

IVO Invert Option, when true, causes the block to invert the value of the FBM
input or the CIN_P or CIN_S input before writing it to the CIN output.
If IVO is true, all alarming and state change message generation is based
on the inverted value of the input.

LOCKID Lock Identifier is a string data store that identifies the workstation that has
exclusive write access to the block. LOCKID arbitrates write access to the
control block parameters by operator workstations on the network. Set
requests to any of the block’s parameters are honored only if the requesting
workstation’s identifier matches the contents of LOCKID.
LOCKID does not lock out sequence code write access to block parame-
ters. Sequence block set requests to any of the block’s parameters are
always honored.
The lock-request message sets LOCKRQ to true and sets LOCKID to the
identifier of the requesting workstation. The lock-release message clears
LOCKRQ and nulls LOCKID.
LOCKID has the format Letterbug:DeviceName, where Letterbug is the
6-character letterbug of the workstation and DeviceName is the 6-charac-
ter logical name of the Display Manager.

LOCKRQ Lock Request is a Boolean data store that is set true or false by toggling the
LOCK U/L key on the Block Detail Display. An operator at any other
workstation can lock and unlock the block by toggling the LOCK U/L
key.
The lock-request message sets LOCKRQ true, sets LOCKID to the iden-
tifier of the requesting workstation, and sets the WLCK bit in the
BLKSTA parameter. Set requests to any of the block’s parameters are only
honored if the requesting workstation’s identifier matches the contents of
LOCKID.
LOCKID does not lock out sequence code write access to block parame-
ters. Sequence block set requests to any of the block’s parameters are
always honored.
The lock-release message resets LOCKRQ, nulls LOCKID, and resets the
WLCK bit.

563
B0193AX – Rev AB 18. CINR – Redundant Contact Input Block

NOTE
Do not set LOCKRQ with an application program. Contention for the use of the
block may make the block inaccessible.

LOOPID Loop Identifier is a configurable string of up to 32 characters that identify


the loop or process with which the block is associated. It is displayed on
the detail display of the block, immediately below the faceplate.

MA Manual/Auto is a boolean input that controls the block’s operating state:


0 = Manual
1 = Auto
In Manual, the block output CIN is released and can be set by an
external process (program or display). In Auto, CIN is secured and
updated by the FBM input point value, or the value of CIN_P or CIN_S
when IOMOPT = 0.

MANALM Manual Alarm Option is a configurable input which enables or disables


configured alarm options to function in Manual mode. Normally alarms
are processed only in the Auto mode. Options are:
0 = No alarming in Manual
1 = Full alarming in Manual

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

NASOPT Nuisance Alarm Suppression Option is a configurable, non-settable short


integer that specifies how the nuisance alarm delay is implemented:
 0 = Suppress nuisance alarms by delaying the Return-to-Normal
(default) by the length of time specified in NASTDB
 1 = Suppress nuisance alarms by delaying alarm detection by the
length of time specified in NASTDB
 2 = Suppress nuisance alarms by delaying both the Alarm Detec-
tion and the Return-to-Normal by the length of time specified in
NASTDB

NASTDB Alarm Deadband Timer is a configurable long integer. Depending on the


value of NASOPT, it either specifies the deadband time interval that must
elapse before an alarm condition is allowed to return to normal, or the
length of a delay-on timer which specifies the amount of time between an
alarm’s detection and the announcement of the alarm. The parameter
value ranges from zero (default, no delay) to 2147483647 ms.

NM0 Name 0 is a user-defined string of up to 32 characters sent with a State


alarm message to indicate that the message is a “return to normal” type.
This means that the CIN output has transitioned from 1 to 0 if INVALM
is false, or 0 to 1 if INVALM is true.

564
18. CINR – Redundant Contact Input Block B0193AX – Rev AB

NM1 Name 1 is a user-defined string of up to 32 characters sent with a State


alarm message to indicate that the message is an “into alarm” type. This
means that the CIN output has transitioned from 0 to 1 if INVALM is
false, or 1 to 0 if INVALM is true.

OWNER Owner is a string of up to 32 ASCII characters which are used to allocate


control blocks to applications. Attempts to set OWNER are successful
only if the present value of OWNER is the null string, an all-blank string,
or identical 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.
Once set to the null string, the value can then be set as desired.

PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)
Period Length Period Length
0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****

* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute with phases 0, 1, 2, or 3, assuming the
BPC of the Control Processor is 0.5 sec. Refer to the appropriate Inte-
grated Control Software Concepts document (B0700AG or B0193AW).

PNT_NO Point Number is the FBM point to which the CINR block is connected.

565
B0193AX – Rev AB 18. CINR – Redundant Contact Input Block

PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. The PRTYPE output of this block
consists of the following alarm types:
0 = No active alarm
8 = Bad
9 = State
If both alarms are active and have the same priority, PRTYPE reports the
BAD alarm type (PRTYPE = 8).
For example, if the BAD alarm has priority 1 and the State alarm has
priority 4 then CRIT = 1 and PRTYPE = 8.

QALSTA Quality Status parameter (QALSTA) is a non-configurable packed long


that provides a combination of value record status, block status
(BLKSTA), and alarm status (ALMSTA) information in a single connect-
able output parameter. Available bits for this block are provided below.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

Bit Boolean Connection


Number1 Definition Contents (B32 to B1)
30 Alarms Unacknowledged ALMSTA.UNA QALSTA.B2
29 Alarms Inhibited ALMSTA.INH QALSTA.B3
26 State Alarm ALMSTA.STAL QALSTA.B6
22 Bad Alarm2 ALMSTA.IOBD QALSTA.B10
14 Bad Secondary FBM BLKSTA.FBM2 QALSTA.B18
13 Bad Primary FBM BLKSTA.FBM1 QALSTA.B19
11 Bad Secondary Point BLKSTA.BAD2 QALSTA.B21
10 Bad Primary Point BLKSTA.BAD1 QALSTA.B22
5 Manual BLKSTA.MA QALSTA.B27
2 Uncertain CIN.ERR status QALSTA.B30
1 Out-of-Service CIN.OOS status QALSTA.B31
0 Bad CIN.BAD status QALSTA.B32
1.
Bit 0 is the least significant, low order bit.
2. This bit records the status of the primary input (CIN). This status is the inverse of
the Manual/Auto (MA) status bit in BLKSTA. This bit is not available for I/A Series
software earlier than v8.0.

566
18. CINR – Redundant Contact Input Block B0193AX – Rev AB

SAG State Alarm Group is a short integer input that directs State alarm mes-
sages to one of eight groups of alarm devices.

SAO State Alarm Option is a configurable boolean that, when true, enables the
generation of State alarms.

SAP State Alarm Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the State alarm (1 is the highest priority).

SCGRP State Change Group is a short integer input that directs State Change
messages to one of eight groups of devices. However, Alarm Alert ignores
these messages when they arrive; State Change messages are printed only.

SCOPT State Change Option specifies which state changes of the block output
cause a State Change message to be the generated. These messages are
ignored by Alarm Alert, and are not shown in the Alarm Display; they are
printed on the alarm printers only. Depending on the value of SCOPT,
messages are generated for the following types of transitions (state
changes):
0 = No transitions (no messages generated)
1 = All transitions
2 = 0 to 1 transitions only
3 = 1 to 0 transitions only

SCTXT0 State Change Text 0 is a text string sent with the State Change message to
indicate that the state has changed from 1 to 0, after any optional inver-
sion.

SCTXT1 State Change Text 1 is a text string sent with the State Change message to
indicate that the state has changed from 0 to 1, after any optional inver-
sion.

SELOPT Select Option is a configurable short integer that specifies the output value
of CIN when both CIN_P and CIN_S are bad or out-of-service. Options
are:
0 = Last good value
1 = False
2 = True

TYPE When you enter “CINR” or select it from a configurator list, an identify-
ing integer is created specifying this block type.

UNACK Unacknowledge is a Boolean output that the block sets to True when it
detects an alarm. It is typically reset by operator action.

567
B0193AX – Rev AB 18. CINR – Redundant Contact Input Block

18.5 Functions
18.5.1 Detailed Diagram

SCOPT SCTXT0
AND
IOM_ID FBM and State SCTXT1
IOMIDR Channel Change
PNT_NO Status Detected State
Primary AND
IOMOPT Alarming
ECB5 SAO
Data CIN_P
Read & INVALM
Invert
Points SELOPT M MA
Sec. CIN_S
1
ECB5 1
Data IVO CIN
Input A
Status 0 0
Last Good Value
CIN_P

CIN_S

CIN_P.OOS
AND CIN.OOS
CIN_S.OOS

Primary FBM OOS


AND OR
Secondary FBM OOS

CIN_P.BAD
AND
CIN_S.BAD
OR BAD
Primary FBM Failure
AND CIN.BAD
Secondary FBM Failure

MA = 1 BAD
OR AND Alarming
BAO
MA = 0
AND
MANALM = 1

Figure 18-2. CINR Block Operational Diagram

568
18. CINR – Redundant Contact Input Block B0193AX – Rev AB

18.5.2 Input from FBM


Key Parameters: IOM_ID, IOMIDR, PNT_NO, IOMOPT, CIN, IVO
You specify the source primary and secondary FBM Identifier (IOM_ID and IOMIDR) parame-
ters, and the same point within the FBMs by the Point Number (PNT_NO) parameter. The
CINR block supports connection to only redundant FBMs that use ECB5 (SWTYPE = 5). For a
list of DCS FBMs and point numbers providing valid inputs for the CINR block, refer to the
DCS Fieldbus Modules for Migration of Moore APACS+ Systems User’s Guide (B0700BK-A). For a
list of point numbers providing valid inputs from redundant FBM207s or FBM217s for the
CINR block, refer to the ECB5 chapter in this document.
When the block is in Auto and IOMOPT is true, the block output CIN is set to either the pri-
mary or secondary FBM input. If the FBM and point status is good for both inputs, CIN is set to
the input value from the primary FBM. If either the primary FBM or the primary input is bad or
out-of-service, CIN is set to the input value from the secondary FBM.
If both FBMs or input points are bad or out-of-service, the block output CIN is set true or false as
specified in the SELOPT option. If SELOPT is 0, CIN is not changed. 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 18.7).
The CIN_P and CIN_S parameters always track the current value of their input point, regardless
of the quality of the point, and regardless of the Auto/Manual state of the block.
The values of CIN_P, CIN_S and CIN always reflects the Invert Option (IVO) when IOMOPT
is true. When IVO is true, a true input point value is treated as false, and a false input point value
is treated as true.

18.5.3 Input from Another Block


Key Parameters: IOMOPT, CIN, CIN_P, CIN_S
When the FBM Option (IOMOPT) value is 0, indicating that there is no connected FBM, the
value of CIN_P or CIN_S is copied to CIN. When the block is in Manual, the CIN_P or CIN_S
value is not copied to CIN.
CIN_P and CIN_S are ordinarily connected to another block for control scheme debugging pur-
poses.

18.6 Bad Input and Out-of-Service Conditions


18.6.1 Bad Input Condition
Key Parameters: BAD, PNT_NO, BLKSTA, IOM_ID, IOMIDR, CIN, CIN_P, CIN_S
When redundant FBMs are connected, the BAD parameter, the bad status of CIN, and the bad
status of CIN_P and CIN_S are simultaneously set true, provided any one of the following condi-
tions is true:
 Primary and secondary FBMs are bad – both FBMs have detected a fatal hardware
fault, or other fatal fault. In this case, BLKSTA.FBM and BLKSTA.FBMR are also set
true.

569
B0193AX – Rev AB 18. CINR – Redundant Contact Input Block

 Connected points within the primary and secondary FBMs are bad. In this case,
BLKSTA.BIO, BLKSTA.BIOR, ALMSTA.BAD, ALMSTA.BAD_P, and
ALMSTA.BAD_S are also set true.
If redundant FBMs are not connected, the two conditions above are replaced by the following:
 The CIN_P and CIN_S values are linked and both have bad status. In this case,
ALMSTA.BAD, ALMSTA.BAD_P, and ALMSTA.BAD_S are also set true.
If the block is in Manual, however, the status bits of CIN are not changed by any of the above
conditions.
Bad status of the primary or secondary input is set individually in CIN_P, CIN_S, BLKSTA and
ALMSTA.

18.6.2 Out-of-Service Condition


Key Parameters: IOM_ID, CIN, CIN_P, CIN_S
When redundant FBMs are connected, the out-of-service (OOS) status of CIN, CIN_P and
CIN_S are set true if both FBMs are out-of-service.
If there is no connected FBM, the out-of-service status of CIN is set when both CIN_P and
CIN_S are out-of-service.
If the block is in Manual, the status bits of CIN are not changed by the above condition.

18.7 Manual Mode


Key Parameters: MA, CIN, CIN_P, CIN_S, BAD, MANALM
When the CINR block is in the Manual mode, it does not update the value of the CIN output.
CIN is released and becomes settable by you. When redundant FBMs are connected, the CIN_P
and CIN_S parameters continue to reflect the value of the physical input, regardless of the
manual value set into CIN.
In Manual mode, the status bits (Bad and Out-of-Service) of the CIN output are not updated.
Since they are not cleared, they retain their last values before the transition to Manual. The BAD
parameter is updated when in Manual, based on the conditions stated in Section 18.6.1.
If MANALM is true, alarming is enabled while in Manual mode. The Bad I/O alarm is based on
the value of the BAD parameter, and the State alarm is based on the current value of CIN, as set
by you.

18.8 Messages and Alarming


The following sections discuss messages and alarms generated by the CINR block.

18.8.1 State Change Messages


Key Parameters: SCOPT, CIN, SCTXT0, SCTXT1, IVO, SCGRP
State Change Option (SCOPT) specifies which state changes of the block output cause a State
Change message to be the generated.

570
18. CINR – Redundant Contact Input Block B0193AX – Rev AB

NOTE
State Change messages are ignored by Alarm Alert, and are not shown in the Alarm
Display; they are printed on the alarm printers only.

When SCOPT is 0, State Change detection is disabled.


When SCOPT is set to 1, State Change messages are generated for any transition:
 A message containing the text in State Change Text 1 (SCTXT1) is sent after any
change from 0 to 1 in the value of CIN
 A message containing the text in State Change Text 0 (SCTXT0) is sent after any
change from 1 to 0 in the value of CIN.

NOTE
State alarming is independent of state change detection based on SCOPT.

When SCOPT is set to 2, any change from 0 to 1 in the value of CIN results in a State Change
message containing the text string in SCTXT1.
When SCOPT is set to 3, any change from 1 to 0 in the value of CIN results in a State Change
message containing the text string in SCTXT0.
Any required inversion based on IVO is applied before state change detection.
While the State Change Group (SCGRP) parameter holds the group to which all State Change
messages are directed, Alarm Alert ignores these messages when they arrive.

18.8.2 Alarming
Key Parameters: BAO, SAO, BAD, INVALM, AMRTIN, NASTDB
The CINR block supports the Bad I/O and State alarm types. The following sections provide
functional overviews for these alarms.
The nomenclature for identical alarm types varies from block to block for historical reasons
involving backward compatibility requirements. The nomenclature for the CINR block is as fol-
lows:

Table 18-2. Alarm Nomenclature

Default Indicator
Type Option Priority Group Text Display Parameter
I/O Bad BAO = True BAP BAG BAT IOBAD BAD
State Alarm SAO = True SAP SAG NM0 or NM1 STATE CIN/INVALM

Detailed descriptions of the above alarm types and the following alarm functions is discussed in
the appropriate Integrated Control Software Concepts document (B0700AG or B0193AW).
 Re-alarming of active alarms when the alarm priority (PRTYPE) is changed
 Re-alarming of active alarms when the alarm regeneration timer (AMRTIN) expires
 Nuisance/flutter alarm suppression of all contact input alarms until, depending on the
setting of NASOPT, the alarm deadband timer (NASTDB) expires.

571
B0193AX – Rev AB 18. CINR – Redundant Contact Input Block

18.8.2.1 State Alarming Overview


Key Parameters: SAO, SAP, SAG, NM0, NM1, INVALM
State alarming occurs when the State Alarm Option (SAO) is set and the selected FBM input
transitions from 0 to 1, or 1 to 0 if INVALM is set to 1.
When the selected input value is in the alarm state, a state alarm message is sent to all devices in
the alarm group specified by the SAG parameter. This message also contains the descriptive text in
the NM1 parameter and the loop identifier in the LOOPID parameter.
When the selected input value is no longer in the alarm state, a corresponding return-to-normal
message is generated and sent to all devices in the state alarm group (SAG). This message contains
the descriptive text in the NM0 parameter.
When the state alarm exists, the SA bit is set in the alarm status parameter (ALMSTA.SA). If a
Bad alarm condition of a higher priority does not also exists, the CRIT parameter and its corre-
sponding ALMSTA.CRIT field are set to the SAP parameter value, and the PRTYPE parameter
and its corresponding ALMSTA.PRTYPE field are set to the State alarm type.
When the state alarm condition returns to normal status, and if a Bad alarm condition of higher
priority does not exist, ALMSTA.SA, CRIT, PRTYPE and their corresponding fields in ALMSTA
are cleared.

18.8.2.2 Bad Alarming Overview


Key Parameters: BAO, BAP, BAG, BAT, BAD
Bad alarming occurs when the Bad Alarm Option (BAO) is set and one or both FBM inputs are
bad. Bad alarm messages are generated for each input value independently when its status is bad
(CIN_P.BAD or CIN_S.BAD).
When the input value becomes bad, a bad alarm message is sent to all devices in the bad alarm
group specified by the BAG parameter. This message contains a “BAD_P” or “BAD_S” text string
to identify a respective bad CIN_P or CIN_S input value. This message also contains the descrip-
tive text in the BAT parameter and the loop identifier in the LOOPID parameter.
When the input value becomes good, a corresponding return-to-normal message is sent to all
devices in the bad alarm group.
Bad alarm status information, however, is generated only when both FBM input values are bad.
When both FBM input values are bad, the bad parameter (BAD) is set and the BAD bit is set in
the alarm status parameter (ALMSTA.BAD). If a State alarm of higher priority does not exist, the
CRIT parameter and its corresponding ALMSTA.CRIT field are set to the BAP parameter value,
and the PRTYPE parameter and its corresponding ALMSTA.PRTYPE field are set to the Bad
alarm type.
When both FBM input values have returned to good status, and if a State alarm of higher priority
does not exist, BAD, CRIT, PRTYPE and their corresponding fields in ALMSTA are cleared.

572
18. CINR – Redundant Contact Input Block B0193AX – Rev AB

18.9 Application Diagram

COUT

BO02
COUT

COUT
BO03 BO01

LOGIC
Program Feedstock
BI01
Solenoid
Valve
DCS
FBM
ECB5
AID115
TFS001
CIN Tank Full
CINR
Switch
DCS
FBM
ECB5 Heater
AID115
TFS002 AC Power

Output
Product
Solenoid
Valve

Figure 18-3. Typical CINR Block Application

573
B0193AX – Rev AB 18. CINR – Redundant Contact Input Block

574
19. CMP – Compounds
This chapter gives a general overview of compounds, their features, rules, functions, and
parameters.

19.1 Compound Overview


Process control for I/A Series Systems is based on the concepts of compounds and blocks. A com-
pound is a logical collection of blocks that performs a control strategy. A block is a member of a
set of algorithms that performs a certain control task within the compound structure. Figure 19-1
below shows the compound/block relationship.
The compound provides the basis for the integration of:
 Continuous control
 Ladder logic
 Sequential control.
Within this structure, any block in any compound can be connected to any other block in any
other compound in the system. The entire compound structure can be viewed through the work-
station SELECT display.

CONFIGURATOR

COMPOUND COMPOUND COMPOUND


1 2 n

BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK BLOCK

= Control Processor
PROCESS

Figure 19-1. Compound/Block Relationship

575
B0193AX – Rev AB 19. CMP – Compounds

19.2 Compound I/O Diagram


Refer to Figure 19-2.

Name Alarm Level


Type Sequence State
Descriptor Alarm Notification
Period
Phase
On/Off Compound Compound
Compound Inhibit
Group Devices
Loop Identification
Initialize Compound On

Figure 19-2. Compound Inputs/Outputs

19.3 Compound Features


Standard features:
 Process alarm priority, alarm inhibiting, and alarm grouping.
 Sequential state of all sequential control blocks in the compound.
 Phasing for execution load leveling at execution time.
Options:
 Compound Initialization (INITON) in On/Off state or as specified by checkpoint
file.
 Compound Inhibit (CINHIB) specifies the priority levels of alarm inhibit.

19.4 Compound Rules


The compound rules are:
 Multiple compounds can be executed within the same station.
 A single compound cannot cross station boundaries.
 Blocks in different compounds can be interconnected across station boundaries.
 Every compound must have a unique name.

19.5 Compound Functions


19.5.1 Compound/Block Process Alarming
Alarms and status messages are generated by specific alarm blocks and by alarm options in selected
blocks.

576
19. CMP – Compounds B0193AX – Rev AB

Alarms have five levels of priority, 1-5, (where 1 = highest priority) that enable you to quickly
focus on the most important plant alarm conditions. An alarm priority of 0 indicates the absence
of any alarm.
These are summarized in a single alarm summary parameter for each compound. This parameter
contains the priority of the highest current alarm in that compound.
To reduce nuisance alarms, alarms can be inhibited at the compound level on a priority level basis.
Alarms can also be inhibited at the block level, on either an alarm type basis, or an overall basis.
Alarms are initiated by the blocks within the compound. Alarm messages are then sent to groups
of stations or applications (for example, Workstations, Historians, Printers) according to config-
ured alarm groups. The UNACK alarm acknowledge output parameter allows you to propagate
alarm acknowledge actions to all blocks in a compound.
Stations, applications, and devices corresponding to various alarm destination groups are config-
ured at the compound level or at the station level in the case of station compounds.
Group numbers for individual block alarm types are configured at the block level.

19.5.2 Compound/Block Phasing


You assign a phase number to each compound using a range of integer values that varies with the
assigned period.
Phasing allows the starting time of one compound/block to lead or lag the starting time of
another compound/block, thereby leveling the block processor load.

19.5.3 Compound Attributes


The compound has the following attributes:

Name Name is a user-defined name that must be system-unique and no more


than 12 characters in length. The name can be any mix of numerics (0 to
9), upper case alphabetic (A to Z), and the underscore (_).

Descriptor Description is a 32-character field for user-defined block identification.

On/Off On/Off is a parameter that enables or disables the execution of all blocks
within the compound, where: 1 = on; 0 = off.

19.5.4 Compound Access


Both compounds and blocks have a set of parameters that comprise the user interface. To access a
compound parameter value, use the following convention:
Compound.Parameter
where:
 Compound has (up to) a 12-character name.
 Parameter has (up to) a 6-character name.

19.5.5 Compound/Block Parameters


Compound and block parameters contain values that are of one of the types Real, String, Integer,
Short Integer, Long Integer, Boolean, Packed Boolean, Packed Long, or Character.

577
B0193AX – Rev AB 19. CMP – Compounds

Additionally, parameters are defined as being configurable, and either connectable/settable, not
connectable/not settable, or a combination that is dependent upon the compound, block, and
state.

19.5.5.1 Configurable Parameters


Configurable parameters are those parameters that can be defined through the Integrated Control
Configurator. They can be displayable only, or displayable and editable.

19.5.5.2 Connectable Parameters


Connectable parameters are those parameters of the user interface in which secured, change-
driven connections can be made between network stations, or as local direct connections within
the same station.
Each connection consists of a connectable source and a connectable sink. Output parameters (all
outputs are connectable) are sources, while a connectable input can be a sink or a source, or both.
Certain parameters that can be considered functional inputs (such as SPT in the PID blocks, and
RATIO in the RATIO block) are settable but not connectable.
A connectable parameter has a value record that contains the parameter’s value, its status, and its
designated value type (Real, Boolean, or Integer). Its status consists of the following boolean attri-
butes:

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.

19.5.5.3 Input Parameters


Input parameters are connectable types that are the receivers of data from other connectable
parameters via a path connection.

578
19. CMP – Compounds B0193AX – Rev AB

If no source path is specified during configuration, then the resident data of the value record is the
actual “source” of data. It can be either the initial default or configured value, or a new value
through a SET call to the input parameter.
If a source path is specified, then the data value is an output parameter of the same or another
block, or a shared variable, thereby securing the input. By linking a shared variable to a block
input during configuration, you can establish a long-term secured connection between a remote
application program and the block input.

19.5.5.4 Output Parameters


All output parameters are connectable data sources that have value records. There are two types:
settable and nonsettable.
The settability of a settable output is controlled by the secured status of the value record. The
secured status is dependent on whether the block’s operational mode is in Auto or in Manual.
In either Auto or Manual, nonsettable output parameters cannot be written by any other source
under any conditions.
Settable outputs can be conditionally released by the block algorithm in the Manual mode.
In Manual, the block unsecures settable output parameters. They can then be written by other
tasks via SET calls. When the block switches to Auto, the block secures and updates its own out-
put parameter(s).

19.5.5.5 Nonconnectable Parameters


Nonconnectable parameters have no value records and are not linkable. They consist mainly of
string-type variables like NAME, or nonsettable parameters that are used in the configurator only,
for example, block options. Local algorithm variables are also nonconnectable.
Nonconnectable parameters are generally accessible through GET calls.
There is also a class of nonconnectable input parameters that comprise the block user interface
which can be manipulated through SET calls. An example is an alarm deadband.

19.5.5.6 Compound Operation Information and Procedures


Figure 19-3 shows the compound detail display. For operating information and procedures, refer
to the Process Operations and Displays (B0193MM) document.

579
B0193AX – Rev AB 19. CMP – Compounds

Figure 19-3. Compound Detail Display

19.6 Compound Parameters


Table 19-1 lists the compound parameters followed by a description of each parameter.

Table 19-1. Compound Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set blank 1 to 12 chars
TYPE block type integer no-con/no-set blank CMP
DESCRP descriptor string no-con/no-set blank 1 to 32 chars
PERIOD block sample time short no-con/no-set 1 0 to 13
PHASE block phase number integer no-con/no-set 0 ---
ON on/off compound boolean no-con/set 0 0 to 1
INITON initialize ON short no-con/no-set 2 [0|1|2]
CINHIB compound inhibit integer con/set 0 [0..5]
GR1DV1-8 group 1 device 1 to 8 string no-con/no-set blank 1 to 6 chars
GR2DV1-8 group 2 device 1 to 8 string no-con/no-set blank 1 to 6 chars
GR3DV1-8 group 3 device 1 to 8 string no-con/no-set blank 1 to 6 chars
LOOPID loop identification string[32] no-con/set blank 1 to 32 characters

580
19. CMP – Compounds B0193AX – Rev AB

Table 19-1. Compound Parameters

Name Description Type Accessibility Default Units/Range


Non-Configurable Parameters
OUTPUTS
ALMLEV alarm level integer con/no-set 0 1 to 5
SSTATE sequence state short con/no-set 0 [0,1,2]
UNACK alarm notification boolean con/set 0 0 to 1
DATA STORES
DEFINE no configuration errors boolean no-con/no-set 1 0 to 1
ERCODE configuration error string no-con/no-set blank 1 to 99
GR1FD1 TO group 1 file descriptor integer no-con/no-set blank 1 to 12 chars
GR1FD8
GR2FD1 TO group 2 file descriptor integer no-con/no-set blank 1 to 12 chars
GR2FD8
GR3FD1 TO group 3 file descriptor integer no-con/no-set blank 1 to 12 chars
GR3FD8

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.

DEFINE Define is a boolean (1 = Defined; 0 = Undefined). Define is set to 0 dur-


ing initialization if the block detects a configuration error. To return
DEFINE to a true value, correct all configuration errors and re-install the
block.

DESCRP Descriptor is a user-defined string of up to 32-character that describe the


block's function (for example, “STATION HEATER CONTROL”).

ERCODE Error Code of the first configuration error detected in the block. For the
CMP block, the following list specifies the possible values of ERCODE,
and the significance of each value in this block:

Message Value
“W43 – INVALID PERIOD/ PHASE does not exist for given block
PHASE COMBINATION” PERIOD, or block PERIOD not
compatible with compound PERIOD.
“W48 – INVALID BLOCK The configured value of a block
OPTION” option is illegal.

581
B0193AX – Rev AB 19. CMP – Compounds

Message Value
“W53 – INVALID A parameter value is not in the accept-
PARAMETER VALUE” able range.
“W58 – INSTALL ERROR; A Database Installer error has
DELETE/UNDELETE occurred.
BLOCK”

GR1DV1 Group 1 Device 1 is one of up to eight devices to receive the block alarm
messages directed to Group 1 by the specifying block parameter. Enter the
identifier of the alarm message destination assigned to be Device 1. If any
nonexisting Station Level device (including spaces-only entries) is entered
in one of the GRxDVy parameters, the alarm throughput of the control
processor is adversely affected.

GR1DV2 - GR1DV8
Group 1 Device 2 through Group 1 Device 8. Apply GR1DV1 definition
to Device numbers 2 through 8.

GR2DV1 - GR2DV8
Group 2 Device 1 through Group 2 Device 8. Apply GR1DV1 definition
to Group 2 Devices 1 through 8.

GR3DV1 - GR3DV8
Group 3 Device 1 through Group 3 Device 8. Apply GR1DV1 definition
to Group 3 Devices 1 through 8.

GR1FD1-GR1FD8
Group 1/Device 1-8 File Descriptor is an integer value.

GR2FD1-GR2FD8
Group 2/Device 1-8 File Descriptor is an integer value.

GR3FD1-GR3FD8
Group 3/Device 1-8 File Descriptor is an integer value.

INITON Initialize On/Off specifies the state the compound assumes on initializa-
tion where:
0 = initialize the compound in the OFF state.
1 = initialize the compound in the ON state.
2 = initialize the compound in the ON/OFF state specified in the check-
point file.
The default setting = 2. INITON action is performed when the com-
pound is initialized by installation of the compound, or download of the
compound during Reboot.

LOOPID Loop Identifier is a configurable string of up to 32 characters which iden-


tify the loop or process with which the block is associated. It is displayed
on the detail display of the block, immediately below the faceplate.

582
19. CMP – Compounds B0193AX – Rev AB

NAME Name is a user-defined string of up to 12 characters used to access the sta-


tion block and its parameters.

ON On/Off is a boolean input that, when true, allows the compound to be


processed. When false this input turns the compound off. As of Release
4.2, the On/Off status of a compound is not indicated in a status bit of
every input and output parameter of every block in the compound.

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

* When allowed by the selection of an appropriate BPC, this period is


only available in the CP40, CP40B, CP60 and later control processors.

! 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.

PHASE The system automatically defaults the Compound PHASE to zero. A


Compound PHASE value of zero relegates phasing to the individual
blocks.

! WARNING
Manual phasing of compounds is allowed, but it must be done carefully for proper
block operation. Improper compound phasing can result in excessive overruns or in
blocks not being processed. Note also that raising the frequency (shortening the
period) of the Basic Processing Cycle (BPC) may invalidate previously configured
phase values by reducing the range of legal PHASE values for a given Period. Read
“Block Phasing” in the appropriate Integrated Control Software Concepts document
(B0700AG or B0193AW).

583
B0193AX – Rev AB 19. CMP – Compounds

SSTATE Sequential State represents the collective operational state of all sequential
control blocks in the compound. SSTATE can be one of three values:
SSTATE = 0 (Inactive);
SSTATE = 1 (Active); or
SSTATE = 2 (Exception).
Refer to the “Compound Sequence State” in the appropriate Integrated
Control Software Concepts document (B0700AG or B0193AW) for further
definition.

TYPE When you enter “CMP” or select “CMP” from the block type list under
Show, an identifying integer is created specifying this block type.

UNACK Unacknowledge is a boolean output parameter that allows you to propa-


gate alarm acknowledge actions to all blocks in a compound. An
alarm-acknowledge display task typically resets UNACK.

584
20. COUT – Contact Output Block
This chapter covers the Contact Output, or COUT, block, its basic operations, features,
parameters, and functions, bad input, out-of-service and error conditions, failsafe state,
manual mode, and alarming, and also provides an application diagram and a valid output
connections appendix.

20.1 Overview
The Contact Output block (COUT) provides the control strategy with output capability for a
single digital output point in any Fieldbus Module (FBM) or Fieldbus Card (FBC) containing
such points. You can select a sustained output that follows the block input or a pulsed output with
a selectable pulse width. The block also supports output inversion and alarming. See Figure 20-1.

Fieldbus
Invert Module Point
Contact Out Identifier Number
Option Pulse Option

Point Pulse To
Input
Inversion Output FBM/FBC

Contact
Output

ECB Failsafe
Processing Failsafe
Failsafe

FBM and BAD Bad


Channel Detection Alarming
Alarm
Status

Bad Alarm
Option
Figure 20-1. COUT Block Diagram

585
B0193AX – Rev AB 20. COUT – Contact Output Block

20.2 Basic Operation


The COUT block interfaces to an Equipment Control Block (ECB) which contains digital out-
put values to an FBM or FBC. Each execution cycle, the block writes the value of the input
parameter Input (IN) to its output, called Contact Output (COUT). When an FBM or FBC is
configured, the value of COUT also drives the connected output point.
The COUT block provides optional point inversion under control of parameter Invert Contact
Output (INVCO) and optional pulsed output under control of parameter Pulse Option
(PLSOPT).
The block uses parameters Initialize Out (INITO) and Failsafe (FS) to alert upstream blocks to
various abnormal situations.
Bad I/O alarming and Auto/Manual capability are also provided.

20.3 Features
 Interfacing of the control scheme to all digital output points in any FBMs or FBCs
 Duplicate output channel cross-checking against other control blocks
 Fieldbus Module option to permit configuration of COUT blocks without FBM or
FBC connections
 Output inversion option
 Pulse option with variable pulse width
 Failsafe support
 Switch to Manual option if Failsafe detected
 Contact readback for initialization situations.
 “Open cascade” notification to upstream blocks
 Error propagation option
 Last good value option
 Manual mode for disconnecting the process from the control scheme, for simulation
and checkout purposes
 Detection and alarming of bad FBM, bad FBC, and bad FBC input point
 Out-of-service detection and handling for connected FBMs or FBCs.

586
20. COUT – Contact Output Block B0193AX – Rev AB

20.4 Parameters
Table 20-1. COUT Block Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set blank 1 to 12 chars
TYPE block type integer no-con/no-set 33 COUT
DESCRP descriptor string no-con/no-set blank 1 to 32 chars
PERIOD block sample time short no-con/no-set 1 0 to 13
PHASE block execute phase integer no-con/no-set 0 ---
LOOPID loop identifier string no-con/set blank 1 to 32 chars
IOMOPT FBM output option boolean no-con/no-set 1 0 to 1
IOM_ID FBM identifier string no-con/no-set blank 1 to 6 chars
PNT_NO FBM point number string no-con/no-set 1 1 to 32
IN generic input boolean con/set 0 0 to 1
PROPT propagate error option boolean no-con/no-set 0 0 to 1
EROPT error option short no-con/no-set 0 0 to 2
PLSOPT pulse option boolean no-con/no-set 0 0 to 1
WIDTH pulse width real con/set 0.0 minutes
INVCO invert cout state boolean no-con/no-set 0 0 to 1
MA manual/auto boolean con/set 0 0 to 1
INITMA initialize MA short no-con/no-set 1 0 to 2
MANFS manual if failsafe boolean no-con/no-set 0 0 to 1
INHOPT inhibit option short no-con/no-set 0 0 to 3
INHIB alarm inhibit boolean con/set 0 0 to 1
BAO bad alarm option boolean no-con/no-set 0 0 to 1
BAT bad alarm text string no-con/no-set blank 1 to 32 chars
BAP bad alarm priority integer con/set 5 1 to 5
BAG bad alarm group short no-con/set 1 1 to 8
DEV_ID FBM Letterbug char[6] no-con/no-set blank 1 to 6 chars
AMRTIN alarm regeneration timer integer no-con/no-set 0 0 to 32767 s
Non-Configurable Parameters
OUTPUTS
ALMSTA alarm status pack_l con/no-set 0 bit map
BAD bad I/O status boolean con/no-set 0 0 to 1
BLKSTA block status pack_l con/no-set 0 bit map
COUT contact output boolean con/no-set 0 0 to 1
CRBK contact readback boolean con/no-set 0 0 to 1
CRIT alarm criticality integer con/no-set 0 0 to 5
FS failsafe state boolean con/no-set 0 0 to 1
INHSTA inhibit status pack_l con/no-set 0 0 to 0xFFFFFFFF
INITO initialize out short con/no-set 0 ---
PRTYPE priority type integer con/no-set 0 0 to 8
UNACK unacknow alarm boolean con/no-set 0 0 to 1

587
B0193AX – Rev AB 20. COUT – Contact Output Block

Table 20-1. COUT Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


DATA STORES
ACHNGE alternate change integer con/no-set 0 -32768 to 32767
ALMOPT alarm options pack_l no-con/no-set 0 0 to 0xFFFFFFFF
DEFINE no config errors boolean no-con/no-set 1 0 to 1
ERCODE configuration error string no-con/no-set blank 1 to 43 chars
LOCKID lock identifier string no-con/no-set blank 8 to 13 chars
LOCKRQ lock request boolean no-con/set 0 0 to 1
OWNER owner name string no-con/set blank 1 to 32 chars
PERTIM period time real no-con/no-set 0.1 ---

20.4.1 Parameter Definitions


ACHNGE Alternate Change is an integer output which is incremented each time a
block parameter is changed via a Set command.

ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use.
For the COUT block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

Bit Number1
(0 to 31) Configured Alarm Option When True
0 (Least Significant) Alarm Group 8 in Use
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use
22 Bad I/O Alarm Configured
1.
Bit 0 is the least significant, low order bit.

588
20. COUT – Contact Output Block B0193AX – Rev AB

ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the COUT block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
B4
B5
B6
B7
B8
B9
CRIT PRTYPE

BAD
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: Only PRTYPE values
(Least Sig- 0 and 8 are used in the COUT block
nificant)
5 to 7 CRIT_MSK Criticality; 5 = lowest priority,
1 = highest
22 BAD Bad I/O Alarm ALMSTA.B10
30 UNAK Unacknowledged Alarm ALMSTA.B2

* Bit 0 is the least significant, low order bit.

AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is gen-
erated.

BAD Bad is a boolean output parameter which is set true when the connected
FBM or FBC has bad status or the connected point within it (if an FBC)
has bad readback status.

BAG Bad Alarm Group is a short integer input that directs Bad alarm messages
to one of eight groups of alarm devices.

BAO Bad Alarm Option is a configurable boolean which, when true, enables
alarm generation for each state change of the BAD parameter.

BAP Bad Alarm Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the Bad alarm (1 is the highest priority).

BAT Bad Alarm Text is a user-configurable text string of up to 32 characters,


sent with the Bad alarm message to identify it.

589
B0193AX – Rev AB 20. COUT – Contact Output Block

BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the COUT block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

FBM
BAD

TRK
MA
ON
FS
Bit Number* Boolean Connection
(0 to 31) Name Description When True (B32 to B1)
6 TRK Tracking BLKSTA.B26
8 FBM FBM or FBC Failure BLKSTA.B24
11 MA Manual = 0, Auto = 1 BLKSTA.B21
12 BAD Bad I/O BLKSTA.B20
14 UDEF Block Undefined BLKSTA.B18
15 ON Block ON BLKSTA.B17
20 WLCK Workstation Lock BLKSTA.B12
24 FS Output in Failsafe BLKSTA.B8

* Bit 0 is the least significant, low order bit.

COUT Contact Output is the output of the block. When there is a connected
FBM or FBC, its value is also transmitted to the connected output point.

CRBK Contact Readback contains the readback value of the connected point if
an FBM or FBC is connected, provided the FBM or FBC is not out-of-
service or bad, or the FBC point does not have bad status readback. If any
of these conditions exist, CRBK retains its last good value.

CRIT Criticality is an integer output that indicates the priority, ranging from 1
to 5, of the block’s highest currently active alarm (1 is the highest priority).
An output of zero indicates the absence of alarms.

DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing, other than those involved in duplicate output channel detection.
(See ERCODE for the list of all possible validation errors in this block.) In
that case, no further processing of the block occurs, including further vali-
dation of remaining parameters. To return DEFINE to a true value, cor-
rect all configuration errors and re-install the block. If DEFINE = 0, the
bit BLKSTA.UDEF = 1.

590
20. COUT – Contact Output Block B0193AX – Rev AB

DESCRP Description is a user-defined string of up to 32 characters that describe the


block’s function (for example, “PLT 3 FURNACE 2 HEATER CON-
TROL”).

DEV_ID Device Identifier is a character array that specifies the 6-character letter-
bug of the connected FBM or FBC.

ERCODE Error Code is a string data store which indicates the type of configuration
error which caused the block’s DEFINE parameter to be set false. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. For the COUT block, the following list specifies
the possible values of ERCODE and the significance of each value in this
block:
ERCODE Description
W51 The specified FBM or FBC does not contain any digital
output points)
W52 PNT_NO out of range for the specified FBM or FBC)
W54 Specified IOM_ID does not exist
W59 Warning: This block and another block which drives
digital output points are connected to the same FBM or
FBC and point number. Both blocks receive the same
warning message.

EROPT Error Option is a short integer option which determines the conditions
under which last good value functionality is provided for the block output
COUT. EROPT is only active when PROPT is true and the block is in
Auto. (See Section 20.6.3 for a definition of the effect of the different val-
ues of EROPT).

FS Failsafe is a boolean output which is set true when the connected output
point transitions into the Failsafe state. If the block is in Auto when the
transition occurs, FS remains true for one cycle, and then returns to false.
If in Manual, FS goes true on any transition into Failsafe, and remains
true while the block is in Manual. On the next transition into Auto, FS is
set false.

IN Input is the input to the block. Its value, after optional inversion and pulse
generation, is presented as the output COUT, and transmitted to any con-
nected FBM or FBC point.

INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting. Alarms can also be inhibited based on the compound parameter
CINHIB.

591
B0193AX – Rev AB 20. COUT – Contact Output Block

INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do not
disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the time
the alarm transitions into the inhibited state, clear the alarm
indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages can be acknowledged by explicitly setting
UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages can be acknowledged by explicitly setting
UNACK false.

INHSTA Inhibit Status contains packed long values that represent the current
inhibit status of each alarm type configured in the block. For the COUT
block, only the following bit is used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BAD B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

Bit Number* Boolean Connection


(0 to 31) Name Description When True (B32 to B1)
22 BAD Bad I/O Alarm Inhibited INHSTA.B10

* Bit 0 is the least significant, low order bit.

INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state as specified in the checkpoint file.
The block asserts this initial M/A state whenever:
 It is installed into the Control Processor database
 The Control Processor undergoes a reboot operation
 The compound in which it resides is turned on.

592
20. COUT – Contact Output Block B0193AX – Rev AB

 The INITMA parameter itself is modified via the control configu-


rator. (The block does not assert INITMA on ordinary
reconfiguration.)
INITMA is ignored if MA has an established linkage.

INITO 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.

IOMOPT FBM Option is a boolean specifying whether an FBM or FBC connection


to the block exists. Values:
0= The block does not transmit the COUT value to an FBM or
FBC point.
1= The block transmits the COUT value to the FBM or FBC
point specified by IOM_ID and PNT_NO each cycle.

IOM_ID Fieldbus Module Identifier is a configurable string that specifies the path-
name of the FBM or FBC to which the block is connected.
IOM_ID has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOM_ID configuration. In this case, the 1-12
character ECB block name is sufficient.

LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-char-
acter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.

LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are honored (subject to the usual access rules) only from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set false by any workstation at any time, whereupon a
new LOCKRQ is accepted, and a new ownership workstation identifier
written to LOCKID.

593
B0193AX – Rev AB 20. COUT – Contact Output Block

LOOPID Loop Identifier is a configurable string of up to 32 characters which iden-


tify the loop or process with which the block is associated. It is displayed
on the detail display of the block, immediately below the faceplate.

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.

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

OWNER Owner is a string of up to 32 ASCII characters which are used to allocate


control blocks to applications. Attempts to set OWNER are successful
only if the present value of OWNER is the null string, an all-blank string,
or identical 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.

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.

594
20. COUT – Contact Output Block B0193AX – Rev AB

** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.

PERTIM Period Time is the period of the block expressed in seconds.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).

PLSOPT Pulse Option allows you to select pulsed operation of the output COUT.
When true, PLSOPT causes a 0-to-1 pulse on COUT for a duration of
WIDTH minutes, every time there is a 0-to-1 transition of the input IN.
If the invert option INVCO is also true, the sense of output pulses is
reversed.

PNT_NO Point Number is the FBM or FBC point to which the COUT block is
connected. (See “Appendix A – Valid Output Connections” on page 605).

PROPT Propagate Error Option is a boolean input which determines whether the
status of IN should be reflected in the Error bit of COUT status. If the
COUT block is in Auto, a true value of PROPT causes any one of the fol-
lowing conditions to be reflected as an Error status of COUT:
 Bad status bit in IN parameter
 OOS status bit in IN parameter
 Error status bit in IN parameter
 Any value in the om field of the input source except 1
(ON_SCAN). Any other value in this field indicates that the
source of the connection has been deleted or is in a nonexistent
compound, or there has been a peer-to-peer path failure.
Parameter EROPT is used to control last good value functionality when
PROPT is true and the block is in Auto.

PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. The PRTYPE output of this block
consists only of the following alarm types:
0 = No active alarm
8 = Bad

595
B0193AX – Rev AB 20. COUT – Contact Output Block

TYPE When you enter “COUT” or select it from a configurator list, an identify-
ing integer is created specifying this block type.

UNACK Unacknowledge is a boolean output parameter which is set true, for notifi-
cation purposes, whenever the block goes into alarm. It is settable, but sets
are only allowed to clear UNACK to false, and never in the opposite direc-
tion. The clearing of UNACK is normally via an operator “acknowledge”
pick on a default display, user display, or Current Alarms Display, or via a
user task.

WIDTH Pulse Width specifies the duration, in minutes, of output pulses generated
when PLSOPT is true.

596
20. COUT – Contact Output Block B0193AX – Rev AB

20.5 Functions
20.5.1 Detailed Diagram

INVCO
PLSOPTWIDTH (M)
o
MA
Point Pulsed o o o o
IN Output COUT
Inversion
(A)

LAST GOOD VALUE o To


AND ECB
BUMPLESS INIT VALUE o IOMOPT

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

PROPT OR o USE LAST GOOD VALUE


Auto AND

IN.BAD EROPT = 2 AND


IN.OOS
IN.Disconnect OR
IOMOPT AND COUT.OOS
IN.ERROR ECB OOS
INITO.OOS
CRBK.OOS
COUT.SECURE
ECB Bad
OR BAD
Readback AND
Point Status IOMOPT COUT.BAD
Bad
INITO.BAD
CRBK.BAD
COUT.SECURE
Bad
AND Alarming
BAO
Failsafe
Detection AND
Manual
OR FS
Auto AND
Transition Cycle

Figure 20-2. COUT Block Operational Diagram

597
B0193AX – Rev AB 20. COUT – Contact Output Block

20.5.2 Output Processing


Key Parameters: IOM_ID, PNT_NO, IN, COUT, INVCO, PLSOPT, WIDTH, IOMOPT
You specify the destination 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 follow-
ing are the FBMs or FBCs and point numbers providing valid output destinations for the COUT
block:
FBM Electrical Type Valid Output Points
FBM219 Contact or dc In; Output Switch with Internal or Points 25 to 32
External Source
FBM241 Contact or dc In; Output Switch with Internal or Points 9 to 16
External Source
FBM242 Contact Output; Output Switch with External Source Points 1 to 16
FBM09 Contact or dc In; Output Switch with Internal or Points 9 to 16
External Source
FBM10 120 V ac In; 120 V ac Output Switch Points 9 to 16
FBM11 240 V ac In; 240 V ac Output Switch Points 9 to 16
FBM14 Contact or dc In; Output Switch with Internal or Points 25 to 32
External Source Expansion
FBM15 120 V ac In; 120 V ac Output Switch Expansion Points 25 to 32
FBM16 240 V ac In; 240 V ac Output Switch Expansion Points 25 to 32
FBM17 Contact or dc In; Output Switch with Internal or Points 11 to 14
External Source (Plus Analog I/O)
FBM26 Contact or 125 V dc or Contact Externally Powered In; Points 9 to 16
Externally Powered Output Switch
FBM27 Contact or 125 V dc or Contact Externally Powered In; Points 25 to 32
Externally Powered Output Switch Expansion
FBC09 Isolated Contact or Relay Out Points 1 to 32
FBC10 Configurable ac or dc In; Configurable ac, dc or Points 33 to 64, if
Contact Out configured as outputs.
FBC09 Isolated Contact or Relay Out, Redundant Points 1 to 32
Redundant
FBC10 Configurable ac or dc In; Configurable ac, dc or Points 33 to 64, if
Redundant Contact Out, Redundant configured as outputs.

NOTE
Points 33 to 64 of FBC10 and FBC10 Redundant can be used as inputs or outputs,
depending on how you configure the ECB parameter BUSMID using the Inte-
grated Control Configurator. The first 32 points (Points 1 to 32) are always inputs.
Any additional inputs within the range 33 to 64 must be lower than any outputs.
The value of BUSMID is the total number of inputs in the FBC, according to the
following table.

598
20. COUT – Contact Output Block B0193AX – Rev AB

Table 20-2. Input/Output Points, FBC10 and FBC10 Redundant

BUSMID Input Points Output Points


32 1 to 32 33 to 64
40 1 to 40 41 to 64
48 1 to 48 49 to 64
56 1 to 56 57 to 64
64 1 to 64 None

Duplicate output channel detection is intended to alert you to the fact that this block and another
block capable of digital outputs are connected to the same output point. This does not necessarily
constitute a conflict, since the other block may be in a compound which is not intended to run at
the same time as the compound containing this COUT block, or the duplicate connection may
be desired as part of an elaborate control scheme. The blocks capable of driving digital outputs are
COUT, MCOUT, GDEV, MTR, VLV, MOVLV, and MDACT.
When any block of one of these types undergoes one of the following actions, the entire data base
is checked for duplicate digital output channels:
 The block is installed.
 The IOMOPT (OP_FBM in the case of GDEV) parameter is modified.
 The IOM_ID or IOMIDR parameter is modified.
 A variable output point number (PNT_NO, CO1_PT, or CO2_PT) is modified, or,
in the case of MCOUT, the parameter GRPNUM is modified.
The duplicate output channel check is also performed when the Control Processor is rebooted. It
is not performed when a compound is switched On or Off.
All blocks connected to the same output point receive the DUPLICATE OUTPUT CHANNEL
warning message, but none are set Undefined.
If the block is in Auto, and the last good value conditions described in Section 20.6.3 are not in
effect, then the value of the input IN is transferred to the output COUT, after optional inversion
based on the value of Invert Contact Out (INVCO). Note that inversion is disabled in Manual
mode.
When the Pulse Option (PLSOPT) option parameter is true and INVCO is false, any 0-to-1
transition of IN results in a pulsed output, during which COUT is in the 1 state for a period of
time equal to parameter Pulse Width (WIDTH). WIDTH, which is expressed in units of min-
utes, enables dynamic pulse width settings. The values of IN, including any positive or negative
transitions, are ignored during the active WIDTH period. The output returns to 0 when the pulse
duration expires. If IN is in the 1 state at the time the pulse ends, no new pulse is started until IN
has returned to 0, and a new 0-to-1 transition has occurred.
The sense of pulses is reversed when PLSOPT and INVCO are simultaneously true. In this case, a
0-to-1 transition of IN causes a pulse in which COUT remains in the 0 state for WIDTH min-
utes, after which it returns to 1. Any transitions of IN are ignored during the active pulse period,
and if IN is in the 1 state when the pulse ends, no new pulse begins until there has been a new
transition of the input.

599
B0193AX – Rev AB 20. COUT – Contact Output Block

If an FBM or FBC is connected, as specified by FBM Option (IOMOPT) = 1, the value in


COUT is written to the ECB, and a flag is set in the ECB which causes its contents to be written
to the FBM or FBC at the next bus output cycle. This transfer of the value of COUT to the FBM
or FBC is the only difference between setting IOMOPT = 0 (no connected FBM or FBC) and
setting IOMOPT = 1 (FBM or FBC connected). COUT is calculated identically in either case.
Parameter Contact Readback (CRBK) contains the actual value read back from any connected
FBM or FBC at all times. If there is no connected FBM or FBC, it is identical to the present value
of COUT.
Some digital FBMs also have momentary (pulse) and sustained options on a per-point basis that
the user can specify independently from the COUT block option. Refer to the appropriate Inte-
grated Control Software Concepts document (B0700AG or B0193AW).

20.5.3 Bumpless Operation Features


Key Parameters: BAD, FS, CRBK, PLSOPT, INITO, COUT
A one-cycle initialization mode is entered when any one of the following conditions is detected by
the block:
 The FBM or FBC has undergone a transition out of the out-of-service state.
 The FBM or FBC has undergone a transition out of the bad state. If an FBC is in use,
the bad state is as defined in Section 20.6.1 below.
 The FBM or FBC has undergone a transition into the Failsafe state, that is, parameter
FS is true. (See Section 20.7).
 The Tracking bit, BLKSTA.TRK, is true. This bit is set by the block logic when it
detects that the FBM is in local panel mode. (In this case, the one-cycle initialization
mode can persist for an indefinite duration).
During this initialization mode, the block operation is as follows:
 If the block is using sustained operation (that is, PLSOPT is false), parameter CRBK
is set to the value read back by the connected FBM or FBC. If there is no connected
FBM or FBC, then CRBK is set to the previous value of COUT. In either case, the
resulting value of CRBK is set into COUT as its current value, and transmitted to any
connected FBM or FBC.
 If PLSOPT is true, any currently-active pulse is terminated. This means that COUT
is restored to the 0 state if INVCO is false, or the 1 state if INVCO is true. The result-
ing value of COUT is transmitted to any connected FBM or FBC. No new pulse will
be started until the appropriate transition, as defined in Section 20.5.2.
On any cycle other than an initialization mode cycle as defined above, INITO is set true to notify
upstream blocks if there is any open-loop situation. Since the COUT block is always at the down-
stream end of cascades, the loop is considered open if:
 The COUT block is in Manual.
 The COUT block is itself initializing.
 A connected FBM or FBC is out of service.
 A connected FBM or FBC has bad status.
If INITO is true because of either of the first two conditions, and neither of the last two condi-
tions exists, CRBK is set to the readback value from the FBM or FBC, or if there is no connected

600
20. COUT – Contact Output Block B0193AX – Rev AB

FBM or FBC, to the previous value of COUT. If either of the last two conditions is the cause of
INITO, CRBK holds its last good value.
Since CRBK is refreshed on every cycle, including those in which neither the initialization mode
nor INITO is true, it therefore serves to make the actual state of any connected FBM or FBC
available to the control strategy at all times.

20.6 Bad Input, Out-of-Service, and Error Conditions


20.6.1 Bad Input Conditions
Key Parameters: BAD, COUT, BLKSTA, CRBK, INITO
If there is a connected FBM or FBC, then the Bad (BAD) parameter, the bad status of COUT, the
bad status of CRBK, the bad status of INITO, and the bits of Block Status (BLKSTA) with mne-
monics BLKSTA.FBM and BLKSTA.BAD are all simultaneously set true when the FBM or FBC
itself is bad, that is, it has detected a fatal hardware fault, or other fatal fault.
Since FBCs provide readback of the status of output points as well as their values, the readback
status of the connected point is checked when an FBC (rather than an FBM) is connected to the
block. If the point has bad readback status, all of the above actions are taken, with the exception
of the setting of BLKSTA.FBM, unless of course the FBC itself is also bad, in which case BLK-
STA.FBM and BLKSTA.BAD are both set true.
If either the FBM or FBC, or the connected point readback status, is bad then COUT is secured,
and cannot be set for any reason, regardless of the Auto/Manual state.

20.6.2 Out-of-Service Condition


Key Parameters: COUT, CRBK, INITO
When there is a connected FBM or FBC, the out-of-service status of COUT, the out-of-service
status of CRBK, and the out-of-service status of INITO are simultaneously set true if the FBM or
FBC itself is out of service. In this case also, COUT is secured and cannot be set. COUT retains
its previous value, and this therefore constitutes an additional last good value situation, in addi-
tion to those described in Section 20.6.3.

20.6.3 Error Condition and Last Good Value Functionality


Key Parameters: PROPT, IN, COUT, EROPT
If the Propagate Error Option (PROPT) parameter is true, the Error status bit of COUT is set
true if IN has one or more of the following conditions:
 The Bad status bit of IN is true.
 The Out-of-Service status bit of IN is true.
 The Error status bit of IN is true.
 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 non-
existent compound, or there has been a peer-to-peer path failure.
If the block is in Manual, PROPT is ignored; the Error status bit of COUT is not set true under
any of these conditions.

601
B0193AX – Rev AB 20. COUT – Contact Output Block

When PROPT is true and the block is in Auto, you may use parameter Error Option (EROPT)
to control last good value functionality. The values of EROPT are as follows:
 EROPT = 0: There is no last good value functionality. COUT is updated normally.
 EROPT = 1: The value of COUT is not updated, and its value from the previous pro-
cessing cycle is used, whenever any one of the first, second, or fourth conditions above
is true.
 EROPT = 2: The value of COUT is not updated, and its value from the previous pro-
cessing cycle is used, whenever any one of the four conditions above is true.
If the block is in Manual, EROPT is ignored.

20.7 Failsafe State


Key Parameters: FS, BLKSTA, MANFS, MA
Each execution cycle, the block inspects the ECB to determine whether the connected point has
been reported in the Failsafe state by the FBM or FBC. If so, and if the block is in Auto, the
parameter FS is set true for one cycle, when the transition into Failsafe occurs. Thereafter FS is
false until another transition into Failsafe is detected.
If the block is in Manual when a transition into Failsafe is detected, FS is set true and remains true
for the duration of the Manual mode. If the block is then switched into Auto, FS is cleared to
false.
The status bit BLKSTA.FS is true whenever parameter FS is true.
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 parameter MA is linked.
Failsafe state processing is not performed when no FBM or FBC is connected.

20.8 Manual Mode


Key Parameters: COUT, MA, INITO
When the COUT block is in the Manual mode, it does not update the value of the COUT out-
put. COUT is released and becomes settable by the user. When an FBM or FBC is connected, the
manual value set into COUT is copied to the output point. However, if a connected FBM or
FBC has bad status, or the connected FBC point has bad readback status, or the FBM or FBC is
out-of-service, then COUT is not settable.
All other output parameters can be set during Manual mode. Ordinarily, you should not set the
value of CRBK, since it would lose its function of continually reporting the actual readback value
from the FBM or FBC.
All of the parameters and status bits which reflect the bad or out-of-service status of the FBM or
FBC, or the bad readback status of an FBC channel, remain active during Manual mode, and are
refreshed every cycle. These are listed in detail in Section 20.6.1 and Section 20.6.2.
Neither PROPT, EROPT, nor INVCO are active during Manual mode.
The cascade is considered open during Manual mode of the COUT block, and INITO is there-
fore kept true throughout the mode.
Alarming is always active during Manual mode of the COUT block.

602
20. COUT – Contact Output Block B0193AX – Rev AB

20.9 Alarming
The COUT block supports the Bad I/O alarm type. The functionality of this alarm type is dis-
cussed in the appropriate Integrated Control Software Concepts document (B0700AG or
B0193AW).
The nomenclature for identical alarm types varies from block to block for historical reasons
involving backward compatibility requirements. The nomenclature for the COUT block is as fol-
lows:
Table 20-3. Alarm Nomenclature

Default Indicator
Type Option Priority Group Text Display Parameter
I/O Bad BAO = True BAP BAG BAT IOBAD BAD

603
B0193AX – Rev AB 20. COUT – Contact Output Block

20.10 Application Diagram

BO01 BO02 RO01 RO02

CALCA
Program

BI02 BI04 BI09 BI11

CIN
CIN WIDTH IN
CIN CIN
CIN CIN COUT
CIN WIDTH IN
CIN
COUT

FBM241
or Flow
FBM09 Switch
Feedstock

Tank Full
Switch

Tank Half
Full Switch

Output
Product

Solenoid
Flow Valve
Switch

604
20. COUT – Contact Output Block B0193AX – Rev AB

20.11 Appendix A – Valid Output Connections

Hardware

219
241
242
10
11
14
15
16
17
26
27
62

86
94

97
9
Type #
Point
1 O O O
2 O O O
3 O O O
4 O O O
5 O O O
6 O O O
7 O O O
8 O O O
9 O O O O O O O O
10 O O O O O O O O
11 O O O O O O O O O
12 O O O O O O O O O
13 O O O O O O O O O
14 O O O O O O O O O
15 O O O O O O O O
16 O O O O O O O O
17 O O
18 O O
19 O O
20 O O
21 O O
22 O O
23 O O
24 O O
25 O O O O O O O
26 O O O O O O O
27 O O O O O O O
28 O O O O O O O
29 O O O O O O O
30 O O O O O O O
31 O O O O O O O
32 O O O O O O O
33 I/O I/O
34 I/O I/O

605
B0193AX – Rev AB 20. COUT – Contact Output Block

Hardware

219
241
242
10
11
14
15
16
17
26
27
62

86
94

97
9
Type #
Point
35 I/O I/O
36 I/O I/O
37 I/O I/O
38 I/O I/O
39 I/O I/O
40 I/O I/O
41 I/O I/O
42 I/O I/O
43 I/O I/O
44 I/O I/O
45 I/O I/O
46 I/O I/O
47 I/O I/O
48 I/O I/O
49 I/O I/O
50 I/O I/O
51 I/O I/O
52 I/O I/O
53 I/O I/O
54 I/O I/O
55 I/O I/O
56 I/O I/O
57 I/O I/O
58 I/O I/O
59 I/O I/O
60 I/O I/O
61 I/O I/O
62 I/O I/O
63 I/O I/O
64 I/O I/O

Legend: O = Output
I/O = Configurable as Input or Output

606
20. COUT – Contact Output Block B0193AX – Rev AB

NOTE
Hardware Type 62 is used for FBC09.
Hardware Type 86 is used for FBC10.
Hardware Type 94 is used for FBC09 Redundant.
Hardware Type 97 is used for FBC10 Redundant.

607
B0193AX – Rev AB 20. COUT – Contact Output Block

608
21. COUTR – Redundant Contact
Output Block
This chapter covers the Redundant Contact Output, or COUTR, block, its basic operations,
features, parameters, and functions, bad input, out-of-service and error conditions, failsafe
state, manual mode, and alarming, and also provides an application diagram.

21.1 Overview
The Redundant Contact Output block (COUTR) provides the control strategy with output capa-
bility for a single digital output point directed to two redundant Fieldbus Modules (FBMs) con-
taining such points. You can select a sustained output that follows the block input or a pulsed
output with a selectable pulse width. The block also supports bad alarming. The COUTR block
is currently qualified for use only with redundant FBM240 modules and redundant DCS FBMs
for Migration to Moore APACS+ systems, and with redundant FBM207 and FBM217. For more
information on the DCS FBMs, refer to DCS Fieldbus Modules for Migration of Moore APACS+
Systems User’s Guide (B0700BK). For more information on the FBM207/217, refer to DIN Rail
Mounted Subsystem User’s Guide (B0400FA).
See Figure 21-1 for an overview of COUTR block operation.

609
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block

Fieldbus
Pulse Module
Option Identifiers
FBM FBM
Option Width Option Point
Number

To
1 M Redundant
Input 1 Write
Points ECBs
0 Pulse
Output A
Primary and
Point 0 Contact
Secondary
Selection Output
Readback
Values

ECBs Failsafe
Processing Failsafe
Failsafe/Bad

FBM and Bad FBM/Input Bad Alarming Alarms


Channel Messages
Detection and Messages
Status

Bad Alarm
Option
Figure 21-1. COUTR Block Diagram

21.2 Basic Operation


The COUTR block interfaces to two Equipment Control Blocks (ECBs) that store digital output
values and send the values to a redundant pair of FBMs.
When the COUTR block initializes, the block output is set to the signal that is read back from
either the primary or secondary FBM in the redundant pair. If both signals are healthy, the read-
back signal from the primary FBM is used. If the primary FBM is failed, the readback signal from
the secondary FBM is used.
Each execution cycle, the block output is stored as a connectable output parameter (COUT) and
transmitted to both FBMs. Signals that are read back by the FBMs are stored as two connectable
output parameters, CRBK_P and CRBK_S.
The COUTR block can be configured to run in simulation mode when FBMs are not connected
to the block, allowing you to test your control scheme without I/O hardware physically
connected.
The COUTR block provides optional pulsed output, Failsafe support, Bad I/O alarming, and
Auto/Manual capability.

610
21. COUTR – Redundant Contact Output Block B0193AX – Rev AB

21.3 Features
The COUTR block provides the following features:
 Drives each of two redundant output signals in redundant FBMs
 Interfacing of the control scheme to digital output points in redundant FBMs, includ-
ing readback values from field devices
 Pulse option with variable pulse width
 Contact readback for initialization situations
 Simulation mode via the Fieldbus Module option to permit block configuration with-
out FBM connections
 Manual mode availability for disconnecting the process from the control scheme, for
simulation and checkout purposes
 Duplicate output channel cross-checking against other control blocks
 Failsafe support
 Switch to Manual option if Failsafe detected
 “Open cascade” notification to upstream blocks
 Error propagation option
 Last good value option
 Alarming of bad output channels of both FBMs
 Alarm inhibit options
 Re-alarming of active block alarms when the alarm priority is changed
 Optional re-alarming of active block alarms when the re-alarm timer expires.

611
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block

21.4 Parameters
Table 21-1. COUTR Block Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set 2 blanks 1 to 12 chars
TYPE block type integer no-con/no-set 108 COUTR
DESCRP block descriptor string no-con/no-set 2 blanks 1 to 32 chars
PERIOD block sample time short no-con/no-set 1 0 to 13
PHASE block execution phase integer no-con/no-set 0 see Parameter Def.
LOOPID loop identifier string no-con/set 2 blanks 1 to 32 chars
IOMOPT FBM output option boolean no-con/no-set 1 0 to 1
IOM_ID primary ECB name string no-con/no-set 2 blanks 1 to 25 chars
IOMIDR secondary ECB name string no-con/no-set blank 1 to 25 chars
PNT_NO FBM point number string no-con/no-set 1 1 to 32
IN generic input boolean con/set 0 0 to 1
PROPT propagate error option boolean no-con/no-set 0 0 to 1
EROPT error option short no-con/no-set 0 0 to 2
PLSOPT pulse option boolean no-con/no-set 0 0 to 1
WIDTH pulse width real con/set 0 minutes any real
MA manual/auto boolean con/set 0 0 to 1
INITMA initialize MA short no-con/no-set 1 0 to 2
MANFS manual if failsafe option boolean no-con/no-set 0 0 to 1
INHOPT alarm inhibit option short no-con/no-set 0 0 to 3
INHIB alarm inhibit boolean con/set 0 0 to 1
BAO bad alarm option boolean no-con/no-set 0 0 to 1
BAT bad alarm text string no-con/no-set 2 blanks 1 to 32 chars
BAP bad alarm priority integer con/set 5 1 to 5
BAG bad alarm group short no-con/set 1 1 to 8
AMRTIN alarm message regeneration integer no-con/set 0 0 to 32767 seconds
Non-Configurable Parameters
OUTPUTS
ALMSTA alarm status pack_l con/no-set 0 see Parameter Def.
BAD bad I/O status indicator boolean con/no-set 0 0 to 1
BLKSTA block status pack_l con/no-set 0 see Parameter Def.
COUT contact output boolean con/no-set 0 0 to 1
CRBK_P primary contact readback boolean con/no-set 0 0 to 1
CRBK_S secondary contact readback boolean con/no-set 0 0 to 1
CRIT alarm criticality integer con/no-set 0 0 to 5
FS failsafe indicator boolean con/no-set 0 0 to 1
INHSTA alarm inhibit status pack_l con/no-set 0 see Parameter Def.
INITO initialize output short con/no-set 0 0 to 1
PRTYPE priority type integer con/no-set 0 0 to 8
UNACK unacknowledge alarm boolean con/no-set 0 0 to 1

612
21. COUTR – Redundant Contact Output Block B0193AX – Rev AB

Table 21-1. COUTR Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


DATA STORES
ACHNGE alternate change integer con/no-set 0 0 to 32767
ALMOPT alarm options pack_l no-con/no-set 0 see Parameter Def.
DEFINE no configuration errors boolean no-con/no-set 1 0 to 1
DEV_ID primary FBM Letterbug char[6] no-con/no-set blank 1 to 6 chars
DEVIDR secondary FBM Letterbug char[6] no-con/no-set blank 1 to 6 chars
ERCODE configuration error code string no-con/no-set 2 blanks see Parameter Def.
LOCKID lock identifier string no-con/no-set 2 blanks 8 to 13 chars
LOCKRQ lock request boolean no-con/set 0 0 to 1
OWNER owner name string no-con/set 2 blanks 1 to 32 chars

21.4.1 Parameter Definitions


ACHNGE Alternate Change is an integer output which is incremented each time a
block parameter is changed via a Set command.

ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use. For the COUTR block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

Bit Number1
(0 to 31) Configured Alarm Option When True
0 (Least Significant) Alarm group 8 in use
1 Alarm group 7 in use
2 Alarm group 6 in use
3 Alarm group 5 in use
4 Alarm group 4 in use
5 Alarm group 3 in use
6 Alarm group 2 in use
7 Alarm group 1 in use
14 Secondary point alarm option2
15 Primary point alarm option2
22 Bad I/O alarm configured2
1.
Bit 0 is the least significant, low order bit.
2.
Bit is set if BAO = 1.

613
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block

There are no mnemonic names for the individual bits of ALMOPT.

ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the COUTR block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10
B11
B12
B13
B14
B15
B16
BAD_S B17
BAD_P B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
UNACK B1
B2
B3
B4
B5
B6
B7
B8
B9
CRIT PRTYPE

BAD

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
0 to 4 PRTYPE Priority Type: Only PRTYPE values
(Least Sig- 0 and 8 are used in the COUTR
nificant) block
5 to 7 CRIT Criticality; 5 = lowest priority,
1 = highest
14 BAD_S Secondary point Bad ALMSTA.18
15 BAD_P Primary point Bad ALMSTA.17
22 BAD Bad I/O alarm (primary and ALMSTA.B10
secondary points Bad)
30 --- Bad alarm inhibited ALMSTA.B2
31 UNACK Unacknowledged Bad alarm ALMSTA.B1
* Bit 0 is the least significant, low order bit.

AMRTIN Alarm Regeneration Timer is an integer that specifies the time interval for
an alarm condition to exist continuously, after which a new unacknowl-
edged alarm condition and an associated alarm message is generated. Val-
ues range from 0 (default, no regeneration) to 32767 seconds.

BAD Bad is a boolean output parameter which is set true when both of the con-
nected FBMs have bad status or both readback values have bad status.

BAG Bad Alarm Group is a short integer input that directs Bad alarm messages
to one of eight groups of alarm devices.

BAO Bad Alarm Option is a configurable boolean value. When configured true,
it enables alarm generation for each state change of the BAD parameter.

BAP Bad Alarm Priority is an integer input, ranging from 1 to 5, that sets the
priority level of the Bad alarm (1 is the highest priority).

614
21. COUTR – Redundant Contact Output Block B0193AX – Rev AB

BAT Bad Alarm Text is a user-configurable text string of up to 32 characters


that is sent with the Bad alarm message to identify it.

BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. For the COUTR block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10
B11
B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
FBMR B23
B24
HOLD B25
B26
B27
B28
B29
B30
BIOR B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

FBM
LCK

BIO
ON

MA
FS

Bit Number* Boolean Connection


(0 to 31) Name Description When True (B32 to B1)
1 BIOR Secondary I/O Bad BLKSTA.B31
7 HOLD Hold BLKSTA.B25
8 FBM Primary FBM failure BLKSTA.B24
9 FBMR Secondary FBM failure BLKSTA.B23
11 MA Manual = 0, Auto = 1 BLKSTA.B21
12 BIO Primary I/O Bad BLKSTA.B20
14 UDEF Block Undefined BLKSTA.B18
15 ON Compound On = 1, BLKSTA.B17
Compound Off = 0
20 WLCK Workstation Lock BLKSTA.B12
24 FS Failsafed outputs (both BLKSTA.B8
outputs in failsafe)
* Bit 0 is the least significant, low order bit.

COUT Contact Output is the output of the block. When there are connected
FBMs, its value is also transmitted to the connected output points.

CRBK_P If a pair of FBMs is connected (IOMOPT = 1), the Primary Contact


Readback parameter contains the current state of the contact output read
back from the connected point of the primary FBM. This value initializes
the block’s output parameter (COUT) when the block initializes, when
communication is restored to the redundant FBM pair, and when transi-
tioning from both readback channels having bad status to at least one
readback channel becoming good.
If a pair of FBMs is not connected (IOMOPT = 0), this value is simulated
using the current state of the COUT parameter.

CRBK_S If a pair of FBMs is connected (IOMOPT = 1), the Secondary Contact


Readback parameter contains the current state of the contact output read
back from the connected point of the secondary FBM. This value initial-

615
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block

izes the block’s output parameter (COUT) when the block initializes,
when communication is restored to the redundant FBM pair, and when
transitioning from both readback channels having bad status to at least
one readback channel becoming good.
If a pair of FBMs is not connected (IOMOPT = 0), this value is simulated
using the current state of the COUT parameter.

CRIT Criticality is an integer output that indicates the priority, ranging from 1
to 5, of the block’s highest currently active alarm (1 is the highest priority).
An output of zero indicates the absence of alarms.

DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing, other than those involved in duplicate output channel detection.
(See ERCODE for the list of all possible validation errors in this block.) In
that case, no further processing of the block occurs, including further vali-
dation of remaining parameters. To return DEFINE to a true value, cor-
rect all configuration errors and re-install the block. If DEFINE = 0, the
bit BLKSTA.UDEF = 1.

DESCRP Description is a user-defined string of up to 32 characters that describes


the block’s function (for example, “PLT 3 FURNACE 2 HEATER CON-
TROL”).

DEV_ID Primary Device Identifier is a character array data store that specifies the
6-character letterbug of the connected primary FBM.

DEVIDR Secondary Device Identifier is a character array data store that specifies the
6-character letterbug of the connected secondary FBM.

ERCODE Error Code is a string data store that indicates the type of configuration
error that caused the block’s DEFINE parameter to be set false. Validation
of configuration errors does not proceed past the first error encountered
by the block logic. For the COUTR block, the following list specifies the
possible values of ERCODE and the significance of each value in this
block:
ERCODE Description
W43 – INVALID PERIOD/ The configured PHASE parameter
PHASE COMBINATION value is not consistent with the con-
figured PERIOD value.
W51 – INVALID HARDWARE/ The specified FBM does not con-
SOFTWARE TYPE tain any digital output points
W52 – INVALID I/O PNT_NO out of range for the spec-
CHANNEL/GROUP NUMBER ified FBM
W54 – ECB DOES NOT EXIST Specified IOM_ID or IOMIDR
does not exist

616
21. COUTR – Redundant Contact Output Block B0193AX – Rev AB

EROPT Error Option is a short integer option that determines the conditions
under which the last good value functionality is provided for the block
output COUT. EROPT is only active when PROPT is true and the block
is in Auto. (See Section 21.6.3 for a definition of the effect of the different
values of EROPT).

FS Failsafe is a boolean output which is set true when the connected output
points in both FBMs transition into the Failsafe state or if the connected
output point in one FBM transitions to Failsafe and the other FBM is
failed. If the block is in Auto when the transition occurs, FS remains true
for one cycle, and then returns to false. If in Manual, FS goes true on any
transition into Failsafe, and remains true while the block is in Manual. On
the next transition into Auto, FS is set false.

IN Input is the input to the block. Its value, after optional pulse generation, is
presented as the output COUT, and transmitted to any connected FBM
points.

INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting. Alarms can also be inhibited based on the compound parameter
CINHIB.

INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do not
disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the time
the alarm transitions into the inhibited state, clear the alarm
indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages can be acknowledged by explicitly setting
UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages. “Into
alarm” messages can be acknowledged by explicitly setting
UNACK false.

617
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block

INHSTA Inhibit Status contains packed long values that represent the current
inhibit status of each alarm type configured in the block. For the COUTR
block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10
B11
B12
B13
B14
B15
B16
BAD_P B17
BAD_S B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
BAD

Bit Number* Boolean Connection


(0 to 31) Name Description When True (B32 to B1)
14 BAD_S Secondary point Bad alarm INHSTA.B18
inhibited**
15 BAD_P Primary point Bad alarm INHSTA.B17
inhibited**
22 BAD Bad I/O alarm inhibited** INHSTA.B10
* Bit 0 is the least significant, low order bit.
** Bit is set if 0 < Compound.CINHIB  BAP or INHIB = 1.

INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
 0 = Manual
 1 = Auto
 2 = The M/A state as specified in the checkpoint file.
The block asserts this initial M/A state whenever:
 It is installed into the Control Processor database
 The Control Processor undergoes a reboot operation
 The compound in which it resides is turned on.
 The INITMA parameter is modified via the Integrated Control
Configurator. (The block does not assert INITMA on ordinary
reconfiguration.)
INITMA is ignored if MA has an established linkage.

INITO Initialize Out is set true when any open-cascade situation exists in the
COUTR block. It persists for the duration of the condition, and is set
false again when the condition terminates.

618
21. COUTR – Redundant Contact Output Block B0193AX – Rev AB

IOMOPT FBM Option is a boolean specifying whether FBM connections to the


block exist, where: Values:
0= The block does not transmit the COUT value to FBM points.
1= The block transmits the COUT value to both FBMs’ points
specified by IOM_ID, IOMIDR, and PNT_NO each execu-
tion cycle.

IOM_ID Primary Fieldbus Module Identifier is a configurable string that specifies


the pathname of the primary FBM to which the block is connected.
IOM_ID has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOM_ID configuration. In this case, the 1-12
character ECB block name is sufficient.

IOMIDR Secondary Fieldbus Module Identifier is a configurable string that speci-


fies the pathname of the secondary FBM to which the block is connected.
IOMIDR has the form CompoundName:BlockName, where Com-
poundName is the 1-12 character name of the local compound containing
the ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOMIDR configuration. In this case, the 1-12
character ECB block name is sufficient.

LOCKID Lock Identifier is a string identifying the workstation that has exclusive
write access to the block. LOCKID arbitrates write access to the block
parameters by operator workstations on the network. Set requests to any
of the block’s parameters are honored only if the identifier of the worksta-
tion requesting the changes matches the identifier set in LOCKID.
The lock request message sets LOCKRQ to true and sets LOCKID to the
identifier of the requesting workstation. The corresponding lock release
message sets LOCKRQ to false and LOCKID to null.
LOCKID has the format Letterbug:DeviceName, where Letterbug is the
6-character letterbug of the workstation and DeviceName is the 1 to 6
character logical device name of the Display Manager task.

LOCKRQ Lock Request is a boolean value that is set true or false by a toggling the
LOCK U/L key on the Block Detail Display. Lock Request is a boolean
value that is set true or false by a toggling the LOCK U/L key on the
Block Detail Display. An operator at any workstation can lock and unlock
the block using the LOCK U/L key.
The lock request message sets LOCKRQ to true, sets LOCKID to the
identifier of the requesting workstation, and sets the WLCK bit in the
BLKSTA parameter. Thereafter, set requests to any of the block’s parame-

619
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block

ters are honored (subject to the usual access rules) only if the requesting
workstation’s identifier matches the contents of LOCKID.
The corresponding lock release message sets LOCKRQ to false, sets
LOCKID to null, and resets the WLCK bit.

LOOPID Loop Identifier is a configurable string of up to 32 characters that identi-


fies the loop or process with which the block is associated. It is displayed
on the detail display of the block, immediately below the faceplate.

MA Manual/Auto is a boolean input that controls the block’s operating state:


 0 = False = Manual
 1 = True = Auto
When in Manual, the block output parameter COUT is 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 points in both
FBMs are reported to be in the Failsafe state, or if a connected point in
one of the FBMs is reported to be in the Failsafe state while the other
FBM is failed. MANFS has no effect when MA is linked.

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

OWNER Owner is a string of up to 32 ASCII characters which are used to allocate


control blocks to applications. Attempts to set OWNER are successful
only if the present value of OWNER is the null string, an all-blank string,
or identical 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.

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***

620
21. COUTR – Redundant Contact Output Block B0193AX – Rev AB

Period Length Period Length


5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****
* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec.,
but the PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec.,
but the PERIOD parameter remains 10.
***If the BPC is 0.5 sec., this period is treated internally as 0.5 sec.,
but the PERIOD parameter remains 11.
****If the BPC is not 2.0 sec., this period is treated internally as 5.0
sec., but the PERIOD parameter remains 12.
*****Available in CP40, CP40B, CP60 and later control proces-
sors.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).

PLSOPT Pulse Option allows you to select pulsed operation of the output COUT.
When true, PLSOPT causes a 0-to-1 pulse on COUT for a duration of
WIDTH minutes, every time there is a 0-to-1 transition of the input IN.

PNT_NO Point Number is the FBM point to which the COUTR block is
connected.

PROPT Propagate Error Option is a boolean input that determines whether the
status of IN should be reflected in the Error bit of COUT status. If the
COUTR block is in Auto, a true value of PROPT causes any one of the
following conditions to be reflected as an Error status of COUT:
 Bad status bit in IN parameter
 OOS status bit in IN parameter
 Error status bit in IN parameter
 Any value in the om field of the input source except 1
(ON_SCAN). Any other value in this field indicates that the
source of the connection has been deleted or is in a nonexistent
compound, or there has been a peer-to-peer path failure.
Parameter EROPT is used to control last good value functionality when
PROPT is true and the block is in Auto.

PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. The PRTYPE output of this block
consists only of the following alarm types:
0 = No active alarm
8 = Bad

621
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block

TYPE When you enter “COUTR” or select it from a configurator list, an identi-
fying integer is created specifying this block type.

UNACK Unacknowledge is a boolean output parameter that is set true, for notifica-
tion purposes, whenever the block goes into alarm. It is settable, but sets
are only allowed to clear UNACK to false, and never in the opposite direc-
tion. The clearing of UNACK is normally via an operator “acknowledge”
pick on a default display, user display, or Current Alarms Display, or via a
user task.

WIDTH Pulse Width specifies the duration, in minutes, of output pulses generated
when PLSOPT is true.

622
21. COUTR – Redundant Contact Output Block B0193AX – Rev AB

21.5 Functions
21.5.1 Detailed Diagram

IOMOPT Value
Prim. Returned from
CRBK_P
ECB Prim. FBM
MA Read-
back
Value
PLSOPT WIDTH 1 Sec. Returned from
M CRBK_S
ECB Sec. FBM
Pulsed
IN
Output A COUT

LAST GOOD VALUE 0 CRBK_P


COUT
CRBK_S

Open
Cascade INITO
IN.BAD Detection
IN.OOS OR
IN.Disconnect EROPT = 1 AND

PROPT OR USE LAST GOOD VALUE


Auto AND

IN.BAD EROPT = 2 AND


IN.OOS
IN.Disconnect OR
IN.ERROR

IOMOPT
Prim. ECB OOS AND COUT.OOS
Sec. ECB OOS AND INITO.OOS
CRBK_P.OOS
Prim. ECB Bad
Sec. ECB Bad CRBK_S.OOS
AND
COUT.SECURE
IOMOPT OR BAD
COUT.BAD
Prim. Readback Pt. Bad AND
INITO.BAD
Sec. Readback Pt. Bad
CRBK_P.BAD
CRBK_S.BAD
COUT.SECURE
Manual
Failsafe AND Bad
Detection OR FS BAO AND Alarming
Auto AND
Transition Cycle

Figure 21-2. COUTR Block Operational Diagram

623
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block

21.5.2 Output Processing


Key Parameters: IOM_ID, IOMIDR, PNT_NO, IN, COUT, PLSOPT, WIDTH, IOMOPT
You specify the primary and secondary FBM connections by setting the IOM_ID and IOMIDR
parameters to the names of the primary and secondary ECBs, respectively, and the same point
within the FBMs by the Point Number (PNT_NO) parameter. The COUTR block supports
connection only to redundant FBM240s and redundant DCS FBMs for Migration to Moore
APACS+ systems that use ECB5 (SWTYPE = 5), and to redundant FBM207s or FBM217s. For a
list of other DCS FBMs that provide valid output points for the COUTR block, refer to the DCS
Fieldbus Modules for Migration of Moore APACS+ Systems User’s Guide (B0700BK). For more
information on the FBM207/217, refer to DIN Rail Mounted Subsystem User’s Guide (B0400FA).
If a pair of FBMs are connected to the COUTR block, as specified by an FBM Option
(IOMOPT) of 1, the value in COUT is written to both ECBs, and a flag is set in each ECB that
causes the contents to be written to the FBMs at the next bus output cycle. This transfer of the
value of COUT to the FBMs is the only difference between setting IOMOPT = 0 (no connected
FBMs) and setting IOMOPT = 1 (FBMs connected). COUT is calculated identically in either
case.
The Contact Readback values, CRBK_P and CRBK_S, contain the actual values read back from
the connected primary and secondary FBMs respectively at all times. If there are no connected
FBMs, CRBK_P and CRBK_S are identical to the present value of COUT.

21.5.2.1 Duplicate Output Channel Detection


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 COUTR block, or the duplicate connection may
be desired as part of an elaborate control scheme. The blocks capable of driving digital outputs are
COUT, COUTR, MCOUT, GDEV, MTR, VLV, MOVLV, and MDACT.
The entire database is checked for duplicate digital output channels when any block of one of
these types undergoes one of the following actions:
 The block is installed.
 An ECB connected to this block is installed or reconfigured.
 The IOMOPT parameter is modified.
 The IOM_ID or IOMIDR parameter is modified.
 The variable output point number (PNT_NO) 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.
The ERCODE parameter of the blocks connected to the same output point is set to the string
W59 – DUPLICATE OUTPUT CHANNEL, but the blocks are not set Undefined.
If the block is in Auto, and the last good value conditions described in Section 21.6.3 are not in
effect, then the value of the input IN is transferred to the output COUT.

624
21. COUTR – Redundant Contact Output Block B0193AX – Rev AB

21.5.2.2 Pulsed Output


The block output can be configured to operate as either a sustained output or a pulsed output.
When sustained action is configured (the Pulse Option parameter PLSOPT is 0), any change in
the block output is written to the redundant FBMs each block cycle.
However, when the Pulse Option parameter is true (PLSOPT = 1) and the block is in Auto mode,
any 0-to-1 transition of IN results in a pulsed output, during which COUT is set to 1 and written
to the FBMs for a period of time equal to parameter Pulse Width (WIDTH). WIDTH, which is
expressed in units of minutes, enables dynamic pulse width settings. The values of IN, including
any positive or negative transitions, are ignored during the active WIDTH period. Setting the
block input to 0 does not turn off the pulse during this time.
When the pulse duration expires, the pulse is turned off. The output parameter returns to 0 and is
written to the FBMs. No new pulse can be started until IN has returned to 0, and a new 0-to-1
transition has occurred. If the block is switched to Manual while a pulse is active, the pulse con-
tinues until the pulse timer expires.
When the Pulse Option parameter is true (PLSOPT = 1) and the block is in Manual mode, any 0-
to-1 transition in the block output (COUT) results in a pulsed output, during which the block
output is written to the redundant FBMs for a period of time equal to the parameter Pulse Width
(WIDTH). When the active WIDTH period expires, the output parameter returns to 0 and is
written to the FBMs.
Some digital FBMs also have momentary (pulse) and sustained options on a per-point basis that
you can specify independently from the COUTR block option. Refer to the appropriate Inte-
grated Control Software Concepts document (B0700AG or B0193AW).

21.5.3 Output Initialization


Output initialization occurs when the block initializes. Refer to the appropriate Integrated Control
Software Concepts document (B0700AG or B0193AW) for details about block initialization. The
block output also initializes when recovering from either of the following faults:
 From loss of communications to both FBM modules to recovery of communications
to either FBM module, provided that the readback value in the healthy module has
good status.
 From both readback values having bad status to at least one of the readback values
having good status.
Normally, the block output is initialized to the readback signal from the primary FBM (CRBK_P)
if it is healthy. However, if the primary readback value is bad and the secondary value (CRBK_S)
is healthy, the block output is initialized to CRBK_S.

21.5.4 Cascade Initialization


The COUTR block sets the INITO parameter to request that the upstream logic initializes in any
of these cases:
 When the block initializes or the output initializes to one of the readback values.
 When in Manual mode or transitioning into Auto mode.
 When in Auto mode, and either the block input is in error, the block output is BAD
or OOS, or the block output transitions from BAD or OOS to healthy.

625
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block

 When a healthy block output is in the failsafe state or transitions out of the failsafe
state.

21.5.5 Simulation Mode


The COUTR block can be configured to run in simulation mode when FBMs are not connected
to the block. The simulation option allows testing of control schemes requiring redundant con-
tact outputs without requiring actual I/O hardware connections. When the FBM option
(IOMOPT) is set to 0 (that is, FBMs are not connected), the COUT parameter value is not writ-
ten to a pair of FBMs, but is written to both CRBK_P and CRBK_S each block execution cycle,
simulating actual readback values.
You can use the simulation mode of the COUTR block while the block is in the Auto, Auto
Hold, or Manual mode.

21.6 Bad Input, Out-of-Service, and Error Conditions


21.6.1 Bad Input Conditions
Key Parameters: BAD, COUT, BLKSTA, CRBK_P, CRBK_S, INITO
The status of each side is separately tested. If an FBM is bad, one of two block status bits (FBM or
FBMR) is set. If a readback signal is bad, one of two block status bits (BIO or BIOR) is set.
If both FBMs are bad or both readback signals are bad, the BAD parameter, the bad status of the
block output (COUT.BAD), and the INITO parameter are set in the block.
When either signal becomes healthy, BAD, COUT.BAD, and INITO are cleared, and the block
output is initialized to the healthy readback value.

21.6.2 Out-of-Service Condition


Key Parameters: COUT, CRBK_P, CRBK_S, INITO
When redundant FBMs are connected, the out-of-service (OOS) status of COUT, CRBK_P,
CRBK_S, and INITO are set true if both FBMs are out-of-service. In this case, COUT is secured
and cannot be set. COUT retains its previous value, constituting an additional last good value sit-
uation, in addition to those described in Section 21.6.3.

21.6.3 Error Condition and Last Good Value Functionality


Key Parameters: PROPT, IN, COUT, EROPT
If the Propagate Error Option (PROPT) parameter is true, the Error status bit of COUT is set
true if IN has one or more of the following conditions:
 The Bad status bit of IN is true.
 The Out-of-Service status bit of IN is true.
 The Error status bit of IN is true.
 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 non-
existent compound, or there has been a peer-to-peer path failure.
If the block is in Manual, PROPT is ignored; the Error status bit of COUT is not set true under
any of these conditions.

626
21. COUTR – Redundant Contact Output Block B0193AX – Rev AB

When PROPT is true and the block is in Auto, you may use parameter Error Option (EROPT)
to control last good value functionality. The values of EROPT are as follows:
 EROPT = 0: There is no last good value functionality. COUT is updated normally.
 EROPT = 1: The value of COUT is not updated, and its value from the previous pro-
cessing cycle is used, whenever any one of the first, second, or fourth conditions above
is true.
 EROPT = 2: The value of COUT is not updated, and its value from the previous pro-
cessing cycle is used, whenever any one of the four conditions above is true.
If the block is in Manual, EROPT is ignored.

21.7 Failsafe State


Key Parameters: FS, BLKSTA, MANFS, MA
During each execution cycle, the COUTR block inspects the two ECBs to determine whether the
FBMs have reported the output points in the Failsafe state. A “transition to Failsafe” occurs when
both modules start reporting the point in Failsafe, or when one module starts reporting the point
in Failsafe and the other module is failed. When a Failsafe transition occurs, the COUTR block
sets the Failsafe parameter (FS) true and the BLKSTA.FS status bit true. The block’s output is
read back from the primary FBM, if healthy, or from the secondary FBM if the primary FBM is
failed.
The status bit BLKSTA.FS is true whenever parameter FS is true.
If the block is in Auto when a Failsafe transition occurs, the Failsafe parameter (FS) is set true for
one cycle. Thereafter, FS is false until another transition to Failsafe is detected.
If the block is in Manual when a transition into Failsafe is detected, FS is set true and remains true
for the duration of the Manual mode. If the block is switched to Auto mode, FS is cleared to false.
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 parameter MA is linked.
Failsafe state processing is not performed when no FBM is connected.

21.8 Block Modes


The COUTR block operates in one of three modes: Auto, Manual, and Auto Hold. The
INITMA parameter allows you to specify in which state the block initializes: Auto or Manual.

21.8.1 Auto Mode


When the block is in Auto mode, the following actions are taken:
 The readback parameters, CRBK_P and CRBK_S, are updated from the readback
values and channel status information in the redundant ECBs. The status of each
readback value is marked OOS if its ECB is unhealthy or off-line, or marked BAD if
its ECB is unhealthy or its channel status is set to BAD.
 The block input (IN) is copied to the block output parameter (COUT) each execu-
tion cycle. COUT cannot be set manually, that is, by an OM set operation, when the
block is in Auto mode.

627
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block

 If the block is connected to a pair of redundant FBMs, COUT is written to both


FBMs, provided that the readback signals CRBK_P and CRBK_S are not marked
out-of-service (OOS) or BAD. If one of the readback signals is out-of-service or BAD,
the output is not written to that FBM.
 Because the cascade is considered closed during Auto mode, the INITO output is
cleared.
 If the Bad Alarming Option is enabled (BAO = 1), bad alarming is active while
COUTR is in the Auto mode.

21.8.2 Auto Hold Mode


The block mode is considered in “Auto Hold” mode when the Auto/Manual parameter is in the
Auto state (MA=1) and one of the following is true:
1. The Propagation option is configured (PROPT=1) and the block input is in error
The block input is in error if one of the following is true:
 EROPT is 1 and the block input is bad (BAD), out-of-service (OOS), or has a
broken connection
 EROPT is 2 and the block input is BAD, OOS, has a broken connection, or is
questionable (the ERR status is set).
2. The block output is BAD or OOS.
The block output is BAD if both readback values are bad, and the block output is
OOS when both readback values are OOS.
When the block is in Auto Hold mode, the following actions are taken:
 The readback parameters, CRBK_P and CRBK_S, are updated from the readback
values and channel status information in the redundant ECBs. The status of each
readback value is marked OOS if its ECB is unhealthy or off-line, or marked BAD if
its ECB is unhealthy or its channel status is set to BAD.
 The INITO output is set.
 Alarming is active while the COUTR block is in the Auto Hold mode if the Bad
Alarming Option is enabled (BAO = 1).

21.8.3 Manual Mode


Key Parameters: COUT, MA, INITO
When the COUTR block is in the Manual mode, it does not update the value of the COUT out-
put; COUT is released and becomes settable by an OM set operation. When a redundant pair of
FBMs are connected, the manual value set into COUT is written to both FBMs, provided that
the readback signals CRBK_P and CRBK_S are not marked out-of-service (OOS) or BAD. If one
of the readback signals is out-of-service or BAD, the output is not written to that FBM.
All other output parameters can be set during Manual mode. Ordinarily, you should not set the
value of CRBK_P or CRBK_S, since the parameters would lose the function of continually
reporting the actual readback value from the FBMs.
All of the parameters and status bits that reflect the bad or out-of-service status of the FBM
remain active during Manual mode, and are refreshed every cycle. These are listed in detail in
Section 21.6.1 and Section 21.6.2.

628
21. COUTR – Redundant Contact Output Block B0193AX – Rev AB

Neither PROPT nor EROPT are active during Manual mode.


The cascade is considered open during Manual mode of the COUTR block, and INITO is there-
fore kept true throughout the mode.
Alarming is always active during Manual mode of the COUTR block, provided that the Bad
Alarming Option is enabled (BAO = 1).

21.9 Alarming
The COUTR block supports the Bad I/O alarm type. This section provides a functional overview
of the Bad I/O alarm.
The nomenclature for identical alarm types varies from block to block for historical reasons
involving backward compatibility requirements. The nomenclature for the COUTR block is as
follows:
Table 21-2. Alarm Nomenclature

Default Indicator
Type Option Priority Group Text Display Parameter
I/O Bad BAO = True BAP BAG BAT IOBAD BAD

Detailed descriptions of this alarm type and the following alarm functions is discussed in the
appropriate Integrated Control Software Concepts document (B0700AG or B0193AW).
 Re-alarming of active alarms when the alarm priority (PRTYPE) is changed
 Re-alarming of active alarms when the alarm regeneration timer (AMRTIN) expires

21.9.1 Bad Alarming Overview


Key Parameters: BAO, BAP, BAG, BAT, BAD, AMRTIN
Bad alarming occurs when the Bad Alarm Option (BAO) is set and one or both of the connected
readback values are bad. Bad alarm messages are generated for each readback value independently
when its status is bad (CRBK_P.BAD, CRBK_S.BAD).
When one readback value becomes bad, the COUTR block creates a bad alarm message and
sends it to all devices specified in the bad alarm group (BAG) parameter. The bad alarm message
contains the descriptive text specified in the Bad Alarm Text parameter (BAT) and the loop iden-
tifier (LOOPID). To identify which of the readback values are bad, the message also contains a
“BAD_P” text string if the primary readback value is bad or a “BAD_S” text string if the second-
ary readback value is bad.
When the readback value becomes good, a corresponding return-to-normal message is generated
and sent to all devices in the bad alarm group.
Bad alarm status information, however, is generated only when both readback values are bad.
When both readback values are bad, the COUTR block takes the following actions:
 Sets the bad parameter (BAD) and the corresponding BAD bit of the Alarm Status
parameter (ALMSTA.BAD) true
 Sets the UNACK parameter and the corresponding ALMSTA.UNACK bit true
 Sets the criticality (CRIT) parameter and its corresponding ALMSTA.CRIT field to
the BAP (Bad Alarm Priority) value.

629
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block

 Sets the Priority Type (PRTYPE) parameter and its corresponding ALMSTA.PRTYPE
bit to the Bad alarm type.
When both readback values return to good status, BAD, CRIT, PRTYPE and their corresponding
fields in ALMSTA are cleared.
The UNACK parameter and the ALMSTA.UNACK bit are cleared if one of the following is true:
 The alarm is acknowledged by an OM set operation at either the compound or block
level by setting the compound or block parameter UNACK to 0.
 Both readback values return to a good status and the Inhibit Option (INHOPT) is set
appropriately.
 The block is shut down.
When UNACK is cleared, an Alarm Acknowledge message is generated and sent to all devices in
the bad alarm group.

21.9.2 Inhibiting and Disabling Alarms


Using a combination of the COUTR block parameters INHOPT and INHIB and the compound
parameter CINHIB, you can inhibit bad alarm messages and/or disable bad alarm detection.
When the Bad alarm is inhibited or disabled, an Alarm Disable message is sent to all devices in the
bad alarm group. If the Bad alarm is unacknowledged, an Alarm Acknowledge message is also sent
to the devices. In addition, the ALMSTA.INHIB, INHSTA.BAD, INHSTA.BAD_P, and
INHSTA.BAD_S bits are set.
When the Bad alarm is uninhibited or enabled, a corresponding Alarm Enable message is gener-
ated and sent to the devices belonging to the bad alarm group, the ALMSTA.INHIB bit is
cleared, and the INHSTA parameter is cleared.
The COUTR block also supports alarm reprioritization and regeneration. Refer to the appropri-
ate Integrated Control Software Concepts document (B0700AG or B0193AW) for detailed informa-
tion on inhibiting, disabling, reprioritizing, and regenerating alarms.

630
21. COUTR – Redundant Contact Output Block B0193AX – Rev AB

21.10 Application Diagram

BO01 BO02 RO01 RO02

CALCA
Program

BI02 BI04 BI09 BI11


WIDTH IN
CIN
CIN COUTR
CIN CIN
CIN CIN
CIN
CIN ECB5 ECB5

FBM240 FBM240
FBM241

Feedstock
WIDTH IN

COUTR

ECB5 ECB5
Tank Full
Switch

FBM240 FBM240

Output
Product

Solenoid
Valve

631
B0193AX – Rev AB 21. COUTR – Redundant Contact Output Block

632
22. DEP – Dependent Sequence
Block
This chapter covers the Dependent Sequence, or DEP, block, its features, parameters and
detailed operations.

22.1 Overview
The Dependent Sequence (DEP) block provides sequential control for regulatory feedback appli-
cations at the equipment control level. A DEP block can be used to perform a series of activities,
for example: filling, mixing, and draining the contents of a tank.

22.1.1 I/O Diagram

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)

Figure 22-1. DEP Block I/O Diagram

22.2 Features
The features are:
 Define a sequence of events with High Level Batch Language (HLBL) statements.
 Activate or deactivate other Sequence blocks.
 Activate or deactivate Monitor (MON) blocks.
 Activate or deactivate individual monitor cases of a MON block.
 Control timers in Timer (TIM) blocks to time events.
 Access any shared variable and all parameters of any block present in the system. For
example, a DEP block may be carrying out a function, such as filling a tank. If a Mon-
itor (MON) block detects an off-normal process condition, it can activate an

633
B0193AX – Rev AB 22. DEP – Dependent Sequence Block

Exception (EXC) block to take corrective action. The DEP block is Paused until the
corrective action is complete. When the EXC block becomes Inactive, the DEP block
can finish executing its logic.
 For example, a DEP block may be carrying out a function, such as filling a tank. If a
Monitor (MON) block detects an off-normal process condition, it can activate an
Exception (EXC) block to take corrective action. The DEP block is Paused until the
corrective action is complete. When the EXC block becomes Inactive, the DEP block
can finish executing its logic.
 The DEP block contains standard parameters, user parameters, and a free program-
mable algorithm. Standard parameters govern and represent the operational mode for
the DEP block. All user parameters can be read and written in the free programmable
block’s algorithm.
 The user-defined algorithm consists of:
 Local block variables to be used by the block’s algorithm. They cannot be accessed
from outside the block.
 Subroutines.
 Standard Block Exception Handlers (SBXs) that contain:
 Error handling logic to be executed in order to recover from an operational
error.
 “Transition” logic to be executed when the operational mode of the block
changes from Active/Auto or Active/Semi-Auto to another mode.
 The block’s main section, which can be subdivided into steps.
The options are:
 Restart Manual Auto (RSTMA) specifies the desired value of the MA parameter at
block initialization.
 Restart Active (RSTACT) specifies the desired value of the ACTIVE parameter at
block initialization, where:
 RSTACT = 0: sets ACTIVE to false when the compound is turned on or for a
station reboot.
 RSTACT = 1: sets ACTIVE to true when the compound is turned on or for a
station reboot.
 RSTACT = 2: sets ACTIVE to the value in the checkpoint file for a station reboot
only. Otherwise, ACTIVE remains unchanged.
 Inhibit Option (INHOPT) allows you to specify alarm inhibit options.
 Operational Error Alarm Option (OP_OPT) enables or disables operational error
alarm messages and indications. You can change OP_OPT only by reconfiguring the
block.

634
22. DEP – Dependent Sequence Block B0193AX – Rev AB

22.3 Parameters
Table 22-1. DEP Block Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set blank 1 to 12 chars
TYPE block type integer no-con/no-set 176 DEP
DESCRP descriptor string no-con/no-set blank 1 to 32 chars
PERIOD block sample time short no-con/no-set 1 0 to 13
PHASE block phase number integer no-con/no-set 0 ---
LOOPID loopid string no-con/set blank 1 to 32 chars
MA manual/auto boolean con/set 0 0 to 1
RSTMA restart MA short no-con/set 1 [0|1|2]
ACTIVE sequence block state boolean con/set 0 0 to 1
RSTACT restart ACTIVE short no-con/set 0 [0|1|2]
INHIB alarm inhibit boolean con/set 0 0 to 1
INHOPT inhibit option short no-con/no-set 0 0 to 3
BPCSTM number BPC statements integer no-con/set 100 0-32767
HSCI1 high scale input 1 real no-con/no-set 100.0 specifiable
LSCI1 low scale input 1 real no-con/no-set 0.0 specifiable
DELTI1 change delta input 1 real no-con/no-set 1.0 percent
EI1 eng units input string no-con/no-set % specifiable
HSCO1 high scale output 1 real no-con/no-set 100.0 specifiable
LSCO1 low scale output 1 real no-con/no-set 0.0 specifiable
DELTO1 change delta output 1 real no-con/no-set 1.0 percent
EO1 eng unit output string no-con/no-set % specifiable
MSGGR1-MSGGR4 message groups 1 to 4 short no-con/set 0 1 to 8
BI0001 to BI0024 user lab input boolean con/set 0 0 to 1
II0001-II0008 user lab input long con/set 0 ---
RI0001 to RI0015 user lab input real con/set 0.0 RI1
SN0001 to SN0010 user labels string no-con/set blank ---
OP_OPT operation alarm option boolean no-con/no-set 0 0 to 1
OP_PRI alarm priority integer con/set 5 [1..5]
OP_GRP alarm message group integer no-con/set 1 1 to 8
OP_TXT operation alarm text string no-con/no-set blank 1 to 32 chars
CSPACE code space integer no-con/no-set 0 ---
Non-Configurable Parameters
OUTPUTS
ALMSTA alarm status pack_l con/no-set 0 bit map
BLKSTA block status pack_l con/no-set 0 bit map
BO0001 to BO0016 user lab output boolean con/set 0 0 to 1
CRIT criticality integer con/no-set 0 [0..5]
CSIZE code size integer no-con/no-set 0 ---
INHSTA inhibit status pack_l con/no-set 0 0 to 0xFFFFFFFF

635
B0193AX – Rev AB 22. DEP – Dependent Sequence Block

Table 22-1. DEP Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


IO0001 to IO0005 user lab output long con/set 0 ---
MSGNO message number long con/no-set 0 0 to 2E31-1
OP_ERR operation error long con/no-set 0 ---
PAUSED execution stopped boolean con/no-set 0 0 to 1
PRTYPE priority type integer con/no-set 0 [0..10]
RO0001 to RO0015 user lab output real con/set 0.0 RO1
SBXNO subroutine exception number long con/no-set 0 0 to 5
SC_IND state change indicator long con/no-set 0 ---
STEPNO executed step long con/no-set 0 ---
STMNO executed statement number long con/no-set 0 ---
SUBRNO subroutine number long con/no-set 0 ---
TRACMD trace mode long con/no-set 0 0 to 2
UNACK alarm notification boolean con/no-set 0 0 to 1
DATA STORES
ACHNGE alternate change integer con/no-set 0 -32768 to 32767
ALMOPT alarm options pack_l no-con/no-set 0 0 to 0xFFFFFFFF
BA0001 to BA0004 boolean array 1 to 4 boolean[16] no-con/set 0 16 boolean
DEFINE no config errors boolean no-con/no-set 1 0 to 1
DISBX1 to DISBX5 SBX states boolean no-con/set 1 0 to 1
ERCODE config error string no-con/no-set 0 1 to 43 chars
ERHKEY external reference key integer no-con/no-set -1 ---
FPNBUF pathname buffer char[33] no-con/no-set 0 1 to 33 chars
IA0001 integer array 1 long[16] no-con/set 0 1 to 16 longs
LOCKID lock identifier string no-con/no-set blank 8 to 13 chars
LOCKRQ lock request boolean no-con/set 0 0 to 1
NXTSTM next HLBL statement boolean no-con/set 0 0 to 1
OF_ICM number of bytes ic integer no-con/no-set 0 ---
OWNER owner name string no-con/set blank 1 to 32 chars
RA0001 to RA0002 real array real[16] no-con/set 0.0 1 to 16 reals
RI1 eng range input real[3] no-con/no-set 100,0,1 specifiable
RO1 eng range output real[3] no-con/no-set 100,0,1 specifiable
SBXRQ SBX request short no-con/set 0 1 to 5
STEPMD step mode boolean con/set 0 0 to 1
STEPRQ step request short no-con/set 0 ---
STMRQ statement request long no-con/set 0 ---
SUSPND suspend boolean con/set 0 0 to 1
TIMCNT suspend time real no-con/no-set -2.0 seconds
TOPEVL top evaluation stack integer no-con/no-set -1 ---
TRACRQ trace request short no-con/set 0 ---

22.3.1 Parameter Definitions


ACHNGE Alternate Change is an integer output which is incremented each time a
block parameter is changed via a Set command.
Note: Each time a block parameter is changed via HLBL code, parameter
MSGNO is incremented.

636
22. DEP – Dependent Sequence Block B0193AX – Rev AB

ACTIVE Active shows the current Sequence block state. Writing to this parameter
changes the block state. When ACTIVE = 1, the block is active. When
ACTIVE = 0, the block is inactive.

ALMOPT Alarm Options contains packed long values representing the alarm types
that have been configured as options in the block, and the alarm groups
that are in use. For the DEP block, only the following unshaded bits are
used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
B10 8 7 6 5 4 3 2 1 0
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

Bit Number1
(0 to 31) Configured Alarm Option When True
0 Alarm Group 8 in Use
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use
1.
Bit 0 is the least significant, low order bit.

ALMSTA Alarm Status is a 32-bit output, bit-mapped to indicate the block’s alarm
states. For the DEP block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
B4
OPER B5
STAL B6
B7
B8
B9

CRIT PRTYPE
INH

Bit Number Boolean Connection


(0 to 31)* Name Description When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: See param- ALMSTA.B32–
eter PRTYPE for values ALMSTA.B28
used in the AIN block
5 to 7 CRIT_MSK Criticality; 5 = lowest pri- ALMSTA.B27–
ority, 1= highest ALMSTA.B25
26 STAL State Change Alarm ALMSTA.B6
27 OPER Sequence Operational ALMSTA.B5
Error Alarm
29 INH Alarm inhibit ALMSTA.B3

637
B0193AX – Rev AB 22. DEP – Dependent Sequence Block

Bit Number Boolean Connection


(0 to 31)* Name Description When True (B32 to B1)
30 UNAK Unacknowledged ALMSTA.B2

* Bit 0 is the least significant, low order bit.

BA0001 to BA0004
Boolean Array 1 to 4 are parameters of 16 elements each.

BI0001 to BI0024 Boolean Inputs 1 through 24 are user parameters that can be read in user-
defined monitor case expressions. You cannot assign a value to these
parameters by means of an HLBL statement in a monitor case. You can
optionally assign a label to these inputs to facilitate referencing.

BLKSTA Block Status is a 32-bit output, bit-mapped to indicate the block’s opera-
tional states. For the DEP block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
PAUS B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

SBX

ACT
ON

MA

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
11 MA
Manual(= false)/Auto(= true) BLKSTA.B21
14 UDEF
Undefined BLKSTA.B18
15 ON
Compound On BLKSTA.B17
16 ACT
Active/Inactive BLKSTA.B16
18 PAUS
Paused BLKSTA.B14
19 SBX
Executing Sequence Block BLKSTA.B13
Exception (SBX) Statements
20 WLCK Workstation Lock BLKSTA.B12
* Bit 0 is the least significant, low order bit.

BO0001 to BO0016
Boolean Outputs 1 through 16, are user parameters, and are the evalua-
tion of monitor cases 1 through 16, when active. BO0001 to BO0016 can
be read as an inputs for other monitor cases. You can assign labels to
BO0001 to BO0016, to facilitate referencing.

638
22. DEP – Dependent Sequence Block B0193AX – Rev AB

BPCSTM Basic Processing Cycle Statements determines the number of statements in


the DEP block that are executed per Basic Processing Cycle (BPC), when
the block is in Auto. Its range is 0-32767.

CRIT Criticality is an integer output that indicates the priority, ranging from 1
to 5, of the block’s highest currently active alarm (1 is the highest priority).
An output of zero indicates the absence of alarms.

CSIZE Code Size is the actual size, in bytes, of the code space used by a sequence
block. This value is the size of the sequence block and its associated
sequence code.

CSPACE Code Space is the total number of bytes to be pre-allocated for the
sequence block and its associated sequence code.

DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. In that case, no further processing of the block occurs. To return
DEFINE to a true value, correct all configuration errors and re-install the
block.

DELTI1 Change Delta for Input Range 1 is a real value that defines the minimum
percent of the input range that triggers change driven connections for
parameters in the range of RI1. The default value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.

DELTO1 Change Deltas for Output Range 1 is presently unused.

DESCRP Description is a user-defined string of up to 32 characters that describe the


block’s function (for example, “PLT 3 FURNACE 2 HEATER CON-
TROL”).

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.

EI1 Engineering Units for Input Range 1, as defined by the parameters


HSCI1, LSCI1, and DELTI1. EI1 provides the engineering units text for
the values defined by Input Range 1. “Deg F” or “pH” are typical entries.

639
B0193AX – Rev AB 22. DEP – Dependent Sequence Block

EO1 Engineering Units for Output Range 1, as defined by the parameters


HSCO1, LSCO1, and DELTO1. EO1 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).

ERCODE Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the block’s
DEFINE parameter to be set false, but not the warning situations. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. The block detailed display shows the ERCODE
on the primary page, if it is not null. For the DEP block, the following list
specifies the possible values of ERCODE, and the significance of each
value in this block:

Message Value
“W43 – INVALID PERIOD/ PHASE does not exist for given block
PHASE COMBINATION” PERIOD, or block PERIOD not
compatible with compound PERIOD.
“W44 – INVALID High range value is less than or equal
ENGINEERING RANGE” to low range value.
“W46 – INVALID INPUT The source parameter specified in the
CONNECTION” input connection cannot be found in
the source block, or the source
parameter is not connectable, or an
invalid boolean extension connection
has been configured.
“W48 – INVALID BLOCK The configured value of a block option
OPTION” is illegal.
“W53 – INVALID PARAMETER A parameter value is not in the accept-
VALUE” able range.
“W58 – INSTALL ERROR; A Database Installer error has
DELETE/UNDELETE BLOCK” occurred.

ERHKEY External Reference Location Key is an indexed specification of the loca-


tion type for an external reference (data store for debugging use only).

FPNBUF Full Path Name Buffer contains the full path name of the external refer-
ence (for debugging use only).

HSCI1 High Scale for Input Range 1 is a real value that defines the upper limit of
the measurement ranges. EI1 defines the units. Make the range and units
consistent with the measurement source. A typical value is 100 (percent).

640
22. DEP – Dependent Sequence Block B0193AX – Rev AB

HSCO1 High Scale for Output Range 1 is a real value that defines the upper limit
of the ranges for Output 1. A typical value is 100 (percent). EO1 defines
the units. Make the range and units consistent with those of the output
destination.

IA0001 Integer Array 1 is an array of 16 long integer data stores. There are stan-
dard parameters which can be user labelled.

II0001 to II0008 Integer Inputs 1 through 8 are user parameters that can be read in user-
defined monitor case expressions. You cannot assign a value to these
parameters by means of an HLBL statement in a monitor case. You can
optionally assign a label to these inputs to facilitate referencing. The same
parameters are writable in IND, DEP, EXC block types.

INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting. Alarms can also be inhibited based on the compound parameter
CINHIB.

INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do
not disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the
time the alarm transitions into the inhibited state, clear the
alarm indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.

INHSTA Inhibit Status contains packed long values that represent the actual inhibit
status of each alarm type configured in the block. For the DEP block, only
the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNACK B2
B3
B4
B5
B6
B7
B8
B9
OPER
STAL
INH

641
B0193AX – Rev AB 22. DEP – Dependent Sequence Block

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
26 STAL State Change Alarm INHSTA.B6
27 OPER Sequence Operational Error INHSTA.B5
Alarm
29 INH Inhibit Alarm INHSTA.B3
30 UNACK Unacknowledged INHSTA.B2

* Bit 0 is the least significant, low order bit.

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.

LOOPID Loop Identifier is a configurable string of up to 32 characters which iden-


tifies the loop or process with which the block is associated. It is displayed
on the detail display of the block, immediately below the faceplate.

LSCI1 Low Scale for Input Range 1 is a real value that defines the lower limit of
the measurement ranges. A typical value is 0 (percent). EI1 defines the
units. Make the range and units consistent with those of the measurement
source.

LSCO1 Low Scale for Output Range 1 is a real value that defines the lower limit of
the ranges for Output 1. A typical value is 0 (percent). EO1 defines the
units. Make the range and units consistent with those of the output desti-
nation.

642
22. DEP – Dependent Sequence Block B0193AX – Rev AB

MA Manual Auto is a boolean input that controls the Manual/ Automatic


operating state (0 = false = Manual; 1 = true = Auto). In Auto, the block
can execute HLBL statements. In Manual, the block can execute main sec-
tion statements one at a time by writing to the parameters STEPRQ,
STMRQ, or NXTSTM.

MSGGR1 to MSGGR4
Message Groups 1 through 4 are integer inputs (1 through 8), that direct
alarm messages to one of eight groups of alarm devices.

MSGNO Message Number indicates the number of the last message assigned to a
user string parameter. It is incremented by one each time a message is
assigned, to show updates of SN00xx on the detailed displays. If the
parameter value reaches 2E31-1, the next message number is 0.
Note: Each time a block parameter is changed via a SET command,
parameter ACHANGE is incremented.

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

NXTSTM Next Statement is a nonconfigurable boolean input. When true, NXT-


STM causes the HLBL statement following the current one to be exe-
cuted. After this request has been granted, NXTSTM is reset to false. You
activate this function by selecting the NEXT STMT button in the ALL
CODE display. NXTSTM can occur within a subroutine, within an SBX,
or within a step in the block's main section of code. The block mode
(whether the block is in the Manual, Auto, Semi-Auto, Subr-Trace or
SBX-Trace mode) determines the number of HLBL statements executed.

OF_ICM Offset to the IC Module is an integer representing the number of bytes


from the start of the block to the IC module.

OP_ERR Operational Error shows the operational error number, if any, caused by
the last statement executed. An operational error occurs when the block
cannot recover from an error by itself. This can happen when:
 The error handler SBXs are not present.
 The error handler SBXs are disabled.
 An operational error occurs within an error handler.
When this happens, the block changes to manual mode, OP_ERR is set to
indicate the type of error that has occurred, and statement execution stops
until a request is made through STMRQ, MA, or ACTIVE. Refer to the
Integrated Control Configurator document (B0193AV) for a list of opera-
tional error numbers.

OP_GRP Operational Error Group is an integer input (1 through 8) that directs the
operational alarm message to one of eight groups of alarm devices. You
can change the group number at the workstation.

643
B0193AX – Rev AB 22. DEP – Dependent Sequence Block

OP_OPT Operational Error Alarm Option is a boolean input that enables (1 =


enable = true) or disables (0 = disable = false) operational error alarm mes-
sages and indications. You can change OP_OPT only by reconfiguring the
block.

OP_PRI Operational Error Priority is an integer input, (1 to 5), that sets the prior-
ity level of the operational error alarm (highest priority is 1).

OP_TXT Operational Error Text is a user-defined text string of up to 32 characters


that is part of the operational error alarm message. You can change
OP_TXT only by reconfiguring the block.

OWNER Owner is a string of up to 32 ASCII characters which are used to allocate


control blocks to applications. Attempts to set Owner are successful only
if the present value of Owner is the null string, an all-blank string, or iden-
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.

PAUSED Paused shows when a temporary delay in DEP block execution occurs as a
result of active EXC blocks in the same compound.

PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)
Period Length Period Length
0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****

* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.

644
22. DEP – Dependent Sequence Block B0193AX – Rev AB

***** Available in CP40, CP40B, CP60 and later control processors.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).

PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. The PRTYPE output of this block
includes the following alarm types:
0 = No active alarm
9 = State Alarm

RA0001 to RA0002
Real Array 1 and 2 each define 16 elements for sequence blocks.

RI0001 to RI0015
Real Inputs 1 through 15 are user parameters in all sequence control
blocks but they can only be read in user-defined monitor case expressions.
You cannot assign a value to these parameters by means of an HLBL state-
ment in a monitor case. You can optionally assign labels to these inputs to
facilitate referencing.

RI1 Range Input is an array of real values that specify the high and low engi-
neering scale and change delta of a particular real input. For a given block,
it also forms an association with a group of real input parameters that have
the same designated range and change delta.

RO0001 to RO0015
Real Outputs 1 through 15 are user parameters that you can reference in
the block’s sequence logic. You can optionally assign labels to these out-
puts to facilitate referencing.

RO1 Range Output is an array of real values that specify the high and low engi-
neering scale of a particular real output. For a given block, it also forms an
association with a group of real output parameters that have the same des-
ignated range.

RSTACT Restart Active specifies the desired value of the ACTIVE parameter at
block initialization, where:
 0 sets ACTIVE to 0 (= false = Inactive) when the compound is
turned on or for a station reboot
 1 sets ACTIVE to 1 (= true = Active) when the compound is
turned on or for a station reboot
 2 sets ACTIVE to the value in the checkpoint file for a station
reboot only. Otherwise, ACTIVE remains unchanged.

645
B0193AX – Rev AB 22. DEP – Dependent Sequence Block

RSTMA Restart Manual Auto specifies the desired value of the MA parameter at
block initialization, where:
 0 sets MA to 0 (= false = Manual)
 1 sets MA to 1 (= true = Auto)
 2 leaves MA unchanged.
The block asserts this initial M/A state whenever:
 The compound in which it resides is turned on
 The Control Processor undergoes a restart operation.

SBXNO SBX Number indicates the number of the SBX that is currently executing.
The SBX numbers are fixed (1 and 2 are error handlers, 3 to 5 are state
changes handlers). A value of 0 means no SBX is currently executing.

SBXRQ SBX Request is a nonconfigurable, short integer (1 to 5). When the block
is in the SBX-Trace mode, SBXRQ selects the SBX to be traced. Activate
this function by selecting the EXEC SBX button in the ALL CODE dis-
play. The block ignores out of range values. After granting an SBX request,
the block resets SUBRNO and STMNO to 0. Use the NEXT STMT but-
ton to single-step through the selected SBX.

SC_IND State Change Indicator is a long integer value, that indicates the current
state of the state-change SBXs for the DEP, EXC, and IND blocks.

SN0001 to SN0010
Strings 1 through 10 are parameters that you can designate as the destina-
tion of a SENDMSG statement in the IND sequence logic. The Object
Manager can then retrieve SN0001 to SN0010 for operator display pur-
poses.

STEPMD Step mode is a boolean input. When true, STEPMD indicates the block is
in the step (semi-automatic) mode. In step mode, statement execution
stops at the nearest step boundary, as dictated by the step-labels in the
block’s source code. If a block in Step mode is switched to Manual (MA is
set to false), STEPMD is set to false. If a block in Manual is switched to
Step mode, MA becomes true. In Step mode, the outputs are secured.

STEPNO Step Number indicates the number of the step currently executing.
STEPNO changes as the block crosses a step boundary in the main sec-
tion; it does not change when the block calls a subroutine or executes an
SBX.

STEPRQ Step Request is a nonconfigurable short integer input that specifies the
next HLBL step to be executed in the block’s main section. Execution
begins at the first statement in the step. Activate this function by selecting
the EXEC STEP button in the ALL CODE display. If you enter an out of
range value, the last statement of the block is executed and the IND block
deactivates. The block mode (Manual, Auto, Semi-Auto, or Subr-Trace)
determines the number of HLBL statements executed.

646
22. DEP – Dependent Sequence Block B0193AX – Rev AB

STMNO Statement Number indicates the number of the statement currently exe-
cuting. When the statement finishes execution, STMNO is set to the
number of the next statement dictated by execution flow.

STMRQ Statement Request is a nonconfigurable long integer input that specifies


the next HLBL statement to be executed in the block's main section. Acti-
vate this function by selecting the EXEC STMT 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 (Man-
ual, Auto, Semi-Auto, or Subr-Trace) determines the number of HLBL
statements executed.

SUBRNO Subroutine Number indicates the number of the subroutine currently


executing, if any. The subroutine number is determined by its position in
the block’s source file. A value of 0 means no subroutine is currently
executing.

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

TRACRQ Trace Request is a nonconfigurable, short integer. When the block is in


Manual, TRACRQ determines whether the block is set into the Subr-
Trace or SBX-Trace mode, or is out of trace mode. After granting the
request, the block resets TRACRQ to 0. The parameter values map to the
Trace modes as follows:
0 Request granted
1 Into Subr-Trace mode
2 Into SBX-Trace mode
any other value Out of Trace mode

647
B0193AX – Rev AB 22. DEP – Dependent Sequence Block

Enter Trace mode by selecting either SUBR TRACE or SBX TRACE in


the ALL CODE display. Selecting the TRACE field in the faceplate gets
you out of 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.

22.4 Detailed Operation


A DEP block can be in the Active, Paused, or Inactive state. When Active (and not Paused), and
the compound is on, the block is processed. When Inactive or Paused, the block is not processed.
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.

648
22. DEP – Dependent Sequence Block B0193AX – Rev AB

In the modes Active/Auto and Active/Step, the block can handle operational errors. Two standard
block exception handlers (SBXs) are supported for error handling.
SBX Number SBX Function
1 System error handler, OP_ERR = no user error
2 User error handler, OP_ERR = 2000..3000

If an operational error occurs, the block sets the parameter OP_ERR to indicate the cause of the
problem. If the corresponding error handling SBX is not present, or it is disabled, the block
switches to Manual and alarming takes place, provided the alarm option is set.
However, if the SBX is present and enabled, the value of OP_ERR is saved in the next process
scan, alarming is suppressed, no switch to Manual takes place, and the SBX statements are exe-
cuted.
Upon completion of the SBX, the block either executes the erroneous statement again, or resumes
statement execution at the statement following the erroneous one, depending on whether the last
executed SBX statement was “RETRY” or “ENDEXCEPTION”.
No additional error handling is possible while the block is executing an error handler SBX.
In the modes Active/Auto and Active/Step the block is capable of reacting to state changes which
are forced upon the block from outside. Three standard block exception handlers are supported
for state change handling. See the following table.

SBX Number SBX Function


3 Transition logic for switch to Inactive
4 Transition logic for switch to Manual
5 Transition logic for switch to Paused

If the block is not Paused when the block mode changes from Active/Auto or Active/Step to Inac-
tive, Manual, or Paused, it executes the statements of the corresponding SBX. During execution
of these statements, the block assumes an interim mode: To_Inactive, To_Manual, or To_Paused.
However, if the block is Paused and Active/Auto when the block is switched to Manual or to Inac-
tive, it cannot execute a To_Manual SBX or a To_Inactive SBX.
If an operational error occurs during the execution of a To_Manual SBX or a To_Paused SBX, the
DEP block is deactivated.
All statements are supported within SBXs. Error handling is also possible while the block is exe-
cuting a state change SBX.
In the Auto and Step modes, the block secures its output parameters. The block algorithm is
responsible for updating the output parameters. External sources (applications and other blocks)
cannot write values to block output parameters.
You can alter the order of statement execution while the block is in the Auto state. You can specify
a new starting location by writing a statement number to the STMRQ parameter from a default
or user-defined display.
You can change the block Auto/Manual state from external sources such as: user-defined and
default displays, other blocks, and other applications.

649
B0193AX – Rev AB 22. DEP – Dependent Sequence Block

If a statement is in execution when you request a state change, the statement’s execution is com-
pleted as if it had begun in the requested state. Then any following statements are executed as
appropriate for the requested state.
In Manual, the block executes the main section statements one at a time by writing to parameters
STEPRQ, STMRQ, or NXTSTM. STEPRQ and STMRQ alter the order of execution. If more
than one are set at the same time, only a single request is granted. The priority in decreasing order
is: step, statement, next statement.
The parameter STMNO indicates the number of the statement currently executing. When the
statement finishes execution, STMNO is set to the number of the next statement dictated by exe-
cution flow. That statement is not executed unless requested.
A statement that requires several BPCs to execute, such as a WAIT statement, need only be
requested once to complete the statement’s execution.
When the requested statement is a call-subroutine statement the request causes the execution of
all of the statements of that subroutine (and all of its nested subroutines, if any).
In the Manual state, the block does not secure its output parameters. External sources (other
blocks and applications) can write values to the block’s output parameters.
Sequential control block parameters may be updated by the block algorithm while the block is in
Manual.
The Subr-Trace and SBX-Trace modes enable you to single step through statements of subrou-
tines and SBXs. You can switch the block into one of the Trace modes only when the block is in
the Active/Manual state.
Once in the Subr-Trace mode, you “select” a subroutine by requesting a call-subroutine statement
in the block’s main section. The block is idle before the first statement in the requested subrou-
tine. You can then single-step through the subroutine statements by toggling the
NXTSTM parameter. Step-req and statement-req cause the execution of a single statement in the
block’s main section.
When you switch into the SBX-Trace mode, the block environment (that is, step, subroutine,
statement number) is saved. The block returns to this environment when you exit the SBX-Trace
mode.
Once in the SBX-Trace mode, you “select” an SBX by setting the SBXRQ parameter to a value of
1 to 5. The block ignores out of range values. When you select an SBX, the block idles at the first
statement within that SBX. You can then single-step through the SBX statements by toggling the
NXTSTM parameter. The block ignores step- and statement- requests while it is in the
SBX-Trace mode.
In the Manual, Subr-Trace, and SBX-Trace modes, the block does not secure its output parame-
ters. External sources (other blocks and applications) can write values to the block’s outputs.
While the block is in Manual, the DEP block algorithm can update user parameters after a step-,
statement-, or next_stm request.
The DEP block does not execute statements while it is Inactive or Paused. An DEP block goes to
the Inactive state when one of the following conditions occurs:
 The last statement of the block’s main section is executed.
 An EXIT statement is executed.
 Another Sequence block executes an ABORT statement.
 The ACTIVE parameter value is toggled to Inactive.

650
22. DEP – Dependent Sequence Block B0193AX – Rev AB

 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. Refer to the appropriate Inte-
grated Control Software Concepts document (B0700AG or B0193AW).
All control blocks scheduled in any given BPC are processed in the following order:

1BPC

extension
Compound A Continuous MON/TIM EXC DEP/IND Continuous
Compound B Continuous MON/TIM EXC DEP/IND Continuous
Compound C Continuous MON/TIM EXC DEP/IND Continuous
1 2 3 4

If the block processor cannot process all blocks in a scheduled BPC, there is a Basic Processing
Cycle (BPC) overrun.
See High Level Batch Language (HLBL) User’s Guide (B0400DF) for a definition of the HLBL
syntax and semantics and the sequence compiler related limits.

651
B0193AX – Rev AB 22. DEP – Dependent Sequence Block

652
23. DGAP – Differential Gap Block
This chapter describes the Differential Gap controller block, or DGAP, its features, parameters
and detailed operations.

23.1 Overview
The Differential Gap controller block, DGAP, adjusts two Boolean outputs, OUTINC and
OUTDEC, as the measurement input varies from the setpoint by a distance set by the block’s
GAP parameter (Figure 23-1 and Figure 23-2). The outputs normally control on/off valves or
other discrete devices.

Output Option
Tristate

-- OUTDEC

+ ERROR Differential
Gap
Bistate
Setpoint Generator

Measurement ++ OUTINC

Alarming Alarm Messages and Indicators

Figure 23-1. DGAP Block I/O Diagram

OUTINC 1 TRISTATE
0
1
OUTDEC 0 Time
OUTINC 1 BISTATE
0
1
OUTDEC 0 Time
Figure 23-2. DGAP Tristate and Bistate Typical Operation

653
B0193AX – Rev AB 23. DGAP – Differential Gap Block

23.2 Features
The features are:
 Manual/Auto (MA) control of the outputs, which can be initiated by a host process or
another block
 Auto and Manual latch switch inputs (AUTSW and MANSW) that force the block to
be switched to Auto or Manual
 Local/Remote (LR) setpoint source selection, the ability to lock out setpoint operator
changes, and the ability to secure against any write access to the LR parameter.
 Local and Remote latch switch inputs (LOCSW and REMSW) that force the block to
be switched to Local or Remote
 Bad inputs detection and handling
 Automatic cascade handling that includes:
 Initialization output connection parameter that provides proper coordination and
initialization of cascade schemes
 Back calculation of the setpoint input for the upstream block, to provide bumpless
cascade operation when the cascade is open loop.
The options are:
 Setpoint Tracking Option (STRKOP) forces the setpoint to track the measurement
signal. STRKOP takes this action when the LR parameter has transitioned in either
direction and 1) either the output is in Manual or a cascade is broken (a downstream
block is in open loop - INITI true) or the block is in Manual, or 2) when the block is
in Manual only. STRKOP is not performed if any measurement data errors are
detected. This feature allows bumpless return to automatic control when the DGAP
block returns to closed-loop operation.
 Manual if Bad Option (MBADOP) is a manual override feature. It sets the unlinked
MA input to manual (thereby forcing the output state to manual), if the Measurement
or Initialization In (or optionally Remote Setpoint) is disconnected, bad, or off-scan.
A return to Auto requires external intervention.
 Measurement Alarming Option (MALOPT) provides absolute alarming of the mea-
surement during auto operation. This option also provides standard alarm
notification and reporting features.
 Deviation Alarm Option (DALOPT) enables (when true) deviation alarming of the
measurement - setpoint (MEAS  SPT) deviation.
 Manual Alarming Option (MANALM) allows you to invoke all configured alarm
options while the block is in manual. Otherwise, alarming is normally performed only
in Auto.
 High-High Alarm Option (HHAOPT) enables High-High and Low-Low absolute
alarming for the measurement input, or disables absolute alarming altogether. Each
alarm triggers an indicator and text message
 Inhibit/Disable (INHOPT) alarming.
 Mode Option (MODOPT) allows you to select whether the block, when it is in Auto,
operates in the BISTATE or the TRISTATE mode.

654
23. DGAP – Differential Gap Block B0193AX – Rev AB

 Control Error Option (CEOPT) allows you to enable, or disable, the block’s implicit
Hold action when it detects an error (ERR) in the MEAS input.
 Propagate Error Option (PROPT) gives you the option of propagating the error
(ERR) status bit from the MEAS input to the block’s OUTDEC and OUTINC out-
put parameters.
 Initialize Local/Remote (INITLR) is an integer input specifying the desired state of
the LR input during initialization.
 Initialize Manual/Auto (INITMA) specifies the desired state of the MA input during
initialization.

23.3 Parameters
Table 23-1. DGAP Block Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set blank 1 to 12 chars
TYPE block type integer no-con/no-set 11 DGAP
DESCRP descriptor string no-con/no-set blank 1 to 32 chars
PERIOD block sample time short no-con/no-set 1 0 to 13
PHASE block phase number integer no-con/no-set 0 ---
LOOPID loopid string no-con/set blank 1 to 32 chars
MEAS process input real con/set 0.0 RI1
HSCI1, HSCI2 high scale 1 and 2 real no-con/no-set 100.0 specifiable
LSCI1, LSCI2 low scale 1 and 2 real no-con/no-set 0.0 specifiable
DELTI, DELTI2 change delta 1 and 2 real no-con/no-set 1.0 percent
EI1-EI2 eng units input 1 and 2 string no-con/no-set % specifiable
PROPT propagate error Boolean no-con/no-set 0 0 to 1
SPT setpoint real con/set 0.0 RI1
MODOPT control mode option short no-con/no-set 2 [2,3]
GAP control dead zone real con/set 0.0 [0..]RI2
GAPDB gap deadband real no-con/set 0.0 [0..]RI2
MA manual/auto Boolean con/set 0 0 to 1
INITMA initialize MA short no-con/no-set 1 [0|1|2]
MBADOP manual bad option short no-con/no-set 0 [0|1|2]
MANSW manual switch Boolean con/set 0 0 to 1
AUTSW auto switch Boolean con/set 0 0 to 1
CEOPT control error option short no-con/no-set 1 0 to 2
HOLD hold mode Boolean con/set 0 0 to 1
INITI initialize in short con/set 0 0 to 1
LR local/remote Boolean con/set 0 0 to 1
INITLR initialize LR short no-con/no-set 2 [0|1|2]
LOCSP local setpoint Boolean no-con/no-set 0 0 to 1
LOCSW local switch Boolean con/set 0 0 to 1
REMSW remote switch Boolean con/set 0 0 to 1

655
B0193AX – Rev AB 23. DGAP – Differential Gap Block

Table 23-1. DGAP Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


RSP remote setpoint real con/set 0.0 RI1
STRKOP setpoint track option short no-con/no-set 0 [0|1|2]
MANALM manual alarm option short no-con/no-set 1 0 to 1
INHOPT inhibit option short no-con/no-set 0 0 to 3
INHIB alarm inhibit Boolean con/set 0 0 to 1
INHALM inhibit alarm pack_b con/set 0 0 to 0xFFFF
MEASNM meas alarm name string no-con/no-set blank 1 to 32 chars
MALOPT meas alarm option short no-con/no-set 0 0 to 3
MEASHL meas high alarm limit real con/set 100.0 RI1
MEASHT mea high alarm text string no-con/no-set blank 1 to 32 chars
MEASLL meas low alarm limit real con/set 0.0 RI1
MEASLT meas low alarm text string no-con/no-set blank 1 to 32 chars
MEASDB meas alarm deadband real no-con/set [0.0 RI1
MEASPR meas alarm priority integer con/set 5 [1 to 5]
MEASGR meas alarm group short no-con/set 1 [1 to 8]
DALOPT deviation alarm option short no-con/no-set 0 0 to 3
HDALIM high deviation limit real con/set 100.0 RI1
HDATXT high deviation alarm text string no-con/no-set blank 1 to 32 chars
LDALIM low deviation limit real con/set -100.0 RI1
LDATXT low deviation alarm text string no-con/no-set blank 1 to 32 chars
DEVADB deviation alarm deadbd real no-con/set [0.0 RI1
DEVPRI deviation alarm prior integer con/set 5 [1 to 5]
DEVGRP deviation alarm group short no-con/set 1 [1 to 8]
HHAOPT high-high option short no-con/no-set 0 0 to 3
HHALIM high-high limit real con/set 100.0 RI1
HHATXT high-high alarm text string no-con/no-set blank 1 to 32 chars
LLALIM low-low alarm limit real con/set 0.0 RI1
LLATXT low-low absolute text string no-con/no-set blank 1 to 32 chars
HHAPRI high-high priority integer con/set 5 [1 to 5]
HHAGRP high-high group short no-con/set 1 [1 to 8]
AMRTIN alarm regeneration timer integer no-con/no-set 0 0 to 32767 s
NASTDB alarm deadband timer long integer no-con/no-set 0 0-2147483647 ms
NASOPT nuisance alarm suppres- short no-con/no-set 0 0 to 2
sion option
Non-Configurable Parameters
OUTPUTS
ALMSTA alarm status pack_l con/no-set 0 0 to 0xFFFFFFFF
BCALCO back calc out real con/no-set 0.0 RI1
BLKSTA block status pack_l con/no-set 0 0 to 0xFFFFFFFF
CRIT criticality integer con/no-set 0 [0 to 5]
ERROR control error real con/no-set 0.0 RI1
HDAIND high deviation indicator Boolean con/no-set 0 0 to 1
HHAIND high-high absolute indicator Boolean con/no-set 0 0 to 1
INHSTA inhibit status pack_l con/no-set 0 0 to 0xFFFFFFFF
INITO initialize out short con/no-set 0 0 to 1

656
23. DGAP – Differential Gap Block B0193AX – Rev AB

Table 23-1. DGAP Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


LDAIND low deviation indicator Boolean con/no-set 0 0 to 1
LLAIND low-low alarm indicator Boolean con/no-set 0 0 to 1
MEASHI meas high alarm indicator Boolean con/no-set 0 0 to 1
MEASLI meas low alarm indicator Boolean con/no-set 0 0 to 1
OUTDEC output decrease Boolean con/no-set 0 0 to 1
OUTINC output increase Boolean con/no-set 0 0 to 1
PRTYPE priority type integer con/no-set 0 [0 to 6]
QALSTA quality status pack_l con/no-set 0 0 to 0xFFFFFFFF
UNACK alarm notification Boolean con/no-set 0 0 to 1
DATA STORES
ACHNGE alternate change integer con/no-set 0 -32768 to 32767
ALMOPT alarm options pack_l no-con/no-set 0 0 to 0xFFFFFFFF
DEFINE no config errors Boolean no-con/no-set 1 0 to 1
ERCODE config error string no-con/no-set 0 1 to 43 chars
LOCKID lock identifier string no-con/no-set --- 8 to 13 chars
LOCKRQ lock request Boolean no-con/set 0 0 to 1
OWNER owner name string no-con/set blank 1 to 32 chars
PERTIM period time real no-con/no-set 0.1 ---
PRSCON present control short no-con/no-set 0 1 to 3
RI1-RI2 eng range input real[3] no-con/no-set 100,0,1 specifiable

23.3.1 Parameter Definitions


ACHNGE Alternate Change is an integer output which is incremented each time a
block parameter is changed via a Set command.

ALMOPT Alarm Options contains values representing the alarm types that have
been configured as options in the block, and the alarm groups that are in
use. For the DGAP block, only the following unshaded bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

Bit Number1
(0 to 31) Configured Alarm Option When True
0 Alarm Group 8 in Use
1 Alarm Group 7 in Use
7 Alarm Group 1 in Use

657
B0193AX – Rev AB 23. DGAP – Differential Gap Block

Bit Number1
(0 to 31) Configured Alarm Option When True
16 Low Absolute Alarm Configured
17 High Absolute Alarm Configured
20 Low deviation Alarm Configured
21 High deviation Alarm Configured
24 Low-Low Absolute Alarm Configured
25 High-High Absolute Alarm Configured
1. Bit 0 is the least significant, low order bit.

ALMSTA Alarm Status is a 32-bit output to indicate the block’s alarm states. For the
DGAP block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNAK B2
B3
B4
B5
B6
B7
B8
B9

CRIT PRTYPE
HMA
HHA

HDA

LMA
LDA
LLA
INH

Bit Boolean
Number Connection
(0 to 31)1 Name Description When True (B32 to B1)
0 to 4 PTYP_MSK Priority Type: See parameter ALMSTA.B32–
PRTYPE for values used in ALMSTA.B28
the DGAP block
5 to 7 CRIT_MSK Criticality; 5 = lowest priority, ALMSTA.B27-
1= highest ALMSTA.B25
16 LMA Low Absolute Alarm ALMSTA.B16
17 HMA High Absolute Alarm ALMSTA.B15
20 LDA Low Deviation Alarm ALMSTA.B12
21 HDA High Deviation Alarm ALMSTA.B11
24 LLA Low-Low Absolute Alarm ALMSTA.B8
25 HHA High-High Absolute Alarm ALMSTA.B7
29 INH Alarm inhibit ALMSTA.B3
30 UNAK Unacknowledged ALMSTA.B2
1. * Bit 0 is the least significant, low order bit.

AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new

658
23. DGAP – Differential Gap Block B0193AX – Rev AB

unacknowledged alarm condition and its associated alarm message is gen-


erated.

AUTSW Auto Switch is a Boolean input that, when true, overrides the MA and
INITMA parameters, and drives the block to the Auto state. If both
MANSW and AUTSW are true, MANSW has priority.

BCALCO Back Calculation Output is a real output that is always equal to the Mea-
surement input except in the following situations, where it is equal to the
setpoint:
 The block is transitioning from Local to Remote mode on this
cycle.
 MEAS has Bad status.
 MEAS has Out-of-Service status.
 MEAS has Error (ERR) status.
 MEAS is experiencing source connection problems.
With V4.2 and later software, BCALCO contains the initialization output
which was formerly contained in the INITO parameter. You connect this
parameter (BCALCO) to the BCALCI input of upstream blocks so that
these upstream blocks can sense when this block is open.

BLKSTA Block Status is a 32-bit output that indicates the following block opera-
tional states. For the DGAP block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
STRK B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
MAO
LRO

TRK
HLD

CTL
ON

MA
LR

Boolean
Bit Number* Connection
(0 to 31) Name Description When True (B32 to B1)
5 CTL Controlling BLKSTA.B27
6 TRK Tracking BLKSTA.B26
7 HLD Holding BLKSTA.B25
9 STRK Setpoint Tracking BLKSTA.B23
10 LR Local(= false)/Remote(= BLKSTA.B22
true)
11 MA Manual(= false)/Auto(= BLKSTA.B21
true)
14 UDEF Undefined (Inverse of BLKSTA.B18
DEFINE)

659
B0193AX – Rev AB 23. DGAP – Differential Gap Block

Boolean
Bit Number* Connection
(0 to 31) Name Description When True (B32 to B1)
15 ON Compound On BLKSTA.B17
20 WLCK Workstation Lock BLKSTA.B12
25 LRO Local/Remote Override BLKSTA.B7
26 MAO Manual/Auto Override BLKSTA.B6
* Bit 0 is the least significant, low order bit.

CEOPT Control Error Option is a short integer that specifies how the block
responds to the MEAS input when it is in error. To provide backward
compatibility, CEOPT defaults to 1. CEOPT has a range of 0 to 2 where:
0= The block takes no implicit Hold action when it detects a con-
trol error.
1= The block goes to the Hold state if, while MBADOP = 0,
MEAS: (a) has its BAD status bit set true; (b) has its Out-of-
Service status bit set true; (c) is experiencing peer-to-peer path
failure.
2= The block goes to the Hold state if, while MBADOP = 0,
MEAS meets any of the conditions described for CEOPT = 1,
or if MEAS has its ERR status bit set true.

CEOPT is independent of the propagate error option, PROPT, and does


not affect the external logical input, HOLD. The HOLD input, when
true, still drives the block into the Hold state whenever the block is in
Auto (and MBADOP = 0).

CRIT Criticality is an integer output that indicates the priority, ranging from 1
to 5, of the block’s highest currently active alarm (1 is the highest priority).
An output of zero indicates the absence of alarms.

DALOPT Deviation Alarm Option is a short integer input that enables High and
Low deviation alarming of the deviation (MEAS  SPT), or disables
alarming altogether.
0 = No alarming
1 = High and Low deviation alarming
2 = High deviation alarming only
3 = Low deviation alarming only
You can change DALOPT only by reconfiguring the block.

DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. In that case, no further processing of the block occurs. To return
DEFINE to a true value, correct all configuration errors and re-install the

660
23. DGAP – Differential Gap Block B0193AX – Rev AB

block. DEFINE is the inverse of undefined (UDEF) in the BLKSTA


parameter.

DELTI1 to DELTI2
Change Delta for Input Range 1 or 2 is a real value that defines the mini-
mum percent of the input range that triggers change driven connections
for parameters in the range of RI1 or RI2. The default value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.

DESCRP Description is a user-defined string of up to 32 characters that describe the


block’s function (for example, “PLT 3 FURNACE 2 HEATER CON-
TROL”).

DEVADB Deviation Alarm Deadband is a real, in MEAS units, that applies to both
High and Low Deviation Limits.

DEVGRP Deviation Group is a short integer input that directs deviation alarm mes-
sages to one of eight groups of alarm devices.

DEVPRI Deviation Priority is an input from 1 to 5 that sets the priority level of the
deviation alarm (1 is the highest priority).

EI1 to EI2 Engineering Units for Input Ranges 1 and 2, as defined by the parameters
HSCI1 to HSCI2, LSCI1 to LSCI2, and DELTI1 to DELTI2. EI1 to EI2
provide the engineering units text for the values defined by Input Ranges
1 and 2. “DEG F” or “PH” are typical entries. EI1 is used with MEAS and
SPT and EI2 is used with the GAP.

ERCODE Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the block’s
DEFINE parameter to be set false, but not the warning situations. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. The block detailed display shows the ERCODE
on the primary page, if it is not null. For the DGAP block, the following
list specifies the possible values of ERCODE, and the significance of each
value in this block:

Message Value
“W43 – INVALID PHASE does not exist for given block
PERIOD/PHASE COMBI- PERIOD, or block PERIOD not com-
NATION” patible with compound PERIOD.

661
B0193AX – Rev AB 23. DGAP – Differential Gap Block

Message Value
“W44 – INVALID ENGI- High range value is less than or equal
NEERING RANGE” to low range value.
“W46 – INVALID INPUT The source parameter specified in the
CONNECTION” input connection cannot be found in
the source block, or the source parame-
ter is not connectable, or an invalid
Boolean extension connection has been
configured.
“W48 – INVALID BLOCK The configured value of a block option
OPTION” is illegal.
“W53 – INVALID A parameter value is not in the accept-
PARAMETER VALUE” able range.
“W58 – INSTALL A Database Installer error has occurred.
ERROR;
DELETE/UNDELETE
BLOCK”

ERROR Error is a real output that equals Setpoint minus Measurement. ERROR
can be sourced to other blocks.

GAP Gap is a real input defining the size of the region the Measurement may
traverse without activating either of the outputs. The defined region is
always placed symmetrically about the zero error level. This parameter
sizes a symmetric envelope (around the selected setpoint), that determines
the measurement level that activates one of the outputs. GAP has the same
relative units as MEAS and SPT.

GAPDB Gap Deadband is a real value applied to both extremes of the gap. It has
no function in the bi-state mode, where the gap itself functions as a dead-
band. However, in the tri-state mode, GAPDB is the deadband for each of
the two switch elements. It has the same relative units as MEAS and SPT.
Configure a value large enough to prevent the outputs OUTDEC and
OUTINC from chattering. Also, see “GAP and GAPDB Parameter Vali-
dation” on page 682.

HDAIND High Deviation Alarm Indicator is a Boolean output set true when the
measurement exceeds the setpoint by more than the deviation limit
HDALIM. When the measurement passes back through the DEVADB
deadband, the block sets HDAIND to false.

HDALIM High Deviation Alarm Limit is a real input that establishes the amount by
which the measurement must exceed the setpoint to initiate a high devia-
tion alarm and set the High Deviation Alarm Indicator, HDAIND, true.

HDATXT High Deviation Alarm Text is a user-configurable text string of up to 32-


characters, output with the alarm message to identify the alarm.

662
23. DGAP – Differential Gap Block B0193AX – Rev AB

HHAGRP High-High Absolute Alarm Group is a short integer input that directs
High-High Absolute alarm messages to one of eight groups of alarm
devices.

HHAIND High-High Alarm Indicator is a Boolean output set true when the block-
dependent parameter value (generally the measurement input) exceeds the
high-high absolute alarm limit (HHALIM). HHAIND is set to false when
the value is less than HHALIM. Once the Indicator is set true, it does not
return to false until the value falls below the limit less a deadband.

HHALIM High-High Absolute Alarm Limit is a real input that defines the value of
the measurement that triggers a High-High alarm.

HHAOPT High-High Alarm Option is a short integer input that enables High-High
and Low-Low absolute alarming for alarming of a block-dependent value,
generally the measurement input, or disables absolute alarming altogether.
Each alarm triggers an indicator and text message.
0 = No alarming
1 = High-High and Low-Low alarming
2 = High-High alarming only
3 = Low-Low alarming only

HHAPRI High-High Absolute Priority is an integer input from 1 to 5 that sets the
priority level of the high-high absolute alarm (1 is the highest priority)

HHATXT High-High Absolute Alarm Text is a user-defined text string of up to 32


characters, sent with the high-high absolute alarm message to identify it.

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

Bit Number* Boolean Connection


(0 to 15) Description When True (B16 to B1)
0 Inhibit Low Absolute Alarm INHALM.B16

663
B0193AX – Rev AB 23. DGAP – Differential Gap Block

Bit Number* Boolean Connection


(0 to 15) Description When True (B16 to B1)
1 Inhibit High Absolute Alarm INHALM.B15
4 Inhibit Low Deviation Alarm INHALM.B12
5 Inhibit High Deviation Alarm INHALM.B11
8 Inhibit Low-Low Absolute INHALM.B8
Alarm
9 Inhibit High-High Absolute INHALM.B7
Alarm
* Bit 0 is the least significant, low order bit

There are no mnemonic names for the individual bits of INHALM.

INHIB Inhibit is a Boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting. Alarms may also be inhibited based on INHALM and the com-
pound parameter CINHIB.

INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm notification but do
not disable alarm detection.
1= When an alarm is inhibited, disable both alarm notification
and alarm detection. If an alarm condition already exists at the
time the alarm transitions into the inhibited state, clear the
alarm indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” notification.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” notification.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.

INHSTA Inhibit Status contains packed Boolean values that represent the actual
inhibit status of each alarm type configured in the block. For the DGAP
block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNACK B2
B3
B4
B5
B6
B7
B8
B9

HMA
HHA

HDA

LMA
LDA
LLA
INH

664
23. DGAP – Differential Gap Block B0193AX – Rev AB

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
16 LMA Low Absolute Alarm Inhib- INHSTA.B16
ited
17 HMA High Absolute Alarm Inhib- INHSTA.B15
ited
20 LDA Low Deviation Alarm INHSTA.B12
Inhibited
21 HDA High Deviation Alarm INHSTA.B11
Inhibited
24 LLA Low-Low Absolute Alarm INHSTA.B8
Inhibited
25 HHA High-High Absolute Alarm INHSTA.B7
Inhibited
29 INH Inhibit Alarm INHSTA.B3
30 UNACK Unacknowledged Inhibited INHSTA.B2
* Bit 0 is the least significant, low order bit.

INITI Initialization In defines the source block and parameter that would nor-
mally drive this block into initialization. Not used with the DGAP block
since DGAP is always a downstream block.

INITLR Initialize Local/Remote is an integer input that specifies the desired state
of the LR input during initialization, where:
0 = Local
1 = Remote
2 = The LR state specified in the checkpoint file (reboot only)
The block asserts this initial LR state when:
 The block is installed into the Control Processor database.
 The Control Processor undergoes a restart operation.
 The compound in which the block resides is turned on.
The Initialize LR state is ignored if the LR input has an established link-
age, or LOCSW or REMSW are set true.

INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state specified in the checkpoint file (reboot only)
The block asserts this initial M/A state whenever:
 It is installed into the Control Processor database.

665
B0193AX – Rev AB 23. DGAP – Differential Gap Block

 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 Initialize M/A state is ignored if the MA input has an established
linkage or if MANSW or AUTSW is set true.

INITO Initialization Output is set true when:


 The block is in Manual or initializing.
 Permanent or temporary loss of FBM communications occurs.
 The ladder logic in the FBM is not running.
 MMAIND (mismatch indicator) is true.
 DISABL is true.
 RSP (the remote setpoint) is not the setpoint source.
The block clears INITO when none of these conditions exist. You con-
nects this parameter to the INITI input of upstream blocks so that these
upstream blocks can sense when this block is open loop. With V4.2 or
later software, BCALCO contains the initialization output eliminating the
need to configure INITO connections in cascades. However, to preserve
backward compatibility, the INITO 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 INITO Boolean
value has been maintained, but the setting of the handshaking bits, via the
INITI to INITO connection, is eliminated.

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.

LDATXT Low Deviation Alarm Text is a user-defined text string of up to 32-charac-


ter that is output with the alarm message to identify the alarm.

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.

LLATXT Low-Low Absolute Alarm Text is a user-defined text string of up to 32


characters, sent with the low-low absolute alarm message to identify it.

666
23. DGAP – Differential Gap Block B0193AX – Rev AB

LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-char-
acter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.

LOCKRQ Lock Request is a Boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are honored (subject to the usual access rules) only from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set false by any workstation at any time, whereupon a
new LOCKRQ is accepted, and a new ownership workstation identifier
written to LOCKID.

LOCSP Local Setpoint Secure is a Boolean input. When true, LOCSP provides
lockout of user write access to the LR parameter. If LOCSP is configured
true, the block secures LR when it initializes and maintains LR in the
secured state. The LOCSW and REMSW overrides have higher prece-
dence, but LR remains secured when they are no longer asserted.

LOCSW Local Switch is a Boolean input. When true, LOCSW overrides the LR
and INITLR parameters and drives the block to the Local state. If both
LOCSW and REMSW are true, LOCSW has priority.

LOOPID Loop Identifier is a configurable string of up to 32 characters which iden-


tifies the loop or process with which the block is associated. It is displayed
on the detail display of the block, immediately below the faceplate.

LR Local/Remote is a Boolean input that selects the setpoint source (0 = false


= Local; 1 = true = Remote). If LR is set to Remote, the source of the set-
point value is the real input parameter RSP. When LR is set to Local, there
are two possible sources for the setpoint: (a) MEAS or (b) a user settable
input. The choice is based on the conditions of STRKOP and MA, as
described under STRKOP.

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.

MA Manual Auto is a Boolean input that controls the Manual/ Automatic


operating state (0 = false = Manual; 1 = true = Auto). In Auto, given the
measurement value, the block computes the output according to its spe-
cific algorithm. In Manual, the algorithm is not performed, and the out-
put is unsecured. An external program can then set the output to a desired
value.

667
B0193AX – Rev AB 23. DGAP – Differential Gap Block

MALOPT Measurement Alarm Option is an input that enables absolute High and
Low measurement alarming, or disables absolute alarming altogether.
0 = No alarming
1 = High and Low measurement alarming
2 = High measurement alarming only
3 = Low measurement alarming only
You can change MALOPT only by reconfiguring the block.

MANALM Manual Alarm Option is an input which enables and disables configured
alarm options to function in Manual. Normally alarms are processed only
in the Auto mode.
0 = No alarming in Manual
1 = Full alarming in Manual
You can change MANALM only by reconfiguring the block.

MANSW Manual Switch is a Boolean input. When true, MANSW overrides the
MA and INITMA parameters and drives the block to the Manual state. If
both MANSW and AUTSW are true, MANSW has priority.

MBADOP Manual if Bad Option is a manual override feature. When MBADOP is


set to 1 or 2, the block sets the unlinked MA input to manual if it detects
a BAD status bit in the MEAS or INITI input, and when set to 2, it
detects that the Remote Setpoint (RSP) is not healthy (i.e., value status is
BAD or has a broken OM connection). This forces the output state to
manual as long as the BAD status remains. After the BAD status clears,
returning to Auto requires external intervention unless AUTSW is true.
0 = no option enabled
1 = Switch to Manual when MEAS or INITI value status is BAD
2 = Same as option 1, plus switch to Manual when RSP is not healthy
You can change MBADOP only by reconfiguring the block. MBADOP
has the same priority as the MANSW override, and it has precedence over
the AUTSW override. MBADOP has no effect when MA is linked. If any
of the MBADOP conditions are true, the block will be switched to Man-
ual regardless of the MANSW and AUTSW settings.

MEAS Measurement is an input identifying the source of the block’s input, or the
controlled variable.

MEASDB Measurement Alarm Deadband is an input, expressed in MEAS units, that


applies to both High, High-High, Low and Low-Low Alarm Limits.

MEASGR Measurement Group is an input that directs measurement alarm messages


to one of eight groups of alarm devices.

MEASHI Measurement High Alarm Indicator is a Boolean output that is set true
when the measurement exceeds the high alarm limit (MEASHL). When

668
23. DGAP – Differential Gap Block B0193AX – Rev AB

the measurement passes back through the deadband, the block sets
MEASHI to false.

MEASHL Measurement High Alarm Limit is a real input that defines the value of
the measurement that initiates a high absolute alarm.

MEASHT Measurement High Alarm Message Text is a user-defined text string of up


to 32 characters that is output with the alarm message to identify the
alarm. You can only change the message text by reconfiguring the block.

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.

MEASLT Measurement Low Alarm Message Text is a user-defined text string of up


to 32 characters that is output with the alarm message to identify the
alarm. You can only change the message text by reconfiguring the block.

MEASNM Measurement Alarm Name is a user-defined text string of up to 12 charac-


ters that identifies the alarm source in the alarm message. It serves as a
point descriptor label (for example, FURN 37 TEMP).

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

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

NASOPT Nuisance Alarm Suppression Option is a configurable, non-settable short


integer that specifies how the nuisance alarm delay is implemented:
 0 = Suppress nuisance alarms by delaying the Return-to-Normal
(default) by the length of time specified in NASTDB
 1 = Suppress nuisance alarms by delaying alarm detection by the
length of time specified in NASTDB
 2 = Suppress nuisance alarms by delaying both the Alarm Detec-
tion and the Return-to-Normal by the length of time specified in
NASTDB

NASTDB Alarm Deadband Timer is a configurable long integer. Depending on the


value of NASOPT, it either specifies the deadband time interval that must

669
B0193AX – Rev AB 23. DGAP – Differential Gap Block

elapse before an alarm condition is allowed to return to normal, or the


length of a delay-on timer which specifies the amount of time between an
alarm’s detection and the announcement of the alarm. The parameter
value ranges from zero (default, no delay) to 2147483647 ms.

OUTDEC Output Decrease is a Boolean output.


In the Auto bi-state mode, OUTDEC is set true when the Measurement
input goes above the setpoint by more than 1/2 the GAP, and stays true
until MEAS goes below the setpoint by more than 1/2 the GAP.
In the Auto tri-state mode, the block sets OUTDEC true when the Mea-
surement goes above the setpoint by more than 1/2 the GAP, and sets
OUTDEC false when the Measurement passes back through the
((GAP/2) - GAPDB).
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.

OUTINC Output Increase is a Boolean output.


In the Auto bi-state mode, OUTINC is set true when the Measurement
input goes below the setpoint by more than 1/2 the GAP, and stays true
until MEAS goes above the setpoint by more than 1/2 the GAP.
In the Auto tri-state mode, the block sets OUTINC true when the Mea-
surement goes below the setpoint by more than 1/2 the GAP, and sets
OUTINC false when the Measurement passes back through the
((-GAP/2) + GAPDB).
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.

OWNER Owner is a string of up to 32 ASCII characters which is used to allocate


control blocks to applications. Attempts to set Owner successful only if
the present value of Owner is the null string, an all-blank string, or identi-
cal 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.

PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)
Period Length Period Length
0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min

670
23. DGAP – Differential Gap Block B0193AX – Rev AB

Period Length Period Length


2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****

* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.

PERTIM Period Time is the period of the block expressed in seconds.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).

PROPT Propagate Error Option is a Boolean input. When true, PROPT sets the
ERR Status bit of the output parameter if the input to the MEAS parame-
ter is in error while the block is in Auto. The input to the MEAS parame-
ter is in error when:
 Its BAD status bit is set true.
 Its OOS (Out-of-Service) status bit is set true.
 Its ERR status bit is set true.
 It is experiencing peer-to-peer path failure.
If a transition to Manual occurs while the ERR status is true, it remains
true until either a set command is written to that output or until the block
transfers to Auto with the error condition returned to normal.

PRSCON Present Control state is a data store that contains the substates of Auto:
1 = Holding
2 = Tracking
3 = Controlling (not open loop)

671
B0193AX – Rev AB 23. DGAP – Differential Gap Block

PRTYPE Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. The PRTYPE output of this block
includes the following alarm types:
0 = No active alarm
1 = High Absolute
2 = Low Absolute
3 = High-High Absolute
4 = Low-Low Absolute
5 = High Deviation
6 = Low Deviation

QALSTA Quality Status parameter (QALSTA) is a non-configurable packed long


that provides a combination of value record status, block status
(BLKSTA), and alarm status (ALMSTA) information in a single connect-
able output parameter. Available bits for this block are provided below.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

Bit Boolean Connection


Number1 Definition Contents (B32 to B1)
30 Alarms Unacknowledged ALMSTA.UNA QALSTA.B2
29 Alarms Inhibited ALMSTA.INH QALSTA.B3
25 High-High Absolute Alarm ALMSTA.HHA QALSTA.B7
24 Low-Low Absolute Alarm ALMSTA.LLA QALSTA.B8
21 High Deviation Alarm ALMSTA.HDA QALSTA.B11
20 Low Deviation Alarm ALMSTA.LDA QALSTA.B12
17 High Absolute Alarm ALMSTA.HMA QALSTA.B15
16 Low Absolute Alarm ALMSTA.LMA QALSTA.B16
5 Manual BLKSTA.MA QALSTA.B27
2 Uncertain MEAS.ERR status QALSTA.B30
1 Out-of-Service MEAS.OOS status QALSTA.B31
0 Bad MEAS.BAD status QALSTA.B32
1. Bit 0 is the least significant, low order bit.

REMSW Remote Switch is a Boolean input. When true, REMSW overrides the
unlinked LR and INITLR parameters, and drives the block to the Remote
state. If both LOCSW and REMSW are true, LOCSW has priority.

672
23. DGAP – Differential Gap Block B0193AX – Rev AB

RI1 to RI2 Range Input is an array of real values that specify the high and low engi-
neering scale (HSCI - LSCI) and change delta (DELTI) of a particular real
input. For a given block, it also forms an association with a group of real
input parameters that have the same designated range and change delta, as
defined by the parameters HSCI1 to HSCI2, LSCI1 to LSCI2, and
DELTI1 to DELTI2.

RSP Remote Setpoint is the selected setpoint source when LR is set to Remote.
RSP is a connectable, settable, real input. Typically RSP connects to an
upstream block in a cascade scheme. RSP and its source must be expressed
in MEAS units.

SPT Setpoint always represents the active controller setpoint. Setpoint is the
reference variable that is compared with the MEAS input to produce the
ERROR signal. SPT is implemented as a configurable output that deter-
mines its source from the Local/Remote setpoint selector, LR. When LR is
true (Remote), SPT is nonsettable and assumes the Remote Setpoint
(RSP) value. When LR is false (Local), SPT is an unsecured, and thus set-
table, output and the SPT source is the set value. Configure the value you
want the SPT to assume when it first goes to Local. As an output, SPT can
also source the setpoint value to other blocks.
While settable by default, SPT is nonsettable while setpoint tracking is
active. (See STRKOP.)

STRKOP Setpoint Track Option is a short integer input. When active, STRKOP
enables the setpoint to track the measurement input under the following
conditions.
0 = no option enabled
1 = SPT parameter tracks the measurement input when the block is in
Manual, or the cascade is open downstream (Initialization input INITI is
true).
2 = SPT parameter tracks the measurement only when the block is in
Manual.
STRKOP is active only when the setpoint source selector LR is in Local
and Supervisory Enable (SE) is enabled (1).
SPT is nonsettable while setpoint tracking is active. You can change
STRKOP only by reconfiguring the block.

TYPE When you enter “DGAP” or select “DGAP” from the block type list
under Show, an identifying integer is created specifying this block type.

UNACK Unacknowledge is a Boolean output that the block sets to True when it
detects an alarm. It is typically reset by operator action.

673
B0193AX – Rev AB 23. DGAP – Differential Gap Block

23.4 Detailed Operation


In the Auto state, the DGAP block performs on-off control via the outputs, OUTINC and OUT-
DEC. The specific control action depends on the mode option (MODOPT), and the sense of the
ERROR (MEAS  SPT) in relation to the differential gap.
The Measurement has one source; the upstream block output that is linked to the MEAS param-
eter at configuration.

23.4.1 Detailed Diagram


Figure 23-3 is a simplified block diagram that depicts the functional signal flow of the DGAP
block. It shows the forward path of the block as it relates to the various states, logic control sig-
nals, and options represented by toggle switches.

674
23. DGAP – Differential Gap Block B0193AX – Rev AB

LR
LOCSP Manual
LOCSW
REMSW Local MODOPT
Remote SPTRK GAPDB GAP
RSP AUTSW
Local MBADOP
SPT SPT MANSW
Track Tristate HOLD MA
Control Manual
OUTDEC
ERROR
Differential Bistate Auto
MEAS Gap
Hold
Generator

Control Manual
BCALCO
OUTINC
MEAS ~
unreliable Auto
(see BCALCO) Deviation Hold

INHIB
INHALM Limit HDAIND
INHOPT HDALIM
(High
HDATXT
Deviation
Alarming)
DALOPT
DEVADB
DEVPRI Limit LDAIND MANALM
DEVGRP LDALIM (Low MA
LDATXT
Deviation
Alarming) Manual

Auto Output Message


Including:
HHALIM Limit HHAIND
HHAIND, HHATXT
MEASDB (High-High LLAIND, LLATXT
HHATXT Absolute MEASHI, MEASHT
Alarming) MEASLI, MEASLT
HHAOPT HDAIND, HDATXT
HHAPRI LDAIND, LDATXT
HHAGRP LLALIM Limit LLAIND PRTYPE
MEASNM MEASDB (Low-Low CRIT
LLATXT Absolute UNACK
Alarming)

MEASHL Limit MEASHI


MEASDB (High
MEASHT Absolute
Alarming)
MALOPT
MEASPR
MEASGR MEASLL Limit MEASLI
MEASNM MEASDB (Low
MEASLT Absolute
Alarming)

Figure 23-3. DGAP, Detailed Block Diagram

DGAP has two operational modes as selected by the MODOPT parameter:


 BiState Operation
 TriState Operation.

675
B0193AX – Rev AB 23. DGAP – Differential Gap Block

23.4.1.1 BiState Mode


In the BISTATE mode, see Figure 23-4, a single on-off differential switching band controls both
outputs. The GAP parameter establishes the size of this band, sometimes called the differential
gap. GAP is always centered about zero error.

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 23-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).

23.4.1.2 Tristate Mode


In the Tristate mode (Figure 23-5), each of two separate on-off differential switching bands con-
trols one of the outputs. The GAP parameter sets up a deadzone region, centered about zero error,
which separates the two switching bands. The gap deadband parameter, GAPDB, sets the differ-
ential gap of each switch within the deadzone. This deadband prevents the Boolean outputs,
OUTINC and OUTDEC, from oscillating prematurely when the measurement is noisy, by
delaying the clearing of these signals when the error falls inside (deadzone - deadband).

676
23. DGAP – Differential Gap Block B0193AX – Rev AB

Deviation
50 Setpoint - Measurement = Error
40
30
} Deadband = GAPDB
20
10
Dead Zone
GAP 0 SPT
-10
-20
} Deadband = GAPDB
-30
-40
-50

1
OUTINC
0

OUTDEC 0
Time
Figure 23-5. DGAP Tristate Controller Mode

The deadzone and deadband define a region about the setpoint in which the error, can traverse
without switching true either of two Boolean outputs.
OUTINC is true when the error exceeds the deadzone high limit, and is false when the error falls
below the (deadzone high limit - deadband). OUTDEC is true when the error falls below the
deadzone low limit, and is false when the error exceeds the (deadzone low limit + deadband).
With the dual outputs, you can select either increase-increase or increase-decrease controller
action depending on the controller outputs that you select.

23.4.2 Setpoint Control Mode


The setpoint (SPT) parameter is the local setpoint and always represents the active controller set-
point.
The setpoint source selector input, LR (Local/Remote), together with the two overrides, LOCSW
and REMSW, determines the setpoint source at any time:
 When LR is switched to local (false), the block releases the SPT parameter, allowing
any user to input the desired controller setpoint value.
 When LR is switched to Remote (true) with the cascade loop closed, SPT is nonsetta-
ble and takes on the value and status of the remote setpoint input, RSP. RSP is a
connectable parameter that establishes a link to a remote setpoint source. If RSP has
no linkage when LR is true, the block uses whatever value is in the unconnected RSP
parameter.

677
B0193AX – Rev AB 23. DGAP – Differential Gap Block

 The DGAP block also provides the LOCSW and REMSW parameters to drive the
setpoint state to Local or Remote.
When the block restarts, the INITLR configured option specifies the value of the LR parameter,
unless LR is linked, or LOCSW or REMSW are set true.
LOCSP allows the block to secure the LR parameter when the block initializes and to maintain
that secured state, preventing operator changes. LOCSW and REMSW override LOCSP and LR.

23.4.3 Setpoint Tracking


The setpoint track option, STRKOP, forces the DGAP setpoint, SPT, to track the measurement
input, MEAS.
The block performs Setpoint tracking only if the setpoint source selector, LR, is switched to Local
and the block is in Manual. To prevent external manipulation, the tracked setpoint value, SPT, is
nonsettable while setpoint tracking is active.
When the block is switched to Local mode with the block in Manual, the setpoint value depends
on the setpoint tracking option (STRKOP):
 If STRKOP = 1 or 2, the SPT status copies the MEAS value.
 If STRKOP = 0, the SPT value reflects the RSP value at the time the switch to Local
occurred. The block maintains this value as long as it is in Local, unless you change
the SPT value via data access.
To prevent external manipulation, SPT is nonsettable while setpoint tracking is active. While
tracking, the setpoint status reflects the MEAS status.

23.4.4 Auto Control Mode


The DGAP 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 two sub-states: Controlling, and Holding.
In the Controlling substate, the DGAP block activates (or deactivates) the outputs, OUTINC
and OUTDEC, based on the configured control mode and the deviation between SPT and
MEAS.
During Auto operation, the block checks the MEAS input for data errors (off-scan, or BAD,
OOS or ERR status bits set). If an error is detected, the DGAP block, depending on the value of
the CEOPT parameter (see CEOPT definition), may propagate the error to its outputs by setting
the ERR status bit of the outputs, OUTDEC and OUTINC.

23.4.5 Hold Mode


The block goes to Hold if, while MBADOP = 0 and CEOPT = 1 or 2, either the HOLD param-
eter goes true, or a condition required by the CEOPT parameter is met. In the Hold substate the
block holds the process at the last controlled state by setting OUTINC and OUTDEC to false.
When all error conditions are removed, the block returns to the Controlling state to resume on-
off control. Even if MBADOP = 1 or 2, the block goes to the Holding substate if the MA param-
eter is linked.

678
23. DGAP – Differential Gap Block B0193AX – Rev AB

23.4.6 Manual Mode


A state change from Auto to Manual forces the block to set OUTINC, OUTDEC, and all alarm
indicators, false. In the Manual state, DGAP does not perform on-off control and the outputs
become settable.
When the block is switched to Manual, the OUTINC (OUTDEC) status reflects the MEAS/SPT
status at the time the switch occurred. While the block is in Manual, it maintains this status until
you change the output via data access. At that time, the block clears the status.
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 is set true. Likewise, the INITLR
specifies the value of the LR parameter, unless LR is linked, or LOCSW or REMSW is set true.

23.4.7 Alarming
The DGAP block optionally supports absolute, high-high, low-low, and deviation alarming of the
measurement. Configured alarming is always performed in Auto. Alarming is only performed in
Manual if the MANALM option is configured true. The block logs, and generates, alarm mes-
sages if the INHIB input is false.
Unacknowledge (UNACK) is a connectable Boolean output parameter which is set true, for noti-
fication purposes, whenever the block goes into alarm. It is settable, but sets are only allowed to
clear UNACK to false, and never in the opposite direction. The clearing of UNACK is normally
via an operator “acknowledge” pick on a default or user display, or via a user task.
The different types of alarming are discussed below.

23.4.7.1 Inhibit Alarming


Key Parameters: DALOPT, HHAOPT, INHALM, INHIB, INHOPT, MANALM, MALOPT
INHALM is a parameter that is used in conjunction with the CINHIB compound parameter and
the INHIB block parameter to determine which alarm types/points are inhibited in the block. See
“INHIB” on page 664 for its formatting.
The INHOPT parameter specifies the actions taken when alarms are inhibited in the block. See
“INHOPT” on page 664 to determine the possible actions.
HHAOPT enables/disables High-High and/or Low-Low absolute alarming.
MALOPT enables/disables High and/or Low absolute measurement alarming.
DALOPT enables/disables High and/or Low deviation alarming.
Refer to the parameter descriptions for setting HHAOPT, MALOPT, and DALOPT.

679
B0193AX – Rev AB 23. DGAP – Differential Gap Block

23.4.7.2 Absolute Alarming


Absolute alarming checks if MEAS has exceeded a predefined limit. See Figure 23-6.

High Alarm Indicator is set


High-High Alarm Indicator is set
HHALIM {MEASDB
MEASHL
MEAS {MEASDB

GAP

MEASLL
LLALIM
Low-Low Alarm Indicator is set
Low Alarm Indicator is set

Time
Figure 23-6. Absolute Alarming

Four forms of absolute alarming are available in DGAP as described below.

23.4.7.2.1 High-High Absolute Alarming


Key Parameters: HHAIND, HHALIM, HHATXT, MEAS, MEASDB
In High-High Absolute Alarming, MEAS is compared to the high-high absolute alarm limit
(HHALIM). If MEAS is greater than HHALIM, the block sets HHAIND true and outputs an
alarm message that includes the user-defined HHATXT. When MEAS falls to, or below,
HHALIM minus the deadband (MEASDB), the block sets HHAIND to false and outputs a
return-to-normal message.

23.4.7.2.2 Low-Low Absolute Alarming


Key Parameters: LLAIND, LLALIM, LLATXT, MEAS, MEASDB
In Low-Low Absolute Alarming, MEAS is compared to low-low absolute alarm limits
(LLALIM). If MEAS is less than LLALIM, the block sets LLAIND to true and outputs an alarm
message that includes the user-defined LLATXT. When MEAS rises to, or above, LLALIM plus
the deadband (MEASDB), the block sets LLAIND to false and outputs a return-to-normal mes-
sage.

23.4.7.2.3 High Absolute Alarming


Key Parameters: MEAS, MEASDB, MEASHI, MEASHL, MEASHT
In High Absolute Alarming, MEAS is compared to the high absolute alarm limit (MEASHL). If
MEAS is greater than MEASHL, the block sets MEASHI true and outputs an alarm message that
includes the user-defined MEASHT. When MEAS falls to, or below, MEASHL minus the dead-
band (MEASDB), the block sets MEASHI to false and outputs a return-to-normal message.

23.4.7.2.4 Low Absolute Alarming


Key Parameters: MEAS, MEASDB, MEASLI, MEASLL, MEASLT
In Low Absolute Alarming, MEAS is compared to the low absolute alarm limits (MEASLL). If
MEAS is less than MEASLL, the block sets MEASLI true and outputs an alarm message that

680
23. DGAP – Differential Gap Block B0193AX – Rev AB

includes the user-defined MEASLT. When MEAS rises to, or above, MEASLL plus the deadband
(MEASDB), the block sets MEASLI to false and outputs a return-to-normal message.

23.4.7.3 Deviation Alarming


Deviation alarming checks if the ERROR signal (MEAS  SPT) has exceeded the predefined
deviation limits. See Figure 23-7.

High EU
Deviation

SPT

MEAS

Low EU
Time

HDA Alarm Generated

+ Deviation HDA Alarm Clears

High Deviation Alarm Limit


Deadband {

MEAS
Deviation = 0

Deadband {
Low Deviation Alarm Limit
- Deviation
Time LDA Alarm Clears
LDA Alarm Generated
Figure 23-7. Deviation Alarming

Two forms of deviation alarming are available, as described below.

23.4.7.3.1 High Deviation Alarming


Key Parameters: DEVADB, MEAS, HDAIND, HDALIM, HDATXT, SPT
In High Deviation Alarming, the deviation (SPT  MEAS) is compared to the high deviation
alarm limit (HDALIM). If the deviation is greater than HDALIM, the block sets HDAIND true
and outputs an alarm message that includes the user-defined HDATXT. When the deviation falls
to, or below, HDALIM minus the deadband (DEVADB), the block sets HDAIND to false and
outputs a return-to-normal message. The alarm limit field of the messages reports the limit in
absolute terms, rather than using HDALIM, which is a relative quantity (that is, Alarm Limit
Field = Setpoint + HDALIM, rather than Alarm Limit Field = HDALIM).

681
B0193AX – Rev AB 23. DGAP – Differential Gap Block

23.4.7.3.2 Low Deviation Alarming


Key Parameters: DEVADB, LDAIND, LDALIM, LDATXT, MEAS, SPT
In Low Deviation Alarming, the deviation (SPT  MEAS) is compared to the absolute value of
the low deviation alarm limit (LDALIM). If the deviation is less than the absolute value of
LDALIM, the block sets LDAIND true and outputs an alarm message that includes the user-
defined LDATXT. When the deviation rises to, or above, LDALIM plus the deadband
(DEVADB), the block sets LDAIND to false and outputs a return-to-normal message. The alarm
limit field of the messages reports the limit in absolute terms, rather than using LDALIM, which
is a relative quantity (that is, Alarm Limit Field = Setpoint - LDALIM, rather than Alarm Limit
Field = LDALIM).

23.4.8 GAP and GAPDB Parameter Validation


When GAP and GAPDB parameters overlap, the settings of OUTDEC and OUTINC are unpre-
dictable. Validation of the GAP and GAPDB parameters is performed at run time when a DGAP
block is processed. The validation is performed in the following logic sequence:
1. If GAP < 0, set GAP = 0.
2. If GAPDB < 0, set GAPDB = 0.
3. If GAPDB > 0 and GAP < 3 * GAPDB, set GAP = 3 * GAPDB.
4. In all other cases, GAP and GAPDB remain unchanged.

23.4.9 Normal Configuration


A typical configuration using the DGAP block is shown below.

MEAS
PID OUT RSP DGAP
MEAS

FBK

BCALCI BCALCO
Figure 23-8. Typical Cascade Configuration

To provide bumpless initialization of the upstream block in a cascade:


 Link BCALCI of the primary controller (PID in Figure 23-8) to BCALCO.
 Link FBK (external reset) of the primary controller to MEAS of the secondary con-
troller (DGAP in Figure 23-8) to prevent windup.
DGAP does not use PRIBLK.

23.4.10 Application
Figure 23-9 shows the DGAP block as a valve positioner for a furnace air damper, with feedback
from a position sensor, for example, slide wire, in the actuator. This application uses the DGAP
block with the feedback signal connecting to the measurement input. The PID controller sets the
demand for valve position via the remote setpoint (RSP) input.

682
23. DGAP – Differential Gap Block B0193AX – Rev AB

MEAS

SPT
PID

OUT
RSP
MEAS
DGAP

OUTINC OUTDEC
(Increase) (Decrease)

AIN COUTR, MCOUT AIN

FBM FBM FBM

Motor
Driven
Actuator
Position PT
Sensor

Furnace
Air
Damper

Figure 23-9. DGAP with Position Feedback

683
B0193AX – Rev AB 23. DGAP – Differential Gap Block

684
24. DPIDA Controller
This chapter covers the Distributed PIDA, or DPIDA, its basic operations, features,
parameters, ECB52 parameters, and DPIDA functions and an application example.

24.1 Overview
The Distributed PIDA (DPIDA) controller implements an advanced PID (PIDA) control algo-
rithm in Fieldbus Modules (FBM04/FBM204, FBM17/FBM227, and FBM22) to provide fast
real-time control capability (see Figure 24-1). The DPIDA controller provides very fast control
cycle times and high single-loop security. The FBM synchronizes execution of the control algo-
rithm to the analog-to-digital (A/D) conversion of the measurement input, thereby eliminating
data communication deadtime elements in the control loop.
The DPIDA controller implements continuous PID feedback and additive and multiplicative
feedforward control of an analog loop, providing advanced features similar to the PIDA block. Its
principal inputs, setpoint and measurement, are used to compute its output, the manipulated
variable, based on user-set or adaptively tuned values of the tuning parameters – proportional
band, integral time, derivative time, and set-point-compensation lead/lag ratio. The feedforward
capability can be used to decouple interacting loops in addition to compensating for measured
load upsets.

Loads Multiplicative Input

FBTUNE FFTUNE Local


Operator’s
Extender Block Extender Block Bias Panel

Supervisory Auto/ Ramp


Setpoint Limit Manual Output
SE
LR Switch
Local Ramp, Local
Limit Enable Scale Scale
Setpoint
Remote Disable
Remote Limit
Setpoint
Deviation + +
Absolute Alarms
Alarms DPIDA

Manual
Select
One Com- Limit,
pensator Feedback x + Ramp
Measurement 1 Control - Auto Output
B
Filter Algorithm
Measurement 2 A/B + Track
A
Measurement 3 Redundancy FBM Using ECB52
Option
Figure 24-1. DPIDA Controller Functional Diagram

685
B0193AX – Rev AB 24. DPIDA Controller

The ECB52 block provides the FBM interface for measurement characterization, linearization,
redundancy, out-of-range detection, Failsafe operation, and CP/FBM communications.
The combination of the FBM algorithm (ECB software type 52) and DPIDA block in the CP,
plus FBTUNE and FFTUNE extenders provides adaptive control capabilities of the I/A Series
patented EXACT MultiVariable control (see the FBTUNE and FFTUNE Block Descriptions in
this document). The FBM algorithm is a subset of the PIDA block algorithm.

24.2 Basic Operation


The FBM functions as a complete closed loop controller that executes the real time portion of the
algorithm every 10 to 50 ms (configurable), independent of the Control Processor (CP) execution
period. It reads the measurement and changes the output using the setpoint and other informa-
tion provided by the CP. FBM04/FBM204 and FBM17/FBM227 also provide three redundant
measurement inputs. FBM based control achieves fast controller response with very low inte-
grated absolute error, a key measure of controller performance to load and setpoint changes.
The DPIDA controller consists of the control algorithm in the FBM and companion DPIDA and
ECB52 blocks in the CP. The DPIDA block operates in conjunction with the FBM control algo-
rithm to support tuning, scaling and alarming functions. The DPIDA block acts as the bridge
between the operator workstation and the FBM algorithm by bidirectionally exchanging the
parameters and data between the FBM and the operator. The DPIDA block is available in the
CP30 and CP40.
Extension connections can be made to the FBTUNE and FFTUNE blocks, described elsewhere
in this manual, that perform adaptive tuning. This can be done while the DPIDA controller is
operating, by configuring the DPIDA block’s BLKSTA into the PIDBLK parameter in the
FBTUNE and FFTUNE extender blocks.
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.

24.2.1 ECB52 Related Functions


The ECB52 block parameters allow you to configure:
 FBM execution cycle time, CYCTIM
 Measurement scaling, HMSCAL and LMSCAL
 Measurement redundancy, REDOPT

686
24. DPIDA Controller B0193AX – Rev AB

 Measurement linearization, SQRENB


 Measurement characterization, CHAREN
 Anti-alias filtering, FLTOPT
 Failsafe action, FSOPT
 Output scaling, LOSCAL and HOSCAL
 Local operator’s panel option, PNLOPT

24.3 Features
24.3.1 DPIDA Features
The DPIDA controller contains the following PIDA features:
 Local setpoint ramping
 Setpoint limiting
 Setpoint compensation
 Measurement filtering
 Absolute feedforward inputs (multiplicative and additive)
 Nonlinear gain function

24.3.1.1 Control Modes


The DPIDA controller can be configured to operate in one of the following control modes:
 Proportional (P)
 Integral (I)
 Proportional-plus-Derivative (PD)
 Proportional-plus-Integral (PI)
 Proportional-plus-Integral-plus-Derivative (PID)
 Non-Interactive PID (NIPID)

24.3.1.2 Standard DPIDA Features


The DPIDA controller contains the following DPIDA features:
 FBTUNE extender block option adaptively tunes the feedback controller parameters
for the PI, PID, and NIPID controller modes.
 FFTUNE extender block option provides dynamic compensation for an absolute
multiplicative or additive feedforward input and both static and dynamic compensa-
tions for 3 or 4 incremental feedforward inputs, and adapts the compensator
parameters.
 Feedforward ratio and bias inputs, MULT_IN and BIAS, that can be adaptively tuned
by an FFTUNE block.
 Manual/Auto (MA) control of the output, which can be initiated by either a host pro-
cess or another block.

687
B0193AX – Rev AB 24. DPIDA Controller

 Auto and Manual latch switch inputs (AUTSW and MANSW) that allow the control-
ler to be switched to Auto or Manual by overriding the MA parameter.
 Local/Remote (LR) setpoint source selection.
 Local and Remote latch switch inputs (LOCSW and REMSW) that allow the con-
troller to be switched to Local or Remote setpoint by overriding the LR parameter.
 Setpoint compensation (SPLLAG) allows the amount of proportional action applied
to the setpoint to be different from that applied to the measurement to prevent
overshoot.
 Measurement filtering using a second-order Butterworth filter for high frequency
noise rejection. Filter time constant is adjustable in relation to derivative time with
derivative gain KD.
 Logic signals to prevent windup during cascaded closed-loop operation.
 Assignable engineering range and units to measurement, bias, multiplicative input,
and output.
 Automatic scaling, based on assigned engineering ranges, so that the proportional
band is expressed in percent.
 Automatic scaling, based on assigned engineering ranges, so that the controller gain is
normalized.
 Output biasing (BIAS, KBIAS) with scaling (BBIAS).
 Output clamping between variable output limits (HOLIM, LOLIM).
 Bad input detection, handling and indication (BAD).
 Bumpless transfer of the output signal when the controller returns to controlling oper-
ation in Auto, which is inherent in all control modes.
 Fast reaction to manual output change.
 Automatic cascade handling as the secondary controller in a cascade loop including
back calculation (BCALCO) of the secondary setpoint which connects to the
BCALCI and FBK parameters of the upstream block, to provide bumpless cascade
operation when the cascade is open loop.

24.3.1.3 Standard DPIDA Options


The DPIDA controller contains the following DPIDA options
 Supervisory Setpoint Control (SSC) by user application software. For cascade loops,
the DPIDA controller can only be at the bottom of the cascade.
 Setpoint tracking (STRKOP) of the measurement signal allows bumpless return to
automatic control when the controller returns to closed-loop operation. STRKOP
takes this action when the LR parameter has transitioned in either direction and 1)
either the output is in Manual or a cascade is broken (a downstream block is in open
loop - INITI true) or the block is in Manual, or 2) when the block is in Manual only.
The block does not perform STRKOP if any critical data errors are detected.
 Manual if Bad Option (MBADOP) is a Manual override feature. When MBADOP =
1 or 2, the block sets an unlinked MA input to Manual when it detects bad status of a
control input (MEAS, FBK, and/or INITI) or optionally (when MBADOP = 2), if
the Remote Setpoint (RSP) is not healthy (i.e., value status is BAD or has a broken

688
24. DPIDA Controller B0193AX – Rev AB

OM connection). This forces the output state to Manual. Returning to Auto requires
external intervention, unless AUTSW is true.
 Increase/Increase Option (INCOPT) reverses the normal sense of the control action
so that the controller output increases with increasing measurement.
 Measurement Alarming Option (MALOPT) enables absolute alarming of the mea-
surement during auto operation. This option also provides standard alarm
notification and reporting features.
 Deviation Alarm Option (DALOPT) enables deviation alarming of the measurement-
setpoint error signal.
 High-High Alarm Option (HHAOPT) enables High-High and/or Low-Low absolute
alarming of the measurement input with indicators and text messages, at a given pri-
ority level, which are sent to the configured alarm group.
 Manual Alarming Option (MANALM) enables all configured alarm options, with or
without output alarming, to be operational in Manual.
 Output Alarm Option (OALOPT) enables absolute alarming of the controller output
(OUT).
 Manual Clamping Option (MCLOPT) enables output clamping in Manual.
 Control Error Option (CEOPT) enables implicit Holding action when an error in the
MEAS input is detected.
 Propagate Error Option (PROPT) propagates the ERROR status bit from the MEAS
input to the OUT parameter.
 Local Setpoint Secure (LOCSP), typically used for local only controllers, secures
against any write access to the LR parameter.
 Workstation lock (LOCKRQ) allows write access to the block parameters only by the
Display Manager (LOCKID) that owns the lock. Any other workstation must first
unlock the lock to gain write access.
 Loop identifier (LOOPID) allows you to identify the loop or process unit that con-
tains the lock.

24.3.1.4 Extended DPIDA Options


The DPIDA controller contains the following extended DPIDA options:
 Setpoint Ramp Option (SPROPT) allows you to ramp the setpoint to a new target
value (SPTARG) by rate (SPRATE) in engineering units per minute or by time
(SPRATE) to target in minutes.
 Setpoint clamping between limits.
 Nonlinear Option (NONLOP) allows you to change the gain in a zone about zero
error. The zone is defined by HZONE and LZONE, and the gain by KZONE.
 Output Tracking (TRKENL) allows the output to track an independent signal source
(TRACK).
 Selection Request (SELRQ) allows you to select one of the redundant measurements
for use by the control algorithm, when REDOPT is set for two or three redundant
measurements.

689
B0193AX – Rev AB 24. DPIDA Controller

24.3.1.5 ECB52 Features


 Redundancy Option (REDOPT) allows the FBM04/FBM204 or FBM17/FBM227
to select one of up to three redundant inputs as the measurement input to the algo-
rithm. Options are:
 Non-redundant measurement
 Dual-redundant measurements
 Triple-redundant measurements.
 Characterizer Enable (CHAREN) allows measurement processing with an 8-segment
characterizer.
 Square Root Enable (SQRENB) allows measurement linearizing with a square root
function.
 Panel Option (PNLOPT) with FBM17/FBM227 allows connection of a local opera-
tor’s panel (Foxboro® Deutschland) with status indicator lights, 0 to 100% meter
display of the output, Auto/Manual toggle key, and keys for ramping the output up or
down in Manual.
 FBM22 allows connection of a hard manual backup panel with status indicator lights,
0 to 100% meter display of the output, hard Manual (A/M) toggle key, and keys for
ramping the output up or down in Manual. When the A/M key is toggled to Auto,
the controller goes to remote Manual, not Auto; operator action from a workstation is
required to transfer the controller to Auto.
 Cycle Time option (CYCTIM) allows the controller algorithm cycle time to be con-
figured from 10ms to 50 ms, in 5ms increments.
 Failsafe Enable (FSENB) allows Failsafe control options (FSOPT) while the controller
is in Auto or Holding (similar to MANFS option in other blocks).

24.4 Parameters
Table 24-1. DPIDA Block Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
AUTSW auto switch boolean con/set 0 0 to 1
BAG bad alarm group short no-con/set 1 1 to 8
BAO bad alarm option boolean no-con/no-set 0 0 to 1
BAP bad alarm priority integer con/set 5 1 to 5
BAT bad alarm text string no-con/no-set 2 blanks 1 to 32 chars
BBIAS bias scale factor real no-con/no-set 0.0 RO1
BIAS bias of output real con/set 0.0 RI2
CEOPT control error opt short no-con/no-set 1 0 to 2
DALOPT deviation alarm opt short no-con/no-set 0 0 to 3
DELTI1 change delta, meas real no-con/no-set 1.0 positive real%
DELTI2 change delta, meas real no-con/no-set 1.0 positive real%
DELTO1 change delta, outp real no-con/no-set 1.0 positive real%

690
24. DPIDA Controller B0193AX – Rev AB

Table 24-1. DPIDA Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


DERIV derivative time real con/set 0.0 0 to real minutes
DESCRP block descriptor string no-con/no-set 2 blanks 1 to 32 chars
DEVADB dev alm deadband real no-con/set 0.0 RI1
DEVGRP deviation alarm group short no-con/set 1 1 to 8
DEVLIM deviation limit real no-con/no-set 2.0% RI1
DEVPRI deviation alarm priority integer con/set 5 1 to 5
DEVTIM deviation alarm time integer no-con/no-set 0 0 to 32767
EI1 eng units for meas string no-con/no-set % 1 to 32 chars
EI2 eng units for meas string no-con/no-set % 1 to 32 chars
EIN multiplier eng unit string no-con/no-set % 1 to 32 chars
EO1 eng units, output string no-con/no-set % 1 to 32 chars
FLBOPT fallback option short no-con/no-set 0 0 to 4
HDALIM high deviation alarm limit real con/set 100.0 RI1
HDATXT high deviation alarm text string no-con/no-set 2 blanks 1 to 32 chars
HHAGRP high-high alarm group short no-con/set 1 1 to 8
HHALIM high-high alarm limit real con/set 100.0 RI1
HHAOPT high-high alarm option short no-con/no-set 0 0 to 3
HHAPRI high-high alarm priority integer con/set 5 1 to 5
HHATXT high-high alarm text string no-con/no-set 2 blanks 1 to 32 chars
HOALIM high output alarm limit real con/set 100.0 RO1
HOATXT high output alarm text string no-con/no-set 2 blanks 1 to 32 chars
HOLD hold mode boolean con/set 0 0 to 1
HOLIM high output limit real con/set 100.0 RO1
HSCI1 high scale for meas real no-con/no-set 100.0 any real value
HSCI2 high scale for meas real no-con/no-set 100.0 any real value
HSCIN multiplier high scale real no-con/no-set 100.0 any real value
HSCO1 high scale, output real no-con/no-set 100.0 any real value
HZONE high zone limit real con/set 100.0 positive real %
INCOPT increase/increase option boolean no-con/no-set 0 0 to 1
INHALM inhibit alarm pack_b con/set 0 0 to 0xFFFF
INHIB alarm inhibit boolean con/set 0 0 to 1
INHOPT inhibit option short no-con/no-set 0 0 to 3
INITLR initialize local/remote short no-con/no-set 0 0 to 2
INITMA initialize MA short no-con/no-set 1 0 to 2
INITSE initial SE short no-con/no-set 0 0 to 2
INT integral time real con/set 100.0 0 to real minutes
IOM_ID FBM identifier string no-con/no-set 2 blanks ---
KBIAS bias gain factor real no-con/no-set 1.0 any real value
KD derivative gain real con/set 10.0 positive real
KZONE nonlinear gain real con/set 1.0 positive real
LDALIM low deviation alarm limit real con/set -100.0 RI1
LDATXT low deviation alarm text string no-con/no-set 2 blanks 1 to 32 chars
LLALIM low-low alarm limit real con/set 0.0 RI1
LLATXT low-low alarm text string no-con/no-set 2 blanks 1 to 32 chars
LOALIM low output alarm limit real con/set 0.0 RO1
LOATXT low output alarm text string no-con/no-set 2 blanks 1 to 32 chars

691
B0193AX – Rev AB 24. DPIDA Controller

Table 24-1. DPIDA Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


LOCSP lock setpoint boolean no-con/no-set 0 0 to 1
LOCSW local setpoint switch boolean con/set 0 0 to 1
LOLIM low output limit real con/set 0.0 RO1
LOOPID loop identifier string no-con/set 2 blanks 1 to 32 chars
LR local/remote setpoint boolean con/set 0 0 to 1
LSCI1 low scale for meas real no-con/no-set 0.0 any real value
LSCI2 low scale for meas real no-con/no-set 0.0 any real value
LSCIN multiplier low scale real no-con/no-set 0.0 any real value
LSCO1 low scale, output real no-con/no-set 0.0 any real
LZONE high zone limit real con/set 100.0 positive real %
MA manual/auto boolean con/set 0 0 to 1
MALOPT meas alarm option short no-con/no-set 0 0 to 3
MANALM manual alarm option short no-con/no-set 1 0 to 4
MANSW manual switch boolean con/set 0 0 to 1
MBADOP manual if bad option short no-con/no-set 0 [0|1|2]
MCLOPT manual clamp option boolean no-con/no-set 0 0 to 1
MEASDB meas alarm deadband real no-con/set 0.0 RI1
MEASGR meas alarm group short no-con/set 1 1 to 8
MEASHL meas high alarm limit real con/set 100.0 RI1
MEASHT meas high alarm text string no-con/no-set 2 blanks 1 to 32 chars
MEASLL meas low alarm limit real con/set 0.0 RI1
MEASLT meas low alarm text string no-con/no-set 2 blanks 1 to 32 chars
MEASNM meas alarm name string no-con/no-set 2 blanks 1 to 32 chars
MEASPR meas alarm priority integer con/set 5 1 to 5
MODOPT control mode option short no-con/no-set 1 1 to 6
MULTIN multiplier input real con/set 100.0 RIN
NAME block name string no-con/no-set 2 blanks 1 to 32 chars
NONLOP nonlinear option boolean no-con/no-set 0 0 to 1
OALOPT output alarm opt short no-con/no-set 0 0 to 3
OSV output span variance real no-con/no-set 2.0 0.0 to 25.0%
OUTADB output alarm deadband real no-con/set 0.0 RO1
OUTGRP output alarm group short no-con/set 1 1 to 8
OUTNM output alarm name string no-con/no-set 2 blanks 1 to 32 chars
OUTPRI output alarm priority integer con/set 5 1 to 5
PBAND proportional band real con/set 1000.0 0.1 to real %
PERIOD block sample time short no-con/no-set 1 0 to 13
PHASE block execute phase integer no-con/no-set 0 see param def
PRIBLK primary block boolean no-con/no-set 0 0 to 1
PRITIM primary cascade timer real no-con/no-set 0.0 seconds
PROPT propagate error option boolean no-con/no-set 0 0 to 1
REMSW remote switch boolean con/set 0 0 to 1
RSP remote setpoint real con/set 0.0 RI1
SPCLMP setpoint clamp short no-con/no-set 0 0 to 2
SPHLIM local setpoint high limit real con/set 100.0 RI1
SPLLAG setpoint lead/lag real con/set 1.0 RI1
SPLLIM local setpoint low limit real con/set 0.0 RI1

692
24. DPIDA Controller B0193AX – Rev AB

Table 24-1. DPIDA Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


SPRAMP local setpoint ramp option boolean con/set 0 0 to 1
SPRATE local setpoint ramp rate real con/set 0.0 unit/min or min
SPROPT local setpoint ramp option short no-con/no-set 0 0 to 4
SPT setpoint real con/set 0.0 RI1
SPTARG local setpoint ramp target real con/set 0.0 RI1
STRKOP setpoint track option short no-con/no-set 0 [0|1|2]
SUPGRP supervisory group short no-con/no-set 1 1 to 8
SUPOPT supervisory option short no-con/no-set 0 0 to 4
TRACK track input real con/set 0.0 RO1
TRKENL track enable boolean con/set 0 0 to 1
TYPE block type integer no-con/no-set 124 DPIDA
AMRTIN alarm regeneration timer integer no-con/no-set 0 0 to 32767 s
NASTDB alarm deadband timer long integer no-con/no-set 0 0-2147483647 ms
NASOPT nuisance alarm suppression short no-con/no-set 0 0 to 2
option
Non-Configurable Parameters
INPUTS
DEV_ID FBM letterbug char no-con/no-set 2 blanks 1 to 6 chars
FBTBLK feedback tune block status long con/set 0x00...0 0 to 0xFFFFFFFF
FFTBLK feedforward tune block status long con/set 0x00...0 0 to 0xFFFFFFFF
MEAS measurement real con/set 0.0 RI1
MEAS01 to MEAS03 measurement 1 to 3 real con/set 0.0 RI1
OUT2 output 2 real con/set 0.0 RO1
SE supervisory enable boolean no-con/set 0 0 to 1
SELRQ select request short con/set 0 0 to 3
SELST select status short con/set 0 1 to 3
SUP_IN supervisor setpoint real con/no-set 0.0 RI1
OUTPUTS
ALMSTA alarm status pack_l con/no-set 0x00...0 0 to 0xFFFFFFFF
BAD bad I/O status boolean con/no-set 0 0 to 1
BCALCO back calc output real con/no-set 0.0 RI1
BLKSTA block status pack_l con/no-set 0x00...0 0 to 0xFFFFFFFF
DEFINE no config errors boolean no-con/no-set 1 0 to 1
CRIT alarm criticality integer con/no-set 0 0 to 5
ERROR control error real con/no-set 0.0 RI1
FLBREQ fallback request short con/no-set 0 0 to 2
FS failsafe state boolean con/no-set 0 0 to 1
HDAIND high deviation alarm indicator boolean con/no-set 0 0 to 1
HHAIND high-high alarm indicator boolean con/no-set 0 0 to 1
HOAIND high output alarm indicator boolean con/no-set 0 0 to 1
HOLIND high output limit indicator boolean con/no-set 0 0 to 1
INHSTA inhibit status pack_l con/no-set 0x00...0 0 to 0xFFFFFFFF
INITO initialize output short con/no-set 0 0 to 1
LDAIND low deviation alarm indicator boolean con/no-set 0 0 to 1
LLAIND low-low alarm indicator boolean con/no-set 0 0 to 1

693
B0193AX – Rev AB 24. DPIDA Controller

Table 24-1. DPIDA Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


LOAIND low output alarm indicator boolean con/no-set 0 0 to 1
LOLIND low output limit indicator boolean con/no-set 0 0 to 1
MEASHI meas high alarm indicator boolean con/no-set 0 0 to 1
MEASLI meas lo alarm indicator boolean con/no-set 0 0 to 1
OUT output real con/no-set 0.0 RO1
PRTYPE priority type integer con/no-set 0 0 to 10
QALSTA quality status pack_l con/no-set 0 0 to 0xFFFFFFFF
STATEB state of FB tune integer con/set -2 -3 to 6
STATEF state of FF tune integer con/set -2 -2 to 5
SUPBCO sup back calc out real con/no-set 0 RI1
UNACK unacknowledge alarm boolean con/no-set 0 0 to 1
DATA STORES
ACHNGE alternate change integer con/no-set 0 -32768 to 32767
ALMOPT alarm options pack_l no-con/no-set 0 0 to 0xFFFFFFFF
ERCODE configuration error string no-con/no-set 2 blanks 1 to 43 chars
LOCKID lock identifier string no-con/no-set 2 blanks 8 to 13 chars
LOCKRQ lock request boolean no-con/set 0 0 to 1
OWNER owner name string no-con/set blank 0 to 32 chars
PERTIM period time real no-con/no-set 0.1 seconds
PRSCAS priority for cascade short no-con/no-set 0 0 to 3
PRSCON present control short no-con/no-set 0 0 to 2
RI1-RI2 measurement range real[3] no-con/no-set 100,0,1 ---
RIN multiplier range real[3] no-con/no-set 100,0,1 ---
RO1 output range real[3] no-con/no-set 100,0,1 ---

24.4.1 Parameter Definitions


ACHNGE Alternate Change is an integer output that is incremented each time a set-
table parameter is changed externally. It wraps around from 32767 to
-32767.

ALMOPT Alarm Options contains packed boolean values representing the alarm
types that have been configured as options in the block. The DPIDA
block uses only the following bits:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

Bit Number1
(0 to 31) Configured Alarm Option When True
0 Alarm group 1 in use

694
24. DPIDA Controller B0193AX – Rev AB

Bit Number1
(0 to 31) Configured Alarm Option When True
7 Alarm group 8 in use
16 Low measurement alarm
17 High measurement alarm
18 Low output alarm
19 High output alarm
20 Low deviation alarm
21 High deviation alarm
22 Bad I/O alarm
24 Low-low absolute alarm
25 High-high absolute alarm
27 Operational error alarm
28 Out-of-range alarm
1. Bit 0 is the least significant, low order bit.

ALMSTA Alarm Status is a 32-bit output that is bit-mapped to indicate the block’s
alarm states. The DPIDA block uses the following bits:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
UNACK B2
B3
B4
B5
B6
B7
B8
B9

CRIT PRTYPE
OOR

HMA
HOA
HHA

HDA
BAD

LMA
LOA
LDA
LLA
INH

Bit Number* Boolean Connection


(0 to 31) Name Description When True (B32 to B1)
0 to 4 PRTYPE** Priority type (0 to 25)* ---
5 to 7 CRIT** Criticality (0 to 5)* ---
16 LMA Low measurement alarm ALMSTA.B16
17 HMA High measurement alarm ALMSTA.B15
18 LOA Low output alarm ALMSTA.B14
19 HOA High output alarm ALMSTA.B13
20 LDA Low deviation alarm ALMSTA.B12
21 HDA High deviation alarm ALMSTA.B11
22 BAD Bad I/O alarm ALMSTA.B10
24 LLA Low-low absolute alarm ALMSTA.B8
25 HHA High-high absolute ALMSTA.B7
28 OOR Out-of-range alarm ALMSTA.B4

695
B0193AX – Rev AB 24. DPIDA Controller

Bit Number* Boolean Connection


(0 to 31) Name Description When True (B32 to B1)
29 INH Inhibit alarm ALMSTA.B3
30 UNACK Unacknowledged alarm ALMSTA.B2

* Bit 0 is the least significant, low order bit.


** PRTYPE and CRIT are binary values. See PRTYPE and CRIT parame-
ter definitions for values used by the DPIDA block.

AMRTIN Alarm Regeneration Timer is a configurable integer that specifies the time
interval for an alarm condition to exist continuously, after which a new
unacknowledged alarm condition and its associated alarm message is gen-
erated.

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).

BAT Bad Alarm Text is a user-configurable text string of up to 32 characters,


that is sent with the bad alarm message to identify it.

BBIAS Bias Scale Factor is a real input used for biasing the input span of the BIAS
input.

BCALCO Back Calculation Output is a real output that is usually equal to the Mea-
surement input. BCALCO is the setpoint value that maintains the output
value when the block returns to normal mode after initializing or tracking.
The BCALCO data record contains the initialization and open cascade
status bits. You connect BCALCO to the BCALCI input of upstream
block so that the upstream block can sense when the DPIDA block has
initialized or is open loop.

BIAS Bias is a real value that is the additive feedforward input. Dynamic com-
pensation is set by the FFTUNE block.

696
24. DPIDA Controller B0193AX – Rev AB

BLKSTA Block Status is a 32-bit output, bit-mapped to indicate various block oper-
ational states. The DPIDA block uses the following bits:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
STRK B23
B24
B25
B26
B27
RED2 B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9
MAO

FTNI

MTN
RED

FBM
HOL

BAD
DEV
LRO

TRK
HLD

PTN
STN
FTN
LOL

CTL
FLB

MO

ON

MA
SC
SE

DF

LR
FS

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 RED2 Redundancy Option 2**** 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 RED Redundancy Option**** BLKSTA.B11
22 DF Device fail BLKSTA.B10
23 MO Manual override (panel) BLKSTA.B9
24 FS Failsafe BLKSTA.B8
25 LRO Local/Remote override BLKSTA.B7
26 MAO Manual/Auto override BLKSTA.B6
27 LOL Low output limit*** BLKSTA.B5
28 HOL High output limit*** BLKSTA.B4
29 SE Supervisory enabled BLKSTA.B3

697
B0193AX – Rev AB 24. DPIDA Controller

Bit Number* Boolean Connection


(0 to 31) Name Description When True (B32 to B1)
30 SC Supervisory control BLKSTA.B2
31 FLB Supervisory fallback BLKSTA.B1

* Bit 0 is the least significant, low order bit.


** These are tuning states for the EXACT tuning algorithm.
*** The controller output is clamped at these limits.
**** The REDOPT parameter (in ECB52) is used in conjunction with
BLKSTA.B11 (RED) and BLKSTA.B28 (RED2) to control the condi-
tional display of the three possible measurements of the DPIDA. The first
measurement is always on the display. The second and third measure-
ments can be added as well; the second measurement must be shown in
order for the third measurement to be displayed.
When REDOPT=1 (in ECB52), BLKSTA.B11 (RED) is set to 1 to
display the second measurement.
When REDOPT=2 (in ECB52), BLKSTA.B28 (RED2) is set to 1 to
display the third measurement. Since the second measurement must be
displayed in order to display the third measurement, BLKSTA.B11 (RED)
must have already been set to 1 before BLKSTA.B28 (RED2) is set to 1.

CEOPT Control Error Option is a short integer that specifies how the block
responds to the MEAS input when it is in error. Control errors are defined
in “Error Detection” on page 750. To provide backward compatibility,
CEOPT defaults to 1. CEOPT has a range of 0 to 2 where:
0= The block takes no implicit Hold action when it detects a
control error.
1= The block goes to the Hold state if, while MBADOP = 0:
 MEAS has its BAD status bit set true.
 MEAS has its Out-of-Service status bit set true.
 MEAS is experiencing peer-to-peer path failure.
2= The block goes to the Hold state if, while MBADOP = 0:
 MEAS meets any of the conditions described for
CEOPT = 1.
 MEAS has its ERROR status bit set true.

CEOPT is independent of the propagate error option, PROPT, and does


not affect the external logical input, HOLD. The HOLD input, when
true, still drives the block into the Hold state whenever the block is in
Auto (and MBADOP = 0).
CEOPT enables implicit control error handling of HOLD, STRKOP, and
MBADOP. When CEOPT is enabled, a control error is detected if the
MEAS input has a status such as OOS, BAD, or off-scan. If MBADOP =
1 or 2, a control error forces the controller to Manual. If MBADOP = 0, a

698
24. DPIDA Controller B0193AX – Rev AB

control error forces the controller to Hold if MA is set to Auto, and it dis-
ables setpoint tracking if SPTRKOP is set true.
If CEOPT is not enabled, then control error detection is not performed,
and MBADOP, HOLD, and SPTRK handling is performed explicitly by
asserting the HOLD input.

CRIT Criticality is an integer output that indicates the priority, 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, or disables alarming altogether.
0 = No alarming
1 = High and Low deviation alarming
2 = High deviation alarming only
3 = Low deviation alarming only
You can change DALOPT only by reconfiguring the block.

DEFINE Define is a boolean data store which when true indicates that the block
has no configuration errors. It is the inverse of UDEF in parameter BLK-
STA. When the block initializes, DEFINE is set to 0 (undefined) if the
block detects a parameter configuration error. To return DEFINE to a
true state, correct all configuration errors and reinstall the block.

DELTI1 to Change Delta for Input Range 1 or 2 is a real value that defines the mini-
DELTI2 mum percent of the input range that triggers change driven connections
for parameters in the range of RI1 or RI2. The default value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.

DELTO1 Change delta for Output Range 1 is a configurable real value that defines
the minimum percent of the output range that triggers change-driven
connections for parameters in the range RO1. The default value is 1.0 per-
cent. If communication is within the same CP that contains the block’s
compound, DELTO1 has no effect.

DERIV Derivative Time is a real input that adjusts the derivative time constant in
minutes. For the PID and NIPID modes, DERIV is adaptively tuned by
the FBTUNE block, if it is linked to the DPIDA block.

NOTE
The working DERIV value is indirectly limited by the working INT value.

699
B0193AX – Rev AB 24. DPIDA Controller

DESCRP Descriptor is a user-defined string of up to 32 characters that describes the


block’s function (for example, “PLT 3 FURNACE 2 HEATER CON-
TROL”).

DEVADB Deviation Alarm Deadband is a real input (range RI1) that applies to both
High and Low Deviation Alarm Limits.

DEVGRP Deviation Group is a short integer input that directs deviation alarm mes-
sages to one of eight groups of alarm devices.

DEVLIM Deviation Limit is a real input (range RI1) that defines the limit of the
deviation between the selected measurement (MEAS) and any one of the
redundant measurements (MEAS01 to MEAS03). When this deviation is
exceeded, the block status deviation bit (BLKSTA.DEV) is set.

DEVPRI Deviation Priority is a integer input (1 to 5) that sets the priority level of
the deviation alarm (1 is the highest priority).

DEVTIM Deviation Time is a configurable integer value that specifies the delay time
for detecting a deviation alarm.

DEV_ID Device Identifier is a 6-character array input that specifies the 6-character
letterbug identifier of the FBM.

EI1 to EI2 Engineering Units for Input Ranges 1 and 2 are 32-character strings that
provide the engineering units text for the values defined by the ranges for
input 1 and 2. The values configured for these text strings should be con-
sistent with the values used for HSCI1 and LSCI1, or HSCI2 and LSCI2.

EIN Engineering Units for MULTIN is a 32-character string that provides the
engineering units text for the multiplicative input MULTIN. Make the
units consistent with those of the signal source.

EO1 Engineering Units for Output Range 1 is a 32-character string that pro-
vides the engineering units text for the values defined by the range for out-
put 1. The value configured for this text string should be consistent with
the values used for HSCO1 and LSCO1.

ERCODE Error Code is a string data store that indicates the type of configuration
error that first caused the block to set the DEFINE parameter to false. Val-
idation of configuration errors does not proceed past the first error
encountered by the block logic. The block uses the following error strings:
 W44 – Invalid Engineering Range.
 W46 – Invalid Input Connection.
 W48 – Invalid Block Option.
 W51 – Invalid Hardware/Software Type.
 W54 – ECB does not exist.
 W58 – Install Error; Delete/Undelete Block.
 W59 – Duplicate Output Channel.

700
24. DPIDA Controller B0193AX – Rev AB

ERROR Error is a real output that equals setpoint minus measurement:


 ERROR = SPT  MEAS

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.

HDATXT High Deviation Alarm Text is a user-configurable text string of up to 32-


characters, output with the alarm message to identify the alarm.

HHAGRP High-High Alarm Group is a short integer input that directs High-High
Absolute Alarm messages to one of eight groups of alarm devices.

701
B0193AX – Rev AB 24. DPIDA Controller

HHAIND High-High Alarm Indicator is a boolean output that is set true when the
measurement input (MEAS) is greater than the high-high absolute alarm
limit (HHALIM). HHAIND is reset to false when the MEAS value is less
than HHALIM minus a deadband.

HHALIM High-High Alarm Limit is a real input (range RI1) that defines the value
of the measurement input (MEAS) that triggers a High-High alarm.

HHAOPT High-High Alarm Option is a configurable short integer value that


enables High-High and Low-Low absolute alarming for the measurement
input (MEAS), or disables absolute alarming altogether. Each alarm trig-
gers an indicator and text message. Options are:
0 = No alarming
1 = High-High and Low-Low alarming
2 = High-High alarming only
3 = Low-Low alarming only

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).

HHATXT High-High Alarm Text is a user-configurable text string of up to


32 characters that is sent with the alarm message to identify the alarm.

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.

HOATXT High Output Alarm Text is a user-defined text string of up to


32 characters that is sent with the alarm message to identify the alarm.

HOLD Hold is a boolean input. When true, it forces the block into the Hold sub-
state of Auto, holding the output at its last computed value.

HOLIM High Output Limit is a real input (range RO1) that specifies the maxi-
mum value for the output (OUT). If the algorithm tries to drive the out-
put to a higher value, the output is clamped at the HOLIM value and the
indicator HOLIND is set true.

HOLIND High Output Limit Indicator is a boolean output that is set true whenever
the output is clamped at the high output limit, HOLIM.

HSCI1 to HSCI2 High Scale for Input Ranges 1 and 2 are configurable real values that
define the upper limit of input ranges RI1 and RI2. EI1 and EI2 define
the units. Make the range and units consistent with those of the input
sources. The default value is 100 (percent).

HSCIN High Scale for Input MULTIN is a real value that defines the upper limit
of the range for MULTIN. The default value is 100 (percent). EIN defines
the units.

702
24. DPIDA Controller B0193AX – Rev AB

HSCO1 High Scale for Output Range 1 is a real value that defines the upper limit
of the range for the output (OUT). The default value is 100 (percent).
EO1 defines the units. Make the range and units consistent with those of
the output (OUT).

HZONE High Zone is a real input that defines, in terms of the error, the upper
limit of the zone in which the nonlinear gain option is exercised. HZONE
is expressed as a percentage of the measurement span.

INCOPT Increase/Increase Option is a boolean input. When true, it reverses the


normal sense of the control action so that the controller output increases
with increasing measurement.

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

* Bit 0 is the least significant, low order bit.


There are no mnemonic names for the individual bits of INHALM.

INHIB Inhibit is a boolean input. When true, it inhibits all block alarms; the
alarm handling and detection functions are determined by the INHOPT
setting. Alarms may also be inhibited based on INHALM and the com-
pound parameter CINHIB.

703
B0193AX – Rev AB 24. DPIDA Controller

INHOPT Inhibit Option specifies the following actions applying to all block alarms:
0= When an alarm is inhibited, disable alarm messages but do
not disable alarm detection.
1= When an alarm is inhibited, disable both alarm messages and
alarm detection. If an alarm condition already exists at the
time the alarm transitions into the inhibited state, clear the
alarm indicator.
2= Same as 0 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.
3= Same as 1 for all inhibited alarms. For all uninhibited alarms,
automatically acknowledge “return-to-normal” messages.
“Into alarm” messages may be acknowledged by explicitly set-
ting UNACK false.

INHSTA Inhibit Status is a 32-bit packed long boolean output that contains the
actual inhibit status of each alarm type configured in the block. The
DPIDA block uses the following bits:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BAD B10
HDA B11
LDA B12
HOA B13
LOA B14
HMA B15
LMA B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
OOR B4
B5
B6
HHA B7
LLA B8
B9
INH

Bit Number* Boolean Connection


(0 to 31) Name Inhibited When True (B32 to B1)
16 LMA Low measurement alarm ALMSTA.B16
17 HMA High measurement alarm ALMSTA.B15
18 LOA Low output alarm ALMSTA.B14
19 HOA High output alarm ALMSTA.B13
20 LDA Low deviation alarm ALMSTA.B12
21 HDA High deviation alarm ALMSTA.B11
22 BAD Bad I/O alarm ALMSTA.B10
24 LLA Low-low absolute alarm ALMSTA.B8
25 HHA High-high absolute ALMSTA.B7
28 OOR Out-of-range alarm ALMSTA.B4
29 INH Inhibit alarm ALMSTA.B3
* Bit 0 is the least significant, low order bit.

704
24. DPIDA Controller B0193AX – Rev AB

INITLR Initialize Local/Remote is an integer input that specifies the desired state
of the LR input during initialization, where:
0= Local
1= Remote
2= no change, except if a reboot, use the LR state specified in the
checkpoint file.

The block asserts this initial LR state whenever:


 It is installed into the Control Processor database, but not when
the block is modified, unless INITLR was changed.
 The Control Processor undergoes a restart operation.
 The compound in which the block resides is turned on.
INITLR is ignored if the LR input has an established linkage.

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.

The DPIDA block asserts this initial Manual/Auto state whenever:


 The DPIDA block is installed into the Control Processor database,
but not when the block is modified via the Control Configurator,
unless INITMA was changed.
 The Control Processor undergoes a restart operation.
 The compound in which the DPIDA block resides is turned on.
INITMA is ignored if the MA input has an established linkage.
Editing ECB52 via the Control Configurator places the DPIDA block in
Manual.
During communications failure, the DPIDA block shadows the MA state
of the FBM control algorithm.

INITO Initialization Output is set true when:


 The block is in Manual or initializing.
 Permanent or temporary loss of FBM communications occurs.
 RSP (the remote setpoint) is not the setpoint source.
The block clears INITO when none of these conditions exist. This block
keeps INITO True, for one cycle (PRIBLK = 0), until the acknowledge is
received from upstream (PRIBLK = 1 and PRITIM = 0.0), or for a fixed
time delay (PRIBLK = 1 and PRITIM = nonzero).
Prior to release 4.2, you connected this parameter to the INITI input of
upstream blocks so that these upstream blocks could sense when a down-

705
B0193AX – Rev AB 24. DPIDA Controller

stream block is open loop. Starting with Release 4.2, you connect the
BCALCO output of this block to the BCALCI input of the upstream
block for this purpose.

INITSE Initial Supervisory Enable is a configurable short integer value that speci-
fies the initial state of the SE parameter in a block configured for Supervi-
sory Control (SUPOPT = 1 or 3) when the block initializes due to reboot,
installing the block, or turning the compound on. Options are:
0 = Disable
1 = Enable
2 = Do not change SE parameter

INT Integral Time is a real input that adjusts the integral time constant in min-
utes. For the PI, PID and NIPID modes, INT is adaptively tuned by the
FBTUNE block, if it is linked to the DPIDA block.
When a DPIDA block is in P or PD mode (that is, MODOPT=1 or
MODOPT=3), the INT parameter appears on the default displays as
BTIME because it becomes the balance time (explained below) for those
controller modes. Balance time is utilized so that a bumpless transfer can
be accomplished without compromising the algorithm of the P or PD
controller. In other words, if a P or PD controller is either initialized or
transferred from manual to auto, where the actual output is different from
the algorithm's calculated output, the controller output is not bumped
but instead is integrated (or balanced) over time until it matches its calcu-
lated value. The actual balance time is a function of a first-order lag and
adjustable via the lag time constant, which is the INT (or BTIME) param-
eter expressed in minutes. The DPIDA block does not have a parameter
labeled BTIME associated with it so all Object Manager access to the
BTIME value must refer to INT.

IOM_ID Fieldbus Module Identifier is a configurable string input that specifies the
ECB52 for the FBM that contains the algorithm for this block.
IOM_ID has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOM_ID configuration. In this case, the 1-12
character ECB block name is sufficient.

KBIAS Gain Factor is a real input that multiplies the BIAS input. It is expressed
in OUT units (RO1) divided by BIAS units (RI2).

KD Measurement Filter Factor is a real input that adjusts the time constant of
the measurement filter.
For PD and NIPID control modes, the filter time constant is:
[DERIV / KD]
For the PID control mode, the filter time constant is:

706
24. DPIDA Controller B0193AX – Rev AB

1 / [ (1/INT) + (1/DERIV) ] KD

KZONE Middle Zone Gain is a real input that establishes the relative gain within
the zone defined by HZONE and LZONE. KZONE is usually set at less
than unity for pH control applications, or for desensitizing the control to
noise. If KZONE is set to zero, the block behaves as a dead zone control-
ler, causing most loops to limit cycle.

LDAIND Low Deviation Alarm Indicator is a boolean output that is set true when
the measurement falls below the setpoint by more than the deviation
limit, LDALIM. When the measurement passes back through the
DEVADB deadband, the block sets LDAIND to false.

LDALIM Low Deviation Alarm Limit is a real input that defines how far the mea-
surement must fall below the setpoint to initiate a low deviation alarm and
set the Low Deviation Alarm Indicator LDAIND true.

LDATXT Low Deviation Alarm Text is a user-defined text string of up to 32-charac-


ter that is sent with the alarm message to identify the alarm.

LLAIND Low-Low Alarm Indicator is a boolean output that is set true when the
measurement (MEAS) falls below the low-low absolute alarm limit
(LLALIM). LLAIND is reset to false when the value is greater than
LLALIM plus a deadband.

LLALIM Low-Low Alarm Limit is a real input that defines the value of the mea-
surement (MEAS) that triggers a Low-Low Alarm.

LLATXT Low-Low Alarm Text is a user defined text string of up to 32 characters


that is inserted into a Low-Low Alarm message.

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.

LOATXT Low Output Alarm Message Text is a user-defined text string of up to


32 characters that is sent with the alarm message to identify the alarm.

LOCKID Lock Identifier is a string data store that identifies the workstation that has
exclusive write access to the block. LOCKID arbitrates write access to the
control block parameters by operator workstations on the network. Set
requests to any of the block’s parameters are honored only if the requesting
workstation’s identifier matches the contents of LOCKID.
LOCKID does not lock out sequence code write access to block parame-
ters. Sequence block set requests to any of the block’s parameters are
always honored.

707
B0193AX – Rev AB 24. DPIDA Controller

The lock-request message sets LOCKRQ to true and sets LOCKID to the
identifier of the requesting workstation. The lock-release message clears
LOCKRQ and nulls LOCKID.
LOCKID has the format LETTERBUG:DEVNAME, where LETTER-
BUG is the 6-character letterbug of the workstation and DEVNAME is
the 6-character logical name of the Display Manager.

LOCKRQ Lock Request is a boolean data store that is set true or false by toggling the
LOCK U/L key on the Block Detail Display. An operator at any other
workstation can lock and unlock the block by toggling the LOCK U/L
key.
The lock-request message sets LOCKRQ true, sets LOCKID to the iden-
tifier of the requesting workstation, and sets the WLCK bit in the BLK-
STA parameter. Set requests to any of the block’s parameters are honored
only if the requesting workstation’s identifier matches the contents of
LOCKID.
LOCKID does not lock out sequence code write access to block parame-
ters. Sequence block set requests to any of the block’s parameters are
always honored.
The lock-release message resets LOCKRQ, nulls LOCKID, and resets the
WLCK bit.

NOTE
Do not set LOCKRQ with an application program. Due to contention for the
block, you may not be able to unlock the block

LOCSP Local Setpoint Secure is a boolean input. When true, it provides lockout
of user write access to the LR parameter. If LOCSP is configured true, the
block secures LR when it initializes and maintains LR in the secured state.
The LOCSW and REMSW overrides have higher precedence, but LR
remains secured when they are no longer asserted.

LOCSW Local Switch is a boolean input. When true, LOCSW overrides the LR
and INITLR parameters and drives the block to the Local state. If both
LOCSW and REMSW are true, LOCSW has priority.

LOLIM Low Output Limit is a real input that establishes the minimum output
(OUT) value. If the algorithm tries to drive the output to a lower value,
the output is clamped at the LOLIM value and the indicator LOLIND is
set true.

LOLIND Low Output Limit Indicator is a boolean output that is set true whenever
the output is clamped at the low output limit, LOLIM.

LOOPID Loop Identifier is a user-defined string of up to 32 characters that identi-


fies the loop or process associated with the block. It is displayed on the
detail display of the block, immediately below the faceplate.

708
24. DPIDA Controller B0193AX – Rev AB

LR Local/Remote is a boolean input that selects the setpoint source:


0 = Local
1 = Remote
If LR is set to Remote, the source of the setpoint value is RSP. When LR is
set to Local, the source is the user set input (SPT).
If STRKOP = 1 or 2 while LR is set to Local and the block is in Manual,
the setpoint tracks the measurement MEAS.

LSCI1 to LSCI2 Low Scale for Input Ranges 1 and 2 are configurable real values that define
the lower limit of input ranges RI1 and RI2. EI1 and EI2 define the units.
Make the range and units consistent with those of the input sources. The
default value is 0 (percent).

LSCIN Low Scale for Input MULTIN is a configurable real value that defines the
lower limit of MULTIN. EIN defines the units. The default value is 0
(percent).

LSCO1 Low Scale for Output Range 1 is a configurable real value that define the
lower limit of the range for Output 1. EO1 defines the units. Make the
range and units consistent with those of the output destination. The
default value is 0 (percent).

LZONE Low Zone is a real input that defines, in terms of the error, the absolute
value of the negative error level that sets the lower limit of the zone in
which the nonlinear gain option is exercised. LZONE is expressed as a
percentage of the measurement span.

MA Manual /Auto is a boolean input that controls the block’s operating state:
0 = Manual
1 = Auto
In Manual, each DPIDA block output is unsecured, which makes it setta-
ble by an external process (program or display). In Auto, the block secures
each output so that it cannot be set externally.

MALOPT Measurement Alarm Option is a configurable short integer input that


enables absolute High and Low measurement alarming, or disables abso-
lute alarming altogether.
0 = no alarming
1 = High and Low measurement alarming
2 = High measurement alarming only
3 = Low measurement alarming only

MANALM Manual Alarm Option is a configurable input which enables and disables
configured alarm options to function in Manual. Normally alarms are
processed only in the Auto mode.
0 = No alarming in Manual
1 = Full alarming in Manual

709
B0193AX – Rev AB 24. DPIDA Controller

2 = No Output alarming in Manual


3 = No output alarming in Track
4 = No output alarming in Manual or Track

MANSW Manual Switch is a boolean input. When true, 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 manual override feature. When MBADOP is


set to 1 or 2, the block sets the unlinked MA input to manual if it detects
a BAD or OOS status bit in the MEAS, BCALCI or FBK input, and
when set to 2, it detects that the Remote Setpoint (RSP) is not healthy
(i.e., value status is BAD or has a broken OM connection). This forces the
output state to manual as long as the BAD status remains. After the BAD
status clears, returning to Auto requires external intervention unless
AUTSW is true.
0 = no option enabled
1 = Switch to Manual when MEAS, BCALCI, or FBK value status is BAD
2 = Same as option 1, plus switch to Manual when RSP is not healthy
You can change MBADOP only by reconfiguring the block. MBADOP
has the same priority as the MANSW override, and it has precedence over
the AUTSW override. MBADOP has no effect when MA is linked. If any
of the MBADOP conditions are true, the block will be switched to Man-
ual regardless of the MANSW and AUTSW settings.

MCLOPT Manual Clamping Option is a configurable boolean input that allows you
to invoke output clamping while the block is in manual.

MEAS Measurement is a real input representing the FBM’s measurement input,


or the controlled variable. If redundant measurements are configured
(REDOPT is set to 1 or 2), MEAS is the selected one.

MEAS01 to Measurement 1 to 3 are real inputs representing FBM Channels 1, 2, and


MEAS03 3 analog inputs that are used for measurement redundancy. If redundant
measurements are configured (REDOPT is set to 1 or 2), MEAS is the
selected one.

MEASDB Measurement Alarm Deadband is a configururable real input expressed in


MEAS units (RI1), that applies to both High and Low Alarm Limits.

MEASGR Measurement Group is a short integer input that directs measurement


alarm messages to one of eight groups of alarm devices.

MEASHI Measurement High Alarm Indicator is a boolean output that is set true
when the measurement exceeds the high alarm limit (MEASHL). When
the measurement passes back through the deadband, the block sets
MEASHI to false.

710
24. DPIDA Controller B0193AX – Rev AB

MEASHL Measurement High Alarm Limit is a real input that defines the value of
the measurement that initiates a high absolute alarm.

MEASHT Measurement High Alarm Message Text is a user-defined text string of up


to 32 characters that is sent with the alarm message to identify the 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.

MEASLT Measurement Low Alarm Message Text is a user-defined text string of up


to 32 characters that is sent with the alarm message to identify the alarm.

MEASNM Measurement Alarm Name is a user-defined text string of up to


32 characters that identifies the alarm source in the alarm message. It
serves as a point descriptor label (for example, FURN 37 TEMP).

MEASPR Measurement Priority is a 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 (1 to 6) that specifies the


controller mode when the block is in Auto:
1 = P – proportional only.
2 = I – integral only.
3 = PD – proportional plus derivative.
4 = PI – proportional plus integral.
5 = PID – proportional, integral and derivative (product of factors).
6 = NIPID – non-interacting PID (sum of terms).

MULTIN Multiplicative Feedforward Input is a real input in engineering units


(RIN). Dynamic compensation is adaptively set by FFTUNE.

NAME Name is a user-defined string of up to 32 characters used to access the


block and its parameters.

NASOPT Alarm Suppression Option is a configurable, non-settable short integer


that specifies how the nuisance alarm delay is implemented:
 0 = Suppress nuisance alarms by delaying the Return-to-Normal
(default) by the length of time specified in NASTDB
 1 = Suppress nuisance alarms by delaying alarm detection by the
length of time specified in NASTDB
 2 = Suppress nuisance alarms by delaying both the Alarm Detec-
tion and the Return-to-Normal by the length of time specified in
NASTDB

711
B0193AX – Rev AB 24. DPIDA Controller

NASTDB Alarm Deadband Timer is a configurable long integer. Depending on the


value of NASOPT, it either specifies the deadband time interval that must
elapse before an alarm condition is allowed to return to normal, or the
length of a delay-on timer which specifies the amount of time between an
alarm’s detection and the announcement of the alarm. The parameter
value ranges from zero (default, no delay) to 2147483647 ms.

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.

OUTNM The Output Alarm Name is a user-defined string of up to 32 characters


that identifies the alarm source in the alarm message. It serves as a point
descriptor label (for example, F2 FUEL CTRL).

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).

OWNER Owner is a string data store of up to 32 ASCII characters that is used to


allocate control blocks to applications. Attempts to set OWNER are only
successful if its present value is the null string, an all-blank string, or iden-
tical to the value in the set request. Otherwise the request is rejected with a
LOCKED_ACCESS error. Any application can clear OWNER by setting

712
24. DPIDA Controller B0193AX – Rev AB

it to the null string, which is always accepted. Once set to the null string,
an application can then set the value as desired.

PBAND Proportional Band is an input expressed in percent. PBAND is the percent


of span change in input, that causes a full-span change in output. [100 /
PBAND] determines the gain of the controller when MEAS and OUT are
converted to percent of span. It is adaptively set by FBTUNE.

PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)

Period Length Period Length


0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****

* If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.

PERTIM Period Time is a real data store value representing the period time of the
DPIDA (shadow) block in seconds.

PHASE Phase is an integer input that causes the DPIDA (shadow) block to exe-
cute at a specific BPC within the time determined by the PERIOD. For a
CP with a BPC of 0.5 s and a PERIOD of 2.0 s, the legal PHASE values
are 0, 1, 2, and 3. Refer to the appropriate Integrated Control Software
Concepts document (B0700AG or B0193AW).

PRIBLK Primary Block is a configurable boolean input for cascade configuration.


PRIBLK should be configured 0 in a primary block, and 1 (true) in a
non-primary (secondary) block. Use PRIBLK in a cascade situation when
the source of the block's input connection needs to be initialized.

713
B0193AX – Rev AB 24. DPIDA Controller

A PRIBLK value of 1 causes a secondary block to wait for its primary


block to initialize before it uses the remote setpoint. The DPIDA block
can only be the secondary block.
Depending on the value of PRITIM, PRIBLK does this by forcing the
DPIDA block to remain in the Hold state until the Acknowledge status
bit (Bit 10) of MEAS is detected from the upstream block
(PRITIM = 0.0), or until the time defined by PRITIM expires
(PRITIM > 0.0). In the latter case, the explicit acknowledge from the
upstream block is not needed.
Refer to “PRIBLK and PRITIM Functionality” on page 739 for more
information on this parameter.

PRITIM Primary Cascade Timer is a configurable parameter used to delay the clos-
ing of the cascade to a primary block, when the output is initialized in the
DPIDA block. It is used only if the PRIBLK option is set. The cascade is
closed automatically when the timer expires without requiring an explicit
acknowledge by the upstream block logic.
Refer to “PRIBLK and PRITIM Functionality” on page 739 for more
information on this parameter.

PROPT Propagate Error Option is a boolean input. When true, PROPT sets the
ERROR Status bit of the output (OUT) parameter if all FBM measure-
ment inputs are in error while the block is in Auto. The measurement
input is in error when:
 Its BAD status bit is set true.
 Its OOS (Out-of-Service) status bit is set true.
 Its ERROR status bit is set true.
If a transition to Manual occurs while the ERROR status is true, it
remains true until either a set command is written to that output or until
the block transfers to Auto with the error condition returned to normal.

PRSCAS Present Cascade State is a data store that indicates the cascade state. It has
the following possible values:
Value State Description
1 INIT_U Unconditional initialization of the primary cas-
cade is in progress.
2 PRI_OPN The primary cascade is open.
3 INIT_C Conditional initialization of the primary cas-
cade is in progress.
4 PRI_CLS The primary cascade is closed.
5 SUP_INIT The supervisory cascade is initializing.
6 SUP_OPN The supervisory cascade is open.
7 SUP_CLS The supervisory cascade is closed.

714
24. DPIDA Controller B0193AX – Rev AB

PRSCON Present Control state is a short integer data store that contains the sub-
states of Auto:
1 = Holding
2 = Tracking
3 = Controlling (not open loop)

PRTYPE Priority Type is an indexed short integer (0 to 9) output that indicates the
alarm type of the highest priority active alarm. The PRTYPE outputs of
this block include the following alarm types:
0 = No active alarm
1 = High absolute
2 = Low absolute
3 = High-high absolute
4 = Low-low absolute
5 = High deviation
6 = Low deviation
7 = Rate alarm
8 = Bad alarm
25 = Out-of-range

REMSW Remote Switch is a boolean input. When true, it overrides the unlinked
LR and INITLR parameters, and drives the block to the Remote state. If
both LOCSW and REMSW are true, LOCSW has priority.

RI1 to RI2 Range Inputs 1 and 2 are data store arrays of real values that specify the
high and low engineering scale and change delta for the measurement
(MEAS) and bias (BIAS). For this block, it also forms an association with
a group of real input parameters that have the same designated range and
change delta.

RIN Range Input for MULTIN is a data store array of real values that specifies
the high and low engineering scale and change delta for input MULTIN.

RO1 Range Output 1 is a data store array of real values that specify the high
and low engineering scale of the controller output (OUT). For this block,
it also forms an association with a group of real output parameters that
have the same designated range.

RSP Remote Setpoint is a real input that is the selected setpoint source when
LR is set to Remote. Typically RSP connects to an upstream block in a
cascade scheme. RSP and its source must be expressed in MEAS units
(RI1).

SE Supervisory Enable is a boolean input that enables or disables Supervisory


Control in this block:
0 = Disable
1 = Enable

715
B0193AX – Rev AB 24. DPIDA Controller

SELRQ Select Request is a short integer input that selects one of up to three
redundant measurements for use by the FBM algorithm:
0= use normal selection based on REDOPT in ECB52 (see
REDOPT in “ECB52 Parameter Definitions” on page 722.
1= select analog input channel 1 measurement, if healthy
(REDOPT = 1 or 2).
2= select analog input channel 2 measurement, if healthy
(REDOPT = 1 or 2).
3= select analog input channel 3 measurement, if healthy
(REDOPT = 2).

SELST Select Status is a short integer input that indicates which of the three
redundant measurements is being used by the FBM algorithm, depending
on the value of SELRQ:
1 = analog input channel 1 is selected
2 = analog input channel 2 is selected
3 = analog input channel 3 is selected
If SELRQ is set to 0, SELST is set to 1.

SPCLMP Setpoint Clamp is a configurable short integer that specifies the limits to
be used when clamping or limiting the Supervisory setpoint (SUP_IN),
and Remote setpoint (RSP).
0 = clamp using the measurement scale limits (HSCI1 and LSCI1)
1 = clamp using the setpoint limits (SPHLIM and SPLLIM)
2 = reject values outside of the setpoint limits (SPHLIM and SPLLIM).

SPHLIM Set-Point High Limit is a real input that specifies the upper limit for the
local setpoint value in engineering units.

SPLLAG Setpoint Compensator. Lead-to-Lag ratio is a real input parameter. Its


optimum value depends on the process type: 0.2 for a dominant lag pro-
cess, 1.0 for a dominant delay. It is adaptively set by FBTUNE.

SPLLIM Setpoint Low Limit is a real input that specifies the lower limit for the
local setpoint value in engineering units.

SPRAMP Setpoint Ramp state is a boolean input that enables or disables setpoint
ramping:
0 = disable setpoint ramping
1 = enable setpoint ramping

SPRATE Setpoint Ramp Rate is a positive real input that specifies ramping of the
setpoint to a new target value (SPTARG) by rate in engineering units per
minute or by time to target in minutes, depending on the value of
SPROPT.

716
24. DPIDA Controller B0193AX – Rev AB

SPROPT Setpoint Option is a configurable short integer input that specifies the set-
point ramping option:
0= no setpoint ramping.
1= ramp using SPRATE as ramp rate (units/minutes).
2= ramp using SPRATE as ramp rate; do not ramp on deviation
alarm.
3= ramp using SPRATE as ramp time (minutes).
4= ramp using SPRATE as ramp time; do not ramp on deviation
alarm.

If SPROPT = 1, the setpoint ramps to a new target value SPTARG at the


rate SPRATE, when the operator or a program starts the ramp by setting
SPRAMP to 1.
If SPROPT = 2, ramping stops whenever the block is in deviation alarm
and continued setpoint ramping would increase the deviation. If ramping
decreases deviation, ramping is not inhibited. When the measurement
catches up to the setpoint, reducing the deviation, setpoint ramping is
uninhibited and resumes.
If SPROPT = 3, the setpoint ramps to a new target value SPTARG during
the time period SPRATE, when the operator or a program starts the ramp
by setting SPRAMP to 1.
If SPROPT = 4, ramping stops whenever the block is in deviation alarm
and continued setpoint ramping would increase the deviation. If ramping
decreases deviation, ramping is not inhibited. When the measurement
catches up to the setpoint, reducing the deviation, setpoint ramping is
uninhibited and resumes.
If SPTARG is changed during ramping, the block continues to ramp at
the initial rate calculated for the SPRATE time.
SPRAMP is reset and ramping stops when the setpoint reaches the target
or when an operator makes a manual setpoint change.

SPT SetPoint is a real output that always represents the active controller set-
point that is compared with the MEAS input to produce the ERROR sig-
nal. LR determines the source of SPT.
When LR is set to Remote, RSP is the source of SPT, which is secured
(not settable). When LR is set to Local, the set value is the source of SPT,
which is unsecured (settable). When LR is set to Local, SPT retains the
last RSP value until you change SPT.
When using the controller in only the Local mode, configure SPT to the
value you want it to assume when the block is installed and initialized to
Local.
SPT can also source the setpoint value to other blocks.
While settable by default, SPT is nonsettable while setpoint tracking is
active. (See STRKOP.)

717
B0193AX – Rev AB 24. DPIDA Controller

SPTARG SetPoint Target is a real input that is the final value for a setpoint ramp in
engineering units. It must be set within the setpoint SPHLIM and
SPLLIM limits, otherwise SPRAMP is reset to 0 and no ramping occurs.

STATEB State of the Feedback adaptor is a short integer output. Its values are:
-3 = Pretune
-2 = Off
-1 = Hold last tuning
0= Quiet, waiting for new (isolated) response
1= Locating and confirming peak 1
2= Locating and confirming peak 2
3= Locating and confirming peak 3
4= Locating and confirming peak 4
5= Wait
6= Settle (a non-isolated response may trigger a new search from
this state)

If a peak is not confirmed, later states may be bypassed.

STATEF State of the Feedforward adaptor is a short integer output. Its values are:
-2 = Off
-1 = Hold last tuning
0= Quiet, waiting for new disturbance
1= Unmeasured disturbance (or non-isolated response)
2= Measured disturbance
3= Significant (isolated) response
4= Confirmed response
5= Wait
6= Settle

States 4, 5, and 6 are bypassed if an FBTUNE extension block is not


active on the DPIDA block.

STRKOP Setpoint Track Option is a short integer input. When active, STRKOP
enables the setpoint to track the measurement input under the following
conditions.
0 = no option enabled
1 = SPT parameter tracks the measurement input when the block is in
Manual, or the cascade is open downstream (Initialization input INITI is
true).
2 = SPT parameter tracks the measurement only when the block is in
Manual.
STRKOP is active only when the setpoint source selector LR is in Local.

718
24. DPIDA Controller B0193AX – Rev AB

SPT is nonsettable while setpoint tracking is active. You can change


STRKOP only by reconfiguring the block.

SUPBCO Supervisory Back-Calculated Output is a real output that specifies the


value to be used by the Supervisory application to initialize its output to
the current setpoint. 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

SUPBCO is not configurable and can only be accessed by an application


program.

SUPGRP Supervisory Group is a short integer input (1 to 8) that specifies one of


eight groups to which this block is assigned for Supervisory Control.

SUPOPT Supervisory Option is a configurable short integer input that specifies


whether or not this block is under control of a Supervisory Control appli-
cation:
0 = No Supervisory control
1 = Set Point Control (SPC) of the block’s set point (Supervisory setpoint
control (SSC))
2 = Direct Digital Control (DDC) of the block output (Supervisory
output control)
3 = SPC, with an implicit acknowledge by the CP
4 = DDC, with an implicit acknowledge by the CP
Be aware that options 1 and 2 require an explicit acknowledge by the
application software to close the supervisory cascade. This must be done
by setting the ACK status bit in the SUP_IN parameter using special OM
access functions.

SUP_IN Supervisory Input is a real output that is the parameter set by a Supervi-
sory application when performing supervisory control of this block’s set-
point. SUP_IN also contains a status bit (Bit 10) that must be set by the
supervisor to acknowledge a request to initialize (Bit 10 in SUPBCO).

TRACK Track is a real input that provides the input signal that the block output
(OUT) tracks when the block is in Auto and TRKENL is set to 1.

TRKENL Track Enable is a boolean input that enables the block output to follow
the TRACK input.
0 = disable tracking
1 = enable tracking

719
B0193AX – Rev AB 24. DPIDA Controller

TYPE Type is a system-level mnemonic label indicating the block type. Enter
“DPIDA” or select “DPIDA” from the block type list under Show when
configuring the block.

UNACK Unacknowledge is a boolean output that the block sets to true when it
detects an alarm. It is typically reset by operator action.

720
24. DPIDA Controller B0193AX – Rev AB

24.5 ECB52 Parameters


The ECB52 block parameters and their attributes are listed in Table 24-2. These parameters are
defined in “ECB52 Parameter Definitions” on page 722.

Table 24-2. ECB52 Parameters

Name Description Type Accessibility Default Units/Range


Configured Parameters - INPUTS
ATC air-to-close bool no-con/no-set 0 ---
CHAREN characterize enable boolean no-con/no-set 0 0 to 1
CYCTIM FBM cycle time short no-con/set 0 0, 2 to 10
DESCRP block descriptor string no-con/no-set 2 blanks 1 to 32 chars
DEV_ID FBM Letterbug char[6] no-con/no-set 1 blank 6 characters
FLTOPT filter option short no-con/set 0 0 to 1
FLTTIM filter time short no-con/set 0 0 to CYCTIM
FS5DPD failsafe value integer no-con/no-set 0 0 to 64000
FSDLAY failsafe delay long no-con/no-set 1000 10 ms units
FSENAB failsafe enable short no-con/no-set 0 0 to 1
FSMMPD failsafe mask main short no-con/no-set 0 0 to 255
FSOPT failsafe option short no-con/no-set 0 0 to 4
HMSCAL high meas scale integer no-con/no-set 64000 0 to 64000
HORVAL hi out-of-range val integer no-con/no-set 64000 0 to 64000
HOSCAL high output scale integer no-con/no-set 64000 0 to 64000
HWTYPE hardware type short no-con/no-set 0 4, 17, or 22
INVDFI invert device fail boolean no-con/no-set 0 0 to 1
LMSCAL low meas scale integer no-con/no-set 0 0 to 64000
LORVAL lo out-of-range val integer no-con/no-set 0 0 to 64000
LOSCAL low output scale integer no-con/no-set 0 0 to 64000
NAME block name string no-con/no-set 2 blanks 1 to 32 chars
NUMPTS number charac pts short no-con/no-set 2 2 t0 9
OORENB out-of-range enable boolean no-con/no-set 0 0 to 1
PERIOD block sample time short no-con/no-set 1 0 to 9
PHASE block execute phase integer no-con/no-set 0 see param def
PNLOPT panel option boolean no-con/set 0 0 to 1
REDOPT redundancy option short no-con/no-set 0 0 to 2
SQRENB square root enable boolean no-con/no-set 0 0 to 1
SWTYPE software type short no-con/no-set 0 52
TYPE block type integer no-con/no-set 254 ---
X_1PD to X_9PD x1 to x9 coordinates integer no-con/no-set --- 0 to 4000
Y_1PD to Y_9PD y1 to y9 coordinates integer no-con/no-set --- 0 to 4000
Non-Configured Parameters - OUTPUTS
ACHNGE a change integer con/no-set 0 -32768 to 32767
ECBSTA ECB status pack_l con/no-set 0x00...0 0 to 0xFFFFFFFF
DATA STORES
ACTION equip act request pack_b no-con/set 9 0 to 100
BUSWDS bus switch disable short no-con/no-set 0 0 to 1

721
B0193AX – Rev AB 24. DPIDA Controller

Table 24-2. ECB52 Parameters (Continued)

Name Description Type Accessibility Default Units/Range


CYCLE actual cycle time short no-con/no-set 0 0, 2 to 10
DEFINE no config errors boolean no-con/no-set 1 0 to 1
ERCODE configuration error string no-con/no-set 2 blanks 1 to 43 chars
FSAFE failsafe mask pack_l no-con/no-set 0x00...0 0 to 0xFFFFFFFF
HWREV hardware revision char[2] no-con/no-set 2 blanks 0 to 2 chars
NR_INP # of inputs short no-con/no-set 0 ---
NR_OUT # of outputs short no-con/no-set 0 ---
LADDR logical address short no-con/no-set 255 0 to 255
OF_INP offset of input integer no-con/no-set 0 ---
OF_OUT offset of outs integer no-con/no-set 0 ---
OPSTAT operational status short no-con/no-set 8 0 to 255
OUOM01 out message index0 short no-con/no-set 78 0 to 255
SWREV software revision char[12] no-con/no-set 1 blank 0 to 12 chars

24.5.1 ECB52 Parameter Definitions


ACHNGE Alternate Change is an integer output that is incremented each time a set-
table parameter is changed externally. It wraps around from 32767 to
-32768.

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

Bit Number Boolean Connection


(0 to 15) Description When True (B16 to B1)
0 ON_LINE ACTION.B16
1 OFF_LINE ACTION.B15
2 RUN_DIAG ACTION.B14
3 DOWNLOAD ACTION.B13
4 CALIB1 # ACTION.B12
5 CALIB2 # ACTION.B11
6 UNDECLAR_ECB ACTION.B10
* Bit 0 is the least significant, low order bit.

NOTE
Do not set ACTION with an application program.

722
24. DPIDA Controller B0193AX – Rev AB

ATC Air-To-Close is a boolean input that specifies reversing the controller out-
put for use with air-to-close valves. If ATC is set true, the span of the FBM
analog output is reversed. For example, a 100% output drives 0 V dc or
4 mA, while a 0% output drives 10 V dc or 20 mA. Inversion does not
effect the OUT and BCALCO parameters.

BUSWDS Bus Switch Disable is a boolean input that enables or disables FBM port
switching:
0 = Enable port switching
1 = Disable port switching

CHAREN Characterizer Enable is a boolean input that enables or disables FBM


characterization of the selected measurement input using a 9-point charac-
terizer.
0 = Disable characterization
1 = Enable characterization

CYCLE Cycle is a short integer input that represents the actual cycle time that the
controller is using, expressed in CYCTIM values. If FBM processor load-
ing is greater than the configured CYCTIM allows, the controller adap-
tively selects a slower CYCTIM value that allows it to handle the load.

CYCTIM Cycle Time is a short integer that specifies the cycle time of the controller
algorithm in 5 ms increments as follows:
Value Time (ms) Value Time (ms)
0 (default) 50 6 30
2 10 7 35
3 15 8 40
4 20 9 45
5 25 10 50

Processor power limits the options usable at fast cycles. If the cycle time is
too fast for the configured options, the FBM adaptively selects a slower
CYCTIM value that allows it to handle processor loading. 10ms cycle
times are possible only for nonredundant measurement inputs without
characterizer or square root conditioning. 15ms cycles can support input
signal conditioning or redundancy but not both.

NOTE
As the controller cycle time is reduced, the precision of the analog conversion is
reduced. See the FLTOP and FLTTIM parameter descriptions.

DEFINE Define is a boolean data store. When true, it indicates that the block has
no configuration errors. It is the inverse of UDEF in parameter BLKSTA.
When the block initializes, DEFINE is set to 0 (undefined) if the block

723
B0193AX – Rev AB 24. DPIDA Controller

detects a parameter configuration error. To return DEFINE to a true state,


correct all configuration errors and reinstall the block.

DESCRP Descriptor is a user-defined string of up to 32 characters that describes the


block’s function (for example, COMPRESSOR 3 SURGE CONTROL).

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

Bit Number Boolean Connection


(0 to 31) Description When True (B32 to B1)
0 ECB is on-scan ECBSTA.B32
1 Device is shutdown ECBSTA.B31
8 Device is not ready ECBSTA.B24
9 Communications failed ECBSTA.B23
14 ECB is undefined ECBSTA.B18
15 ECB is on ECBSTA.B17

ERCODE Error Code is a string data store that indicates the type of configuration
error that caused the block’s DEFINE parameter to be set false. Validation
of configuration errors does not proceed past the first error encountered
by the block logic.

FLTOPT Filter Option is a short integer input that specifies the number of sam-
pling windows for analog conversion averaging:
0= average over two sampling windows to provide anti-alias
filtering (default)
1= average over one sampling window

FLTTIM Filter Time is a short integer input that specifies the sampling window in 5
ms increments from 1 to the value of CYCTIM. The default value of 0
sets the sampling window equal to the controller cycle time. This is the
optimal setting for almost all cases:

Value Time (ms) Value Time (ms)


0 (default) CYCTIM 6 30
1 5 7 35

724
24. DPIDA Controller B0193AX – Rev AB

Value Time (ms) Value Time (ms)


2 10 8 40
3 15 9 45
4 20 10 50
5 25

FS5DPD Failsafe Channel 5 Data is an integer input that specifies the fallback value
for the controller output. The value represents the D/A raw count value
and must be related to the intended signal conditioning. For example, if
this output is going to a 4 to 20 ma device (raw count range: 12800 to
64000), then FS5DPD must be within that range.

FSAFE Failsafe Map is a 32-bit data store that is bit-mapped to maintain the Fail-
safe state of each output channel related to the ECB. All bits are set by the
PIO/ECB interface when the FBM undergoes Failsafe at the module level.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

FSDLAY Failsafe Delay is a long integer input timer. When enabled by FSENAB, it
specifies (in units of 0.01 seconds), the length of time the FBM waits for a
communication from the CP before entering a Communications Failure
(or software) Failsafe state. This state asserts the output values specified by
the Failsafe configuration. PIO security commands (for example, heart-
beat, read-device status) do not reset this timer.
For example, the default value of 1000 causes the FBM to wait 10 seconds
between CP communications before going to the Failsafe state, if
FSENAB is configured true.

FSENAB Failsafe Timer Enable is a boolean input that enables the FSDLAY timer.
When the FSDLAY timer expires while the FBM is waiting for a commu-
nication from the CP (Communications Failure), the FBM enters the
Failsafe state and takes the action specified by FSOPT.
0 = Disable FSDLAY timer
1 = Enable FSDLAY timer
If communications fail with FSENAB set false, the FBM does not enter
Failsafe for this reason. Setting FSENAB false does not prevent the FBM
from going to Failsafe for other reasons, such as:
 FBM reboot
 EEPROM update
 FBM taken off-line from the System Management Displays
 Power failure
 FBM restart

725
B0193AX – Rev AB 24. DPIDA Controller

FSMMPD Failsafe Mask Main for ECB Type 52 is a short integer input that specifies
the Failsafe action taken during FBM Failsafe mode for the analog and
digital outputs.
0 = fallback value
1 = Hold

FSOPT Failsafe Option specifies the action to be taken by the controller when a
Communications Failure occurs with FSENAB set true while the control-
ler is in Auto or Hold:
Upon Failsafe recovery from Hold, the controller goes to Auto.
0 = No mode change; control to last setpoint
1 = Go to Hold
2 = Go to Hold with output set Failsafe
3 = Go to Manual
4 = Go to Manual with output set Failsafe
Upon Failsafe recovery from Manual, the controller stays in Manual.

HMSCAL High Measurement Scale is an integer input (0 to 64000) that specifies the
FBM count value (default = 64000) that represents a measurement value
of 100.0%.

HORVAL High Out-of-Range Value is an integer input that specifies the high limit
in counts for range checking of the FBM measurement inputs MEASn
configured by REDOPT. If OORENB is set true and a measurement is
greater than this limit, its status is set Bad.

HOSCAL High Output Scale is an integer input (0 to 64000) that specifies the FBM
count value (default = 64000) that represents an output value of 100.0%.

HWREV Hardware Revision is the revision level of the FBM type that connects to
this ECB. Once HWREV is set, it cannot be edited via the Integrated
Control Configurator.

HWTYPE Hardware Type is the type of FBM that connects to this ECB. Once
HWTYPE is set, it cannot be edited via the Integrated Control
Configurator.

INVDFI Invert Device Fail option is a boolean input that specifies inversion of the
Device Fail input (Channel 10) in an FBM17/FBM227 to determine the
fail state of the field device:
0 = No inversion
1 = Invert

LADDR Logical Address of an FBM is a short integer data store parameter.

LMSCAL Low Measurement Scale is an integer input (0 to 64000) that specifies the
FBM count value (default = 0) that represents a measurement value of
0.0%.

726
24. DPIDA Controller B0193AX – Rev AB

LORVAL Low-Out-of-Range Value is an integer input that specifies the low limit
for range checking of the FBM measurement inputs MEASn configured
by REDOPT. If OORENB is set true and a measurement is less than this
limit, its status is set Bad.

LOSCAL Low Output Scale is an integer input (0 to 64000) that specifies the FBM
count value (default = 0) that represents an output value of 0.0%.

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

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.

OORENB Out-of-Range Enable is a boolean input. When true, OORENB specifies


checking of the FBM measurement inputs MEASn for range violations
using parameters HORVAL and LORVAL. The FBM checks all measure-
ment inputs configured by REDOPT.

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

727
B0193AX – Rev AB 24. DPIDA Controller

Period Length Period Length


3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****
*
If the BPC is 0.2 sec., this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec., this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For a CP with a BPC of
0.5 s and a PERIOD of 2.0 s, the legal PHASE values are 0, 1, 2, and 3.
Use the same PERIOD and PHASE values for the ECB52 and DPIDA
blocks. Refer to the appropriate Integrated Control Software Concepts docu-
ment (B0700AG or B0193AW).

PNLOPT Panel Option is a boolean input that specifies the use of the local opera-
tor’s panel (Foxboro Deutschland) for manual operation of the controller
output in an FBM17/FBM227.
0 = No panel
1 = Panel

QALSTA Quality Status parameter (QALSTA) is a non-configurable packed long


that provides a combination of value record status, block status
(BLKSTA), and alarm status (ALMSTA) information in a single connect-
able output parameter. Available bits for this block are provided below.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

Bit Boolean Connection


Number1 Definition Contents (B32 to B1)
30 Alarms Unacknowledged ALMSTA.UNA QALSTA.B2

728
24. DPIDA Controller B0193AX – Rev AB

Bit Boolean Connection


Number1 Definition Contents (B32 to B1)
29 Alarms Inhibited ALMSTA.INH QALSTA.B3
25 High-High Absolute Alarm ALMSTA.HHA QALSTA.B7
24 Low-Low Absolute Alarm ALMSTA.LLA QALSTA.B8
21 High Deviation Alarm ALMSTA.HDA QALSTA.B11
20 Low Deviation Alarm ALMSTA.LDA QALSTA.B12
19 High Output Alarm ALMSTA.HOA QALSTA.B13
18 Low Output Alarm ALMSTA.LOA QALSTA.B14
17 High Absolute Alarm ALMSTA.HMA QALSTA.B15
16 Low Absolute Alarm ALMSTA.LMA QALSTA.B16
5 Manual BLKSTA.MA QALSTA.B27
4 Low Limited MEAS.LLO status QALSTA.B28
3 High Limited MEAS.LHI status QALSTA.B29
2 Uncertain MEAS.ERR status QALSTA.B30
1 Out-of-Service MEAS.OOS status QALSTA.B31
0 Bad MEAS.BAD status QALSTA.B32
1.
Bit 0 is the least significant, low order bit.

REDOPT Redundancy Option is a short integer input that specifies redundant mea-
surement inputs MEASn for FBM04/FBM204 and FBM17/FBM227:
0 = no redundancy (default; channel 1 only)
1 = dual redundancy (channels 1 and 2); also sets BLKSTA.B11 (RED) in
the DPIDA block
2 = triple redundancy (channels 1, 2 and 3); also sets BLKSTA.B28
(RED2) in the DPIDA block
The REDOPT parameter (in ECB52) is used in conjunction with
BLKSTA.B11 (RED) and BLKSTA.B28 (RED2) to control the condi-
tional display of the three possible measurements of the DPIDA. The first
measurement is always on the display. The second and third measure-
ments can be added as well; the second measurement must be shown in
order for the third measurement to be displayed.
When REDOPT=1 (in ECB52), BLKSTA.B11 (RED) is set to 1 to
display the second measurement.
When REDOPT=2 (in ECB52), BLKSTA.B28 (RED2) is set to 1 to
display the third measurement. Since the second measurement must be
displayed in order to display the third measurement, BLKSTA.B11 (RED)
must have already been set to 1 before BLKSTA.B28 (RED2) is set to 1.

SQRENB Square Root Enable is a boolean input that enables or disables application
of the square root function to the scaled measurement.
0 = Disable (default)
1 = Enable

729
B0193AX – Rev AB 24. DPIDA Controller

SWREV Software Revision is the revision level of the FBM software type ECB52.
Once SWREV is set, it cannot be edited via the Integrated Control Con-
figurator.

SWTYPE Software Type is the ECB52 type. Once SWTYPE is set, it cannot be
edited via the Integrated Control Configurator.

TYPE Type is a system-level mnemonic label indicating the block type. Enter
ECB52 or select ECB52 from the block type list under Show when con-
figuring the block.

X_1PD to X_9PD Integer input coordinate values for an 8-segment characterizer that condi-
tions the selected measurement when CHAREN is set true. The values
range from 0 to 4000 counts representing 0 to 100%. They must be
monotonically increasing.

Y_1PD to Y_9PD Integer output coordinate values of an 8-segment characterizer that condi-
tions the selected measurement when CHAREN is set true. They are
required to be monotonically increasing. The values range from 0 to 4000
counts representing 0 to 100%. They must be monotonically increasing.

24.6 Functions
24.6.1 Detailed Functional Diagram
Figure 24-2 is a detailed functional diagram for the DPIDA Controller. Functions performed by
the FBM are not shaded in Figure 24-2. Functions performed by the DPIDA shadow block in the
CP are shaded in Figure 24-2.

24.6.2 DPIDA Detailed Operation


The controller provides P, I, PI, PD, PID, and NIPID control modes. The following controller
tuning parameters are set by you or adaptively tuned by the FBTUNE block (see the FBTUNE
Block Description for details):
 Proportional band (PBAND)
 Integral time (INT)
 Derivative time (DERIV)
 Derivative gain (KD)
 Set-point-compensation lead/lag ratio (SPLLAG).
The FFTUNE block provides adaptive feedforward control by compensating the multiplicative
input (MULTIN) or BIAS input (see the FFTUNE Block Description for details).
The FBM reads the measurement and changes the output using the setpoint and other informa-
tion provided by the CP.
The setpoint sources are prioritized as follows:
1. Supervisory enable (SE) when SUPOPT is 1 or 3
2. Local switch (LOCSW)

730
24. DPIDA Controller B0193AX – Rev AB

3. Remote switch (REMSW)


4. Local setpoint (LOCSP)
5. Local or Remote (LR).

731
732
HSCI1, LSCI1, SPHLIM, SPROPT, SPTARG, LR, LOCSP, LOCSW, SUPOPT, HZONE, LZONE, HSCIN, MULTIN BIAS KBIAS, MA, MBADOP, BAO
SPLLIM, SPCLMP SPRAMP, SPRATE REMSW, STRKOP SE KZONE, NONLOP LSCIN BBIAS MANSW, AUTSW

Local Bad I/O BAD


SPT Scale, Limit Ramp FFTUNE
Disable Scale Scale Detection
block linked
B0193AX – Rev AB

Remote SPT
RSP Scale, Limit
Track Enable Mult
+ +
SUP_IN Scale, Limit
OSV
SPLLAG* Add
A r Scale OUT
r DPIDA
1.0
rf
Local
dy Panel
Gain Compensator Lag: I ² ------ + y = x = input
A dt Ramp
1 MA
y = ---  x  t  – y  t   dt + y 0 = output
i t I  fr b
Manual Control
rf ml
e eg 100 ep m mf mb Auto ms Output
MODOPT +
---------- ² e g
P + x + Limit . Scale
Hold
_ Track
_
+ HOSCAL
LOSCAL
Lag
DERIV*
FBM
KD*
Using
Butterworth dc f
Filter cf D ² -------- cd ECB52 fbb
dt fbr f bb ³ f r fb – b fb
c .
SELRQ
meas1
OUT2

Figure 24-2. PIDA Controller Detailed Functional Diagram


meas2 Scale Linearize Characterize
meas3 No
OSV
REDOPT LMSCAL Nine X, Y CHAREN
HMSCAL SQRENB Values Clamp
Yes

*From FBTUNE block, if connected HOLIM, HSCO1, MA, TRACK HOLD,


PBAND* INT* MEAS BCALCO LOLIM LSCO1 MCOPT MODOPT
TRKENL
24. DPIDA Controller
24. DPIDA Controller B0193AX – Rev AB

If supervisory option (SUPOPT) is 1 or 3 and supervisory enable (SE) is true, the controller uses
the supervisory setpoint (SUP_IN) for calculating the controller output (see Figure 24-2). For
more information, refer to “Setpoint Processing” on page 744 and the Supervisory Setpoint Control
(SSC) (B0193RY) document.
If SUPOPT is 0, the LR setpoint source selector, together with the two overrides, LOCSW and
REMSW, determines the setpoint source at any time. In Local, you can ramp the setpoint from
the Block Detail display.
When STRKOP = 1 or 2 while SUPOPT is 0 and LR is false, the local setpoint (SPT) tracks the
measurement when the block reinitializes or initializes with a local setpoint. This allows bumpless
return to automatic control when the controller returns to closed-loop operation.
The controller provides the MANSW and AUTSW override inputs to force the controller to the
Manual or Auto state. In Manual, you can ramp the controller output from the Block Detail dis-
play or A/M station.
When TRKENL is true, the output tracks an independent signal source (TRACK).
The DPIDA block in the CP operates in conjunction with the control algorithm in the FBM to
support tuning, scaling and alarming functions (see Figure 24-2). The block provides:
 Absolute and deviation alarming of the measurement (see Figure 24-4)
 Absolute alarming of the controller output
 Bad I/O alarming.
FBM variables used in Figure 24-2 and the following sections to described controller operations
are listed in Figure 24-3.

Table 24-3. FBM Variables

Variable Description
A Setpoint lead/lag ratio (SPLLAG)
b b = KBIAS (BIAS + BBIAS)
c Controlled variable – selected measurement
cf Butterworth filtered measurement
cd Derivative filtered cf
ci Integral filtered cd
D Derivative time (DERIV)
e Control error
eg Nonlinear gain adjusted e
ep Proportional filtered eg
fr Scaled MULTIN
fb Feedback from controller output
fbb fbb = fb - b
fbr fbr = fbb - fr
I Integral time (INT)
KD Derivative gain (KD)
Kz Zone gain for nonlinear gain

733
B0193AX – Rev AB 24. DPIDA Controller

Table 24-3. FBM Variables (Continued)

Variable Description
m Manipulated variable
mf mf = m fr
mb mb = mf + b
ml Limited mb
ms ms = 6400 (ml - LOSCAL / HOSCAL - LOSCAL)
meas1 Measurement 1
meas2 Measurement 2
meas3 Measurement 3
P Proportional band (PBAND)
r Selected setpoint
rf Compensated setpoint
t Time constant
x Lag input
y Lag output

24.6.2.1 Control Modes


The DPIDA controller performs most of the functions of the PID and PIDX blocks as well as
additional functions. The DPIDA can be configured with the following values of mode option
(MODOPT) to perform a variety of control algorithms:
1 = Proportional (P)
2 = Integral (I)
3 = Proportional-plus-Derivative (PD)
4 = Proportional-plus-Integral (PI)
5 = Proportional-plus-Integral-plus-Derivative (PID)
6 = Non-Interactive PID (NIPID).
The first five modes are the same as those of the PID and PIDX blocks, except that those having
proportional and integral action also have a setpoint lead-lag compensator. The P and PI modes
are the same as the PD and PID modes except the derivative time is set to 0.
The setpoint compensator allows the amount of proportional action applied to the setpoint to be
less than that applied to the measurement (see Figure 24-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.

734
24. DPIDA Controller B0193AX – Rev AB

The controller algorithms can be expressed using the differential operator (s = d()/dt) as follows
(see Table 24-3 for variable definitions):
 Proportional only (P):

100
m b = ---------  r – c f f r + b
P
=0
 Integral only (I):

1
dm b = ----  r – c f f r + b
Is
=0

 Proportional and derivative (PD):

100
m b = ---------  r –  1 + Ds c f f r + b
P
D
 = -------
KD

 Proportional and integral (PI):

100 1 1
m b = ---------   ---- + A r –  ---- + 1 c f f r + b
P Is Is
=0

 Proportional, integral, and derivative (PID):

100 1 1
m b = ---------   ---- + A r –  ---- + 1  1 + Ds c f f r + b
P Is    Is  
1--- =  1--- + ---
1- K
  I D D

 Non-interacting PID (NIPID):

100 1 1 + 1 + Ds c  f + b
m b = ---------   ---- + A r –  ----
P Is Is  f r
D
 = -------
KD

 In the above expressions:

c
c f = ------------------------------------------
-
2
1 + s + 0.5  s 

735
B0193AX – Rev AB 24. DPIDA Controller

The controller algorithms can also be expressed in the time domain as follows:
 Proportional only (P):

100
m b = ---------  r – c f f r + b
P

 Integral only (I):

1 t
m b =  ---   r – c f  dt f r + b
I 0

 Proportional and derivative (PD):

100 dc f
m b = ---------  r –  c f + D -------  f r + b
P   dt  
D
 = -------
KD

 Proportional and integral (PI):

100 1 t
m b = ---------  ---   r – c f  dt + Ar – c f r + b
P I 0

 Proportional, integral, and derivative (PID):

100 1 t D dc f
m b = ---------  ---   r – c f  dt + Ar –  1 + ---- c f – D ------- f r + b
P I 0 I dt
1--- =  1--- + ---
1- K
  I D D
 Non-interacting PID (NIPID):

100 1 t dc f
m b = ---------  ---   r – c f  dt + Ar – c f – D ------- f r + b
P I 0 dt 
D
 = -------
KD

 In the above expressions:

2
dc f  2 d c f
c f +   ------- + -----  2 = c
dt 2 d t

736
24. DPIDA Controller B0193AX – Rev AB

NOTE
The above expression for cf can also be expressed as two simultaneous integral equa-
tions, but the above expression more clearly shows the effect of  on cf.

The sign of the deviation (cf - r) signal is opposite that of the error (r - c). Scaling for engineering
units and normalized FBM counts and provision for sign reversal (INCOPT) is not shown in the
above simplified mathematical representations.
NIPID action introduces the capability of tuning to achieve complex (underdamped) numerator
roots. This capability is needed in order to achieve best performance when the process has two
dominant lags.
The DPIDA supports multiplicative and additive feedforward compensation, and local setpoint
ramping and limiting. Using extender blocks, the PIDA controller can accommodate self tuning
of feedback (FBTUNE) and feedforward (FFTUNE) parameters.
The measurement filter response is shown in Figure 24-5. The setpoint gain compensation
response is shown in Figure 24-7.
Table 24-4 summarizes the filtering and tuning features for these control modes.

Table 24-4. Control Mode Filtering and Tuning Features

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

24.6.2.2 Manual State


DPIDA Key Parameters: MA, MCLOPT
In Manual (MA = 0), the controller does not perform PID control and the controller output is
settable. In Manual, the controller does not adjust OUT2, the back-calculated indication of the
internal controller output expressed in percent.
During a transition to Manual while MANALM is false, the controller clears all alarm and limit
indicators. If the manual clamp option MCLOPT is true, the controller limits any value sets of
the output parameter.
The MA parameter allows an operator, another block, or a supervisory program to switch between
the Manual and Auto states. Transfer to Auto is bumpless (see “Bumpless Start-up and Transfers”
on page 739).
When MA is toggled, its status is immediately displayed on the faceplate of the Block Detail Dis-
play.

737
B0193AX – Rev AB 24. DPIDA Controller

24.6.2.3 Auto State


DPIDA Key Parameters: INT, MA, OUT, SELRQ
In Auto (MA = 1), the controller performs the appropriate mode of control. Closed loop auto-
matic control is actually performed in the substate of Auto called Controlling. In this state, the
controller computes the output command signal in response to the setpoint (r) and measurement
(cf ), according to the configured controller mode. The controller generates integral control action
using the integral-feedback signal (fb) that is back calculated (fbr) and fed through a first-order lag
in a positive feedback arrangement. The integral (INT) setting establishes the time constant of the
lag. fb is tied to the controller output (OUT).
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 756).
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.

24.6.2.4 Manual/Auto Overrides


DPIDA Key Parameters: AUTSW, CEOPT, INITMA, MA, MANSW, MBADOP
Since it is possible to set the parameters which invoke these block states simultaneously, certain
states have priority over other states for execution. If multiple block states are set, states with
higher priority will override those with lower priority as listed below.
The priority of the Manual/Auto overrides is as follows when MA is unlinked, with “1” being the
highest priority:
1. MBADOP and MANSW have equal priority
2. AUTSW
3. INITMA
4. MA
5. HOLD
6. CEOPT
7. TRKENL.
If MBADOP = 1 or 2 and the MA parameter is unlinked, the controller sets the MA input to
Manual and secures it when the MEAS.BAD or MEAS.OOS status bit is true. This forces the
output state to Manual as long as one or both of these bits is true. After the BAD or OOS status
clears, returning to Auto requires external intervention unless AUTSW is true.
MBADOP has the same priority as the MANSW override, and it has precedence over the
AUTSW override. If MBADOP = 1 or 2 and a BAD or OOS status is detected while MA is
unlinked, the controller goes to Manual regardless of the AUTSW setting.
If MANSW is true, it drives the controller to Manual by setting MA to false and securing it.
MANSW has priority over AUTSW. If both MANSW and AUTSW are true, the controller goes
to Manual.
If AUTSW is true, it drives the controller to Auto by setting MA to true and securing it.
CEOPT enables implicit control error handling of HOLD, STRKOP, and MBADOP. When
CEOPT is enabled, a control error is detected if the MEAS input has a status such as OOS, BAD,
or off-scan. If MBADOP = 1 or 2, a control error forces the controller to Manual. If MDADOP

738
24. DPIDA Controller B0193AX – Rev AB

is set false, a control error forces the controller to Hold if MA is set to Auto, and it disables set-
point tracking if SPTRKOP is set true.
If CEOPT is not enabled, then control error detection is not performed, and MBADOP, HOLD,
and SPTRK handling is performed explicitly by asserting the HOLD input.

24.6.2.5 Holding State


DPIDA Key Parameters: HOLD, MBADOP
ECB52 Key Parameter: FSOPT
If the HOLD input is set to 1 while controlling in Auto, the controller stops the control calcula-
tion and holds the output at the last good value. If the controller experiences an open loop condi-
tion, it automatically transitions to Hold or Manual to prevent integral windup depending on
MBADOP and FSOPT. Transfer back to Auto is bumpless (see “Bumpless Start-up and Trans-
fers” on page 739).

24.6.2.6 PRIBLK and PRITIM Functionality


DPIDA Key Parameters: MEAS, PRIBLK, PRITIM
The Primary Block (PRIBLK) parameter indicates whether the DPIDA block has a connection
from an upstream block (PRIBLK=1) or not (PRIBLK=0). Its value, together with that of the
Primary Cascade Timer (PRITIM), determines whether the DPIDA block remains in Hold for a
fixed time delay (of length defined by PRITIM), or ends the Hold when the Acknowledge status
bit (Bit 10) of MEAS is detected from the upstream block (if PRITIM = 0.0). During initializa-
tion, the acknowledgement is not required and a Hold of one cycle only occurs.

24.6.2.7 Output Tracking State


DPIDA Key Parameters: OUT, TRACK, TRKENL
If TRKENL is set to 1 while controlling in Auto, the controller output (OUT) is forced immedi-
ately to follow the TRACK input. Transfer back to Auto is bumpless (see “Bumpless Start-up and
Transfers” on page 739).

24.6.2.8 Bumpless Start-up and Transfers


DPIDA Key Parameters: BCALCO, HOLD, MEAS, PRIBLK, SPT, STRKOP, TRKENL
Any transition from Manual, Holding, or Tracking to the Controlling state is performed
bumplessly by back-calculating the PID dynamics in the FBM (that is, the integral term absorbs
any proportional action and the derivative term is set to zero), so that the output maintains its
present value at the moment the transition occurs.
A transfer of the setpoint source from Remote to Local is inherently bumpless, because SPT
retains the last value that was transferred from the remote setpoint.
The setpoint track option (STRKOP) forces the local setpoint (SPT) to track the measurement
when the block reinitializes or initializes with a local setpoint. While setpoint tracking is active,
SPT is secured (nonsettable) to prevent you from manipulating the local setpoint value.

24.6.2.9 Cascade Handling


DPIDA Key Parameters: BCALCO, BLKSTA, CEOPT, INCOPT, MEAS, PRIBLK, RSP, SPT

739
B0193AX – Rev AB 24. DPIDA Controller

The DPIDA controller can only be at the bottom of the cascade. A typical cascade configuration
using the DPIDA controller is shown in Figure 24-3.

PRIBLK = 0 PRIBLK = 1
PID
MEAS OUT RSP DPIDA
Block
MEAS

FBK
BCALCI BCALCO
Figure 24-3. Cascade Configuration (Typical)

To provide bumpless initialization of the upstream block in the cascade:


 Set PRIBLK to true for the secondary controller (DPIDA).
 Set PRIBLK to false for the primary controller.
 Link BCALCI of the primary controller to BCALCO.
 Link FBK (external reset) of the primary controller to BCALCO of the secondary
controller.
In a cascade configuration, control philosophy provides that the FBK (external integral feedback)
of the primary controller be connected to the BCALCO of the secondary controller to prevent
windup. Use the PRIBLK option in all cascade configurations.
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 24-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.

740
24. DPIDA Controller B0193AX – Rev AB

The PRIBLK option allows a downstream block to initialize before the uptream block has
matched its output to its BCALCI input. The PRIBLK feature is needed if the upstream block’s
computing interval is the greater of the two, which is the case for a DPIDA controller.
The BCALCO status is updated each BPC to indicate when SPT has exceeded the high or low
limit. The upstream block uses this status to prevent integral windup.

24.6.2.10 Output Limiting


DPIDA Key Parameters: HOLIM, HOLIND, HSCO1, LOLIM, LOLIND, LSCO1, MCLOPT,
OSV
In Auto, the computed controller output (ml) value undergoes limiting, whereby it is limited
between the output limits, HOLIM and LOLIM (see Figure 24-2). These limits can be placed
anywhere within the range defined by HSCO1 and LSCO1. This range can be expanded in both
directions beyond the specified scale limits HSCO1 and LSCO1, by an amount equal to the out-
put span variance parameter OSV. If you set HOLIM less than LOLIM, then HOLIM is auto-
matically set equal to LOLIM. If the controller output (OUT) is limited at HOLIM or LOLIM,
the respective boolean output limit indicator, HOLIND or LOLIND, is set true.
MCLOPT affects output limiting as follows:
 When MCLOPT = 1 (true), the computed controller output (ml) value undergoes
limiting as above.
 When MCLOPT = 1 (true) and the controller is in Manual, the output is limited
between HSCO1 and LSCO1.
 When MCLOPT = 0 (false) and the controller is in Manual, the output is limited
between HSCO1 + OSV and LSCO1 - OSV as shown in Figure 24-4.

OSV (units)
HSCO1

Output
LSCO1
OSV (units)

Time
Figure 24-4. Output Limiting

When an output limiting condition is detected in the FBM for a controller with integral action,
the integral term is managed to prevent integrator windup. If the controller prelimited output
becomes greater than HOLIM or less than LOLIM, the integral term is managed to provide rapid
recovery with almost no overshoot (similar to LIMOPT = 1 in the PIDA block).
Output limiting in the DPIDA controller is propagated to an upstream block through the status
bits of its BCALCI input, provided that it is linked to the BCALCO output of the DPIDA con-
troller.

741
B0193AX – Rev AB 24. DPIDA Controller

24.6.2.11 FBM I/O Variable Scaling


DPIDA Key Parameters: See Table 24-5.
FBM input/output (I/O) variables, their scaling ranges, and related CP parameters are listed in
Table 24-3. Range and engineering units can be assigned to the listed CP parameters. The ranges
are used for analog displays and for relating proportional band (PBAND in %) to the inputs and
outputs.

Table 24-5. FBM I/O Variable Scaling

FBM Variable Description Unit Range CP Related Parameter


A Setpoint lead/lag ratio 0 to 1 SPLLAG
--- --- RO1 BIAS
--- Controlled variable – measurement RI1 MEAS
D Derivative time minutes DERIV
--- --- RIN MULTIN
--- --- % OUT2
holim High output limit clamped to RO1 RO1 HOLIM
hzone Zone high limit for nonlinear gain 0 to 100% HZONE
I Integral time minutes INT
K Derivative gain 0.1 to 100.0 KD
kzone Gain for nonlinear zone --- KZONE
lolim Low output limit clamped to RO1 RO1 LOLIM
lzone Zone low limit for nonlinear gain 0 to 100% LZONE
ml Manipulated variable – limited RO1 OUT
meas1 Measurement 1 RI1 MEAS1
meas2 Measurement 2 RI1 MEAS2
meas3 Measurement 3 RI1 MEAS3
P Proportional band % PBAND
r Selected setpoint RI1 SPT
track Track input RO1 TRACK

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.

24.6.2.12 Measurement Filtering


DPIDA Key Parameters: DERIV, KD
For the PD, PID, and NIPID control modes, the measurement low-pass filter is a second order
Butterworth filter with time constant DERIV / KD (see Figure 24-5). Its purpose is to reduce
high-frequency valve activity. The default setting of KD is 10.

742
24. DPIDA Controller B0193AX – Rev AB

1.1
Input Step
1.0

.9

.8 Output

.7

.6
  = DERIV / KD = 0.1 s
.5

.4

.3

.2

.1

0
0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1.0
Time (s)

Figure 24-5. Butterworth Measurement Filter Response

The Butterworth measurement filter response can be expressed as follows:

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:

743
B0193AX – Rev AB 24. DPIDA Controller

 Use anti-alias filtering with CYCTIM and FILTIM set to 50 ms. Faster cycle times
can cause problems (see “Controller Cycle Time and Measurement Sampling” on
page 755).
 For noisy measurements less than 50 to 60 cycles/seconds, set KD appropriately
(decreasing KD provides more filtering).
 With FBTUNE feedback tuning, increase the threshold parameter THRESH for peak
detection.

24.6.2.13 Setpoint Processing


The selected setpoint is scaled, limited, and gain-compensated before calculating the control error
(e) (see Figure 24-2). The supervisory option (SUPOPT) allows an application to control the set-
point. The LR parameter allows an operator or another block to switch between the local and
remote setpoints. The Local and Remote latch switch inputs (LOCSW and REMSW) allow the
controller to be switched to Local or Remote setpoint by overriding the LR parameter. In Local,
you can ramp the setpoint from the Block Detail display.

24.6.2.13.1 Supervisory Setpoint


DPIDA Key Parameters: SE, SUP_IN, SUPBCO, SUPOPT
When the supervisory option (SUPOPT) is set to 1-4, it specifies that the controller can be under
control of a supervisory application program. The supervisory back calculated output (SUPBCO)
provides the current setpoint and initialization bits to the supervisory application program.
When supervisory enable (SE) is set by the application program or operator, the DPIDA control-
ler is prepared to do supervisory setpoint control (SSC) functions. When the proper handshaking
occurs with the application software, the controller accepts sets to the supervisory setpoint
(SUP_IN). If the controller is in Auto, it then uses the supervisory setpoint in the calculation of
the controller output.
If SUPOPT is set to 1 or 2, the handshake requires the application software to return an explicit
acknowledge to close the supervisory cascade. The software must set the ACK status bit in the
SUP_IN parameter using special OM access functions. However, if SUPOPT is set to 3 or 4, this
acknowledgement is implicitly provided by the CP and is not required from the user application
software. In the latter case, the CP closes the supervisory cascade automatically when the supervi-
sory input (SUP_IN) is written by the application, provided the block is in the Supervisory Ini-
tialization (SUP_INIT) state. The control block enters the SUP_INIT state when supervisory
control is enabled in the block and the cascade is closed downstream. Upon entering this state, the
CP sets the initialize request bit (INITC) in the SUPBCO parameter for the application software.
When SUP_IN is then written by the software, the CP access logic sets the ACK status automati-
cally in the SUP_IN parameter. When the block runs, the CP block logic then closes the supervi-
sory cascade automatically.
A typical Supervisory Setpoint Control cascade configuration using the DPIDA controller is
shown in Figure 24-6. The DPIDA controller can only be at the bottom of the cascade.

744
24. DPIDA Controller B0193AX – Rev AB

Operator Supervisory
Displays Application SUPBCO

SUP_IN
SE
LR DPIDA
SUPOPT Block
PID RSP
MEAS OUT
Block
MEAS

FBK
BCALCI BCALCO
Figure 24-6. Supervisory Setpoint Control Cascade Configuration (Typical)

For more information, refer to the Supervisory Setpoint Control (SSC) (B0193RY) document.

24.6.2.13.2 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.

24.6.2.13.3 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 754.
If LR is true, the setpoint state is Remote. If STRKOP = 1 or 2, the setpoint state is Local, and the
status of MEAS is not Bad, the setpoint SPT tracks MEAS when (STRKOP = 1) the block is in
Manual or the cascade state is Open, or when (STRKOP = 2) the block is in Manual only.

24.6.2.13.4 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.

745
B0193AX – Rev AB 24. DPIDA Controller

24.6.2.13.5 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 = 1, the SPT value in Local mode (RSP in Remote mode, SUP_IN in Supervisory
mode) is clamped as follows:
 If RSP/SUP_IN <= SPLLIM, it is set to SPLLIM.
 If 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.

NOTE
When SPCLMP=0, the following special rules regarding setpoint limiting apply:
1. The SPHLIM and SPLLIM limits will be ignored while the block is in Remote
mode.
2. The SPHLIM and SPLLIM limits will be used to limit the setpoint value when
the block is switched to Local mode if the setpoint is within these limits when the
switch occurs.
3. If the setpoint is above SPHLIM (or below SPLLIM) when the block is switched
to Local mode, it will remain above SPHLIM (or below SPLLIM) when the switch
occurs to avoid a bump in the control action. The effective limits are allowed to
“balloon” beyond the actual limits while the block is in Remote mode to accomplish
this action when the block is switched to Local mode.
4. If the setpoint is above SPHLIM (or below SPLLIM) when the block is switched
to Local mode, it can be lowered (or raised), but once lowered (or raised), it cannot
be raised (or lowered) if it continues to be above SPHLIM (or below SPLLIM). (For
example, if the setpoint is 90.0 and SPHLIM=80.0, the setpoint will remain at 90.0
when the block is switched to Local mode. If the setpoint is lowered to 85.0, it can-
not be raised since 85.0 exceeds the SPHLIM value of 80.0. Once the setpoint is
lowered below SPHLIM, the SPHLIM value will then be used once again to limit
the setpoint value.).

746
24. DPIDA Controller B0193AX – Rev AB

24.6.2.13.6 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 24-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 24-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 24-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.

Input r
1.0

Output rf

A = SPLLAG
A

Time
 = INT
Figure 24-7. Setpoint Lead/Lag Compensation

For example if SPLLAG is set to 0.5, the output at the end of one time constant is:

r f = A + 0.63  r – A  = 0.5 + 0.63  1.0 – 0.5  = 0.815 or 0.815r

24.6.2.13.7 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).

747
B0193AX – Rev AB 24. DPIDA Controller

If SPROPT is 4, ramping stops whenever the deviation is in alarm and continued setpoint ramp-
ing would increase the deviation. If ramping decreases deviation, ramping is not inhibited.
Table 24-6 summarizes the setpoint ramping action for the SPROPT options.

Table 24-6. Ramping Action for SPROPT Options

Rate Stop on
SPROPT (Units/Minutes) Time (Minutes) Deviation Alarm
1 X
2 X X
3 X
4 X X

To be accepted, an SPTARG value must be within the local setpoint limits, SPLLIM and
SPHLIM. When SPT reaches SPTARG or if the operator makes a local SPT change, setpoint
ramping stops and SPRAMP is reset to 0.
If SPTARG is changed during ramping, the block continues to ramp at the initial rate calculated
for the SPRATE time.

24.6.2.13.8 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.

24.6.2.14 Nonlinear Gain


DPIDA Key Parameters: KZONE, LZONE, NONLOP
A nonlinear gain option (NONLOP) specifies a gain factor (KZONE) and a zone of control error
values in which this alternate gain multiplies 100/PBAND (see Figure 24-8). This nonlinear zone
is defined by the HZONE and LZONE positive real values, and is situated, but not necessarily
centered, about zero error.

748
24. DPIDA Controller B0193AX – Rev AB

40

30 Slope = 1.0
LZONE HZONE
20

Nonlinear Response
10
Characterized
Control Deg Slope = 1.0
Error (eg) 0
Slope = 1.0 De
10 Slope = KZONE = Deg / De
eg = KZONE ² e

20

30 Linear Response

40
-40 -30 -20 -10 0 10 20 30 40
Control Error (e)

Figure 24-8. Nonlinear Gain Response

Nonlinear gain allows the controller to handle a process with nonlinear gain (for example, a pH
process) by providing a gain characteristic that is opposite that of the process. You set the width of
the zone and the gain (slope) of the line within the zone. The slope typically varies from 0 to 1.0.
At zero slope, the line between the low and high zone limits is horizontal. At a slope of 1.0, the
nonlinear characteristic is completely removed, and the controller behaves as a conventional linear
controller as shown by the dashed line in Figure 24-8.
The proportional gain (G) in the linear part of the response curve where the slope = 1.0 is:

100 -
G = --------------------
PBAND
The effective gain (Ge) within the zone is:

100
G e = KZONE  ---------------------
PBAND
The effective proportional band (Pe) within the zone is:

PBAND-
P e = --------------------
KZONE

749
B0193AX – Rev AB 24. DPIDA Controller

24.6.2.15 Feedforward
DPIDA Key Parameters: BIAS, MULTIN
There is provision for both multiplicative MULTIN and additive BIAS feedforward inputs (see
Figure 24-2). The multiplicative input divided by its span (fr) multiplies the output (m) of the lin-
ear part of the control algorithm. The gain/offset adjusted and scaled bias input (b) is added to mf
before output limiting is applied. A back calculation is applied to feedback input fb, using the pre-
vious values of these feedforward terms to achieve the integral-feedback input fbr to the linear part
of the algorithm.
If either the BIAS or MULTIN value becomes invalid, its last valid value is used.

24.6.2.16 Error Detection


DPIDA Key Parameters: BCALCO, CEOPT, MA, MEAS, RSP, SPT
ECB52 Key Parameters: HORVAL, LORVAL, MEAS, OORENB, REDOPT
During Auto operation, the critical inputs MEAS, SPT, and MA are checked for any data errors.
Such errors include: off scan, out-of-service, and bad, which are reflected by the status of the con-
nected source. If any of these errors are detected, the error is indicated.
If CEOPT is set and any of these errors are detected, the controller output is forced to a substate
of Auto called Holding, whereby the last controller output (OUT) value is retained. If redundant
measurements are configured, the controller does not go to Holding unless all redundant mea-
surements are bad. In the Holding state, the “held” output value undergoes output limiting.
When all error conditions have ceased, the controller returns to the Controlling substate of Auto
to resume closed loop control.
Input errors are classified on a functional basis related to feedback control. Control errors affect
the ability to perform control in a local setpoint mode. Control errors include any errors detected
in the feedback portion of the local control loop. They do not include errors that originate
upstream through the remote setpoint path. If the remote setpoint RSP is in error, the controller
simply transitions to local SPT, holds the last valid value, and indicates that the cascade has
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

The bit definitions are listed in Table 24-7.

750
24. DPIDA Controller B0193AX – Rev AB

Table 24-7. Status Bit Definitions for Parameter Value Record

Boolean
Bit Number Connection
(0 to 15) Name Definition (B16 to B1)
0 to 4 Data Type: B16 to B12
1 = character
2 = integer
3 = real
4 = string
5 = boolean
6 = long integer
7 = (unused)
8 = short integer
9 = packed boolean
10 = packed long
5 to 7 OM Status: B11 to B9
0 = No Response
1 = On Scan
2 = Disconnect
3 = Deleted
4 = Nonconnect
5 (unused)
6 (unused)
7 = Not sent
8 BAD Bad I/O B8
9 SECURE Secure/Release B7
10 INITC/ACK Initialize Conditional/Acknowledge B6
11 OOS Out of Service B5
12 SHADOW Shadow Parameter B4
13 LHI Limited High B3
14 LLO Limited Low B2
15 ERROR/INITU Error/Initialize Unconditional B1

24.6.2.17 Alarms
DPIDA Key Parameters: BAD, CRIT, HDALIM, HHALIM, HOALIM, INHALM, INHIB,
INHOPT, LDALIM, LLALIM, LOALIM, MANALM, MEAS, MEASHL, MEASLL, OUT,
PRTYPE, SPT, UNACK
The DPIDA block optionally supports the following alarms:
 Bad I/O
 Measurement absolute high-high (HHABS) and low-low (LLABS)
 Measurement absolute high (HIABS) and low (LOABS)
 Deviation high (HIDEV) and low (LODEV)

751
B0193AX – Rev AB 24. DPIDA Controller

 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
3 = Same as 1, and enable automatic acknowledgment
Clearing the UNACK parameter acknowledges the alarms.
In Auto, the block processes all alarms.
When the block is in Manual, the MANALM value determines which alarms are processed:
0 = Disable all alarms in Manual
1 = Process all alarms in Manual
2 = Disabled only Output alarming in Manual
3 = No output alarming in Track
4 = No output alarming in Manual or Track
When an Auto-to-Manual state transition occurs, the block examines the MANALM option.
If MANALM = 0, the block clears the alarm information that it contains and queues an
ALARM_ACK message if the UNACK parameter was set prior to the transition. This alarm
information includes the alarm status (ALMSTA), CRIT, PRTYPE, and alarm output parameters
for high-high, high, and low absolute, deviation, and output alarms.
If MANALM = 1, the block does not clear the alarm information that it contains.
If MANALM = 2, the block clears the alarm information that it contains only for the output
alarms.

752
24. DPIDA Controller B0193AX – Rev AB

If MANALM = 3, no output alarms are detected when the DPIDA block goes into the Track
mode due to a downstream open loop condition.
If MANALM = 4, no output alarms are detected when the block is in Manual mode or the
DPDIA block goes into the Track mode due to a downstream open loop condition.
The block clears the CRIT and PRTYPE parameters only if there are no outstanding output
alarms prior to the transition to Manual. In this case, it queues an ALARM_ACK message if the
UNACK parameter had been set prior to the transition.
When the compound is turned on or off, or when the block is switched from Auto to Manual, an
appropriate ALARM_ENA or ALARM_DSB message is sent to all alarm devices configured in
the block; if the Station Block is configured to do this.
If you turn off an existing alarm option by reconfiguring an alarm option parameter, an
ALARM_DSB message is issued when the block is restarted. If an alarm was active prior to the
reconfiguration, and no other alarms are now active, and INHOPT specifies auto-acknowledge,
the alarm is acknowledged, an ALARM_ACK is sent to all alarm devices configured in the block,
and CRIT and PRTYPE are cleared.

24.6.2.18 Validation Checks


The DPIDA block in the CP validates the configuration parameters when it is installed, reconfig-
ured, or restarted by installing the ECB52 block.
Tuning Block Connections
DPIDA Key Parameters: STATEB, STATEF
If either tuning extender parameter, FBTBLK (for FBTUNE) or FFTBLK (for FFTUNE) is con-
figured, the DPIDA block verifies that the specified tuning block is currently connected to it. If
the tuning block is not connected, the DPIDA block sets the STATEF and/or STATEB parameter
to off, and clears the connection to the tuning block.
Mode Option
DPIDA Key Parameters: MODOPT, ERCODE
The block checks MODOPT for valid range (1 to 6). If it is invalid, the block sets ERCODE to
INV_OPTION, and enters the undefined state.
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 FBM04,
FBM17, FBM22, FBM204, and FBM227.
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.

753
B0193AX – Rev AB 24. DPIDA Controller

24.6.2.19 Block Initialization


DPIDA Key Parameters: See Table 24-8.
After parameter validation, the DPIDA block in the CP initializes when the:
 Block is installed.
 Block is reconfigured.
 Block is restarted by installing the ECB52 block.
 Control Processor is rebooted.
 Compound containing the block is turned on.
Table 24-8 lists the block parameter settings for block initialization.

Table 24-8. Parameter Settings for Block Initialization

Parameter Condition Resulting Value


LR LOCSP = 1 LR = 0 and secured
LR * INITLR = 0 LR = 0
INITLR = 1 LR = 1
INITLR = 2 LR is unchanged
MA ** INITMA = 0 MA = 0
INITMA = 1 MA = 1
INITMA = 2 MA is unchanged
OUT --- OUT = 0 on a cold start.
OUT = present value on a transition to or from Failsafe.
BCALCO --- BCALCO = MEAS or SPT depending on the setpoint state.
STATEB --- STATEB = off
STATEF --- STATEF = off
SPTARG *** SPROPT = 1 SPTARG = SPT
* If the block is NOT restarting following an on-line upgrade warm start or a turning on of the com-
pound.
** If the block is NOT restarting following an on-line upgrade warm start or a turning on of the com-
pound, else MA =1.
***If the block is restarting due to a CP reboot, block install, or turning ON of the compound.

24.6.2.20 Exception Processing


DPIDA Key Parameters: BCALCO, ERCODE, MA, MEAS
Each basic processing cycle (BPC), the DPIDA block in the CP performs the following exception
processing:
 Validation of the FBTUNE and FFTUNE block connections
 Validation of the ECB52 block connection
 Status updating of all parameters
 Failsafe action
 Auto/Manual override actions
 Remote/Local override actions

754
24. DPIDA Controller B0193AX – Rev AB

The block validates the tuning block connections as it does during initialization (see “Validation
Checks” on page 753).
If the ECB52 connection is lost, the block sets ERCODE to INV_ECB, enters the undefined
state, and executes the shutdown logic.
The block updates the status of the critical parameters MEAS, MA, and BCALCO for the follow-
ing important status:

Table 24-9. Status of Critical Parameters

Status Condition
MEAS.OOS = 1 FBM communications failure
MEAS.BAD = 1 FBM communications failure or bad measurement
BCALCO.OOS = 1 FBM communications failure
BCALCO.BAD = 1 FBM communications failure or bad measurement
MA.OOS = 1 FBM communications failure

If REDOPT is configured for redundancy, the block sets the measurement status to bad only
when all measurements are bad. For more information on block Bad, Shutdown and Bad states,
refer to the appropriate Integrated Control Software Concepts document (B0700AG or B0193AW).
If the FBM transitions to the Failsafe state, the DPIDA block opens the upstream cascade by set-
ting the appropriate BCALCO status bits to true.

24.6.3 ECB52 Detailed Operation


The control algorithm executes every 10 ms to 50 ms as specified by the ECB52 cycle time (CYC-
TIM) value, independent of the Control Processor (CP) execution period.
The FBM provides up to three redundant measurement inputs as specified by ECB52 parameter
REDOPT. The FBM selects, scales, linearizes, and characterizes the measurement as specified by
the ECB52 configuration data.

24.6.3.1 Controller Cycle Time and Measurement Sampling


ECB52 Key Parameters: CYCTIM, FILTIM, FLTOPT,
CYCTIM, FLTOPT, and FILTIM, allow the cycle time of the controller and the characteristics of
the input filtering to be adjusted for best controller performance when very fast loop times are
required.
The CYCTIM value specifies the cycle time of the controller algorithm in 5 ms increments: 0 =
50 ms, 2 = 10 ms... 10 = 50 ms (1 is not a valid value). If not set, the default value is 0.
Processor power limits the options usable at fast cycles. If the cycle time is too fast for the config-
ured options, the FBM slows down.
10 ms cycle times are possible only for nonredundant inputs without characterizer or square root
conditioning. 15ms cycles can support input signal conditioning or redundancy but not both.

755
B0193AX – Rev AB 24. DPIDA Controller

NOTE
As the controller cycle time is reduced, the precision of the analog conversion is
reduced. See FLTOPT and FLTTIM below.

The FBM converts each analog input sample to a digital value and averages these values over a
sampling time window specified by CYCTIM (see Figure 24-9).

CYCTIM CYCTIM

FLTOPT = 0
Sampling Window Sampling Window FLTIM = 0 or CYCTIM

Sampling Window FLTOPT = 1

Sampling Window FLTOPT = 0


Sampling Window
FLTIM < CYCTIM

Sampling Window FLTOPT = 1


FLTIM < CYCTIM

Time Final Raw Value


Figure 24-9. Measurement Sampling

At the end of each window when FLTOPT = 0, this average is added to the average from the pre-
vious window to create a final raw measurement value. Thus, the analog conversion averaging is
performed over two sampling windows to provide anti-alias filtering.
At the end of each window when FLTOPT = 1, the digital samples are averaged over a single win-
dow, which provides less filtering.
FLTTIM = 0 sets the sampling window equal to the controller cycle time. This is the optimal set-
ting for almost all cases. FLTTIM ranges from 1 to the value of CYCTIM, and specifies the sam-
pling window in 5 ms increments. Setting FLTTIM less than CYCTIM provides less filtering.
The final averaged value is converted into a raw measurement. The precision of the raw converted
value ranges from 12 bits to 7 to 8 bits as follows:
 12 bit precision when the total averaging time is 100 ms using the default settings,
that is, 50 ms sampling window and control cycle (CYCTIM = 0) with anti-alias fil-
tering (FLTTIM = 0 and FLTOPT = 0)
 7 to 8 bit precision when the averaging time is 5 ms, that is, FLTTIM = 1 and
FLTOPT = 1.

24.6.3.2 Measurement Processing


Measurement processing provides validation, configurable range scaling, an optional square root
function, and an optional 8-segment characterizer for all active measurement input channels (see
Figure 24-2). The measurement signal is FBM analog input channel 1 when no redundancy is
configured.

756
24. DPIDA Controller B0193AX – Rev AB

If all configured measurements are Bad while in Auto, the controller goes to Hold and sets the
BAD parameter and MEAS.BAD status.
Measurement Redundancy
ECB52 Key Parameters: REDOPT
DPIDA Key Parameters: MEASn, SELRQ
Redundant measurement signals for the analog input channels are provided by configuring
REDOPT as follows:
0 = channel 1 (no redundancy)
1 = channels 1 and 2
2 = channels 1 to 3
The redundant measurement values are scaled as above and reported to the CP. The CP scales
them to range RI1 and then provides them as MEAS01, MEAS02, and MEAS03. Select status
(SELST) indicates which measurement (1, 2, or 3) is selected for algorithm use.
Measurement Selection
If redundant measurements are configured, the FBM selects the measurement as follows:
 If there are three good measurements, the FBM uses the median signal.
 If there are two good measurements, the FBM uses the signal closest to the setpoint.
 If one or more measurements are bad, the FBM uses the good signal nearest to the
setpoint.
 Measurement specified by the operator via the SELRQ option, if it is healthy.
Measurement Input Scaling
ECB52 Key Parameters: HMSCAL, LMSCAL
The FBM raw input counts are scaled for the range specified by HMSCAL and LMSCAL before
linearization or characterization. You configure the HMSCAL and LMSCAL parameters to the
physical output range of the measurement device. Table 24-10 shows HMSCAL and LMSCAL
values that are consistent with signal conditioning options for I/A Series analog input blocks, but
you can use any values that are consistent with the measurement device.

Table 24-10. FBM Analog Input Signal Scaling

Signal Range LMSCAL Count HMSCAL Count


Linear 0 64000
Nominal 0 to 10 V dc 1600 64000
4 to 20 mA dc 12800 64000

The scaled value is then normalized to 0 to 4000 counts before linearization or characterization.
The following equation shows the scaling and normalization calculation for a 4 to 20 mA input
signal:

4000
Normalized Counts =  Raw Counts – LMSCAL   ---------------------------------------------------------
HMSCAL – LMSCAL
HMSCAL and LMSCAL values range from 0 to 64000 counts. However, you must enter the
value into the data base as a 16-bit signed integer with the most significant bit (MSB) as the sign

757
B0193AX – Rev AB 24. DPIDA Controller

bit. Any value greater than 32767 requires that the sign bit be true (1), indicating a negative num-
ber. For counts of more than 32767, the value to enter is the count minus 65536.
For example, to get a count of 62000, enter -3536.

62000 – 65536 = 3536


Sample count values for a 4 to 20 mA input device are listed in Table 24-11.

Table 24-11. Input Scaling Entry Examples

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

Measurement Linearization and Characterization


ECB52 Key Parameters: CHAREN, SQRENB, X_nPD, Y_nPD
Two optional conditioning operations can be applied to the selected scaled input:
 Square root function (SQRENB = 1)
 Nonlinear characterization function (CHAREN = 1) with up to 8 segments.
If both are applied, the square root is done first. The final result is the controlled variable “c” used
by the controller and reported to the CP, which scales c to provide the measurement (MEAS)
value.
MEAS = [c (HSCI1 - LSCI1) / 4000] + LSCI1
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.

758
24. DPIDA Controller B0193AX – Rev AB

24.6.3.3 FBM Analog Output Scaling


ECB52 Key Parameters: HOSCAL, LOSCAL
The FBM control output computed by the algorithm is scaled to the physical output range speci-
fied by the configured high output scale (HOSCAL) and low output scale (LOSCAL) parameters.
You must configure the HOSCAL and LOSCAL parameters to the physical output range required
to drive the output device. Table 24-12 shows HOSCAL and LOSCAL values that are consistent
with signal conditioning options for I/A Series analog output blocks, but you can use any values
that are consistent with the output device.

Table 24-12. FBM Analog Output Signal Scaling

Signal Range LOSCAL Count HOSCAL Count


Linear 0 64000
-0.2 to 10.2 V dc 1600 64000
4.0 to 20 mA dc 12800 64000

HOSCAL and LOSCAL values range from 0 to 64000 counts. However, you must enter the val-
ues into the data base as a 16-bit signed integer with the most significant bit (MSB) as the sign
bit. Any value greater than 32767 requires that the sign bit be true (1), indicating a negative num-
ber. You can also enter the values in hexadecimal format. For more information on entering the
values, see “Measurement Processing” on page 756.

24.6.3.4 Failsafe Action


ECB52 Key Parameters: FS, FSDLAY, FSENAB, FSMMPD, FSOPT, FS5DPD
The Failsafe option (FSOPT) defines the action taken by the DPIDA controller when a Fieldbus
or CP communications failure occurs while the controller is in the Auto or Hold mode. Failsafe is
an FBM hardware state designed to provide I/O security. The FSOPT options are:
0 = do not change mode and 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 (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, refer to the appropriate Integrated Control Software Concepts docu-
ment (B0700AG or B0193AW).

759
B0193AX – Rev AB 24. DPIDA Controller

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:

Eng Value – Low Scale


Count Value = --------------------------------------------------------  Span + offset counts
High Scale – Low Scale
Example:
For a 4 to 20 mA device, determine the count for a fallback value of 25 percent of full scale.

25 – 0
Count Value = ------------------   64000 – 12800  + 12800 = 25600
100 – 0
Fallback values range from 0 to 64000 counts. However, you must enter the value into the data
base as a 16-bit signed integer with the most significant bit (MSB) as the sign bit. Any value
greater than 32767 requires that the sign bit be true (1), indicating a negative number. You can
also enter the value in hexadecimal format. For more information on entering the value, see
“Measurement Processing” on page 756.

24.6.3.5 FBM04/FBM204 I/O Channels


The FBM04/FBM204 I/O channels assignments are listed in Table 24-13:

Table 24-13. FBM04/FBM204 Channel Assignments

Channel Description Range Assignment


1 Analog input 0 to 20 mA dc Measurement 1
2 Analog input 0 to 20 mA dc Measurement 2
3 Analog input 0 to 20 mA dc Measurement 3
4 Analog input 0 to 20 mA dc Unavailable to user
5 Analog output 0 to 20 mA dc Control output
6 Analog output 0 to 20 mA dc Unavailable to user
7 Analog output 0 to 20 mA dc Unavailable to user
8 Analog output 0 to 20 mA dc Unavailable to user

24.6.3.6 FBM17/FBM227 I/O Channels and Operator’s Panel


ECB52 Key Parameters: PNLOPT, INVDFI
The FBM17/FBM227 with DPIDA software supports a local operator’s panel (which can be sup-
plied by Foxboro Deutschland) with status indicator lights (LEDs), 0 to 100% meter display of
the output, Auto/Manual (A/M) toggle key, and keys for ramping the output up or down in Man-
ual (see Figure 24-10).

760
24. DPIDA Controller B0193AX – Rev AB

FBM17/FBM227
Analog Input 1 Measurement

Output
Analog Output 1
Local Operator’s Panel*

Digital Display Meter

Analog Output 2 FBM Fail

Auto
Digital Output 4

Manual

Digital Output 1 CP Fail

LED
Key

Digital Input 1 Ramp Up

Digital Input 2 Ramp Down

Digital Input 3 Auto/Manual Toggle

Digital Input 4 Device Fail

*Panel supplied by Foxboro Deutschland


Figure 24-10. FBM17/FBM227 (DPIDA) Local Operator’s Panel Configuration

When PNLOPT is configured true, you can use a a local operator’s panel to switch the controller
algorithm in the FBM to Manual and then ramp the controller analog output. When PNLOPT is
true, the panel digital outputs are written to the required channels. Panel support requires specific
Failsafe behavior of digital outputs. These are set during initialization.
The user enables the panel by setting PNLOPT to true. If PNLOPT is configured false, the FBM
reads and reports only the field device fail input. If INVDFI is set true, the FBM inverts the
device fail input.

761
B0193AX – Rev AB 24. DPIDA Controller

If the panel is present, the FBM reads and processes the keys. The FBM monitors the A/M key for
transitions to detect A/M transfer requests. If the controller is switched to Manual by any means,
the FBM processes the ramp keys. While ramping is active, the FBM rejects write requests from
the CP to change the analog output.
For the up and down ramp keys, the initial ramp rate is one count per cycle (0.025%). If the key
is held down, the rate accelerates until a maximum rate of 8% per second is reached in about two
seconds.
CP Failure
The CP fail output is set to light an LED on the panel when the:
 CP communications has timed out
 Controller is not initialized for Auto control.
This LED indicates that the operator should use the panel to control the analog output. Opera-
tionally, it means that updated setpoints are not available for Auto control.
If the controller is not initialized, it is in Manual and the A/M toggle key is disabled.
If CP communication fails, the control algorithm is automatically switched to Manual if the Fail-
safe option is appropriately set.
FBM Failure
The FBM fail analog output (Channel 6) goes below zero volts which disables the panel keys and
lights a panel LED when the:
 FBM is powered up
 FBM is off-line
 FBM watchdog timer times out
 FBM software traps on a fault or error.
During normal operation of the controller software, this analog output is set to maximum voltage
(10.24 V dc).
The FBM17/FBM227 I/O channels assignments are listed in Table 24-14:

Table 24-14. FBM17/FBM227 Channel Assignments

Channel Description Range Assignment


1 Analog input 0 to 10 V dc Measurement 1
2 Analog input 0 to 10 V dc Measurement 2
3 Analog input 0 to 10 V dc Measurement 3
4 Analog input 0 to 10 V dc Unavailable to user
5 Analog output 0 to 10 V dc Control output
6 Analog output 0 to 10 V dc FBM Fail Indicator
7 Digital input Open to close Ramp up output
8 Digital input Open to close Ramp down output
9 Digital input Open to close Auto/Manual toggle
10 Digital input Open to close Device fail
11 Digital output Open to close Unavailable to user

762
24. DPIDA Controller B0193AX – Rev AB

Table 24-14. FBM17/FBM227 Channel Assignments (Continued)

Channel Description Range Assignment


12 Digital output Open to close Unavailable to user
13 Digital output Open to close CP Fail
14 Digital output Open to close Auto/Manual Indicator

24.6.3.7 FBM22 I/O Channels and Auto/Manual Station


The FBM22 with DPIDA software supports the I/A Series Auto/Manual Station with status indi-
cator lights (LEDs), 0 to 100% meter display of the output, Auto/Manual (A/M) toggle key, and
keys for ramping the control output up or down in Local Manual.
When the A/M key is toggled to Auto, the controller goes to Remote Manual, not Auto; operator
action from a workstation is required to transfer the controller to Auto.
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.

The FBM22 I/O channel assignments are listed in Table 24-15:

Table 24-15. FBM22 Channel Assignments

Channel Description Range Assignment


2 Analog output 0 to 20 mA dc Control output
7 Analog input 0 to 20 mA dc Measurement

24.7 Application Example


The DPIDA block can be used in a control scheme for compressor surge control (see
Figure 24-11). In these applications, centrifugal and axial compressors are used to provide com-
pression of process gases or for utility air. Traditionally, surge control schemes have been “stand-
alone” systems, separate from the distributed control systems. This is due primarily to concern
regarding the application of shared control to surge control, which may require a high speed of
response in some critical applications.
Anti-surge control schemes, when applied to centrifugal or axial compressors, allow safe operation
of the compressor. The primary need is for protection of the compressors from “surging” of flow
through the machine.

763
B0193AX – Rev AB 24. DPIDA Controller

Adapter
CALC

User Set Ratio

MATH CHARC RATIO DPIDA

AIN AIN ECB52

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

Inlet Compressor Outlet

Recycle
Valve

Figure 24-11. Application Diagram

Surge is an unstable operating condition that takes place in centrifugal or axial compressors when
the flow through the machine decreases below a critical value. This results in a sudden reversal in
flow, causing the discharge line pressure to drop. When discharge line pressure drops sufficiently,
flow through the compressor is reestablished. The cycle continues and appears as an oscillation of
flow through the compressor.
Surge damages a compressor – sometimes seriously. It may result in bent shafts, cracked housings,
or damaged bearings and impellers, sometimes accompanied by injury to personnel and damage
to buildings and associated process equipment.

764
24. DPIDA Controller B0193AX – Rev AB

The goal of an anti-surge control scheme is to calculate the surge point and the minimum safe
flow at the compressor inlet. The slope of the control line (see Figure 24-12) represents the setting
of the ratio between the inlet differential pressure and the pressure rise across the compressor.

Surge Line

Pressure Control Line

Flow

Figure 24-12. Surge Line and Control Line Curves

In the anti-surge control scheme shown in Figure 24-11, two gauge pressure transmitters are used
to measure the suction and discharge pressures. The two pressures are subtracted in a MATH
(mathematics) block to determine the pressure rise across the machine. The pressure rise is soft-
ware-connected to a CHARC (characterizer) block. The output of the CHARC block is the surge
point. The surge point is software-connected to a RATIO block. The output of this block is the
control point, that is, the minimum flow through the compressor for a given pressure rise. The
ratio is set by the operator, and is normally provided with limits to prevent the operator from set-
ting a value which could result in a control point too close to the surge point.
The output of the RATIO block is connected to the remote setpoint RSP of a DPIDA block that
is configured for the PI control mode. This setpoint is fed to the control algorithm in the FBM.
The measurement is from the differential pressure across the compressor inlet orifice as measured
by the flow transmitter. The control output of the FBM is connected, through hardware, to the
recycle valve. This valve is closed when the derivative compensated measurement is less than the
setpoint, but it opens when the control line of Figure 24-11 is reached. The adapter CALC block
and DPIDA block perform asymmetric functions that allow the valve to open fast and limit the
closing rate of the valve.
The control blocks in the CP40 are all configured to run every 0.5 s. The control algorithm in the
FBM is configured to run every 25 ms.

765
B0193AX – Rev AB 24. DPIDA Controller

NOTE
This application example is not a complete control strategy for compressor surge
control. You must contact Invensys to design a complete control strategy for your
application.

24.7.1 DPIDA Block Parameter Configuration


For the example in Figure 24-11, the user configures the following DPIDA block key parameters
as shown below for a 4 to 20 mA measurement input and 4 to 20 mA control output.
PERIOD = 1
IOM_ID = PLANT03:CMPR07_42
DEV_ID = REC007
HSCI1 = 1000.0
LSCI1 = 0.0
EI1 = SCFM
RSP = PLANT03:RATIO.OUT
MODOPT = 4
PBAND = (connected)
INT = (connected)
HSCO1 = 100.0
LSCO1 = 0.0
EO1 = %
HOLIM = 100.0
LOLIM = (connected)
MA = 1
INITMA = 1

NOTE
The above is not a complete list of required parameters and is not specific to a par-
ticular surge control application.

24.7.2 ECB52 Block Parameter Configuration


For the example in Figure 24-11, the user configures the following ECB52 block key parameters
as shown below:
CYCTIM = 5
DEV_ID = REC007
FLTOPT = 0
FLTTIM = 0
FSOPT = 4

766
24. DPIDA Controller B0193AX – Rev AB

HMSCAL = 0xFA00
HOSCAL = 0xFA00
HWTYPE = 17
LMSCAL = 0x3200
LOSCAL = 0x3200
PERIOD = 1
SQRENB = 1

NOTE
The above is not a complete list of required parameters and is not specific to a par-
ticular surge control application.

767
B0193AX – Rev AB 24. DPIDA Controller

768
25. DSI – Display Station Interface
Block
This chapter covers the Display Station Interface Block, or DSI, its parameters and detailed
operations.

25.1 Overview
The Display Station Interface block, DSI, in conjunction with Equipment Control Block 14
(ECB14), provides the interface between each Panel Display Station and the compounds and
blocks that actualize the control strategy.

25.1.1 I/O Diagram

from Control Block to Display Station

Column 1 Value Column 1 Value


Column 2 Value Column 2 Value
DSI
Column 3 Value Block Column 3 Value
Station L/R State Station L/R State

Figure 25-1. DSI Block I/O Diagram

25.2 Parameters
Table 25-1. DSI Block Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set blank 1 to 12 chars
TYPE block type integer no-con/no-set 40 DSI
DESCRP descriptor string no-con/no-set blank 1 to 32 chars
PERIOD block sample time integer no-con/no-set 1 1 to 13
PHASE block phase number integer no-con/no-set 0 ---
LOOPID loopid string no-con/set blank 1 to 32 characters
IOM_ID FBM reference string no-con/no-set blank ---
COL_1 to COL_3 column 1 to 3 value real con/set 0.0 RI1
HSCI1 to HSCI3 high scale 1 to 3 real no-con/no-set 100.0 specifiable
LSCI1 to LSCI3 low scale 1 to 3 real no-con/no-set 0.0 specifiable
DELTI1 to DELTI3 change delta 1 to 3 real no-con/no-set 1.0 percent

769
B0193AX – Rev AB 25. DSI – Display Station Interface Block

Table 25-1. DSI Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


EI1 to EI3 eng units input string no-con/no-set % specifiable
LR_STA LR value boolean con/set 0 0 to 1
Non-Configurable Parameters
OUTPUTS
BLKSTA block status pack_l con/no-set 0 bit map
DATA STORES
ACHNGE alternate change integer con/no-set 0 -32768 to 32767
AM_SET auto/manual set boolean con/set 0 0 to1
AM_STA auto/manual station boolean con/set 0 0 to1
COL_1S to COL_3S column 1 to 3 sets real no-con/set 0.0 RI1
DEFINE no config errors boolean no-con/no-set 1 0 to 1
DEV_ID FBM letterbug char[6] no-con/no-set blank 1 to 6 chars
ERCODE config error string no-con/no-set 0 1 to 43 chars
LR local/remote boolean con/set 0 0 to 1
LOCKID lock identifier string no-con/no-set blank 8 to 13 chars
LOCKRQ lock request boolean no-con/set 0 0 to 1
MA manual/auto boolean con/set 0 0 to 1
RI1 to RI3 eng range input real[3] no-con/no-set 100,0,1 specifiable
WP_SET workstation set boolean no-con/set 0 0 to 1
WP_STA workstation boolean con/set 0 0 to 1

25.2.1 Parameter Definitions


ACHNGE Alternate Change is an integer output which is incremented each time a
block parameter is changed via a Set command.

AM_SET Auto/Manual is a boolean set from the default display that specifies the
desired state of Auto/Manual:
0 = Manual
1 = Auto.

AM_STA Auto/Manual is a boolean input from a control strategy that specifies the
desired state of Auto/Manual:
0 = Manual
1 = Auto.

770
25. DSI – Display Station Interface Block B0193AX – Rev AB

BLKSTA Block Status is a 32-bit output, bit-mapped to indicate the block’s opera-
tional states. For the DSI block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

BAD
ON

MA
LR
Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
10 LR Local(= false)/Remote(= true) BLKSTA.B22
11 MA Manual(= false)/Auto(= true) BLKSTA.B21
12 BAD Bad I/O (I/O Blocks only - BLKSTA.B20
block in BAD state)
14 UDEF Undefined BLKSTA.B18
15 ON Compound On BLKSTA.B17
20 WLCK Workstation Lock BLKSTA.B12

* Bit 0 is the least significant, low order bit.

COL_1 to COL_3
Column 1 to 3 is a real input from the control strategy to the to each of
the column indicators on the default display.

COL_1S to COL_3S
Column 1 to 3 is a real output set from the default display column indica-
tors.

DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. In that case, no further processing of the block occurs. To return
DEFINE to a true value, correct all configuration errors and re-install the
block.

DELTI1 to DELTI3
Change Delta for Input Ranges 1 through 3 are a real values that define
the minimum percent of the input range that triggers change driven con-
nections for parameters in the range of RI1 through RI3. The default
value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the

771
B0193AX – Rev AB 25. DSI – Display Station Interface Block

same CP that contains the block’s compound, change deltas have no


effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.

DESCRP Description is a user-defined string of up to 32 characters that describe


the block’s function (for example, “PLT 3 FURNACE 2 HEATER
CONTROL”) .

DEV_ID Device Identifier is a character array that specifies the 6-character letter-
bug identifier of the connected FBM or FBC. DEV_ID differs from
IOM_ID in that it is of character array rather than string type, and does
not allow the use of the ECB NAME parameter or ECB pathname in
specifying the connected FBM or FBC.

EI1 to EI3 Engineering Units for Input Ranges 1 through 3, defined by the parame-
ters HSCI1 to HSCI3, LSCI1 to LSCI3, and DELTI1 to DELTI3, pro-
vide the engineering units text for the values defined by Input Ranges 1
through 8. “Deg F” or “pH” are typical entries.

ERCODE Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the block’s
DEFINE parameter to be set false, but not the warning situations. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. The block detailed display shows the ERCODE
on the primary page, if it is not null. For the DSI block, the following list
specifies the possible values of ERCODE, and the significance of each
value in this block:

Message Value
“W43 – INVALID PERIOD/ PHASE does not exist for given block
PHASE COMBINATION” PERIOD, or block PERIOD not
compatible with compound
PERIOD.
“W44 – INVALID High range value is less than or equal
ENGINEERING RANGE” to low range value.
“W46 – INVALID INPUT The source parameter specified in the
CONNECTION” input connection cannot be found in
the source block, or the source
parameter is not connectable, or an
invalid boolean extension connection
has been configured.
“W48 – INVALID BLOCK The configured value of a block
OPTION” option is illegal.
“W53 – INVALID A parameter value is not in the accept-
PARAMETER VALUE” able range.

772
25. DSI – Display Station Interface Block B0193AX – Rev AB

Message Value
“W58 – INSTALL ERROR; A Database Installer error has
DELETE/UNDELETE occurred.
BLOCK”

HSCI1 to HSCI3 High Scale for Input Ranges 1 through 3 are real values that define the
upper limit of the measurement ranges. EI1 to EI3 define the units. Make
the range and units consistent with the measurement source. A typical
value is 100 (percent).

IOM_ID Fieldbus Module Identifier is a configurable string that specifies the FBM
or FBC to which the block is connected.
IOM_ID has the form CompoundName:BlockName, where Compound-
Name is the 1-12 character name of the local compound containing the
ECB, and BlockName is the 1-12 character block name of the ECB.
If the compound containing the ECB is the CPletterbug_ECB compound
where CPletterbug is the station letterbug of the CP, the CompoundName
may be omitted from the IOM_ID configuration. In this case, the 1-12
character ECB block name is sufficient.

LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-char-
acter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.

LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are honored (subject to the usual access rules) only from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set false by any workstation at any time, whereupon a
new LOCKRQ is accepted, and a new ownership workstation identifier
written to LOCKID.

LOOPID Loop Identifier is a configurable string of up to 32 characters which iden-


tifies the loop or process with which the block is associated. It is displayed
on the detail display of the block, immediately below the faceplate.

LR Local/Remote is an input that selects the setpoint source (0 = false = Local;


1 = true = Remote). If LR is set to Remote, the source of the setpoint value
is the real input parameter RSP. When LR is set to Local, there are two
possible sources for the setpoint: (a) MEAS or (b) a user settable input.
The choice is based on the conditions of STRKOP and MA, as described
under STRKOP.

773
B0193AX – Rev AB 25. DSI – Display Station Interface Block

LR_STA Local/Remote input is displayed as the LR indicator on the DSI display


station.

774
25. DSI – Display Station Interface Block B0193AX – Rev AB

LSCI1 to LSCI3 Low Scale for Input Ranges 1 through 3 are real values that define the
lower limit of the measurement ranges. A typical value is 0 (percent). EI1
to EI3 define the units. Make the range and units consistent with those of
the measurement source.

MA Manual Auto is an input that controls the Manual/Automatic operating


state (0 = false = Manual; 1 = true = Auto). In Auto, given the measure-
ment value, the block computes the output according to its specific algo-
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.

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than Integrators and
Gateways, PERIOD values range from 0 to 13 and map to the following
period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)
Period Length Period Length
0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****

* If the BPC is 0.2 sec. this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec. this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec. this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec. this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40 and CP40B.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).

775
B0193AX – Rev AB 25. DSI – Display Station Interface Block

RI1 to RI3 Range Input is an array of real values that specify the high and low engi-
neering scale and change delta of a particular real input. For a given block,
it also forms an association with a group of real input parameters that have
the same designated range and change delta.

TYPE When you enter “DSI” or select “DSI” from the block type list under
Show, an identifying integer is created specifying this block type.

WP_SET Workstation Processor is a boolean set from the default display.

WP_STA Workstation Processor is a boolean input from a control strategy.

25.3 Detailed Operation


The DSI Block, in conjunction with the Equipment Control Block 14 (ECB14), provides the
software interface between the I/A Series Panel Display Station and the Control and
I/O Database.
Physically the Display Station (DS) connects to a Panel Display Processor 10 (DP10), a CP30, a
CP40, or a CP40B, via the Fieldbus. The DP10 accommodates up to 24 Display Stations. The
DP10 uses the standard CP10 hardware and software (except for the PLB control block).
The DSI blocks which reside in the DP10, CP30, CP40, or CP40B pass the control variables
from compounds resident in the control processors to the Display Station’s indicators via the
ECB14 assigned to that specific Display Station.

FIELDBUS up to 48 FBMs (CP10)


Control
Processor up to 64 FBMs (CP30,CP40
and CP40B)
FBM001 FBM002 FBM032
NOEDBUS

FIELDBUS up to 24 Display Stations


CONTROL
PROCESSOR 30
40, or 40B DP1S01 DP1S02 DP1S24

See DP10, CP30,


CP40 or CP40B
Figure 20-3
FIELDBUS
up to 24 Display Stations
DISPLAY
PROCESSOR 10
DP1S01 DP1S02 DP1S24

Figure 25-2. System with Display Station Capability

776
25. DSI – Display Station Interface Block B0193AX – Rev AB

to/from
other CPs
PANEL DISPLAY PROCESSOR, CP30, CP40, or CP40B DISPLAY STATIONS

for DP1S01
DSI Block ECB14 DP1S01 DP1S23

up to 24 DSs

FIELDBUS
NODEBUS

for DP1S02 DP1S02 DP1S24


DSI Block ECB14

for DP1S24
DSI Block ECB14

to/from
other CPs
Figure 25-3. DP10, CP30, CP40, or CP40B

The Display Processor, CP30, CP40 or CP40B is the control processor in this scheme and it over-
sees the Fieldbus.
The Display Station is equivalent to an FBM, and is occasionally referred to as hardware type 28.
The Station Health display, however, always shows the Display Station as DS (not FBM_28). The
DS uses software type 14 (which is ECB14).
The DSI block has four parameters that have a direct relation to the three column indicators and
the R/L indicator. These four parameters which enable the transfer of process data to the display
station are:
 COL_1
 COL_2
 COL_3
 LR_STA.
When the DSI block is processed, it converts the value it receives from the COL_1 source into
counts (an integer value between -16384 and 16383) based on the range defined by LSCI1 and
HSCI1. The resulting count value is then sent to the Display Station via the ECB14 block
assigned to that DS.
The DS uses the ECB14 parameters LRV1 and URV1 (lower range value and upper range value
for column 1) as well as parameter DECPL1 (decimal place for column 1) to convert the counts-
value to the representation on the column 1 display and the actual number shown in digits on the
Display Station.
In the same processing cycle the Display Station is checked on a change-driven basis for new ramp
values and a new L/R setting.

777
B0193AX – Rev AB 25. DSI – Display Station Interface Block

The ramp value for column 1 undergoes a conversion that is the reverse of the above, before it is
used in Object Manager setval call on the source of the COL_1 parameter.
The Display Station sends the new settings to the control strategy parameters. From there the
control blocks relay the settings back to the DSI block through the linkages. Finally, the DSI
sends the value back to the DS where the value is displayed.
Ramp values and R/L key changes are written to parameters LR, COL_1S, COL_2S, and
COL_3S either by the DS through Fieldbus handling or by another source through the Object
Manager and then communicated through one of the linkages from the parameter to be shown to
the corresponding COL_n or LR_STA parameter. These values are communicated in reverse
direction through the linkage by means of Object Manager setval-commands by the block algo-
rithm.
If the source parameter of the linkage cannot be set for some reason, for example, because it is the
sink of another linkage or it is an output parameter of a block that is in automatic mode, then this
condition is ignored and the parameter is not set.
It is possible to physically attach a Auto/Manual Station (AMS) to the Display Station. However,
the AMS is supported by a separate control block and an FBM22 that must be on a separate field-
bus. The absence or presence of the AMS and its peripheral components have no effect on the
DSI block.

778
26. DTIME – Dead Time
Compensator Block
This chapter covers the Dead Time Compensator Block, or DTIME, its features, parameters
and detailed operations.

26.1 Overview
The Dead Time Compensator block, DTIME, simulates the dynamic effects of pure delay, trans-
port lag, or distance-velocity lag, which are characteristic of energy or mass transportation in a
physical system.

26.1.1 I/O Diagram

Manual/Auto
Measurement Output
DTIME
Deadtime Block Status
BLOCK
Follow Data Collection Flag
Hold
Running Average Disable

Figure 26-1. DTIME Block I/O Diagram

26.2 Features
Features are:
 Manual/Auto control of the outputs, which can be initiated by either a host process or
another block
 True dynamic variable deadtime adjustment
 Follow mode, in which the output tracks the measurement
 Hold mode, in which the output remains unchanged.
 Configurable bucket utilization
 Use of the DTIME block for short-term data collection.
Options are:
 PROPT, Error Propagation option.
 DTOPT, Dead Time Option, disables the calculation of the running average in the
DTIME block’s input, and the linear interpolation in the block’s output.
 NUMBKT, Number of Buckets, specifies the number of buckets for storing interme-
diate deadtime values.

779
B0193AX – Rev AB 26. DTIME – Dead Time Compensator Block

 INITMA, Initialize Manual/Auto, specifies the desired state of the MA input during
initialization.
 CEOPT, Control Error Option.

26.3 Parameters
Table 26-1. DTIME Block Parameters

Name Description Type Accessibility Default Units/Range


Configurable Parameters
INPUTS
NAME block name string no-con/no-set blank 1 to 12 chars
TYPE block type integer no-con/no-set 17 DTIME
DESCRP descriptor string no-con/no-set blank 1 to 32 chars
PERIOD block sample time short no-con/no-set 1 0 to 13
PHASE block phase number integer no-con/no-set 0 ---
LOOPID loopid string no-con/set blank 1 to 32 chars
MEAS process input real con/set 0.0 RI1
HSCI1 high scale in 1 real no-con/no-set 100.0 specifiable
LSCI1 low scale in 1 real no-con/no-set 0.0 specifiable
DELTI1 change delta in 1 real no-con/no-set 1.0 percent
EI1 eng units input string no-con/no-set % specifiable
PROPT propagate error boolean no-con/no-set 0 0 to 1
DTOPT dead time option boolean no-con/no-set 0 0 to 1
DT dead time real con/set 0.0 [0..]minutes
NUMBKT number of buckets short no-con/no-set 10 1 to 10
HSCO1 high scale out 1 real no-con/no-set 100.0 specifiable
LSCO1 low scale out 1 real no-con/no-set 0.0 specifiable
DELTO1 change delta out 1 real no-con/no-set 1.0 percent
EO1 eng unit output string no-con/no-set % specifiable
MA manual/auto boolean con/set 0 0 to 1
INITMA initialize MA short no-con/no-set 1 [0|1|2]
FOLLOW follow mode boolean con/set 0 0 to 1
HOLD hold mode boolean con/set 0 0 to 1
CEOPT control error option short no-con/no-set 1 0 to 2
Non-Configurable Parameters
OUTPUTS
BKT_1 to BKT_10 bucket #1 to #10 real con/no-set 0.0 RO1
BLKSTA block status pack_l con/no-set 0 bit map
DTFLAG deadtime flag integer con/no-set 0 0 to 32767
OUT output real con/no-set 0.0 RO1
DATA STORES
ACHNGE alternate change integer con/no-set 0 -32768 to 32767
DEFINE no config errors boolean no-con/no-set 1 0 to 1
DTCYCL dead time in cycles real no-con/no-set 1.0 ---

780
26. DTIME – Dead Time Compensator Block B0193AX – Rev AB

Table 26-1. DTIME Block Parameters (Continued)

Name Description Type Accessibility Default Units/Range


ERCODE config error string no-con/no-set 0 1 to 43 chars
LOCKID lock identifier string no-con/no-set blank 8 to 13 chars
LOCKRQ lock request boolean no-con/set 0 0 to 1
OWNER owner name string no-con/set blank 1 to 32 chars
PERTIM period time real no-con/no-set 0.1 ---
RI1 eng range input real[3] no-con/no-set 100,0,1 specifiable
RO1 eng range output real[3] no-con/no-set 100,0,1 specifiable

26.3.1 Parameter Definitions


ACHNGE Alternate Change is an integer output which is incremented each time a
block parameter is changed via a Set command.

BKT_1 to BKT_n Buckets 1 through n contain intermediate values calculated and stored by
the DTIME block algorithm. Bucket 1 is the oldest value, and Bucket n
the most recent value (calculated over the most recent shift time period),
where n is the value of NUMBKT.

BLKSTA Block Status is a 32-bit output, bit-mapped to indicate the block’s opera-
tional states. For the DTIME block, only the following bits are used:

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
B10
B11
WLCK B12
B13
B14
B15
B16
B17
UDEF B18
B19
B20
B21
B22
B23
B24
B25
B26
B27
B28
B29
B30
B31
B32
B1
B2
B3
B4
B5
B6
B7
B8
B9

HLD

FOL
ON

MA

Bit Boolean
Number* Connection
(0 to 31) Name Description When True (B32 to B1)
4 FOL Follow BLKSTA.B28
7 HLD Holding BLKSTA.B25
11 MA Manual(= false)/Auto(= true) BLKSTA.B21
14 UDEF Undefined BLKSTA.B18
15 ON Compound On BLKSTA.B17
20 WLCK Workstation Lock BLKSTA.B12

* Bit 0 is the least significant, low order bit.

781
B0193AX – Rev AB 26. DTIME – Dead Time Compensator Block

CEOPT Control Error Option is a short integer that specifies how the block
responds to the MEAS and BCALCI inputs when either of those inputs is
in error. To provide backward compatibility, CEOPT defaults to 1.
CEOPT has a range of 0 to 2 where:
0= The block takes no implicit Hold action when it detects a con-
trol error.
1= The block goes to the Hold state if, while MBADOP is false,
either MEAS or BCALCI: (a) has its BAD status bit set true; (b)
has its Out-of-Service status bit set true; (c) is experiencing
peer-to-peer path failure.
2= The block goes to the Hold state if, while MBADOP is false,
either MEAS or BCALCI meets any of the conditions described
for CEOPT = 1, or if MEAS has its ERROR status bit set true.

CEOPT is independent of the propagate error option, PROPT, and does


not affect the external logical input, HOLD. The HOLD input, when
true, still drives the block into the Hold state whenever the block is in
Auto (and MBADOP is false).

DEFINE Define is a data store which indicates the presence or absence of configura-
tion errors. The default is 1 (no configuration errors). When the block ini-
tializes, DEFINE is set to 0 if any configured parameters fail validation
testing. In that case, no further processing of the block occurs. To return
DEFINE to a true value, correct all configuration errors and re-install the
block.

DELTI1 Change Delta for Input Range 1 is a real value that defines the minimum
percent of the input range that triggers change driven connections for
parameters in the range of RI1. The default value is 1.
Entering a 1 causes the Object Manager to recognize and respond to a
change of 1 percent of the full error range. If communication is within the
same CP that contains the block’s compound, change deltas have no
effect.
Refer to “Peer-to-Peer Connections of Real-Type Block Inputs” on
page 23 for details on how the I/A Series software affects the change delta
percentage during operation.

DELTO1 Change Delta for Output Range 1 is presently unused.

DESCRP Description is a user-defined string of up to 32 characters that describe the


block’s function (for example, “PLT 3 FURNACE 2 HEATER CON-
TROL”).

DT Dead Time is the length of the delay, in minutes, before the measurement
appears at the output. You can configure this input as a constant or con-
nect it to a block to provide varying delay times, as long as the DT value
remains equal to or greater than the block period.

782
26. DTIME – Dead Time Compensator Block B0193AX – Rev AB

DTCYCL Dead Time Cycles is a real parameter representing the deadtime of the
block calculated in block cycles.

DTFLAG Deadtime Flag is incremented every shift time period in the DTIME
block.

DTOPT Dead Time Option disables the calculation of the running average in the
DTIME block’s input, and the linear interpolation in the block’s output.

EI1 Engineering Units for Input Range 1, as defined by the parameters


HSCI1, LSCI1, and DELTI1, provides the engineering units text for the
values defined by Input Range 1. “Deg F” or “pH” are typical entries.

EO1 Engineering Units for Output Range 1, defined by the parameters


HSCO1, LSCO1, and DELTO1, 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).

ERCODE Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the block’s
DEFINE parameter to be set false, but not the warning situations. Valida-
tion of configuration errors does not proceed past the first error encoun-
tered by the block logic. The block detailed display shows the ERCODE
on the primary page, if it is not null. For the DTIME block, the following
list specifies the possible values of ERCODE, and the significance of each
value in this block:
Message Value
“W43 – INVALID PERIOD/ PHASE does not exist for given block
PHASE COMBINATION” PERIOD, or block PERIOD not
compatible with compound PERIOD.
“W44 – INVALID High range value is less than or equal
ENGINEERING RANGE” to low range value.
“W46 – INVALID INPUT The source parameter specified in the
CONNECTION” input connection cannot be found in
the source block, or the source
parameter is not connectable, or an
invalid boolean extension connection
has been configured.
“W48 – INVALID BLOCK The configured value of a block option
OPTION” is illegal.
“W53 – INVALID A parameter value is not in the accept-
PARAMETER VALUE” able range.
“W58 – INSTALL ERROR; A Database Installer error has
DELETE/UNDELETE occurred.
BLOCK”

783
B0193AX – Rev AB 26. DTIME – Dead Time Compensator Block

FOLLOW Follow is a boolean input. When true, FOLLOW forces the block into the
Follow substate of Auto. In this substate, the output follows the input
MEAS.

HOLD Hold is a boolean input. When true, HOLD forces the block into the
Hold substate of Auto, holding the output at its last computed value.

HSCI1 High Scale for Input Range 1 is a real value that defines the upper limit of
the measurement ranges. EI1 defines the units. Make the range and units
consistent with the measurement source. A typical value is 100 (percent).

HSCO1 High Scale for Output Range 1 is a real value that defines the upper limit
of the ranges for Output 1. A typical value is 100 (percent). EO1 defines
the units. Make the range and units consistent with those of the output
destination.

INITMA Initialize Manual/Auto specifies the desired state of the MA input during
initialization, where:
0 = Manual
1 = Auto
2 = The MA state as specified in the checkpoint file.
The block asserts this initial M/A state whenever:
 It is installed into the Control Processor database.
 The Control Processor undergoes a reboot operation.
 The compound in which it resides is turned on.
 The INITMA parameter itself is modified via the control configu-
rator. (The block does not assert INITMA on ordinary
reconfiguration.)
INITMA is ignored if MA has an established linkage.

LOCKID Lock Identifier is a string identifying the workstation which has locked
access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-char-
acter letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.

LOCKRQ Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation dis-
plays. When LOCKRQ is set true in this fashion a workstation identifier
accompanying the SETVAL command is entered into the LOCKID
parameter of the block. Thereafter, set requests to any of the block’s
parameters are honored (subject to the usual access rules) only from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set false by any workstation at any time, whereupon a
new LOCKRQ is be accepted, and a new ownership workstation identifier
written to LOCKID.

784
26. DTIME – Dead Time Compensator Block B0193AX – Rev AB

LOOPID Loop Identifier is a configurable string of up to 32 characters which iden-


tifies the loop or process with which the block is associated. It is displayed
on the detail display of the block, immediately below the faceplate.

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.

MA Manual Auto is a boolean input that controls the Manual/Automatic


operating state (0 = false = Manual; 1 = true = Auto). In Auto, given the
measurement value, the block computes the output according to its spe-
cific algorithm. The block automatically limits the output to the output
range specified between LSCO1 and HSCO1, for analog blocks. In Man-
ual, the algorithm is not performed, and the output is unsecured. An
external program can then set the output to a desired value.

MEAS Measurement is an input identifying the source of the block’s input, or the
controlled variable.

NAME Name is a user-defined string of up to 12 characters used to access the


block and its parameters.

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.

OWNER Owner is a string of up to 32 ASCII characters which is used to allocate


control blocks to applications. Attempts to set Owner are successful only
if the present value of Owner is the null string, an all-blank string, or iden-
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.

PERIOD Period is an indexed input that dictates the block’s execution time base
and allowable PHASE values. For stations other than gateways, PERIOD

785
B0193AX – Rev AB 26. DTIME – Dead Time Compensator Block

values range from 0 to 13 and map to the following period time lengths.
(Gateway blocks have different period values than shown here.)
Period Length Period Length
0 0.1 sec 7 10 min
1 0.5 sec* 8 60 min
2 1.0 sec 9 0.2 sec
3 2.0 sec 10 5.0 sec**
4 10 sec 11 0.6 sec***
5 30 sec 12 6.0 sec****
6 1 min 13 0.05 sec*****

* If the BPC is 0.2 sec. this period is treated internally as 0.6 sec., but the
PERIOD parameter remains 1.
** If the BPC is 2.0 sec. this period is treated internally as 6.0 sec., but the
PERIOD parameter remains 10.
*** If the BPC is 0.5 sec. this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
****If the BPC is not 2.0 sec. this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, CP60 and later control processors.

PERTIM Period Time is the period of the block expressed in seconds.

PHASE Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Con-
trol Processor is 0.5 sec. Refer to the appropriate Integrated Control Soft-
ware Concepts document (B0700AG or B0193AW).

PROPT Propagate Error Option is a boolean input. When true, PROPT sets the
ERROR Status bit of the output parameter if the input to the MEAS
parameter is in error while the block is in Auto. The input to the MEAS
parameter is in error when:
 Its BAD status bit is set true.
 Its OOS (Out-of-Service) status bit is set true.
 Its ERROR status bit is set true.
 It is experiencing peer-to-peer path failure.
If a transition to Manual occurs while the ERROR status is true, it
remains true until either a set command is written to that output or until
the block transfers to Auto with the error condition returned to normal.

RI1 Range Input is an array of real values that specify the high and low engi-
neering scale and change delta of a particular real input. For a given block,

786
26. DTIME – Dead Time Compensator Block B0193AX – Rev AB

it also forms an association with a group of real input parameters that have
the same designated range and change delta.

RO1 Range Output is an array of real values that specify the high and low engi-
neering scale of a particular real output. For a given block, it also forms an
association with a group of real output parameters that have the same des-
ignated range.

TYPE When you enter “DTIME” or select “DTIME” from the block type list
under Show, an identifying integer is created specifying this block type.

26.4 Detailed Operation


In Manual, the output is unsecured and can be manipulated by performing Object Manager Set
commands. In addition, the block does not perform deadtime compensation and the Follow fea-
ture is inoperable.
A transition from Manual-to-Auto mode forces all deadtime dynamics to vanish so that the mea-
surement immediately appears at the output.
In Auto, the block performs deadtime compensation if the FOLLOW input is false. If the FOL-
LOW input is true, then the block operates in the FOLLOW mode, whereby the output tracks
the measurement value. A transition in the Follow input from true to false forces “old” deadtime
dynamics to vanish so that the block begins delaying the measurement signal by the DT amount
at the moment the transition occurs.
In Hold mode (when HOLD is set), sampling is suspended, buckets are frozen, and the output
remains unchanged.
Control Error Option (CEOPT) determines how the block output responds to control errors in
the MEAS input. It is a configurable short integer with the following values and effects:
 0 = Take no action based on MEAS control errors. (This is the default.)
 1 = Go to the HOLD state if the BAD or OOS status bit of MEAS is true, or the OM
field of MEAS status indicates off-scan.
 2 = Go to the HOLD state if the BAD, OOS, or ERROR status bit of MEAS is true,
or the OM field of MEAS status indicates off-scan.
While deadtime compensation is being performed, the DT parameter establishes the average
delay time it takes for the measurement signal to appear at the output. Up to ten data storage ele-
ments, or “buckets,” see Figure 26-2, are used to shift the measurement samples during the
elapsed delay time. The shift time between samples produces the desired delay time. The number
of buckets in each block is configurable, up to a maximum of ten buckets, which is the default.
Each bucket is also available as a connectable block output.
When DTOPT is not set, the incoming measurement samples at each block execution period are
averaged over the shift time period, for example to avoid loss of signal resolution. The average
measurement values are shifted through the bucket brigade. To avoid rapid change of the output
signal at each shift time, the output undergoes linear interpolation between the last two “oldest”
stored values during each block execution time.
When DTOPT is set, the averaging of incoming measurement samples is disabled and, at each
deadtime block execution, the current measurement value (MEAS) is directly stored into the

787
B0193AX – Rev AB 26. DTIME – Dead Time Compensator Block

“newest” bucket, while the block output is updated each deadtime block execution with the value
from the “oldest” bucket.
When DTFLAG is used, the block can be used for short-term data collection. At each shift
period, DTFLAG is incremented to indicate that a new set of bucket data is available. If
DTFLAG is put into an open variables list, the incrementing of DTFLAG can be used to trigger
GETVAL calls to retrieve the bucket parameters BKT_1 through BKT_10.

Bucket Brigade

st MEAS
1 (k * st) bk bk bk bk
MEAS (t) dt ***
st (n) (n-1) (2) (1)
MEAS (t)
0 st st st st
* * * *
DT

* st = shift time
Output
Interpolation
Filter

FOLLOW

MANUAL SETS OUT

MA

Figure 26-2. DTIME Signal Flow Diagram

26.4.1 Algorithm Description


In the Automatic mode, with Follow = Off, measurements are averaged, stored serially in n (up to
ten) data elements called “buckets” and loaded into the output filter. See Figure 26-2.
The input averaging filter loads into bucket n an average value of the measurement. Samples are
taken each block period over a length of time equal to 1/nth the specified deadtime. This prevents
a deterioration of signal resolution.
Each bucket holds the data for 1/nth of the specified deadtime (DT) and then shifts the averaged
value into the next bucket. When the value has been shifted through n buckets, the deadtime
compensation has been achieved.
In order to avoid a sharp change of values between two consecutive output periods (1/nth the total
deadtime), an Output Interpolation Filter is used to provide an interpolation between the
2 oldest values (values stored in buckets 2 and 1).
The Follow mode routes the measurement completely around the compensation routine and
feeds it directly to the output.
The Manual mode virtually switches out the entire DTIME block.

788
26. DTIME – Dead Time Compensator Block B0193AX – Rev AB

A transition from Manual-to-Auto forces all deadtime dynamics to vanish so that the measure-
ment immediately appears at the output and the signal begins the delay at the moment of transi-
tion. This action is also taken for a transition of Follow and Hold from On to Off.
The transition from Auto-to-Manual releases the block output, which retains the last value prior
to the transition. While the block is in Manual mode, an operator can make changes to the out-
put (via Object Manager SET commands) by ramping the output at the faceplate or by making a
Direct Data Entry.

789
B0193AX – Rev AB 26. DTIME – Dead Time Compensator Block

790

Вам также может понравиться