You are on page 1of 820

B0193AX

REV Z

I/A Series
Integrated Control Block Descriptions
Volume 1 of 3, ACCUM DTIME
January 15, 2010

Invensys, Foxboro, I/A Series, the IPS 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-2010 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.......................................................................... 125
5. AOUT Analog Output Block......................................................................................... 133
6. AOUTR Redundant Analog Output Block.................................................................... 171
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 ............................................................................................ 531
18. CINR Redundant Contact Input Block ....................................................................... 555
19. CMP Compounds........................................................................................................ 577
20. COUT Contact Output Block..................................................................................... 587
21. COUTR Redundant Contact Output Block................................................................ 611
22. DEP Dependent Sequence Block ................................................................................. 635
23. DGAP Differential Gap Block ..................................................................................... 655
24. DPIDA Controller .......................................................................................................... 687
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..............................................................................................
28. Primary ECB (ECBP or ECB11) ....................................................................................
29. ECB1 Analog Input .....................................................................................................
30. ECB2 Analog Input and Analog Output......................................................................

789
795
803
811
iii

B0193AX Rev Z

Volume Set Information

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


32. ECB5 Digital In, Sustained/Momentary, and Digital Out ...........................................
33. ECB6 Sequence of Events Input ..................................................................................
34. ECB7 Digital and Pulse Count In................................................................................
35. ECB8 Ladder Logic or DC Out/Validated Input .........................................................
36. ECB9 Remote/Manual.................................................................................................
37. ECB11 (ECBP, Primary ECB)........................................................................................
38. ECB12 Intelligent Transmitter 2 Interface...................................................................
39. ECB13 Hydrostatic Tank Gauge .................................................................................
40. ECB14 Panel-Mounted Display...................................................................................
41. ECB15 Allen-Bradley PLC ECB ..................................................................................
42. ECB16 Modicon PC ECB ...........................................................................................
43. ECB18 Intelligent Transmitter 2 (Child) .....................................................................
44. ECB19 760 Micro Controller ......................................................................................
45. ECB21 761 Micro Controller ......................................................................................
46. ECB22 Mass Flow Transmitter....................................................................................
47. ECB23 Intelligent Transmitter 2 Interface (Parent) .....................................................
48. ECB34 MDACT Feedback Lag Tristate ......................................................................
49. ECB36 MDACT Pulse Width Tristate ........................................................................
50. ECB38R Intelligent Transmitter 2 Interface (Redundant Parent) ..............................
51. ECB39 AMSPRI........................................................................................................
52. ECB41 Analog Input FBC .........................................................................................
53. ECB42 Digital Input FBC .........................................................................................
54. ECB43 Analog Output FBC ......................................................................................
55. ECB44 Digital Output FBC ......................................................................................
56. ECB46 Digital Input/Digital Output FBC ................................................................
57. ECB47 FBP10 Interface to Cluster I/O .....................................................................
58. ECB47R Redundant FBP10 Interface to Cluster I/O ................................................
59. ECB52 DPIDA Controller ........................................................................................
60. ECB53 Analog Output ..............................................................................................
61. ECB73 Valve and Transmitter Parent ECB ...............................................................
62. ECB74 Valve and Transmitter Child ECB.................................................................
63. ECB110 Interface for FCM10 Family of Devices.......................................................

821
829
843
851
859
871
883
891
899
917
925
931
939
951
957
963
975
985
997
1009
1021
1031
1037
1043
1051
1059
1067
1077
1089
1099
1107
1115
1133

64. ECB200 Single Module DCI FBM Interface .............................................................


65. ECB201 Device Interface...........................................................................................
66. ECB202 REDUNDANT DCI FBM Interface ..........................................................
67. ECB210 Redundant FCM100 Interface ....................................................................
68. EVENT Event Block .................................................................................................

1137
1149
1165
1181
1195

iv

Volume Set Information

B0193AX Rev Z

69. EXC Exception Sequence Block.................................................................................


70. FBTUNE Feedback Tuner Block...............................................................................
71. FFTUNE Feedforward Tuner Block ..........................................................................
72. GDEV General Device Block.....................................................................................
73. IIN Integer Input Block .............................................................................................
74. IINR Redundant Integer Input Block ........................................................................
75. IND Independent Sequence Block.............................................................................
76. IOUT Integer Output Block......................................................................................
77. LIM Limiter Block.....................................................................................................
78. LLAG Lead Lag Block................................................................................................
79. LOGIC Logic Block...................................................................................................
80. LONG Long Integer Variable Block ..........................................................................
81. MAIN Multiple Analog Input Block..........................................................................
82. MATH Mathematics Block........................................................................................
83. MCIN Multiple Contact Input Block........................................................................
84. MCOUT Multiple Contact Output Block.................................................................
85. MDACT Motor Driven Actuator Controller ................................................................
86. MEALM Measurement Alarm Block..........................................................................
87. MON Monitor Block ................................................................................................
88. MOVLV Motor Operated Valve Block......................................................................

1211
1231
1241
1249
1281
1299
1321
1339
1363
1377
1387
1419
1421
1463
1509
1533
1553
1597
1613
1629

Volume 3 of 3
MSG through VLV
89. MSG Message Generator Block..................................................................................
90. MTR Motor Control Block .......................................................................................
91. OUTSEL Output Select Block...................................................................................
92. PACK Packed Long Integer Variable Block................................................................
93. PAKIN Packed Input Block .......................................................................................
94. PAKINR Redundant Packed Input Block ..................................................................
95. PAKOUT Packed Output Block................................................................................
96. PATALM Pattern Alarm Block ..................................................................................
97. PATT Pattern Block ..................................................................................................
98. PID Proportional Integral Derivative Block ...............................................................
99. PIDA Advanced PID Block........................................................................................
100. PIDX PID Extended Block ......................................................................................
101. PIDXE PID Extended with EXACT Block ..............................................................
102. PIDE PID With EXACT Block ...............................................................................
103. PLB Programmable Logic Block...............................................................................

1651
1659
1681
1693
1695
1707
1723
1741
1753
1771
1807
1883
1921
1965
2007

B0193AX Rev Z

Volume Set Information

104. PLSOUT Pulse Output Block..................................................................................


105. PTC Proportional Time Controller Block................................................................
106. RAMP Ramp Block .................................................................................................
107. REAL Real Variable Block .......................................................................................
108. RATIO Ratio Block .................................................................................................
109. REALM Real Alarm Block .......................................................................................
110. RIN Real Input Block ..............................................................................................
111. RINR Redundant Real Input Block .........................................................................
112. ROUT Real Output Block.......................................................................................
113. ROUTR Redundant Real Output Block..................................................................
114. SIGSEL Signal Selector Block ..................................................................................
115. STALM State Alarm Block ......................................................................................
116. STATE State Block ..................................................................................................
117. Station Block...............................................................................................................
118. STRIN String Input Block.......................................................................................
119. STRING String Variable Block................................................................................
120. STROUT String Output Block ...............................................................................
121. SWCH Switch Block ...............................................................................................
122. TIM Timer Block ....................................................................................................
123. VLV Valve Block .....................................................................................................

vi

2025
2041
2073
2085
2089
2121
2145
2175
2209
2241
2277
2291
2303
2335
2363
2373
2375
2383
2395
2403

Contents
Figures................................................................................................................................. xvii
Tables................................................................................................................................... xxi
Preface................................................................................................................................. xxv
1. ACCUM Accumulator Block..........................................................................................
1.1 Overview .........................................................................................................................
1.2 Basic Operation ..................................................................................................................
1.3 Features ...............................................................................................................................

1
1
1
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 Application Diagram ................................................................................................. 24
2. AIN Analog Input Block ..............................................................................................
2.1 Overview ...........................................................................................................................
2.2 Basic Operation ................................................................................................................
2.3 Features .............................................................................................................................
2.4 Parameters .........................................................................................................................
2.4.1 Parameter Definitions ...............................................................................................
2.5 Functions ..........................................................................................................................
2.5.1 Detailed Diagram ......................................................................................................
2.5.2 Input and Signal Conditioning ..................................................................................
2.5.2.1 General Analog Input: 0 to 20 mA or 0 to 10 V dc ...........................................
2.5.2.2 Thermocouple Input .........................................................................................
2.5.2.3 RTD Input ........................................................................................................
2.5.2.4 Pulse Rate Input ................................................................................................
2.5.2.5 Pulse Count Input .............................................................................................
2.5.2.6 Intelligent Field Device Input ............................................................................

25
25
26
26
27
29
44
44
45
45
48
50
52
53
53

vii

B0193AX Rev Z

Contents

2.5.2.7 Exceptions for Use of AIN Blocks with Intelligent Transmitters


and Positioners (Parent ECB73) ....................................................................................
2.5.2.8 Input from Another Block .................................................................................
2.5.3 Zero and Span Scaling ...............................................................................................
2.5.4 Clamping ..................................................................................................................
2.5.5 Filtering ....................................................................................................................
2.5.5.1 First Order Lag Filtering (FLOP = 1) ................................................................
2.5.5.2 Butterworth Filtering (FLOP = 2) .....................................................................
2.5.5.3 Two-Sample-Average Filtering (FLOP = 3) .......................................................
2.6 Bad Input and Out-of-Range Processing ...........................................................................
2.6.1 Bad Status and BAD Parameter .................................................................................
2.6.2 Out-of-Range Conditions .........................................................................................
2.6.2.1 Out-of-Range Due to Signal Conditioning ........................................................
2.6.2.2 Out-of-Range Due to Clamping ........................................................................
2.6.3 Out-of-Service Conditions ........................................................................................
2.6.4 Last Good Value .......................................................................................................

55
56
57
57
58
59
60
60
60
60
61
61
62
62
62

2.7 Manual Mode ...................................................................................................................


2.8 Alarming ...........................................................................................................................
2.9 Application Diagram .........................................................................................................
2.10 Appendix A Signal Conditioning Tables ......................................................................
2.10.1 Summary .................................................................................................................
2.10.2 Linear/Square Root Signal Conditioning .................................................................
2.10.3 Thermocouple Signal Conditioning ........................................................................
2.10.4 RTD Signal Conditioning .......................................................................................
2.11 Appendix B Valid Input Connections ..........................................................................
2.11.1 FBM201 through FBM242 Valid Input Connections .............................................
2.11.2 FBM01 through FBM46 Valid Input Connections .................................................
2.11.3 Cluster I/O Valid Input Connections ......................................................................

63
65
66
67
67
68
70
70
71
71
72
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
3.5.4 Clamping ................................................................................................................ 109
3.5.5 Filtering .................................................................................................................. 110
viii

Contents

B0193AX Rev Z

3.5.5.1 First Order Lag Filtering (FLOP = 1) ..............................................................


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

110
111
111
112
112
112
112
113
113
113
114
115
116
117
117
118
120
120
120
120
122
123

4. ALMPRI Alarm Priority Change Block ......................................................................


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

125
125
125
125
126
130
130
130
130
130
130
130
131

5. AOUT Analog Output Block .....................................................................................


5.1 Overview .........................................................................................................................
5.2 Basic Operation ..............................................................................................................
5.3 Features ...........................................................................................................................
5.4 Parameters .......................................................................................................................
5.4.1 Parameter Definitions .............................................................................................
5.5 Functions ........................................................................................................................
5.5.1 Detailed Diagram ....................................................................................................
5.5.2 Block Initialization ..................................................................................................

133
133
134
134
135
137
152
152
153
ix

B0193AX Rev Z

Contents

5.5.3 Block Validation ......................................................................................................


5.5.4 Output Processing ...................................................................................................
5.5.4.1 Zero and Span Scaling .....................................................................................
5.5.4.2 Reset Balance Action .......................................................................................
5.5.4.3 Clamping ........................................................................................................
5.5.4.4 Back Calculated Outputs .................................................................................
5.5.4.5 Signal Conditioning ........................................................................................
5.5.4.6 Output to FBM or FBC ..................................................................................
5.5.4.7 Configuring the AOUT Block for Intelligent Positioners ................................
5.5.5 Changing Engineering Range Limits .......................................................................
5.5.6 Hold State ...............................................................................................................
5.5.7 PRIBLK and PRITIM Functionality .......................................................................
5.5.8 Failsafe State ............................................................................................................
5.5.9 Supervisory Control ................................................................................................
5.6 Bad, Out-of-Service, and Error Conditions .....................................................................
5.6.1 Bad Condition ........................................................................................................
5.6.2 Out-of-Service Condition ........................................................................................
5.6.3 Error Condition and Last Good Value Functionality ..............................................
5.7 Manual Mode .................................................................................................................
5.8 Alarming .........................................................................................................................
5.9 Application Diagram .......................................................................................................

154
155
156
157
158
158
159
161
161
162
163
163
163
164
165
165
166
166
167
168
169

6. AOUTR Redundant Analog Output Block ................................................................


6.1 Overview .........................................................................................................................
6.2 Basic Operation ..............................................................................................................
6.3 Features ...........................................................................................................................
6.4 Parameters .......................................................................................................................
6.4.1 Parameter Definitions .............................................................................................
6.4.2 Detailed Diagram ....................................................................................................
6.4.3 Block Initialization ..................................................................................................
6.4.4 Block Validation ......................................................................................................
6.4.5 Output Processing ...................................................................................................
6.4.5.1 Zero and Span Scaling .....................................................................................
6.4.5.2 Reset Balance Action .......................................................................................
6.4.5.3 Clamping ........................................................................................................
6.4.5.4 Back Calculated Outputs .................................................................................
6.4.5.5 Signal Conditioning ........................................................................................
6.4.5.6 Output to FBMs or FBCs ................................................................................
6.4.6 Changing Engineering Range Limits .......................................................................
6.4.7 Hold State ...............................................................................................................
6.4.8 PRIBLK and PRITIM Functionality .......................................................................
6.4.9 Failsafe State ............................................................................................................
6.4.10 Supervisory Control ..............................................................................................
6.5 Bad, Out-of-Service, and Error Conditions .....................................................................
6.5.1 Bad Condition ........................................................................................................
6.5.2 Out-of-Service Condition ........................................................................................
6.5.3 Error Condition and Last Good Value Functionality ..............................................
6.6 Manual Mode .................................................................................................................

171
171
172
173
174
176
191
192
193
194
195
196
197
197
198
200
200
200
201
201
201
203
203
204
204
205

Contents

B0193AX Rev Z

6.7 Alarming ......................................................................................................................... 206


6.8 Application Diagram ....................................................................................................... 207
7. BIAS Bias Block .........................................................................................................
7.1 Overview .........................................................................................................................
7.1.1 I/O Diagram ...........................................................................................................
7.2 Features ...........................................................................................................................
7.3 Parameters .......................................................................................................................
7.3.1 Parameter Definitions .............................................................................................
7.4 Functions ........................................................................................................................
7.4.1 Detailed Operation .................................................................................................
7.4.1.1 Normal Configuration .....................................................................................
7.4.2 PRIBLK and PRITIM Functionality .......................................................................

209
209
209
210
211
214
232
232
234
236

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


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

237
237
238
238
240
252
252
252
253
253
254
254
254
255
255
255
256
256
257
257
257

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


9.1 Overview ......................................................................................................................... 259
9.2 Basic Operation .............................................................................................................. 259
9.3 Features ...........................................................................................................................
9.4 Parameters .......................................................................................................................
9.4.1 Parameter Definitions .............................................................................................
9.5 Functions ........................................................................................................................
9.5.1 Detailed Diagram ....................................................................................................

260
260
262
276
276

xi

B0193AX Rev Z

Contents

9.5.2 Associated ECBs ......................................................................................................


9.5.3 DCI Connections ....................................................................................................
9.5.4 Origins of Input Data ..............................................................................................
9.5.5 Processing the Status and Data of the Input Points .................................................
9.5.6 Arbitration Algorithm .............................................................................................
9.5.7 Auto/Manual Arbitration ........................................................................................
9.5.8 Operation in Auto Mode .........................................................................................
9.5.9 Operation in Manual Mode ....................................................................................
9.5.10 State Change Messages (CP270 Only) ..................................................................
9.5.11 Alarming (CP270 Only) ........................................................................................
9.5.11.1 BAD I/O Alarms ...........................................................................................
9.5.11.2 State Alarms ..................................................................................................
9.5.11.3 Alarm Management .......................................................................................
9.5.12 Time Stamp ..........................................................................................................

276
277
277
278
279
280
280
280
280
281
281
282
282
283

10. BLNALM Boolean Alarm Block...............................................................................


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

285
285
285
285
286
286
293
293

11. BOOL Boolean Variable Block.................................................................................


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

295
295
295
296
296
296

12. BOUT Binary Output Block....................................................................................


12.1 Overview .......................................................................................................................
12.2 Basic Operation ............................................................................................................
12.3 Features .........................................................................................................................
12.4 Parameters .....................................................................................................................
12.4.1 Parameter Definitions ...........................................................................................
12.5 Functions ......................................................................................................................
12.5.1 Detailed Diagram ..................................................................................................
12.5.2 Associated ECBs ....................................................................................................
12.5.3 DCI Connections ..................................................................................................
12.5.4 Output Point and Initialization Input Point ..........................................................
12.5.5 Confirmed Output Parameters ..............................................................................
12.5.6 Status of the Readback Value ................................................................................
12.5.7 Auto/Manual Switching ........................................................................................
12.5.8 Fail-Safe Functions ................................................................................................

299
299
300
301
302
303
315
315
315
316
316
317
317
318
318

xii

Contents

B0193AX Rev Z

12.5.9 Time Stamp ..........................................................................................................


12.5.10 Conditions for Sending a Block Output ..............................................................
12.5.11 Sending the Output ............................................................................................
12.5.12 Status of Other Block Outputs ............................................................................
12.5.13 PRIBLK and PRITIM Functionality ...................................................................
12.5.14 Change Timer .....................................................................................................
12.5.15 Status of INI_PT .................................................................................................
12.5.16 Initialization ........................................................................................................
12.5.17 Cascade Processing ..............................................................................................
12.5.18 Holding and Tracking .........................................................................................
12.5.19 Alarming (CP270 Only) ......................................................................................

319
320
320
320
320
321
321
321
321
322
322

13. BOUTR Redundant Binary Output Block ...............................................................


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

325
325
325
327
328
329
342
342
342
343
343
344
345
345
346
347
347
347
348
348
348
349
349
349
350
350
350
350
351
351

14. CALC Calculator Block............................................................................................


14.1 Overview .......................................................................................................................
14.2 Basic Operation ............................................................................................................
14.3 Features .........................................................................................................................
14.4 Parameters .....................................................................................................................

353
353
354
354
355
xiii

B0193AX Rev Z

Contents

14.4.1 Parameter Definitions ...........................................................................................


14.5 Functions ......................................................................................................................
14.5.1 Arithmetic Instructions .........................................................................................
14.5.2 Boolean Instructions ..............................................................................................
14.5.3 Input/Output Reference Instructions ....................................................................
14.5.4 Cascade and Propagation Instructions ...................................................................
14.5.5 Memory and Stack Reference Instructions .............................................................
14.5.6 Program Control Instructions ...............................................................................
14.5.7 Clear/Set Instructions ............................................................................................
14.5.8 Timing Functions .................................................................................................
14.5.9 Logic Functions .....................................................................................................
14.5.10 Error Control Instructions ...................................................................................
14.6 Instructions ...................................................................................................................
14.6.1 Instruction Processing ...........................................................................................
14.6.1.1 Auto Mode ....................................................................................................
14.6.1.2 Manual Mode ................................................................................................
14.6.2 Instruction Syntax .................................................................................................
14.6.2.1 Rules .............................................................................................................
14.6.2.2 Constants ......................................................................................................
14.6.3 Instruction Operation ...........................................................................................
14.6.3.1 Stack Operation .............................................................................................
14.6.4 Instruction Definition Convention ........................................................................
14.6.5 Instruction Definitions ..........................................................................................
14.7 Error Conditions ...........................................................................................................
14.8 Programming Concepts .................................................................................................
14.8.1 Execution Sequence ...............................................................................................
14.8.2 Arithmetic Chaining .............................................................................................
14.8.2.1 Stack Push Operation ....................................................................................
14.8.2.2 Stack Pop Operation .....................................................................................
14.9 Application Example .....................................................................................................

356
362
363
364
365
366
366
367
368
368
369
370
370
370
370
370
371
371
372
372
373
375
376
424
425
426
427
427
427
431

15. CALCA Advanced Calculator Block .........................................................................


15.1 Overview .......................................................................................................................
15.2 Basic Operation ............................................................................................................
15.3 Features .........................................................................................................................
15.4 Parameters .....................................................................................................................
15.4.1 Parameter Definitions ...........................................................................................
15.5 Functions ......................................................................................................................
15.5.1 Arithmetic Instructions .........................................................................................
15.5.2 Boolean Instructions ..............................................................................................
15.5.3 Input/Output Reference Instructions ....................................................................
15.5.4 Cascade and Propagation Instructions ...................................................................
15.5.5 Memory and Stack Reference Instructions .............................................................
15.5.6 Program Control Instructions ...............................................................................
15.5.7 Clear/Set Instructions ............................................................................................
15.5.8 Timing Instructions ..............................................................................................
15.5.9 Logic Instructions ..................................................................................................
15.5.10 Error Control Instructions ...................................................................................

433
433
434
435
435
436
441
441
443
443
444
445
445
446
446
446
447

xiv

Contents

B0193AX Rev Z

15.6 Instructions ...................................................................................................................


15.6.1 Instruction Processing ...........................................................................................
15.6.1.1 Auto Mode ....................................................................................................
15.6.1.2 Manual Mode ................................................................................................
15.6.2 Instruction Syntax .................................................................................................
15.6.2.1 Rules .............................................................................................................
15.6.2.2 Constants ......................................................................................................
15.6.3 Instruction Operation ...........................................................................................
15.6.3.1 Stack Operation .............................................................................................
15.6.4 Instruction Definition Convention ........................................................................
15.6.5 Instruction Definitions ..........................................................................................
15.7 Error Conditions ...........................................................................................................
15.8 Programming Concepts .................................................................................................
15.8.1 Execution Sequence ...............................................................................................
15.8.2 Arithmetic Chaining .............................................................................................
15.8.2.1 Stack Push Operations ...................................................................................
15.8.2.2 Stack Pop Operations ....................................................................................
15.9 Application Example .....................................................................................................

447
447
447
447
448
448
449
449
450
452
453
503
504
505
506
506
506
508

16. CHARC Characterizer Block....................................................................................


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

511
511
511
511
512
513
526
528

17. CIN Contact Input Block.........................................................................................


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

531
531
531
532
532
533
544
545
547
547
547
548
548
548
548
549
549
550
xv

B0193AX Rev Z

Contents

17.9 Appendix A Valid Input Connections ........................................................................ 550


17.9.1 Fieldbus Modules Valid Input Connections .......................................................... 550
17.9.2 Cluster I/O Valid Input Connections .................................................................... 552
18. CINR Redundant Contact Input Block.................................................................... 555
18.1 Overview ....................................................................................................................... 555
18.2 Basic Operation ............................................................................................................
18.3 Features .........................................................................................................................
18.4 Parameters .....................................................................................................................
18.4.1 Parameter Definitions ...........................................................................................
18.5 Functions ......................................................................................................................
18.5.1 Detailed Diagram ..................................................................................................
18.5.2 Input from FBM ...................................................................................................
18.5.3 Input from Another Block .....................................................................................
18.6 Bad Input and Out-of-Service Conditions ....................................................................
18.6.1 Bad Input Condition .............................................................................................
18.6.2 Out-of-Service Condition ......................................................................................
18.7 Manual Mode ...............................................................................................................
18.8 Messages and Alarming .................................................................................................
18.8.1 State Change Messages ..........................................................................................
18.8.2 Alarming ...............................................................................................................
18.8.2.1 State Alarming Overview ...............................................................................
18.8.2.2 Bad Alarming Overview .................................................................................
18.9 Application Diagram .....................................................................................................

556
556
557
558
571
571
572
572
572
572
573
573
573
573
574
575
575
576

19. CMP Compounds ....................................................................................................


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

577
577
578
578
578
578
578
579
579
579
579
580
580
580
581
581
581
582

xvi

Contents

B0193AX Rev Z

20. COUT Contact Output Block..................................................................................


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

587
587
588
588
589
590
599
599
600
602
603
603
603
603
604
604
605
606
607

21. COUTR Redundant Contact Output Block.............................................................


21.1 Overview .......................................................................................................................
21.2 Basic Operation ............................................................................................................
21.3 Features .........................................................................................................................
21.4 Parameters .....................................................................................................................
21.4.1 Parameter Definitions ...........................................................................................
21.5 Functions ......................................................................................................................
21.5.1 Detailed Diagram ..................................................................................................
21.5.2 Output Processing .................................................................................................
21.5.2.1 Duplicate Output Channel Detection ...........................................................
21.5.2.2 Pulsed Output ...............................................................................................
21.5.3 Output Initialization .............................................................................................
21.5.4 Cascade Initialization ............................................................................................
21.5.5 Simulation Mode ..................................................................................................
21.6 Bad Input, Out-of-Service, and Error Conditions .........................................................
21.6.1 Bad Input Conditions ...........................................................................................
21.6.2 Out-of-Service Condition ......................................................................................
21.6.3 Error Condition and Last Good Value Functionality ............................................

611
611
612
613
614
615
625
625
626
626
627
627
627
628
628
628
628
628

21.7 Failsafe State .................................................................................................................


21.8 Block Modes .................................................................................................................
21.8.1 Auto Mode ............................................................................................................
21.8.2 Auto Hold Mode ...................................................................................................
21.8.3 Manual Mode .......................................................................................................
21.9 Alarming .......................................................................................................................

629
629
629
630
630
631
xvii

B0193AX Rev Z

Contents

21.9.1 Bad Alarming Overview ........................................................................................ 631


21.9.2 Inhibiting and Disabling Alarms ........................................................................... 632
21.10 Application Diagram ................................................................................................... 633
22. DEP Dependent Sequence Block..............................................................................
22.1 Overview .......................................................................................................................
22.1.1 I/O Diagram .........................................................................................................
22.2 Features .........................................................................................................................
22.3 Parameters .....................................................................................................................
22.3.1 Parameter Definitions ...........................................................................................
22.4 Detailed Operation .......................................................................................................

635
635
635
635
637
638
650

23. DGAP Differential Gap Block..................................................................................


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

655
655
656
657
659
676
676
678
678
679
680
680
680
681
681
681
682
682
682
682
682
683
683
684
684
684
684

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


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

687
687
688
688
689
689
689

xviii

Contents

B0193AX Rev Z

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


24.3.1.3 Standard DPIDA Options .............................................................................
24.3.1.4 Extended DPIDA Options ............................................................................
24.3.1.5 ECB52 Features .............................................................................................
24.4 Parameters .....................................................................................................................
24.4.1 Parameter Definitions ...........................................................................................
24.5 ECB52 Parameters ........................................................................................................
24.5.1 ECB52 Parameter Definitions ...............................................................................
24.6 Functions ......................................................................................................................
24.6.1 Detailed Functional Diagram ................................................................................
24.6.2 DPIDA Detailed Operation ..................................................................................
24.6.2.1 Control Modes ..............................................................................................
24.6.2.2 Manual State .................................................................................................
24.6.2.3 Auto State ......................................................................................................
24.6.2.4 Manual/Auto Overrides .................................................................................
24.6.2.5 Holding State ................................................................................................
24.6.2.6 PRIBLK and PRITIM Functionality .............................................................
24.6.2.7 Output Tracking State ..................................................................................
24.6.2.8 Bumpless Start-up and Transfers ...................................................................
24.6.2.9 Cascade Handling .........................................................................................
24.6.2.10 Output Limiting ..........................................................................................
24.6.2.11 FBM I/O Variable Scaling ...........................................................................
24.6.2.12 Measurement Filtering .................................................................................
24.6.2.13 Setpoint Processing ......................................................................................
24.6.2.14 Nonlinear Gain ...........................................................................................
24.6.2.15 Feedforward ................................................................................................
24.6.2.16 Error Detection ...........................................................................................
24.6.2.17 Alarms .........................................................................................................
24.6.2.18 Validation Checks .......................................................................................
24.6.2.19 Block Initialization ......................................................................................
24.6.2.20 Exception Processing ...................................................................................
24.6.3 ECB52 Detailed Operation ...................................................................................
24.6.3.1 Controller Cycle Time and Measurement Sampling ......................................
24.6.3.2 Measurement Processing ................................................................................
24.6.3.3 FBM Analog Output Scaling .........................................................................
24.6.3.4 Failsafe Action ...............................................................................................
24.6.3.5 FBM04 I/O Channels ...................................................................................
24.6.3.6 FBM17 I/O Channels and Operators Panel ..................................................
24.6.3.7 FBM22 I/O Channels and Auto/Manual Station ..........................................
24.7 Application Example .....................................................................................................
24.7.1 DPIDA Block Parameter Configuration ................................................................
24.7.2 ECB52 Block Parameter Configuration .................................................................

689
690
691
692
692
696
722
723
731
731
731
734
737
738
738
739
739
739
739
740
742
742
743
745
749
751
751
752
754
755
755
756
756
757
760
760
761
761
764
764
767
767

25. DSI Display Station Interface Block.........................................................................


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

769
769
769
769
770
775
xix

B0193AX Rev Z

26. DTIME Dead Time Compensator Block .................................................................


26.1 Overview .......................................................................................................................
26.1.1 I/O Diagram .........................................................................................................
26.2 Features .........................................................................................................................
26.3 Parameters .....................................................................................................................
26.3.1 Parameter Definitions ...........................................................................................

Contents

779
779
779
779
780
781

26.4 Detailed Operation ....................................................................................................... 787


26.4.1 Algorithm Description .......................................................................................... 788

xx

Figures
1-1.
1-2.
1-3.
1-4.
1-5.
1-6.
1-7.
1-8.
1-9.
1-10.
1-11.
2-1.
2-2.
2-3.
2-4.
2-5.
2-6.
2-7.
2-8.
2-9.
2-10.
2-11.
2-12.
2-13.
3-1.
3-2.
3-3.
3-4.
3-5.
3-6.
3-7.
3-8.
3-9.
3-10.
3-11.
3-12.
4-1.
4-2.
4-3.
5-1.
5-2.
5-3.
5-4.
5-5.

ACCUM Block Diagram .............................................................................................. 1


ACCUM Block Operational Diagram ......................................................................... 16
ACCUM Block Algorithm .......................................................................................... 16
ACCUM Pulse Rate per Block Period ......................................................................... 17
ACCUM Pulse Count per Block Period ...................................................................... 17
ACCUM Pulse Rate per Minute ................................................................................. 17
ACCUM Pulse Count per Minute .............................................................................. 18
ACCUM CARRY Function ........................................................................................ 21
ACCUM SET, CLEAR, and HOLD Functionality .................................................... 22
ACCUM Block Alarming ........................................................................................... 23
Typical ACCUM Block Application ........................................................................... 24
AIN Block Diagram .................................................................................................... 25
AIN Block Operational Diagram ................................................................................ 44
General Analog Input Example ................................................................................... 45
Thermocouple Input Example .................................................................................... 48
RTD Input Example ................................................................................................... 50
Pulse Rate Input Example ........................................................................................... 52
Intelligent Field Device Input Example ....................................................................... 53
Typical Configuration for Intelligent Transmitters with Window ECB ...................... 55
Clamping .................................................................................................................... 58
First-Order Lag Filtering ............................................................................................. 59
Butterworth Filtering .................................................................................................. 60
Last Good Value ......................................................................................................... 63
Typical AIN Block Application ................................................................................... 66
AINR Block Diagram ................................................................................................. 75
AINR Block Operational Diagram .............................................................................. 96
General Analog Input Example ................................................................................... 97
Thermocouple Input Example .................................................................................. 100
RTD Input Example ................................................................................................. 103
Pulse Rate Input Example ......................................................................................... 104
Intelligent Field Device Input Example ..................................................................... 106
Clamping .................................................................................................................. 109
First-Order Lag Filtering ........................................................................................... 111
Butterworth Filtering ................................................................................................ 111
Last Good Value ....................................................................................................... 114
Typical AINR Block Application .............................................................................. 116
ALMPRI Block I/O Diagram .................................................................................... 125
ALMPRI, Detailed Block Diagram ........................................................................... 130
Example ALMPRI Block Connections ...................................................................... 131
AOUT Block Diagram .............................................................................................. 133
AOUT Block Operational Diagram .......................................................................... 152
Reset Balance Action ................................................................................................. 157
Typical Configuration for Intelligent Transmitters with Window ECB .................... 162
Typical AOUT Block Application ............................................................................. 169
xxi

B0193AX Rev Z

Figures

6-1.
6-2.
6-3.
6-4.
7-1.
7-2.
7-3.
7-4.
7-5.
8-1.
8-2.
9-1.
9-2.
10-1.
11-1.
12-1.
12-2.
13-1.
13-2.
14-1.
14-2.
14-3.
14-4.
14-5.
14-6.
14-7.
14-8.
14-9.
14-10.
14-11.
15-1.
15-2.
15-3.
15-4.
15-5.
15-6.
15-7.
15-8.
15-9.
15-10.
15-11.
16-1.
16-2.
17-1.
17-2.
17-3.
18-1.
18-2.

172
191
196
207
209
234
235
235
235
237
252
259
276
285
295
299
315
326
342
353
369
371
373
374
387
388
410
428
430
431
433
448
450
451
465
466
489
506
507
508
508
511
527
531
544
550
555
571

xxii

AOUTR Block Diagram ...........................................................................................


AOUTR Block Operational Diagram .......................................................................
Reset Balance Action .................................................................................................
Typical AOUTR Block Application ..........................................................................
BIAS Block I/O Diagram ..........................................................................................
Configuration for no Downstream Control Blocks ...................................................
Configuration for AOUT Downstream Block ...........................................................
Configuration for DGAP or PTC Secondary block ...................................................
Cascade Configuration ..............................................................................................
BIN Block Diagram ..................................................................................................
BIN Block Operational Diagram ..............................................................................
BINR Block Diagram ...............................................................................................
BINR Block Operational Diagram ............................................................................
BLNALM Block I/O Diagram ..................................................................................
BOOL Block Functional Diagram ............................................................................
BOUT Block Diagram ..............................................................................................
BOUT Block Operational Diagram ..........................................................................
BOUTR Block Diagram ...........................................................................................
BOUTR Block Operational Diagram ........................................................................
CALC Block I/O Diagram ........................................................................................
OSP, DON, DOFF Timing Diagram .......................................................................
Manual Mode ...........................................................................................................
Examples of Stack Operation for Diadic Instructions ................................................
Example of Stack Operation for Polyadic Instruction ................................................
Timing Diagram for DOFF Example ........................................................................
Timing Diagram for DON Example .........................................................................
Timing Diagram for OSP Example ...........................................................................
Arithmetic Chaining Example, Operation Sequence .................................................
Arithmetic Chaining, Stack Operation ......................................................................
Application Example .................................................................................................
CALCA Block I/O Diagram .....................................................................................
Manual Mode ...........................................................................................................
Examples of Stack Operation for Diadic Instructions ................................................
Example of Stack Operation for Polyadic Instruction ................................................
Timing Diagram for DOFF Example ........................................................................
Timing Diagram for DON Example .........................................................................
Timing Diagram for OSP Example ...........................................................................
Program Branching Example .....................................................................................
Arithmetic Chaining Example, Operation Sequence .................................................
Arithmetic Chaining Example, Stack Operation .......................................................
Application Example .................................................................................................
CHARC Block I/O Diagram ....................................................................................
Functional Diagram, Characterizer Block ..................................................................
CIN Block Diagram ..................................................................................................
CIN Block Operational Diagram ..............................................................................
Typical CIN Block Application .................................................................................
CINR Block Diagram ...............................................................................................
CINR Block Operational Diagram ...........................................................................

Figures

18-3.
19-1.
19-2.
19-3.
20-1.
20-2.
21-1.
21-2.
22-1.
23-1.
23-2.
23-3.
23-4.
23-5.
23-6.
23-7.
23-8.
23-9.
24-1.
24-2.
24-3.
24-4.
24-5.
24-6.
24-7.
24-8.
24-9.
24-10.
24-11.
24-12.
25-1.
25-2.
25-3.
26-1.
26-2.

B0193AX Rev Z

Typical CINR Block Application ..............................................................................


Compound/Block Relationship .................................................................................
Compound Inputs/Outputs ......................................................................................
Compound Detail Display ........................................................................................
COUT Block Diagram .............................................................................................
COUT Block Operational Diagram ..........................................................................
COUTR Block Diagram ...........................................................................................
COUTR Block Operational Diagram .......................................................................
DEP Block I/O Diagram ..........................................................................................
DGAP Block I/O Diagram .......................................................................................
DGAP Tristate and Bistate Typical Operation ..........................................................
DGAP, Detailed Block Diagram ...............................................................................
DGAP Bistate Controller Mode ................................................................................
DGAP Tristate Controller Mode ..............................................................................
Absolute Alarming ....................................................................................................
Deviation Alarming ...................................................................................................
Typical Cascade Configuration .................................................................................
DGAP with Position Feedback .................................................................................
DPIDA Controller Functional Diagram ....................................................................
PIDA Controller Detailed Functional Diagram ........................................................
Cascade Configuration (Typical) ...............................................................................
Output Limiting .......................................................................................................
Butterworth Measurement Filter Response ................................................................
Supervisory Setpoint Control Cascade Configuration (Typical) ................................
Setpoint Lead/Lag Compensation .............................................................................
Nonlinear Gain Response ..........................................................................................
Measurement Sampling .............................................................................................
FBM17 (DPIDA) Local Operators Panel Configuration ..........................................
Application Diagram .................................................................................................
Surge Line and Control Line Curves .........................................................................
DSI Block I/O Diagram ............................................................................................
System with Display Station Capability .....................................................................
DP10, CP30, CP40, or CP40B .................................................................................
DTIME Block I/O Diagram .....................................................................................
DTIME Signal Flow Diagram ...................................................................................

576
577
578
582
587
599
612
625
635
655
655
677
678
679
682
683
684
685
687
732
740
742
744
746
748
750
757
762
765
766
769
775
776
779
788

xxiii

B0193AX Rev Z

xxiv

Figures

Tables
1-1.
1-2.
1-3.
2-1.
2-2.
3-1.
3-2.
4-1.
5-1.
5-2.
5-3.
6-1.
6-2.
6-3.
7-1.
8-1.
8-2.
8-3.
8-4.
8-5.
9-1.
9-2.
9-3.
9-4.
9-5.
10-1.
10-2.
11-1.
12-1.
12-2.
12-3.
12-4.
13-1.
13-2.
13-3.
13-4.
13-5.
14-1.
14-2.
14-3.
14-4.
14-5.
14-6.
14-7.

ACCUM Block Parameters ........................................................................................... 3


Units of OUT and MEAS Are the Same ..................................................................... 20
Units of OUT and MEAS Are not the Same ............................................................... 20
AIN Block Parameters ................................................................................................. 27
Alarm Nomenclature ................................................................................................... 65
AINR Block Parameters .............................................................................................. 77
Alarm Nomenclature ................................................................................................. 115
ALMPRI Block Parameters ....................................................................................... 125
AOUT Block Parameters .......................................................................................... 135
AOUT Block Destinations ........................................................................................ 155
AOUT Block Alarm Nomenclature .......................................................................... 168
AOUTR Block Parameters ........................................................................................ 174
AOUTR Block Destinations ..................................................................................... 194
AOUT Block Alarm Nomenclature .......................................................................... 206
BIAS Block Parameters ............................................................................................. 211
BIN Block Parameters ............................................................................................... 238
ALMOPT Parameter Format .................................................................................... 240
ALMSTA Parameter Format ..................................................................................... 241
INHSTA Parameter Format ...................................................................................... 245
BIN Block Alarm Parameters .................................................................................... 256
BINR Block Parameters ............................................................................................ 260
ALMOPT Parameter Format .................................................................................... 262
ALMSTA Parameter Format ..................................................................................... 263
INHSTA Parameter Format ...................................................................................... 269
AI Block Alarm Parameters ....................................................................................... 281
BLNALM Block Parameters ...................................................................................... 286
INHALM Values ...................................................................................................... 293
BOOL Block Parameters ........................................................................................... 296
BOUT Block Parameters .......................................................................................... 302
ALMOPT Parameter Format .................................................................................... 303
ALMSTA Parameter Format ..................................................................................... 304
INHSTA Parameter Format ...................................................................................... 309
BOUTR Block Parameters ........................................................................................ 328
ALMOPT Parameter Format .................................................................................... 330
ALMSTA Parameter Format ..................................................................................... 330
INHSTA Parameter Format ...................................................................................... 336
Alarm Nomenclature ................................................................................................. 351
Block Comparison .................................................................................................... 353
CALC Block Parameters ........................................................................................... 355
Arithmetic Instructions ............................................................................................. 363
Boolean Instructions ................................................................................................. 364
Input/Output Reference Instructions ........................................................................ 365
Cascade and Propagation Instructions ....................................................................... 366
Memory and Stack Reference Instructions ................................................................ 367
xxv

B0193AX Rev Z

14-8.
14-9.
14-10.
14-11.
14-12.
14-13.
14-14.
14-15.
14-16.
15-1.
15-2.
15-3.
15-4.
15-5.
15-6.
15-7.
15-8.
15-9.
15-10.
15-11.
15-12.
15-13.
15-14.
15-15.
15-16.
16-1.
17-1.
17-2.
17-3.
18-1.
18-2.
19-1.
20-1.
20-2.
20-3.
21-1.
21-2.
22-1.
23-1.
24-1.
24-2.
24-3.
24-4.
24-5.
24-6.
24-7.
24-8.
24-9.

xxvi

Program Control Instructions ...................................................................................


Clear/Set Instructions ................................................................................................
Timing Instructions ..................................................................................................
Logic Instructions .....................................................................................................
Error Control Instructions ........................................................................................
Truth Table for FF Instruction .................................................................................
Truth Table for MRS Instruction .............................................................................
PERROR Syntax Error Codes ...................................................................................
PERROR Run-time Error Codes ..............................................................................
Block Comparison ....................................................................................................
CALCA Block Parameters .........................................................................................
Arithmetic Instructions .............................................................................................
Boolean Instructions .................................................................................................
Input/Output Reference Instructions ........................................................................
Cascade and Propagation Instructions .......................................................................
Memory and Stack Reference Instructions ................................................................
Program Control Instructions ...................................................................................
Clear/Set Instructions ................................................................................................
Timing Instructions ..................................................................................................
Logic Instructions .....................................................................................................
Error Control Instructions ........................................................................................
Truth Table for FF Instruction .................................................................................
Truth Table for MRS Instruction .............................................................................
PERROR Syntax Error Codes ...................................................................................
PERROR Run-time Error Codes ..............................................................................
CHARC Block Parameters ........................................................................................
CIN Block Parameters ..............................................................................................
Relationship Between IOMOPT, IVO, MA, CIN, and IN .......................................
Alarm Nomenclature .................................................................................................
CINR Block Parameters ............................................................................................
Alarm Nomenclature .................................................................................................
Compound Parameters ..............................................................................................
COUT Block Parameters ..........................................................................................
Input/Output Points, FBC10 and FBC10 Redundant ..............................................
Alarm Nomenclature .................................................................................................
COUTR Block Parameters ........................................................................................
Alarm Nomenclature .................................................................................................
DEP Block Parameters ..............................................................................................
DGAP Block Parameters ..........................................................................................
DPIDA Block Parameters .........................................................................................
ECB52 Parameters ....................................................................................................
FBM Variables ..........................................................................................................
Control Mode Filtering and Tuning Features ...........................................................
FBM I/O Variable Scaling ........................................................................................
Ramping Action for SPROPT Options .....................................................................
Status Bit Definitions for Parameter Value Record ....................................................
Parameter Settings for Block Initialization .................................................................
Status of Critical Parameters .....................................................................................

Tables

367
368
369
369
370
390
399
425
425
434
435
442
443
444
444
445
445
446
446
447
447
468
477
504
504
512
532
546
549
557
574
582
589
601
605
614
631
637
657
692
722
733
737
743
749
752
755
756

Tables

24-10.
24-11.
24-12.
24-13.
24-14.
24-15.
25-1.
26-1.

B0193AX Rev Z

FBM Analog Input Signal Scaling .............................................................................


Input Scaling Entry Examples ...................................................................................
FBM Analog Output Signal Scaling ..........................................................................
FBM04 Channel Assignments ...................................................................................
FBM17 Channel Assignments ...................................................................................
FBM22 Channel Assignments ...................................................................................
DSI Block Parameters ...............................................................................................
DTIME Block Parameters .........................................................................................

758
759
760
761
763
764
769
780

xxvii

B0193AX Rev Z

xxviii

Tables

Preface
This document, Integrated Control Block Descriptions, provides operational and reference information for using I/A Series control blocks, equipment control blocks (ECBs) and window equipment 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 either the Integrated Control Configurator
(ICC), I/A Series Configuration Component (IACC) or the InFusion Engineering Environment
(IEE). 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 system. 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
(B0400EC).

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 Z

Preface

Revision Information
For this release of the document (B0193AX-Z), the following changes were made to this volume:
Global
Removed AI Foundation fieldbus Analog Input, AO Foundation fieldbus Analog Output, DI Foundation fieldbus Discrete Input and DO
Foundation fieldbus Discrete Output. These chapters have been moved to
Integrated Control Block Descriptions for FOUNDATION fieldbus Specific Control
Blocks (B0400EC).
Chapter 2 AIN Analog Input Block
Chapter 3 AINR Redundant Analog Input Block
Chapter 17 CIN Contact Input Block
Chapter 18 CINR Redundant Contact Input Block
Chapter 24 DPIDA Controller
Updated NASOPT from a Boolean to a short integer.
Chapter 5 AOUT Analog Output Block
Corrected typographical error in the BLKSTA definition.
Chapter 6 AOUTR Redundant Analog Output Block
Corrected typographical error in the BLKSTA definition.
Chapter 7 BIAS Bias Block
Added the BAG, BAO, BAP, BAT and OUTNM parameters.
Updated NASOPT and PROPT from Booleans to short integers.
Corrected typographical error in the BLKSTA definition.
Chapter 8 BIN Binary Input Block
Corrected typographical error in the BLKSTA definition.
Updated NASOPT from a Boolean to a short integer.
Chapter 9 BINR Redundant Binary Input Block
Corrected typographical error in the BLKSTA definition on page 265.

Updated NASOPT from a Boolean to a short integer.


Chapter 12 BOUT Binary Output Block
Added the UPDPER parameter.
Indicated that bits 3, 4 and 5 of FSOPTN only apply to FDSI FBMs.
Changed linkability of SETFS from output to input.
Chapter 13 BOUTR Redundant Binary Output Block
Added the UPDPER parameter.
Corrected typographical error in the BLKSTA definition on page 331.
Changed linkability of SETFS from output to input.

xxx

Preface

B0193AX Rev Z

Chapter 16 CHARC Characterizer Block


Added the following to description of PRIBLK: Use PRIBLK in a cascade situation
when the source of the block's input connection needs to be initialized.
Chapter 23 DGAP Differential Gap Block
Updated NASOPT from a Boolean to a short integer.
Corrected SPT to be connectable and settable.
Chapter 24 DPIDA Controller
Added the following to description of PRIBLK: Use PRIBLK in a cascade situation
when the source of the block's input connection needs to be initialized.
Updated NASOPT from a Boolean to a short integer.
Corrected SPT to be connectable and settable.

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 Users Guide (B0193RB)
Enhanced PLC Block Descriptions (B0193YQ)
Integrated Control Configurator (B0193AV)
I/A Series Configuration Component (IACC) Users Guide (B0400BP)
Integrated Control Block Descriptions for FOUNDATION fieldbus Specific Control Blocks
(B0400EC)
FOUNDATION fieldbus H1 Interface Module (FBM220/221) User Guide (B0400FD)
Field Device System Integrators (FBM230/231/232/233) Users Guide (B0700AH)
I/A Series PROFIBUS-DPTM Communication Interface Module (FBM223) Users
Guide (B0400FE)
I/A Series HART Communication Interface Modules Users Guide (B0400FF)
I/A Series Modbus Communication Interface Module (FBM224) Users Guide
(B0400FK)
Intrinsically Safe I/O Subsystem Users Guide (B0700DP)
InFusion Deployment Guide, Control Edition (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 IPS Global Client Support
Center at http://support.ips.invensys.com.

xxxi

B0193AX Rev Z

xxxii

Preface

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 previous 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
Time

Meter
Factor

Pulse
Count
Convert
to Rate

Meas
Input

Rate

Integrator

Rate

High Scale
Detector

Pulse
Rate

Alarming

Accumulated
Value

Carry

Alarm
Indication

Figure 1-1. ACCUM Block Diagram

1.2 Basic Operation


The ACCUM block integrates the measurement input over the blocks 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.

B0193AX Rev Z

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 algorithm 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 totalization (rate or count) used.
Target (High-High) alarming (HHAOPT), which allows you to configure a HighHigh 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 blocks measurement
error state to other blocks.
Control Error Option (CEOPT), which allows you to enable or disable the blocks
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 during initialization.

1. ACCUM Accumulator Block

B0193AX Rev Z

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

0 to 13

PHASE

block phase number

integer

no-con/no-set

---

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 to 1

SET

accumulator set

boolean

con/set

0 to 1

PRESET

accumulator preset

real

con/set

0.0

RO1

CLEAR

accumulator clear

boolean

con/set

0 to 1

HOLD

hold mode

boolean

con/set

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

0 to 1

MA

manual/auto

boolean

con/set

0 to 1

INITMA

initialize MA

short

no-con/no-set

[0|1|2]

CEOPT

control error option

short

no-con/no-set

0 to 2

PCNTOP

pulse count option

short

no-con/no-set

0 to 3

INHOPT

inhibit option

short

no-con/no-set

0 to 3

INHIB

alarm inhibit

boolean

con/set

0 to 1

INHALM

inhibit alarm

pack_b

con/set

0 to FFFF

OUTNM

output alarm name

string

no-con/no-set

blank

1 to 12 chars

HAOPT

high alarm option

boolean

no-con/no-set

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

[1 to 5]

ABSGRP

absolute alarm group

short

no-con/set

[1 to 8]

HHAOPT

high-high option

short

no-con/no-set

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

[1 to 5]

HHAGRP

high-high group

short

no-con/set

[1 to 8]

B0193AX Rev Z

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 to 32767 s

pack_l

con/no-set

bit map

Non-Configurable Parameters
OUTPUTS
ALMSTA

alarm status

BLKSTA

block status

pack_l

con/no-set

bit map

CARRY

accumulator carry

boolean

con/no-set

0 to 1

CRIT

criticality

integer

con/no-set

[0 to 5]

HAIND

high absolute indicator

boolean

con/no-set

0 to 1

HHAIND

high-high absolute indicator boolean

con/no-set

0 to 1

INHSTA

inhibit status

con/no-set

0 to FFFFFFFF

pack_l

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 to 10]

UNACK

alarm notification

boolean

con/noset

0 to 1

DATA STORES
ACHNGE

alternate change

integer

con/no-set

-32768 to 32767

ALMOPT

alarm options

pack_l

no-con/no-set

0 to FFFFFFFF

DEFINE

no config errors

boolean

no-con/no-set

0 to 1

ERCODE

config error

string

no-con/no-set

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

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

1. ACCUM Accumulator Block

B0193AX Rev Z

Configured Alarm Option


When True

0 (Least
Significant)
1
7
19
25

B26

B27

B28

B29

B30

B31

B32

7
B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Bit
Number*
(0 to 31)

8
B24

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

Boolean Connection
(B32 to B1)

Alarm Group 8 in Use

ALMOPT.B32

Alarm Group 7 in Use


Alarm Group 1 in Use
Pre-Target (High Absolute)
Alarm Configured
Target (High-High Absolute) Alarm Configured

ALMOPT.B31
ALMOPT.B25
ALMOPT.B13
ALMOPT.B7

* Bit 0 is the least significant bit (starting from the right).

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

Bit Number
(0 to 31)*

B28

B29

B30

B31

B32

B27

B26

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

PTARG B13

B12

B11

B10

B9

B8

B7
TARG

B6

B5

B4

B3
INH

UNAK B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B25

Alarm Status is a 32-bit output, bit-mapped to indicate the blocks alarm


states. For the ACCUM block, only the following bits are used:

B24

ALMSTA

CRIT

Name

Description When True

0 to 4 (Least
Significant)

PTYP_MSK

5 to 7

CRIT_MSK

19
25

PTARG
TARG

Priority Type: See parameter PRTYPE for values


used in the ACCUM
block
Criticality; 5 = lowest priority, 1= highest
Pre-Target (High) Alarm
Target (High-High) Alarm

PRTYPE

Boolean
Connection
(B32 to B1)
ALMSTA.B32ALMSTA.B28

ALMSTA.B27ALMSTA.B25
ALMSTA.B13
ALMSTA.B7
5

B0193AX Rev Z

1. ACCUM Accumulator Block

Bit Number
(0 to 31)*
29
30

Name

Boolean
Connection
(B32 to B1)

Description When True

INH
UNAK

Alarm inhibit
Unacknowledged

ALMSTA.B3
ALMSTA.B2

* Bit 0 is the least significant bit (starting from the right).

Bit Number*
(0 to 31)
5
7
11
14
15
20

Name
ACC
HLD
MA
UDEF
ON
WLCK

B31

B32

Boolean
Connection
(B32 to B1)

Description When True


Accumulating
Holding
Manual = 0, Auto = 1
Block Undefined
Block ON
Access Locked

B30

5
B27

ACC

B24

HLD

B23

B22

B21

MA

B20

B19

UDEF B18

B17

B16

ON

B15

B14

B13

B11

WLCK B12

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B29

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

B28

BLKSTA

B26

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

B25

AMRTIN

BLKSTA.B27
BLKSTA.B25
BLKSTA.B21
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12

* Bit 0 is the least significant bit (starting from the right).

CARRY

Carry is a boolean output that is set true for one scan period to indicate
when the accumulator has rolled over (that is, has exceeded HSCO1).
When the accumulator rolls over, the difference between the blocks running 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.

1. ACCUM Accumulator Block

CEOPT

B0193AX Rev Z

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.
1 = The block goes to the Hold state if 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 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 automatically 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 blocks 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 configuration errors. The default is 1 (no configuration errors). When the block initializes, 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 blocks compound, change deltas have no
effect.

DELTO1

Change Delta for Output Range 1 is a real value that defines the minimum 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 blocks compound, change deltas have no
effect.
7

B0193AX Rev Z

1. ACCUM Accumulator Block

DESCRP

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


the blocks function (for example., PLT 3 FURNACE 2 HEATER CONTROL).

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 blocks
DEFINE parameter to be set false, but not the warning situations. Validation of configuration errors does not proceed past the first error encountered 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 following list specifies the possible values of ERCODE, and the significance of
each value in this block:
ERCODE
W43
W44
W46
W48
W53

Value
Invalid Period/Phase Combination
HSCO1 less than LSCO1, HSCI1 less than LSCI1
Invalid input connection
Configured value of a block option is illegal
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 absolute 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.

1. ACCUM Accumulator Block

B0193AX Rev Z

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

0
B16

High Scale for Output Range 1 is a real value that defines the upper range
value for the blocks output. EO defines the measurement unit text associated with the value.

B15

HSCO1

B14

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

B13

HSCI1

B12

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.

B11

HOLD

B10

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.

B9

HHATXT

B8

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

B7

HHAPRI

B6

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

B5

HHAOPT

B4

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

B3

HHALIM

B2

High-High Alarm Indicator is a boolean output set true when the blockdependent 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.

B1

HHAIND

B0193AX Rev Z

1. ACCUM Accumulator Block

Bit Number*
(0 to 15)

Boolean Connection
(B16 to B1)

Inhibit When True

Inhibit Pre-Target (High


Absolute) Alarm
Inhibit Target (High-High
Absolute) Alarm

INHALM.B13
INHALM.B7

* Bit 0 is the least significant bit (starting from the right).

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

10

B26

B27

B28

B29

B30

B31

B32

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

PTARG B13

B12

B11

B10

B9

B8

B7

B6

HHA

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B25

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:

B24

INHSTA

1. ACCUM Accumulator Block

B0193AX Rev Z

Bit
Number*
(0 to 31)

Name

Description When True

19

PTARG

25

TARG

Pre-Target (High Absolute)


Alarm Inhibited
Target (High-High Absolute) Alarm Inhibited

boolean
Connection
(B32 to B1)
INHSTA.B13
INHSTA.B7

* Bit 0 is the least significant bit (starting from the right).

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 initializes following a reboot of the CP station, or
the accumulation saved in the block re-initializes after a configuration 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 configurator. (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-character 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 displays. When LOCKRQ is set true in this fashion a workstation identifier
11

B0193AX Rev Z

1. ACCUM Accumulator Block

accompanying the SETVAL command is entered into the LOCKID


parameter of the block. Thereafter, set requests to any of the blocks
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.

12

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 blocks output. EO1 defines the measurement units text associated 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 specific algorithm. In Manual, 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 blocks input, or the


controlled variable. The PCNTOP allows you to select the block operation 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.

1. ACCUM Accumulator Block

B0193AX Rev Z

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

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 blocks 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
0
1
2
3
4
5
6

Length
0.1 sec
0.5 sec*
1.0 sec
2.0 sec
10 sec
30 sec
1 min

Period
7
8
9
10
11
12
13

Length
10 min
60 min
0.2 sec
5.0 sec**
0.6 sec***
6.0 sec****
0.05 sec

13

B0193AX Rev Z

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 Control Processor is 0.5 sec. Refer to the appropriate Integrated Control Software 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 output parameter.
PRSCON

14

Present Control state is a short integer data store that contains the substates 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 Accumulating state (3),
The MEAS input is in error, and
CEOPT is set to 1 or 2.

1. ACCUM Accumulator Block

B0193AX Rev Z

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 members 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 automatically 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 Z

1. ACCUM Accumulator Block

1.5.1 Detailed Diagram


HSCI
PERTIM

MA

PCNTOP
Convert
to Rate

Count
Meas
Input

S
p
a
n

MTRFAC
PERTIM

Integrator

HSCO
MA
S
p
a
n

OUT

M
A

Rate
LSCO

LSCI
HOLD
SET
CLEAR
SET
CLEAR

HOLD

High Scale
Target Detector

AND

AND

CEOPT = 1 or 2
MEAS Error Bit

CARRY

SET
CLEAR
AND

OR

HOLD

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 measurement for the present block period time is calculated and added to the running result from the previous 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 Z

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
Pulse Rate per
Block Period

MEAS is a pulse rate variable in terms of the block period time (pulses per
period) (see Figure 1-4). The equation used is as follows:
OUT = OUT + (MEAS * MTRFAC)
MTRFAC
PCNTOP=0
Rate
Integrator
MEAS

MA
OUT

Figure 1-4. ACCUM Pulse Rate per Block Period

PCNTOP = 1
Pulse Count per
Block Period

MEAS is a pulse count variable in terms of the block period time (counts
per period) (see Figure 1-5). The equation used is as follows:
OUT = OUT + ((MEAS - previous MEAS) * MTRFAC)
where: previous MEAS = MEAS from previous block cycle
MTRFAC

MA

PCNTOP=1
Count
MEAS

Convert
to Rate

OUT

Integrator

Figure 1-5. ACCUM Pulse Count per Block Period

PCNTOP = 2
Pulse Rate Per
Minute

MEAS is a pulse rate variable in terms independent of the block period


time, namely pulses per minute (see Figure 1-6). The equation used is as
follows:
OUT = OUT + (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=2
Rate
Integrator
MEAS

MA
OUT

Figure 1-6. ACCUM Pulse Rate per Minute

PCNTOP = 3
Pulse Count Per
Minute

MEAS is a pulse count variable in terms independent of the block period


time (see Figure 1-7). The equation used is as follows:
17

B0193AX Rev Z

1. ACCUM Accumulator Block

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
Count
MEAS

Convert
to Rate

Integrator

MA
OUT

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 Z

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 blocks 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 Z

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
units/second
units/minute
units/hour
units/day

MTRFAC Calculation

Results

PERIOD * 1/1 (sec/sec)


PERIOD * 1/60 (sec/minute)
PERIOD * 1/3600 (sec/hour)
PERIOD * 1/86400 (sec/day)

PERIOD
PERIOD * 0.016667
PERIOD * 0.0002777778
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
units/second
units/minute
units/hour:
units/day

MTRFAC Calculation

Results

PERIOD * 1/1 (sec/sec) * eu_conv


PERIOD * 1/60 (sec/minute) * eu_conv
PERIOD * 1/3600 (sec/hour) * eu_conv
PERIOD * 1/86400 (sec/day) * eu_conv

PERIOD * eu_conv
PERIOD * 0.016666667 * eu_conv
PERIOD * 0.000277778 * 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 Z

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 accumulator block integrations.
CARRY Produced
Value Added to
Accumulator

HSCO1
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 accumulator total and the measurement in use by the block to zero. If the SET parameter is configured, 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 Z

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/Manual (MA) transitions: the control error parameter (CEOPT and the propagate error parameter
(PROPT). Under most circumstances you can use CEOPT (CEOPT on page 7) which determines 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 previous 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
CLEAR
SET
CLEAR

AND

AND

CEOPT = 1 or 2
MEAS Error Bit

SET
CLEAR
HOLD
AND

OR

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 accumulation 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 holding 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 Z

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 preset 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 alarming feature. Target alarming functions in much the same as pre-target alarming. Once the HighHigh 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 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.

23

B0193AX Rev Z

1. ACCUM Accumulator Block

1.5.7 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
AIN

FT

Water
TanK

ACCUM

CALC

Typical Configuration Values:


HSCI1 = 100%
LSCI1 = 0%
MTRFAC = 1
PROPT = 1
CEOPT = 1
PCNTOP = 0
HAOPT = 1
HABLIM = 90%
HHAOPT = 1
HHALIM = 100%

Figure 1-11. Typical ACCUM Block Application

24

GDEV

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 FBMs 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

Signal
Condition
ing Index
Fieldbus
Module
Identifier
Point
Number
External
ReferenceOption
External
Reference
Input
Extender
Block

Linear
Square
Root

BAD and OOR


Option

output
units

o
RTD
o
Thermocouple
o

Special
T.C.

Bad &
Out-ofRange
Processing

output
units
C

Scaling/
Unit Conversion

Clamp

Bad
Indicator
High/
Low OutofRange
Indicators
Point
(Engineering Units
Value)

Filter

C
Alarming

counts

Alarm
Indicators

Characterizer
(None)

Gain
Offset

Alarm
Options

Alarm
Limits

Figure 2-1. AIN Block Diagram

25

B0193AX Rev Z

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 channels 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 junction 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 Z

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

0 to 13

PHASE

block execute phase

integer

no-con/no-set

---

LOOPID

loop identifier

string

no-con/set

blank

1 to 32 chars

IOMOPT

FBM input option

short

no-con/no-set

0 to 2

IOM_ID

FBM identifier

string

no-con/no-set

blank

---

PNT_NO

FBM point number

string

no-con/no-set

1 to 32

SCI

signal condition index

short

no-con/no-set

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

---

MA

manual/auto

boolean

con/set

0 to 1

INITMA

initialize MA

short

no-con/no-set

0 to 2

BADOPT

BAD/Out-of-range option

short

no-con/no-set

0 to 7

LASTGV

last good value

boolean

no-con/no-set

0 to 1

INHOPT

inhibit option

short

no-con/no-set

0 to 3

INHIB

alarm inhibit

boolean

con/set

0 to 1

INHALM

inhibit alarm

pack_b

con/set

0 to FFFF

MANALM

manual alarm option

short

no-con/no-set

0 to 1

MTRF

meter factor

real

no-con/set

1.0

flow rate/Hz

FLOP

filter option

short

no-con/no-set

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 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 to 2

BAT

bad alarm text

string

no-con/no-set

blank

1 to 32 chars

BAP

bad alarm priority

integer

con/set

1 to 5

BAG

bad alarm group

short

no-con/set

1 to 8

ORAO

out of range alarm option

boolean

no-con/no-set

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

1 to 5

ORAG

out of range group

short

no-con/set

1 to 8

27

B0193AX Rev Z

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

1 to 5

HLGP

high alarm group

short

no-con/set

1 to 8

HHAOPT

high-high alarm option

short

no-con/no-set

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

1 to 5

HHAGRP

high-high alarm group

short

no-con/set

1 to 8

PROPT

propagate error option

boolean

no-con/no-set

0 to 1

MEAS

optional input

real

con/set

0.0

---

AMRTIN

alarm regeneration timer

integer

no-con/no-set

0 to 32767 s

NASTDB

alarm deadband timer

long integer no-con/no-set

0-2147483647 ms

NASOPT

nuisance alarm suppression option

short

no-con/no-set

0 to 2

Non-Configurable Parameters
OUTPUTS
BAD

bad I/O status

boolean

con/no-set

0 to 1

CRIT

alarm criticality

integer

con/no-set

0 to 5

HAI

high alarm indicator

boolean

con/no-set

0 to 1

HHAIND

high-high alarm indicator

boolean

con/no-set

0 to 1

HOR

high out-of-range

boolean

con/no-set

0 to 1

LAI

low alarm indicator

boolean

con/no-set

0 to 1

LLAIND

low-low alarm indicator

boolean

con/no-set

0 to 1

LOR

low out-of-range

boolean

con/no-set

0 to 1

PNT

point output

real

con/no-set

0.0

RO1

PRTYPE

priority type

integer

con/no-set

0 to 25

QALSTA

quality status

pack_l

con/no-set

0-FFFFFFFF

RAWC

raw counts

real

con/no-set

0.0

0 to 65535

UNACK

unacknowledge alarm

boolean

con/no-set

0 to 1

ZERROP

out of range error

boolean

con/no-set

0 to 1

DATA STORES
ACHNGE

alternate change

integer

con/no-set

-32768 to 32767

ALMSTA

alarm status

pack_l

con/no-set

bit map

ALMOPT

alarm options

pack_l

no-con/no-set

0-FFFFFFFF

BLKSTA

block status

pack_l

con/no-set

bit map

DEFINE

no config errors

boolean

no-con/no-set

0 to 1

ERCODE

configuration error

string

no-con/no-set

1 to 43 chars

28

2. AIN Analog Input Block

B0193AX Rev Z

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

bit map

LOCKID

lock identifier

string

no-con/no-set

blank

8 to 13 chars

LOCKRQ

lock request

boolean

no-con/set

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

Bit Number1
(0 to 31)
0 (Least
Significant)
1
7
16
17
22
24
25
28

Configured Alarm Option


When True

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

8
B24

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Boolean Connection
(B32 to B1)

Alarm Group 8 in Use

ALMOPT.B32

Alarm Group 7 in Use


Alarm Group 1 in Use
Low Absolute Alarm
Configured
High Absolute Alarm
Configured
Bad I/O Alarm Configured
Low-Low Absolute Alarm
Configured
High-High Absolute Alarm
Configured
Out-of-Range Alarm
Configured

ALMOPT.B31
ALMOPT.B25
ALMOPT.B16
ALMOPT.B15
ALMOPT.B10
ALMOPT.B8
ALMOPT.B7
ALMOPT.B4

29

B0193AX Rev Z

2. AIN Analog Input Block

1.

Bit 0 is the least significant bit (starting from the right).

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


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

Bit
Number
(0 to 31)*

CRIT

Name

Description When True

PTYP_MSK

Priority Type: See parameter PRTYPE for values


used in the AIN block
Criticality; 5 = lowest priority, 1= highest
Low Absolute Alarm
High Absolute Alarm
Bad I/O Alarm
Low-Low Absolute Alarm
High-High Absolute
Alarm
Out-of-Range Alarm
Inhibit Alarm
Unacknowledged

0 to 4
(Least
Significant)
5 to 7

CRIT_MSK

16
17
22
24
25

LMA
HMA
BAD
LLA
HHA

28
29
30

OOR
INH
UNAK

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

B16
LMA

B15

B14

HMA

B13

B12

B11

B9

B10
BAD

B8
LLA

B6

B7
HHA

B5

B3

OOR B4

INH

B1

UNAK B2

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

ALMSTA

PRTYPE

Boolean
Connection
(B32 to B1)
---

--ALMSTA.B16
ALMSTA.B15
ALMSTA.B10
ALMSTA.B8
ALMSTA.B7
ALMSTA.B4
ALMSTA.B3
ALMSTA.B2

* Bit 0 is the least significant bit (starting from the right).

30

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

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.

2. AIN Analog Input Block

B0193AX Rev Z

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 (BLKSTA.BAD) is also set true whenever BAD is true.

BADOPT

Bad and Out-of-Range Option is a short integer option that specifies the
conditions that set the BAD output true. Values are:
0 = Bad Status (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 connection)
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 connected point is bad). If there is no FBM or FBC connection, then Bad Status 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=
1=
2=

No generation of Bad alarms.


Bad alarm generation if the FBM or FBC has
Bad status.
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 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 Z

2. AIN Analog Input Block

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

Bit Number*
(0 to 31)
8
11
12
14
15
20

FBM
MA
BAD
UDEF
ON
WLCK

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

8
B24

B23

B21
MA

B22

B20
BAD

B19

B17

Name

UDEF B18

ON

B16

B15

B14

B13

WLCK B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

FBM

BLKSTA

Boolean
Connection
(B32 to B1)

Description When True


FBM or FBC Failure
Manual = 0, Auto = 1
Bad I/O
Block Undefined
Block ON
Access Locked

BLKSTA.B24
BLKSTA.B21
BLKSTA.B20
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12

* Bit 0 is the least significant bit (starting from the right).

32

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 blocks 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 configuration errors. The default is 1 (no configuration errors). When the block initializes, 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

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 percent. If communication is within the same control station that contains
the blocks compound, DELTO1 has no effect.

2. AIN Analog Input Block

B0193AX Rev Z

DESCRP

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


the blocks function (for example, PLT 3 FURNACE 2 HEATER CONTROL).

DEV_ID

Device Identifier is a character array data store that indicates the 6-character 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 blocks DEFINE parameter to be set false. Validation of configuration errors does not proceed past the first error encountered 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
W44
W48
W49
W50
W51
W52
W54

Value
HSCO1 less than LSCO1
FLOP or BADOPT out of range
Invalid CHARC block extension
Invalid SCI
Cluster I/O specified but type is not analog input or
analog output
PNT_NO out of range for the specified FBM or FBC
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 Z

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.

34

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 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 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 Absolute High and/or Low alarming of the PNT output, or disables absolute
alarming altogether. Values:

2. AIN Analog Input Block

B0193AX Rev Z

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

High Scale for Output Range 1 is a real value that defines the upper range
value for the blocks output.

INHALM

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

Bit Number*
(0 to 15)
0 (Least
Significant)
1
6
8
9
12

Description When True

0
B16

B15

B14

B13

B12

B11

10

B10

11

B9

12

B8

13

B7

14

B1

15

B6

HSCO1

B5

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-ofRange Conditions) occurs.

B4

HOR

B3

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

B2

HLPR

Boolean Connection
(B16 to B1)

Inhibit Low Absolute Alarm

INHALM.B16

Inhibit High Absolute Alarm


Inhibit Bad I/O Alarm
Inhibit Low-Low Absolute
Alarm
Inhibit High-High Absolute
Alarm
Inhibit Out-of-Range Alarm

INHALM.B15
INHALM.B10
INHALM.B8
INHALM.B7
INHALM.B4

* Bit 0 is the least significant bit (starting from the right).


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 Z

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

1=

2=

3=

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:

Bit
Number*
(0 to 31)

Name

Description When True

16
17
22
24

LMA
HMA
BAD
LLA

25

HHA

28

OOR

Low Absolute Alarm Inhibited


High Absolute Alarm Inhibited
Bad I/O Alarm Inhibited
Low-Low Absolute Alarm
Inhibited
High-High Absolute Alarm
Inhibited
Out-of-Range Alarm Inhibited

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

LMA B16

HMA B15

B14

B13

B12

B11

B9

BAD B10

LLA B8

HHA B7

B6

B5

OOR B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

INHSTA

Boolean
Connection
(B32 to B1)
INHSTA.B16
INHSTA.B15
INHSTA.B10
INHSTA.B8
INHSTA.B7
INHSTA.B4

* Bit 0 is the least significant bit (starting from the right).


INITMA

36

Initialize Manual/Auto specifies the desired state of the MA input during


initialization, where:
0 = Manual

2. AIN Analog Input Block

B0193AX Rev Z

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 Control 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 connection to the block exists, and if not, whether signal conditioning is to be
applied to the alternate source of the block input. Values:
0=
1=
2=

The AIN block obtains input values from the MEAS


parameter and conditions them as specified by the value of SCI.
The block obtains input values from the FBM or FBC input
point specified by IOM_ID and PNT_NO.
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 pathname of the ECB for the FBM or FBC to which the block is connected.
IOM_ID has the form CompoundName:BlockName, where CompoundName 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 letterbug of the parent FBM (18, 43, 39, 44, 46, 243, or 246), not the connected 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 Z

38

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 characters, sent with the low absolute alarm message to identify it.

LLAIND

Low_Low Absolute Alarm Indicator is a boolean output that is true whenever the value of PNT 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 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-character 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 displays. 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 blocks
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 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.

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-ofRange Conditions) occurs.

LSCO1

Low Scale for Output Range 1 is a real value that defines the lower range
value for the blocks output.

2. AIN Analog Input Block

B0193AX Rev Z

MA

Manual/Auto is a boolean input that controls the blocks 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 Detection 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
alarms 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-ofRange alarm messages to one of eight groups of alarm devices.

39

B0193AX Rev Z

2. AIN Analog Input Block

ORAO

Out-of-Range Alarm Option is a configurable boolean which, when configured 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 percentage 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 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 blocks 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
0
1
2
3
4
5
6

Length
0.1 sec
0.5 sec*
1.0 sec
2.0 sec
10 sec
30 sec
1 min

Period
7
8
9
10
11
12
13

Length
10 min
60 min
0.2 sec
5.0 sec**
0.6 sec***
6.0 sec****
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 Z

***** Available in CP40, CP40B, and CP60.


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 Control Processor is 0.5 sec. Refer to the appropriate Integrated Control Software 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 connected. 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 primary measurement of the instrument. If the first or second auxiliary measurement 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-of41

B0193AX Rev Z

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 priority 3 and the Out-of-Range alarm has priority 4, and all three alarms are
active, then CRIT = 3 and PRTYPE = 8.
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 connectable
output parameter. Available bits for this block are provided below.

Bit
Number1
30
29
28
25
24
22
17
16
13
10
5
4
3
2
1
0
1.
2.

RAWC

42

Definition

Contents

Alarms Unacknowledged
Alarms Inhibited
Out-of-Range Alarm
High-High Absolute Alarm
Low-Low Absolute Alarm
Bad Alarm2
High Absolute Alarm
Low Absolute Alarm
Bad Primary FBM
Bad Primary Point
Manual
Low Limited
High Limited
Uncertain
Out-of-Service
Bad

ALMSTA.UNA
ALMSTA.INH
ALMSTA.OOR
ALMSTA.HHA
ALMSTA.LLA
ALMSTA.IOBD
ALMSTA.HMA
ALMSTA.LMA
BLKSTA.FBM1
BLKSTA.BAD1
BLKSTA.MA
PNT.LLO status
PNT.LHI status
PNT.ERR status
PNT.OOS status
PNT.BAD status

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

QALSTA

Boolean Connection
(B32 to B1)
QALSTA.B2
QALSTA.B3
QALSTA.B4
QALSTA.B7
QALSTA.B8
QALSTA.B10
QALSTA.B15
QALSTA.B16
QALSTA.B19
QALSTA.B22
QALSTA.B27
QALSTA.B28
QALSTA.B29
QALSTA.B30
QALSTA.B31
QALSTA.B32

Bit 0 is the least significant bit (starting from the right).


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.

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

2. AIN Analog Input Block

B0193AX Rev Z

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 individual 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 characterization 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 notification 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 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
FBMs internal ninth channel (or the FBCs 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 indicate an unconditional request for initialization in an UPSTREAM parameter (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 connection, a High Out-of-Range (HOR) or Low Out-of-Range (LOR) condition 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 Z

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 Disconnected. This action is unaffected by the ZERROP option.

2.5 Functions
2.5.1 Detailed Diagram
IOM_ID
PNT_NO
FROM
ECB
MEAS

SCI

IOMOPT
1

XREFOP
XREFIN
EXTBLK

Signal
Conditioning-

KSCALE
BSCALE

FLOP
FTIM

HSCO1
LSCO1
OSV

(M)
o MA

Clamping

Scaling

0,2

output
units

HSCO1 LSCO1
RAWC

o o PNT
(A)

Filtering

ConvertedOOR
OR

Raw Data
OOR
Test

LOR, HOR

BAD
ECB Status
BADOPT

PNT.BAD

Channel
Status

BLKSTA.BAD

AUTO
MANUAL
MANALM

AND

OR

See individual diagrams


Figure 2-2. AIN Block Operational Diagram

44

BAO

AND

BAD
Alarming

2. AIN Analog Input Block

B0193AX Rev Z

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)
RAWC
SCI = 0-7, 9-10

Input = Raw Counts

Linearization
HOR/LOR
2.5.2.1
hor, lor

Engineering
Units
HSCO1
OSV
BSCALE LSCO1

KSCALE

output
units

Clamping
2.5.4

LASTGV
BAD
MA
FLOP
(M)
FTIM
o
Filtering
2.5.5

hor, lor

Channel Status

PNT
o o
(A)
ABSOLUTE
Alarming
2.7

BAD
Alarming
2.7

FBM Status

BAD

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
FBM201
FBM204
FBM205
FBM211
FBM01
FBM04
FBM05
FBM06
FBM17
FBM39
FBM44
FBM243
FBM46
FBM246
FBC21
FBC01
FBC17
FBC04

ECB
ECB1
ECB2
ECB2
ECB1
ECB1
ECB2
ECB2
ECB4
ECB9,
33 to 36
ECB23
ECB23
ECB38R
ECB41
ECB41
ECB41
ECB43

Functional Description
8 Analog In
4 Analog In, 4 Analog Out
As FBM 204, Redundant
16 Analog In
8 Analog In
4 Analog In, 4 Analog Out
As FBM 04, Redundant
4 Pulse Rate In, 4 Analog Out
4 Analog In, 2 Analog Out,
4 Digital In, 4 Digital Out
4 IFD In, 4 Analog Out
4 IFD In, 4 Analog Out, Dual
Baud Rate
4 IFD In, 4 Analog Out,
Redundant
16 Analog In
32 Analog In
32 Analog In
16 Analog Out

Electrical Type

Valid Points

0 to 20 mA
0 to 20 mA
0 to 20 mA
0 to 20 mA
0 to 20 mA
0 to 20 mA
0 to 20 mA
0 to 20 mA
0 to 10 V dc

Points 1 to 8
Points 1 to 8
Points 1 to 8
Points 1 to 16
Points 1 to 8
Points 1 to 8
Points 1 to 8
Points 5 to 8
Points 1 to 6

0 to 20 mA
0 to 20 mA

Points 5 to 8
Points 5 to 8

0 to 20 mA

Points 5 to 8

0 to 20 mA
0 to 20 mA
0 to 10 V dc
0 to 20 mA

Points 1 to 16
Points 1 to 32
Points 1 to 32
Points 1 to 16
45

B0193AX Rev Z

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:
FBM205:
FBM05:
FBM237:
FBM06:
FBM17:
FBM37
FBM39:
FBM44:
FBM46:
FBM246
FBC04:

Points 5 to 8
Points 5 to 8
Points 5 to 8
Points 1 to 8
Points 5 to 8
Points 5 to 6
Points 1 to 8
Points 5 to 8
Points 5 to 8
Points 5 to 8
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:
SCI = 1:
SCI = 2:
SCI = 3:
SCI = 4:
SCI = 5:
SCI = 6:
SCI = 7:
SCI = 9:
SCI = 10:
SCI = 11
SCI = 12:
46

No linearization; output = input


Linear (0 to 64000). Analog Input 0 to 20 mA
Linear (1600 to 64000). Analog Input 0 to 10 V dc
Linear (12800 to 64000). Analog Input 4 to 20 mA
Square root (0 to 64000). Analog Input 0 to 20 mA
Square root (12800 to 64000), clamped. Analog Input 4 to 20 mA
Square root, low cutoff (0 to 64000), clamp < 3/4%. Analog Input 0 to 20 mA
Square root, low cutoff (12800 to 64000), clamp < 3/4%. Analog Input 4 to 20 mA
Linear, low cutoff (1600 to 64000). Analog Input 0 to 10 V dc
Linear, low cutoff (12800 to 64000). Analog Input 4 to 20 mA
Square root, Intelligent Transmitter 2 (0 to 64000)
Linear (14080 to 64000). Analog Input 2 to 10 V dc

2. AIN Analog Input Block

SCI = 13:
SCI = 14
SCI = 15
SCI = 50:
SCI = 51:
SCI = 52:
SCI = 53:
SCI = 54:
SCI = 55:
SCI = 56:
SCI = 57:
SCI = 58:
SCI = 59:

B0193AX Rev Z

Square root, low cutoff (14080 to 64000). Analog Input 2 to 10 V dc


Linear (0 to 16383)
Square root, low cutoff (1600 to 64000)
Linear 0 to 65535 raw counts
Linear -32768 to 32767 raw counts
Linear 0 to 32767 raw counts
Linear 0 to 1000 raw counts
Linear 0 to 9999 raw counts
Linear 0 to 2048 raw counts
Linear 409 to 2048 raw counts
Square root 0 to 2048 raw counts
Square root 409 to 2048 raw counts with low cutoff
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 Conditioning 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 Conditioning 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 Z

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 outof-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)
Input =
Raw Counts
Channel 9

XREFOP
XREFIN

SCI = 20-28

Cold
Junction
Compensation

External
Block

hor, lor

Linearization
2.5.2.2

oC

KSCALE
(1.8)
X

BSCALE
(32.0) o

hor,lor

Channel Status
FBM Status
Figure 2-4. Thermocouple Input Example

The following FBMs or FBCs and point numbers provide thermocouple inputs:
FBM
FBM202
FBM212
FBM02
FBM36
FBC02
FBC02
Redundant

ECB

Functional Description

ECB1
ECB1
ECB1
ECB1
ECB41
ECB41

8 Analog In
14 Analog In
8 Analog In
8 Analog In
32 Analog In
32 Analog In, Redundant

Electrical Type
mV
mV
mV
mV
mV
mV

Valid Points
Points 1 to 8
Points 1 to 14
Points 1 to 8
Points 1 to 8
Points 1 to 32
Points 1 to 32

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 temperature value must also be compensated for the thermocouples 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 Z

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:
SCI = 21:
SCI = 23:
SCI = 24:
SCI = 25:
SCI = 26:
SCI = 27:
SCI = 28:

Type B Thermocouple
Type E Thermocouple
Type J Thermocouple
Type K Thermocouple
Type N Thermocouple
Type R Thermocouple
Type S Thermocouple
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 junction 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 indicates 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 Z

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

Linearization
2.5.2.3

KSCALE
oC
X

hor,lor
Channel Status
FBM Status
Figure 2-5. RTD Input Example

50

BSCALE
oF
+

2. AIN Analog Input Block

B0193AX Rev Z

The following FBM and point numbers provide RTD inputs:


FBM
FBM203
FBM213
FBM03
FBM33

ECB
ECB1
ECB1
ECB1
ECB1

Functional Description
8 Analog In
8 Analog In
8 Analog In
6 Analog In

Electrical Type
ohms
ohms
ohms
ohms

Valid Points
Points 1 to 8
Points 1 to 8
Points 1 to 8
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 accordingly 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:
SCI = 41:
SCI = 42:
SCI = 43:
SCI = 44:

Copper RTD (SAMA)


Nickel RTD (SAMA)
Platinum RTD (100 Ohm DIN 43760-1968)
Platinum RTD (100 Ohm IEC) (DIN 43760-1980)
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-topeer connections.

51

B0193AX Rev Z

2. AIN Analog Input Block

2.5.2.4 Pulse Rate Input


INPUT FROM FBM 06 (Pulse Rate Input)
MTRF

Input = 32
bit Raw Count

SCI = 8
Raw Count
to Hertz
2.5.2.4

Hertz to
Flow Rate
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
FBM206
FBM06

ECB
ECB4
ECB4

Functional Description
8 Pulse rate In
4 Pulse rate In, 4 Analog Out

Electrical Type
Frequency
Frequency

Valid Points
Points 1 to 8
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 Z

2.5.2.5 Pulse Count Input


Key Parameters: IOM_ID, PNT_NO
The following FBMs and point numbers provide pulse count inputs:
FBM
FBM07
FBM12
FBM08
FBM13

ECB

Functional Description

ECB7
--ECB7
---

Electrical Type

16 Digital In/Pulse Count In


Expander for FBM 07
16 Digital In/Pulse Count In
Expander for FBM 08

Contact/dc
Contact/dc
120 V ac
120 V ac

Valid Points
Points 1 to 16
Points 17 to 32
Points 1 to 16
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

SCI = 0

KSCALE

Input Engineering Units

Output
Engineering
BSCALE 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

FBM18
FBM39

ECB12
ECB23

8 IFD In
4 IFD In, 4 Analog Out

IFD
IFD, 0 to 20 mA

FBM43

ECB12
ECB 73
ECB23

8 IFD In

IFD, 0 to 20 mA,
Dual Baud Rate
IFD, 0 to 20 mA,
Dual Baud Rate

FBM44

4 IFD In, 4 Analog Out

Electrical Type

Valid Points
Points 1 to 24
Points 1 to 4, 9 to 12,
17 to 20
Points 1 to 24
Points 1 to 4, 9 to 12,
17 to 20

53

B0193AX Rev Z

2. AIN Analog Input Block

FBM

ECB

Functional Description

Electrical Type

FBM46

ECB38R

4 IFD In, 4 Analog Out

FBM243

ECB 73

8 IFD In/Out

FBM246

ECB73

8 IFD In/Out

FBM23
FBM38

ECB13
ECB22

24 Floating Point In
8 Floating Point In

IFD, 0 to 20 mA,
Dual Baud Rate,
Redundant
IFD, 0 to 20 mA,
Dual Baud Rate
IFD, 0 to 20 mA,
Dual Baud Rate,
Redundant
HTG
Coriolis

Valid Points
Points 1 to 4, 9 to 12,
17 to 20
Points 1 to 4, 9 to 12,
17 to 20
Points 1 to 4, 9 to 12,
17 to 20
Points 1 to 24
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 processed 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 letterbug 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) Transmitters 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 Z

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 intelligent 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
or
MEALM

REALM
or
MEALM

PID
OUT

Optional Real (REALM)


or Measurement (MEALM)
Alarm Block

or

Optional Real (REALM)


or Measurement (MEALM)
Alarm Block

AOUT
To Displays and
Maintenance
Data Collection

or
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 Z

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 parameter. 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 Intelligent 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 Z

device and point values for each of its 24 measurements, but their names do not follow this convention (see ECB13 - Hydrostatic Tank Gauge).
If you set IOMOPT to 0, you can use any valid SCI value to condition the input, or use characterization as described in Section 2.5.2.1. If IOMOPT is set to 2, you cannot use signal conditioning 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 conditioned signal by application of the Gain Scale (KSCALE) and Offset Scale (BSCALE) parameters in accordance with the formula:
Scaled Value = (Conditioned Value * KSCALE) + BSCALE.
Scaling allows the conditioned value to be made dimensionally compatible with the desired output units, as for example in conversion from Celsius to Fahrenheit scales in the case of temperature 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 blocks 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 Z

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 condition. 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 information.

58

2. AIN Analog Input Block

B0193AX Rev Z

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 previous 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 Z

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 attenuates 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 condition, because of the setting of BADOPT. (See Section 2.6.2 below.)
60

2. AIN Analog Input Block

B0193AX Rev Z

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 conditions, and the BAD status:
BADOPT = 0:
BADOPT = 1:
BADOPT = 2:
BADOPT = 3:
BADOPT = 4:

Out-of-Range does not affect BAD status


Low Out-of-Range causes BAD status to be set
High Out-of-Range causes BAD status to be set
High or Low Out-of-Range causes BAD status to be set
Unhealthy scalar input (KSCALE or BSCALE) causes BAD status
to be set (i.e., input value status is BAD, OOS, or has a broken
OM connection)

See BADOPT on page 31 for additional statuses.


When BADOPT is set, the appropriate Out-of_Range condition is ORed 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.
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 paragraph.
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

61

B0193AX Rev Z

2. AIN Analog Input Block

The raw value is compared against the characterizer end-points. If the value is outside the endpoints, 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 indicated 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.
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.

62

2. AIN Analog Input Block

B0193AX Rev Z

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.
LASTGV = 1
BADOPT = 2
SCI = 0
IOMOPT = 1

LASTGV = 0

osv (units)
HSCO1
Input

Input

Output

Output

LSCO1
osv (units)

osv (units)
HSCO1
HOR = 1

HOR = 1

Output is the last


good value read
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 Manual, 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).
If MANALM is true, alarming is enabled while in Manual mode, and is based on the manuallyset value of PNT.
63

B0193AX Rev Z

2. AIN Analog Input Block

In Manual mode, you may set the values of PNT, BAD, HOR, LOR, and the alarm indicators.

64

2. AIN Analog Input Block

B0193AX Rev Z

2.8 Alarming
The AIN block supports the Bad I/O, Out-of-Range, High/Low Absolute, and High-High/LowLow 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 follows:
Table 2-2. Alarm Nomenclature
Type

Option

Limit

Priority

Group

Text

Deadband

Default
Display

Indicator
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 =
1 or 2

HAL

HLPR

HLGP

HAT

HLDB

HIABS

HAI

Low Absolute

HLOP =
1 or 3

LAL

HLPR

HLGP

LAT

HLDB

LOABS

LAI

High-High
Absolute

HHAOPT = 1
or 2

HHALIM

HHAPRI

HHAGRP

HHATXT

HLDB

HHABS

HHAIND

Low-Low
Absolute

HHAOPT = 1
or 3

LLALIM

HHAPRI

HHAGRP

LLATXT

HLDB

LLABS

LLAIND

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 Z

2. AIN Analog Input Block

2.9 Application Diagram


ECB 1

PNT_NO
AIN
PNT
MEAS
PID

FBM 203
or
FBM 03

OUT
MEAS
AOUT
OUT

TT

Steam

HEAT
EXCHANGER

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

Heated Water
Cold Water

2. AIN Analog Input Block

B0193AX Rev Z

2.10 Appendix A Signal Conditioning Tables


2.10.1 Summary
SCI = 0:
SCI = 1:
SCI = 2:
SCI = 3:
SCI = 4:
SCI = 5:
SCI = 6:
SCI = 7:
SCI = 8:
SCI = 9:
SCI = 10:
SCI = 11
SCI = 12:
SCI = 13:
SCI = 14
SCI = 15
SCI = 20:
SCI = 21:
SCI = 22
SCI = 23:
SCI = 24:
SCI = 25:
SCI = 26:
SCI = 27:
SCI = 28:
SCI = 40:
SCI = 41:
SCI = 42:
SCI = 43:
SCI = 44:
SCI = 50:
SCI = 51:
SCI = 52:
SCI = 53:
SCI = 54:
SCI = 55:

No linearization; output = input


Linear (0 to 64000) (0 to 100%)
Linear (1600 to 64000) (0 to 100%, Elevated Zero)
Linear (12800 to 64000) (20 to 100%)
Square root (0 to 64000) (0 to 100%)
Square root (12800 to 64000), clamped (20 to 100%)
Square root, low cutoff (0 to 64000), clamp < 3/4% (0 to 100%)
Square root, low cutoff (12800 to 64000), clamp < 3/4% (20 to 100%)
Pulse rate
Linear, low cutoff (1600 to 64000) (0 to 100%, Elevated Zero)
Linear, low cutoff (12800 to 64000)(20 to 100%)
Square root, Intelligent Transmitter 2 (0 to 64000)
Linear (14080 to 64000)(20 to 100%, Elevated Zero)
Square root, low cutoff (14080 to 64000),(20 to 100%, Elevated Zero)
Linear (0 to 16383)
Square root, low cutoff (1600 to 64000)
Type B Thermocouple
Type E Thermocouple
Reserved for future use
Type J Thermocouple
Type K Thermocouple
Type N Thermocouple
Type R Thermocouple
Type S Thermocouple
Type T Thermocouple
Copper RTD (SAMA)
Nickel RTD (SAMA)
Platinum RTD (100 Ohm DIN 43760-1968)
Platinum RTD (100 Ohm IEC) (DIN 43760-1980)
Platinum RTD (100 Ohm SAMA)
Linear 0 to 65535 raw counts
Linear -32768 to 32767 raw counts
Linear 0 to 32767 raw counts
Linear 0 to 1000 raw counts
Linear 0 to 9999 raw counts
Linear 0 to 2048 raw counts
67

B0193AX Rev Z

SCI = 56:
SCI = 57:
SCI = 58:
SCI = 59:

2. AIN Analog Input Block

Linear 409 to 2048 raw counts


Square root 0 to 2048 raw counts
Square root 409 to 2048 raw counts with low cutoff
Linear 0 to 4095 raw counts

2.10.2 Linear/Square Root Signal Conditioning


SCI = 0:
SCI = 1:

SCI = 2:

SCI = 3:

SCI = 4:

SCI = 5:

SCI = 6:

SCI = 7:

SCI = 8:

68

No Linearization
Conditioned = Raw
Linear (0 to 64000)
Analog Input 0 to 20 mA
Conditioned = (Raw * (HSCO1 - LSCO1)/64000) + LSCO1
Linear (1600 to 64000)
Analog Input 0 to 10 V dc
Conditioned = ((Raw - 1600) * (HSCO1 - LSCO1)/62400) + LSCO1
Linear (12800 to 64000)
Analog Input 4 to 20 mA
Conditioned = ((Raw - 12800) * (HSCO1 - LSCO1)/51200) + LSCO1
Square Root (0 to 64000)
Analog Input 0 to 20 mA
Conditioned = (Sqrt(64000 * Raw) * (HSCO1 - LSCO1)/64000) + LSCO1
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
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
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
Pulse Rate
Conditioned = Raw * MTRF * Pulse Constant
(Where Pulse Constant = 25000.0/(65535.0 * 65535.0) = 0.582094373 E-05 =
0.00000582094373)

2. AIN Analog Input Block

SCI = 9:

SCI = 10:

SCI = 11:

SCI = 12:

SCI = 13:

SCI = 14:

SCI = 15:

SCI = 50:
SCI = 51:
SCI = 52:
SCI = 53:
SCI = 54:

B0193AX Rev Z

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
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
Square Root, Intelligent Transmitter 2 (0 to 64000)
Analog Input
Conditioned = Sqrt(Raw)
Linear (14080 to 64000)
Analog Input 2 to 10 V dc
Conditioned = ((Raw - 14080) * (HSCO1 - LSCO1)/49920) + LSCO1
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
Linear (0 to 16383)
Analog Input 0 to 20 mA
Conditioned = (Raw * (HSCO1 - LSCO1)/16383) + LSCO1
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
Linear 0 to 65535 raw counts
Conditioned = ( Raw * ( HSCO1 - LSCO1 ) / 65535 ) + LSCO1
Linear -32768 to 32767 raw counts
Conditioned = (( Raw + 32768 ) * ( HSCO1 - LSCO1 ) / 65535 ) + LSCO1
Linear 0 to 32767 raw counts
Conditioned = ( Raw * ( HSCO1 - LSCO1 ) / 32767 ) + LSCO1
Linear 0 to 1000 raw counts
Conditioned = ( Raw * ( HSCO1 - LSCO1 ) / 1000 ) + LSCO1
Linear 0 to 9999 raw counts
Conditioned = ( Raw * ( HSCO1 - LSCO1 ) / 9999 ) + LSCO1

69

B0193AX Rev Z

SCI = 55:
SCI = 56:
SCI = 57:
SCI = 58:

SCI = 59:

2. AIN Analog Input Block

Linear 0 to 2048 raw counts


Conditioned = ( Raw * ( HSCO1 - LSCO1 ) / 2048 ) + LSCO1
Linear 409 to 2048 raw counts
Conditioned = (( Raw - 409 ) * ( HSCO1 - LSCO1 ) / 1639 ) + LSCO1
Square root 0 to 2048 raw counts
Conditioned = ( SQRT( 2048 * Raw ) * ( HSCO1 - LSCO1 ) / 2048 ) + LSCO1
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;
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
20
21
23
24
25
26
27
28

Type
Type B
Type E
Type J
Type K
Type N
Type R
Type S
Type T

Material
Platinum-Platinum
Chromel-Constantan
Iron-Constantan
Chromel-Alumel
Nicrosil-Nisil
Platinum-Platinum
Platinum-Platinum
Copper-Constantan

Range
0 to 1820C
-270 to 910C
-210 to 1200C
-270 to 1372C
-270 to 1300C
-50 to 1768C
-50 to 1768C
-270 to 400C

Curve
P331-0/68 (TI 5-189a)
S303-0/68 (TI 5-17c)
S99J-0/68 (TI 5-12f )
K223-0/68 (TI 5-13c)
IPTS-68 (TI 5-19)
P329-0/68 (TI 5-14d)
P307-0/68 (TI 5 -15e)
S233-0/68 (TI 5-11c)

2.10.4 RTD Signal Conditioning


SCI
40
41
42
43

70

Type

Material

Range

Curve

Copper (SAMA)
Nickel (SAMA)
Platinum (100 Ohm
DIN 43760-1968)
Platinum (100 Ohm
IEC DIN 43760-1980)

Copper
Nickel
Platinum

-70 to 150C
-100 to 160C
0 to 620C

CR229 (TI 5H-25a)


NR-227 (SAMA) (TI 5-24a)
PR-238 (TI 5-26a)

Platinum

-200 to 620C

Foxboro Dwg. 10104MU


(TI 005-028)

2. AIN Analog Input Block

SCI
44

B0193AX Rev Z

Type
Platinum (100 Ohm
SAMA)

Material

Range

Curve

Platinum

-200 to 600C

PR-279 (SAMA) (TI 5-27a)

2.11 Appendix B Valid Input Connections

202

203

204

205

206

207

211

212

213

217

242

237

241

Hardware
Type

201

2.11.1 FBM201 through FBM242 Valid Input Connections

I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
C

I
I
I
I
I
I
I
I

I
I
I
I
O
O
O
O

I
I
I
I
O
O
O
O

I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
I
C

I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O

O
O
O
O
O
O
O
O

I
I
I
I
I
I
I
I
O
O
O
O
O
O
O
O

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

71

241

237

242

217

213

212

211

207

206

205

204

201

Hardware
Type

203

2. AIN Analog Input Block

202

B0193AX Rev Z

Point
29
30
31
32

I
I
I

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

I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I

I
O

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
C

O
O
O
O
O
O
O
O

I
I
I
I
I
I
I
I

I
I
I
I
O
O
O
O

I
I
I
I
I
I
I
I

I
I
I
I
O
O
O
O

I
I
I
I
O
O
O
O

Point
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
72

I
I
I
I
I
I
I
I
C

I
I
I
I
I
I
I
I

I
I
I
I
O
O
O
O

I
I
I
I
O
O
O
O

I
I
I
I
O
O
O
O

I
I
I
I
O
O

2. AIN Analog Input Block

Hardware
Type

B0193AX Rev Z

1 2 3 4 5 6 17

18

22

23

33

36

37

38

39

43

44

46

Point
24
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
73

B0193AX Rev Z

2. AIN Analog Input Block

Hardware
Type

57

58

59

61

63

95

Point
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Legend:

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

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

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
C

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
C

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.
Select
Request

High/Low Scale
for Output Range 1

BAD and OOR


Option

Signal
Conditioning
Index
Fieldbus
Module
Identifier
Redundant
Fieldbus
Module
Identifier
Point
Number
External
Reference
Option
External
Reference
Input
Extender
Block

Linear
Square
Root

Bad &
Out-ofRange
Processing

output
units
output
units

oC

RTD
Thermocouple
Special
T.C.

oC

Scaling/
Unit
Conversion

Clamp

Filter

Point
Selection

Bad
Indicator
High/
Low Outof-Range
Indicators
Point
(Engineering
Units Value)

oC
Alarming

counts

Alarm
Indicators

Characterizer
(None)
Gain
Offset

Alarm Alarm
Options Limits

Figure 3-1. AINR Block Diagram

75

B0193AX Rev Z

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 junction 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 purposes; 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 Z

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

string

no-con/no-set

blank

1 to 12 chars

Configurable Parameters
INPUTS
NAME

block name

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

0 to 13

PHASE

block execute phase

integer

no-con/no-set

---

LOOPID

loop identifier

string

no-con/set

blank

1 to 32 chars

IOMOPT

FBM input option

short

no-con/no-set

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 to 32

SCI

signal condition index

short

no-con/no-set

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

---

MA

manual/auto

boolean

con/set

0 to 1

INITMA

initialize MA

short

no-con/no-set

0 to 2

BADOPT

BAD/oor option

short

no-con/no-set

0 to 7

LASTGV

last good value

boolean

no-con/no-set

0 to 1

INHOPT

inhibit option

short

no-con/no-set

0 to 3

INHIB

alarm inhibit

boolean

con/set

0 to 1

INHALM

inhibit alarm

pack_b

con/set

0 to FFFF

MANALM

manual alarm option

short

no-con/no-set

0 to 1

MTRF

meter factor

real

no-con/set

1.0

flow rate/Hz

77

B0193AX Rev Z

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 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 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 to 2

BAT

bad alarm text

string

no-con/no-set

blank

1 to 32 chars

BAP

bad alarm priority

integer

con/set

1 to 5

BAG

bad alarm group

short

no-con/set

1 to 8

ORAO

out of range alarm option

boolean

no-con/no-set

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

1 to 5

ORAG

out of range group

short

no-con/set

1 to 8

HLOP

high/low alarm option

short

no-con/no-set

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

1 to 5

HLGP

high alarm group

short

no-con/set

1 to 8

HHAOPT

high-high alarm option

short

no-con/no-set

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

1 to 5

HHAGRP

high-high alarm group

short

no-con/set

1 to 8

PROPT

propagate error option

boolean

no-con/no-set

0 to 1

SELREQ

primary or secondary

boolean

con/set

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 to 32767 s

NASTDB

alarm deadband timer

long integer no-con/no-set

0-2147483647 ms

NASOPT

nuisance alarm suppression


option

short

no-con/no-set

0 to 2

Non-Configurable Parameters
OUTPUTS

78

ALMSTA

alarm status

pack_l

con/no-set

bit map

BAD

bad I/O status

boolean

con/no-set

0 to 1

BLKSTA

block status

pack_l

con/no-set

bit map

CRIT

alarm criticality

integer

con/no-set

0 to 5

3. AINR Redundant Analog Input Block

B0193AX Rev Z

Table 3-1. AINR Block Parameters (Continued)


Name

Description

Type

Accessibility

Default

Units/Range

HAI

high alarm indicator

boolean

con/no-set

0 to 1

HHAIND

high-high alarm indicator

boolean

con/no-set

0 to 1

HOR

high out-of-range

boolean

con/no-set

0 to 1

INHSTA

inhibit status

pack_l

con/no-set

bit map

LAI

low alarm indicator

boolean

con/no-set

0 to 1

LLAIND

low-low alarm indicator

boolean

con/no-set

0 to 1

LOR

low out-of-range

boolean

con/no-set

0 to 1

PNT

point output

real

con/no-set

0.0

RO1

PRTYPE

priority type

integer

con/no-set

0 to 10

QALSTA

quality status

pack_l

con/no-set

0 to FFFFFFFF

RAWC

raw counts

real

con/no-set

0.0

0 to 65535

UNACK

unacknowledge alarm

boolean

con/no-set

0 to 1

ZERROP

out of range error

boolean

con/no-set

0 to 1

DATA STORES
ACHNGE

alternate change

integer

con/no-set

-32768 to 32767

ALMOPT

alarm options

pack_l

no-con/no-set

0 to FFFFFFFF

DEFINE

no config errors

boolean

no-con/no-set

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

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 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:

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

8
B24

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

79

B0193AX Rev Z

3. AINR Redundant Analog Input Block

Bit Number*
(0 to 31)

Boolean
Connection
(B32 to B1)

Configured Alarm Option


When True

0 (Least
Significant)
1
7
16
17
22
24
25
28

Alarm Group 8 in Use

ALMOPT.B32

Alarm Group 7 in Use


Alarm Group 1 in Use
Low Absolute Alarm Configured
High Absolute Alarm
Configured
Bad I/O Alarm Configured
Low-Low Absolute Alarm
Configured
High-High Absolute Alarm
Configured
Out-of-Range Alarm Configured

ALMOPT.B31
ALMOPT.B25
ALMOPT.B16
ALMOPT.B15
ALMOPT.B10
ALMOPT.B8
ALMOPT.B7
ALMOPT.B4

* Bit 0 is the least significant bit (starting from the right).


There are no mnemonic names for the individual bits of ALMOPT.
Alarm Status is a 32-bit output, bit-mapped to indicate the blocks alarm
states. For the AINR block, only the following bits are used:

Bit
Number*
(0 to 31)

80

CRIT

Name

Description When True

PTYP_MSK

Priority Type: See parameter


PRTYPE for values used in
the AINR block
Criticality; 5 = lowest priority, 1= highest priority
Low Absolute Alarm
High Absolute Alarm
Bad I/O Alarm for both Primary and Secondary

0 to 4
(Least
Significant)
5 to 7

CRIT_MSK

16
17
22

LMA
HMA
BAD

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

B15

B16
LMA

B14

HMA

B13

B12

B11

B9

B10
BAD

B7

B6

B8
LLA

HHA

B5

OOR B4

B3
INH

B1

UNAK B2

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

ALMSTA

PRTYPE

Boolean
Connection
(B32 to B1)

ALMSTA.B16
ALMSTA.B15
ALMSTA.B10

3. AINR Redundant Analog Input Block

Bit
Number*
(0 to 31)
24
25
28
29
30

B0193AX Rev Z

Name
LLA
HHA
OOR
INH
UNACK

Boolean
Connection
(B32 to B1)

Description When True


Low-Low Absolute Alarm
High-High Absolute Alarm
Out-of-Range Alarm
Inhibit Alarm (see Note)
Unacknowledged

ALMSTA.B8
ALMSTA.B7
ALMSTA.B4
ALMSTA.B3
ALMSTA.B2

* Bit 0 is the least significant bit (starting from the right).


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

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 connection)
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

81

B0193AX Rev Z

3. AINR Redundant Analog Input Block

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 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 connection, 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=
1=
2=

No generation of Bad alarms.


Bad alarm generation if the FBM or FBC has Bad
status.
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 operational states. For the AINR block, only the following bits are used:

Bit
Number*
(0 to 31)

82

Name

SEL

BADR

Description When True


Redundant Input Selected (Primary Input Selected when
False)
Bad Secondary I/O

B32

SEL

1
BADR B31

B30

B29

DEV

4
B28

5
B27

6
B26

7
B25

B24

FBM

FBMR B23

B21
MA

B22

B20
BAD

B19

B17

UDEF B18

ON

B16

B15

B14

B13

WLCK B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Boolean
Connection
(B32 to B1)
BLKSTA.B32

BLKSTA.B31

3. AINR Redundant Analog Input Block

Bit
Number*
(0 to 31)

B0193AX Rev Z

Name

DEV

8
9
11
12
14
15
20

FBM
FBMR
MA
BAD
UDEF
ON
WLCK

Description When True


Primary/Secondary Deviation
Limit Exceeded
Primary FBM or FBC Failure
Secondary FBM or FBC Failure
Manual = 0, Auto = 1
Bad Primary I/O
Block Undefined
Block ON
Access Locked

Boolean
Connection
(B32 to B1)
BLKSTA.B30
BLKSTA.B24
BLKSTA.B23
BLKSTA.B21
BLKSTA.B20
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12

* Bit 0 is the least significant bit (starting from the right).


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 blocks 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 configuration errors. The default is 1 (no configuration errors). When the block initializes, 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 percent. If communication is within the same control station that contains
the blocks compound, DELTO1 has no effect.

DESCRP

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


the blocks function (for example, PLT 3 FURNACE 2 HEATER CONTROL).

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 parent FBM (18, 43, 39, 44, or 46) to which the instrument interfaces.

83

B0193AX Rev Z

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-character 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 blocks DEFINE parameter to be set false. Validation of configuration errors does not proceed past the first error encountered 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
W44
W48
W49
W50
W51

W52
W54

84

Description
HSCO1 less than LSCO1)
FLOP or BADOPT out of range
Invalid CHARC block extension
Invalid SCI
Cluster I/O specified but type is not analog input or analog output. Value 51 also used to indicate any mismatch
between hardware or software types of the primary and
secondary points.
PNT_NO out of range for the specified FBMs or FBCs
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

3. AINR Redundant Analog Input Block

B0193AX Rev Z

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 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 (the selected point).

85

B0193AX Rev Z

3. AINR Redundant Analog Input Block

11

10

Bit Number*
(0 to 15)
0 (Least
Significant)
1
6
8
9
12

0
B16

12

B15

13

B14

14

B13

15

B12

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

B11

INHALM

B10

High Scale for Output Range 1 is a real value that defines the upper range
value for the blocks output.

B9

HSCO1

B8

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-ofRange Conditions) occurs for either the primary point, the secondary
point, or both.

B7

HOR

B6

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

B5

HLPR

B4

High/Low Option is a configured short integer input that enables Absolute 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

B3

HLOP

B2

High/Low Group is a short integer input that directs High/Low Absolute


alarm messages to one of eight groups of alarm devices.

B1

HLGP

Description When True

Boolean
Connection
(B16 to B1)

Inhibit Low Absolute Alarm

INHALM.B16

Inhibit High Absolute


Alarm
Inhibit Bad I/O Alarm
Inhibit Low-Low Absolute
Alarm
Inhibit High-High Absolute Alarm
Inhibit Out-of-Range Alarm

INHALM.B15
INHALM.B10
INHALM.B8
INHALM.B7
INHALM.B4

* Bit 0 is the least significant bit (starting from the right).


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

3. AINR Redundant Analog Input Block

B0193AX Rev Z

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

1=

2=

3=

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:

Bit
Number*
(0 to 31)

Name

Description When True

16
17
22
24

LMA
HMA
BAD
LLA

25

HHA

28

OOR

Low Absolute Alarm Inhibited


High Absolute Alarm Inhibited
Bad I/O Alarm Inhibited
Low-Low Absolute Alarm
Inhibited
High-High Absolute Alarm
Inhibited
Out-of-Range Alarm Inhibited

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

LMA B16

HMA B15

B14

B13

B12

B11

B9

BAD B10

LLA B8

HHA B7

B6

B5

OOR B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

INHSTA

Boolean
Connection
(B32 to B1)
INHSTA.B16
INHSTA.B15
INHSTA.B10
INHSTA.B8
INHSTA.B7
INHSTA.B4

* Bit 0 is the least significant bit (starting from the right).


87

B0193AX Rev Z

INITMA

3. AINR Redundant Analog Input Block

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

Redundant Fieldbus Module Identifier is a configurable string that specifies 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 connections to the block exist, and, if not, whether signal conditioning is to be
applied to the alternate sources of the block input. Values:
0=

1=
2=

IOM_ID

88

The AINR block obtains input values from the MEAS_P and
MEAS_S parameters and conditions them as specified by the
value of SCI.
The block obtains input values from the FBM or FBC input
points specified by IOM_ID, IOMIDR, and PNT_NO.
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.

Fieldbus Module Identifier is a configurable string that specifies the pathname of the ECB for the primary FBM or FBC to which the block is connected.
IOM_ID has the form CompoundName:BlockName, where CompoundName 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

3. AINR Redundant Analog Input Block

B0193AX Rev Z

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 whenever 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-character letterbug of the workstation and DEVNAME is the 1-6 character
logical device name of the Display Manager task.

LOCKRQ

Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation displays. 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 blocks
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 Z

90

3. AINR Redundant Analog Input Block

LOOPID

Loop Identifier is a configurable 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.

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-ofRange 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 blocks output.

MA

Manual/Auto is a boolean input that controls the blocks 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 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 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 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.

3. AINR Redundant Analog Input Block

B0193AX Rev Z

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 Detection 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
alarms 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-ofRange alarm messages to one of eight groups of alarm devices.

ORAO

Out-of-Range Alarm Option is a configurable boolean which, when configured 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 percent 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 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 blocks 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 Z

3. AINR Redundant Analog Input Block

period time lengths. (Integrator and Gateway blocks have different period
values than shown here.)
Period
0
1
2
3
4
5
6

Length
0.1 sec
0.5 sec*
1.0 sec
2.0 sec
10 sec
30 sec
1 min

Period
7
8
9
10
11
12
13

Length
10 min
60 min
0.2 sec
5.0 sec**
0.6 sec***
6.0 sec****
0.05 sec*****

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

92

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 Control Processor is 0.5 sec. Refer to the appropriate Integrated Control Software 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 status. 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 following conditions to be reflected as an Error status of PNT:
Bad status bit in both MEAS_P and MEAS_S

3. AINR Redundant Analog Input Block

B0193AX Rev Z

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 priority 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 Z

3. AINR Redundant Analog Input Block

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 connectable
output parameter. Available bits for this block are provided below.

Bit
Number1
30
29
28
25
24
22
17
16
14
13
11
10
7
5
4
3
2
1
0
1.
2.

RAWC

94

Definition
Alarms Unacknowledged
Alarms Inhibited
Out-of-Range Alarm
High-High Absolute Alarm
Low-Low Absolute Alarm
Bad Alarm2
High Absolute Alarm
Low Absolute Alarm
Bad Secondary FBM
Bad Primary FBM
Bad Secondary Point
Bad Primary Point
Primary Deviation
Manual
Low Limited
High Limited
Uncertain
Out-of-Service
Bad

Contents
ALMSTA.UNA
ALMSTA.INH
ALMSTA.OOR
ALMSTA.HHA
ALMSTA.LLA
ALMSTA.IOBD
ALMSTA.HMA
ALMSTA.LMA
BLKSTA.FBM2
BLKSTA.FBM1
BLKSTA.BAD2
BLKSTA.BAD1
BLKSTA.DEVN
BLKSTA.MA
PNT.LLO status
PNT.LHI status
PNT.ERR status
PNT.OOS status
PNT.BAD status

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

QALSTA

Boolean Connection
(B32 to B1)
QALSTA.B2
QALSTA.B3
QALSTA.B4
QALSTA.B7
QALSTA.B8
QALSTA.B10
QALSTA.B15
QALSTA.B16
QALSTA.B18
QALSTA.B19
QALSTA.B21
QALSTA.B22
QALSTA.B25
QALSTA.B27
QALSTA.B28
QALSTA.B29
QALSTA.B30
QALSTA.B31
QALSTA.B32

Bit 0 is the least significant bit (starting from the right).


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.

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.

3. AINR Redundant Analog Input Block

B0193AX Rev Z

RO1

Range Output 1 is a real array consisting of the three parameters HSCO1,


LSCO1, and DELTO1. The array members are configured by their individual 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 characterization and a predecessor to scaling, clamping, and filtering. (See
Appendix A Signal Conditioning Tables on page 117.)

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-ofService and the alternate point is not.

TYPE

When you enter AINR 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 notification 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 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
FBMs internal ninth channel (or the FBCs 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 indicate an unconditional request for initialization in an UPSTREAM parameter (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 connection, a High Out-of-Range (HOR) or Low Out-of-Range (LOR) condition 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 Z

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 Disconnected. This action is unaffected by the ZERROP option.

3.5 Functions
3.5.1 Detailed Diagram
IOM_ID
IOMIDR
PNT_NO
FROM
ECBs
MEAS_P
MEAS_S

SCI XREFOP
KSCALE
BSCALE
XREFIN
EXTBLK
IOMOPT
1
Signal
Scaling
Conditioning*
0,2
HSCO1 LSCO1

FLOP
FTIM

HSCO1
LSCO1
OSV

(M)
SELREQ
o MA

output
units

PNT
Point
o o
Select (A)

Filtering

Clamping

RAWC
Converted
OOR
Primary
OR

Raw Data
OOR
Test

LOR, HOR
OR

Secondary

Primary
ECB Status
BADOPT

Secondary AND

Channel
Status

MANALM

BLKSTA.BADR

BAD
Alarming
AND

OR

* See individual diagrams


Figure 3-2. AINR Block Operational Diagram

96

PNT.BAD
BLKSTA.BAD

AUTO
MANUAL

BAD

AND
BAO

3. AINR Redundant Analog Input Block

B0193AX Rev Z

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
HSCO1
OSV
LSCO1

SCI = 0-7, 9-10


Input Pri. = Raw Counts
Input Sec. = Raw Counts Linearization
HOR/LOR
3.5.2.1
hor, lor

KSCALE

BSCALE

Clamping
3.5.4

output
units

hor, lor

LASTGV
BAD
FLOP
FTIM

SELREQ

Filtering
3.5.5

Point
Selection

MA

(M)
o
PNT
o o
(A)
ABSOLUTE
Alarming
3.7
RAWC

Channel Status Pri.


FBM Status Pri.
BAD
Alarming
3.7

Channel Status Sec.

BAD

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 Identifier (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
FBM201
FBM204
FBM205
FBM211
FBM01
FBM04
FBM05
FBM06

ECB
ECB1
ECB2
ECB2
ECB1
ECB1
ECB2
ECB2
ECB4

Functional Description
8 Analog In
4 Analog In, 4 Analog Out
As FBM204, Redundant
16 Analog In
8 Analog In
4 Analog In, 4 Analog Out
As FBM04, Redundant
4 Pulse Rate In, 4 Analog Out

Electrical Type
0 to 20 mA
0 to 20 mA
0 to 20 mA
0 to 20 mA
0 to 20 mA
0 to 20 mA
0 to 20 mA
0 to 20 mA

Valid Points
Points 1 to 8
Points 1 to 8
Points 1 to 8
Points 1 to 16
Points 1 to 8
Points 1 to 8
Points 1 to 8
Points 5 to 8

97

B0193AX Rev Z

FBM
FBM17
FBM39
FBM44
FBM46
FBC21
FBC01
FBC17
FBC04

3. AINR Redundant Analog Input Block

ECB
ECB9,
33 to 36
ECB23
ECB23
ECB38R
ECB41
ECB41
ECB41
ECB43

Functional Description
4 Analog In, 2 Analog Out,
4 Digital In, 4 Digital Out
4 IFD In, 4 Analog Out
As FBM39, Dual Baud Rate
As FBM44, Redundant
16 Analog In
32 Analog In
32 Analog In
16 Analog Out

Electrical Type

Valid Points

0 to 10 V dc

Points 1 to 6

0 to 20 mA
0 to 20 mA
0 to 20 mA
0 to 20 mA
0 to 20 mA
0 to 10 V dc
0 to 20 mA

Points 5 to 8
Points 5 to 8
Points 5 to 8
Points 1 to 16
Points 1 to 32
Points 1 to 32
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:
FBM205:
FBM237:
FBM04:
FBM05:
FBM06:
FBM17:
FBM37
FBM39:
FBM44:
FBM46:
FBC04:

Points 5 to 8
Points 5 to 8
Points 1 to 8
Points 5 to 8
Points 5 to 8
Points 5 to 8
Points 5 to 6
Points 1 to 8
Points 5 to 8
Points 5 to 8
Points 5 to 8
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 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 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 Z

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:
SCI = 1:
SCI = 2:
SCI = 3:
SCI = 4:
SCI = 5:
SCI = 6:
SCI = 7:
SCI = 9:
SCI = 10:
SCI = 11
SCI = 12:
SCI = 13:
SCI = 14
SCI = 15
SCI = 50:
SCI = 51:
SCI = 52:
SCI = 53:
SCI = 54:
SCI = 55:
SCI = 56:
SCI = 57:
SCI = 58:
SCI = 59:

No linearization; output = input


Linear (0 64000). Analog Input 0 to 20 mA
Linear (1600 64000). Analog Input 0 to 10 V dc
Linear (12800 64000). Analog Input 4 to 20 mA
Square root (0 64000). Analog Input 0 to 20 mA
Square root (12800 64000), clamped. Analog Input 4 to 20 mA
Square root, low cutoff (0 64000), clamp < 3/4%. Analog Input 0 to 20 mA
Square root, low cutoff (12800 64000), clamp < 3/4%. Analog Input 4 to 20 mA
Linear, low cutoff (1600 64000). Analog Input 0 to 10 V dc
Linear, low cutoff (12800 64000). Analog Input 4 to 20 mA
Square root, Intelligent Transmitter 2 (0 to 64000)
Linear (14080 64000). Analog Input 2 to 10 V dc
Square root, low cutoff (14080 64000). Analog Input 2 to 10 V dc
Linear (0 to 16383)
Square root, low cutoff (1600 to 64000)
Linear (0 to 65535)
Linear (-32768 to 32767)
Linear (0 to 32767)
Linear (0 to 1000)
Linear (0 to 999)
Linear (0 to 2048)
Linear (409 to 2048)
Square Root (0 to 2048)
Square Root (409 to 2048)
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 Conditioning Tables on page 117.)
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 117. 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 Z

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 Conditioning Tables on page 117.
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 outof-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)

Input 1 = Raw Counts


Channel 9 for Input 1

XREFOP
XREFIN

Cold
Input 2 = Raw Counts
Junction
Channel 9 for Input 2
Compensation
External Block

SCI = 20-28
Linearization oC
3.5.2.2

KSCALE
(1.8)

o
X

hor, lor

hor, lor
Channel Status 1
FBM Status 1
Channel Status 2
FBM Status 2
Figure 3-4. Thermocouple Input Example

100

BSCALE
(32.0)
+

3. AINR Redundant Analog Input Block

B0193AX Rev Z

The following FBMs or FBCs and point numbers provide thermocouple inputs:
FBM
FBM202
FBM212
FBM02
FBC02
FBC02
Redundant
FBM36

ECB

Functional Description

Electrical Type

Valid Points

ECB1
ECB1
ECB1
ECB41
ECB41

8 Analog In
14 Analog In
8 Analog In
32 Analog In
32 Analog In, Redundant

mV
mV
mV
mV
mV

Points 1 to 8
Points 1 to 14
Points 1 to 8
Points 1 to 32
Points 1 to 32

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 temperature value must also be compensated for the thermocouples 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:
SCI = 21:
SCI = 23:
SCI = 24:
SCI = 25:
SCI = 26:
SCI = 27:
SCI = 28:

Type B Thermocouple
Type E Thermocouple
Type J Thermocouple
Type K Thermocouple
Type N Thermocouple
Type R Thermocouple
Type S Thermocouple
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 117. HSCO1 and LSCO1 are only used to
specify what portion of the range is to be used for display purposes.

101

B0193AX Rev Z

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 117.)
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 junction 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 indicates 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 117. 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 Z

3.5.2.3 RTD Input


INPUTS FROM TWO FBM03s (RTD Inputs)
SCI = 40-44
KSCALE

Input 1 = Raw Counts


Input 2 = Raw Counts

Linearization
3.5.2.3

BSCALE

oC

oF
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
FBM203
FBM213
FBM03
FBM33

ECB
ECB1
ECB1
ECB1
ECB1

Functional Description
8 Analog In
8 Analog In
8 Analog In
6 Analog In

Electrical Type
ohms
ohms
ohms
ohms

Valid Points
Points 1 to 8
Points 1 to 8
Points 1 to 8
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 accordingly 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:
SCI = 41:
SCI = 42:
SCI = 43:
SCI = 44:

Copper RTD (SAMA)


Nickel RTD (SAMA)
Platinum RTD (100 Ohm DIN 43760-1968)
Platinum RTD (100 Ohm IEC) (DIN 43760-1980)
Platinum RTD (100 Ohm SAMA)

103

B0193AX Rev Z

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 117.)
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-topeer connections.

3.5.2.4 Pulse Rate Input


INPUTS FROM TWO FBM06s (Pulse Rate Inputs)
MTRF
SCI = 8
Input 1 = 32 bit
Raw Count
Input 2 = 32 bit
Raw Count

Raw Count
to Hertz
3.5.2.4

Hertz to
Flow Rate
3.5.2.4

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
FBM206
FBM06

104

ECB
ECB4
ECB4

Functional Description
8 Pulse rate In
4 Pulse rate In, 4 Analog Out

Electrical Type
Frequency
Frequency

Valid Points
Points 1 to 8
Points 1 to 4

3. AINR Redundant Analog Input Block

B0193AX Rev Z

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 117.
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
FBM07
FBM12
FBM08
FBM13

ECB
ECB7
ECB7
-

Functional Description
16 Digital In/Pulse Count In
Expander for FBM07
16 Digital In/Pulse Count In
Expander for FBM08

Electrical Type
Contact/dc
Contact/dc
120 V ac
120 V ac

Valid Points
Points 1 to 16
Points 17 to 32
Points 1 to 16
Points 17 to 32

The selected pulse count input is 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.

105

B0193AX Rev Z

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
Input 1 = Engineering Units

KSCALE

BSCALE

Input 2 = Engineering Units

Output
Engineering
Units

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

FBM18
FBM43
FBM39

ECB12
ECB12
ECB23

FBM44

Functional Description

Electrical Type

Valid Points

8 IFD In
8 IFD In
4 IFD In, 4 Analog Out

IFD
Same, Dual Baud Rate
IFD, 0 to 20 mA

ECB23

4 IFD In, 4 Analog Out

Same, Dual Baud Rate

FBM46

ECB38R

4 IFD In, 4 Analog Out

FBM23
FBM38

ECB13
ECB22

24 Floating Point In
8 Floating Point In

Same, Dual Baud Rate,


Redundant
HTG
Coriolis

Points 1 to 24
Points 1 to 24
Points 1 to 4,
9 to 12, 17 to 20
Points 1 to 4,
9 to 12, 17 to 20
Points 1 to 4,
9 to 12, 17 to 20
Points 1 to 24
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 second 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 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 can be processed as
described in Section 3.5.2.1.

106

3. AINR Redundant Analog Input Block

B0193AX Rev Z

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 parent 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 secondary 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 Configurator/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 parameter 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) Transmitters 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 parent-child relationship (for example, ECB12 and ECB18) the parent and child need not be in the
same compound.

107

B0193AX Rev Z

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 convention (see ECB13 - Hydrostatic Tank Gauge).
If you set IOMOPT to 0, you can use any valid SCI value to condition the inputs, or use characterization as described in Section 3.5.2.1. If IOMOPT is set to 2, you cannot use signal conditioning 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 conditioned signal by application of the Gain Scale (KSCALE) and Offset Scale (BSCALE) parameters in accordance with the formula:
Scaled Value = (Conditioned Value * KSCALE) + BSCALE
Scaling allows the conditioned value to be made dimensionally compatible with the desired output units, as for example in conversion from Celsius to Fahrenheit scales in the case of temperature 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 117.)
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 Z

3.5.4 Clamping
Key Parameters: HSCO1, LSCO1, OSV, HOR, LOR, LASTGV
Clamping keeps the linearized and converted value within the blocks 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 Z

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 information.
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 document (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 Z

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 attenuates 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 Z

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 conditions:
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 condition, 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 following:
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
blocks 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.

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.
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 paragraph.
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
112

3. AINR Redundant Analog Input Block

B0193AX Rev Z

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 endpoints, 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 indicated 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-service 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.
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 previous cycle is used as the compensation.
When Bad status is true because the compensated thermocouple millivolt value is outside 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.
113

B0193AX Rev Z

3. AINR Redundant Analog Input Block

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.
LASTGV = 1
BADOPT = 2
SCI = 0
IOMOPT = 1

LASTGV = 0

osv (units)
HSCO1
Input

Input

Output

Output

LSCO1
osv (units)

osv (units)
HSCO1
HOR = 1

HOR = 1

Output is the last


good value read
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.
114

3. AINR Redundant Analog Input Block

B0193AX Rev Z

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 manuallyset value of PNT.

3.8 Alarming
The AINR block supports the Bad I/O, Out-of-Range, High/Low Absolute, and HighHigh/Low-Low Absolute alarm types. (Separate Bad I/O alarm messages are generated for the primary and secondary input sides.) 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 AINR block is as follows:
Table 3-2. Alarm Nomenclature
Type

Group

Text

Deadband

BAP

BAG

BAT

-----

IOBAD

BAD

ORAP

ORAG

ORAT

-----

RANGE

HOR/LOR

HLPR

HLGP

HAT

HLDB

HIABS

HAI

LAL

HLPR

HLGP

LAT

HLDB

LOABS

LAI

HHAOPT
= 1 or 2

HHALIM

HHAPRI

HHAGRP

HHATXT

HLDB

HHABS

HHAIND

HHAOPT
= 1 or 3

LLALIM

HHAPRI

HHAGRP

LLATXT

HLDB

LLABS

LLAIND

Option

Limit

I/O Bad

BAO = True

----

Out-of-Range

ORAO =
True

----

High Absolute

HLOP =
1 or 2

HAL

Low Absolute

HLOP =
1 or 3

High-High
Absolute
Low-Low
Absolute

Priority

Default
Display

Indicator
Parameter

115

B0193AX Rev Z

3. AINR Redundant Analog Input Block

3.9 Application Diagram


ECB1
ECB1
PNT_NO
AIN
PNT
MEAS
PID
OUT

FBM203
or
FBM03
HE0101

FBM203
or
FBM03
HE0102

MEAS
IOM_ID = HE0101
IOMIDR = HE0102
PNT_NO = 4
SCI = 42
KSCALE = 1.8
BSCALE = 32.0
LSCO1 = 50.0
HSCO1 = 210.0
EO1 = Deg F.
HLOP = 2
Steam
HHAOPT = 2
HAL = 190.0
HHALIM = 200.0

AOUT
OUT
TT

HEAT
EXCHANGER

Figure 3-12. Typical AINR Block Application

116

TT

Heated Water
Cold Water

3. AINR Redundant Analog Input Block

B0193AX Rev Z

3.10 Appendix A Signal Conditioning Tables


3.10.1 Summary
SCI = 0:
SCI = 1:
SCI = 2:
SCI = 3:
SCI = 4:
SCI = 5:
SCI = 6:
SCI = 7:
SCI = 8:
SCI = 9:
SCI = 10:
SCI = 11
SCI = 12:
SCI = 13:
SCI = 14
SCI = 15
SCI = 20:
SCI = 21:
SCI = 22
SCI = 23:
SCI = 24:
SCI = 25:
SCI = 26:
SCI = 27:
SCI = 28:
SCI = 40:
SCI = 41:
SCI = 42:
SCI = 43:
SCI = 44:
SCI = 50:
SCI = 51:
SCI = 52:
SCI = 53:
SCI = 54:
SCI = 55:

No linearization; output = input


Linear (0 to 64000) (0 to 100%)
Linear (1600 to 64000) (0 to 100%, Elevated Zero)
Linear (12800 to 64000) (20 to 100%)
Square root (0 to 64000) (0 to 100%)
Square root (12800 to 64000), clamped (20 to 100%)
Square root, low cutoff (0 to 64000), clamp < 3/4% (0 to 100%)
Square root, low cutoff (12800 to 64000), clamp < 3/4% (20 to 100%)
Pulse rate
Linear, low cutoff (1600 to 64000) (0 to 100%, Elevated Zero)
Linear, low cutoff (12800 to 64000)(20 to 100%)
Square root, Intelligent Transmitter 2 (0 to 64000)
Linear (14080 to 64000)(20 to 100%, Elevated Zero)
Square root, low cutoff (14080 to 64000),(20 to 100%, Elevated Zero)
Linear (0 to 16383)
Square root, low cutoff (1600 to 64000)
Type B Thermocouple
Type E Thermocouple
Reserved for future use
Type J Thermocouple
Type K Thermocouple
Type N Thermocouple
Type R Thermocouple
Type S Thermocouple
Type T Thermocouple
Copper RTD (SAMA)
Nickel RTD (SAMA)
Platinum RTD (100 Ohm DIN 43760-1968)
Platinum RTD (100 Ohm IEC) (DIN 43760-1980)
Platinum RTD (100 Ohm SAMA)
Linear (0 to 65535)
Linear (-32768 to 32767)
Linear (0 to 32767)
Linear (0 to 1000)
Linear (0 to 999)
Linear (0 to 2048)
117

B0193AX Rev Z

SCI = 56:
SCI = 57:
SCI = 58:
SCI = 59:

3. AINR Redundant Analog Input Block

Linear (409 to 2048)


Square Root (0 to 2048)
Square Root (409 to 2048)
Linear (0 to 4095)

3.10.2 Linear/Square Root Signal Conditioning


SCI = 0:
SCI = 1:

SCI = 2:

SCI = 3:

SCI = 4:

SCI = 5:

SCI = 6:

SCI = 7:

SCI = 8:

118

No Linearization
Conditioned = Raw
Linear (0 to 64000)
Analog Input 0 to 20 mA
Conditioned = (Raw * (HSCO1 - LSCO1)/64000) + LSCO1
Linear (1600 to 64000)
Analog Input 0 to 10 V dc
Conditioned = ((Raw - 1600) * (HSCO1 - LSCO1)/62400) + LSCO1
Linear (12800 to 64000)
Analog Input 4 to 20 mA
Conditioned = ((Raw - 12800) * (HSCO1 - LSCO1)/51200) + LSCO1
Square Root (0 to 64000)
Analog Input 0 to 20 mA
Conditioned = (Sqrt(64000 * Raw) * (HSCO1 - LSCO1)/64000) + LSCO1
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
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
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
Pulse Rate
Conditioned = Raw * MTRF * Pulse Constant
(Where Pulse Constant = 25000.0/(65535.0 * 65535.0) = 0.582094373 E - 05 =
0.00000582094373)

3. AINR Redundant Analog Input Block

SCI = 9:

SCI = 10:

SCI = 11:

SCI = 12:

SCI = 13:

SCI = 14:

SCI = 15:

SCI = 50:
SCI = 51:
SCI = 52:
SCI = 53:
SCI = 54:
SCI = 55:
SCI = 56:
SCI = 57:
SCI = 58:
SCI = 59:

B0193AX Rev Z

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
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
Square Root, Intelligent Transmitter 2 (0 to 64000)
Analog Input
Conditioned = Sqrt(Raw)
Linear (14080 to 64000)
Analog Input 2 to 10 V dc
Conditioned = ((Raw - 14080) * (HSCO1 - LSCO1)/49920) + LSCO1
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
Linear (0 to 16383)
Analog Input 0 to 20 mA
Conditioned = (Raw * (HSCO1 - LSCO1)/16383) + LSCO1
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
Linear (0 to 65535)
y = (HSCI1-LSCI1)/65535 * x + LSCI1
Linear (-32768 to 32767) y = (HSCI1-LSCI1)/65535 * (x + 32768) + LSCI1
Linear (0 to 32767)
y = (HSCI1-LSCI1)/32767 * x + LSCI1
Linear (0 to 1000)
y = (HSCI1-LSCI1)/1000 * x + LSCI1
Linear (0 to 999)
y = (HSCI1-LSCI1)/999 * x + LSCI1
Linear (0 to 2048)
y = (HSCI1-LSCI1)/2048 * x + LSCI1
Linear (409 to 2048)
y = (HSCI1-LSCI1)/1639 * (x 409) + LSCI1
Square Root (0 to 2048) y = sqrt (2048 * x) * (HSCI1-LSCI1)/2048 + LSCI1
Square Root (409 to 2048) y = sqrt (1639 * (x - 409))* (HSCI1-LSCI1)/1639 + LSCI1
Linear (0 to 4095)
y = (HSCI1-LSCI1)/4095 * x + LSCI1

119

B0193AX Rev Z

3. AINR Redundant Analog Input Block

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
20
21
23
24
25
26
27
28

Type

Material

Type B
Type E
Type J
Type K
Type N
Type R
Type S
Type T

Range

Platinum-Platinum
Chromel-Constantan
Iron-Constantan
Chromel-Alumel
Nicrosil-Nisil
Platinum-Platinum
Platinum-Platinum
Copper-Constantan

Curve

0 to 1820 C
-270 to 910 C
-210 to 1200 C
-270 to 1372 C
-270 to 1300 C
-50 to 1768 C
-50 to 1768 C
-270 to 400 C

P331-0/68 (TI 5-189a)


S303-0/68 (TI 5-17c)
S99J-0/68 (TI 5-12f )
K223-0/68 (TI 5-13c)
IPTS-68 (TI 5-19)
P329-0/68 (TI 5-14d)
P307-0/68 (TI 5-15e)
S233-0/68 (TI 5-11c)

3.10.4 RTD Signal Conditioning


SCI
40
41
42
43
44

Type

Material

Copper (SAMA)
Nickel (SAMA)
Platinum (100 Ohm
DIN 43760-1968)
Platinum (100 Ohm
IEC DIN 43760-1980)
Platinum (100 Ohm
SAMA)

Range

Curve

Copper
Nickel
Platinum

-70 to 150 C CR229 (TI 5-25a)


-100 to 160 C NR-227 (SAMA) (TI 5-24a)
0 to 620 C
PR-238 (TI 5-26a)

Platinum

-200 to 620 C Foxboro Dwg. 10104MU


(TI 005-028)
-200 to 600 C PR-279 (SAMA) (TI 5-27a)

Platinum

3.11 Appendix B Valid Input Connections

202

203

204

205

206

207

211

212

213

217

237

241

242

Hardware
Type

201

3.11.1 FBM201 through FBM242 Valid Input Connections

I
I
I
I

I
I
I
I

I
I
I
I

I
I
I
I

I
I
I
I

I
I
I
I

I
I
I
I

I
I
I
I

I
I
I
I

I
I
I
I

I
I
I
I

O
O
O
O

I
I
I
I

O
O
O
O

Point
1
2
3
4

120

202

203

204

205

206

207

211

212

213

217

237

241

242

Hardware
Type

B0193AX Rev Z

201

3. AINR Redundant Analog Input Block

I
I
I
I

I
I
I
I
C

I
I
I
I

O
O
O
O

O
O
O
O

I
I
I
I

I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
I
I
C

I
I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

O
O
O
O

I
I
I
I
O
O
O
O
O
O
O
O

O
O
O
O
O
O
O
O
O
O
O
O

Point
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Legend:

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

121

B0193AX Rev Z

3. AINR Redundant Analog Input Block

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

I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I

I
O

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
C

O
O
O
O
O
O
O
O

I
I
I
I
I
I
I
I

I
I
I
I
O
O
O
O

I
I
I
I
I
I
I
I

I
I
I
I
O
O
O
O

I
I
I
I
O
O
O
O

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

122

I
I
I
I
I
I
I
I
C

I
I
I
I
I
I
I
I

I
I
I
I
O
O
O
O

I
I
I
I
O
O
O
O

I
I
I
I
O
O
O
O

I
I
I
I
O
O

3. AINR Redundant Analog Input Block

Legend:

B0193AX Rev Z

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
123

B0193AX Rev Z

3. AINR Redundant Analog Input Block

Hardware
Type

57

58

59

61

63

95

Point
32
33
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.

124

I
C

I
C

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
Priority 2 Input
Priority 3 Input
Priority 4 Input
Priority 5 Input

Manual

Auto

Priority Output
Block Status

Figure 4-1. ALMPRI Block I/O Diagram

4.2 Features

Manual/Auto mode for disconnecting control schemes from the process, for simulation and checkout purposes.

4.3 Parameters
Table 4-1. ALMPRI Block Parameters
Name

Description

Type

Accessibility

Default

Units/Range

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

0 to 13

PHASE

block phase number integer

no-con/no-set

---

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 to 1

MA

manual/auto

boolean

con/set

0 to 1

INITMA

initialize MA

short

no-con/no-set

[0|1|2]

Configurable Parameters
INPUTS
NAME

125

B0193AX Rev Z

4. ALMPRI Alarm Priority Change Block

Table 4-1. ALMPRI Block Parameters (Continued)


Name

Description

Type

Accessibility

Default

Units/Range

BLKSTA

block status

pack_l

con/no-set

bit map

PRIOUT

priority output

integer

con/no-set

[0..5]

OUTPUTS

Non-Configurable Parameters
DATA STORES
ACHNGE

alternate change

integer

con/no-set

-32768 to 32767

DEFINE

no configuration
errors

boolean

no-con/no-set

0-1

ERCODE

configuration error

string

no-con/no-set

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 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 blocks operational states. For the ALMPRI block, only the following bits are used:

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

B24

B23

B22

B21

MA

B20

B19

B17

UDEF B18

B16

ON

B15

B14

B13

B11

WLCK B12

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Bit
Number*
(0 to 31)

Name

Description When True

Boolean
Connection
(B32 to B1)

11
14
15
20

MA
UDEF
ON
WLCK

Manual(= false)/Auto(= true)


Undefined
Compound On
Workstation Lock

BLKSTA.B21
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12

* Bit 0 is the least significant bit (starting from the right).


DEFINE

126

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

4. ALMPRI Alarm Priority Change Block

B0193AX Rev Z

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


blocks function (for example, PLT 3 FURNACE 2 HEATER CONTROL).

ERCODE

Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the blocks
DEFINE parameter to be set false, but not the warning situations. Validation of configuration errors does not proceed past the first error encountered 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 following list specifies the possible values of ERCODE, and the significance of
each value in this block:
Message

Value

W43 INVALID PERIOD/


PHASE COMBINATION

PHASE does not exist for given block


PERIOD, or block PERIOD not compatible with compound PERIOD.
The source parameter specified in the
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.
The configured value of a block option
is illegal.
A parameter value is not in the acceptable range.

W46 INVALID INPUT


CONNECTION

W48 INVALID BLOCK


OPTION
W53 INVALID
PARAMETER VALUE
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.

127

B0193AX Rev Z

128

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-character 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 displays. 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 blocks
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 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.

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 specific algorithm. In Manual, 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 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 blocks 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.)

4. ALMPRI Alarm Priority Change Block

Period
0
1
2
3
4
5
6

B0193AX Rev Z

Length
0.1 sec
0.5 sec*
1.0 sec
2.0 sec
10 sec
30 sec
1 min

Period
7
8
9
10
11
12
13

Length
10 min
60 min
0.2 sec
5.0 sec**
0.6 sec***
6.0 sec****
0.05 sec*****

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

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

PRIOUT

Priority Output has an integer value between 0 and 5. Integers 1 to 5 represent alarm priority levels. An output of 0 indicates that no priority level
input lines are true (that is, the absence of alarms). Connecting this output 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.

129

B0193AX Rev Z

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 priority 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 signals, and options represented by toggle switches.
MA
PR_IN1
PR_IN2
PR_IN3
PR_IN4
PR_IN5

Manual

Auto

PRIOUT
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 priority, 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
130

4. ALMPRI Alarm Priority Change Block

B0193AX Rev Z

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
moderate criticality when stable,
primary importance in emergency

Default = 0
Emergency = 1

Block with
varying criticality

ALMPRI Block
External Block

Example
Block
Or Event

PR_IN1 = x
PR_IN2 = 0
PR_IN3 = 0
PR_IN4 = 1
PR_IN5 = 0

PRIOUT = (1 or 4)

Activated when an
emergency is detected

Control Block

Alarm Priority Input


Figure 4-3. Example ALMPRI Block Connections

To automatically upgrade its priority level, connect the PR_IN1 input line to a block that is activated 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 emergency 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.

131

B0193AX Rev Z

132

4. ALMPRI Alarm Priority Change Block

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 single analog value directed to any Fieldbus Module (FBM) or Fieldbus Card (FBC) 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.

Supervisory
Enable

Measurement
Scalar
&
Bias

Balance
Time

Low Output Limit


High Output Limit

Back
Calculation

Measurement
Supervisory
Input

Input
Selection

Scaling

Reset
Balancing

Clamping

Out

Signal
Conditioning

Fieldbus
Output
ECB
Failsafe

FBM and
Channel
Status

Failsafe
Processing

BAD
Detection

Back
Calculated
Outputs

Raw
Count
Output
to
FBM/FBC
Failsafe

Bad
Alarm

Alarming

Bad Alarm
Option

Signal
FBM
AirConditioning toOption
Output
Close

Figure 5-1. AOUT Block Diagram

133

B0193AX Rev Z

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 initialized on transition from a last good value condition of MEAS or BIAS, or closure of the cascade. 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 specified 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 simulation 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.

134

5. AOUT Analog Output Block

B0193AX Rev Z

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 initialize 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

0 to 13

PHASE

block execute phase

integer

no-con/no-set

---

LOOPID

loop identifier

string

no-con/set

blank

1 to 32 chars

IOMOPT

FBM output option

short

no-con/no-set

0 to 2

IOM_ID

FBM identifier

string

no-con/no-set

blank

---

PNT_NO

FBM point number

string

no-con/no-set

1 to 32 chars

SCO

signal cond.index

short

no-con/no-set

0-5,12-15, 50-56, 59

ATC

air-to-close

boolean

no-con/no-set

0 to 1

PROPT

propagate error opt

boolean

no-con/no-set

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

135

B0193AX Rev Z

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 to 2

BTRKOP

bias tracking option

boolean

no-con/no-set

0 to 1

MA

manual/auto

boolean

con/set

0 to 1

INITMA

initialize MA

short

no-con/no-set

0 to 2

AUTSW

auto switch

boolean

con/set

0 to 1

MANSW

manual switch

boolean

con/set

0 to 1

MANFS

manual if failsafe

boolean

no-con/no-set

0 to 1

MBADOP

manual if bad option

boolean

no-con/no-set

0 to 1

MCLOPT

manual clamp option

boolean

no-con/no-set

0 to 1

PRIBLK

primary block

boolean

no-con/no-set

0 to 1

PRITIM

primary cascade timer

real

no-con/no-set

0.0

seconds

INHOPT

inhibit option

short

no-con/no-set

0 to 3

INHIB

alarm inhibit

boolean

con/set

0 to 1

BTIME

balance time

real

con/set

0.0

minutes

BAO

bad alarm option

boolean

no-con/no-set

0 to 2

BAT

bad alarm text

string

no-con/no-set

blank

1 to 32 chars

BAP

bad alarm priority

integer

con/set

1 to 5

BAG

bad alarm group

short

no-con/set

1 to 8

FLBOPT

fallback option

short

no-con/no-set

0 to 2

INITSE

initial SE

short

no-con/no-set

0 to 2

SE

supervisory enable

boolean

no-con/set

0 to 1

SUPOPT

supervisory option

short

no-con/no-set

0, 1, 3

SUPGRP

supervisory group

short

no-con/no-set

1 to 8

AMRTIN

alarm regeneration timer

integer

no-con/no-set

0 to 32767 s

Non-Configurable Parameters
OUTPUTS
ALMSTA

alarm status

pack_l

con/no-set

bit map

BAD

bad I/O status

boolean

con/set

0 to 1

BCALCO

back calc output

real

con/no-set

0.0

RI1

BLKSTA

block status

pack_l

con/no-set

bit map

CRIT

criticality

integer

con/no-set

0 to 5

FLBREQ

fallback request

short

con/no-set

0 to 2

FS

failsafe state

boolean

con/no-set

0 to 1

HOLIND

high output limit indicator

boolean

con/set

0 to 1

INHSTA

inhibit status

pack_l

con/no-set

bit map

INITO

initialize out

short

con/no-set

---

LOLIND

low ouput limit indicator

boolean

con/set

0 to 1

OUT

output

real

con/set

0.0

RO1

PRTYPE

priority type

integer

con/no-set

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

RI1

UNACK

unacknowledge alarm

boolean

con/set

0 to 1

alternate change

integer

con/no-set

-32768 to 32767

DATA STORES
ACHNGE

136

5. AOUT Analog Output Block

B0193AX Rev Z

Table 5-1. AOUT Block Parameters (Continued)


Name

Description

Type

Accessibility

Default

Units/Range

ALMOPT

alarm options

pack_l

no-con/no-set

0 to FFFFFFFF

DEFINE

no config errors

boolean

no-con/no-set

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

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

Bit Number*
(0 to 31)
0 (Least
Significant)
1
7
22

Configured Alarm Option


When True

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

8
B24

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Boolean Connection
(B32 to B1)

Alarm Group 8 in Use

ALMOPT.B32

Alarm Group 7 in Use


Alarm Group 1 in Use
Bad I/O Alarm Configured

ALMOPT.B31
ALMOPT.B25
ALMOPT.B10

* Bit 0 is the least significant bit (starting from the right).


There are no names for the individual bits of ALMOPT.

137

B0193AX Rev Z

5. AOUT Analog Output Block

Alarm Status is a 32-bit output, bit-mapped to indicate the blocks alarm


states. For the AOUT block, only the unshaded bits in this diagram are
used:

Name

0 to 4
(Least Significant)
5 to 7

PTYP_MSK

22
30

BAD
UNAK

CRIT_MSK

Description When True

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

Bit
Number*
(0 to 31)

CRIT

BAD

B8

B7

B6

B5

B4

B3

B1

UNAK B2

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

ALMSTA

PRTYPE

Boolean
Connection
(B32 to B1)

Priority Type: See param- --eter PRTYPE for values


used in the AOUT block
Criticality; 5 = lowest
--priority, 1= highest
Bad I/O Alarm
ALMSTA.B10
Unacknowledged
ALMSTA.B2

* Bit 0 is the least significant bit (starting from the right).

138

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

ATC

Air-to-Close is a configurable option that inverts the sense of the conversion 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.

5. AOUT Analog Output Block

BAO

B0193AX Rev Z

Bad Alarm Option is a configurable option that enables alarm generation


for each state change of the BAD parameter. The parameter values are:
0=
1=

No generation of Bad alarms.


Bad alarm generation if the FBM or FBC has
Bad status.
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 AOUT block.

2=

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 conditions 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 independently, 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 operational states. For the AOUT block, only the unshaded bits in this diagram are used:

0
B32

B30

1
BADR B31

DEV

3
B29

4
B28

5
B27

6
B26

7
B25

B24

FBM

B22

B21
MA

FBMR B23

B20
BAD

B19

B17

UDEF B18

ON

B16

B15

B14

B13

WLCK B12

B11

B10

B9

B8

B6
MAO

B7

B5
LOL

FS

B4
HOL

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

139

B0193AX Rev Z

5. AOUT Analog Output Block

Bit
Number**
(0 to 31)

Name

Description When True

6
7
8
11
12
14
15
20
24

TRK
HLD
FBM
MA
BAD
UDEF
ON
WLCK
FS

26

MAO

27

LOL

28

HOL

29
30
31

SE
SC
FLB

Local Panel in Use


Auto/Hold State
FBM or FBC Failure
Manual = 0, Auto = 1
Bad I/O
Block Undefined
Block ON
Access Locked
Output in Failsafe or Awaiting Cascade Closure after
Transition
Manual/Auto Override
Active
Output Clamped at Low
Limit
Output Clamped at High
Limit
Supervisory Control Enabled
Supervisory Cascade Closed
Block in Supervisory Fallback

Boolean
Connection
(B32 to B1)
BLKSTA.B26
BLKSTA.B25
BLKSTA.B24
BLKSTA.B21
BLKSTA.B20
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12
BLKSTA.B8

BLKSTA.B6
BLKSTA.B5
BLKSTA.B4
BLKSTA.B3
BLKSTA.B2
BLKSTA.B1

* Bit 0 is the least significant bit (starting from the right).

140

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 calculated by the algorithm, when the block output changes its mode of control.

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 configuration errors. The default is 1 (no configuration errors). When the block initializes, DEFINE is set to 0 if any configured parameters fail validation
testing, other than those involved in duplicate output channel detection.

5. AOUT Analog Output Block

B0193AX Rev Z

(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.
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 blocks compound, change deltas have no
effect.

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 blocks compound, change deltas have no
effect.

DELTO1

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

DESCRP

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


the blocks function (for example, PLT 3 FURNACE 2 HEATER CONTROL).

DEV_ID

Device Identifier is a character array data store that indicates the 6-character letterbug of the connected FBM or FBC.

EI1

Engineering Units for Input Range 1 provides the engineering units text
for the values of MEAS, BCALCO, and SUPBCO. The value configured
for this text string should be consistent with the values used for HSCI1
and LSCI1. Deg F and pH are typical entries.

EI2

Engineering Units for Input Range 2 provides the engineering units text
for the value of BIAS. The value configured for this text string should be
consistent with the values used for HSCI2 and LSCI2. Deg F and pH
are typical entries.

EO1

Engineering Units for Output Range 1 provides the engineering units text
for the values of OUT, HOLIM, and LOLIM. The value configured for
this text string should be consistent with the values used for HSCO1 and
LSCO1. Deg F and pH are typical entries.

141

B0193AX Rev Z

ERCODE

5. AOUT Analog Output Block

Error Code is a string data store which indicates the type of configuration
error or warning which caused the blocks DEFINE 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 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 significance of each value in this block:
ERCODE
W44
W48

W50
W51
W52
W54
W59

HSCO1 less than or equal to LSCO1.


SUPOPT or FLBOPT out of range.
-orPRITIM = zero is not allowed (occurs when
PRIBLK = 1).
Invalid SCO.
The connected FBM or FBC is not a type containing
analog output points.
PNT_NO out of range for the specified FBM or FBC.
Specified IOM_ID does not exist.
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=
1=
2=

FS

142

Description

Fallback not requested.


Fallback requested; recovery at block or group level.
(See Section 5.5.9.)
Fallback requested; recovery only at block level.
(See Section 5.5.9.)

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 cascade has closed.

5. AOUT Analog Output Block

B0193AX Rev Z

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 153).
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 blocks 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=
1=

2=

3=

When an alarm is inhibited, disable alarm messages but do


not disable alarm detection.
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.
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.
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.

143

B0193AX Rev Z

5. AOUT Analog Output Block

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:

Bit
Number*
(0 to 31)
22
*

144

Name
BAD

Description When True


Bad I/O Alarm Inhibited

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B9

BAD B10

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

INHSTA

Boolean
Connection
(B32 to B1)
INHSTA.B10

Bit 0 is the least significant bit (starting from the right).

INITMA

Initialize Manual/Auto specifies the desired state of the MA input during


initialization, where:
0 = Manual
1 = Auto
2 = The MA state as specified in the checkpoint file.
The block asserts this initial M/A state whenever 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:

5. AOUT Analog Output Block

B0193AX Rev Z

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 connection to the block exists. Values are:
0=

1=

2=

The block does not transmit the OUT value to an FBM or


FBC point. The value in OUT is conditioned as specified by
SCO.
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.
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 pathname of the FBM or FBC to which the block is connected.
IOM_ID has the form CompoundName:BlockName, where CompoundName 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-character 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 accompanying the SETVAL command is entered into the LOCKID of the block.
Thereafter, set requests to any of the blocks 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.

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
145

B0193AX Rev Z

5. AOUT Analog Output Block

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

146

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 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 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 blocks output.

MA

Manual/Auto is a boolean input that controls the blocks 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 overrides it if both parameters are true. MANSW also overrides any connections to MA.

MBADOP

Manual if Bad Option is a manual override feature which, when true,


causes the block to go into Manual mode if MEAS or BIAS has Bad status,
or the FBM or FBC is Bad. See Section 5.7 for the relationship between
MBADOP and AUTSW/MANSW.

MCLOPT

Manual Clamping Option, when true, causes the value of OUT as set in
Manual mode to be clamped by 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

5. AOUT Analog Output Block

B0193AX Rev Z

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 output from the head of the block. It is a datastore which is only used internally.

OSV

Output Span Variance is a configurable real input which defines the percentage 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 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 blocks 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.)

147

B0193AX Rev Z

5. AOUT Analog Output Block

Period
0
1
2
3
4
5
6

Length
0.1 sec
0.5 sec*
1.0 sec
2.0 sec
10 sec
30 sec
1 min

Period
7
8
9
10
11
12
13

Length
10 min
60 min
0.2 sec
5.0 sec**
0.6 sec***
6.0 sec****
0.05 sec*****

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

148

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 Control Processor is 0.5 sec. Refer to the appropriate Integrated Control Software 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 otherwise. When true, PRIBLK enables bumpless initialization of the primary 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.

5. AOUT Analog Output Block

B0193AX Rev Z

Refer to PRIBLK and PRITIM Functionality on page 163 for more


information on this parameter.
PRITIM

Primary Cascade Timer is a configurable parameter used to delay the closing 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 163 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

INIT_U

2
3

PRI_OPN
INIT_C

4
5
6
7

PRI_CLS
SUP_INIT
SUP_OPN
SUP_CLS

Description
Unconditional initialization of the primary
cascade is in progress.
The primary cascade is open.
Conditional initialization of the primary cascade is in progress.
The primary cascade is closed.
The supervisory cascade is initializing.
The supervisory cascade is open.
The supervisory cascade is closed.

PRTYPE

Priority Type is an indexed output that indicates the alarm type of the
highest priority active alarm. The PRTYPE output of this block consists
of the following possible values:
0 = No active alarm
8 = Bad

RAWC

Raw Count is the value of the selected input source after any necessary
scaling, balancing, clamping, and conditioning are applied. If IOMOPT =
1, the value of RAWC is transferred to the FBM or FBC, provided the
ECB indicates normal status.

RI1

Range Input 1 is a real array consisting of the three parameters HSCI1,


LSCI1, and DELTI1. The array members are configured by their individual names; however, RI1 and its members can, optionally, be accessed on
an array basis by user tasks and displays.
149

B0193AX Rev Z

5. AOUT Analog Output Block

RI2

Range Input 2 is a real array consisting of the three parameters HSCI2,


LSCI2, and DELTI2. The array members are configured by their individual 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 configured 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 application sets its output to the BCALCO value, bumpless initialization of the
supervisory cascade is assured. SUPBCO also contains the following status
bits:
Status
Bit 10 = 1
Bit 13 = 1
Bit 14 = 1
Bit 13 = 1 and Bit 14 =1

Meaning
Initialize SUP_IN
SUP_IN is limited high
SUP_IN is limited low
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 application:
0 = No Supervisory control (default)
1 = Set Point Control (SPC) of the blocks measurement (Supervisory setpoint control (SSC))
3 = SPC, with an implicit acknowledge by the CP

150

5. AOUT Analog Output Block

B0193AX Rev Z

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 functions.
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 application. 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 identifying integer is created specifying this block type.

UNACK

Unacknowledge is a boolean output which is set true, for notification purposes, whenever the block goes into alarm on either the primary or secondary 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 normally via an operator Acknowledge pick on a default display, user display,
or Current Alarms Display, or via a user task.

151

B0193AX Rev Z

5. AOUT Analog Output Block

5.5 Functions
5.5.1 Detailed Diagram
(M)
MSCALE

MEAS

OUT

BTIME LOLIM HOLIM


O MA

SUP_IN
Last Good Value

SCALING

BALANCING

O
(A)

CLAMPING

Back Calculated Input


Bias
Selection

OUT

Back
Calculation

OUT

BCALCO
SUPBCO

HSCO1 LSCO1 SCO


OUT

SIGNAL
CONDITIONING

IOMOPT = 0,1

RAWC

AND

IOMOPT = 1

SUPOPT
SE
BLKSTA.SC

O USE SUP_IN

AND

Failsafe
Transition Cycle

FS
BLKSTA.FS

AND

AND

MANFS
MEAS.BAD
MEAS.OOS
MEAS.Disconnect

MEROPT=1

Manual
FS

MEAS.ACK

OR

PROPT
Auto
MEAS.BAD
MEAS.OOS
MEAS.Disconnect
MEAS.ERROR

To
ECB

AND
BLKSTA.FS

AND
MEROPT= 2

OR

USE LAST
O GOOD VALUE

AND

OR

AND
Initialization Cycle

FBM/FBC BAD
FBC Point BAD

USE BACK
Back
O CALCULATED
Calculation
INPUT

OR

BAD
BLKSTA.BAD
OUT.BAD
BCALCO.BAD
OUT.SECURE

FBM/FBC OOS

Figure 5-2. AOUT Block Operational Diagram

152

OUT.OOS
BCALCO.OOS
OUT.SECURE

5. AOUT Analog Output Block

B0193AX Rev Z

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 processing 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 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 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 following rule:
BIAS = OUT - (MEAS used this cycle * MSCALE)

153

B0193AX Rev Z

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 connected, and that signal conditioning is not applied to the input.)
The ECB named in Fieldbus Module Identifier (IOM_ID) is searched for in the database. 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 analog 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.

154

IOM_ID is modified.

5. AOUT Analog Output Block

B0193AX Rev Z

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 compound 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 numbers providing valid output destinations for the AOUT block
Table 5-2. AOUT Block Destinations

FBM
FBM204
FBM205
FBM237
FBM04
FBM05
FBM06
FBM17
FBM37
FBM39
FBM44
FBM46
246
FBC04
FBC04
Redundant

ECB
ECB2
ECB2
ECB53
ECB2
ECB2
ECB4
ECB9,
34, 36
ECB53
ECB23
ECB23
ECB38R
ECB43
ECB43

Functional Description
4 Analog In, 4 Analog Out
4 Analog In, 4 Analog Out, Redundant
8 Analog Out
4 Analog In, 4 Analog Out
4 Analog In, 4 Analog Out, Redundant
4 Pulse Rate In, 4 Analog Out
4 Analog In, 2 Analog Out
4 Digital In, 4 Digital Out
8 Analog Out
4 IFD In, 4 Analog Out
4 IFD In, 4 Analog Out, Dual Baud
Rate, Redundant Output
4 IFD In, 4 Analog Out, Dual Baud
Rate, Redundant Input/Output
16 Analog Out
16 Analog Out, Redundant

Valid Output Points


5 to 8
5 to 8
1 to 8
5 to 8
5 to 8
5 to 8
5 to 6
1 to 8
5 to 8
5 to 8
5 to 8
1 to 16
1 to 16

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

155

B0193AX Rev Z

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 independently of the action of MSCALE.)

156

5. AOUT Analog Output Block

B0193AX Rev Z

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

157

B0193AX Rev Z

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 output 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

158

5. AOUT Analog Output Block

B0193AX Rev Z

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 conditioning 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:
SCO = 1:

SCO = 2:

SCO = 3:

SCO = 4:

SCO = 5:

No Conditioning
RAWC = OUT
Inverse Linear (0 to 64000)
Analog Output 0 to 20 mA
RAWC = (OUT - LSCO1) * 64000/(HSCO1 - LSCO1)
Inverse Linear (1600 to 64000)
Analog Output 0 to 10 V dc
RAWC = ((OUT - LSCO1) * 62400/(HSCO1 - LSCO1)) + 1600
Inverse Linear (12800 to 64000)
Analog Output 4 to 20 mA
RAWC = ((OUT - LSCO1) * 51200/(HSCO1 - LSCO1)) + 12800
Inverse Square Root (0 to 64000)
Analog Output 0 to 20 mA
RAWC = ((OUT - LSCO1) * 64000/(HSCO1 - LSCO1))2 / 64000
Inverse Square Root (12800 to 64000)
Analog Output 4 to 20 mA
RAWC = ((OUT - LSCO1) * 51200/(HSCO1 - LSCO1))2 / 51200 + 12800

159

B0193AX Rev Z

SCO = 12:

SCO = 13:

SCO = 14:
SCO = 15:

SCO = 50:
SCO = 51:
SCO = 52:
SCO = 53:
SCO = 54:
SCO = 55:
SCO = 56:
SCO = 59:

5. AOUT Analog Output Block

Inverse Linear (14080 to 64000)


Analog Output 2 to 10 V dc
RAWC = ((OUT - LSCO1) * 49920/ (HSCO1 - LSCO1)) + 14080
Inverse Square Root (14080 to 64000)
Analog Output 2 to 10 V dc
RAWC = ((OUT - LSCO1) * 49920/ (HSCO1 - LSCO1))2 / 49920 + 14080
Inverse Linear (0 to 16383)
RAWC = (OUT - LSCO1) * 16383 / (HSCO1 - LSCO1)
Inverse Square Root (1600 to 64000)
Analog Output 0 to 10 V dc
RAWC = ((OUT - LSCO1) * 62400 / (HSCO1 - LSCO1))2 / 62400 + 1600
Inverse linear (0 to 65535)
RAWC = (OUT - LSCO1) * 65535 / (HSCO1 - LSCO1)
Inverse linear ( -32768 to 32767 )
RAWC = (OUT - LSCO1) * 65535 / (HSCO1 - LSCO1) - 32768
Inverse linear ( 0 to 32767 )
RAWC = (OUT - LSCO1) * 32767 / (HSCO1 - LSCO1)
Inverse linear ( 0 to 1000 )
RAWC = (OUT - LSCO1) * 1000 / (HSCO1 - LSCO1)
Inverse linear ( 0 to 9999 )
RAWC = (OUT - LSCO1) * 9999 / (HSCO1 - LSCO1)
Inverse linear ( 0 to 2048 )
RAWC = (OUT - LSCO1) * 2048 / (HSCO1 - LSCO1)
Inverse linear ( 409 to 2048 )
RAWC = (OUT - LSCO1) * 1639 / (HSCO1 - LSCO1) + 409
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
HSCO1
OUT
160

= 200C
= 900C
= 500C

5. AOUT Analog Output Block

SCO
Then
RAWC

B0193AX Rev Z

=2
= ((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 Intelligent 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 positioner 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 applicationspecific parameter PNT_NO. AOUT software requires that the positioners communications be
assigned to the first channel in FBM43 (or FBM243), so this parameter, used to identify the
positioners 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:
161

B0193AX Rev Z

5. AOUT Analog Output Block

IOM_ID = COMPOUND:BLOCK of ECB74 (can be the letterbug if the compound 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
or
MEALM

REALM
or
MEALM

PID
OUT

Optional Real (REALM)


or Measurement (MEALM)
Alarm Block

or

Optional Real (REALM)


or Measurement (MEALM)
Alarm Block

AOUT
To Displays and
Maintenance
Data Collection

or
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

162

5. AOUT Analog Output Block

B0193AX Rev Z

and HOLIM), which are normally used to constrain the output to operating limits that are narrower than the engineering range limits.
When this block runs, the LOLIM and HOLIM limit values are not allowed to exceed the engineering 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 setting 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 initialization, the acknowledgement is not required and a Hold of one cycle only occurs.
If you set the PRIBLK parameter in the AOUT block to 1, the user must use PRITIM to hold the
blocks output for x seconds (PRITIM=x) during a manual to automatic mode change.
However, the warning W48 - INVALID BLOCK OPTION appears when you configure
PRITIM to 0.0 and PRIBLK to 1. To resolve this error, set PRITIM to be greater than 0 seconds.

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

B0193AX Rev Z

5. AOUT Analog Output Block

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.

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 control 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 Supervisory 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 initialization 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 blocks 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
164

5. AOUT Analog Output Block

B0193AX Rev Z

the SUP_IN parameter. When the block runs, the CP block logic then closes the supervisory cascade automatically.
When the supervisory application receives a request to initialize (see Section 5.5.4.4), it should:
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 Values 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 Station 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 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 both BLKSTA.FBM and BLKSTA.BAD are also set true.)
165

B0193AX Rev Z

5. AOUT Analog Output Block

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.
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 following 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-Service 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.

166

5. AOUT Analog Output Block

B0193AX Rev Z

In all cases where the last good value of a parameter is used in the block algorithm, that value is
written over the current value, thereby avoiding possible confusion.
The status conditions referred to as source connection problems in the preceding paragraphs
consist of the following:
The block containing the source parameter has been deleted.
The source parameter is in a nonexistent compound.

There is a peer-to-peer path failure.

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 feature 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 inactive in Manual mode.

167

B0193AX Rev Z

5. AOUT Analog Output Block

There are four parameters which can force the AOUT block into Manual or Auto mode. These
are listed from strongest to weakest:
Manual if Bad Option (MBADOP): When true, the block is forced into Manual
whenever MEAS or BIAS has Bad status, or the FBM or FBC is bad. MA is secured
against sets when this occurs. MBADOP is ignored if MA is linked. Once MBADOP
forces the block into Manual, only Auto Switch (AUTSW) can take the block out of
Manual. However, AUTSW is not inspected while the Bad condition persists. After
the Bad condition has cleared, a true value of AUTSW can then return the block to
Auto.
Manual Switch (MANSW): When true, the block is forced into Manual, and MA is
secured against sets. In that case, the value of AUTSW is ignored. Neither MANSW
nor AUTSW are inspected if MBADOP has forced the block into Manual and the
Bad condition is still present. MANSW overrides any connections to MA.
AUTSW: When true, the block is forced into Auto, and MA is secured against sets.
AUTSW is of lower priority than MANSW, and is ignored if both parameters are
true. AUTSW overrides any connections to MA.

MANFS: (Described in Section 5.5.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 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 AOUT block is as follows:
Table 5-3. AOUT Block Alarm Nomenclature

Type
I/O Bad

168

Option
BAO = True

Priority

Group

BAP

BAG

Text
BAT

Default
Display
IOBAD

Indicator
Parameter
BAD

5. AOUT Analog Output Block

B0193AX Rev Z

5.9 Application Diagram


ECB1

AIN
PNT
MEAS
PID

FBM203
or
FBM03

OUT
MEAS
AOUT
RAWC

ECB2

FBM204
or
FBM04
TT

Steam

HEAT
EXCHANGER

IOM_ID = STV001
PNT_NO = 5
SCO = 1
LSCO1 = 0.0
HSCO1 = 100.0
BTIME = 3.0
MANFS = 1
BAO = 1
BIAS = 0
MSCALE = 1

Heated Water
Cold Water

PRIBLK = 1
MBADOP = 1
IOMOPT = 1
LOLIM = 15.0
HOLIM = 85.0
SUPOPT = 0
BAP = 2
BAG = 1
BAT = STEAM VALVE 1 DRIVE DOWN
Figure 5-5. Typical AOUT Block Application

169

B0193AX Rev Z

170

5. AOUT Analog Output Block

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 capability for a single analog value directed to any two redundant Fieldbus Modules (FBMs) or Fieldbus 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.

171

B0193AX Rev Z

Supervisory
Enable

6. AOUTR Redundant Analog Output Block

Measurement
Scalar
&
Bias

Balance
Time

Low Output Limit


High Output Limit

Back
Calculation

Measurement
Supervisory
Input

ECBs
Failsafe/Bad

FBM and
Channel
Status

Input
Selection

Scaling

Reset
Balancing

Clamping

Back
Calculated
Outputs

Out

Signal
Conditioning

Raw
Count

Fieldbus
Output

Output
to
FBMs/FBCs

Failsafe
Processing

Failsafe

BAD
Detection

Bad
Alarm

Alarming

Bad Alarm
Option

AirSignal
FBM
Conditioning toOption
Close
Output

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 initialized on transition from a last good value condition of MEAS or BIAS, or closure of the cascade. 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
172

6. AOUTR Redundant Analog Output Block

B0193AX Rev Z

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 simulation 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 initialize without bumping the process.

Bad Alarm option to permit Bad alarm generation separately for the primary and secondary FBM or FBC.

173

B0193AX Rev Z

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

0 to 13

PHASE

block execute phase

integer

no-con/no-set

---

LOOPID

loop identifier

string

no-con/set

blank

1 to 32 chars

IOMOPT

FBM output option

short

no-con/no-set

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 to 32 chars

SCO

signal condition index

short

no-con/no-set

0-5,12-15, 50-56, 59

ATC

air-to-close

boolean

no-con/no-set

0 to 1

PROPT

propagate error option

boolean

no-con/no-set

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 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 to 2

BTRKOP

bias tracking option

boolean

no-con/no-set

0 to1

MA

manual/auto

boolean

con/set

0 to 1

INITMA

initialize MA

short

no-con/no-set

0 to 2

AUTSW

auto switch

boolean

con/set

0 to 1

MANSW

manual switch

boolean

con/set

0 to 1

MANFS

manual if failsafe

boolean

no-con/no-set

0 to 1

MBADOP

manual if bad option

boolean

no-con/no-set

0 to 1

174

6. AOUTR Redundant Analog Output Block

B0193AX Rev Z

Table 6-1. AOUTR Block Parameters (Continued)


Name

Description

Type

Accessibility

Default

Units/Range

MCLOPT

manual clamp option

boolean

no-con/no-set

0 to 1

PRIBLK

primary block

boolean

no-con/no-set

0 to 1

PRITIM

primary cascade timer

real

no-con/no-set

0.0

seconds

INHOPT

inhibit option

short

no-con/no-set

0 to 3

INHIB

alarm inhibit

boolean

con/set

0 to 1

BTIME

balance time

real

con/set

0.0

minutes

BAO

bad alarm option

boolean

no-con/no-set

0 to 2

BAT

bad alarm text

string

no-con/no-set

blank

1 to 32 chars

BAP

bad alarm priority

integer

con/set

1 to 5

BAG

bad alarm group

short

no-con/set

1 to 8

FLBOPT

fallback option

short

no-con/no-set

0 to 2

INITSE

initial SE

short

no-con/no-set

0 to 2

SE

supervisory enable

boolean

no-con/set

0 to 1

SUPGRP

supervisory group

short

no-con/no-set

1 to 8

SUPOPT

supervisory option

short

no-con/no-set

0, 1, 3

AMRTIN

alarm regeneration timer

integer

no-con/no-set

0 to 32767 s

Non-Configurable Parameters
OUTPUTS
ALMSTA

alarm status

pack_l

con/no-set

bit map

BAD

bad I/O status

boolean

con/set

0 to 1

BCALCO

back calculate output

real

con/no-set

0.0

RI1

BLKSTA

block status

pack_l

con/no-set

bit map

CRIT

criticality

integer

con/no-set

0 to 5

FLBREQ

fallback request

short

no-con/set

0 to 2

FS

failsafe state

boolean

con/no-set

0 to 1

HOLIND

high output limit indicator boolean

con/set

0 to 1

INHSTA

inhibit status

pack_l

con/no-set

8 to 13 chars

INITO

initialize out

short

con/no-set

---

LOLIND

low output limit indicator

boolean

con/set

0 to 1

OUT

output

real

con/set

0.0

RO1

PRTYPE

priority type

integer

con/no-set

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

RI1

UNACK

unacknowledge alarm

con/set

0 to 1

boolean

DATA STORES
ACHNGE

alternate change

integer

con/no-set

-32768 to 32767

ALMOPT

alarm options

pack_l

no-con/no-set

0 to FFFFFFFF

DEFINE

no config errors

boolean

no-con/no-set

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 to 1

OWNER

owner name

string

no-con/set

blank

1 to 32 chars

175

B0193AX Rev Z

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

0
B32

1
B31

B30

Bit Number*
(0 to 31)

Configured Alarm Option


When True

Boolean
Connection
(B32 to B1)

0 (Least Significant)
1
7
22

Alarm Group 8 in Use


Alarm Group 7 in Use
Alarm Group 1 in Use
Bad I/O Alarm Configured

ALMOPT.B32
ALMOPT.B31
ALMOPT.B25
ALMOPT.B10

* Bit 0 is the least significant bit (starting from the right).


There are no names for the individual bits of ALMOPT.

176

3
B29

4
B28

5
B27

6
B26

7
B25

8
B24

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

6. AOUTR Redundant Analog Output Block

Alarm Status is a 32-bit output, bit-mapped to indicate the blocks alarm


states. For the AOUTR block, only the unshaded bits in this diagram are
used.

Name

Description When True

0 to 4
(Least Significant)
5 to 7

PTYP_MSK

22
30

BAD
UNAK

Priority Type: See parameter PRTYPE for values


used in the AOUTR block
Criticality; 5 = lowest priority, 1= highest
Bad I/O Alarm
Unacknowledged

CRIT_MSK

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

Bit
Number*
(0 to 31)

CRIT

BAD

B8

B7

B6

B5

B4

B3

B1

UNAK B2

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

ALMSTA

B0193AX Rev Z

PRTYPE

Boolean
Connection
(B32 to B1)
---

--ALMSTA.B10
ALMSTA.B2

* Bit 0 is the least significant bit (starting from the right).


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

ATC

Air-to-Close is a configurable option that inverts the sense of the conversion 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 redundant 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 status.

BAG

Bad Alarm Group is a short integer input that directs Bad alarm messages
to one of eight groups of alarm devices.

177

B0193AX Rev Z

6. AOUTR Redundant Analog Output 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=
1=

No generation of Bad alarms.


Bad alarm generation if the FBM or FBC has
Bad status.
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 AOUTR block.

2=

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 conditions 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 independently, 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 operational states. The AOUTR block uses only the unshaded bits in this diagram:

178

0
B32

B30

BADR B31

3
B29

4
B28

5
B27

B26

TRK

B24

7
HOLD B25

FBM

B22

B21

FBMR B23

B20

MA

B19

BAD

B17

B16

UDEF B18

ON

B15

B14

B13

B11

WLCK B12

B6
MAO

B10

B5
LOL

B9

B4
HOL

B8

B3
SE

FS

B2
SC

B7

B1
FLB

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

6. AOUTR Redundant Analog Output Block

B0193AX Rev Z

Bit
Number*
(0 to 31)

Name

Description When True

1
6
7
8
9
11
12
14
15
20
24

BADR
TRK
HLD
FBM
FBMR
MA
BAD
UDEF
ON
WLCK
FS

26
27
28
29
30
31

MAO
LOL
HOL
SE
SC
FLB

Bad Secondary I/O


Local Panel in Use
Auto/Hold State
Primary FBM or FBC Failure
Secondary FBM or FBC Failure
Manual = 0, Auto = 1
Bad Primary I/O
Block Undefined
Block ON
Access Locked
Outputs in Failsafe or Awaiting
Cascade Closure after Transition
Manual/Auto Override Active
Output Clamped at Low Limit
Output Clamped at High Limit
Supervisory Control Enabled
Supervisory Cascade Closed
Block in Supervisory Fallback

Boolean
Connection
(B32 to B1)
BLKSTA.B31
BLKSTA.B26
BLKSTA.B25
BLKSTA.B24
BLKSTA.B23
BLKSTA.B21
BLKSTA.B20
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12
BLKSTA.B8
BLKSTA.B6
BLKSTA.B5
BLKSTA.B4
BLKSTA.B3
BLKSTA.B2
BLKSTA.B1

* Bit 0 is the least significant bit (starting from the right).


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 calculated by the algorithm, when the block output changes its mode of control.

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 configuration errors. The default is 1 (no configuration errors). When the block initializes, DEFINE is set to 0 if any configured parameters fail validation
testing, other than those involved in duplicate output channel detection.

179

B0193AX Rev Z

6. AOUTR Redundant Analog Output Block

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

180

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 blocks compound, change deltas have no
effect.

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 blocks compound, change deltas have no
effect.

DELTO1

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

DESCRP

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


the blocks function (for example, PLT 3 FURNACE 2 HEATER CONTROL).

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-character 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

6. AOUTR Redundant Analog Output Block

B0193AX Rev Z

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 blocks 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 blocks DEFINE to be set false.) The block
detailed display shows the ERCODE on the primary page, if it is not null.
For the AOUTR block, the following list specifies the possible values of
ERCODE, and the significance of each value in this block.
ERCODE
W44
W48

W50
W51
W52
W54
W59

Description
HSCO1 less than or equal to LSCO1.
SUPOPT or FLBOPT out of range.
-orPRITIM = zero is not allowed (occurs when
PRIBLK = 1).
Invalid SCO.
The specified FBMs or FBCs are not of the same hardware
and software types, or do not support analog output points.
PNT_NO is out of range for the specified FBMs or FBCs.
Specified IOM_ID or IOMIDR does not exist.
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
181

B0193AX Rev Z

6. AOUTR Redundant Analog Output Block

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 192).
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 blocks 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=
1=

2=

3=

182

When an alarm is inhibited, disable alarm messages but do not


disable alarm detection.
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.
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.
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.

6. AOUTR Redundant Analog Output Block

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:

Bit
Number *
(0 to 31)

Name

22

BAD

0
B32

1
B31

Boolean
Connection
(B32 to B1)

Description When True


Bad I/O Alarm Inhibited

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B9

BAD B10

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

INHSTA

B0193AX Rev Z

INHSTA.B10

* Bit 0 is the least significant bit (starting from the right).


INITMA

Initialize Manual/Auto specifies the desired state of the MA input during


initialization, where:
0 = Manual
1 = Auto
2 = The MA state as specified in the checkpoint file.
The block asserts this initial M/A state whenever 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).

183

B0193AX Rev Z

6. AOUTR Redundant Analog Output Block

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 redundant 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 connections to the block exist. Values are:
0=
1=

2=

184

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.
The block transmits the OUT value to the FBMs or FBCs specified by IOM_ID and IOMIDR. The value is conditioned as
specified by SCO.
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 pathname of the primary FBM or FBC to which the block is connected.
IOM_ID has the form CompoundName:BlockName, where CompoundName 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-character 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 accompanying the SETVAL command is entered into the LOCKID of the block.
Thereafter, set requests to any of the blocks 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

6. AOUTR Redundant Analog Output Block

B0193AX Rev Z

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 192).
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 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 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 blocks output.

MA

Manual/Auto is a boolean input that controls the blocks 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 overrides it if both parameters are true. MANSW also overrides any connections 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,
185

B0193AX Rev Z

6. AOUTR Redundant Analog Output Block

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.

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 percentage 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 blocks 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
0

186

Length
0.1 sec

Period
7

Length
10 min

6. AOUTR Redundant Analog Output Block

Period
1
2
3
4
5
6

B0193AX Rev Z

Length
0.5 sec*
1.0 sec
2.0 sec
10 sec
30 sec
1 min

Period
8
9
10
11
12
13

Length
60 min
0.2 sec
5.0 sec**
0.6 sec***
6.0 sec****
0.05 sec*****

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

Period Time is a real data store which, in the case of the AOUTR block,
contains the number of execution cycles in one minute. It is only used in
the calculation of the reset balance factor.

PHASE

Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Control Processor is 0.5 sec. Refer to the appropriate Integrated Control Software 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 primary 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 201 for more
information on this parameter.

187

B0193AX Rev Z

6. AOUTR Redundant Analog Output Block

PRITIM

Primary Cascade Timer is a configurable parameter used to delay the closing 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 201 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.

PRSCAS

Present Cascade State is a data store that indicates the cascade state. It has
the following possible values:
Value

188

State

INIT_U

2
3

PRI_OPN
INIT_C

4
5
6
7

PRI_CLS
SUP_INIT
SUP_OPN
SUP_CLS

Description
Unconditional initialization of the primary
cascade is in progress.
The primary cascade is open.
Conditional initialization of the primary
cascade is in progress.
The primary cascade is closed.
The supervisory cascade is initializing.
The supervisory cascade is open.
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 individual 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-

6. AOUTR Redundant Analog Output Block

B0193AX Rev Z

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

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 application sets its output to the BCALCO value, bumpless initialization of the
supervisory cascade is assured. SUPBCO also contains the following status
bits:
Status
Bit 10 = 1
Bit 13 = 1
Bit 14 = 1
Bit 13 = 1 and Bit 14 =1

Meaning
Initialize SUP_IN
SUP_IN is limited high
SUP_IN is limited low
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 application:
0 = No Supervisory control (default)
1 = Set Point Control (SPC) of the blocks measurement (Supervisory setpoint 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 functions.
189

B0193AX Rev Z

190

6. AOUTR Redundant Analog Output Block

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 application. 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 identifying integer is created specifying this block type.

UNACK

Unacknowledge is a boolean output which is set true, for notification purposes, whenever the block goes into alarm on either the primary or secondary 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 normally via an operator Acknowledge pick on a default display, user display,
or Current Alarms Display, or via a user task.

6. AOUTR Redundant Analog Output Block

B0193AX Rev Z

6.4.2 Detailed Diagram


MSCALE

MEAS
SUP_IN
Last Good Value
Back Calculated Input

OUT

BTIME LOLIM HOLIM (M)


O MA

SCALING

BALANCING CLAMPING

Bias
Selection

O O
(A)

Back
Calculation

OUT

OUT

BCALCO
SUPBCO

HSCO1 LSCO1 SCO


OUT
IOMOPT = 0,1
SUPOPT
SE
BLKSTA.SC

Primary Failsafe
Redundant Failsafe

AND

Primary Failsafe
Redundant BAD

AND

AND

To
Redundant
ECB

AND

FS
BLKSTA.FS

AND
AND

OR
MEROPT=1

MEROPT=2

BLKSTA.FS

AND

AND

USE LAST
OGOOD VALUE

OR
AND

OR
Initialization Cycle

Primary FBM/FBC BAD


Primary FBC Point BAD

OR

Redundant FBM/FBC BAD


Redundant FBC Point BAD

OR

Primary FBM/FBC OOS


Secondary FBM/FBC OOS

Manual
FS

MEAS.ACK

PROPT
Auto
MEAS.BAD
MEAS.OOS
MEAS.Disconnect
MEAS.ERROR

To
Primary
ECB

OR

MANFS
MEAS.BAD
MEAS.OOS
MEAS.Disconnect

AND

Redundant OPSTAT = 6

Transition Cycle
Primary BAD
Redundant Failsafe

RAWC

IOMOPT = 1
Primary OPSTAT = 6

O USE SUP_IN

AND

SIGNAL
CONDITIONING

AND

USE BACK
Back
CALCULATED
O
Calculation
INPUT

AND

BAD
BLKSTA.BAD
OUT.BAD
BCALCO.BAD
OUT.SECURE

AND

OUT.OOS
BCALCO.OOS
OUT.SECURE

Figure 6-2. AOUTR Block Operational Diagram

191

B0193AX Rev Z

6. AOUTR Redundant Analog Output Block

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 processing 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

192

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 following rule:
BIAS = OUT - (MEAS used this cycle * MSCALE)

6. AOUTR Redundant Analog Output Block

B0193AX Rev Z

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 carried 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 connected, 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 analog 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.
193

B0193AX Rev Z

6. AOUTR Redundant Analog Output Block

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 compound 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 providing 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

194

ECB

FBM204
FBM205

ECB2
ECB2

FBM237
FBM04
FBM05

ECB53
ECB2
ECB2

FBM06
FBM17
FBM37
FBM39
FBM44

ECB4
ECB9,
34, 36
ECB53
ECB23
ECB23

FBM46

ECB38R

FBC04

ECB43

Functional Description
4 Analog In, 4 Analog Out
4 Analog In, 4 Analog Out
Redundant
8 Analog Out
4 Analog In, 4 Analog Out
4 Analog In, 4 Analog Out
Redundant
4 Pulse Rate In, 4 Analog Out
4 Analog In, 2 Analog Out
4 Digital In, 4 Digital Out
8 Analog Out
4 IFD In, 4 Analog Out
4 IFD In, 4 Analog Out, Dual Baud
Rate, Redundant Output
4 IFD In, 4 Analog Out, Dual Baud
Rate, Redundant Input/Output
16 Analog Out

Valid Output Points


5 to 8
5 to 8
1 to 8
5 to 8
5 to 8
5 to 8
5 to 6
1 to 8
5 to 8
1 to 8
5 to 8
1 to 16

6. AOUTR Redundant Analog Output Block

B0193AX Rev Z

Table 6-2. AOUTR Block Destinations (Continued)

FBM
FBC04
Redundant

ECB
ECB43

Functional Description
16 Analog Out, Redundant

Valid Output Points


1 to 16

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 independently of the action of MSCALE.)

195

B0193AX Rev Z

6. AOUTR Redundant Analog Output Block

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 / ( + 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 6-3 shows the effect of balancing action when a change in the form of control would otherwise 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.

196

6. AOUTR Redundant Analog Output Block

B0193AX Rev Z

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 output 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

197

B0193AX Rev Z

6. AOUTR Redundant Analog Output Block

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:
SCO = 1:

SCO = 2:

SCO = 3:

SCO = 4:

SCO = 5:

198

No Conditioning
RAWC = OUT
Inverse Linear (0 to 64000)
Analog Output 0 to 20 mA
RAWC = (OUT - LSCO1) * 64000 / (HSCO1 - LSCO1)
Inverse Linear (1600 to 64000)
Analog Output 0 to 10 V dc
RAWC = ((OUT - LSCO1) * 62400 / (HSCO1 - LSCO1)) + 1600
Inverse Linear (12800 to 64000)
Analog Output 4 to 20 mA
RAWC = ((OUT - LSCO1) * 51200 / (HSCO1 - LSCO1)) + 12800
Inverse Square Root (0 to 64000)
Analog Output 0 to 20 mA
RAWC = ((OUT - LSCO1) * 64000 / (HSCO1 - LSCO1))2 / 64000
Inverse Square Root (12800 to 64000)
Analog Output 4 to 20 mA
RAWC = ((OUT - LSCO1) * 51200 / (HSCO1 - LSCO1))2 / 51200 + 12800

6. AOUTR Redundant Analog Output Block

SCO = 12:

SCO = 13:

SCO = 14:
SCO = 15:

SCO = 50:
SCO = 51:
SCO = 52:
SCO = 53:
SCO = 54:
SCO = 55:
SCO = 56:
SCO = 59:

B0193AX Rev Z

Inverse Linear (14080 to 64000)


Analog Output 2 to 10 V dc
RAWC = ((OUT - LSCO1) * 49920 / (HSCO1 - LSCO1)) + 14080
Inverse Square Root (14080 to 64000)
Analog Output 2 to 10 V dc
RAWC = ((OUT - LSCO1) * 49920 / (HSCO1 - LSCO1))2 / 49920 + 14080
Inverse Linear (0 to 16383)
RAWC = ((OUT - LSCO1) * 16383 / (HSCO1 - LSCO1))
Inverse Square Root (1600 to 64000)
Analog Output 0 to 10 V dc
RAWC = ((OUT - LSCO1) * 62400/ (HSCO1 - LSCO1))2 / 62400 + 1600
Linear (0 to 65535)
x = (y - LSCO1) * 65535/(HSCO1-LSCO1)
Linear (-32768 to 32767) x = (y - LSCO1) * 65535/(HSCO1-LSCO1) 32768
Linear (0 to 32767)
x = (y - LSCO1) * 32767/(HSCO1-LSCO1)
Linear (0 to 1000)
x = (y - LSCO1) * 1000/(HSCO1-LSCO1)
Linear (0 to 999)
x = (y - LSCO1) * 999/(HSCO1-LSCO1)
Linear (0 to 2048)
x = (y - LSCO1) * 2048/(HSCO1-LSCO1)
Linear (409 to 2048)
x = (y - LSCO1) * 1639/(HSCO1-LSCO1) + 409
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
HSCO1
OUT
SCO
Then
RAWC

= 200C
= 900C
= 500C
=2

= ((50 - 20) * 62400 / (90 - 20)) + 1600


= (30 * 62400/70) + 1600 = 28343

199

B0193AX Rev Z

6. AOUTR Redundant Analog Output Block

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 narrower than the engineering range limits.
When this block runs, the LOLIM and HOLIM limit values are not allowed to exceed the engineering 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 setting 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
200

6. AOUTR Redundant Analog Output Block

B0193AX Rev Z

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 initialization, the acknowledgement is not required and a Hold of one cycle only occurs.
If you set the PRIBLK parameter in the AOUTR block to 1, the user must use PRITIM to hold
the blocks output for x seconds (PRITIM=x) during a manual to automatic mode change.
However, the warning W48 - INVALID BLOCK OPTION appears when you configure
PRITIM to 0.0 and PRIBLK to 1. To resolve this error, set PRITIM to be greater than 0 seconds.

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 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 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 ability of the good module to take over and drive the output correctly. The hardware arrangement utilized 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

201

B0193AX Rev Z

6. AOUTR Redundant Analog Output Block

Supervisory control consists of features which permit a user application, such as a computer control 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
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 Supervisory 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 initialization 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 blocks 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 cascade 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 connected to SUP_IN)

202

6. AOUTR Redundant Analog Output Block

B0193AX Rev Z

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:

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

203

B0193AX Rev Z

6. AOUTR Redundant Analog Output Block

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 following actions are performed:
The current readback value of the output point is written into OUT. (This is normally 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.)
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 following 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-Service status, or is experiencing source connection problems.

MEROPT = 2: The last good value of MEAS is used when it has Bad, Out-ofService, 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.

204

6. AOUTR Redundant Analog Output Block

B0193AX Rev Z

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.

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 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 a pair of FBMs or FBCs is connected (IOMOPT = 1), the value of RAWC is transferred 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 feature 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 inactive 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:

205

B0193AX Rev Z

6. AOUTR Redundant Analog Output Block

Manual if Bad Option (MBADOP): When true, the block is forced into Manual
whenever MEAS or BIAS has Bad status, or both FBMs or FBCs are bad. MA is
secured against sets when this occurs. MBADOP is ignored if MA is linked. Once
MBADOP forces the block into Manual, only Auto Switch (AUTSW) can take the
block out of Manual. However, AUTSW is not inspected while the Bad condition
persists. After the Bad condition has cleared, a true value of AUTSW can then return
the block to Auto.
Manual Switch (MANSW): When true, the block is forced into Manual, and MA is
secured against sets. In that case, the value of AUTSW is ignored. Neither MANSW
nor AUTSW are inspected if MBADOP has forced the block into Manual and the
Bad condition is still present. MANSW overrides any connections to MA.
AUTSW: When true, the block is forced into Auto, and MA is secured against sets.
AUTSW is of lower priority than MANSW, and is ignored if both parameters are
true. AUTSW overrides any connections to MA.
MANFS: (Described in Section 6.4.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 discussed 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

Type
I/O Bad

206

Option
BAO = True

Priority

Group

BAP

BAG

Text
BAT

Default Display
IOBAD

Indicator
Parameter
BAD

6. AOUTR Redundant Analog Output Block

B0193AX Rev Z

6.8 Application Diagram


ECB 1

AIN
PNT
MEAS
PID
FBM03

OUT
MEAS
AOUTR
RAWC

ECB23

ECB23

FBM39

FBM39
TT

HEAT

Steam

EXCHANGER
IOM_ID = STV01M
IOMIDR = STV01R
PNT_NO = 5
SCO = 1
LSCO1 = 0.0
HSCO1 = 100.0
BTIME = 3.0
MANFS = 1
BAO = 1
BIAS = 0
MSCALE = 1

PRIBLK = 1
MBADOP = 1
IOMOPT = 1
LOLIM = 15.0
HOLIM = 85.0
SUPOPT = 0
BAP = 2
BAG = 1
BAT = STEAM VALVE

Heated Water
Cold Water

1 BOTH DRIVES DOWN

Figure 6-4. Typical AOUTR Block Application

207

B0193AX Rev Z

208

6. AOUTR Redundant Analog Output Block

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
BLOCK

Manual/Auto Overrides
Local/Remote Bias

Output
Controller

Local/Remote Overrides

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 Lo Alarm Limit
Measurement Alarm Priority

Alarm
Algorithm

Measurement Hi Alarm Indicator


Measurement Lo Alarm Indicator
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 Z

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 handling 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 manual. 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 calculated 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 Manual, 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 measurement during auto operation. This option also provides standard alarm
notification and reporting features.

210

CEOPT, Control Error Option, allows you to enable, or disable, the blocks implicit
Hold action when it detects an error in the MEAS or INITI input.

7. BIAS Bias Block

B0193AX Rev Z

PROPT, Propagate Error Option, gives you the option of propagating the ERROR
status bit from the MEAS input to the blocks 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 notification 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 initialize 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

0 to 13

PHASE

block phase number

integer

no-con/no-set

---

211

B0193AX Rev Z

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 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 to 1

INITMA

initialize MA

short

no-con/no-set

[0|1|2]

MANFS

manual If FailSafe

boolean

no-con/no-set

0 to 1

MBADOP

manual bad option

short

no-con/no-set

[0|1|2]

MANSW

manual switch

boolean

con/set

0 to 1

AUTSW

auto switch

boolean

con/set

0 to 1

MCLOPT

manual clamp option

boolean

no-con/no-set

0 to 1

CEOPT

control error option

short

no-con/no-set

0 to 2

HOLD

hold mode

boolean

con/set

0 to 1

PRIBLK

primary block cascade option

boolean

no-con/no-set

0 to 1

PRITIM

primary cascade timer

real

no-con/no-set

0.0

seconds

INITI

initialize input

short

con/set

---

BCALCI

back calculate input

real

con/set

0.0

RO1

LR

local/remote

boolean

con/set

0 to 1

INITLR

initialize LR

short

no-con/no-set

[0|1|2]

LOCSP

local setpoint

boolean

no-con/no-set

0 to 1

LOCSW

local switch

boolean

con/set

0 to 1

REMSW

remote switch

boolean

con/set

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|1|2]

BTIME

balance time

real

con/set

0.0

[0..]minutes

MANALM

manual alarm option

short

no-con/no-set

0 to 4

INHOPT

inhibit option

short

no-con/no-set

0 to 3

212

7. BIAS Bias Block

B0193AX Rev Z

Table 7-1. BIAS Block Parameters (Continued)


Name

Description

Type

Accessibility

Default

Units/Range

INHIB

alarm inhibit

boolean

con/set

0 to 1

INHALM

inhibit alarm

pack_b

con/set

0 to FFFF

MEASNM

meas alarm name

string

no-con/no-set

blank

1 to 32 chars

MALOPT

meas alarm option

short

no-con/no-set

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

[1..5]

MEASGR

meas alarm group

short

no-con/set

[1..8]

HHAOPT

high-high option

short

no-con/no-set

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

[1..5]

HHAGRP

high-high group

short

no-con/set

[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 to 1

BAT

bad alarm text

string

no-con/no-set

blank

1 to 32 chars

BAP

bad alarm priority

integer

con/set

1 to 5

BAG

bad alarm group

short

no-con/set

1 to 8

AMRTIN

alarm regeneration timer

integer

no-con/no-set

0 to 32767 s

NASTDB

alarm deadband timer

long integer no-con/no-set

0-2147483647 ms

NASOPT

nuisance alarm suppression


option

short

no-con/no-set

0 to 2

pack_l

con/no-set

bit map

Non-Configurable Parameters
OUTPUTS
ALMSTA

alarm status

BCALCO

back calc output

real

con/no-set

0.0

RI1

BLKSTA

block status

pack_l

con/no-set

bit map

CRIT

criticality

integer

con/no-set

[0..5]

HHAIND

high-high absolute indicator

boolean

con/no-set

0 to 1

HOLIND

high out limit indicator

boolean

con/no-set

0 to 1

INHSTA

inhibit status

pack_l

con/no-set

0 to FFFFFFFF

INITO

initialize out

short

con/no-set

---

LLAIND

low-low alarm indicator

boolean

con/no-set

0 to 1

LOLIND

low out limit indicator

boolean

con/no-set

0 to 1

MEASHI

meas high alarm indicator

boolean

con/no-set

0 to 1

MEASLI

meas low alarm indicator

boolean

con/no-set

0 to 1

OUT

output

real

con/no-set

0.0

RO1

PRTYPE

priority type

integer

con/no-set

[0..10]

QALSTA

quality status

pack_l

con/no-set

0 to FFFFFFFF

SUM

bias summer

real

con/no-set

0.0

RO1

213

B0193AX Rev Z

7. BIAS Bias Block

Table 7-1. BIAS Block Parameters (Continued)


Name

Description

Type

Accessibility

Default

Units/Range

UNACK

alarm notification

boolean

con/no-set

0 to 1

ACHNGE

alternate change

integer

con/no-set

-32768 to 32767

ALMOPT

alarm options

pack_l

no-con/no-set

0 to FFFFFFFF

DEFINE

no config errors

boolean

no-con/no-set

0 to 1

ERCODE

config error

string

no-con/no-set

1 to 43 chars

LOCKID

lock identifier

string

no-con/no-set

blank

8 to 13 chars

DATA STORES

LOCKRQ

lock request

boolean

no-con/set

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 to 7

PRSCON

present control

short

no-con/no-set

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.

Bit
Number*
(0 to 31)
0
1
7
16
17
24
25

0
B32

1
B31

B30

Configured Alarm Option


When True

Boolean
Connection
(B32 to B1)

Alarm Group 8 in Use


Alarm Group 7 in Use
Alarm Group 1 in Use
Low Absolute Alarm Configured
High Absolute Alarm Configured
Low-Low Absolute Alarm Configured
High-High Absolute Alarm Configured

ALMOPT.B32
ALMOPT.B31
ALMOPT.B25
ALMOPT.B16
ALMOPT.B15
ALMOPT.B8
ALMOPT.B7

* Bit 0 is the least significant bit (starting from the right).


214

3
B29

4
B28

5
B27

6
B26

7
B25

8
B24

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

7. BIAS Bias Block

B0193AX Rev Z

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


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

Bit
Number
(0 to 31)*

CRIT

Name

Description When True

0 to 4

PTYP_MSK

5 to 7

CRIT_MSK

16
17
18
19
24
25
29
30

LMA
HMA
LOA
HOA
LLA
HHA
INH
UNAK

Priority Type: See parameter


PRTYPE for values used in
the BIAS block
Criticality; 5 = lowest priority,
1= highest
Low Measurement Alarm
High Absolute Alarm
Low Output Alarm
High Output Alarm
Low-Low Absolute Alarm
High-High Absolute Alarm
Alarm inhibit
Unacknowledged

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

B15

B14

B16
LMA

HMA

LOA

B13

B12

HOA

B11

B10

B9

B7

B6

B8
LLA

HHA

B5

B4

B3
INH

B1

UNAK B2

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

ALMSTA

PRTYPE

Boolean
Connection
(B32 to B1)
ALMSTA.B32
ALMSTA.B28
ALMSTA.B27
ALMSTA.B25
ALMSTA.B16
ALMSTA.B15
ALMSTA.B14
ALMSTA.B13
ALMSTA.B8
ALMSTA.B7
ALMSTA.B3
ALMSTA.B2

* Bit 0 is the least significant bit (starting from the right).


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

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 Z

BAO

7. BIAS Bias Block

Bad Alarm Option is a configurable option that enables alarm generation


for each state change of the BAD parameter. The parameter values are:
0=
1=
2=

216

No generation of Bad alarms.


Bad alarm generation if the FBM or FBC has
Bad status.
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 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 nonzero. 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 calculation of the block algorithm, based on the BCALCI input from the
downstream block. When BCALCO is connected to the BCALCI parameter of an upstream block, the upstream block will be requested to initialize to the BCALCO value when an open loop condition occurs.
With V4.2 and later software, the status bits of BCALCO contain the cascade 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

7. BIAS Bias Block

B0193AX Rev Z

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.
Block Status is a 32-bit output, bit-mapped to indicate the blocks operational states. For the BIAS block, only the following bits are used:

Bit
Number1
(0 to 31)
5
6
7
10
11
14
15
20
21
22
24
25
26
27
28
1.

0
B32

1
B31

2
B30

3
B29

4
B28

B27
CTL

B26

B25

TRK

HLD

B22
LR

B23

B21

B20

MA

B19

B17

UDEF B18

ON

B16

B15

B14

B13

B11

WLCK B12

B8
FS

LHI

B7
LRO

B10

B6
MAO

B9

B5

LLO

B4

LOL

B3

HOL

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

BLKSTA

Name

Description When True

Boolean
Connection
(B32 to B1)

CTL
TRK
HLD
LR
MA
UDEF
ON
WLCK
LHI
LLO
FS
LRO
MAO
LOL
HOL

Controlling
Tracking
Holding
Local(= false)/Remote(= true)
Manual(= false)/Auto(= true)
Undefined
Compound On
Workstation Lock
Downstream Limited High
Downstream Limited Low
Failsafe
Local/Remote Override
Manual/Auto Override
Low Output Limit (Clamped)
High Output Limit (Clamped)

BLKSTA.B27
BLKSTA.B26
BLKSTA.B25
BLKSTA.B22
BLKSTA.B21
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12
BLKSTA.B11
BLKSTA.B10
BLKSTA.B8
BLKSTA.B7
BLKSTA.B6
BLKSTA.B5
BLKSTA.B4

Bit 0 is the least significant bit (starting from the right).

BMEAS

Measurement Bias is a real input used to offset the scaled measurement


value before it is added to the bias term.

BTIME

Balance Time is a real input that specifies the time constant, in minutes,
of the rate at which the OUT value returns to the Auto setting, when the
block transits from Manual, Tracking, or Holding, to Auto state.

217

B0193AX Rev Z

7. BIAS Bias Block

BTRKOP

Bias Track Option is a short integer input. When active, BTRKOP forces
the algorithms BIAS input to track the block BCALCO under the following conditions.
0 = no option enabled
1 = BIAS input tracks BCALCO when the block is in Manual, or the cascade 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=
1=

2=

The block takes no implicit Hold action when it detects a control error.
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-topeer path failure.
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 blocks 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 configuration errors. The default is 1 (no configuration errors). When the block
initializes, DEFINE is set to 0 if any configured parameters fail validation
testing. In that case, no further processing of the block occurs. To return
DEFINE to a true value, correct all configuration errors and re-install the
block.

DELTI1 to DELTI2
Change Delta for Input Ranges 1 or 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 RI1 or RI2. The default value is 1.

218

7. BIAS Bias Block

B0193AX Rev Z

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 blocks compound, change deltas have no
effect.
DELTO1

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

DESCRP

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


blocks function (for example, PLT 3 FURNACE 2 HEATER CONTROL).

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 consistent 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 blocks
DEFINE parameter to be set false, but not the warning situations. Validation of configuration errors does not proceed past the first error encountered 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 COMBINATION

PHASE does not exist for given block


PERIOD, or block PERIOD not
compatible with compound PERIOD.
High range value is less than or equal
to low range value.
The source parameter specified in the
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.

W44 INVALID
ENGINEERING RANGE
W46 INVALID INPUT
CONNECTION

219

B0193AX Rev Z

7. BIAS Bias Block

Message
W48 INVALID BLOCK
OPTION

W53 INVALID
PARAMETER VALUE
W58 INSTALL ERROR;
DELETE/UNDELETE
BLOCK

220

Value
The configured value of a block
option is illegal.
-orPRITIM = zero is not allowed
(occurs when PRIBLK = 1).
A parameter value is not in the acceptable range.
A Database Installer error has
occurred.

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

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.

7. BIAS Bias Block

B0193AX Rev Z

11

10

B9

B10

B11

B12

Bit
Number*
(0 to 15)
0
1
8
9

Description When True

Boolean
Connection
(B16 to B1)

Inhibit Low Measurement Alarm


Inhibit High Measurement Alarm
Inhibit Low-Low Absolute Alarm
Inhibit High-High Absolute Alarm

INHALM.B16
INHALM.B15
INHALM.B8
INHALM.B7

0
B16

12

B15

13

B14

14

B13

15

B8

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:

B7

INHALM

B6

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.

B5

HSCO1

B4

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

B3

HSCI1 to HSCI2

B2

High Output Limit Indicator is a boolean output that is set true whenever
the output is clamped at the high output limit, HOLIM.

B1

HOLIND

* Bit 0 is the least significant bit (starting from the right).


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 compound parameter CINHIB.

INHOPT

Inhibit Option specifies the following actions applying to all block alarms:
0=
1=

When an alarm is inhibited, disable alarm messages but do


not disable alarm detection.
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.

221

B0193AX Rev Z

7. BIAS Bias 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 setting UNACK false.
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.

3=

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:

Bit
Number*
(0 to 31)

Name

24

LLA

25

HHA

29
30

INH
UNACK

Description When True


Low-Low Absolute Alarm
Inhibited
High-High Absolute Alarm
Inhibited
Inhibit Alarm
Unacknowledged

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B8

B9

B7

LLA

B6

HHA

B5

B4

B3
INH

B1

UNACK B2

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

INHSTA

Boolean
Connection
(B32 to B1)
INHSTA.B8
INHSTA.B7
INHSTA.B3
INHSTA.B2

* Bit 0 is the least significant bit (starting from the right).

222

INITI

Initialization In defines the source block and parameter that drives this
block into initialization. The source for this short integer input is the initialization 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 preserve backward compatibility, the INITI parameter has been maintained
for use in existing configurations. Existing configurations do not need to
reconfigure their cascades. The logic to set or reset the INITI short value
is maintained, but the setting of the handshaking bits, via the INITIINITO connection, is eliminated.

INITLR

Initialize Local/Remote is an integer input that specifies the desired state


of the LR input during initialization, where:

7. BIAS Bias Block

B0193AX Rev Z

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

223

B0193AX Rev Z

7. BIAS Bias Block

short value has been maintained, but the setting of the handshaking bits,
via the INITI-INITO connection, is eliminated.

224

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

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-character 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 displays. 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 blocks
parameters are honored (subject to the usual access rules) only from the
workstation whose identifier matches the contents of LOCKID.
LOCKRQ can be set false by any workstation at any time, whereupon a
new LOCKRQ is accepted, and a new ownership workstation identifier
written to LOCKID.

LOCSP

Local Bias Secure is a boolean input. When true, LOCSP provides lockout
of user write access to the LR parameter. If LOCSP is configured true, the
block secures LR when it initializes and maintains LR in the secured state.
The LOCSW and REMSW overrides have higher precedence, but LR
remains secured when they are no longer asserted.

LOCSW

Local Switch is a boolean input. When true, LOCSW overrides the LR


and INITLR parameters and drives the block to the Local state. If both
LOCSW and REMSW are true, LOCSW has priority.

7. BIAS Bias Block

B0193AX Rev Z

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

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 setpoint 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 destination.

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 specific algorithm. 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 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 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 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.

225

B0193AX Rev Z

7. BIAS Bias Block

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

226

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 failsafe 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 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 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 Manual 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 blocks 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 workstation.

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

7. BIAS Bias Block

B0193AX Rev Z

(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

NASTDB

2 = Suppress nuisance alarms by delaying both the Alarm Detection and the Return-to-Normal by the length of time specified in
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
alarms detection and the announcement of the alarm. The parameter
value ranges from zero (default, no delay) to 2147483647 ms.

227

B0193AX Rev Z

7. BIAS Bias Block

OSV

Output Span Variance is a real input that defines the amount by which
the output clamp limits (HOLIM, LOLIM) can exceed the specified output range, as defined by HSCO1 and LSCO1.

OUT

Output, in Auto mode, is the result of the block algorithm applied to one
or more input variables. In Manual, OUT is unsecured, and can be set by
you or by an external task.

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 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 blocks 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
0
1
2
3
4
5
6

Length
0.1 sec
0.5 sec*
1.0 sec
2.0 sec
10 sec
30 sec
1 min

Period
7
8
9
10
11
12
13

Length
10 min
60 min
0.2 sec
5.0 sec**
0.6 sec***
6.0 sec****
0.05 sec*****

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

228

7. BIAS Bias Block

B0193AX Rev Z

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 Control Processor is 0.5 sec. Refer to the appropriate Integrated Control Software 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 connections between each primary-secondary block combination. These connections include BCALCI/BCALCO and OUT/RSP (or OUT/MEAS).
Except for the most primary controller block, Foxboro 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 closing 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
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

229

B0193AX Rev Z

7. BIAS Bias Block

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

INIT_U

2
3

PRI_OPN
INIT_C

PRI_CLS

Unconditional initialization of the primary


cascade is in progress.
The primary cascade is open.
Conditional initialization of the primary
cascade is in progress.
The primary cascade is closed.

PRSCON

Present Control state is a short integer data store that contains the substates of Auto:
1 = Holding
2 = Tracking
3 = Controlling (not open loop)

PRTYPE

Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. The PRTYPE output of this block
includes the following alarm types:
0 = No active alarm
1 = High Absolute
2 = Low Absolute
3 = High High
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 connectable output parameter. Available bits for this block are provided below.

230

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

8
B24

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

7. BIAS Bias Block

Bit
Number1
30
29
25
24
17
16
5
4
3
2
1
0
1.

B0193AX Rev Z

Definition

Contents

Alarms Unacknowledged
Alarms Inhibited
High-High Absolute Alarm
Low-Low Absolute Alarm
High Absolute Alarm
Low Absolute Alarm
Manual
Low Limited
High Limited
Uncertain
Out-of-Service
Bad

ALMSTA.UNA
ALMSTA.INH
ALMSTA.HHA
ALMSTA.LLA
ALMSTA.HMA
ALMSTA.LMA
BLKSTA.MA
PNT.LLO status
PNT.LHI status
MEAS.ERR status
MEAS.OOS status
MEAS.BAD status

Boolean Connection
(B32 to B1)
QALSTA.B2
QALSTA.B3
QALSTA.B7
QALSTA.B8
QALSTA.B15
QALSTA.B16
QALSTA.B27
QALSTA.B28
QALSTA.B29
QALSTA.B30
QALSTA.B31
QALSTA.B32

Bit 0 is the least significant bit (starting from the right).

RBIAS

Remote Bias is the selected bias source when LR is set to Remote. Typically, 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 engineering 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 engineering 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 designated range.

SUM

Sum is a real output that represents the output of the Bias summer. SUM
is always active regardless of the Manual/Auto state.

TYPE

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

UNACK

Unacknowledge is a boolean output that the block sets to True when it


detects an alarm. It is typically reset by operator action.

231

B0193AX Rev Z

7. BIAS Bias Block

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 determines the bias source at any time.
When LR is switched to local (false), the block sets INITO to true and releases the BIAS parameter, 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 Supervisory. The clamp limits used are the ratio/bias scale limits HSCI2 and LSCI2. If the set point value
before clamping is equal to or less than LCSI2, status bit LLO of SPT is set true. If the value
before clamping is equal to or higher than HSCI2, status bit LHI of SPT is true.
The BIAS block has two output states, Auto and Manual. In Manual, the block releases the output, 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 blocks 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

232

7. BIAS Bias Block

B0193AX Rev Z

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 values. 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 parameter, sets BCALCO to true (requesting upstream blocks to perform their own explicit initialization), 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 transfer for the downstream block.
For the BIAS block, BLKSTA includes bits which indicate when the downstream output is limited 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,
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 parameter 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.

233

B0193AX Rev Z

7. BIAS Bias Block

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 setting. 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:
If there are no downstream control blocks, then link the BCALCI parameters to the OUT parameter (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 blocks BCALCO
parameter and link the downstream blocks MEAS parameter to OUT (see Figure 7-3).

234

7. BIAS Bias Block

B0193AX Rev Z

RBIAS

MEAS

BIAS

AOUT

MEAS

OUT

BCALCO

BCALCI

Figure 7-3. Configuration for AOUT Downstream Block

If the secondary block is a DGAP or PTC block, link BCALCI to the secondary blocks BCALCO
parameter (see Figure 7-4). Link OUT to the secondary blocks RSP.
RBIAS

MEAS

BIAS

OUT

RSP

BCALCI

DGAP or
PTC

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

BIAS
PRIBLK=1

BIAS
PRIBLK=0

BCALCI

OUT

BCALCO

BCALCI

MEAS
AOUT
PRIBLK=1

BCALCO

Figure 7-5. Cascade Configuration

235

B0193AX Rev Z

7. BIAS Bias Block

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 initialization, the acknowledgement is not required and a Hold of one cycle only occurs.
If you set the PRIBLK parameter in the BIAS block to 1, the user must use PRITIM to hold the
blocks output for x seconds (PRITIM=x) during a manual to automatic mode change.
However, the warning W48 - INVALID BLOCK OPTION appears when you configure
PRITIM to 0.0 and PRIBLK to 1. To resolve this error, set PRITIM to be greater than 0 seconds.

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 support connectivity of I/A Series control stations to various bus resident devices via a general purpose 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
External Device

Input Processing

To Upstream
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 a Foxboro
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 Z

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

no-con/no-set

2 blanks

1 to 12 chars

Configurable Parameters
INPUTS
NAME

block name

string

TYPE

block type

short integer no-con/no-set

BIN_TYPE 148

DESCRP

block description

string

2 blanks

1 to 32 chars

PERIOD

block sample time

short integer no-con/no-set

0 to10, and 13 for CPs,


0 to 12 for Gateways

PHASE

block execution phase

short integer no-con/no-set

---

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

con/set

no-con/no-set

MA

manual/auto switch

boolean

0 to 1

INITMA

initialize manual/auto

short integer no-con/no-set

0 to 2

BIN

binary input

boolean

0 to 1

SELOPT

selection option

short integer no-con/no-set

1 = set False (0)


2 = set True (1)
0 or 3 = retain last
value

SIMOPT

simulation option

boolean

no-con/no-set

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

con/set

8. BIN Binary Input Block

B0193AX Rev Z

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 to 1

INHOPT

inhibit option

short

no-con/no-set

0 to 3

INVALM

invert alarm

boolean

no-con/no-set

0 to 1

INHIB

alarm inhibit

boolean

con/set

0 to 1

INHALM

inhibit alarm

packed b

con/set

0 x FFFF

MANALM

manual alarm option

short integer no-con/set

0 to 1

SAO

state alarm option

boolean

no-con/no-set

0 to 1

SAP

state alarm priority

integer

con/set

1 to 5

SAG

state alarm group

short

no-con/set

1 to 8

BAO

bad alarm option

boolean

no-con/no-set

0 to 1

BAT

bad alarm text

string

no-con/no-set

blank

1 to 32 chars

BAP

bad alarm priority

integer

con/set

1 to 5

BAG

bad alarm group

short

no-con/set

1 to 8

SCOPT

state change option

short

no-con/no-set

0 to 3

SCGRP

state change group

short

no-con/set

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 to32767 sec

NASTDB

nuisance alarm suppression deadband

long integer

no-con/set

0 to 2147483647

NASOPT

nuisance alarm suppression option

short

no-con/set

0 to 2

integer

con/no-set

-32768 to 32767

Non-Configurable Parameters
OUTPUTS
ACHNGE

alternate change

ALMSTA

alarm status

packed long con/no-set

0 to 0xFFFFFFFF

BLKSTA

block status

packed long con/no-set

0 to 0xFFFFFFFF

CIN

block output

boolean

con/set (in manual) 0

0 to 1

CRIT

alarm criticality

integer

con/no-set

0 to 5

INHSTA

inhibit status

packed long con/no-set

0 to 0xFFFFFFFF

PRTYPE

priority type

integer

con/no-set

0 to 8

QALSTA

quality status

pack_b

con/no-set

0 to 0xFFFF

TSTAMP

time stamp

long integer

con/no-set

ms after midnight

UNACK

unacknowledged alarm

boolean

con/no-set

0 to 1

VALSTS

FF value status

integer

con/no-set

0 to 0xFFFF

DATA STORES
ALMOPT

alarm options

packed long con/no-set

0 to 0xFFFFFFFF

DEFINE

no configuration errors

boolean

no-con/no-set

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 to 1

DEV_ID

device identifier

character

no-con/no-set

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

6-character array

239

B0193AX Rev Z

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
(CP270 Only)

Alarm Options contain packed long values representing the alarm types
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
Number*
(0 to 31)

Boolean
Connection
(B32 to B1)

Configured Alarm Option, When True

0 (lsb)
Alarm Group 8 in Use
ALMOPT.B32
1
Alarm Group 7 in Use
ALMOPT.B31
2
Alarm Group 6 in Use
ALMOPT.B30
3
Alarm Group 5 in Use
ALMOPT.B29
4
Alarm Group 4 in Use
ALMOPT.B28
5
Alarm Group 3 in Use
ALMOPT.B27
6
Alarm Group 2 in Use
ALMOPT.B26
7
Alarm Group 1 in Use
ALMOPT.B25
22
Bad I/O Alarm Configured
ALMOPT.B10
26
State Alarm Configured
ALMOPT.B6
*Bit 0 is the least significant bit (starting from the right).
There are no mnemonic names for the individual bits of ALMOPT
Alarm Status is a 32-bit output, bit-mapped to indicate the blocks alarm
states. Table 8-3 shows the bits used by the BIN block.

CRIT

PRTYPE

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B9

B10
BAD

B8

B7

B6
STA

B5

B4

B3
INH

B1

240

UNAK B2

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

ALMSTA
(CP270 Only)

8. BIN Binary Input Block

B0193AX Rev Z

Table 8-3. ALMSTA Parameter Format

Bit
Number
(0 to 31)*

Name

0 to 4

PTYP_MSK

5 to 7
22
26
29

CRIT_MSK
BAD
STA
INH

30

UNAK

Description,
When True
Priority Type: See PRYTPE parameter for values used in the BIN block
Criticality: 1 (highest priority) to 5
Bad I/O Alarm
State Alarm
Inhibit Alarm. This bit is set when
any of the blocks alarms is inhibited
Unacknowledged

Boolean
Connection
(B32 to B1)
----ALMSTA.B10
ALMSTA.B6
ALMSTA.B3
ALMSTA.B2

*Bit 0 is the least significant bit (starting from the right).

AMRTIN
(CP270 Only)

Alarm Message Regeneration Time Interval specifies the rate at which


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
(CP270 Only)

Alarm Name is a user-defined string of up to 12 characters which serves as


a point descriptor label for Bad alarm, state alarm and state change messages (for example, PLT3 F2 SDR).

BAG
(CP270 Only)

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
(CP270 Only)

Bad Alarm Option is a configurable option that enables alarm generation


for each state of CIN.BAD.

BAP
(CP270 Only)

Bad Alarm Priority is an integer input, ranging from 1 (highest priority) to


5 (default), that sets the priority level of the Bad alarm.

BAT
(CP270 Only)

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


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 Z

8. BIN Binary Input Block

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

Bit Number*
(0 to 31)
8
11
14
15
23

Name
FBM
MA
UDEF
ON
DCIX

Description When True


Bad Status of ECB
Manual = 0, Auto = 1
Block Undefined
Block ON
Enhanced DCI block (CP270 Only)

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

8
B24

B23

B22

B20

B21
MA

B19

B17

UDEF B18

ON

B16

B15

B14

B13

B12

B11

B10

DCIX B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

FBM

BLKSTA

Boolean Connection
(B32 to B1)
BLKSTA.B24
BLKSTA.B21
BLKSTA.B18
BLKSTA.B17
BLKSTA.B9

* Bit 0 is the least significant bit (starting from the right).

242

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
CP270 Only

Criticality is an integer output that indicates the priority of the blocks


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 configuration errors. The default is 1 (no configuration errors). When the block initializes, 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 blocks function (for example, PLT 3 FURNACE 2 HEATER CONTROL).

DEV_ID

Device Identifier is a character array that specifies the 6-character identifier 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 configuration error which caused the blocks DEFINE parameter to be set False,

8. BIN Binary Input Block

B0193AX Rev Z

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 blocks detail display. For the BIN block, the following list shows the
possible messages you may see:
ERCODE Message
W52 INVALID I/O CHANNEL/GROUP NO.
W62 UNRESOLVED CONNECTION
W65 INVALID POINT
ADDRESS
W66 DUPLICATE CONNECTION
W67 INSUFFICIENT FBM
MEMORY/CONNECTIONS
W68 INVALID DEVICE
CONNECTION
W69 INVALID POINT
CONNECTION

Meaning
PNT_NO string is blank.
Connection not yet resolved. (Block
remains defined.)
FBM parsing algorithm finds that a
used PNT_NO is invalid.
There is a duplicate connection to a
particular point.
There is no available memory or
point connections in the FBM.
The device connection is invalid.
The point connection is invalid.

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 Z

Inhibit Alarm contains packed boolean values that represent alarm generation inhibit request for each type of alarm configured in the block: for the
BIN block, only the following bits are used:

Bit
Number*
(0 to 15)

Description,
When True

0
B16

B15

B14

B13

B12

B11

B10

B9

B7

B6

B5

B4

B3

B2

B1

15 14 13 12 11 10 9

B8

INHALM
(CP270 Only)

8. BIN Binary Input Block

Boolean
Connection
(B16 to B1)

6
Inhibit Bad I/O Alarm
INHALM.B10
10
Inhibit State Alarm
INHALM.B6
*Bit 0 is the least significant bit (starting from the right).
There are no mnemonic names for the individual bits of INHALM.

244

INHIB
(CP270 Only)

Inhibit is a configurable, connectable and settable boolean that, when set,


suppresses all alarm message reporting. INHIB affects only alarm message
reporting; the alarm handling and detection functions are determined by
the INHOPT setting.

INHOPT
(CP270 Only)

Inhibit Option specifies the following actions applying to all block alarms:
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.

8. BIN Binary Input Block

Inhibit Status contains packed long values that represent the current
inhibit status of each alarm type configured in the block. Table 8-4 shows
how the parameter is used with the BIN block.

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B9

BAD B10

B8

B7

STA B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

INHSTA
(CP270 Only)

B0193AX Rev Z

Table 8-4. INHSTA Parameter Format

Bit
Number*
(0 to 31)

Name

Description,
When True

22
BAD
Bad I/O Alarm Inhibited
26
STA
State Alarm Inhibited
*Bit 0 is the least significant bit (starting from the right).
INITMA

INHSTA.B10
INHSTA.B6

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.

INVALM
(CP270 Only)

Boolean
Connection
(B32 to B1)

The MA value from the checkpoint file if INITMA = 2.

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

B0193AX Rev Z

8. BIN Binary Input Block

In any case, State alarm detection is disabled when option SAO is false.

246

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 CompoundName 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
(CP270 Only)

Invert Option, when true, causes the block to invert the value of the FBM
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
(CP270 Only)

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-character letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.

LOCKRQ
(CP270 Only)

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 displays. 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 blocks 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 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 blocks 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 settable.

MANALM
(CP270 Only)

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 BIN block:

8. BIN Binary Input Block

B0193AX Rev Z

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
(CP270 Only)

Nuisance Alarm Suppression Alarm Option is a configurable, 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 Detection and the Return-to-Normal by the length of time specified in
NASTDB

NASTDB
(CP270 Only)

Nuisance Alarm Suppression Time Deadband is used to reduce the


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
(CP270 Only)

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
(CP270 Only)

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 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 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 blocks execution time base,
and allowable PHASE values. For CP stations, PERIOD values range
247

B0193AX Rev Z

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 users guide.
Period
0
1
2
3
4
5
6

Length
0.1 second
0.5 second*
1.0 second
2.0 seconds
10 seconds
30 seconds
1 minute

Period
7
8
9
10
11***
12***
13****

Length
10 minutes
60 minutes
0.2 second
5.0 seconds**
------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, FCP270, and ZCP270.

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 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) Users 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
InFusion Enterprise Control System: Implementing PROFIBUS-DP
Networks (B0750BE) for further details.

248

For the HART interface (FBM214/214b/215/216/216b/218),


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.

8. BIN Binary Input Block

B0193AX Rev Z

Refer to HART Communication Interface Modules Users Guide


(B0400FF) for details.
For the Modbus interface (FBM224), PNT_NO must be configured to contain the address of a set of coils in a Modbus device.
Refer to Modbus Communication Interface Module (FBM224)
Users 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) Users 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 connection, as described in Implementing FOUNDATION fieldbus on an
I/A Series System (B0700BA) and InFusion Enterprise Control System: Implementing FOUNDATION fieldbus (B0750BC).
PRTYPE
CP270 Only

Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. For the BIN block:
0 = No alarm
8 = Bad I/O alarm
9 = State alarm

QALSTA
(CP270 Only)

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


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

Bit
Number1
30
29
26
22
5
2

Definition
Alarms Unacknowledged
Alarms Inhibited
State Alarm
Bad Alarm
Manual2
Uncertain

Contents
ALMSTA.UNA
ALMSTA.INH
ALMSTA.STAL
ALMSTA.IOBD
~BLKSTA.MA
CIN.ERR status

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

8
B24

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Boolean Connection
(B32 to B1)
QALSTA.B2
QALSTA.B3
QALSTA.B6
QALSTA.B10
QALSTA.B27
QALSTA.B30
249

B0193AX Rev Z

Bit
Number1
1
0

8. BIN Binary Input Block

Definition
Out-of-Service
Bad

1.
2.

250

Contents
CIN.OOS status
CIN.BAD status

Boolean Connection
(B32 to B1)
QALSTA.B31
QALSTA.B32

Bit 0 is the least significant bit (starting from the right).


Bit 5 is the inverse of BLKSTA.MA bit (BLKSTA.B291).

SAG
(CP270 Only)

State Alarm Group is a short integer input that directs State alarm messages to one of eight groups of alarm devices.

SAO
(CP270 Only)

State Alarm Option is a configurable boolean which, when true, enables


the generation of State Alarms.

SAP
(CP270 Only)

State Alarm Priority is an integer input, ranging from 1 (highest priority)


to 5 (default), that sets the priority level of the State alarm.

SCGRP
(CP270 Only)

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
(CP270 Only)

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
(CP270 Only)

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

SCTXT1
(CP270 Only)

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

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

8. BIN Binary Input Block

B0193AX Rev Z

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 milliseconds past midnight, is read from the FBM when it is available there; otherwise, 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 client/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 acyclic communication between the FBM222 and the
PROFIBUS slave device, as described in Implementing PROFIBUS-DP Networks (B0750BE). The parameter is not used for
cyclic communications.

UNACK
CP270 Only

Unacknowledged is a Boolean output parameter that is set True for notification 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 Z

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
Input
Data

AND

CIN

AUTO

SIMOPT
ECB Good

BIN

AND
AND

CIN

AUTO
ECB Good

ECB Bad or Out-of-Service

AND
AND
AUTO

SELOPT=1
SELOPT=2
SELOPT=0 or 3

BIN = 0
BIN = 1
BIN = Last Value

SELOPT=1
SELOPT=2
SELOPT=0

CIN = 0
CIN = 1
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 Z

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, connections 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 connections 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 UNRESOLVED CONNECTION with ERCODE = 62.

253

B0193AX Rev Z

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 status 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 Outof-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 parameter 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 Z

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 Z

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
INVALM = 0 or
INVALM =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 information 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).

256

When all input values return to good status and INHOPT is set appropriately.

8. BIN Binary Input Block

B0193AX Rev Z

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 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 corresponding 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 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. Parameters NASDB and
NASOPT provide control of nuisance alarms by applying a delay (set in NASDB) to return-tonormal 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 Z

8. BIN Binary Input Block

NOTE

For a FOUNDATION fieldbus (FF) connection, a 4-byte ms since midnight timestamp 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 blocks 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
External Inputs

Input Processing

To Upstream
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 specified 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 blocks selection algorithm 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 Z

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

9.4 Parameters
Table 9-1. BINR Block Parameters
Name

Description

Type

Accessibility

Default

Units/Range

1 to 12 chars

Configurable Parameters
INPUTS
NAME

block name

string

no-con/no-set

2 blanks

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

0 to10, and 13 for CPs,


0 to 12 for Gateways

PHASE

block execution phase

short integer

no-con/no-set

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 to 1

INITMA

initialize manual/auto

short integer

no-con/no-set

0 to 2

260

9. BINR Redundant Binary Input Block

B0193AX Rev Z

Table 9-1. BINR Block Parameters (Continued)


Name

Description

Type

Accessibility

Default

Units/Range

ARBOPT

arbitration option

boolean

no-con/no-set

0 = dual redundant
1 = triple redundant

BIN

binary input

boolean

con/set

0 to 1

BIN_1

primary boolean input

boolean

con/no-set

0 to 1

BIN_2

secondary boolean input

boolean

con/no-set

0 to 1

BIN_3

tertiary boolean input

boolean

con/no-set

0 to 1

ECBOPT

redundant ECB option

boolean

no-con/no-set

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 to 1

INHOPT

inhibit option

short

no-con/no-set

0 to 3

INVALM

inhibit alarm

boolean

no-con/no-set

0 to 1

INHIB

alarm inhibit

boolean

con/set

0 to 1

INHALM

inhibit alarm

packed b

con/set

0 x FFFF

MANALM

manual alarm option

short integer

no-con/set

0 to 1

SAO

state alarm option

boolean

no-con/no-set

0 to 1

SAP

state alarm priority

integer

con/set

1 to 5

SAG

state alarm group

short

no-con/set

1 to 8

BAO

bad alarm option

boolean

no-con/no-set

0 to 1

BAT

bad alarm text

string

no-con/no-set

blank

1 to 32 chars

BAP

bad alarm priority

integer

con/set

1 to 5

BAG

bad alarm group

short

no-con/set

1 to 8

SCOPT

state change option

short

no-con/no-set

0 to 3

SCGRP

state change group

short

no-con/set

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 to 32767 sec

NASTDB

nuisance alarm suppression deadband

long integer

no-con/set

0 to 2147483647

NASOPT

nuisance alarm suppression option

short

no-con/set

0 to 2

SELOPT

selection option

short integer

no-con/no-set

0 = retain previous value


1 = set False (0)
2 = set True (1)

SIMOPT

simulation option

boolean

no-con/no-set

0 = no simulation
1 = simulation

UPDPER

parm update period

integer

no-con/no-set

10000ms

0 to 2147483647 ms

integer

con/no-set

-32768 to 32767

Non-Configurable Parameters
OUTPUTS
ACHNGE

alternate change

ALMSTA

alarm status

packed long

con/no-set

bit map

BLKSTA

block status

packed long

con/no-set

0 to 0xFFFFFFFF

CIN

block output

boolean

con/set
(in manual)

0 to 1

CRIT

alarm criticality

integer

con/no-set

0 to 5

261

B0193AX Rev Z

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 to 0xFFFFFFFF

PRTYPE

priority type

integer

con/no-set

0 to 8

QALSTA

quality status

pack_b

con/no-set

0 to 0xFFFF

SELECT

selection indicator

short integer

con/no-set

0 to 3

TSTAMP

time stamp

long integer

con/no-set

ms after midnight

UNACK

unacknowledged alarm

boolean

con/no-set

0 to 1

VALSTS

FF value status

integer

con/no-set

0 to 0xFFFF

DATA STORES
ALMOPT

alarm options

packed long

con/no-set

0 to 0xFFFFFFFF

DEFINE

no config errors

boolean

no-con/no-set

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 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
(CP270 Only)

Alarm Options contain packed long values representing the alarm types
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

262

Bit
Number*
(0 to 31)

Configured Alarm Option, When True

0 (lsb)
1
2
3
4
5
6
7

Alarm Group 8 in Use


Alarm Group 7 in Use
Alarm Group 6 in Use
Alarm Group 5 in Use
Alarm Group 4 in Use
Alarm Group 3 in Use
Alarm Group 2 in Use
Alarm Group 1 in Use

Boolean
Connection
(B32 to B1)
ALMOPT.B32
ALMOPT.B31
ALMOPT.B30
ALMOPT.B29
ALMOPT.B28
ALMOPT.B27
ALMOPT.B26
ALMOPT.B25

9. BINR Redundant Binary Input Block

B0193AX Rev Z

Table 9-2. ALMOPT Parameter Format

Bit
Number*
(0 to 31)

Boolean
Connection
(B32 to B1)

Configured Alarm Option, When True

22
Bad I/O Alarm Configured
ALMOPT.B10
26
State Alarm Configured
ALMOPT.B6
*Bit 0 is the least significant bit (starting from the right).
There are no mnemonic names for the individual bits of ALMOPT
Alarm Status is a 32-bit output, bit-mapped to indicate the blocks alarm
states. Table 9-3 shows the bits used by the BINR block.

CRIT

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

BAD

B8

B7

B6
STA

B5

B4

B3
INH

B1

UNAK B2

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

ALMSTA
(CP270 Only)

PRTYPE

Table 9-3. ALMSTA Parameter Format

Bit Number
(0 to 31)*

Name

Description, When True

0 to 4

PTYP_MSK

5 to 7
22
26
29

CRIT_MSK
BAD
STA
INH

30

UNAK

Priority Type: See PRYTPE parameter for


values used in the BINR block
Criticality: 1 (highest priority) to 5
Bad I/O Alarm
State Alarm
Inhibit Alarm. This bit is set when any of
the blocks alarms is inhibited
Unacknowledged

Boolean
Connection
(B32 to B1)
----ALMSTA.B10
ALMSTA.B6
ALMSTA.B3
ALMSTA.B2

*Bit 0 is the least significant bit (starting from the right).

AMRTIN
(CP270 Only)

Alarm Message Regeneration Time Interval specifies the rate at which


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
(CP270 Only)

Alarm Name is a user-defined string of up to 12 characters which serves as


a point descriptor label for Bad alarm, state alarm and state change messages (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.
263

B0193AX Rev Z

9. BINR Redundant Binary Input Block

BAG
(CP270 Only)

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
(CP270 Only)

Bad Alarm Option is a configurable option that enables alarm generation


for each state of BIN_1.BAD, BIN_2.BAD and BIN_3.BAD.

BAP
(CP270 Only)

Bad Alarm Priority is an integer input, ranging from 1 (highest priority) to


5 (default), that sets the priority level of the Bad alarm.

BAT
(CP270 Only)

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


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) Users Guide (B0400FE) for further details.
For the FBM222 Redundant Profibus interface, the BIx_PT configuration string uses the FBM223 syntax with extensions for
PROFIBUS-PA status, custom status and other features. Refer to
InFusion Enterprise Control System: Implementing PROFIBUS-DP
Networks (B0750BE) for further details.

For the HART interface (FBM214/214b/215/216/216b/218),


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 Users 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
264

9. BINR Redundant Binary Input Block

B0193AX Rev Z

Modbus Communication Interface Module (FBM224) Users 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) Users 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 connection, as described in Implementing FOUNDATION fieldbus on an
I/A Series System (B0700BA) and InFusion Enterprise Control System: Implementing FOUNDATION fieldbus (B0750BC).
BI2_PT

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

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 operational states. For the BINR block, only the following bits are used:

Bit
Number*
(0 to 31)
0
1
2
8
9
10
11
14

BAD1
BAD2
BAD3
FBM1
FBM2
FBM3
MA
UDEF

Description When True


Primary Point is BAD (CP 270 Only)
Secondary Point is BAD (CP 270 Only)
Tertiary Point is BAD (CP 270 Only)
Bad Status of primary ECB
Bad Status of secondary ECB
Bad Status of tertiary ECB
Manual = 0, Auto = 1
Block Undefined

0
BAD1 B32

BAD2 B31

B29

BAD3 B30

4
B28

5
B27

6
B26

7
B25

8
FBM1 B24

FBM2 B23

B21

FBM3 B22

MA

B20

B19

UDEF B18

B17

B16

ON

B15

B14

B13

B12

B11

B10

B8

Name

DCIX B9

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Boolean
Connection
(B32 to B1)
BLKSTA.B32
BLKSTA.B31
BLKSTA.B30
BLKSTA.B24
BLKSTA.B23
BLKSTA.B22
BLKSTA.B21
BLKSTA.B18
265

B0193AX Rev Z

Bit
Number*
(0 to 31)
15
23

9. BINR Redundant Binary Input Block

Name
ON
DCIX

Description When True


Block ON
Enhanced DCI block (CP 270 Only)

Boolean
Connection
(B32 to B1)
BLKSTA.B17
BLKSTA.B9

* Bit 0 is the least significant bit (starting from the right).

266

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
CP270 Only

Criticality is an integer output that indicates the priority of the blocks


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 configuration errors. The default is 1 (no configuration errors). When the block initializes, 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 blocks 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-character 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 separate 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

9. BINR Redundant Binary Input Block

B0193AX Rev Z

ECBs are used depending on whether dual or triple redundancy is specified. This decision is based on the configured parameter ARBOPT.
ERCODE

Error Code is a character data store which indicates the type of configuration error which caused the blocks 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 blocks detail display. For the BINR block, the following list shows
the possible messages you may see:
ERCODE Message

Meaning

W52 INVALID I/O CHANNEL/GROUP NO.


W62 UNRESOLVED CONNECTION
W65 INVALID POINT ADDRESS

BI1_PT, BI2_PT, or BI3_PT


string is blank.
Connection is not yet resolved.
(Block remains defined.)
FBM parsing algorithm finds
that a used BIx_PT is invalid.
There is a duplicate connection
to a particular point.
There is no available memory or
point connections in the FBM.
The device connection is invalid.

W66 DUPLICATE CONNECTION


W67 INSUFFICIENT FBM MEMORY/CONNECTIONS
W68 INVALID DEVICE CONNECTION
W69 INVALID POINT CONNECTION

The point connection is invalid.

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)

267

B0193AX Rev Z

9. BINR Redundant Binary Input Block

W79 - INVALID PARAMETER INDEX (FBM228 only)


W81 - INVALID PARENT DCI ECB PERIOD/PHASE (FBM228
only).
Inhibit Alarm contains packed boolean values that represent alarm generation inhibit request for each type of alarm configured in the block: for the
BINR block, only the following bits are used:

Bit
Number*
(0 to 15)

Description,
When True

0
B16

B15

B14

B13

B12

B11

B10

B9

B7

B6

B5

B4

B3

B2

B1

15 14 13 12 11 10 9

B7

INHALM
(CP270 Only)

Boolean
Connection
(B16 to B1)

6
Inhibit Bad I/O Alarm
INHALM.B10
10
Inhibit State Alarm
INHALM.B6
*Bit 0 is the least significant bit (starting from the right).
There are no mnemonic names for the individual bits of INHALM.
INHIB
(CP270 Only)

Inhibit is a configurable, connectable and settable boolean that, when set,


suppresses all alarm message reporting. INHIB affects only alarm message
reporting; the alarm handling and detection functions are determined by
the INHOPT setting.

INHOPT
(CP270 Only)

Inhibit Option specifies the following actions applying to all block alarms:

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.

268

9. BINR Redundant Binary Input Block

Inhibit Status contains packed long values that represent the current
inhibit status of each alarm type configured in the block. Table 9-4 shows
how the parameter is used with the BINR block.

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

B23

B22

B21

B20

INHB3 B19

INHB2 B18

INHB1 B17

B16

B15

B14

B13

B12

B11

B10

B9

BAD

B8

B7

B6
STA

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

INHSTA
(CP270 Only)

B0193AX Rev Z

Table 9-4. INHSTA Parameter Format

Bit
Number*
(0 to 31)

Name

Description,
When True

13
Primary Point Bad Alarm Inhibited
14
Secondary Point Bad Alarm Inhibited
15
Tertiary Point Bad Alarm Inhibited
22
BAD
Bad I/O Alarm Inhibited
26
STA
State Alarm Inhibited
*Bit 0 is the least significant bit (starting from the right).

Boolean
Connection
(B32 to B1)
INHSTA.B19
INHSTA.B18
INHSTA.B17
INHSTA.B10
INHSTA.B6

INVALM
(CP270 Only)

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.

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

B0193AX Rev Z

9. BINR Redundant Binary Input Block

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.

270

IOMID1

Primary ECB Identifier is a configurable string that specifies the pathname of the ECB201 for the primary device, for the purpose of connecting to (accessing) a field parameter that resides in the primary field device
hosted by a (parent) ECB200/202.
IOMID1 has the form CompoundName:BlockName, where CompoundName 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 pathname of the ECB201 for the secondary device, for the purpose of connecting 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
(CP270 Only)

Invert Option, when true, causes the block to invert the value of the FBM
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
(CP270 Only)

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-character letterbug of the workstation and DEVNAME is the 1 to 6 character
logical device name of the Display Manager task.

LOCKRQ
(CP270 Only)

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 displays. 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 blocks parameters are
honored (subject to the usual access rules) only from the workstation

9. BINR Redundant Binary Input Block

B0193AX Rev Z

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 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 blocks 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 settable.

MANALM
(CP270 Only)

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 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
(CP270 Only)

Nuisance Alarm Suppression Alarm Option is a configurable, 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 Detection and the Return-to-Normal by the length of time specified in
NASTDB

NASTDB
(CP270 Only)

Nuisance Alarm Suppression Time Deadband is used to reduce the


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
(CP270 Only)

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
271

B0193AX Rev Z

9. BINR Redundant Binary Input Block

type. This means that CIN has transitioned from 1 to 0 if INVALM is


false, or 0 to 1 if INVALM is true.
NM1
(CP270 Only)

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 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 blocks 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 users guide.
Period
0
1
2
3
4
5
6

Length
0.1 second
0.5 second*
1.0 second
2.0 seconds
10 seconds
30 seconds
1 minute

Period
7
8
9
10
11***
12***
13****

Length
10 minutes
60 minutes
0.2 second
5.0 seconds**
------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, FCP270, and ZCP270.

PHASE

272

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

9. BINR Redundant Binary Input Block

B0193AX Rev Z

PRTYPE
CP270 Only

Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. For the BINR block:
0 = No alarm
8 = Bad I/O alarm
9 = State alarm

QALSTA
(CP270 Only)

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


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

Bit
Number1
30
29
26
22
15
14
13
12
11
10
5
2
1
0

Definition
Alarms Unacknowledged
Alarms Inhibited
State Alarm
Bad Alarm
Bad Tertiary FBM
Bad Secondary FBM
Bad Primary FBM
Bad Tertiary Point
Bad Secondary Point
Bad Primary Point
Manual2
Uncertain
Out-of-Service
Bad

1.
2.

Contents
ALMSTA.UNA
ALMSTA.INH
ALMSTA.STAL
ALMSTA.IOBD
BLKSTA.FBM3
BLKSTA.FBM2
BLKSTA.FBM1
BLKSTA.BAD3
BLKSTA.BAD2
BLKSTA.BAD1
BLKSTA.MA
CIN.ERR status
CIN.OOS status
CIN.BAD status

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

8
B24

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Boolean Connection
(B32 to B1)
QALSTA.B2
QALSTA.B3
QALSTA.B6
QALSTA.B10
QALSTA.B17
QALSTA.B18
QALSTA.B18
QALSTA.B20
QALSTA.B21
QALSTA.B22
QALSTA.B27
QALSTA.B30
QALSTA.B31
QALSTA.B32

Bit 0 is the least significant bit (starting from the right).


Bit 5 is the inverse of the BLKSTA.MA bit (BLKSTA.B21).

SAG
(CP270 Only)

State Alarm Group is a short integer input that directs State alarm messages to one of eight groups of alarm devices.

SAO
(CP270 Only)

State Alarm Option is a configurable boolean which, when true, enables


the generation of State Alarms.

273

B0193AX Rev Z

274

9. BINR Redundant Binary Input Block

SAP
(CP270 Only)

State Alarm Priority is an integer input, ranging from 1 (highest priority)


to 5 (default), that sets the priority level.

SCGRP
(CP270 Only)

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
(CP270 Only)

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
(CP270 Only)

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

SCTXT1
(CP270 Only)

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

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 algorithm 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 configured 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.

9. BINR Redundant Binary Input Block

B0193AX Rev Z

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.

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 client/server access to device block parameters, as described in
Implementing FOUNDATION fieldbus on an I/A Series System
(B0700BA) or InFusion Enterprise Control System: Implementing
FOUNDATION fieldbus (B0750BC). The parameter is not used for
publisher/subscriber connections.
For the FBM222, the parameter defines the update period for acyclic communication between the FBM222 and the
PROFIBUS slave device, as described in InFusion Enterprise
Control System: Implementing PROFIBUS-DP Networks
(B0750BE). The parameter is not used for cyclic communications.

UNACK
CP270 Only

Unacknowledged is a Boolean output parameter that is set True for notification 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 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.
275

B0193AX Rev Z

9. BINR Redundant Binary Input Block

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.

9.5 Functions
9.5.1 Detailed Diagram
IOMID1
BI1_PT
SIMULATED
VALUE
IOMID2
BI2_PT

BIN

AND

CIN

AUTO
SIMOPT
0
IOMID3
BI3_PT

SELECT
BIN_1

1
ECBOPT:
False = 1 ECB
True = 2 or 3 ECBs

BIN

AND

BIN_2
ARBOPT

0
INVALID

AUTO

BIN_3
SELOPT
SELOPT=1
SELOPT=2
SELOPT=0

SIMOPT
ECB Bad or Out-of-Service

CIN

AND

AND
AUTO

SELOPT=1
SELOPT=2
SELOPT=0

BIN = 0
BIN = 1
BIN = Last Value
CIN = 0
CIN = 1
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 redundant 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-

276

9. BINR Redundant Binary Input Block

B0193AX Rev Z

dancy (DMR) is specified, IOMID2 must be configured, and IOMID3 is ignored. With triple
redundancy (TMR), all three IOMIDx values must be configured.

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, connections 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
ECBOPT = 0
ECBOPT = 1
ECBOPT = 1

ARBOPT = 0 (DMR)
ARBOPT = 1 (TMR)
ARBOPT = 0 (DMR)
ARBOPT = 1 (TMR)

2 DCI connections to one ECB


3 DCI connections to one ECB
2 DCI connections to two ECBs
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.

277

B0193AX Rev Z

9. BINR Redundant Binary Input Block

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 connections 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 UNRESOLVED 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 according 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 Outof-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.

278

9. BINR Redundant Binary Input Block

B0193AX Rev Z

The status of BIN_x is set to Error if the status information indicates an uncertain or questionable
value of the field device parameter.
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 addition, 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
Valid

BIN_2
Valid

BIN_3
Valid

Yes
Yes

Yes
Yes

Yes
Yes

Yes
Yes
Yes
Yes
Yes
No
No
Yes
No
No
No

Yes
Yes
Yes
No
No
Yes
Yes
No
Yes
No
No

Yes
No
No
Yes
Yes
Yes
Yes
No
No
Yes
No

Test
BIN_1, BIN_2 values are equal.
BIN_1, BIN_2 values are different
and BIN_1, BIN_3 values are equal.
All other cases
BIN_1, BIN_2 values are equal.
BIN_1, BIN_2 values are different.
BIN_1, BIN_3 values are equal.
BIN_1, BIN_3 values are different.
BIN_2, BIN_3 values are equal.
BIN_2, BIN_3 values are different.
(No Test)
(No Test)
(No Test)
(No Test)

Select
BIN_1
BIN_1
BIN_2
BIN_1
See Case 1
BIN_1
See Case 2
BIN_2
See Case 3
BIN_1
BIN_2
BIN_3
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

279

B0193AX Rev Z

9. BINR Redundant Binary Input Block

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

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-ofService bit is set, the value of BIN is also copied to the value of CIN. If either the Bad or Out-ofService 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.

280

9. BINR Redundant Binary Input Block

B0193AX Rev Z

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.

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
Alarm Type

Option

Priority

Group

Text

Default
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 information 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 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 (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)

281

B0193AX Rev Z

9. BINR Redundant Binary Input Block

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

282

9. BINR Redundant Binary Input Block

B0193AX Rev Z

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 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. Parameters NASDB and
NASOPT provide control of nuisance alarms by applying a delay (set in NASDB) to return-tonormal condition (NASOPT = 0), to alarm detection (NASOPT=1) or to both (NASOPT=2).
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 timestamp is provided by the FF FBM and stored in the TSTAMP parameter.

283

B0193AX Rev Z

284

9. BINR Redundant Binary Input Block

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)
Inversion

Criticality
Priority Type

SAP_2 through SAP_8 (7 lines)


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 Z

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

0 to 13

PHASE

block phase number

integer

no-con/no-set

---

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 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 to 1

INHALM

Inhibit alarm

pack_b

con/set

0 to FFFF

SAP_1 to SAP_8

pt1 to pt8 alarm priority

integer

con/set

[1..5]

INHOPT

inhibit option

short

no-con/no-set

0 to 3

IVO_1 to IVO_8

pt1 to pt8 invert option

boolean

no-con/no-set

0 to 1

SAG_1 to SAG_8

pt1 to pt8 alarm group

short

no-con/set

[1..8]

SAO_1 to SAO_8

boolean alarm option 1 to 8

boolean

no-con/no-set

0 to 1

AMRTIN

alarm regeneration timer

integer

no-con/no-set

0 to 32767 s

alarm status

pack_l

con/no-set

bit map

BLKSTA

block status

pack_l

con/no-set

bit map

CRIT

criticality

integer

con/no-set

[0..5]

INHSTA

inhibit status

pack_l

con/no-set

0 to FFFFFFFF

PRTYPE

priority type

integer

con/no-set

[0..10]

UNACK

alarm notification

boolean

con/no-set

0 to 1

alternate change

integer

con/no-set

-32768 to 32767

ALMOPT

alarm options

pack_l

no-con/no-set

0 to FFFFFFFF

DEFINE

no config errors

boolean

no-con/no-set

0 to 1

ERCODE

config error

string

no-con/no-set

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 to 1

OWNER

owner name

string

no-con/set

blank

1 to 32 chars

Non-Configurable Parameters
OUTPUTS
ALMSTA

DATA STORES
ACHNGE

10.3.1 Parameter Definitions


ACHNGE

286

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


block parameter is changed via a Set command.

10. BLNALM Boolean Alarm Block

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.

Bit Number*
(0 to 31)

Configured Alarm Option


When True

0
1
7

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

ALMOPT

B0193AX Rev Z

Boolean Connection
(B32 to B1)

Alarm Group 8 in Use


Alarm Group 7 in Use
Alarm Group 1 in Use

ALMOPT.B32
ALMOPT.B31
ALMOPT.B25

* Bit 0 is the least significant bit (starting from the right).


There are no mnemonic names for the individual bits of ALMOPT.
Alarm Status is a 32-bit output, bit-mapped to indicate the blocks alarm
states. For the BLNALM block, only the following bits are used:

Bit
Number
(0 to 31)*

PNT1 to PNT8

Name

Description When True

0 to 4

PTYP_MSK

5 to 7

CRIT_MSK

Priority Type: See parameter


PRTYPE for values used in
the BLNALM block
Criticality; 5 = lowest
priority, 1= highest
Points in STATE Alarm

8 to 15

PNT1 to
PNT8
26
STAL
State Change Alarm
29
INH
Alarm inhibit
30
UNAK
Unacknowledged
* Bit 0 is the least significant bit (starting from the right).

CRIT

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

STAL B6

B5

B4

B3
INH

B1

UNAK B2

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

ALMSTA

PRTYPE

Boolean
Connection
(B32 to B1)
ALMSTA.B32
ALMSTA.B28
ALMSTA.B27
ALMSTA.B25
ALMSTA.B24
ALMSTA.B17
ALMSTA.B6
ALMSTA.B3
ALMSTA.B2

287

B0193AX Rev Z

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

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).
Block Status is a 32-bit output, bit-mapped to indicate the blocks operational states. For the BLNALM block, only the following bits are used:

Bit
Number*
(0 to 31)
14
15
20

Name
UDEF
ON
WLCK

0
B32

1
B31

Boolean
Connection
(B32 to B1)

Description When True


Undefined
Compound On
Workstation Lock

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B17

UDEF B18

B16

ON

B15

B14

B13

B11

WLCK B12

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

BLKSTA

BLKSTA.B18
BLKSTA.B17
BLKSTA.B12

* Bit 0 is the least significant bit (starting from the right).

288

CRIT

Criticality is an integer output that indicates the priority, ranging from


1 to 5, of the blocks 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 configuration errors. The default is 1 (no configuration errors). When the block initializes, 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


blocks function (for example, PLT 3 FURNACE 2 HEATER CONTROL).

ERCODE

Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the blocks

10. BLNALM Boolean Alarm Block

B0193AX Rev Z

DEFINE parameter to be set false, but not the warning situations. Validation of configuration errors does not proceed past the first error encountered 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 following list specifies the possible values of ERCODE, and the significance of
each value in this block:
Message

Value

W43 INVALID PERIOD/


PHASE COMBINATION

PHASE does not exist for given block


PERIOD, or block PERIOD not
compatible with compound PERIOD.
The source parameter specified in the
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.
A parameter value is not in the acceptable range.
A Database Installer error has
occurred.

W46 INVALID INPUT


CONNECTION

W53 INVALID
PARAMETER VALUE
W58 INSTALL ERROR;
DELETE/UNDELETE
BLOCK

Description When True

0
B16

B15

B14

B13

B5

B12

B4

B11

B3

Bit Number*
(0 to 15)

10

B10

11

B9

12

B8

13

B7

14

B6

15

B2

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:

B1

INHALM

Boolean Connection
(B16 to B1)

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 bit (starting from the right).

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 Z

10. BLNALM Boolean Alarm Block

setting. Alarms may also be inhibited based on INHALM and 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.
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.
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.
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.

1=

2=

3=

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:

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

INHSTA

INH 1-8

Bit
Number*
(0 to 31)
24 to 31

Name
INH

Description When True


Inhibit Alarm status for
boolean outputs 1-8

Boolean
Connection
(B32 to B1)
INHSTA.B8
INHSTA.B1

* Bit 0 is the least significant bit (starting from the right).

290

IN_1 to IN_8

Inputs 1 through 8 are boolean inputs. They identify the upstream outputs 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 output. 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 reconfiguring the block.

10. BLNALM Boolean Alarm Block

B0193AX Rev Z

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-character 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 displays. 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 blocks
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 written to LOCKID.

LOOPID

Loop Identifier is a configurable 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.

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 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 blocks 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 Z

10. BLNALM Boolean Alarm Block

Period
0
1
2
3
4
5
6

Length
0.1 sec
0.5 sec*
1.0 sec
2.0 sec
10 sec
30 sec
1 min

Period
7
8
9
10
11
12
13

Length
10 min
60 min
0.2 sec
5.0 sec**
0.6 sec***
6.0 sec****
0.05 sec*****

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

292

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 Control Processor is 0.5 sec. 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
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).

10. BLNALM Boolean Alarm Block

B0193AX Rev Z

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 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.
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
IN_1
IN_2
IN_3

INHALM Bit
0x8000
0x4000
0x2000

293

B0193AX Rev Z

10. BLNALM Boolean Alarm Block

Table 10-2. INHALM Values (Continued)

POINT
IN_4
IN_5
IN_6
IN_7
IN_8

INHALM Bit
0x1000
0x0800
0x0400
0x0200
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
Value

Application

Boolean Value (VALUE)

False State Name (STATE0)


True State Name (STATE1)

Current
State

State Name (STATE) to


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 command 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 Z

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

string

no-con/no-set

2 blanks

1 to 12 chars

Configured Parameters
INPUTS
NAME

block name

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

0 to 1

2 blanks

1 to 32 chars

Non-Configured Parameters
OUTPUT DATA VARIABLE
VALUE

variable value

boolean

DATA STORES
STATE

variable state name

string

no-con/no-set

11.4.1 Parameter Definitions

296

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.

11. BOOL Boolean Variable Block

B0193AX Rev Z

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 Z

298

11. BOOL Boolean Variable Block

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 Interface Block Descriptions (B0193YQ).

NOTE

CP270 Only indicates BOUT 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.

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 continuously reports, to the I/A Series system, any changes made by the FBM to the field device value
at this address.

To
Upstream
Block

Cascade
Processing
Input
from
I/A Series
System

Input
Processing

ECB
Fail-Safe

Fail-Safe
Processing

Read-Back
from
Field Device

Read-Back
Processing

Output
Processing

To Field
Device (via
FBM)

Read-Back

Figure 12-1. BOUT Block Diagram

299

B0193AX Rev Z

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 blocks 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 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
devices 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 Output Request (COUTQ) to aid in diagnostic testing.
A change timer mechanism is used to keep the I/A Series end synchronized with the device end. If
a new I/A Series value is not accepted by the device within a pre-determined time, the I/A Series
control station re-initializes its inputs and its output value. The output value is retained for future
comparison against readback values, but is not sent to the field device at this time.
The block uses the parameters Initialization Output (INITCO) and Back Calculated Contact
Out (BKCO) to alert upstream blocks to various abnormal situations, and for cascade handling.
To force the I/A Series control station to Track during initialization procedures within the external
device, a specific signal intended for this purpose is made available to the BOUT block at a configured 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 detection 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 connection to the COUT parameter of the BOUT block.

300

12. BOUT Binary Output Block

B0193AX Rev Z

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 Z

12. BOUT Binary Output Block

12.4 Parameters
Table 12-1. BOUT Block Parameters
Name

Description

Type

Accessibility

Default

Units/Range

1 to 12 chars

Configurable Parameters
INPUTS
NAME

block name

string

no-con/no-set

2 blanks

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

0 to10, and 13 for CPs,


0 to 12 for Gateways

PHASE

block execution phase

short integer

no-con/no-set

---

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 to 1

INITMA

initialize manual/auto

short integer

no-con/no-set

0 to 2

AUTSW

auto switch

boolean

con/set

0 to 1

EROPT

error option

short integer

no-con/no-set

0 to 2

FSOPTN

fail-safe option

short integer

no-con/no-set

bit map

IN

binary input

boolean

con/set

0 to 1

INI_PT

initialize point number

string

no-con/no-set

blanks

device specific

MANSW

manual switch

boolean

con/set

0 to 1

PRIBLK

primary block

short integer

no-con/no-set

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 = no simulation
1 = simulation

MANFS

manual if fail-safe

boolean

no-con/no-set

0 to 1

MBADOP

manual if bad option

boolean

no-con/no-set

0 to 1

INHOPT

inhibit option

short

no-con/no-set

0 to 3

INHIB

alarm inhibit

boolean

con/set

0 to 1

BAO

bad alarm option

boolean

no-con/no-set

0 to 1

BAT

bad alarm text

string

no-con/no-set

blank

1 to 32 chars

BAP

bad alarm priority

integer

con/set

1 to 5

BAG

bad alarm group

short

no-con/set

1 to 8

AMRTIN

alarm regeneration timer

integer

no-con/no-set

0 to32767 sec

SETFS

set fail-safe request

boolean

con/set

0 to 1

fail-safe Boolean output

boolean

con/no-set

0 to 1

integer

con/no-set

-32768 to 32767

OUTPUTS
FSCOUT

Non-Configurable Parameters
OUTPUTS
ACHNGE

302

alternate change

12. BOUT Binary Output Block

B0193AX Rev Z

Table 12-1. BOUT Block Parameters (Continued)


Name

Description

Type

Accessibility

Default

Units/Range

ALMSTA

alarm status

packed long

con/no-set

bit map

BKCO

back calculated output

boolean

con/no-set

0 to 1

BLKSTA

block status

packed long

con/no-set

0 to 0xFFFFFFFF

COUT

contact output

boolean

con/no-set

0 to 1

COUTQ

output request

boolean

no-con/no-set

(shadow)

CRIT

alarm criticality

integer

con/no-set

0 to 5

INHSTA

inhibit status

packed long

con/no-set

0 to 0xFFFFFFFF

INITCO

initialize output

boolean

con/no-set

0 to 1

PRTYPE

priority type

integer

con/no-set

0 to 8

SET

manual set request

boolean

con/set

0 to 1

TSTAMP

time stamp

long integer

con/no-set

ms after midnight

UNACK

unacknowledged alarm

boolean

con/no-set

0 to 1

VALSTS

FF value status

integer

con/no-set

0 to 0xFFFF

DATA STORES
ALMOPT

alarm options

packed long

con/no-set

0 to 0xFFFFFFFF

DEFINE

no config errors

boolean

no-con/no-set

0 to 1

DEV_ID

device identifier

character

no-con/no-set

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 to 1

OWNER

owner name

string

no-con/set

2 blanks

1 to 32 chars

6-character array

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
CP270 Only

Alarm Options contain packed long values representing the alarm types
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
Number*
(0 to 31)

Configured Alarm Option, When True

0 (lsb)
1
2
3
4
5

Alarm Group 8 in Use


Alarm Group 7 in Use
Alarm Group 6 in Use
Alarm Group 5 in Use
Alarm Group 4 in Use
Alarm Group 3 in Use

Boolean
Connection
(B32 to B1)
ALMOPT.B32
ALMOPT.B31
ALMOPT.B30
ALMOPT.B29
ALMOPT.B28
ALMOPT.B27
303

B0193AX Rev Z

12. BOUT Binary Output Block

Table 12-2. ALMOPT Parameter Format (Continued)

Bit
Number*
(0 to 31)

Boolean
Connection
(B32 to B1)

Configured Alarm Option, When True

6
Alarm Group 2 in Use
ALMOPT.B26
7
Alarm Group 1 in Use
ALMOPT.B25
22
Bad I/O Alarm Configured
ALMOPT.B10
*Bit 0 is the least significant bit (starting from the right).
There are no mnemonic names for the individual bits of ALMOPT
Alarm Status is a 32-bit output, bit-mapped to indicate the blocks alarm
states. Table 12-3 shows the bits used by the BOUT block.

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

CRIT

BAD

B8

B7

B6

B5

B4

B3
INH

B1

UNAK B2

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

ALMSTA
CP270 Only

PRTYPE

Table 12-3. ALMSTA Parameter Format

Bit
Number
(0 to 31)*

Name

0 to 4
5 to 7
22
29

PTYP_MSK
CRIT_MSK
BAD
INH

30

UNAK

Description,
When True
Priority Type
Criticality: 1 (highest priority) to 5
Bad I/O Alarm
Inhibit Alarm. This bit is set when
any of the blocks alarms is inhibited
Unacknowledged

Boolean
Connection
(B32 to B1)
----ALMSTA.B10
ALMSTA.B3
ALMSTA.B2

*Bit 0 is the least significant bit (starting from the right).

304

AMRTIN
CP270 Only

Alarm Message Regeneration Time Interval specifies the rate at which


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.

12. BOUT Binary Output Block

B0193AX Rev Z

BAG
CP270 Only

Bad Alarm Group is a configurable, non-settable short integer parameter


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
CP270 Only

Bad Alarm Option is a configurable, non-settable Boolean parameter used


to specify whether or not Bad Alarming is to be performed in the block:
0 (default) disables Bad Alarming

1 enables Bad Alarming.

BAP
CP270 Only

Bad Alarm Priority is a configurable integer input used to specify the


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
CP270 Only

Bad Alarm Text is a configurable, non-settable ASCII string of up to


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


operational states. For the BOUT block, only the following bits are used:

Bit Number*
(0 to 31)
6
7
8
11
14
15
20
23
24
26

Name
TRK
HLD
FBM
MA
UDEF
ON
WLCK
DCIX
FS
MAO

Description When True


Device Initializing
Block Output Holding
Bad Status of ECB
Manual = 0, Auto = 1
Block Undefined
Block On
Access Locked
Enhanced DCI block (CP270 Only)
Fail-Safe Active
M/A Override Active

0
B32

1
B31

2
B30

3
B29

4
B28

B26

5
B27

B25

TRK

HLD

B24

B23

FBM

B22

B20

B21
MA

B19

B17

UDEF B18

ON

B16

B15

B14

B13

B11

WLCK B12

B10

DCIX B9

B7

B8
FS

B6
MAO

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Boolean Connection
(B32 to B1)
BLKSTA.B26
BLKSTA.B25
BLKSTA.B24
BLKSTA.B21
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12
BLKSTA.B9
BLKSTA.B8
BLKSTA.B6

* Bit 0 is the least significant bit (starting from the right).

305

B0193AX Rev Z

12. BOUT Binary Output Block

COUT

Contact Output is the value sent from the block to the connected field
device at point PNT_NO. The displayed value of COUT is always the
confirmed component.

COUTQ

Output Request displays the value of the request component of the block
output for diagnostic purposes. It is not configurable.

CRIT
CP270 Only

Criticality is an integer output that indicates the priority of the blocks


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 configuration errors. The default is 1 (no configuration errors). When the block
initializes, 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 blocks function (for example, PLT 3 FURNACE 2 HEATER
CONTROL).

DEV_ID

Device Identifier is a character array that specifies the 6-character identifier 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 configuration error which caused the blocks 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 blocks detail display. For the BOUT block, the following list shows
the messages you may see:

ERCODE Message
W48 INVALID BLOCK OPTION
W52 INVALID I/O CHANNEL/GROUP
NO.
W62 UNRESOLVED CONNECTION
W65 INVALID POINT ADDRESS
W66 DUPLICATE CONNECTION
W67 INSUFFICIENT FBM MEMORY/CONNECTIONS
306

Meaning
PRITIM = zero is not allowed.
PNT_NO string is blank.
Connection is not yet resolved. (Block remains
defined.)
FBM parsing algorithm finds that a used
BIx_PT is invalid.
There is a duplicate connection to a particular
point.
There is no available memory or point connections in the FBM.

12. BOUT Binary Output Block

B0193AX Rev Z

ERCODE Message
W68 INVALID DEVICE CONNECTION
W69 INVALID POINT CONNECTION

Meaning
The device connection is invalid.
The point connection is invalid.

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-togood transition of IN.
If EROPT = 1, IN is considered Bad if its status word indicates Bad, Outof-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 conditions 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).

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 Z

12. BOUT Binary Output Block

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
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)
Users Guide (B0700AH).
This parameter is currently not supported by Modbus FBM224.

308

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
CP270 Only

Inhibit is a configurable, connectable and settable boolean that, when set,


suppresses all alarm message reporting. INHIB affects only alarm message
reporting; the alarm handling and detection functions are determined by
the INHOPT setting.

INHOPT
CP270 Only

Inhibit Option specifies the following actions applying to all block alarms:
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.

12. BOUT Binary Output Block

Inhibit Status contains packed long values that represent the current
inhibit status of each alarm type configured in the block. Table 12-4
shows how the parameter is used with the AI block.

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B9

BAD B10

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

INHSTA
CP270 Only

B0193AX Rev Z

Table 12-4. INHSTA Parameter Format

Bit
Number*
(0 to 31)

Name

Description,
When True

22
BAD
Bad I/O Alarm Inhibited
*Bit 0 is the least significant bit (starting from the right).

Boolean
Connection
(B32 to B1)
INHSTA.B10

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

309

B0193AX Rev Z

12. BOUT Binary Output Block

FBM type and the fieldbus protocol of the attached device, as described
for PNT_NO on page 312.

310

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 CompoundName 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-character 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 displays. 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 blocks 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 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 blocks 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
CP270 Only

Manual if Fail-safe allows recovery from FBM fail-safe at the block in


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.

12. BOUT Binary Output Block

B0193AX Rev Z

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
CP270 Only

Manual if Bad Option is manual override feature which, when set TRUE,
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 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 blocks 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 users guide.
Period
0
1
2
3
4
5
6

Length
0.1 second
0.5 second*
1.0 second
2.0 seconds
10 seconds
30 seconds
1 minute

Period
7
8
9
10
11***
12***
13****

Length
10 minutes
60 minutes
0.2 second
5.0 seconds**
------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, FCP270, and ZCP270.

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
311

B0193AX Rev Z

12. BOUT Binary Output Block

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 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) Users 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
InFusion Enterprise Control System: Implementing PROFIBUS-DP
Networks (B0750BE) for further details.
For the HART interface (FBM214/214b/215/216/216b/218),
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 Users Guide
(B0400FF) for details.

For the Modbus interface (FBM224), PNT_NO must be configured to contain the address of a set of coils in a Modbus device.
Refer to Modbus Communication Interface Module (FBM224)
Users 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) Users 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 connection, as described in Implementing FOUNDATION fieldbus on an
I/A Series System (B0700BA) and InFusion Enterprise Control System: Implementing FOUNDATION fieldbus (B0750BC).
PRIBLK

312

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.

12. BOUT Binary Output Block

B0193AX Rev Z

PRITIM

Primary Cascade Timer is a configurable parameter used to delay the closing 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
CP270 Only

Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. For the BOUT 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 BOUT block. If the output 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 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 specific 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 confirmation 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 milliseconds past midnight, is read from the FBM, when it is available there;
otherwise, it is computed by the control station.

TYPE

When you enter BOUT or select it from a configurator list, an identifying


integer is created specifying this block type. For this block, the value of
TYPE is 143.

313

B0193AX Rev Z

314

12. BOUT Binary Output Block

UNACK
CP270 Only

Unacknowledged is a Boolean output parameter that is set True for notification 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.

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.

12. BOUT Binary Output Block

B0193AX Rev Z

12.5 Functions
12.5.1 Detailed Diagram

Holding
Tracking

Periodic Output

Output to
Field Device
AND

OR
AND
IN
SET

Input
Selection

MA

ECB Good

AND

Holding

OR

Tracking

FBM Read-Back
or Simulated Value
(as selected per
SIMOPT)

AND

Timer
Expired

Clear Timer

IN.ACK
PRIBLK
Open Cascade
FBM Readback

FBM
Readback

Change
Timer

INITCO
Cascade
Processing

Reinitialize

Up to INITI

BKCO
BKCO.Status

PRITIM
ECB Status

Up to
BCALCI

COUT Request.Status
COUT Read-back.Status
BKCO.Status

CP270 Only:

BAO

AND

BAD Alarm

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 Z

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, connections 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 specified 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 connections 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 Z

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 connections 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 UNRESOLVED 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 output 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 determined 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 connected 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 parameter is not connected or not defined.

317

B0193AX Rev Z

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 questionable 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 controls 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 recommended 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 Z

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 failsafe 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 timestamp is provided by the FF FBM and stored in the TSTAMP parameter.

319

B0193AX Rev Z

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 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 a condition for fail-safe presently exists, but the DCI connection status information 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-togood 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 during initialization.
If you set the PRIBLK parameter in the BOUT block to 1, the user must use PRITIM to hold the
blocks output for x seconds (PRITIM=x) during a manual to automatic mode change.

320

12. BOUT Binary Output Block

B0193AX Rev Z

However, the warning W48 - INVALID BLOCK OPTION appears when you configure
PRITIM to 0.0 and PRIBLK to 1. Set PRITIM to be greater than 0 seconds.

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 Override, 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

321

B0193AX Rev Z

12. BOUT Binary Output Block

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.
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 cascade 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 supported 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).

322

When all input values return to good status and INHOPT is set appropriately.

12. BOUT Binary Output Block

B0193AX Rev Z

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.
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 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 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. Parameters NASDB and
NASOPT provide control of nuisance alarms by applying a delay (set in NASDB) to return-tonormal 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 Z

324

12. BOUT Binary Output Block

13. BOUTR Redundant Binary


Output Block
This chapter covers the Redundant Binary Output (BOUTR) blocks 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 Users
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
blocks 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 Z

13. BOUTR Redundant Binary Output Block

Device and
Address
Identifiers

Cascade
Processing
Inputs
from
I/A Series
Manual Input

ARBOPT
ECBOPT

To Upstream
Block
Write
Points

Requested
Output to
Redundant
ECBs

M
Contact
Output

Up to 3
Readback
Values

ECB
Fail-safe

Point
Selection

Readback
Processing

Fail-safe
Processing

Readback
(Confirmed
Output)
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 displayed 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.
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 con326

13. BOUTR Redundant Binary Output Block

B0193AX Rev Z

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 detection 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 connection 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 Z

13. BOUTR Redundant Binary Output Block

13.4 Parameters
Table 13-1. BOUTR Block Parameters
Name

Description

Type

Accessibility Default

Units/Range

1 to 12 characters

Configurable Parameters
INPUTS
NAME

block name

string

no-con/no-set

2 blanks

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

0 to10, and 13 for CPs,


0 to 12 for Gateways

PHASE

block execution phase

short integer

no-con/no-set

(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 to 1

INITMA

initialize manual/auto

short integer

no-con/no-set

0 to 2

ARBOPT

arbitration option

boolean

no-con/no-set

0 = dual redundant
1 = triple redundant

ECBOPT

redundant ecb option

boolean

no-con/no-set

0 = non-redundant ecbs
1 = redundant ecbs

AUTSW

auto override switch

boolean

con/set

0 to 1

EROPT

error option

short integer

no-con/no-set

0 to 2

FSOPTN

fail-safe option

short integer

no-con/no-set

bit map (see text)

IN

binary input

boolean

con/set

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 to 1

PRIBLK

primary block option

short integer

no-con/no-set

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 to 3

SIMOPT

simulation option

boolean

no-con/no-set

0 = no simulation
1 = simulation

MANFS

manual if fail-safe

boolean

no-con/no-set

0 to 1

MBADOP

manual if bad option

boolean

no-con/no-set

0 to 1

INHOPT

inhibit option

short

no-con/no-set

0 to 3

INHIB

alarm inhibit

boolean

con/set

0 to 1

BAO

bad alarm option

boolean

no-con/no-set

0 to 1

BAT

bad alarm text

string

no-con/no-set

blank

1 to 32 chars

BAP

bad alarm priority

integer

con/set

1 to 5

BAG

bad alarm group

short

no-con/set

1 to 8

328

13. BOUTR Redundant Binary Output Block

B0193AX Rev Z

Table 13-1. BOUTR Block Parameters (Continued)


Name

Description

Type

Accessibility Default

Units/Range

AMRTIN

alarm regeneration timer

integer

no-con/no-set

0 to32767 sec

SETFS

set fail-safe request

boolean

con/set

0 to 1

fail-safe boolean output

boolean

con/no-set

0 to 1

OUTPUTS
FSCOUT

Non-Configurable Parameters
OUTPUTS
ACHNGE

alternate change

integer

con/no-set

-32768 to 32767

ALMSTA

alarm status

packed long

con/no-set

bit map

BKCO

back calculated output

boolean

con/no-set

0 to 1

BLKSTA

block status

packed long

con/no-set

0-0xFFFFFFFF

COUT

contact output

boolean

con/no-set

0 to 1

COUTQ

contact output request

boolean

no-con/no-set

(shadow)

CRBK_1

primary boolean readback

boolean

con/no-set

0 to 1

CRBK_2

secondary boolean readback

boolean

con/no-set

0 to 1

CRBK_3

tertiary boolean readback

boolean

con/no-set

0 to 1

CRIT

alarm criticality

integer

con/no-set

0 to 5

INHSTA

inhibit status

packed long

con/no-set

0 to 0xFFFFFFFF

INITCO

initialize output

boolean

con/no-set

0 to 1

PRTYPE

priority type

integer

con/no-set

0 to 8

SELECT

selection indicator

short

con/no-set

0 to 3

SET

manual set request

boolean

con/set

0 to 1

TSTAMP

time stamp

long integer

con/no-set

ms after midnight

UNACK

unacknowledged alarm

boolean

con/no-set

0 to 1

VALSTS

value status

integer

con/no-set

0-0xFFFF

DATA STORES
ALMOPT

alarm options

packed long

con/no-set

0 to 0xFFFFFFFF

DEFINE

no config errors

boolean

no-con/no-set

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 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 Z

13. BOUTR Redundant Binary Output Block

ALMOPT
CP270 Only

Alarm Options contain packed long values representing the alarm types
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
Number*
(0 to 31)

Boolean
Connection
(B32 to B1)

Configured Alarm Option,


When True

0 (lsb)
Alarm Group 8 in Use
ALMOPT.B32
1
Alarm Group 7 in Use
ALMOPT.B31
2
Alarm Group 6 in Use
ALMOPT.B30
3
Alarm Group 5 in Use
ALMOPT.B29
4
Alarm Group 4 in Use
ALMOPT.B28
5
Alarm Group 3 in Use
ALMOPT.B27
6
Alarm Group 2 in Use
ALMOPT.B26
7
Alarm Group 1 in Use
ALMOPT.B25
22
Bad I/O Alarm Configured
ALMOPT.B10
*Bit 0 is the least significant bit (starting from the right).
There are no mnemonic names for the individual bits of ALMOPT
Alarm Status is a 32-bit output, bit-mapped to indicate the blocks alarm
states. Table 13-3 shows the bits used by the BOUTR block.

CRIT

PRTYPE

Table 13-3. ALMSTA Parameter Format

Bit
Number
(0 to 31)*

Description,
When True

Name

0 to 4
5 to 7
22
29

PTYP_MSK
CRIT_MSK
BAD
INH

30

UNAK

Priority Type
Criticality: 1 (highest priority) to 5
Bad I/O Alarm
Inhibit Alarm. This bit is set when any of
the blocks alarms is inhibited
Unacknowledged

*Bit 0 is the least significant bit (starting from the right).

330

Boolean
Connection
(B32 to B1)
----ALMSTA.B10
ALMSTA.B3
ALMSTA.B2

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

BAD

B8

B7

B6

B5

B4

B3
INH

B1

UNAK B2

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

ALMSTA
CP270 Only

13. BOUTR Redundant Binary Output Block

B0193AX Rev Z

AMRTIN
CP270 Only

Alarm Message Regeneration Time Interval specifies the rate at which


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
CP270 Only

Bad Alarm Group is a configurable, non-settable short integer parameter


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
CP270 Only

Bad Alarm Option is a configurable, non-settable Boolean parameter used


to specify whether or not Bad Alarming is to be performed in the block:

0 (default) disables Bad Alarming


1 enables Bad Alarming.
BAP
CP270 Only

Bad Alarm Priority is a configurable integer input used to specify the


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
CP270 Only

Bad Alarm Text is a configurable, non-settable ASCII string of up to


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


operational states. For the BOUTR block, only the following bits are
used:

331

13. BOUTR Redundant Binary Output Block

Bit Number*
(0 to 31)
6
7
8
9
10
11
14
15
20
23
24
26

Name
TRK
HLD
FBM1
FBM2
FBM3
MA
UDEF
ON
WLCK
DCIX
FS
MAO

Description When True


Device initializing
Block output holding
Bad status of primary ECB
Bad status of secondary ECB
Bad status of tertiary ECB
Manual = 0, Auto = 1
Block Undefined
Block On
Access Locked
Enhanced DCI block (CP270 Only)
Fail-Safe Active
M/A Override Active

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

B26

B25

TRK

HLD

FBM2 B23

FBM3 B22

B20

B21
MA

B19

B17

UDEF B18

ON

B16

B15

B14

B13

B11

WLCK B12

B10

DCIX B9

FS

B8

B7

B6
MAO

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

FBM1 B24

B0193AX Rev Z

Boolean Connection
(B32 to B1)
BLKSTA.B26
BLKSTA.B25
BLKSTA.B24
BLKSTA.B23
BLKSTA.B22
BLKSTA.B21
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12
BLKSTA.B9
BLKSTA.B8
BLKSTA.B6

* Bit 0 is the least significant bit (starting from the right).

332

CO1_PT

Primary Point Number identifies the address in the primary external


devices memory (or data stream) to which the block output is directed.
This parameters syntax depends on the made and model of the external
device.

CO2_PT

Secondary Point Number identifies the address in the secondary external


devices memory (or data stream) to which the block output is directed.
This parameters syntax depends on the made and model of the external
device.

CO3_PT

Tertiary Point Number identifies the address in the secondary external


devices memory (or data stream) to which the block output is directed.
This parameters 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.

13. BOUTR Redundant Binary Output Block

B0193AX Rev Z

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.

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
CP270 Only

Criticality is an integer output that indicates the priority of the blocks


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 configuration errors. The default is 1 (no configuration errors). When the block
initializes, 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 blocks 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-character 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 separate 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).
333

B0193AX Rev Z

13. BOUTR Redundant Binary Output Block

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 blocks 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.
For the BOUTR block, the following list specifies the possible values of
ERCODE and the significance of each value in this block.
ERCODE Message
W48 INVALID BLOCK
OPTION
W52 INVALID I/O
CHANNEL/GROUP NO.

W62 UNRESOLVED
CONNECTION
W65 INVALID POINT
ADDRESS
W66 DUPLICATE
CONNECTION
W67 INSUFFICIENT FBM
MEMORY/CONNECTIONS
W68 INVALID DEVICE
CONNECTION
W69 INVALID POINT
CONNECTION

334

Meaning
PRITIM = zero is not allowed.
CO1_PT, CO2_PT, or CO3_PT
string is blank, and should be configured according to other parameters settings.
Connection is not yet resolved.
(Block remains defined.)
FBM parsing algorithm finds that a
used COx_PT is invalid.
There is a duplicate connection to
a particular point.
There is no available memory or
point connections in the FBM.
The device connection is invalid.
The point connection is invalid.

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, Outof-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

13. BOUTR Redundant Binary Output Block

B0193AX Rev Z

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 configured nonzero for this option to take effect.

Bit 1: 1 = set/clear fail-safe when SETFS input is set/cleared.


Bit 2: 1 = assert fail-safe if control station-to-FBM communication
is lost (FBM option). This option will be enabled only if fail-safe
is enabled at the FBM level via the FSENAB parameter in
ECB200 or ECB202.
Note: Bit 0 is the least significant, low-order bit.
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
CP270 Only

Inhibit is a configurable, connectable and settable boolean that, when set,


suppresses all alarm message reporting. INHIB affects only alarm message
reporting; the alarm handling and detection functions are determined by
the INHOPT setting.

INHOPT
CP270 Only

Inhibit Option specifies the following actions applying to all block alarms:

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.

335

B0193AX Rev Z

13. BOUTR Redundant Binary Output Block

Inhibit Status contains packed long values that represent the current
inhibit status of each alarm type configured in the block. Table 13-4
shows how the parameter is used with the AI block.

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B9

BAD B10

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

INHSTA
CP270 Only

Table 13-4. INHSTA Parameter Format

Bit
Number*
(0 to 31)

Name

Description,
When True

22
BAD
Bad I/O Alarm Inhibited
*Bit 0 is the least significant bit (starting from the right).

336

Boolean
Connection
(B32 to B1)
INHSTA.B10

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.

13. BOUTR Redundant Binary Output Block

B0193AX Rev Z

IOMID1

Primary ECB Identifier is a configurable string that specifies the pathname of the ECB201 for the primary device, for the purpose of connecting 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 CompoundName 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 pathname of the ECB201 for the secondary device, for the purpose of connecting 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 blocks parameters are honored only if the identifier of the workstation 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 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 blocks parameters are honored (subject to the usual access rules) only if the requesting
workstations identifier matches the contents of LOCKID.

337

B0193AX Rev Z

13. BOUTR Redundant Binary Output Block

The corresponding lock release message sets LOCKRQ to false, sets


LOCKID to null, and resets the WLCK bit.

338

LOOPID

Loop Identifier is a configurable string of up to 32 characters that 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.

MA

Manual/Auto is a boolean input that controls the blocks 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
CP270 Only

Manual if Fail-safe allows recovery from FBM fail-safe at the block in


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
CP270 Only

Manual if Bad Option is manual override feature which, when set TRUE,
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 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 blocks 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 users guide.

13. BOUTR Redundant Binary Output Block

Period
0
1
2
3
4
5
6

B0193AX Rev Z

Length
0.1 second
0.5 second*
1.0 second
2.0 seconds
10 seconds
30 seconds
1 minute

Period
7
8
9
10
11***
12***
13****

Length
10 minutes
60 minutes
0.2 second
5.0 seconds**
------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, FCP270, and ZCP270.

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 closing 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
CP270 Only

Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. For the BOUTR block:
0 = No alarm
339

B0193AX Rev Z

13. BOUTR Redundant Binary Output Block

340

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

SELECT

Selection Indicator shows which redundant readback value has been chosen 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 algorithm 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 specific 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 confirmation 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,

13. BOUTR Redundant Binary Output Block

B0193AX Rev Z

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 identifying integer is created specifying this block type. For this block, the value of
TYPE is 111.

UNACK
CP270 Only

Unacknowledged is a Boolean output parameter that is set True for notification 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.

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

341

B0193AX Rev Z

13. BOUTR Redundant Binary Output Block

13.5 Functions
13.5.1 Detailed Diagram
Output to
Up to Three
Field Devices
IOMID1
CO1_PT

ARBOPT
ECBOPT
0

IOMID2
CO2_PT

SECTIM

Holding
Tracking

AND

CRBK_1
Read
Back

IOMID3
CO3_PT

CRBK_3

AND

COUT
(Confirmed)

OR
1

COUT
(Simulated)

AND

A
IN

SET

CRBK_2

SIMOPT

ECB
Good

M
MA
SELOPT
CRBK_1
CRBK_2
CRBK_3

Arbitration
Algorithm

Holding
Tracking

OR

SIMOPT

Readback
PRITIM

FBM
Readback
AND
Timer
Expired

SELECT

Simulated
Value

PRIBLK
Open Cascade

AND

Cascade
Processing

Clear Timer

Reinitialize

Change
Timer
RBKTIM
INITCO

Up to INITI

BKCO
BKCO.Status

ECB Status

Up to
BCALCI

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 Z

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, connections 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
ECBOPT = 0
ECBOPT = 1
ECBOPT = 1

ARBOPT = 0 (DMR)
ARBOPT = 1 (TMR)
ARBOPT = 0 (DMR)
ARBOPT = 1 (TMR)

2 DCI connections to one ECB


3 DCI connections to one ECB
2 DCI connections to two ECBs
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 specified 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 Z

13. BOUTR Redundant Binary Output Block

The formats of the COx_PT and INI_PT parameters are device specific. When the PIO maintenance 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 connections 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 UNRESOLVED 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 output 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 readback 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 Z

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 connected 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 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 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 questionable 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 section. 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 Z

13. BOUTR Redundant Binary Output Block

CRBK_1
Valid

CRBK_2
Valid

CRBK_3
Valid

Yes
Yes

Yes
Yes

Yes
Yes

Yes
Yes
Yes
Yes
Yes
No
No
Yes
No
No
No

Yes
Yes
Yes
No
No
Yes
Yes
No
Yes
No
No

Yes
No
No
Yes
Yes
Yes
Yes
No
No
Yes
No

Test
CRBK_1, CRBK_2 values are equal.
CRBK_1, CRBK_2 values are different
and CRBK_1, CRBK_3 values are
equal.
All other cases
CRBK_1, CRBK_2 values are equal.
CRBK_1, CRBK_2 values are different.
CRBK_1, CRBK_3 values are equal.
CRBK_1, CRBK_3 values are different.
CRBK_2, CRBK_3 values are equal.
CRBK_2, CRBK_3 values are different.
(No Test)
(No Test)
(No Test)
(No Test)

Select
CRBK_1
CRBK_1

CRBK_2
CRBK_1
Use SELOPT
CRBK_1
Use SELOPT
CRBK_2
Use SELOPT
CRBK_1
CRBK_2
CRBK_3
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 controls of the block mode on the FCP270 and ZCP270:

346

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 recommended that MANFS be enabled in only one block.

13. BOUTR Redundant Binary Output Block

B0193AX Rev Z

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 failsafe 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 Z

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-togood 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 current 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 Failsafe 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 during initialization.
If you set the PRIBLK parameter in the BOUTR block to 1, the user must use PRITIM to hold
the blocks output for x seconds (PRITIM=x) during a manual to automatic mode change.
However, the warning W48 - INVALID BLOCK OPTION appears when you configure
PRITIM to 0.0 and PRIBLK to 1. Set PRITIM to be greater than 0 seconds.

348

13. BOUTR Redundant Binary Output Block

B0193AX Rev Z

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.
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 offline 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 initialization. See Section 13.5.18. A block output is sent to the redundant outputs at this time.
If the block is in Auto mode, and there has been a bad-to-good transition in the status of IN, the
same actions are taken, except for the initialization of SET. The definition of Bad for the status of
IN depends on EROPT.

349

B0193AX Rev Z

13. BOUTR Redundant Binary Output Block

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
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 cascade 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 connections established for the block. The statuses of CRBK_1, CRBK_2, and CRBK_3 are not recovered 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:

350

13. BOUTR Redundant Binary Output Block

B0193AX Rev Z

Table 13-5. Alarm Nomenclature

Type
BAD I/O

Option
BAO

Priority
Group
BAG

Text
BAT

Default
Display

Indicator
Parameter

IOBAD

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 contains 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 secondary 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.

351

B0193AX Rev Z

13. BOUTR Redundant Binary Output Block

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 generated and sent to the devices belonging to the bad alarm group, the ALMSTA.INHIB bit is
cleared, and the INHSTA parameter is cleared.
The BOUTR block also supports alarm reprioritization and regeneration. Refer to the appropriate Integrated Control Software Concepts document (B0700AG or B0193AW) for detailed information 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 computational 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 process allows you to specify the system path for all desired input connections and constant data values, 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
Program

16 Boolean Inputs
2 Integer Inputs

8 Boolean Outputs
6 Integer Outputs

(up to 50 steps;
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
Dual Operands
Output Clamping
Boolean Instructions
Packed Boolean Instructions
Mathematical Instructions
Cascade Instruction
Steps

--X
X
X
X
X
50

CALCA

MATH

LOGIC

X
--X
X
X
X
50

X
------X
X
20

X
--X
----15
353

B0193AX Rev Z

14. CALC Calculator Block

Table 14-1. Block Comparison (Continued)

CALC
Memory Registers
Boolean Inputs
Boolean Outputs
Integer Inputs
Integer Outputs
Long Integer Inputs
Long Integer Outputs
Real Inputs
Real Outputs

24
16
8
2
6
2
2
8
4

CALCA

MATH

LOGIC

24
16
8
2
6
2
2
8
4

5
0
0
0
0
0
0
8
4

5
16
4
0
0
1
1
2
0

14.2 Basic Operation


The CALC block operates like most programmable pocket calculators. The blocks 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 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 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 Z

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 reconfiguration, 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

0 to 13

PHASE

block phase number

integer

no-con/no-set

---

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 to 1

II01 and II02

integer input 1 and 2

integer

con/set

---

LI01 and LI02

long int input 1 and 2

long

con/set

---

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 to 1

INITMA

initialize MA

short

no-con/no-set

[0|1|2]

TIMINI

timer initialize option

short_int

no-con/set

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 Z

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

bit map

BO01 to BO08

boolean output 1 to 8

boolean

con/no-set

0 to 1

IO01 to IO06

integer output 1 to 6

integer

con/no-set

---

LO01 to LO02

long outputs 1 and 2

long

con/no-set

---

PERROR

program error

integer

con/no-set

---

RO01 to RO04

real output 1 to 4

real

con/no-set

0.0

RO1

STERR

step error number

integer

con/no-set

---

alternate change

integer

con/no-set

-32768 to 32767

DATA STORES
ACHNGE
DEFINE

no config errors

boolean

no-con/no-set

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

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 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 blocks operational states. For the CALC block, only the following bits are used:

356

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

8
B24

B23

B22

B20

B21
MA

B19

B17

UDEF B18

ON

B16

B15

B14

B13

WLCK B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

14. CALC Calculator Block

B0193AX Rev Z

Bit
Number*
(0 to 31)
11
14
15
20

Name

Description When True

Boolean
Connection
(B32 to B1)

MA
UDEF
ON
WLCK

Manual(= false)/Auto(= true)


Undefined
Compound On
Workstation Lock

BLKSTA.B21
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12

* Bit 0 is the least significant bit (starting from the right).


BO01 to BO08

Boolean Outputs 1 through 8.

DEFINE

Define is a data store which indicates the presence or absence of configuration errors. The default is 1 (no configuration errors). When the block initializes, 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 connections 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 blocks compound, change deltas have no
effect.
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


blocks function (for example, PLT 3 FURNACE 2 HEATER CONTROL).

EI1 to EI8

Engineering Units for Input Ranges 1 through 8, as defined by the parameters HSCI1 to HSCI8, LSCI1 to LSCI8, and DELTI1 to DELTI8. EI1
to EI8 provide the engineering units text for the values defined by Input
Ranges 1 through 8. Deg F or pH are typical entries.

EO1 to EO4

Engineering Units for Output Ranges 1 through 4, as defined by the


parameters HSCO1 to HSCO4, LSCO1 to LSCO4, and DELTO1 to
DELTO4. EO1, for example, provides the engineering units text for the
values defined by Output Range 1. Deg F or pH are typical entries.
Make the units for the Output Range (EO1) consistent with the units of
Input Range 1 (EI1) and Input Range 2 (EI2).
357

B0193AX Rev Z

ERCODE

14. CALC Calculator Block

Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the blocks
DEFINE parameter to be set false, but not the warning situations. Validation of configuration errors does not proceed past the first error encountered 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
W43 INVALID PERIOD/
PHASE COMBINATION

W45 CONFIGURATION
ERROR IN STEP nn
W46 INVALID INPUT
CONNECTION

W48 INVALID BLOCK


OPTION
W53 INVALID
PARAMETER VALUE
W58 INSTALL ERROR;
DELETE/UNDELETE
BLOCK
HSCI1 to HSCI8

Value
PHASE does not exist for given block
PERIOD, or block PERIOD not
compatible with compound
PERIOD.
A parsing error has been detected in a
CALC block; nn identifies the step in
error.
The source parameter specified in the
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.
The configured value of a block
option is illegal.
A parameter value is not in the acceptable range.
A Database Installer error has
occurred.

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 consistent with those of the output destination.
II01

358

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

14. CALC Calculator Block

B0193AX Rev Z

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 configurator. (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-character letterbug of the workstation and DEVNAME is the 1-6 character
logical device name of the Display Manager task.

LOCKRQ

Lock Request is a boolean input which can be set true or false only by a
SETVAL command from the LOCK U/L toggle key on workstation displays. 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 blocks
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

359

B0193AX Rev Z

14. CALC Calculator Block

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

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 consistent with those of the output destination.

360

M01 to M24

Memory elements 1 through 24 are memory registers. These provide temporary 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 specific algorithm. 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 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 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 blocks 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.)

14. CALC Calculator Block

B0193AX Rev Z

Period
0
1
2
3
4
5
6

Length
0.1 sec
0.5 sec*
1.0 sec
2.0 sec
10 sec
30 sec
1 min

Period
7
8
9
10
11
12
13

Length
10 min
60 min
0.2 sec
5.0 sec**
0.6 sec***
6.0 sec****
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, and CP60.
PERROR

Program Error is a coded integer output that indicates the type of instruction syntax error or program run-time error that occurred in the step specified 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 Control 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 engineering 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.

RO1 to RO4

Range Output is an array of real values that specify the high and low engineering 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 designated range.

361

B0193AX Rev Z

14. CALC Calculator Block

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 exhibiting 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=
1=
2=
3=

TYPE

Initial state change allowed for DOFF, DON, FF, MRS, and OSP.
Initial state change disallowed for DOFF, DON, and OSP.
Initial state change allowed for FF and MRS.
Initial state change disallowed for FF and MRS.
Initial state change allowed for DOFF, DON, and OSP.
Initial state change disallowed for DOFF, DON, FF, MRS, and
OSP.

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 cascade acknowledgments.
10 Memory and Stack Reference instructions for reading and writing the memory registers, 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.
3 Error Control instructions which provide access to the run-time error flag.

362

14. CALC Calculator Block

B0193AX Rev Z

14.5.1 Arithmetic Instructions


Most CALC block operations center about a 16-position push-down stack of real data type values. 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 decimal 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 nonzero value to be a logical one, and a zero value to be a logical zero, in keeping with the usual C language convention.
The range of 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 calculation, generically referred to as operands. These inputs are obtained from various block parameters, 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 utilizing two inputs are designated diadic, and those utilizing a variable number of inputs are designated polyadic. Table 14-3 lists the arithmetic instructions.
Table 14-3. Arithmetic Instructions

Name
ABS
ACOS
ADD
ALN
ALOG
ASIN
ATAN
AVE
CHS
COS
DEC
DIV
EXP
IDIV
IMOD
INC
LN

Function
Absolute Value
Arc Cosine
Add
Natural Antilog
Common Antilog
Arc Sine
Arc Tangent
Average
Change Sign
Cosine
Decrement
Divide
Exponent
Integer Division
Integer Modulus
Increment
Natural Logarithm

Instruction Type
Unary
Unary
Diadic or Polyadic
Unary
Unary
Unary
Unary
Diadic or Polyadic
Unary
Unary
Unary
Diadic
Diadic
Diadic
Diadic
Unary
Unary

363

B0193AX Rev Z

14. CALC Calculator Block

Table 14-3. Arithmetic Instructions (Continued)

Name
LOG
MAX
MAXO
MIN
MEDN
MUL
RAND
RANG
RND
SEED
SIN
SQR
SQRT
SUB
TAN
TRC

Function

Instruction Type

Common Logarithm
Maximum
(Same as MAX)
Minimum
Median
Multiply
Generate Random Number
Generate Random Number, Gaussian
Round
Seed Random Number Generator
Sine
Square
Square Root
Subtract
Tangent
Truncate

Unary
Diadic or Polyadic
Diadic or Polyadic
Polyadic
Diadic or Polyadic
Unary
Unary
Unary
Unary
Unary
Unary
Unary
Diadic
Unary
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 boolean values is supported. Table 14-4 lists the boolean instructions.
Table 14-4. Boolean Instructions

Name
AND
ANDX
NAND
NANX
NOR
NORX
NOT
NOTX
NXOR
364

Function
Logical And
Packed Logical And
Logical Not And
Packed Logical NAND
Logical Not Or
Packed Logical Nor Or
Not
Packed Logical Not
Logical Not Exclusive Or

Instruction Type
Diadic or Polyadic
Polyadic
Diadic or Polyadic
Polyadic
Diadic or Polyadic
Polyadic. Packed Boolean
Unary
Unary, Packed Boolean
Diadic or Polyadic, Packed Boolean

14. CALC Calculator Block

B0193AX Rev Z

Table 14-4. Boolean Instructions (Continued)

Name
NXOX
OR
ORX
XOR
XORX

Function

Instruction Type

Packed Logical Not Exclusive Or


Logical Or
Packed Logical Or
Logical Exclusive Or
Packed Logical Exclusive Or

Polyadic, Packed Boolean


Diadic or Polyadic
Polyadic, Packed Boolean
Diadic or Polyadic
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
IO01 to IO04
LO01 to LO02

Maximum Positive

Minimum Negative

32767
2147483647

-32768
-2147483648

Table 14-5 lists the input/output reference instructions.


Table 14-5. Input/Output Reference Instructions

Name
CBD
CE
COO
IN
INB
INH
INL
INR
INS

Function
Clear Bad Status
Clear Error Status
Clear Out-of-Service Status
Input
Input Indexed Boolean
Input High Order
Input Low Order
Input Indexed Real
Input Status

Instruction Type
Output Status
Output Status
Output Status
Input Value
Input Value
Input Value
Input Value
Input Value
Input Status
365

B0193AX Rev Z

14. CALC Calculator Block

Table 14-5. Input/Output Reference Instructions (Continued)

Name
OUT
RBD
RCL
RCN
RE
REL
RON
ROO
RQE
RQL
SAC
SBD
SE
SEC
SOO
STH
STL
SWP

Function
Output
Read Bad and OOS Bits
Read and Clear
Read Connect Status
Read Error Bit
Clear Secure Status
Read In-Service Status
Read OOS Bit
Read Quality Including Error
Read Quality
Store Accumulator in Output
Set Bad Status
Set Error Status
Set Secure Status
Set Out-of-Service Status
Store High Order
Store Low Order
Swap

Instruction Type
Output Value
Input Status
Input Value/Unconditional Clear
Input Linkage Type
Input Status
Output Status
Input Status
Input Status
Input Status
Input Status
Output Value
Output Status
Output Status
Output Status
Output Status
Output Value
Output Value
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
PRI
PRO
PRP

Function
Propagate Upstream
Propagate Downstream
Propagate Errors

Instruction Type
Cascade/Propagation
Cascade
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.

366

14. CALC Calculator Block

B0193AX Rev Z

The letter M followed by an integer between 01 and 24 (or 1 and 24) designates the specific register to be accessed by a memory referencing instruction. Table 14-7 lists the memory and stack reference instructions.
Table 14-7. Memory and Stack Reference Instructions

Name
CLA
CLM
CST
DEC
DUP
INC
LAC
LACI
POP
RCL
STM
STMI
SWP
TSTB

Function
Clear All Memory Registers
Clear Memory Register
Clear Stack
Decrement
Duplicate
Increment
Load Accumulator
Load Accumulator Indirect
Pop Stack
Read and Clear
Store Memory
Store Memory Indirect
Swap
Test Packed Boolean

Instruction Type
Memory
Memory
Stack
Operand/Stack
Stack
Operand/Stack
Memory/Stack
Memory/Stack
Stack
Operand/Stack
Memory/Stack
Memory/Stack
Operand/Stack
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
BIF
BII
BIN
BIP
BIT
BIZ
END
EXIT
GTI
GTO

Function
Branch If False
Branch If Initializing
Branch If Negative
Branch If Positive or Zero
Branch If True
Branch If Zero
End Program
Exit Program
Go To Indirect
Go To

Instruction Type
Conditional Branch
Conditional Branch
Conditional Branch
Conditional Branch
Conditional Branch
Conditional Branch
Program Termination
Program Termination
Unconditional Branch
Unconditional Branch

367

B0193AX Rev Z

14. CALC Calculator Block

Table 14-8. Program Control Instructions (Continued)

Name
NOP
SSF
SSI
SSN
SSP
SST
SSZ

Function

Instruction Type

No Operation
Set Boolean and Skip if Accumulator False
Set Boolean and Skip if Block Initializing
Set Boolean and Skip if Accumulator Negative
Set Boolean and Skip if Accumulator Positive
Set Boolean and Skip if Accumulator True
Set Boolean and Skip if Accumulator Zero

Unconditional Branch
Program Control
Program Control
Program Control
Program Control
Program Control
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
CLR
CLRB
SET
SETB
SSF
SSI
SSN
SSP
SST
SSZ

Function
Clear
Clear Packed Boolean
Set
Set Packed Boolean
Set and Skip if False
Set and Skip if Initializing
Set and Skip if Negative
Set and Skip if Positive
Set and Skip if True
Set and Skip if Zero

Instruction Type
Unconditional Clear
Unconditional Clear
Unconditional Set
Unconditional Set
Conditional Set
Conditional Set
Conditional Set
Conditional Set
Conditional Set
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).

368

14. CALC Calculator Block

B0193AX Rev Z

Table 14-10. Timing Instructions

Name
DOFF
DON
OSP
TIM

Function
Delayed OFF
Delayed ON
One-Shot Pulse
Time Since Midnight

Instruction Type
Timing
Timing
Timing
Time Reporting

Accumulator

nn sec
OSP

Accumulator
nn sec

DON nn

nn sec

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
FF
MRS

Function
Flip-Flop
Master Reset Flip-Flop

Instruction Type
Logic
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.

369

B0193AX Rev Z

14. CALC Calculator Block

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 condition. In most cases, the accumulator value is clamped continuously to positive or negative
machine infinity.
Table 14-12. Error Control Instructions

Name
CLE
RER
SIEC

Function
Clear Error Flag
Read Error Flag
Skip if Error Cleared

Instruction Type
Error Control
Error Control
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 constants 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.

370

14. CALC Calculator Block

B0193AX Rev Z

OUTPUT
RO01 = 17.29

17.29

Part 1. Read

(M)
17.29

MA

O
0.0

O
(A)

OUTPUT
RO01

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

371

B0193AX Rev Z

14. CALC Calculator Block

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 definitions 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 constant, 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 locations of the stack, having typically been placed there by the two instructions immediately preceding 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 pseudoparameters allow the instructions to perform their work with individual bits of the LI01 and
372

14. CALC Calculator Block

B0193AX Rev Z

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
STEP02

IN RI01
ADD RI02

STEP03

ADD RI03

STEP04
STEP05

IN 3
DIV

Pushes RI01 value onto stack.


Pops Value1 from the stack, adds RI02 value to Value1, and
pushes the result (Sum1) onto stack.
Pops Sum1 from the stack, adds RI03 value to Sum1, and
pushes the result (Sum2) onto stack.
Pushes constant 3 onto stack.
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

S1

Value1

ADD RI02

S1

Sum1

ADD RI03

S1

Sum2

IN 3

S2

S1

Sum2

DIV

S1

Quotient

Stack
Registers
(up to 16)

LEGEND:

Stack
Push

Stack
Pop

Figure 14-4. Examples of Stack Operation for Diadic Instructions

373

B0193AX Rev Z

14. CALC Calculator Block

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 instruction 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 decremented 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
STEP02
STEP03
STEP04
STEP05

IN RI01
IN RI02
IN RI03
IN RI04
AVE

Pushes RI01 value onto stack


Pushes RI02 value onto stack
Pushes RI03 value onto stack
Pushes RI04 value onto stack
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

S1

Value1

IN RI02

IN RI03

IN RI04

S4

Value4

S3

Value3

S3

Value3

S2

Value2

S2

Value2

S2

Value2

S1

Value1

S1

Value1

S1

Value1

AVE

S1

Average

Stack
Registers
(up to 16)
LEGEND:
Stack
Push
Figure 14-5. Example of Stack Operation for Polyadic Instruction

374

Stack
Pop

14. CALC Calculator Block

B0193AX Rev Z

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 command 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 values 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 instructions 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 position 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.

375

B0193AX Rev Z

14. CALC Calculator Block

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:
17 ABS

ACOS

Accumulator = -.7853983 or +.7853983


Compute absolute value of accumulator.
Accumulator = +.7853983

(Arc Cosine)
ACOS reads the value (cosine function value) in the accumulator and computes 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, overwriting 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 parameter.
Example 1:
17 ACOS

Accumulator = 0.7071
Compute arc cosine of accumulator.
Accumulator = +0.7853983 (Pi/4) radians. (Pi/4 radians
= 45 degrees)

Example 2:
27 ACOS

Accumulator = -0.5000
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
top of stack location). This overwrites the first operand and isolates the
376

14. CALC Calculator Block

B0193AX Rev Z

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 CALCs Real Input parameter 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 antilogarithm (base e) of the value, and writes the result to the accumulator, overwriting the original contents. sptr(after) = sptr(before).
Example:
17 ALN

ALOG

Accumulator = +0.69347
Compute natural antilogarithm of accumulator.
Accumulator = +2.0000

(Common Antilog)
ALOG reads the value in the accumulator, computes the base 10 antilogarithm of the value, and writes it to the accumulator, overwriting the original contents. sptr(after) = sptr(before).
Example 1:
17 ALOG

Accumulator = +1.30103
Compute common antilog of accumulator.
Accumulator = +20.0000

Example 2:
27 ALOG

Accumulator = -3.00000
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 overwrites the first operand and isolates the other operands from any further
access. sptr(after) = stackbottom.

377

B0193AX Rev Z

14. CALC Calculator Block

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, otherwise it is True.
Example 1:
11 CST

12 IN BI01
13 IN BI07
14 IN BO03
15 IN BI14
16 AND

Clears the stack.


BI01 = True
BI07 = False
BO03 = True
BI14 = True
Puts BI01 into accumulator.
Puts BI07 into accumulator. The prior value is pushed
down one stack location.
Puts BO03 into accumulator. The prior values are
pushed down one stack location.
Puts BI14 into accumulator. The prior values are
pushed down one stack location.
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

12 IN BI01
13 AND BI02
14 AND ~BI03

378

Clears the stack.


BI01 = True
BI02 = True
BI03 = False
Puts BI02 into accumulator.
Performs the logical AND of BI02 and the
accumulator and stores the result on the stack.
Inverts the BI03 value and performs the logical AND of this value with the accumulator
and stores the result on the stack.
Accumulator = True

14. CALC Calculator Block

ANDX
ANDX c

B0193AX Rev Z

(Packed Logical And)


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 further
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

12 IN BI01
13 IN II01
14 IN II02
15 ANDX

ASIN

Clears the stack.


BI01 = True (0000000000000001)
II01 = 5 (0000000000000101)
II02 = 7 (0000000000000111)
Puts BI01 into accumulator. Stored as 1.0.
Puts II01 into accumulator. The prior value is pushed
down one stack location.
Puts II02 into accumulator. The prior values are
pushed down one stack location.
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)

(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, overwriting 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 parameter.
Example 1:
17 ASIN

Accumulator = 0.7071
Compute arc sine of accumulator.
Accumulator = +0.7853983 (Pi/4) radians.
(Pi/4 radians = 45 degrees)

379

B0193AX Rev Z

14. CALC Calculator Block

Example 2:
27 ASIN

ATAN

Accumulator = -0.5000
Compute arc sine of accumulator.
Accumulator = -0.5236 (-Pi/6) radians.
(-Pi/6 radians = -30 degrees)

(Arc Tangent)
ATAN reads the value (tangent function value) in the accumulator, computes 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:
17 ATAN

Accumulator = 1.000
Compute arc tangent of accumulator.
Accumulator = +.7853983 (Pi/4) radians.
(Pi/4 radians = 45 degrees)

Example 2:
27 ATAN

Accumulator = -0.5000
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 cth
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 CALCs 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 memory
location xx, respectively. sptr(after) = sptr(before).

380

14. CALC Calculator Block

B0193AX Rev Z

Example 1:
11 CST

12 IN RI01
13 IN RI02
14 IN RI03
15 IN RI04
16 AVE

Clears the stack.


RI01 = 12.3485
RI02 = 3,73182
RI03 = -2.0037
RI04 = -0.8369
Places RI01 into accumulator.
Places RI02 into accumulator and pushes the RI01
value down one stack location.
Places RI03 into accumulator and pushes the prior
values down one stack location.
Places RI04 into accumulator and pushes the prior
values down one stack location.
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:

11 IN RI01
12 AVE M01

RI01 = 12.3485
M01 = 3.73182
Places RI01 into accumulator.
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 accumulator (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 statement
(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).

381

B0193AX Rev Z

14. CALC Calculator Block

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 statement
(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 statement
(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 statement (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 statement
(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.

382

14. CALC Calculator Block

B0193AX Rev Z

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 contents. sptr(after) = sptr(before).
Example 1:
17 CHS

Accumulator = -0.6734592
Change sign of accumulator.
Accumulator = +0.6734592

Example 2:
27 CHS

Accumulator = +0.1086372
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 program execution. PERROR is automatically reset prior to each block execution. 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).

383

B0193AX Rev Z

14. CALC Calculator Block

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 output, provided the block is in Auto; otherwise the step is skipped. In all
cases, sptr(after) = sptr(before).
CLRB
CLRB b

(Clear Packed Boolean)


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 runtime 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 accumulator, overwriting the original contents. sptr(after) = sptr(before).
Example:

17 COS

CST

384

Accumulator = +1.0472 (Pi/3) radians.


(Pi/3 radians = 60 degrees)
Compute cosine of accumulator.
Accumulator = +0.5000

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

14. CALC Calculator Block

B0193AX Rev Z

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) = stackbottom -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.
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:
10 IN RI01
11 DEC 2

RI01 = -5.23
Places RI01 into the accumulator.
Decrement accumulator by 2.
Accumulator = -7.23. (that is, -5.23 - 2.0)

Example 2:
11 DEC M02

M02 = 11.2
Decrement M02.
M02 = 10.2

DIV
DIV {RIxx, ROxx, Mxx}

(Divide)
385

B0193AX Rev Z

14. CALC Calculator Block

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 CALCs Real Input parameter 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:

12 IN RI01
13 DIV M01

DOFF
DOFF t
DOFF Mxx

386

RI01 = 12.3485
M01 = 3.73182
Pushes RI01 onto top of stack (accumulator)
Divides RI01 by M01, and stores the result on
the stack.
Accumulator = +3.30898

(Delayed OFF}
DOFF produces a logical zero output if the input has been in the logical
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

14. CALC Calculator Block

B0193AX Rev Z

obtained by loading Mxx with the value of -1038. (The delay times obtainable with this instruction are effectively unlimited.)
The TIMINI parameter controls DOFF behavior at block initialization
time to avoid unexpected behavior of the DOFF timer and, possibly, unpredicted activation of the CALC blocks outputs. If the TIMINI parameter
is set (TIMINI = 1) or (TIMINI = 3), the timer is considered to have been
in the expired state just before initialization. A one-to-zero transition of
the accumulator after initialization is required in order to start the timer. If
the TIMINI parameter is not set (TIMINI =0) or (TIMINI = 2), the
timer is considered to have been in the inactive state just before initialization, and a zero in the accumulator at block initialization begins to time
the specified delay. The timer, therefore, begins to run.
In all cases, sptr(after) = sptr(before).
Example:
9 IN RI01
10 STM M01
11 IN BI01
12 DOFF M01

13 OUT BO04

RI01 = 8.0
Places RI01 into accumulator.
Copies accumulator value of 8.0 to M01.
Inputs to the accumulator the state of BI01at the
execution time of each cycle.
Looks at BI01s 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
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

BO04

8 sec

8 sec

Figure 14-6. Timing Diagram for DOFF Example

DON
DON t
DON Mxx

(Delayed ON)
DON produces a logical one output if the input has been in the logical one
state for the consecutive length of time specified by the operand. The output 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
387

B0193AX Rev Z

14. CALC Calculator Block

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
obtained by loading Mxx with the value of -1038. (The delay times obtainable 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 blocks 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
12 DON 7

13 OUT BO04

Inputs to the accumulator the state of BI01 at the


execution time of each cycle.
Looks at BI01s input to the accumulator, uses it to
control the Step 12 DON timer, and writes the
timer result to the accumulator.
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

388

(Duplicate)

14. CALC Calculator Block

B0193AX Rev Z

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 additional END statements) following the first END are never executed. If any
skip statement skips over the first END statement, the block program terminates 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 (exponent), 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:

11 IN RI01
12 EXP M01

RI01 = 1.483
M01 = 3.10
Places RI01 into accumulator.
Raises RI01 to the power of M01 and pushes the
result on the stack.
Accumulator = +3.392638

389

B0193AX Rev Z

FF

14. CALC Calculator Block

(Flip-Flop)
FF emulates the function of a traditional set-reset flip-flop. It uses two
operands on the stack as inputs. The first operand is the set input and
the second operand is the reset input.
This instruction writes the output, which corresponds to the Q output
of a flip-flop, into the accumulator, overwriting the first operand (the set
value) and making the second operand (the reset value) inaccessible.
Table 14-13. Truth Table for FF Instruction

S
0
0
1
1

R
0
1
0
1

Q
No Change
0
1
No Change

The No Change condition causes the value of the 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:

12 IN BI01
13 IN BI02

14 FF

15 OUT BO01

BI01 = True
BI02 = False
Puts BI01 into accumulator has a True value for
set.
Puts BI02 into accumulator has a False value for
reset. The set input is pushed down one stack
location.
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
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
390

14. CALC Calculator Block

B0193AX Rev Z

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 statement (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 statement
(50 if there is no END step) writes a -4 (invalid goto syntax error) to the
PERROR parameter.

IDIV
IDIV Mxx

(Integer Division)
IDIV, with either blank or Mxx operand, reads the numbers from the top
two stack locations, truncates the values, divides the second operand (divisor) 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.
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:

15 IN RI01
16 IN RI02

RI01 = 19.713
RI02 = 5.9021
Places RI01 into accumulator.
Places RI02 into accumulator. The prior value is
pushed down one stack location.

391

B0193AX Rev Z

14. CALC Calculator Block

17 IDIV M03

IMOD

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

(Integer Modulus)
IMOD reads the values from the top two stack locations, truncates each into
integer form, decrements the stack pointer, and writes the integer modulus
of the first divided by the second truncated value into the new accumulator location (the new top of stack location). This overwrites the first operand and isolates the second operand from any further access. The integer
modulus is defined as the remainder after an integer division, and is
always a whole number. sptr(after) = sptr(before) - 1.
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:

15 IN RI01
16 IN RI02
17 IMOD

RI01 = 19.713
RI02 = 5.9021
Places RI01 into accumulator.
Places RI02 into accumulator. The prior value is
pushed down one stack location.
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 boolean
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 nonzero, and 1.0 when the parameter value is 0.0. In all cases, sptr(after) =
sptr(before) + 1.

392

14. CALC Calculator Block

INB
INB {IIxx, Mxx}

B0193AX Rev Z

(Input Indexed Boolean)


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:
10 IN RI01
11 INC 2

RI01 = -5.23
Places RI01 into the accumulator.
Increments accumulator by 2.
Accumulator = -3.23 (-5.23 + 2.0)

393

B0193AX Rev Z

14. CALC Calculator Block

Example 2:
11 INC M02

M02 = 11.2
Increments M02 by 1.
M02 = 12.2

INH {LIxx, LOxx}

(Input High Order)


INH reads the high order 16 bits of parameter LIxx or LOxx as an integer
and pushes it onto the stack. sptr(after) = sptr(before) + 1.

INL {LIxx, LOxx}

(Input Low Order)


INL reads the low order 16 bits of parameter LIxx or LOxx as an integer
and pushes it onto the stack. sptr(after) = sptr(before) + 1.

INR
INR {IIxx, Mxx}

(Input Indexed Real)


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 significant bit; Bit 15 is most significant.)
Bit
0 to 4
5 to 7
8
9
10
11
12
13
14
15

394

Definition
Data Type
OM Status
Bad
Secure/Release
Acknowledge
Out of Service
Shadow Parameter
Limited High
Limited Low
Propagated Error

14. CALC Calculator Block

B0193AX Rev Z

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 operand, where xx is an index from 01 to 24 (or 1 to 24). Neither memory register 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
11 STM M04
12 IN 9
13 STM M05
14 LACI M04
15 OUT RO01

LN

Loads accumulator with value 5.0.


Places value 5.0 into M04.
Loads accumulator with value 9.0.
Places value 9.0 into M05.
Loads accumulator with contents of M05 (9.0).
Outputs accumulator value of 9.0 to RO01.

(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:
17 LN

Accumulator = +1000.00
Computes natural logarithm of accumulator
Accumulator = +6.907755

Example 2:
27 LN

Accumulator = +0.130570
Computes natural logarithm of accumulator
Accumulator = 2.035846

395

B0193AX Rev Z

LOG

14. CALC Calculator Block

(Common Logarithm)
LOG reads the value (which must be positive) in the accumulator, computes
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:
17 LOG

Accumulator = +2000.00
Computes common logarithm of accumulator.
Accumulator = +3.30103

Example 2:
27 LOG

Accumulator = +0.02000
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 algebraic
value from the c topmost values on the stack, writes this value into the cth
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 CALCs Real Input parame-

ter 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

12 IN RI01
396

Clears the stack.


RI01 = 12.3485
RI02 = 3.73182
RI03 = -2.0037
RI04 = -0.8369
Places RI01 into accumulator.

14. CALC Calculator Block

B0193AX Rev Z

13 IN RI02

Places RI02 into accumulator and pushes the RI01 value


down one stack location.
Places RI03 into accumulator and pushes the prior values
down one stack location.
Places RI04 into accumulator and pushes the prior values
down one stack location.
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

14 IN RI03
15 IN RI04
16 MAX

Example 2:

11 IN RI01
12 MAX M01

RI01 = 12.3485
M01 = 3.73182
Places RI01 into accumulator.
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 accumulator
location (the new top of stack location). This overwrites the first operand
and isolates the other operands from any further access.
The median value is 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

12 IN RI01
13 IN RI02
14 IN RI03
15 IN RI04

Clears the stack.


RI01 = 12.3485
RI02 = 3.73182
RI03 = -2.0037
RI04 = -0.8369
Places RI01 into accumulator.
Places RI02 into accumulator and pushes the RI01 value
down one stack location.
Places RI03 into accumulator and pushes the prior values
down one stack location.
Places RI04 into accumulator and pushes the prior values
down one stack location.

397

B0193AX Rev Z

14. CALC Calculator Block

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 algebraic
value from the c topmost values on the stack, writes this value into the cth
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 CALCs 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

12 IN RI01
13 IN RI02
14 IN RI03
15 IN RI04
16 MIN

398

Clears the stack.


RI01 = 12.3485
RI02 = 3.73182
RI03 = -2.0037
RI04 = -0.8369
Places RI01 into accumulator.
Places RI02 into accumulator and pushes the RI01
value down one stack location.
Places RI03 into accumulator and pushes the prior
values down one stack location.
Places RI04 into accumulator and pushes the prior
values down one stack location.
Selects the minimum algebraic value and stores this
value into the accumulator, overwriting the RI01
value. The other values are inaccessible.
Accumulator = -2.0037

14. CALC Calculator Block

B0193AX Rev Z

Example 2:
RI01 = 12.3485
M01 = 3.73182
Places RI01 into accumulator.
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

11 IN RI01
12 MIN M01

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
0
0
1
1

R
0
1
0
1

Q
No Change
0
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:

12 IN BI01
13 IN BI02

14 MRS

BI01 = True
BI02 = True
Puts BI01 into accumulator has a True value for set.
Puts BI02 into accumulator has a True value for
reset. The set input is pushed down one stack
location.
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
399

B0193AX Rev Z

14. CALC Calculator Block

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 isolates 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 CALCs Real Input parameter 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):

12 IN RI01
13 MUL M01

400

RI01 = 12.3485
M01 = 3.73182
Places RI01 into accumulator.
Multiplies the value it pops from the stack by
M01 and stores the result on the stack.
Accumulator = 46.08238

14. CALC Calculator Block

B0193AX Rev Z

Example 2 Calculate (RI01 + RI02) * (RI03 - RI04):

12 IN RI01
13 ADD RI02

14 IN RI03
15 SUB RI04

16 MUL

17 OUT RO01

RI01 = 12.3485
RI02 = 3.73182
RI03 = 8.919
RI04 = 5.199
Places RI01 into accumulator.
Adds RI02 to the value that it pops from the
stack and stores (pushes) the result on the stack.
Accumulator = 16.08032
Places RI03 into accumulator.
Subtracts RI04 from the value that it pops from
the stack and stores (pushes) the result on the
stack.
Accumulator = 3.72
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
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 further 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 accumulator, and the result replaces the accumulator. sptr(after) = sptr(before).
If ~ is specified, the operand value is inverted prior to being used.

401

B0193AX Rev Z

14. CALC 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, otherwise it is True.
Example 1:
11 CST

12 IN BI01
13 IN BI07
14 IN BO03
15 IN BI14
16 NAND

Clears the stack.


BI01 = True
BI07 = False
BO03 = True
BI14 = True
Puts BI01 into accumulator.
Puts BI07 into accumulator. The prior value is pushed
down one stack location.
Puts BO03 into accumulator. The prior values are
pushed down one stack location.
Puts BI14 into accumulator. The prior values are
pushed down one stack location.
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:

11 IN BI04
12 NAND BO01

NANX
NANX c

BI04 = False
BO01 = True
Puts BI04 into accumulator.
Performs the logical NAND of BI04 and
BO01 and stores the result on the stack.
Accumulator = True

(Packed Logical Not And)


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.

402

14. CALC Calculator Block

B0193AX Rev Z

Example:

13 IN II01
14 IN II02
15 IN RI01

16 NANX 3

NOP

II01 = 5 (0000000000000101)
II02 = 1 (0000000000000001)
RI01 = 13.078 (0000000000001101)
Puts II01 into accumulator. The prior value is pushed
down one stack location.
Puts II02 into accumulator. The prior values are pushed
down one stack location.
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.
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

(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 operands and stack locations. Logical Not Or is defined as producing a False
output if any input is True and a True output if all of the inputs are False.
If blank is specified, all stack locations are NORed together, and the result
is written into the accumulator (the new top of stack location). This overwrites 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, otherwise it is True.
Example 1:
11 CST

Clears the stack.


403

B0193AX Rev Z

14. CALC Calculator Block

12 IN BI01
13 IN BI07
14 IN BO03
15 IN BI14
16 NOR

BI01 = True
BI07 = False
BO03 = True
BI14 = True
Puts BI01 into accumulator.
Puts BI07 into accumulator. The prior value is pushed
down one stack location.
Puts BO03 into accumulator. The prior values are
pushed down one stack location.
Puts BI14 into accumulator. The prior values are
pushed down one stack location.
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:

12 IN BI04
12 NOR BO01

NORX
NORX c

(Packed Logical Not Or)


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 further
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:

13 IN II01

404

BI04 = False
BO01 = True
Puts BI04 into accumulator.
Performs the logical NOR of BI04 and BO01
and stores the result on the stack.
Accumulator = False

II01 = 5 (0000000000000101)
II02 = 1 (0000000000000001)
RI01 = 13.078 (0000000000001101)
Puts II01 into accumulator. The prior value is pushed
down one stack location.

14. CALC Calculator Block

B0193AX Rev Z

14 IN II02
15 IN RI01

16 NORX 3

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):
17 NOT
27 NOT

NOTX

Puts II02 into accumulator. The prior values are


pushed down one stack location.
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.
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

Accumulator = 0 after Step 16.


Accumulator = 1 after Step 17.
Accumulator = 0.21 after Step 26.
Accumulator = 0 after Step 27.

(Packed Logical Not)


NOTX reads the value (real, integer, or boolean) in the accumulator, performs 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:
17 NOTX

Accumulator = 12.0
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 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.
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
405

B0193AX Rev Z

14. CALC Calculator Block

overwrites 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 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, otherwise it is True.
Example 1:
11 CST

12 IN BI01
13 IN BI07
14 IN BO03
15 IN BI14
16 NXOR

Clears the stack.


BI01 = True
BI07 = False
BO03 = True
BI14 = True
Puts BI01 into accumulator.
Puts BI07 into accumulator. The prior value is pushed
down one stack location.
Puts BO03 into accumulator. The prior values are
pushed down one stack location.
Puts BI14 into accumulator. The prior values are
pushed down one stack location.
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:

11 IN BI04
12 NXOR BO01

406

BI04 = False
BO01 = True
Puts BI04 into accumulator.
Performs the logical NXOR of BI04 and
BO01 and stores the result on the stack.
Accumulator = False

14. CALC Calculator Block

NXOX
NXOX c

B0193AX Rev Z

(Packed Logical Not Exclusive Or)


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:

13 IN II01
14 IN II02
15 IN RI01

16 NXOX 3

II01 = 5 (0000000000000101)
II02 = 7 (0000000000000111)
RI01 = 12.078 (0000000000001100)
Puts II01 into accumulator. The prior value is pushed
down one stack location.
Puts II02 into accumulator. The prior values are
pushed down one stack location.
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.
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 overwrites 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.

407

B0193AX Rev Z

14. CALC Calculator Block

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, otherwise it is True.
Example 1:
11 CST

12 IN BI01
13 IN BI07
14 IN BO03
15 IN BI14
16 OR

Clears the stack.


BI01 = True
BI07 = False
BO03 = True
BI14 = True
Puts BI01 into accumulator.
Puts BI07 into accumulator. The prior value is pushed
down one stack location.
Puts BO03 into accumulator. The prior values are
pushed down one stack location.
Puts BI14 into accumulator. The prior values are
pushed down one stack location.
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:

11 IN BI04
12 OR BO01

ORX
ORX c

408

BI04 = False
BO01 = True
Puts BI04 into accumulator.
Performs the logical OR of BI04 and BO01 and
stores the result on the stack.
Accumulator = True

(Packed Logical Or)


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

14. CALC Calculator Block

B0193AX Rev Z

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

12 IN BI01
13 IN II01
14 IN II02
15 IN RI01

16 ORX

OSP
OSP t
OSP Mxx

Clears the stack.


BI01 = True (0000000000000001)
II01 = 5 (0000000000000101)
II02 = 0 (0000000000000000)
RI01 = 12.078 (0000000000001100)
Puts BI01 into accumulator. Stored as 1.0 and used as
0000000000000001 in the calculation.
Puts II01 into accumulator. The prior value is pushed
down one stack location.
Puts II02 into accumulator. The prior values are pushed
down one stack location.
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.
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

(One-Shot Pulse)
OSP with blank operand or with a 0 constant operand uses 0.5 seconds as
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 operand is Mxx, then the pulse width is determined by the contents of memory 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.

409

B0193AX Rev Z

14. CALC Calculator Block

The TIMINI parameter controls OSP behavior at block initialization time


to avoid unexpected behavior of the OSP element and, possibly, unpredicted activation of the CALC blocks 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 accumulator 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 specified pulse.
In all cases, sptr(after) = sptr(before).
Example:
11 IN BI01
12 OSP 5

13 OUT BO04

Inputs to the accumulator the state of BI01 at the


execution time of each cycle.
Looks at BI01s input to the accumulator, uses it to
control the Step 12 OSP element, and writes the
result to the accumulator.
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.

410

14. CALC Calculator Block

B0193AX Rev Z

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 accumulator 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:
OUT IO02
OUT RO02
OUT ~BO01

Accumulator = 3.1416
Writes accumulator value to output IO02.
Writes accumulator value to output RO02.
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 status 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
32 PRI RO02

PRO ROxx

Loads 4 onto the stack to specify the RI04 will be


used by the PRI instruction.
Propagates the LHI, LLO, INITU, INITC, FS, BAD
and OOS status bits, from RI04 to real output RO02.

(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.
411

B0193AX Rev Z

14. CALC Calculator Block

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
42 PRO RO03
PRP ROxx

Loads 5 onto the stack to specify that RI05 will


be used by the PRO instruction.
Propagates the PRIBLK initialization
acknowledgment bit in RI05 to real output RO03.

(Propagate Errors)
PRP allows you to propagate certain types of RIxx input errors to the specified ROxx output. The RIxx inputs whose error conditions are to be
propagated are specified by a mask on the stack, loaded by a prior instruction. The mask is popped from the stack after it is used. sptr(after) =
sptr(before) - 1.
This instruction sets the ERROR status bit of the specified output operand if any of the specified RIxx inputs are in error. An RIxx input is considered to be in error when:
Its BAD status bit is true, or
Its Out-of-Service (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
13 PRP RO02

Puts Hexadecimal 29 into accumulator.


Propagates any error in RI03 or RI05 or RI08 to the
real output RO02.

where:

1 0

{
{

RI08

RI08

RI06

RI05

RI04

RI03

RI02

RI01

RAND

412

H29

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

14. CALC Calculator Block

B0193AX Rev Z

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.0y))
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.

413

B0193AX Rev Z

14. CALC Calculator Block

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 =
0=
1 or 3 =
2 or 4 =

Unresolved linkage; the source compound or block


cannot be found
No linkage is specified
Resolved Local Linkage; the source parameter is in the
same station
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).

414

RER

(Read Error)
RER reads the internal error flag (the PERROR parameter) during program
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 execution cycle. sptr(after) = sptr(before) + 1.

RND

(Round)
RND reads the number in the accumulator, rounds off the value to the nearest integer, and writes the result into the accumulator, overwriting the
original value.
If the decimal portion is less than 0.5, the value is rounded down to the
integer portion of the number. If the decimal portion is 0.5 or greater, the
value is rounded up to the next higher integer. In the case of negative
accumulator values, if the absolute value of the decimal portion is greater
than 0.5, the value is rounded down to the next lower integer. (See Example 2.) sptr(after) = sptr(before).

14. CALC Calculator Block

B0193AX Rev Z

Example 1:
16...
17 RND

Assume the accumulator has value of 43.499 after Step 16.


Accumulator has value of 43.0 after Step 17.

Example 2:
26...
27 RND

Assume the accumulator has value of -1.68 after Step 26.


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-service).
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 status 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).

415

B0193AX Rev Z

14. CALC Calculator Block

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).
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 output, provided the block is in Auto; otherwise the step is skipped. In all
cases, sptr(after) = sptr(before).
SETB
SETB b

(Set Packed Boolean)


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 runtime error) is written to the PERROR parameter.

416

14. CALC Calculator Block

B0193AX Rev Z

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 significant.
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:

17 SIN

Accumulator = +0.5236 (Pi/6) radians.


(Pi/6 radians = 30 degrees)
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 contents. sptr(after) = sptr(before).
Example:
17 SQR

SQRT

Accumulator = -7.0 or +7.0


Computes square of accumulator
Accumulator = +49.0000

(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 accumulator, 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.

417

B0193AX Rev Z

14. CALC Calculator Block

Example:
17 SQRT

Accumulator = +49.0000
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 accumulator 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 program 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 program 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 accumulator 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 program 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).

418

14. CALC Calculator Block

B0193AX Rev Z

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 accumulator 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 program 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 accumulator 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 program 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 accumulator 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 program 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 integer. The output is changed only when the block is in Auto, otherwise the
instruction is skipped. sptr(after) = sptr(before).

419

B0193AX Rev Z

14. CALC Calculator Block

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 integer. 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 specified 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 register
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 accumulator 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 isolates the second operand from any further access. (The later stack value is
subtracted from the earlier one.) sptr(after) = sptr(before) - 1.
SUB RIxx reads the value stored in RIxx (the CALCs Real Input parameter 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:

11 IN RI01
12 SUB M01

420

M01 = 3.73182
RI01 = 12.3485
Puts RI01 into accumulator.
Substracts M01 from RI01 and stores the result
on the stack
Accumulator = +8.61668

14. CALC Calculator Block

B0193AX Rev Z

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 accumulator, overwriting the original contents. sptr(after) = sptr(before).
Example:

17 TAN

Accumulator = +0.7853983 (Pi/4) radians.


(Pi/4 radians = 45 degrees)
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 decimal portion, and writes the result into the accumulator as a floating point
value, overwriting the original value. sptr(after) = sptr(before).
Example:
17 TRC

Accumulator = 43.999
Truncates the accumulator
Accumulator = 43.0

421

B0193AX Rev Z

TSTB
TSTB b

14. CALC Calculator Block

(Test Packed Boolean)


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 runtime 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 significant.
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 overwrites 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, otherwise it is True.
Example 1:
11 CST

422

Clears the stack.


BI01 = True
BI07 = False
BO03 = True
BI14 = True

14. CALC Calculator Block

B0193AX Rev Z

12 IN BI01
13 IN BI07
14 IN BO03
15 IN BI14
16 XOR

Puts BI01 into accumulator.


Puts BI07 into accumulator. The prior value is pushed
down one stack location.
Puts BO03 into accumulator. The prior values are
pushed down one stack location.
Puts BI14 into accumulator. The prior values are
pushed down one stack location.
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:

11 IN BI04
12 XOR BO01

XORX
XORX c

BI04 = False
BO01 = True
Puts BI04 into accumulator.
Performs the logical XOR of BI04 and BO01
and stores the result on the stack.
Accumulator = True

(Packed Logical Exclusive Or)


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 further
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:

13 IN II01
14 IN II02

II01 = 5 (binary 0000000000000101)


II02 = 7 (binary 0000000000000111)
LI01 =12 (binary
00000000000000000000000000001100)
Puts II01 into accumulator. The prior value is pushed
down one stack location.
Puts II02 into accumulator. The prior values are
pushed down one stack location.

423

B0193AX Rev Z

14. CALC Calculator Block

15 IN LI01

16 XORX 3

Puts the low 16 bits (0000000000001100) of LI01


into accumulator. The prior values are pushed down
one stack location.
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 1s (trues), the result is 1. If there is an even
number of 1s, the result is 0. The resulting value,
binary 0000000000001110, is stored into the accumulator, 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 program 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.

424

14. CALC Calculator Block

B0193AX Rev Z

Table 14-15. PERROR Syntax Error Codes

Code
-1
-2
-3
-4

Definition
Invalid operation code
Invalid operand type
Out of range operand index
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
1
2
3
4
5
6
7
8
9
10
11

Definition
SQRT error (accumulator < 0)
ASIN error (absolute value of accumulator > 1)
ACOS error (absolute value of accumulator > 1)
DIV error (divide by zero)
Stack overflow
Stack underflow
LOG error (accumulator 0)
LN error (accumulator 0)
EXP error (base < 0)
Index error
Bit error

14.8 Programming Concepts


The CALC 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 or one command line argument
which serve to complete the specification of the action to be performed. Each instruction 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.
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.

425

B0193AX Rev Z

14. CALC 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 pseudoparameters, see Instruction Syntax on page 371.
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
STEP02

IN RI01
MUL RI02

STEP03

OUT RO01

Places Real Input 1 into accumulator.


Multiplies the RI01 value it pops from the stack by RI02 and
stores the result on the stack.
Writes the product of RI01 and RI02 to RO01.

Example 2 Calculate ((RI01 + RI02 + RI03 + RI04) / 4):


STEP01
STEP02
STEP03

CST
IN RI01
IN RI02

STEP04

IN RI03

STEP05

IN RI04

STEP06

AVE

Clears the stack.


Places Real Input 1 into accumulator.
Places Real Input 2 into accumulator and pushes Real Input 1 value down
one stack location.
Places Real Input 3 into accumulator and pushes the prior values down
one stack location.
Places Real Input 4 into accumulator and pushes the prior values down
one stack location.
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 program 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.
426

14. CALC Calculator Block

B0193AX Rev Z

Branching Example:
RI01
Program function:
To select either of two
real inputs based on the

BI01

SELECTOR LOGIC
IN CALC BLK

status of a binary input.

RO01

RI02

Example:
STEP01
STEP02
STEP03
STEP04
STEP05
STEP06
STEP07
STEP08

CST
IN BI01
BIT 06
IN RI01
GTO 07
IN RI02
OUT RO01
END

Clear any pending results from stack


Read binary input, to select a real
Branch if binary input is true
Binary is false, read real input #1
Go to output step
Binary is true, read real input #2
Write selected real value to output

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 operand 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 exponentiation). The result is stored in the first stack register.
An operand immediately following the first arithmetic operator goes into the second stack position 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.

427

B0193AX Rev Z

14. CALC Calculator Block

Stack operations occur only for diadic arithmetic operations and for boolean operations other
than the unary NOT function. This approach enables you to mix arithmetic and boolean operations.
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

Prod1
Prod2

Diff

4
Quotient

Root
Prod3
Figure 14-9. Arithmetic Chaining Example, Operation Sequence

428

14. CALC Calculator Block

B0193AX Rev Z

Programming steps to compute the following equation:


RO01 = RI05 * SQRT ((RI01 * RI02) / ((RI03 * RI04) - 1)

STEP01
STEP02
STEP03
STEP04

CST
IN RI01
IN RI02
MUL

STEP05
STEP06
STEP07

IN RI03
IN RI04
MUL

STEP08
STEP09

IN 1
SUB

STEP10

DIV

STEP11

SQRT

STEP12
STEP13

IN RI05
MUL

STEP14

OUT RO01

STEP15

END

Clears stack.
Pushes RI01 value onto stack.
Pushes RI02 value onto stack.
Pops RI01 and RI02 values from stack, multiplies
them, and pushes the product (Prod1) onto stack.
Pushes RI03 value onto stack.
Pushes RI04 value onto stack.
Pops RI03 and RI04 values from stack, multiplies
them, and pushes the product (Prod2) onto stack.
Pushes constant 1 onto stack.
Pops Prod2 and constant 1 from stack, subtracts 1
from Prod2, and pushes difference (Diff ) onto stack.
Pops Prod1 and Diff from stack, divides Prod1 by Diff,
and pushes results (Quotient) onto stack.
Pops Quotient from stack, computes the square root of
Quotient, and pushes the result (Root) onto stack.
Pushes RI05 value onto stack.
Pops Root and RI05 value from stack, multiplies them,
and pushes the result (Prod3) onto stack.
Writes Prod3 to RO01, and Prod3 remains in
position 1 on stack.

429

B0193AX Rev Z

14. CALC Calculator Block

Arithmetic Chaining, Stack Operation

RO01 = RI05 * SQRT ((RI01 * RI02) / ((RI03 * RI04) - 1))


Sequence: 6 5
1
4
2
3

CST
STEP01

IN
STEP02

IN
STEP03

1
MUL
STEP04

IN
STEP05

IN
STEP06

S3 RI04
S2 RI02
S1

S1 RI01

S1 RI01

S1 Prod1

S2 RI03

S2 RI03

S1 Prod1

S1 Prod1

Stack
Registers
(up to 16)

2
MUL
STEP07

3
SUB
STEP09

IN
STEP08

S3

S2 Prod2

S2

S1 Prod1

S1 Prod1

S1 Prod1

S1 Prod1

5
SQRT
STEP11

IN
STEP12

S2 Prod2

6
MUL
STEP13

4
DIV
STEP10

Diff

S2 RI05
S1 Quotient

S1 Root

S1 Root

OUT
STEP14

[RO01]

LEGEND:
Stack
Push

Figure 14-10. Arithmetic Chaining, Stack Operation

430

Stack
Pop

14. CALC Calculator Block

B0193AX Rev Z

14.9 Application Example


Program Function

RI01

Limit measurement input to


downstream control block to the
range 10.0 to 90.0

Measurement

CALC Block
Program

RO01

Figure 14-11. Application Example

Example:
STEP01
STEP02
STEP03

IN RI01
IN 90
SUB

STEP04
STEP05
STEP06
STEP07
STEP08
STEP09

BIN 5
IN 90
GTO 14
IN RI01
IN 10
SUB

STEP10
STEP11
STEP12
STEP13
STEP14
STEP15

BIP 13
IN 10
GTO 14
IN RI01
OUT RO01
END

Reads Real Input 1 and pushes it onto stack.


Reads constant 90.0 and pushes it onto stack.
Pops Real Input 1 and constant 90 from stack, subtracts 90
from Real Input 1, and pushes difference onto stack.
Branches to Step 7 if difference is negative.
Reads constant 90.0 and pushes it onto stack.
Branches to Step 10.
Reads Real Input 1 and pushes it onto stack.
Reads constant 10.0 and pushes it onto stack.
Pops Real Input 1 and constant 10 from stack, subtracts 10
from Real Input 1, and pushes difference onto stack.
Branches to Step 13 if difference is positive.
Reads constant 10.0 and pushes it onto stack.
Branches to Step 14.
Reads Real Input 1 and pushes it onto stack.
Writes limited measurement value to Real Output 1.

431

B0193AX Rev Z

432

14. CALC Calculator Block

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 computational 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 programming 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
8 Real Inputs
2 Integer Inputs
2 Long Integer Inputs

Advanced
Calculation
Program

4 Real Outputs
6 Integer Outputs
2 Long Integer Outputs

(up to 50 steps;
configurable)

Program Error
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 Z

15. CALCA Advanced Calculator Block

Table 15-1. Block Comparison

CALCA
Dual Operands
Output Clamping
Boolean Instructions
Packed Boolean Instructions
Mathematical Instructions
Cascade Instruction
Steps
Memory Registers
Boolean Inputs
Boolean Outputs
Integer Inputs
Integer Outputs
Long Integer Inputs
Long Integer Outputs
Real Inputs
Real Outputs

X
--X
X
X
X
50
24
16
8
2
6
2
2
8
4

CALC
--X
X
X
X
X
50
24
16
8
2
6
2
2
8
4

MATH

LOGIC

X
------X
X
20
5
0
0
0
0
0
0
8
4

X
--X
----15
5
16
4
0
0
1
1
2
0

15.2 Basic Operation


The CALCA block operates like most programmable pocket calculators. The blocks 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 Z

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, integer, and real operations.
Lets your algorithm read the status bits of input/output parameters and directly control 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 downstream block.
Checks correctness of all programming steps following block installation and reconfiguration, 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

0 to 10

435

B0193AX Rev Z

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

---

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 to 1

II01 to II02

integer input 1 to 2

con/set

---

LI01 to LI02

long int input 1 to 2

long

con/set

---

MA

manual/auto

boolean

con/set

0 to 1

INITMA

initialize MA

short

no-con/no-set

0 to 2

TIMINI

timer initialize option

short_int

no-con/set

0 to 3

M01 to M24

memory 1 to 24

real

STEP01 to STEP50

program steps 1 to 50 char[16]

integer

no-con/no-set

0.0

Any real value

no-con/no-set

blank

1 to 8 chars

con/no-set

bit map

Non-Configurable Parameters
OUTPUTS
BLKSTA

block status

pack_l

BO01 to BO08

boolean output 1 to 8 boolean

con/no-set

0 to 1

IO01 to IO06

integer output 1 to 6

integer

con/no-set

---

LO01 to LO02

long int output 1 to 2

long

con/no-set

---

PERROR

program error

integer

con/no-set

---

RO01 to RO04

real output 1 to 4

real

con/no-set

0.0

---

STERR

step error number

integer

con/no-set

---

ACHNGE

alternate change

integer

con/no-set

-32768 to 32767

DEFINE

no config errors

boolean

no-con/no-set

0 to 1

DATA STORES

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 to 1

OWNER

owner name

string

no-con/set

blank

1 to 32 chars

15.4.1 Parameter Definitions

436

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.

15. CALCA Advanced Calculator Block

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

Bit Number*
(0 to 31)
11
14
15
20

MA
UDEF
ON
WLCK

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

B23

B22

B21

B20

MA

B19

B17

Name

UDEF B18

B16

ON

B15

B14

B13

B11

WLCK B12

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

BLKSTA

B0193AX Rev Z

Boolean
Connection
(B32 to B1)

Description When True


Manual = 0, Auto = 1
Block Undefined
Block ON
Access Locked

BLKSTA.B21
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12

* Bit 0 is the least significant bit (starting from the right).


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 configuration errors. The default is 1 (no configuration errors). When the block initializes, 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


blocks function (for example, PLT 3 FURNACE 2 HEATER CONTROL).

ERCODE

Error Code is a string data store which indicates the type of configuration
error which caused the blocks DEFINE parameter to be set false. Validation of configuration errors does not proceed past the first error encountered 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 Z

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 configurator. (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 addition, 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 ...

438

... 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-character 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 displays. 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 blocks
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

15. CALCA Advanced Calculator Block

B0193AX Rev Z

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

M01 to M24

Memory elements 1 through 24 are memory registers. These provide temporary 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 blocks 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 blocks 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
0
1
2
3
4
5
6

Length
0.1 sec
0.5 sec*
1.0 sec
2.0 sec
10 sec
30 sec
1 min

Period
7
8
9
10
11
12
13

Length
10 min
60 min
0.2 sec
5.0 sec**
0.6 sec***
6.0 sec****
0.05 sec*****

439

B0193AX Rev Z

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, and CP60.

PERROR

Program Error is a coded integer output that indicates the type of instruction syntax error or program run-time error that occurred in the step specified 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 Control Processor is 0.5 sec. Refer to the appropriate Integrated Control Software 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; therefore, when one of the
parameters RI01 to RI08 is the sink of a peer-to-peer connection, it will
be updated based on any change in the source of the connection.

RO01 to RO04

Real Outputs 1 through 4 are outputs from the block calculations. They
can be set when the block is in Manual.

STEP01 to STEP50
Steps 1 through 50 are string inputs of up to 16 characters. They are the
50 executable commands that make up the CALCA block program.
STERR

Step Error is an integer output that indicates which program step is exhibiting 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=
1=
2=

440

Initial state change allowed for DOFF, DON, FF, MRS, and OSP.
Initial state change disallowed for DOFF, DON, and OSP.
Initial state change allowed for FF and MRS.
Initial state change disallowed for FF and MRS.

15. CALCA Advanced Calculator Block

3=
TYPE

B0193AX Rev Z

Initial state change allowed for DOFF, DON, and OSP.


Initial state change disallowed for DOFF, DON, FF, MRS, and
OSP.

When you enter CALCA or select it from a configurator list, an identifying 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 cascade acknowledgments.
10 Memory and Stack Reference instructions for reading and writing the memory registers, 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 values. 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 decimal 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 nonzero value to be a logical one, and a zero value to be a logical zero, in keeping with the usual C language convention.
The range of 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 Z

15. CALCA Advanced Calculator Block

Each of the arithmetic operations (and boolean operations) utilize one or more inputs to the calculation, generically referred to as operands. These inputs are obtained from various block parameters, 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 utilizing two inputs are designated diadic, and those utilizing a variable number of inputs are designated polyadic.
Table 15-3. Arithmetic Instructions

Name
ABS
ACOS
ADD
ALN
ALOG
ASIN
ATAN
AVE
CHS
COS
DEC
DIV
EXP
IDIV
IMOD
INC
LN
LOG
MAX
MAXO
MIN
MEDN
MUL
RAND
RANG
RND
SEED
SIN
SQR
SQRT
SUB

442

Function
Absolute Value
Arc Cosine
Add
Natural Antilog
Common Antilog
Arc Sine
Arc Tangent
Average
Change Sign
Cosine
Decrement
Divide
Exponent
Integer Division
Integer Modulus
Increment
Natural Logarithm
Common Logarithm
Maximum
(Same as MAX)
Minimum
Median
Multiply
Generate Random Number
Generate Random Number, Gaussian
Round
Seed Random Number Generator
Sine
Square
Square Root
Subtract

Instruction Type
Unary
Unary
Diadic or Polyadic
Unary
Unary
Unary
Unary
Diadic or Polyadic
Unary
Unary
Unary
Diadic
Diadic
Diadic
Diadic
Unary
Unary
Unary
Diadic or Polyadic
Diadic or Polyadic
Polyadic
Diadic or Polyadic
Unary
Unary
Unary
Unary
Unary
Unary
Unary
Diadic

15. CALCA Advanced Calculator Block

B0193AX Rev Z

Table 15-3. Arithmetic Instructions (Continued)

Name
TAN
TRC

Function
Tangent
Truncate

Instruction Type
Unary
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 boolean values is supported.
Table 15-4. Boolean Instructions

Name
AND
ANDX
NAN
NAND
NOR
NORX
NOT
NOTX
NXO
NXOR
NXOX
OR
ORX
XOR
XORX

Function
Logical And
Packed Logical And
Logical Not And
(Same as NAN)
Logical Not Or
Packed Logical Nor Or
Not
Packed Logical Not
Logical Not Exclusive Or
(Same as NXO)
Packed Logical Not Exclusive Or
Logical Or
Packed Logical Or
Logical Exclusive Or
Packed Logical Exclusive Or

Instruction Type
Diadic or Polyadic
Polyadic
Diadic or Polyadic
Diadic or Polyadic
Polyadic. Packed Boolean
Unary
Unary, Packed Boolean
Diadic or Polyadic, Packed Boolean
Polyadic, Packed Boolean
Diadic or Polyadic
Polyadic, Packed Boolean
Diadic or Polyadic
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 Z

15. CALCA Advanced Calculator Block

Table 15-5. Input/Output Reference Instructions

Name
CBD
CE
COO
IN
INB
INH
INL
INR
INS
OUT
RBD
RCL
RCN
RE
REL
RON
ROO
RQE
RQL
SAC
SBD
SE
SEC
SOO
STH
STL
SWP

Function
Clear Bad Status
Clear Error Status
Clear Out-of-Service Status
Input
Input Indexed Boolean
Input High Order
Input Low Order
Input Indexed Real
Input Status
Output
Read Bad and OOS Bits
Read and Clear
Read Connect Status
Read Error Bit
Clear Secure Status
Read In-Service Status
Read OOS Bit
Read Quality Including Error
Read Quality
Store Accumulator in Output
Set Bad Status
Set Error Status
Set Secure Status
Set Out-of-Service Status
Store High Order
Store Low Order
Swap

Instruction Type
Output Status
Output Status
Output Status
Input Value
Input Value
Input Value
Input Value
Input Value
Input Status
Output Value
Input Status
Input Value/Unconditional Clear
Input Linkage Type
Input Status
Output Status
Input Status
Input Status
Input Status
Input Status
Output Value
Output Status
Output Status
Output Status
Output Status
Output Value
Output Value
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
PRI
PRO
PRP
444

Function
Propagate Upstream
Propagate Downstream
Propagate Errors

Instruction Type
Cascade/Propagation
Cascade
Propagation

15. CALCA Advanced Calculator Block

B0193AX Rev Z

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 register to be accessed by a memory referencing instruction.
Table 15-7. Memory and Stack Reference Instructions

Name
CLA
CLM
CST
DUP
LAC
LACI
POP
STM
STMI
TSTB

Function

Instruction Type

Clear All Memory Registers


Clear Memory Register
Clear Stack
Duplicate
Load Accumulator
Load Accumulator Indirect
Pop Stack
Store Memory
Store Memory Indirect
Test Packed Boolean

Memory
Memory
Stack
Stack
Memory/Stack
Memory/Stack
Stack
Memory/Stack
Memory/Stack
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
BIF
BII
BIN
BIP
BIT
BIZ
END
EXIT
GTI
GTO
NOP

Function
Branch If False
Branch If Initializing
Branch If Negative
Branch If Positive or Zero
Branch If True
Branch If Zero
End Program
Exit Program
Go To Indirect
Go To
No Operation

Instruction Type
Conditional Branch
Conditional Branch
Conditional Branch
Conditional Branch
Conditional Branch
Conditional Branch
Program Termination
Program Termination
Unconditional Branch
Unconditional Branch
Unconditional Branch

445

B0193AX Rev Z

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
CLL
CLR
CLRB
SET
SETB
SSF
SSI
SSN
SSP
SST
SSZ

Function
(Unused NOP)
Clear
Clear Packed Boolean
Set
Set Packed Boolean
Set and Skip if False
Set and Skip if Initializing
Set and Skip if Negative
Set and Skip if Positive
Set and Skip if True
Set and Skip if Zero

Instruction Type
Unconditional Clear
Unconditional Clear
Unconditional Set
Unconditional Set
Conditional Set
Conditional Set
Conditional Set
Conditional Set
Conditional Set
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 values between block executions.)
Table 15-10. Timing Instructions

Name
CHI
CHN
DOFF
DON
OSP
TIM

Function
Clear History
Clear Step History
Delayed OFF
Delayed ON
One-Shot Pulse
Time Since Midnight

Instruction Type
Timing
Timing
Timing
Timing
Timing
Time Reporting

15.5.9 Logic Instructions


The following higher-level logic functions are supported. They emulate the functions of a traditional set-reset flip-flop and a reset-dominant flip-flop, respectively.

446

15. CALCA Advanced Calculator Block

B0193AX Rev Z

Table 15-11. Logic Instructions

Name
FF
MRS

Function
Flip-Flop
Master Reset Flip-Flop

Instruction Type
Logic
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
CLE
RER
SIEC

Function
Clear Error
Read Error
Skip if Error Clear

Instruction Type
Error Control
Error Control
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 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 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 constants 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 Z

15. CALCA Advanced Calculator Block

OUTPUT
RO01 = 17.29

17.29

Part 1. Read

(M)
17.29

MA

O
0.0

O
(A)

OUTPUT
RO01

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 followed 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 Z

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 definitions 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 constant, 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 preceding 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 pseudoparameters 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 Z

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
STEP02
STEP03

ADD RI01 RI02


ADD RI03 RI04
ADD

STEP04
STEP05

IN 4
DIV

Adds RI01 to RI02 and pushes the result (Sum1) onto stack.
Adds RI03 to RI04 and pushes the result (Sum2) onto stack.
Pops Sum2 and Sum1 from stack, performs addition, and
pushes the result (Sum3) onto stack.
Pushes constant 4 onto stack.
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

S1

Sum1

ADD RI03 RI04

S2

Sum2

S1

Sum1

ADD

S1

Sum3

DIV

IN 4

S2

S1

Sum3

S1

Quotient

Stack
Registers
(up to 24)

LEGEND:

Stack
Push

Figure 15-3. Examples of Stack Operation for Diadic Instructions

450

Stack
Pop

15. CALCA Advanced Calculator Block

B0193AX Rev Z

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 instruction 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 decremented 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
STEP02
STEP03
STEP04
STEP05

IN RI01
IN RI02
IN RI03
IN RI04
AVE

Pushes RI01 value onto stack


Pushes RI02 value onto stack
Pushes RI03 value onto stack
Pushes RI04 value onto stack
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

S1

Value1

IN RI02

IN RI03

IN RI04

S4

Value4

S3

Value3

S3

Value3

S2

Value2

S2

Value2

S2

Value2

S1

Value1

S1

Value1

S1

Value1

AVE

S1

Average

Stack
Registers
(up to 24)
LEGEND:
Stack
Push

Stack
Pop

Figure 15-4. Example of Stack Operation for Polyadic Instruction

451

B0193AX Rev Z

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 command 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 values 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 instructions 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.

452

15. CALCA Advanced Calculator Block

B0193AX Rev Z

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

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:
17 ABS

ACOS

Accumulator = -.7853983 or +.7853983


Compute absolute value of accumulator.
Accumulator = +.7853983

(Arc Cosine)
ACOS reads the value (cosine function value) in the accumulator and computes 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, overwriting 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 parameter.
Example 1:
17 ACOS

Accumulator = 0.7071
Compute arc cosine of accumulator.
Accumulator = +0.7853983 (Pi/4) radians. (Pi/4 radians
= 45 degrees)

Example 2:
27 ACOS

Accumulator = -0.5000
Compute arc cosine of accumulator.
Accumulator = 2.0944 (2*Pi/3) radians. (2*Pi/3 radians =
120 degrees)

453

B0193AX Rev Z

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 CALCAs Real Input parameter 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 configuration 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:

12 ADD RI01 M01

ALN

454

RI01 = 12.3485
M01 = 3.73182
Adds RI01 to M01 and stores the result on the
stack.
Accumulator = 16.08032

(Natural Antilog)
ALN reads the value in the accumulator, computes the natural antilogarithm (base e) of the value, and writes the result to the accumulator, overwriting the original contents. sptr(after) = sptr(before).

15. CALCA Advanced Calculator Block

B0193AX Rev Z

Example:
17 ALN

ALOG

Accumulator = +0.69347
Compute natural antilogarithm of accumulator.
Accumulator = +2.0000

(Common Antilog)
ALOG reads the value in the accumulator, computes the base 10 antilogarithm of the value, and writes it to the accumulator, overwriting the original contents. sptr(after) = sptr(before).
Example 1:
17 ALOG

Accumulator = +1.30103
Compute common antilog of accumulator.
Accumulator = +20.0000

Example 2:
27 ALOG

Accumulator = -3.00000
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 overwrites 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 accumulator, and the result replaces the accumulator. sptr(after) = sptr(before).
If both operands are specified, the operands are ANDed together and the
result is stored in the accumulator. sptr(after) = sptr(before) + 1.
If ~ is specified, the operand value is inverted prior to being used.
Before the operand Mxx is used in the calculation, its value is truncated to
an integer; if the result is 0 the operand value is considered False, otherwise it is True.
455

B0193AX Rev Z

15. CALCA Advanced Calculator Block

Example 1:
11 CST

12 IN BI01
13 IN BI07
14 IN BO03
15 IN BI14
16 AND

Clears the stack.


BI01 = True
BI07 = False
BO03 = True
BI14 = True
Puts BI01 into accumulator.
Puts BI07 into accumulator. The prior value is pushed
down one stack location.
Puts BO03 into accumulator. The prior values are
pushed down one stack location.
Puts BI14 into accumulator. The prior values are
pushed down one stack location.
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

12 AND BI03 BO01

ANDX
ANDX c

(Packed Logical And)


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 further
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

456

Puts BI02 into accumulator.


BI03 = False
BO01 = True
Performs the logical AND of BI03 and BO01
and stores the result on the stack.
Accumulator = False

Clears the stack.


BI01 = True (0000000000000001)
II01 = 5 (0000000000000101)
II02 = 7 (0000000000000111)

15. CALCA Advanced Calculator Block

12 IN BI01
13 IN II01
14 IN II02
15 ANDX

ASIN

B0193AX Rev Z

Puts BI01 into accumulator. Stored as 1.0.


Puts II01 into accumulator. The prior value is pushed
down one stack location.
Puts II02 into accumulator. The prior values are
pushed down one stack location.
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)

(Arc Sine)
ASIN reads the value (sine function value) in the accumulator and computes 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, overwriting 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 parameter.
Example 1:
17 ASIN

Accumulator = 0.7071
Compute arc sine of accumulator.
Accumulator = +0.7853983 (Pi/4) radians.
(Pi/4 radians = 45 degrees)

Example 2:
27 ASIN

ATAN

Accumulator = -0.5000
Compute arc sine of accumulator.
Accumulator = -0.5236 (-Pi/6) radians.
(-Pi/6 radians = -30 degrees)

(Arc Tangent)
ATAN reads the value (tangent function value) in the accumulator, computes 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:
17 ATAN

Accumulator = 1.000
Compute arc tangent of accumulator.
Accumulator = +.7853983 (Pi/4) radians.
(Pi/4 radians = 45 degrees)

457

B0193AX Rev Z

15. CALCA Advanced Calculator Block

Example 2:
27 ATAN

Accumulator = -0.5000
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 cth
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 CALCAs Real Input parameter 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 constant
(n), computes the mean algebraic value of RIxx and n, and stores the result
on the stack. If the first operand is ROxx or Mxx, the operation is similar.
sptr(after) = sptr(before) + 1.
Example 1:
11 CST

12 IN RI01
13 IN RI02
14 IN RI03

458

Clears the stack.


RI01 = 12.3485
RI02 = 3,73182
RI03 = -2.0037
RI04 = -0.8369
Places RI01 into accumulator.
Places RI02 into accumulator and pushes the RI01
value down one stack location.
Places RI03 into accumulator and pushes the prior
values down one stack location.

15. CALCA Advanced Calculator Block

15 IN RI04
16 AVE

B0193AX Rev Z

Places RI04 into accumulator and pushes the prior


values down one stack location.
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:

11 AVE RI01 M01

RI01 = 12.3485
M01 = 3.73182
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 accumulator (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 statement
(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 statement
(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 statement
(50 if there is no END step), writes a -4 (invalid goto syntax error) to the
PERROR parameter.

459

B0193AX Rev Z

15. CALCA Advanced Calculator Block

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 statement (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 statement
(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 contents. sptr(after) = sptr(before).
Example 1:
17 CHS

460

Accumulator = -0.6734592
Change sign of accumulator.

15. CALCA Advanced Calculator Block

B0193AX Rev Z

Accumulator = +0.6734592
Example 2:
27 CHS

Accumulator = +0.1086372
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 program execution. PERROR is automatically reset prior to each block execution. 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 output, provided the block is in Auto; otherwise the step is skipped. In all
cases, sptr(after) = sptr(before).
CLRB
CLRB b

(Clear Packed Boolean)


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 runtime 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 significant.

461

B0193AX Rev Z

15. CALCA Advanced Calculator Block

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 accumulator, overwriting the original contents. sptr(after) = sptr(before).
Example:

17 COS

CST

Accumulator = +1.0472 (Pi/3) radians.


(Pi/3 radians = 60 degrees)
Compute cosine of accumulator.
Accumulator = +0.5000

(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) = stackbottom -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.
462

15. CALCA Advanced Calculator Block

B0193AX Rev Z

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:
10 IN RI01
11 DEC 2

RI01 = -5.23
Places RI01 into the accumulator.
Decrement accumulator by 2.
Accumulator = -7.23. (that is, -5.23 - 2.0)

Example 2:
11 DEC M02

M02 = 11.2
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 CALCAs Real Input parameter xx) as the divisor, divides the value (the dividend) that it pops from the
stack, then pushes the result back onto the stack. DIV ROxx and DIV Mxx
do the same for the values stored at ROxx and memory location xx,
respectively. sptr(after) = sptr(before).
DIV RIxx Mxx reads the values stored in RIxx and Mxx, divides the RIxx
value by the Mxx value, and stores the result on the stack. Whenever both
operands are specified, the first operand is divided by the second operand.
sptr(after) = sptr(before) + 1.
DIV RIxx n reads the value stored in RIxx and a specified integer constant
n, divides the RIxx value by n, and stores the result on the stack. If the first
operand is ROxx or Mxx, the operation is similar. sptr(after) = sptr(before)
+ 1.
The range of n is 1 to 127.
NOTE

Values of n outside of this range will cause the block to go undefined with a configuration error in the appropriate step.

463

B0193AX Rev Z

15. CALCA Advanced Calculator Block

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:

12 DIV RI01 M01

DOFF
DOFF t
DOFF Mxx

RI01 = 12.3485
M01 = 3.73182
Divides RI01 by M01, and stores the result on
the stack.
Accumulator = +3.30898

(Delayed OFF}
DOFF produces a logical zero output if the input has been in the logical
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 obtainable with this instruction are effectively unlimited.)
The TIMINI parameter controls DOFF behavior at block initialization
time to avoid unexpected behavior of the DOFF timer and, possibly, unpredicted activation of the CALCA blocks outputs. If the TIMINI parameter
is set (TIMINI = 1) or (TIMINI = 3), the timer is considered to have been
in the expired state just before initialization. A one-to-zero transition of
the accumulator after initialization is required in order to start the timer. If
the TIMINI parameter is not set (TIMINI =0) or (TIMINI = 2), the
timer is considered to have been in the inactive state just before initialization, and a zero in the accumulator at block initialization begins to time
the specified delay. The timer, therefore, begins to run.

464

15. CALCA Advanced Calculator Block

B0193AX Rev Z

In all cases, sptr(after) = sptr(before).


Example:
9 IN RI01
10 STM M01
11 IN BI01
12 DOFF M01

13 OUT BO04

RI01 = 8.0
Places RI01 into accumulator.
Copies accumulator value of 8.0 to M01.
Inputs to the accumulator the state of BI01at the
execution time of each cycle.
Looks at BI01s 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
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

BO04

8 sec

8 sec

Figure 15-5. Timing Diagram for DOFF Example

DON
DON t
DON Mxx

(Delayed ON)
DON produces a logical one output if the input has been in the logical one
state for the consecutive length of time specified by the operand. The output 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

465

B0193AX Rev Z

15. CALCA Advanced Calculator Block

obtained by loading Mxx with the value of -1038. (The delay times obtainable 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 blocks 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
12 DON 7

13 OUT BO04

Inputs to the accumulator the state of BI01 at the


execution time of each cycle.
Looks at BI01s input to the accumulator, uses it to
control the Step 12 DON timer, and writes the
timer result to the accumulator.
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

466

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 additional END statements) following the first END are never executed. If any
skip statement skips over the first END statement, the block program terminates 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).

15. CALCA Advanced Calculator Block

EXIT

B0193AX Rev Z

(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 (exponent), 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. Similarly 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 constant 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:

12 EXP RI01 M01

FF

RI01 = 1.483
M01 = 3.10
Raises RI01 to the power of M01 and pushes the
result on the stack.
Accumulator = +3.392638

(Flip-Flop)

467

B0193AX Rev Z

15. CALCA Advanced Calculator Block

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
0
0
1
1

R
0
1
0
1

Q
No Change
0
1
No Change

The No Change condition causes the value of the 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:

12 IN BI01
13 IN BI02

14 FF

15 OUT BO01

BI01 = True
BI02 = False
Puts BI01 into accumulator has a True value for
set.
Puts BI02 into accumulator has a False value for
reset. The set input is pushed down one stack
location.
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
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

468

15. CALCA Advanced Calculator Block

B0193AX Rev Z

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 statement (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 statement
(50 if there is no END step) writes a -4 (invalid goto syntax error) to the
PERROR parameter.

IDIV
IDIV Mxx

(Integer Division)
IDIV, with either blank or Mxx operand, reads the values from the top two
stack locations, truncates each into integer form, integer divides the second truncated operand (divisor) into the first truncated 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.
The result of integer division is always truncated, so that the quotient
returned to the stack is always a whole number. When an operand Mxx is
specified, the quotient is handled as above, and the integer remainder (the
integer modulus) is stored in memory location xx. The integer modulus is
also always a whole number. In all cases, sptr(after) = sptr(before) - 1.
If the truncated value of the divisor is 0, the value 0.0 is written into the
stack location where the quotient would have been placed. The value 4
(divide run-time error) is written to the PERROR parameter. The value of
Mxx (if specified as an operand) is unchanged.

IMOD

(Integer Modulus)
IMOD reads the values from the top two stack locations, truncates each into
integer form, decrements the stack pointer, and writes the integer modulus
of the first divided by the second truncated value into the new accumulator location (the new top of stack location). This overwrites the first operand and isolates the second operand from any further access. The integer

469

B0193AX Rev Z

15. CALCA Advanced Calculator Block

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:

15 IN RI01
16 IN RI02
17 IMOD

RI01 = 19.713
RI02 = 5.9021
Places RI01 into accumulator.
Places RI02 into accumulator. The prior value is
pushed down one stack location.
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 boolean
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 nonzero, and 1.0 when the parameter value is 0.0. In all cases, sptr(after) =
sptr(before) + 1.
INB
INB {IIxx, Mxx}

470

(Input Indexed Boolean)


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.

15. CALCA Advanced Calculator Block

B0193AX Rev Z

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 original contents. If an integer n is specified, the accumulator value is algebraically 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 algebraically 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 operand 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:
10 IN RI01
11 INC 2

RI01 = -5.23
Places RI01 into the accumulator.
Increments accumulator by 2.
Accumulator = -3.23 (-5.23 + 2.0)

Example 2:
11 INC M02

M02 = 11.2
Increments M02 by 1.
M02 = 12.2

INH {LIxx, LOxx}

(Input High Order)


INH reads the high order 16 bits of parameter LIxx or LOxx as an integer
and pushes it onto the stack. sptr(after) = sptr(before) + 1.

INL {LIxx, LOxx}

(Input Low Order)


INL reads the low order 16 bits of parameter LIxx or LOxx as an integer
and pushes it onto the stack. sptr(after) = sptr(before) + 1.

INR
INR {IIxx, Mxx}

(Input Indexed Real)


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

B0193AX Rev Z

15. CALCA Advanced Calculator Block

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 significant bit; Bit 15 is most significant.)
Bit
0 to 4
5 to 7
8
9
10
11
12
13
14
15

Data Type
OM Status
Bad
Secure/Release
Acknowledge
Out of Service
Shadow Parameter
Limited High
Limited Low
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 operand, where xx is an index from 01 to 24 (or 1 to 24). Neither memory register 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
11 STM M04

472

Definition

Loads accumulator with value 5.0.


Places value 5.0 into M04.

15. CALCA Advanced Calculator Block

B0193AX Rev Z

12 IN 9
13 STM M05
14 LACI M04
15 OUT RO01
LN

Loads accumulator with value 9.0.


Places value 9.0 into M05.
Loads accumulator with contents of M05 (9.0).
Outputs accumulator value of 9.0 to RO01.

(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:
17 LN

Accumulator = +1000.00
Computes natural logarithm of accumulator
Accumulator = +6.907755

Example 2:
27 LN

LOG

Accumulator = +0.130570
Computes natural logarithm of accumulator
Accumulator = 2.035846

(Common Logarithm)
LOG reads the value (which must be positive) in the accumulator, computes
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:
17 LOG

Accumulator = +2000.00
Computes common logarithm of accumulator.
Accumulator = +3.30103

Example 2:
27 LOG

Accumulator = +0.02000
Computes common logarithm of accumulator.
Accumulator = -1.69897

473

B0193AX Rev Z

15. CALCA Advanced Calculator Block

MAX
MAX c
MAX {RIxx, ROxx, Mxx}
MAX {RIxx, ROxx, Mxx} {n, RIxx, ROxx, Mxx}

(Maximum)
MAX reads all the values from the stack, selects the maximum algebraic
value, decrements the stack pointer, and writes this value into the new
accumulator location (the new top of stack location). This overwrites the
first operand and isolates other operands from any further access.
sptr(after) = stackbottom.
MAX c reads the top c values from the stack, selects the maximum algebraic
value from the c topmost values on the stack, writes this value into the cth
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 CALCAs Real Input param-

eter xx), selects the maximum algebraic value from the RIxx value and the
value that it pops from the stack, and then pushes the result onto the
stack. MAX ROxx and MAX Mxx do the same for the values stored at ROxx
and memory location xx, respectively. sptr(after) = sptr(before).
MAX RIxx Mxx reads the values stored in RIxx and Mxx, selects the maximum algebraic value from the RIxx and Mxx values, and stores the result
on the stack. Whenever both operands are specified, the maximum algebraic value is selected from the first and second operands. sptr(after) =
sptr(before) + 1.
MAX RIxx n reads the value stored in RIxx and a specified integer constant
(n), selects the maximum algebraic value from RIxx and n, and stores the
result on the stack. If the first operand is ROxx or Mxx, the operation is
similar. sptr(after) = sptr(before) + 1.
Example 1:
11 CST

12 IN RI01
13 IN RI02
14 IN RI03
15 IN RI04

474

Clears the stack.


RI01 = 12.3485
RI02 = 3.73182
RI03 = -2.0037
RI04 = -0.8369
Places RI01 into accumulator.
Places RI02 into accumulator and pushes the RI01 value
down one stack location.
Places RI03 into accumulator and pushes the prior values
down one stack location.
Places RI04 into accumulator and pushes the prior values
down one stack location.

15. CALCA Advanced Calculator Block

B0193AX Rev Z

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:

11 MAX RI01 M01

RI01 = 12.3485
M01 = 3.73182
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 accumulator
location (the new top of stack location). This overwrites the first operand
and isolates the other operands from any further access.
The median value is 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

12 IN RI01
13 IN RI02
14 IN RI03
15 IN RI04
16 MEDN

Clears the stack.


RI01 = 12.3485
RI02 = 3.73182
RI03 = -2.0037
RI04 = -0.8369
Places RI01 into accumulator.
Places RI02 into accumulator and pushes the RI01 value
down one stack location.
Places RI03 into accumulator and pushes the prior values
down one stack location.
Places RI04 into accumulator and pushes the prior values
down one stack location.
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

475

B0193AX Rev Z

15. CALCA Advanced Calculator Block

MIN
MIN c
MIN {RIxx, ROxx, Mxx}
MIN {RIxx, ROxx, Mxx} {n, RIxx, ROxx, Mxx}

(Minimum)
MIN reads all the values from the stack, selects the minimum algebraic
value, decrements the stack pointer, and writes this value into the new
accumulator location (the new top of stack location). This overwrites the
first operand and isolates the other operands from any further access.
sptr(after) = stackbottom.
MIN c reads the top c values from the stack, selects the minimum algebraic
value from the c topmost values on the stack, writes this value into the cth
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 CALCAs Real Input parame-

ter xx), selects the minimum algebraic value from the RIxx value and the
value that it pops from the stack, and then pushes the result onto the
stack. MIN ROxx and MIN Mxx do the same for the values stored at ROxx
and memory location xx, respectively. sptr(after) = sptr(before).
MIN RIxx Mxx reads the values stored in RIxx and Mxx, selects the minimum algebraic value from the RIxx and Mxx values, and stores the result
on the stack. Whenever both operands are specified, the minimum algebraic value is selected from the first and second operands. sptr(after) =
sptr(before) + 1.
MIN RIxx n reads the value stored in RIxx and a specified integer constant
(n), selects the minimum algebraic value from RIxx and n, and stores the
result on the stack. If the first operand is ROxx or Mxx, the operation is
similar. sptr(after) = sptr(before) + 1.
Example 1:
11 CST

12 IN RI01
13 IN RI02
14 IN RI03
15 IN RI04

476

Clears the stack.


RI01 = 12.3485
RI02 = 3.73182
RI03 = -2.0037
RI04 = -0.8369
Places RI01 into accumulator.
Places RI02 into accumulator and pushes the RI01
value down one stack location.
Places RI03 into accumulator and pushes the prior
values down one stack location.
Places RI04 into accumulator and pushes the prior
values down one stack location.

15. CALCA Advanced Calculator Block

B0193AX Rev Z

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:

11 MIN RI01 M01

MRS

RI01 = 12.3485
M01 = 3.73182
Selects the minimum algebraic value from RI01
and M01 and stores the result on the stack.
Accumulator = 3.73182

(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
0
0
1
1

R
0
1
0
1

Q
No Change
0
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:

12 IN BI01
13 IN BI02

BI01 = True
BI02 = True
Puts BI01 into accumulator has a True value for set.
Puts BI02 into accumulator has a True value for
reset. The set input is pushed down one stack
location.

477

B0193AX Rev Z

15. CALCA Advanced Calculator Block

14 MRS

15 OUT BO01

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
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 isolates 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 CALCAs Real Input parameter 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 constant
(n), multiplies the RIxx value by n, and stores the result on the stack. If the
478

15. CALCA Advanced Calculator Block

B0193AX Rev Z

first operand is ROxx or Mxx, the operation is similar. sptr(after) =


sptr(before).
Example 1 Calculate (RI01 * M01):

12 MUL RI01 M01

RI01 = 12.3485
M01 = 3.73182
Multiplies RI01 by M01 and stores the result
on the stack.
Accumulator = 46.08238

Example 2 Calculate (RI01 + RI02) * (RI03 - RI04):

12 ADD RI01 RI02

15 SUB RI03 RI04

16 MUL

17 OUT RO01
NAN

RI01 = 12.3485
RI02 = 3.73182
RI03 = 8.919
RI04 = 5.199
Adds RI01 to RI02 and stores (pushes) the
result on the stack.
Accumulator = 16.08032
Subtracts RI04 from RI03 and stores (pushes)
the result on the stack.
Accumulator = 3.72
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
Writes the value (59.81879) in the accumulator
(top of the stack) to the RO01 parameter.

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 further access. sptr(after) = stackbottom.

479

B0193AX Rev Z

15. CALCA Advanced Calculator Block

If c is specified, the last c stack locations are NANDed together, removed


from the stack, and the result stored in the accumulator. sptr(after) =
sptr(before) - c + 1.
If c exceeds the current number of stack operands, a 6 (stack underflow
run-time error) is written to the PERROR parameter.
If only one operand is specified, the operand is NANDed with the accumulator, 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, otherwise it is True.
Example 1:
11 CST

12 IN BI01
13 IN BI07
14 IN BO03
15 IN BI14
16 NAND

Clears the stack.


BI01 = True
BI07 = False
BO03 = True
BI14 = True
Puts BI01 into accumulator.
Puts BI07 into accumulator. The prior value is pushed
down one stack location.
Puts BO03 into accumulator. The prior values are
pushed down one stack location.
Puts BI14 into accumulator. The prior values are
pushed down one stack location.
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:

12 NAND BI04 BO01

NANX
NANX c

480

BI04 = False
BO01 = True
Performs the logical NAND of BI04 and
BO01 and stores the result on the stack.
Accumulator = True

(Packed Logical Not And)


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

15. CALCA Advanced Calculator Block

B0193AX Rev Z

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.
Example:

13 IN II01
14 IN II02
15 IN RI01

16 NANX 3

NOP

II01 = 5 (0000000000000101)
II02 = 1 (0000000000000001)
RI01 = 13.078 (0000000000001101)
Puts II01 into accumulator. The prior value is pushed
down one stack location.
Puts II02 into accumulator. The prior values are pushed
down one stack location.
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.
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

(No Operation)
This instruction causes the step to be ignored. The program continues
with the next instruction. sptr(after) = sptr(before).

NOR
NOR c
NOR {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
NOR {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx} {BIxx,
BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}

(Logical Not Or)


NOR performs a logical nor (not or) of the contents of the specified operands and stack locations. Logical Not Or is defined as producing a False
output if any input is True and a True output if all of the inputs are False.
If blank is specified, all stack locations are NORed together, and the result
is written into the accumulator (the new top of stack location). This overwrites 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.

481

B0193AX Rev Z

15. CALCA Advanced Calculator Block

If c exceeds the current number of stack operands, a 6 (stack underflow


run-time error) is written to the PERROR parameter.
If only one operand is specified, the operand is NORed with the accumulator, 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, otherwise it is True.
Example 1:
11 CST

12 IN BI01
13 IN BI07
14 IN BO03
15 IN BI14
16 NOR

Clears the stack.


BI01 = True
BI07 = False
BO03 = True
BI14 = True
Puts BI01 into accumulator.
Puts BI07 into accumulator. The prior value is pushed
down one stack location.
Puts BO03 into accumulator. The prior values are
pushed down one stack location.
Puts BI14 into accumulator. The prior values are
pushed down one stack location.
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:

12 NOR BI04 BO01

482

BI04 = False
BO01 = True
Performs the logical NOR of BI04 and BO01
and stores the result on the stack.
Accumulator = False

15. CALCA Advanced Calculator Block

NORX
NORX c

(Packed Logical Not Or)


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 further
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:

13 IN II01
14 IN II02
15 IN RI01

16 NORX 3

NOT

B0193AX Rev Z

II01 = 5 (0000000000000101)
II02 = 1 (0000000000000001)
RI01 = 13.078 (0000000000001101)
Puts II01 into accumulator. The prior value is pushed
down one stack location.
Puts II02 into accumulator. The prior values are
pushed down one stack location.
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.
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 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):
17 NOT
27 NOT

Accumulator = 0 after Step 16.


Accumulator = 1 after Step 17.
Accumulator = 0.21 after Step 26.
Accumulator = 0 after Step 27.

483

B0193AX Rev Z

NOTX

15. CALCA Advanced Calculator Block

(Packed Logical Not)


NOTX reads the value (real, integer, or boolean) in the accumulator, performs 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:
17 NOTX

NXO

Accumulator = 12.0
Complement the accumulator.
Accumulator = -13.0. (Complement of
0000000000001100 is 1111111111110011, or -13.0.)

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 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.
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 further 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 accumulator, 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, otherwise it is True.

484

15. CALCA Advanced Calculator Block

B0193AX Rev Z

Example 1:
11 CST

12 IN BI01
13 IN BI07
14 IN BO03
15 IN BI14
16 NXOR

Clears the stack.


BI01 = True
BI07 = False
BO03 = True
BI14 = True
Puts BI01 into accumulator.
Puts BI07 into accumulator. The prior value is pushed
down one stack location.
Puts BO03 into accumulator. The prior values are
pushed down one stack location.
Puts BI14 into accumulator. The prior values are
pushed down one stack location.
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:

12 NXOR BI04 BO01

NXOX
NXOX c

BI04 = False
BO01 = True
Performs the logical NXOR of BI04 and
BO01 and stores the result on the stack.
Accumulator = False

(Packed Logical Not Exclusive Or)


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.

485

B0193AX Rev Z

15. CALCA Advanced Calculator Block

Example:

13 IN II01
14 IN II02
15 IN RI01

16 NXOX 3

II01 = 5 (0000000000000101)
II02 = 7 (0000000000000111)
RI01 = 12.078 (0000000000001100)
Puts II01 into accumulator. The prior value is pushed
down one stack location.
Puts II02 into accumulator. The prior values are
pushed down one stack location.
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.
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 overwrites 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 accumulator, 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, otherwise it is True.

486

15. CALCA Advanced Calculator Block

B0193AX Rev Z

Example 1:
11 CST

12 IN BI01
13 IN BI07
14 IN BO03
15 IN BI14
16 OR

Clears the stack.


BI01 = True
BI07 = False
BO03 = True
BI14 = True
Puts BI01 into accumulator.
Puts BI07 into accumulator. The prior value is pushed
down one stack location.
Puts BO03 into accumulator. The prior values are
pushed down one stack location.
Puts BI14 into accumulator. The prior values are
pushed down one stack location.
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:

12 OR BI04 BO01

ORX
ORX c

BI04 = False
BO01 = True
Performs the logical OR of BI04 and BO01 and
stores the result on the stack.
Accumulator = True

(Packed Logical Or)


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

487

B0193AX Rev Z

15. CALCA Advanced Calculator Block

Example:
11 CST

12 IN BI01
13 IN II01
14 IN II02
15 IN RI01

16 ORX

OSP
OSP t
OSP Mxx

488

Clears the stack.


BI01 = True (0000000000000001)
II01 = 5 (0000000000000101)
II02 = 0 (0000000000000000)
RI01 = 12.078 (0000000000001100)
Puts BI01 into accumulator. Stored as 1.0 and used as
0000000000000001 in the calculation.
Puts II01 into accumulator. The prior value is pushed
down one stack location.
Puts II02 into accumulator. The prior values are pushed
down one stack location.
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.
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

(One-Shot Pulse)
OSP with blank operand or with a 0 constant operand uses 0.5 seconds as
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 operand is Mxx, then the pulse width is determined by the contents of memory 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, unpredicted activation of the CALCA blocks outputs. If the TIMINI parameter
is set (TIMINI = 1) or (TIMINI = 3), the pulse is considered to have been

15. CALCA Advanced Calculator Block

B0193AX Rev Z

in progress just before initialization. A zero-to-one transition of the accumulator 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 specified pulse.
In all cases, sptr(after) = sptr(before).
Example:
11 IN BI01
12 OSP 5

13 OUT BO04

Inputs to the accumulator the state of BI01 at the


execution time of each cycle.
Looks at BI01s input to the accumulator, uses it to
control the Step 12 OSP element, and writes the
result to the accumulator.
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 accumulator 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.

489

B0193AX Rev Z

15. CALCA Advanced Calculator Block

OUT does not alter the contents or location of the accumulator. sptr(after) =

sptr(before).
Example:
OUT IO02
OUT RO02
OUT ~BO01

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 status 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
32 PRI RO02

PRO ROxx

490

Accumulator = 3.1416
Writes accumulator value to output IO02.
Writes accumulator value to output RO02.
Writes accumulator value to output BO01.
IO02 = 3
RO02 = 3.1416
BO01 = False

Loads 4 onto the stack to specify the RI04 will be


used by the PRI instruction.
Propagates the LHI, LLO, INITU, INITC, FS, BAD
and OOS status bits, from RI04 to real output RO02.

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

15. CALCA Advanced Calculator Block

B0193AX Rev Z

Example:
41 IN 5
42 PRO RO03
PRP ROxx

Loads 5 onto the stack to specify that RI05 will


be used by the PRO instruction.
Propagates the PRIBLK initialization
acknowledgment bit in RI05 to real output RO03.

(Propagate Errors)
PRP allows you to propagate certain types of RIxx input errors to the specified ROxx output. The RIxx inputs whose error conditions are to be
propagated are specified by a mask on the stack, loaded by a prior instruction. The mask is popped from the stack after it is used. sptr(after) =
sptr(before) - 1.
This instruction sets the ERROR status bit of the specified output operand if any of the specified RIxx inputs are in error. An RIxx input is considered to be in error when:

Its BAD status bit is true, or


Its Out-of-Service (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
13 PRP RO02

Puts Hexadecimal 29 into accumulator.


Propagates any error in RI03 or RI05 or RI08 to the
real output RO02.

where:

1 0

{
{

RI08

RI08

RI06

RI05

RI04

RI03

RI02

RI01

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

491

B0193AX Rev Z

15. CALCA Advanced Calculator Block

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.0y))
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 inte-

ger result in the accumulator. sptr(after) = sptr(before) + 1.

492

15. CALCA Advanced Calculator Block

B0193AX Rev Z

The connection status values are:


-1 or -2 =
0=
1 or 3 =
2 or 4 =

Unresolved linkage; the source compound or block


cannot be found
No linkage is specified
Resolved Local Linkage; the source parameter is in the
same station
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 program
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 execution cycle. sptr(after) = sptr(before) + 1.

RND

(Round)
RND reads the number in the accumulator, rounds off the value to the nearest integer, and writes the result into the accumulator, overwriting the
original value.
If the decimal portion is less than 0.5, the value is rounded down to the
integer portion of the number. If the decimal portion is 0.5 or greater, the
value is rounded up to the next higher integer. In the case of negative
accumulator values, if the absolute value of the decimal portion is greater
than 0.5, the value is rounded down to the next lower integer. (See Example 2.) sptr(after) = sptr(before).
Example 1:
16...
17 RND

Assume that the accumulator has value of 43.499 after Step 16.
Accumulator has value of 43.0 after Step 17.

493

B0193AX Rev Z

15. CALCA Advanced Calculator Block

Example 2:
26...
27 RND

Assume that the accumulator has value of -1.68 after Step 26.
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-service).
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 status 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).

494

15. CALCA Advanced Calculator Block

B0193AX Rev Z

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 output, provided the block is in Auto; otherwise the step is skipped. In all
cases, sptr(after) = sptr(before).
SETB
SETB b

(Set Packed Boolean)


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 runtime 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 significant.

495

B0193AX Rev Z

15. CALCA Advanced 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:

17 SIN

Accumulator = +0.5236 (Pi/6) radians.


(Pi/6 radians = 30 degrees)
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 contents. sptr(after) = sptr(before).
Example:
17 SQR

SQRT

Accumulator = -7.0 or +7.0


Computes square of accumulator
Accumulator = +49.0000

(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 accumulator, 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:
17 SQRT

496

Accumulator = +49.0000
Computes square root of accumulator
Accumulator = +7.00000

15. CALCA Advanced Calculator Block

B0193AX Rev Z

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 accumulator 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 program 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 program 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 accumulator 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 program 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 accumulator is positive or zero. Otherwise the instruction is ignored and the
next instruction in sequence is executed.

497

B0193AX Rev Z

15. CALCA Advanced Calculator Block

If this instruction is the last or next-to-last step in the CALCA block program 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 accumulator 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 program 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 accumulator 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 program 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 integer. The output is changed only when the block is in Auto, otherwise the
instruction is skipped. sptr(after) = sptr(before).
STL LOxx

498

(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 integer. The output is changed only when the block is in Auto, otherwise the
instruction is skipped. sptr(after) = sptr(before).

15. CALCA Advanced Calculator Block

B0193AX Rev Z

STM Mxx

(Store Memory)
STM Mxx stores the accumulator contents into the memory register specified 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 register
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 accumulator 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 isolates the second operand from any further access. (The later stack value is
subtracted from the earlier one.) sptr(after) = sptr(before) - 1.
SUB RIxx reads the value stored in RIxx (the CALCAs 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).
SUB RIxx Mxx reads the values stored in RIxx and Mxx, subtracts the Mxx
value from the RIxx value, and stores the result on the stack. Whenever
both operands are specified, the second operand is subtracted from the
first operand. sptr(after) = sptr(before) + 1.
SUB RIxx n reads the value stored in RIxx and a specified integer constant
(n), substracts n from the RIxx value, and stores the result on the stack. If
the first operand is ROxx or Mxx, the operation is similar. sptr(after) =
sptr(before) + 1.
Example:

12 SUB RI01 M01

M01 = 3.73182
RI01 = 12.3485
Substracts M01 from RI01 and stores the result
on the stack
Accumulator = +8.61668

499

B0193AX Rev Z

15. CALCA Advanced 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 accumulator, overwriting the original contents. sptr(after) = sptr(before).
Example:

17 TAN

Accumulator = +0.7853983 (Pi/4) radians.


(Pi/4 radians = 45 degrees)
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 decimal portion, and writes the result into the accumulator as a floating point
value, overwriting the original value. sptr(after) = sptr(before).
Example:
17 TRC

500

Accumulator = 43.999
Truncates the accumulator
Accumulator = 43.0

15. CALCA Advanced Calculator Block

TSTB
TSTB b

B0193AX Rev Z

(Test Packed Boolean)


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 runtime 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 significant.
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 overwrites 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 accumulator, 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, otherwise it is True.

501

B0193AX Rev Z

15. CALCA Advanced Calculator Block

Example 1:
11 CST

12 IN BI01
13 IN BI07
14 IN BO03
15 IN BI14
16 XOR

Clears the stack.


BI01 = True
BI07 = False
BO03 = True
BI14 = True
Puts BI01 into accumulator.
Puts BI07 into accumulator. The prior value is pushed
down one stack location.
Puts BO03 into accumulator. The prior values are
pushed down one stack location.
Puts BI14 into accumulator. The prior values are
pushed down one stack location.
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:

12 XOR BI04 BO01

XORX
XORX c

BI04 = False
BO01 = True
Performs the logical XOR of BI04 and BO01
and stores the result on the stack.
Accumulator = True

(Packed Logical Exclusive Or)


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 further
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)

502

15. CALCA Advanced Calculator Block

13 IN II01
14 IN II02
15 IN LI01

16 XORX 3

B0193AX Rev Z

Puts II01 into accumulator. The prior value is pushed


down one stack location.
Puts II02 into accumulator. The prior values are
pushed down one stack location.
Puts the low 16 bits (0000000000001100) of LI01
into accumulator. The prior values are pushed down
one stack location.
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 1s (trues), the result is 1. If there is an even
number of 1s, the result is 0. The resulting value,
binary 0000000000001110, is stored into the accumulator, 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 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.).
503

B0193AX Rev Z

15. CALCA Advanced Calculator Block

The syntax error codes for the PERROR parameter are listed in Table 15-15.
Table 15-15. PERROR Syntax Error Codes

Code
-1
-2
-3
-4

Definition
Invalid operation code
Invalid operand type
Out of range operand index
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
1
2
3
4
5
6
7
8
9
10
11

Definition
SQRT error (accumulator < 0)
ASIN error (absolute value of accumulator > 1)
ACOS error (absolute value of accumulator > 1)
DIV error (divide by zero)
Stack overflow
Stack underflow
LOG error (accumulator 0)
LN error (accumulator 0)
EXP error (base < 0)
Index error
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 instruction 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.
504

15. CALCA Advanced Calculator Block

B0193AX Rev Z

3. Boolean Variables Parameters BIxx and BOxx, and pseudo-parameters Ixx and Oxx.
Boolean variables can be optionally inverted before use. For information on pseudoparameters, 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

STEP02

OUT RO01

Multiplies Real Input 1 by Real Input 2 and stores the results


on the stack.
Writes the product of RI01 and RI02 to RO01.

Example 2 Calculate ((RI01 + RI02 + RI03 + RI04) / 4):


STEP01
STEP02
STEP03

CST
IN RI01
IN RI02

STEP04

IN RI03

STEP05

IN RI04

STEP06

AVE

Clears the stack.


Places Real Input 1 into accumulator.
Places Real Input 2 into accumulator and pushes Real Input 1 value down
one stack location.
Places Real Input 3 into accumulator and pushes the prior values down
one stack location.
Places Real Input 4 into accumulator and pushes the prior values down
one stack location.
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 accumulator value, or on the block initialization status.
The following example demonstrates this concept.
Branching Example

505

B0193AX Rev Z

15. CALCA Advanced Calculator Block

RI01
Program Function
Select Real Input 1 if
it is positive; otherwise, select Real
Input 2.

SELECTOR LOGIC
IN CALCA BLK

RO01

RI02
Figure 15-8. Program Branching Example

Example:
STEP01
STEP02
STEP03
STEP04

IN RI01
BIP 04
IN RI02
OUT RO01

Reads Real Input 1.


Branches if value is positive.
Reads Real Input 2.
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 according 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 operation. 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.

506

15. CALCA Advanced Calculator Block

B0193AX Rev Z

Equation: RO01 = RI05 * SQRT [(RI01 * RI02) / ((RI03 * RI04) - 1)]


6

Prod1
Prod2

Diff

4
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

STEP02

MUL RI03 RI04

STEP03
STEP04

IN 1
SUB

STEP05

DIV

STEP06

SQRT

STEP07

MUL RI05

STEP08

OUT RO01

STEP9

END

Multiplies RI01 value by RI02 value and pushes


product (Prod1) onto stack.
Multiplies RI03 value by RI04 value and pushes
product (Prod2) onto stack.
Pushes constant 1 onto stack.
Pops Prod2 and constant 1 from stack, subtracts 1
from Prod2, and pushes difference (Diff ) onto stack.
Pops Prod1 and Diff from stack, divides Prod1 by Diff,
and pushes results (Quotient) onto stack.
Pops Quotient from stack, computes the square root of
Quotient, and pushes the result (Root) onto stack.
Pops Root from stack, multiplies it by RI05 value, and
pushes product (Prod3) onto stack.
Writes Prod3 to RO01, and Prod3 remains in
position 1 on stack.

507

B0193AX Rev Z

15. CALCA Advanced Calculator Block

Arithmetic Chaining, Stack Operation

RO01 = RI05 * SQRT ((RI01 * RI02) / ((RI03 * RI04) - 1))


Sequence: 6 5
1
4
2
3
1
MUL
STEP01

2
MUL
STEP02

S3

S1 Prod1

3
SUB
STEP04

IN
STEP03

4
DIV
STEP05

5
SQRT
STEP06

1
Diff

S2 Prod2

S2 Prod2

S2

S1 Prod1

S1 Prod1

S1 Prod1

S1 Quotient

S1 Root

Stack
Registers
(up to 24)

6
MUL
STEP07
S1 Prod3

OUT
STEP08

LEGEND:
Stack
Push

[RO01]

Stack
Pop

Figure 15-10. Arithmetic Chaining Example, Stack Operation

15.9 Application Example


Program Function

RI01

Limit measurement input to


downstream control block to the
range 10.0 to 90.0

Measurement

CALCA Block
Program

RO01

Figure 15-11. Application Example

Example:
STEP01
STEP02
STEP03
STEP04
STEP05
STEP06

508

SUB RI01 90
BIN 5
IN 90
GTO 10
SUB RI01 10
BIP 09

Substracts constant 90.0 from Real Input 1.


Branches to Step 5 if difference is negative.
Reads constant 90.0 and pushes it onto stack.
Branches to Step 10.
Substracts constant 10.0 from Real Input 1.
Branches to Step 09 if difference is positive.

15. CALCA Advanced Calculator Block

STEP07
STEP08
STEP09
STEP10
STEP11

IN 10
GTO 10
IN RI01
OUT RO01
END

B0193AX Rev Z

Reads constant 10.0 and pushes it onto stack.


Branches to Step 10.
Reads Real Input 1 and pushes it onto stack.
Writes limited measurement value to Real Output 1.

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 preceding one.

509

B0193AX Rev Z

510

15. CALCA Advanced Calculator Block

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 linear 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
Out-of-Range

CHARC
BLOCK

Block Status

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 thermocouple compensation.

Out-of-range alarming (ORAO).


Error propagation (PROPT and EROPT).

511

B0193AX Rev Z

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 during 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

0 to 13

PHASE

block phase number

integer

no-con/no-set

---

LOOPID

loopid

string

no-con/set

blank

1 to 32 chars

EXTOPT

extender block option

short

no-con/no-set

[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 to 1

PRITIM

primary cascade timer

no-con/no-set

0.0

seconds

real

BCALCI

back calculated input

real

con/set

0.0

RO1

PROPT

propagate error

boolean

no-con/no-set

0 to 1

EROPT

error option

short

no-con/no-set

[0|1|2]

STPOPT

step function option

boolean

no-con/no-set

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..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 to 1

INITMA

initialize MA

short

no-con/no-set

[0|1|2]

INHOPT

inhibit option

short

no-con/no-set

0 to 3

INHIB

alarm inhibit

boolean

con/set

0 to 1

ORAO

out-of-range alarming

boolean

no-con/no-set

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 Z

Table 16-1. CHARC Block Parameters (Continued)


Name

Description

Type

Accessibility Default

Units/Range

ORAP

out-of-range priority

integer

con/set

[1..5]

ORAG

out-of-range group

short

no-con/set

[1..8]

AMRTIN

alarm regeneration timer

integer

no-con/no-set

0 to 32767 s

pack_l

con/no-set

bit map

Non-Configurable Parameters
OUTPUTS
ALMSTA

alarm status

BCALCO

back calculated output

real

con/no-set

0.0

RI1

BLKSTA

block status

pack_l

con/no-set

bit map

CRIT

criticality

integer

con/no-set

[0..5]

HOR

high out-of-range

boolean

con/no-set

0 to 1

INHSTA

inhibit status

pack_l

con/no-set

0 to FFFFFFFF

INITO

initialize out

short

con/no-set

---

LOR

low out-of-range

boolean

con/no-set

0 to 1

OUT

output

real

con/no-set

0.0

RO1

PRTYPE

priority type

integer

con/no-set

[0..10]

UNACK

alarm notification

boolean

con/no-set

0 to 1

ACHNGE

alternate change

integer

con/no-set

-32768 to 32767

ALMOPT

alarm options

pack_l

no-con/no-set

0 to FFFFFFFF

DEFINE

no config errors

boolean

no-con/no-set

0 to 1

DATA STORES

ERCODE

config error

string

no-con/no-set

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 to 1

OWNER

owner name

string

no-con/set

blank

1 to 32 chars

PRSCAS

cascade state

short

no-con/no-set

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:

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

8
B24

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

513

B0193AX Rev Z

16. CHARC Characterizer Block

Bit Number*
(0 to 31)

Configured Alarm Option


When True

0
1
7
28

Boolean Connection
(B32 to B1)

Alarm Group 8 in Use


Alarm Group 7 in Use
Alarm Group 1 in Use
Out-of-Range Alarm Configured

ALMOPT.B32
ALMOPT.B31
ALMOPT.B25
ALMOPT.B4

* Bit 0 is the least significant bit (starting from the right).


There are no mnemonic names for the individual bits of ALMOPT.
Alarm Status is a 32-bit output, bit-mapped to indicate the blocks alarm
states. For the CHARC block, only the following bits are used:

Bit
Number
(0 to 31)*

CRIT

Name

Description When True

0 to 4

PTYP_MSK

5 to 7

CRIT_MSK

28
29
30

OOR
INH
UNAK

Priority Type: See parameter


PRTYPE for values used in
the AIN block
Criticality; 5 = lowest
priority, 1= highest
Out of Range Alarm
Alarm inhibit
Unacknowledged

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B3

OOR B4

INH

B1

UNAK B2

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

ALMSTA

PRTYPE

Boolean
Connection
(B32 to B1)
ALMSTA.B32
ALMSTA.B28
ALMSTA.B27
ALMSTA.B25
ALMSTA.B4
ALMSTA.B3
ALMSTA.B2

* Bit 0 is the least significant bit (starting from the right).

514

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

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

16. CHARC Characterizer Block

B0193AX Rev Z

cascade initialization data bits which were formerly contained in the


INITI parameter. Therefore, BCALCI defines the source block and
parameter that drives this block into initialization, and INITI and INITO
are not required for cascade initialization.
BCALCO

Back Calculation Output is a real output that is passed upstream for


bumpless initialization purposes. It is the inverse interpolation of the output 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 blocks operational states. For the CHARC block, only the following bits are used:

Bit
Number*
(0 to 31)
11
14
15
20
26

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

B24

B23

B22

B21

B20

MA

B19

B17

UDEF B18

B16

ON

B15

B14

B13

B11

WLCK B12

B10

B9

B8

B7

B6
MAO

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Name

Description When True

MA
UDEF
ON
WLCK
MAO

Manual(= false)/Auto(= true)


Undefined
Compound On
Workstation Lock
Manual/Auto Override

Boolean
Connection
(B32 to B1)
BLKSTA.B21
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12
BLKSTA.B6

* Bit 0 is the least significant bit (starting from the right).

CRIT

Criticality is an integer output that indicates the priority, ranging from 1


to 5, of the blocks highest currently active alarm (1 is the highest priority).
An output of zero indicates the absence of alarms.

515

B0193AX Rev Z

516

16. CHARC Characterizer Block

DEFINE

Define is a data store which indicates the presence or absence of configuration errors. The default is 1 (no configuration errors). When the block initializes, 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 blocks compound, change deltas have no
effect.

DELTO1

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

DESCRP

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


blocks function (for example, PLT 3 FURNACE 2 HEATER CONTROL).

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 breakpoint 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 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 blocks
DEFINE parameter to be set false, but not the warning situations. Validation of configuration errors does not proceed past the first error encountered by the block logic. The block detailed display shows the ERCODE
on the primary page, if it is not null. For the CHARC block, the following
list specifies the possible values of ERCODE, and the significance of each
value in this block:

16. CHARC Characterizer Block

B0193AX Rev Z

Message
W43 INVALID PERIOD/
PHASE COMBINATION

W44 INVALID
ENGINEERING RANGE
W46 INVALID INPUT
CONNECTION

W48 INVALID BLOCK


OPTION
W53 INVALID
PARAMETER VALUE

W58 INSTALL ERROR;


DELETE/UNDELETE BLOCK
EROPT

Value
PHASE does not exist for given
block PERIOD, or block
PERIOD not compatible with
compound PERIOD.
High range value is less than or
equal to low range value.
The source parameter specified in
the 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.
PRITIM = zero is not allowed
(occurs when PRIBLK = 1).
A parameter value is not in the
acceptable range. The
X_parameters for STARTP to
ENP are not monotonically
increasing.
A Database Installer error has
occurred.

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=
1=

2=

The block ignores the errors.


The block sets the ERROR bit in OUT if the MEAS parameter:
has its BAD status bit set true;
has its OOS status bit set true;
is experiencing peer-to-peer path failure.
The block sets the ERROR bit in OUT if the MEAS parameter:
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 Z

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 blocks EXTBLK parameter must be linked to this blocks BLKSTA 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 conversion 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.

518

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.

16. CHARC Characterizer Block

B0193AX Rev Z

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

1=

2=

3=

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:

Bit
Number*
(0 to 31)
28
29
30

Name

Description When True

OOR
INH
UNACK

Out-of-Range Alarm Inhibited


Inhibit Alarm
Unacknowledged

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B4
OOR

B5

B3
INH

B1

UNACK B2

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

INHSTA

Boolean
Connection
(B32 to B1)
INHSTA.B4
INHSTA.B3
INHSTA.B2

* Bit 0 is the least significant bit (starting from the right).

519

B0193AX Rev Z

INITMA

16. CHARC Characterizer Block

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.

520

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-character 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 displays. 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
blocks 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 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.

16. CHARC Characterizer Block

B0193AX Rev Z

LOR

Low Out-of-Range is a boolean output that is set true if any one of the following 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 conversion 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 destination.

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 specific algorithm. 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 program can then set the output to a desired value.

MEAS

Measurement is an input identifying the source of the blocks 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-ofRange 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 Z

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 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 blocks 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
0
1
2
3
4
5
6

Length
0.1 sec
0.5 sec*
1.0 sec
2.0 sec
10 sec
30 sec
1 min

Period
7
8
9
10
11
12
13

Length
10 min
60 min
0.2 sec
5.0 sec**
0.6 sec***
6.0 sec****
0.05 sec*****

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

522

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

16. CHARC Characterizer Block

B0193AX Rev Z

fourth BPC of the 2-second time period, assuming the BPC of the Control Processor is 0.5 sec. Refer to the appropriate Integrated Control Software 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 connections between each primary-secondary block combination. These connections 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 closing 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 Z

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

524

State

INIT_U

2
3

PRI_OPN
INIT_C

PRI_CLS

Description
unconditional initialization of the primary
cascade is in progress.
the primary cascade is open.
conditional initialization of the primary
cascade is in progress.
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 engineering 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 engineering 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 designated 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 twentyfirst breakpoints in the series of line segments that make up the character-

16. CHARC Characterizer Block

B0193AX Rev Z

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 twentyfirst breakpoints in the series of line segments that make up the characterization 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 Z

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 CHARCs 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 interpolation 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 breakpoints, 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 exceeding 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 configured 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 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.
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 Z

MA
OUT (EO1)

(X21, Y21)

HSCO1
ENDP(21)

(X20, Y20)
MEAS

(X2, Y2)

OUT

(X3, Y3)
STARTP(1)

(X1, Y1)
Interpolation *
Interval

MEAS
(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 reference 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-ofService 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-Service status, or if the OM field of MEAS status has any value other than 1
(ON_SCAN).
527

B0193AX Rev Z

16. CHARC Characterizer Block

EROPT = 2: The Error status bit of OUT is set true if MEAS has Bad, Out-of-Service, 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 output is in HOLD mode.
The cascade is open downstream, as indicated by the conditional or unconditional
initialization status bit of the blocks BCALCI parameter. If the unconditional initialization bit is true, the blocks 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 backcalculated 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 initialization, the acknowledgement is not required and a Hold of one cycle only occurs.
If you set the PRIBLK parameter in the CHARC block to 1, the user must use PRITIM to hold
the blocks output for x seconds (PRITIM=x) during a manual to automatic mode change.

528

16. CHARC Characterizer Block

B0193AX Rev Z

However, the warning W48 - INVALID BLOCK OPTION appears when you configure
PRITIM to 0.0 and PRIBLK to 1. To resolve this error, set PRITIM to be greater than 0 seconds.

529

B0193AX Rev Z

530

16. CHARC Characterizer Block

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) containing such points. The block also provides alarm handling features relating to the input. See
Figure 17-1.
Invert
Option

State Change
Option

State Change
Messages
Input From
FBM or FBC
Input From
Other Block

FBM and
Channel
Status

State
Change
Detection

Point
Inversion

BAD
Detection

Messages

Contact
Input

Alarming

Alarms

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 configured, 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.

531

B0193AX Rev Z

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

0 to 13

PHASE

block execute phase

integer

no-con/no-set

---

LOOPID

loop identifier

string

no-con/set

blank

1 to 32 chars

IOMOPT

FBM input option

boolean

no-con/no-set

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 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 to 1

MA

manual/auto

boolean

con/set

0 to 1

INITMA

initialize MA

short

no-con/no-set

0 to 2

INHOPT

inhibit option

short

no-con/no-set

0 to 3

INHIB

alarm inhibit

boolean

con/set

0 to 1

INHALM

inhibit alarm

pack_b

con/set

0 to FFFF

532

17. CIN Contact Input Block

B0193AX Rev Z

Table 17-1. CIN Block Parameters (Continued)


Name

Description

Type

Accessibility

Default

Units/Range

INVALM

invert alarm option

boolean

no-con/no-set

0 to 1

MANALM

manual alarm option

short

no-con/no-set

0 to 1

SAO

state alarm option

boolean

no-con/no-set

0 to 1

SAP

state alarm priority

integer

con/set

1 to 5

SAG

state alarm group

short

no-con/set

1 to 8

BAO

bad alarm option

boolean

no-con/no-set

0 to 1

BAT

bad alarm text

string

no-con/no-set

blank

1 to 32 chars

BAP

bad alarm priority

integer

con/set

1 to 5

BAG

bad alarm group

short

no-con/set

1 to 8

SCOPT

state change option

short

no-con/no-set

0 to 3

SCGRP

state change group

short

no-con/set

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 to 1

IN

input

boolean

con/set

0 to 1

AMRTIN

alarm regeneration timer

integer

no-con/no-set

0 to 32767 s

NASTDB

alarm deadband timer

long integer

no-con/no-set

0-2147483647 ms

NASOPT

nuisance alarm suppression option

short

no-con/no-set

0 to 2

bit map

Non-Configurable Parameters
OUTPUTS
ALMSTA

alarm status

pack_l

con/no-set

BAD

bad I/O status

boolean

con/no-set

0 to 1

BLKSTA

block status

pack_l

con/no-set

bit map

CIN

contact input

boolean

con/no-set

0 to 1

CRIT

alarm criticality

integer

con/no-set

0 to 5

INHSTA

inhibit status

pack_l

con/no-set

bit map

PRTYPE

priority type

integer

con/no-set

0 to 9

QALSTA

quality status

pack_l

con/no-set

0 to FFFFFFFF

UNACK

unacknowledge alarm

boolean

con/no-set

0 to 1

DATA STORES
ACHNGE

alternate change

integer

con/no-set

-32768 to 32767

ALMOPT

alarm options

pack_l

no-con/no-set

0 to FFFFFFFF

DEFINE

no config errors

boolean

no-con/no-set

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

B0193AX Rev Z

17. CIN Contact Input Block

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:

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

ALMOPT

Bit Number*
(0 to 31)

Configured Alarm Options


When True

Boolean
Connection
(B32 to B1)

0 (Least Significant)
1
7
22
26

Alarm Group 8 in Use


Alarm Group 7 in Use
Alarm Group 1 in Use
Bad I/O Alarm Configured
State Alarm Configured

ALMOPT.B32
ALMOPT.B31
ALMOPT.B25
ALMOPT.B10
ALMOPT.B6

* Bit 0 is the least significant bit (starting from the right).


There are no mnemonic names for the individual bits of ALMOPT.
Alarm Status is a 32-bit output, bit-mapped to indicate the blocks alarm
states. For the CIN block, only the following bits are used:

Bit
Number*
(0 to 31)
0 to 4
(Least Significant)
5 to 7

534

Name

Description When True

PTYP_MSK

Priority Type: See parameter


PRTYPE for values used in
the CIN block
Criticality; 5 = lowest priority, 1= highest

CRIT_MSK

CRIT

PRTYPE

Boolean
Connection
(B32 to B1)

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

Boolean B14

B13

B12

B11

B10
BAD

B9

B8

B7

B6
STA

B5

B4

B3

B2
UNAK

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

ALMSTA

17. CIN Contact Input Block

B0193AX Rev Z

Bit
Number*
(0 to 31)

Name

22
26
30

Boolean
Connection
(B32 to B1)

Description When True

BAD
STA
UNAK

Bad I/O Alarm


State Alarm
Unacknowledged

ALMSTA.B10
ALMSTA.B6
ALMSTA.B2

* Bit 0 is the least significant bit (starting from the right).


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

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 messages, 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 operational states. For the CIN block, only the following bits are used:

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

B24

B23

FBM

B21
MA

B22

B20

B19

BAD

UDEF B18

B16

B17
ON

B15

B14

B13

B11

WLCK B12

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

535

B0193AX Rev Z

17. CIN Contact Input Block

Bit
Number*
(0 to 31)
8
11
12
14
15
20

Name
FBM
MA
BAD
UDEF
ON
WLCK

Boolean
Connection
(B32 to B1)

Description When True


FBM or FBC Failure
Manual = 0, Auto = 1
Bad I/O
Block Undefined
Block ON
Access Locked

BLKSTA.B24
BLKSTA.B21
BLKSTA.B20
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12

* Bit 0 is the least significant bit (starting from the right).

536

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 blocks 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 configuration errors. The default is 1 (no configuration errors). When the block initializes, 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


blocks function (for example, PLT 3 FURNACE 2 HEATER CONTROL).

DEV_ID

Device Identifier is a character array that specifies the 6-character letterbug of the connected FBM or FBC.

ERCODE

Error Code is a string data store which indicates the type of configuration
error which caused the blocks DEFINE parameter to be set false. Validation of configuration errors does not proceed past the first error encountered 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:

17. CIN Contact Input Block

B0193AX Rev Z

ERCODE
W51

Description
Cluster I/O specified but type is not digital input, digital output, or digital input/output.
PNT_NO out of range for the specified FBM or FBC.
Specified IOM_ID does not exist.

W52
W54

1
B15

Bit Number*
(0 to 15)

Description When True

6
10

Inhibit Bad I/O Alarm


Inhibit State Alarm

0
B16

B14

B6

B13

B5

B12

10

B11

11

B10

12

B9

13

B8

14

B7

15

B4

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

B3

INHALM

B2

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.

B1

IN

Boolean Connection
(B16 to B1)
INHALM.B10
INHALM.B6

* Bit 0 is the least significant bit (starting from the right).


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 compound parameter CINHIB.

INHOPT

Inhibit Option specifies the following actions applying to all block alarms:
0=
1=

When an alarm is inhibited, disable alarm messages but do not


disable alarm detection.
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.

537

B0193AX Rev Z

17. CIN Contact Input Block

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

3=

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:

Bit Number*
(0 to 31)

Name

Description When True

22
26

BAD
STA

Bad I/O Alarm Inhibited


State Alarm Inhibited

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B9

BAD B10

B8

B7

B5

STA B6

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

INHSTA

Boolean Connection
(B32 to B1)
INHSTA.B10
INHSTA.B6

* Bit 0 is the least significant bit (starting from the right).

INITMA

538

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.

17. CIN Contact Input Block

INVALM

B0193AX Rev Z

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=

1=

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.
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 or FBC connection


to the block exists. Values:
0=
1=

The CIN block obtains input values from the IN parameter.


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 pathname of the FBM or FBC to which the block is connected.
IOM_ID has the form CompoundName:BlockName, where CompoundName 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-character 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 displays. 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 blocks
parameters are honored (subject to the usual access rules) only from the
workstation whose identifier matches the contents of LOCKID.
539

B0193AX Rev Z

17. CIN Contact Input Block

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.

540

LOOPID

Loop Identifier is a configurable string of up to 32 characters which 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 blocks 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
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 Detection 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
alarms 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.

17. CIN Contact Input Block

B0193AX Rev Z

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 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 blocks 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
0
1
2
3
4
5
6

Length
0.1 sec
0.5 sec*
1.0 sec
2.0 sec
10 sec
30 sec
1 min

Period
7
8
9
10
11
12
13

Length
10 min
60 min
0.2 sec
5.0 sec**
0.6 sec***
6.0 sec****
0.05 sec*****

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

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

541

B0193AX Rev Z

17. CIN Contact Input Block

PNT_NO

Point Number is the FBM or FBC point to which the CIN block is connected (see Appendix A Valid Input Connections on page 550).

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 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
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 priority 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 connectable output parameter. Available bits for this block are provided below.

Bit
Number1
30
542

Definition
Alarms Unacknowledged

Contents
ALMSTA.UNA

Boolean Connection
(B32 to B1)
QALSTA.B2

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

B24

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

17. CIN Contact Input Block

Bit
Number1
29
26
22
13
10
5
2
1
0
1.
2.

B0193AX Rev Z

Definition
Alarms Inhibited
State Alarm
Bad Alarm2
Bad Primary FBM
Bad Primary Point
Manual
Uncertain
Out-of-Service
Bad

Contents
ALMSTA.INH
ALMSTA.STAL
ALMSTA.IOBD
BLKSTA.FBM1
BLKSTA.BAD1
BLKSTA.MA
CIN.ERR status
CIN.OOS
CIN.BAD status

Boolean Connection
(B32 to B1)
QALSTA.B3
QALSTA.B6
QALSTA.B10
QALSTA.B19
QALSTA.B22
QALSTA.B27
QALSTA.B30
QALSTA.B31
QALSTA.B32

Bit 0 is the least significant bit (starting from the right).


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 messages 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 inversion.

543

B0193AX Rev Z

17. CIN Contact Input Block

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

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 notification 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 display, user display, or Current Alarms Display,
or via a user task.

17.4.2 Detailed Diagram


SCOPT
State
Change
Detected

IOM_ID
PNT_NO

AND

SCTXT0
SCTXT1

AND

STATE
Alarming

IVO
FROM
ECB

IN

(M)

SAO

IOMOPT
1

INVALM
Point
Inversion

LAST GOOD VALUE o

o MA
o o o o
(A)

CIN

Use Last
Good Value
OR
IOMOPT = 1
ECB Status Bad
IOMOPT = 1
Channel Status Bad
IOMOPT = 0,2
IN Status Bad

OR

IOMOPT = 1
ECB Status OOS
IOMOPT = 0,2
IN Status OOS

OR

BAO

BAD
Alarming
BAD
CIN.BAD

Figure 17-2. CIN Block Operational Diagram

544

AND

CIN.OOS

17. CIN Contact Input Block

B0193AX Rev Z

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:

FBM
FBM207
FBM217
FBM219
FBM241
FBM07
FBM08
FBM09
FBM10
FBM11
FBM12
FBM13
FBM14
FBM15
FBM16
FBM17

FBM20
FBM21
FBM23
FBM24
FBM25
FBM26

FBM27

Electrical Type
Contact or dc In
Group-Isolated Contact In
Contact or dc In/Out
Contact or dc In/Out
Contact or dc In
120 V ac In
Contact or dc In; Output Switch with
Internal or External Source
120 V ac In; 120 V ac Output Switch
240 V ac In; 240 V ac Output Switch
Contact or dc In Expansion
120 V ac In Expansion
Contact or dc In; Output Switch with
Internal or External Source
120 V ac In; 120 V ac Output Switch
Expansion
240 V ac In; 240 V ac Output Switch
Expansion
Contact or dc In; Output Switch with
Internal or External Source
(Plus Analog I/O)
240 V ac In
240 V ac In Expansion
HTG Interface Unit
Contact or 125 V dc or
Contact Externally Powered In
Contact or 125 V dc or Contact
Externally Powered In Expansion
Contact or 125 V dc or Contact
Externally Powered In; Externally
Powered Output Switch
Contact or 125 V dc or Contact
Externally Powered In; Externally
Powered Output Switch Expansion

Valid Input Points

Valid Output Points


(Readbacks)

Points 1 to 16
Points 1 to 32
Points 1 to 24
Points 1 to 8
Points 1 to 16
Points 1 to 16
Points 1 to 8

None
None
Points 25 to 32
Points 9 to 16
None
None
Points 9 to 16

Points 1 to 8
Points 1 to 8
Points 17 to 32
Points 17 to 32
Points 17 to 24

Points 9 to 16
Points 9 to 16
None
None
Points 25 to 32

Points 17 to 24

Points 25 to 32

Points 17 to 24

Points 25 to 32

Points 7 to 10

Points 11 to 14

Points 1 to 16
Points 17 to 32
Points 1 to 32
Points 1 to 16

None
None
None
None

Points 17 to 32

None

Points 1 to 8

Points 9 to 16

Points 17 to 24

Points 25 to 32

545

B0193AX Rev Z

17. CIN Contact Input Block

FBM
FBM41
FBM42
FBC07
FBC09
FBC10

FBC07
Redundant
FBC09
Redundant
FBC10
Redundant

Electrical Type
Contact or 60 V dc In/Out
Contact or 60 V dc In/Out
Isolated Voltage or
Non-Isolated Contact In
Isolated Contact or Relay Out
Configurable ac or dc In; Configurable
ac, dc, or Contact Out

Valid Input Points

Valid Output Points


(Readbacks)

Points 1 to 8
Points 17 to 24
Points 1 to 32

Points 9 to 16
Points 25 to 32
None

None
Points 1 to 8, 17 to
24, 33 to 40, and
49 to 56
Points 1 to 32

Points 1 to 32
Points 9 to 16, 25 to
32, 41 to 48, and
57 to 64
None

Isolated Voltage or Non-Isolated


Contact In, Redundant
Isolated Contact or Relay Out,
None
Redundant
Configurable ac or dc In; Configurable Points 1 to 8, 17 to
ac, dc or Contact Out, Redundant
24, 33 to 40, and
49 to 56

Points 1 to 32
Points 9 to 16, 25 to
32, 41 to 48, and 57
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 blocks 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

546

IOMOPT

Manual/
Auto

0
0

Auto
Auto

IVO
0 (N)
1 (Y)

CIN, IN
CIN = IN = value of INs source connection
CIN = inverted value of INs source connection
IN = value of INs source connection (no inversion)

17. CIN Contact Input Block

B0193AX Rev Z

Table 17-2. Relationship Between IOMOPT, IVO, MA, CIN, and IN (Continued)

IOMOPT

Manual/
Auto

Manual

0 (N)

Manual

1 (Y)

Auto

0 (N)

Auto

IVO

1 (Y)

CIN, IN
CIN = manual value
IN = value of INs source connection
CIN = manual value
IN = value of INs source connection
If FBM value is OK:
CIN = IN = FBM value
If FBM value is BAD or OOS:
CIN = unchanged
IN = FBM value
If FBM value is OK:
CIN = IN = inverted FBM value
If FBM value is BAD or OOS:
CIN = unchanged
IN = inverted FBM value

Manual

0 (N)

Manual

1 (Y)

CIN = manual value


IN = FBM value
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.)
547

B0193AX Rev Z

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

548

17. CIN Contact Input Block

B0193AX Rev Z

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 follows:
Table 17-3. Alarm Nomenclature

Type
I/O Bad
State Alarm

Option
BAO = True
SAO = True

Priority
BAP
SAP

Group
BAG
SAG

Text
BAT
NM0 or NM1

Default
Display
IOBAD
STATE

Indicator
Parameter
BAD
CIN/INVALM

549

B0193AX Rev Z

17. CIN Contact Input Block

17.8 Application Diagram


COUT

BO02

COUT

BO01

LOGIC
Program
Flow
Switch

BI11 BI09 BI04 BI02

Feedstock

CIN

CIN

CIN

CIN

CIN

CIN

CIN

CIN

Solenoid
Valve

FBM 241
or
FBM 09 o
o
FLS001
Tank Full
Switch

FBM207b o
or
o
FBM 07
TFS001

Tank Half
Full Switch

Output
Product
Solenoid
Valve

Flow
Switch
Figure 17-3. Typical CIN Block Application

17.9 Appendix A Valid Input Connections

Point
1
2
550

I
I

I
I

I
I

42

41

27

I
I

26

24

I
I

25

23

21

20

17

16

I
I

15

I I I I
I I I I

14

11

I
I

13

7
8
9
10

I I
I I

12

241

Hardware
Type

207
217

17.9.1 Fieldbus Modules Valid Input Connections

42

41

27

24

26

23

I
I
I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

25

21

20

17

16

I
I
I
I
I
I
O
O
O
O
O
O
O
O

15

I
I
I
I
I
I
I
I
I
I
I
I
I
I

14

11

I
I
I
I
I
I
O
O
O
O
O
O
O
O

13

7
8
9
10

I
I
I
I
I
I
I
I
I
I
I
I
I
I

12

241

Hardware
Type

B0193AX Rev Z

207
217

17. CIN Contact Input Block

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

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
O
O
O
O
O
O
O
O

I
I
I
I
I
I
O
O
O
O
O
O
O
O

I
I
I
I
O
O
O
O

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
O
O
O
O
O
O
O
O

I
I
I
I
I
I
I
I
O
O
O
O
O
O
O
O

I
I
I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
I
I
O
O
O
O
O
O
O
O

I
I
I
I
I
I
O
O
O
O
O
O
O
O
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

I
I
I
I
I
I
O
O
O
O
O
O
O
O
I
I
I
I
I
I
I
I
O
O
O
O
O
O
O
O

I
I
I
I
I
I
I
I
O
O
O
O
O
O
O
O

I = Input
O = Readback from Output

NOTE

Hardware Type 23 is used for HTG Interface Unit (HIU).

551

B0193AX Rev Z

17. CIN Contact Input Block

17.9.2 Cluster I/O Valid Input Connections


Hardware Type

60

62

86

92

94

97

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O

I
I
I
I
I
I
I
I
O
O
O
O
O
O
O
O
I
I
I
I
I
I
I
I
O
O
O
O
O
O
O
O
I
I
I

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I

O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O

I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
O
O
O

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

17. CIN Contact Input Block

B0193AX Rev Z

Hardware Type

60

62

86

92

94

97

Point
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Legend:

I
I
I
I
I
O
O
O
O
O
O
O
O
I
I
I
I
I
I
I
I
O
O
O
O
O
O
O
O

O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O

I = Input
O = Readback from Output

553

B0193AX Rev Z

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.

554

17. CIN Contact Input Block

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 specification 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
Users Guide (B0700BK).

Invert
Option

State
Change
Option

FBM
Option

State
Change
Detection
Inputs from
Redundant
FBMs
Inputs from
Other Blocks
(Simulation)
FBM and
Channel
Status

Point
Selection

Point
Inversion

State Change
Alarming and
Messages

Bad FBM/Input
Detection

Alarms
Messages

Manual

Auto

Point
Selection

State
Alarm
Option

Bad Alarming
and Messages

Contact
Input

Alarms
Messages

Alarm
Option
Figure 18-1. CINR Block Diagram

555

B0193AX Rev Z

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 secondary 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

556

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.

18. CINR Redundant Contact Input Block

B0193AX Rev Z

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

0 to 13

PHASE

block execution phase

integer

no-con/no-set

see Parameter Def.

LOOPID

loop identifier

string

no-con/set

blank

1 to 32 chars

IOMOPT

FBM input option

boolean

no-con/no-set

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 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 to 1

MA

manual/auto

boolean

con/set

0 to 1

INITMA

initialize MA

short

no-con/no-set

0 to 2

INHOPT

alarm inhibit option

short

no-con/no-set

0 to 3

INHIB

alarm inhibit

boolean

con/set

0 to 1

INHALM

inhibit alarm request

pack_b

con/set

0 to FFFF

INVALM

invert alarm option

boolean

no-con/no-set

0 to 1

MANALM

manual alarm option

short

no-con/no-set

0 to 1

SAO

state alarm option

boolean

no-con/no-set

0 to 1

SAP

state alarm priority

short

con/set

1 to 5

SAG

state alarm group

short

no-con/set

1 to 8

BAO

bad alarm option

boolean

no-con/no-set

0 to 1

BAT

bad alarm text

string

no-con/no-set

blank

1 to 32 chars

BAP

bad alarm priority

integer

con/set

1 to 5

BAG

bad alarm group

short

no-con/set

1 to 8

SCOPT

state change option

short

no-con/no-set

0 to 3

SCGRP

state change group

short

no-con/no-set

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

0 to 2

CIN_P

primary contact input

boolean

con/set

0 to 1

CIN_S

secondary contact input

boolean

con/set

0 to 1

AMRTIN

alarm message regeneration

integer

no-con/set

0 to 32767 s

NASTDB

noise suppression deadband

long

no-con/set

0 to 2147483647 ms

NASOPT

nuisance alarm suppression


option

short

no-con/no-set

0 to 2

557

B0193AX Rev Z

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

see Parameter Def.

BAD

bad I/O status indicator

boolean

con/no-set

0 to 1

BLKSTA

block status

pack_l

con/no-set

see Parameter Def.

CIN

contact input

boolean

con/no-set

0 to 1

CRIT

alarm criticality

integer

con/no-set

0 to 5

INHSTA

alarm inhibit status

pack_l

con/no-set

see Parameter Def.

INITO

initialize output

short

con/no-set

0 to 1

PRTYPE

priority type

integer

con/no-set

0 to 9

QALSTA

quality status

pack_l

con/no-set

0 to FFFFFFFF

UNACK

unacknowledge alarm

boolean

con/no-set

0 to 1

integer

con/no-set

0 to 32767

DATA STORES
ACHNGE

alternate change

ALMOPT

alarm options

pack_l

no-con/no-set

see Parameter Def.

DEFINE

no configuration errors

boolean

no-con/no-set

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 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:

558

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

8
B24

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

18. CINR Redundant Contact Input Block

B0193AX Rev Z

Bit Number*
(0 to 31)

Configured Alarm Options


When True

0 (Least Significant)
1
2
3
4
5
6
7
14

Alarm group 8 in use


Alarm group 7 in use
Alarm group 6 in use
Alarm group 5 in use
Alarm group 4 in use
Alarm group 3 in use
Alarm group 2 in use
Alarm group 1 in use
Secondary point Bad alarm
configured
Primary point Bad alarm
configured
Bad I/O alarm configured
State alarm configured

15
22
26

Boolean
Connection
(B32 to B1)
ALMOPT.B32
ALMOPT.B31
ALMOPT.B30
ALMOPT.B29
ALMOPT.B28
ALMOPT.B27
ALMOPT.B26
ALMOPT.B25
ALMOPT.B18
ALMOPT.B17
ALMOPT.B10
ALMOPT.B6

* Bit 0 is the least significant bit (starting from the right).

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


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

Bit
Number*(
0 to 31)

CRIT

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

BAD_S B18

BAD_P B17

B16

B15

B14

B13

B12

B11

B10

B9

BAD

B8

B7

B6
STA

B5

B4

B3

B2

UNACK B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

ALMSTA

PRTYPE

Name

Description When True

Boolean
Connection
(B32 to B1)

PRTYPE

Priority Type: See parameter


PRTYPE for values used in
the CINR block
Criticality; 5 = lowest priority, 1= highest
Secondary point Bad
Primary point Bad

ALMSTA.B18
ALMSTA.B17

0 to 4
(Least
Significant)
5 to 7

CRIT

14
15

BAD_S
BAD_P

559

B0193AX Rev Z

18. CINR Redundant Contact Input Block

Bit
Number*(
0 to 31)
22
26
30
31

Name
BAD
STA
--UNACK

Description When True


Bad I/O alarm**
State alarm
Alarms inhibited
Unacknowledged

Boolean
Connection
(B32 to B1)
ALMSTA.B10
ALMSTA.B6
ALMSTA.B2
ALMSTA.B1

* Bit 0 is the least significant bit (starting from the right).


** Both the primary and secondary points are bad.

560

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.

18. CINR Redundant Contact Input Block

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

Bit
Number*
(0 to 31)
1
8
9
11
12
14
15
20

0
B32

1
BIOR B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

8
B24

FBMR B23

B21
MA

B22

B20

B19

BIO

UDEF B18

B17
ON

B16

B15

B14

B13

B12

B11

LCK

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

FBM

BLKSTA

B0193AX Rev Z

Name

Description When True

Boolean
Connection
(B32 to B1)

BIOR
FBM
FBMR
MA
BIO
UDEF
ON
WLCK

Secondary Input Bad


Primary FBM Failure
Secondary FBM Failure
Manual = 0, Auto = 1
Bad I/O
Block Undefined
Block ON
Workstation Access Locked

BLKSTA.B31
BLKSTA.B24
BLKSTA.B23
BLKSTA.B21
BLKSTA.B20
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12

* Bit 0 is the least significant bit (starting from the right).

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 contact 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 execution cycle. If IOMOPT=0, CIN_S contains the simulated secondary
input value.

561

B0193AX Rev Z

18. CINR Redundant Contact Input Block

CRIT

Criticality is an integer output that indicates the priority, ranging from 1


to 5, of the blocks 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 configuration errors. The default is 1 (no configuration errors). When the block initializes, 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


blocks function (for example, PLT 3 FURNACE 2 HEATER CONTROL).

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 blocks DEFINE parameter to be set false. Validation of configuration errors does not proceed past the first error encountered 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/


PHASE COMBINATION

The configured PHASE parameter value is not consistent with


the configured PERIOD value.
Hardware type is not digital
input.
PNT_NO out of range for the
specified FBM.
Specified IOM_ID does not
exist.

W51 - INVALID HARDWARE/


SOFTWARE TYPE
W52 - INVALID I/O CHANNEL/
GROUP NUMBER
W54 - ECB DOES NOT EXIST

562

0
B16

B6

B15

B5

B14

B4

B13

B3

B12

10

B11

11

B10

12

B9

13

B8

14

B7

15

B2

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

B1

INHALM

18. CINR Redundant Contact Input Block

B0193AX Rev Z

Bit
Number*
(0 to 15)

Description When True

6
10

Inhibit Bad I/O alarm


Inhibit State alarm

Boolean Connection
(B16 to B1)
INHALM.B10
INHALM.B6

* Bit 0 is the least significant bit (starting from the right).

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

1=

2=

3=

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:

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

BAD_S B18

B16

BAD_P B17

B15

B14

B13

B12

B11

B9

B10
BAD

B8

B7

B5

B6
STA

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

INHSTA

563

B0193AX Rev Z

18. CINR Redundant Contact Input Block

Bit
Number*
(0 to 31)

Name

Description When True

14

BAD_S

15

BAD_P

22
26

BAD
STA

Secondary point Bad alarm


inhibited**
Primary point Bad alarm
inhibited**
Bad I/O alarm inhibited**
State alarm inhibited***

Boolean
Connection
(B32 to B1)
INHSTA.B18
INHSTA.B17
INHSTA.B10
INHSTA.B6

* Bit 0 is the least significant bit (starting from the right).


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

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=

1=

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

564

18. CINR Redundant Contact Input Block

IOMOPT

B0193AX Rev Z

FBM Option is a boolean specifying whether an FBM connection to the


block exists, where:
0=
1=

CINR block obtains input values from the CIN_P or CIN_S


parameter.
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 CompoundName 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 specifies the pathname of the secondary FBM to which the block is connected.
IOMIDR has the form CompoundName:BlockName, where CompoundName 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 blocks parameters are honored only if the requesting
workstations identifier matches the contents of LOCKID.
LOCKID does not lock out sequence code write access to block parameters. Sequence block set requests to any of the blocks 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-character logical name of the Display Manager.

565

B0193AX Rev Z

LOCKRQ

18. CINR Redundant Contact Input Block

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 identifier of the requesting workstation, and sets the WLCK bit in the
BLKSTA parameter. Set requests to any of the blocks parameters are only
honored if the requesting workstations identifier matches the contents of
LOCKID.
LOCKID does not lock out sequence code write access to block parameters. Sequence block set requests to any of the blocks 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. Contention for the use of the
block may make the block inaccessible.

566

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 blocks 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

18. CINR Redundant Contact Input Block

B0193AX Rev Z

2 = Suppress nuisance alarms by delaying both the Alarm Detection 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
alarms 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.

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 blocks 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
0
1
2
3
4
5
6

Length
0.1 sec
0.5 sec*
1.0 sec
2.0 sec
10 sec
30 sec
1 min

Period
7
8
9
10
11
12
13

Length
10 min
60 min
0.2 sec
5.0 sec**
0.6 sec***
6.0 sec****
0.05 sec*****

567

B0193AX Rev Z

18. CINR Redundant Contact Input Block

Period

Length

Period

Length

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

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

568

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 Integrated Control Software Concepts document (B0700AG or B0193AW).

PNT_NO

Point Number is the FBM point to which the CINR block is connected.

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 connectable output parameter. Available bits for this block are provided below.

B0193AX Rev Z

Bit
Number1
30
29
26
22
14
13
11
10
5
2
1
0
1.
2.

Definition
Alarms Unacknowledged
Alarms Inhibited
State Alarm
Bad Alarm2
Bad Secondary FBM
Bad Primary FBM
Bad Secondary Point
Bad Primary Point
Manual
Uncertain
Out-of-Service
Bad

Contents
ALMSTA.UNA
ALMSTA.INH
ALMSTA.STAL
ALMSTA.IOBD
BLKSTA.FBM2
BLKSTA.FBM1
BLKSTA.BAD2
BLKSTA.BAD1
BLKSTA.MA
CIN.ERR status
CIN.OOS status
CIN.BAD status

0
B32

B31

B30

4
B28

5
B27

6
B26

7
B25

8
B24

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B29

18. CINR Redundant Contact Input Block

Boolean Connection
(B32 to B1)
QALSTA.B2
QALSTA.B3
QALSTA.B6
QALSTA.B10
QALSTA.B18
QALSTA.B19
QALSTA.B21
QALSTA.B22
QALSTA.B27
QALSTA.B30
QALSTA.B31
QALSTA.B32

Bit 0 is the least significant bit (starting from the right).


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 messages 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,

569

B0193AX Rev Z

18. CINR Redundant Contact Input Block

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

570

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

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

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

18. CINR Redundant Contact Input Block

B0193AX Rev Z

18.5 Functions
18.5.1 Detailed Diagram
SCOPT
IOM_ID
FBM and
IOMIDR
Channel
PNT_NO
Status
Primary
IOMOPT
ECB5
Data
CIN_P
Read &
Invert
Points
CIN_S
Sec.
1
ECB5
Data
IVO
Input
0
Status

State
Change
Detected

AND

SCTXT0
SCTXT1

AND

State
Alarming

SAO
INVALM
SELOPT M

MA

1
CIN
A

0
Last Good Value

CIN_P
CIN_S
CIN_P.OOS
CIN_S.OOS

CIN.OOS

AND

Primary FBM OOS


Secondary FBM OOS

AND

OR

CIN_P.BAD
CIN_S.BAD

AND

Secondary FBM Failure

BAD

OR

Primary FBM Failure

CIN.BAD

AND
MA = 1

OR

BAO

AND

BAD
Alarming

MA = 0
MANALM = 1

AND

Figure 18-2. CINR Block Operational Diagram

571

B0193AX Rev Z

18. CINR Redundant Contact Input Block

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) parameters, 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 Users 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 primary 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 purposes.

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

572

18. CINR Redundant Contact Input Block

B0193AX Rev Z

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.

573

B0193AX Rev Z

18. CINR Redundant Contact Input Block

NOTE

State Change messages are ignored by Alarm Alert, and are not shown in the Alarm
Display; they are printed on the alarm printers only.
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 follows:
Table 18-2. Alarm Nomenclature

Type

Option

I/O Bad
State Alarm

BAO = True
SAO = True

Priority

Group

BAP
SAP

BAG
SAG

Text

Default
Display

BAT
IOBAD
NM0 or NM1 STATE

Indicator
Parameter
BAD
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.
574

18. CINR Redundant Contact Input Block

B0193AX Rev Z

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

575

B0193AX Rev Z

18. CINR Redundant Contact Input Block

18.9 Application Diagram


COUT
BO02
COUT
COUT
BO03

BO01
LOGIC
Program

Feedstock

BI01

ECB5
CIN

Solenoid
Valve

DCS
FBM
AID115
TFS001
Tank Full
Switch

CINR

ECB5

DCS
FBM
AID115
TFS002

Heater
AC Power

Output
Product
Solenoid
Valve
Figure 18-3. Typical CINR Block Application

576

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 compound 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 workstation SELECT display.
CONFIGURATOR

COMPOUND
1

BLOCK

BLOCK

BLOCK

COMPOUND
2

BLOCK

BLOCK

BLOCK

BLOCK

COMPOUND
n

BLOCK

BLOCK

BLOCK

BLOCK

BLOCK

= Control Processor
PROCESS

Figure 19-1. Compound/Block Relationship

577

B0193AX Rev Z

19. CMP Compounds

19.2 Compound I/O Diagram


Refer to Figure 19-2.
Name
Type
Descriptor
Period
Phase
On/Off Compound
Compound Inhibit
Group Devices
Loop Identification
Initialize Compound On

Alarm Level
Sequence State
Alarm Notification

Compound

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.

578

19. CMP Compounds

B0193AX Rev Z

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

579

B0193AX Rev Z

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, changedriven 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 parameters value, its status, and its
designated value type (Real, Boolean, or Integer). Its status consists of the following boolean
attributes:
Out-of-Service
(OOS):

Out-of-Service defines the validity of the data. This flag is set and reset by
the block algorithm. The OOS status usually originates from I/O type
blocks (for example, AIN, COUT) which detect abnormal I/O conditions, 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 blocks 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.
580

19. CMP Compounds

B0193AX Rev Z

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 blocks 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 output 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.

581

B0193AX Rev Z

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

string

no-con/no-set

1 to 12 chars

Configurable Parameters
INPUTS
NAME

block name

blank

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

0 to 13

PHASE

block phase number

integer

no-con/no-set

---

ON

on/off compound

boolean

no-con/set

0 to 1

INITON

initialize ON

short

no-con/no-set 2

[0|1|2]

CINHIB

compound inhibit

integer

con/set

[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

582

19. CMP Compounds

B0193AX Rev Z

Table 19-1. Compound Parameters


Name

Description

Type

Accessibility Default

Units/Range

Non-Configurable Parameters
OUTPUTS
ALMLEV

alarm level

integer

con/no-set

1 to 5

SSTATE

sequence state

short

con/no-set

[0,1,2]

UNACK

alarm notification

boolean

con/set

0 to 1

DATA STORES
DEFINE

no configuration errors

boolean

no-con/no-set

0 to 1

ERCODE

configuration error

string

no-con/no-set

blank

1 to 99

GR1FD1 TO
GR1FD8

group 1 file descriptor

integer

no-con/no-set

blank

1 to 12 chars

GR2FD1 TO
GR2FD8

group 2 file descriptor

integer

no-con/no-set

blank

1 to 12 chars

GR3FD1 TO
GR3FD8

group 3 file descriptor

integer

no-con/no-set

blank

1 to 12 chars

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 during 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
W43 INVALID PERIOD/
PHASE COMBINATION
W48 INVALID BLOCK
OPTION

Value
PHASE does not exist for given block
PERIOD, or block PERIOD not
compatible with compound PERIOD.
The configured value of a block
option is illegal.
583

B0193AX Rev Z

19. CMP Compounds

Message
W53 INVALID
PARAMETER VALUE
W58 INSTALL ERROR;
DELETE/UNDELETE
BLOCK
GR1DV1

Value
A parameter value is not in the acceptable range.
A Database Installer error has
occurred.

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.

584

INITON

Initialize On/Off specifies the state the compound assumes on initialization 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 checkpoint file.
The default setting = 2. INITON action is performed when the compound 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 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.

19. CMP Compounds

B0193AX Rev Z

NAME

Name is a user-defined string of up to 12 characters used to access the station 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 compounds 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
Value

Length

PHASE Values
for BPC=0.5s

0
1
2
3
4
5
6

0.1 sec
0.5 sec
1.0 sec
2.0 sec
10 sec
30 sec
1 min

Not allowed
[0] default
0 or 1
0 to 3
0 to 19
0 to 59
0 to 119

PERIOD
Value
7
8
9
10
11
12
13

Length
10 min
60 min
0.2 sec
5.0 sec
0.6 sec
6.0 sec
0.05 sec*

PHASE Values
for BPC=0.5s
0 to 1199
0 to 7199
Not allowed
0 to 9
[0] default
0 to 11
Not allowed

* When allowed by the selection of an appropriate BPC, this period is


only available in the CP40, CP40B, and CP60.
! 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 second 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).

585

B0193AX Rev Z

586

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 propagate alarm acknowledge actions to all blocks in a compound. An
alarm-acknowledge display task typically resets UNACK.

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.

Invert
Contact Out
Option

Input

Point
Inversion

Pulse Option

Fieldbus
Point
Module
Identifier Number

Pulse
Output

To
FBM/FBC
Contact
Output

ECB
Failsafe

Failsafe
Processing

FBM and
Channel
Status

BAD
Detection

Failsafe

Alarming

Bad
Alarm

Bad Alarm
Option
Figure 20-1. COUT Block Diagram

587

B0193AX Rev Z

20. COUT Contact Output Block

20.2 Basic Operation


The COUT block interfaces to an Equipment Control Block (ECB) which contains digital output 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

588

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.

20. COUT Contact Output Block

B0193AX Rev Z

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

0 to 13

PHASE

block execute phase

integer

no-con/no-set

---

LOOPID

loop identifier

string

no-con/set

blank

1 to 32 chars

IOMOPT

FBM output option

boolean

no-con/no-set

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 to 32

IN

generic input

boolean

con/set

0 to 1

PROPT

propagate error option

boolean

no-con/no-set

0 to 1

EROPT

error option

short

no-con/no-set

0 to 2

PLSOPT

pulse option

boolean

no-con/no-set

0 to 1

WIDTH

pulse width

real

con/set

0.0

minutes

INVCO

invert cout state

boolean

no-con/no-set

0 to 1

MA

manual/auto

boolean

con/set

0 to 1

INITMA

initialize MA

short

no-con/no-set

0 to 2

MANFS

manual if failsafe

boolean

no-con/no-set

0 to 1

INHOPT

inhibit option

short

no-con/no-set

0 to 3

INHIB

alarm inhibit

boolean

con/set

0 to 1

BAO

bad alarm option

boolean

no-con/no-set

0 to 1

BAT

bad alarm text

string

no-con/no-set

blank

1 to 32 chars

BAP

bad alarm priority

integer

con/set

1 to 5

BAG

bad alarm group

short

no-con/set

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 to 32767 s

pack_l

con/no-set

bit map

Non-Configurable Parameters
OUTPUTS
ALMSTA

alarm status

BAD

bad I/O status

boolean

con/no-set

0 to 1

BLKSTA

block status

pack_l

con/no-set

bit map

COUT

contact output

boolean

con/no-set

0 to 1

CRBK

contact readback

boolean

con/no-set

0 to 1

CRIT

alarm criticality

integer

con/no-set

0 to 5

FS

failsafe state

boolean

con/no-set

0 to 1

INHSTA

inhibit status

pack_l

con/no-set

0 to FFFFFFFF

INITO

initialize out

short

con/no-set

---

PRTYPE

priority type

integer

con/no-set

0 to 8

UNACK

unacknow alarm

boolean

con/no-set

0 to 1

589

B0193AX Rev Z

20. COUT Contact Output Block

Table 20-1. COUT Block Parameters (Continued)


Name

Description

Type

Accessibility

Default

Units/Range

integer

con/no-set

-32768 to 32767

DATA STORES
ACHNGE

alternate change

ALMOPT

alarm options

pack_l

no-con/no-set

0 to FFFFFFFF

DEFINE

no config errors

boolean

no-con/no-set

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 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:

Bit Number*
(0 to 31)

Configured Alarm
Option When True

0 (Least Significant)
1
7
22

Alarm Group 8 in Use


Alarm Group 7 in Use
Alarm Group 1 in Use
Bad I/O Alarm Configured

Boolean Connection
(B32 to B1)
ALMOPT.B32
ALMOPT.B31
ALMOPT.B25
ALMOPT.B10

* Bit 0 is the least significant bit (starting from the right).


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

590

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

8
B24

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

20. COUT Contact Output Block

Alarm Status is a 32-bit output, bit-mapped to indicate the blocks alarm


states. For the COUT block, only the following bits are used:

Bit
Number*
(0 to 31)

CRIT

Name

Description When True

0 to 4
(Least Significant)
5 to 7

PTYP_MSK

Priority Type: Only PRTYPE values


0 and 8 are used in the COUT block

CRIT_MSK

22
30

BAD
UNAK

Criticality; 5 = lowest priority,


1 = highest
Bad I/O Alarm
Unacknowledged Alarm

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

BAD

B8

B7

B6

B5

B4

B3

B1

UNAK B2

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

ALMSTA

B0193AX Rev Z

PRTYPE

Boolean
Connection
(B32 to B1)

ALMSTA.B10
ALMSTA.B2

* Bit 0 is the least significant bit (starting from the right).


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

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.

591

B0193AX Rev Z

20. COUT Contact Output Block

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

Name

6
8
11
12
14
15
20
24

TRK
FBM
MA
BAD
UDEF
ON
WLCK
FS

Tracking
FBM or FBC Failure
Manual = 0, Auto = 1
Bad I/O
Block Undefined
Block ON
Workstation Lock
Output in Failsafe

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

B25

TRK

FBM

B23

B21

Description When True

B22

B20

MA

B19

BAD

B17

UDEF B18

B16

ON

B15

B14

B13

B11

Bit Number*
(0 to 31)

WLCK B12

B10

B9

B8
FS

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

BLKSTA

Boolean Connection
(B32 to B1)
BLKSTA.B26
BLKSTA.B24
BLKSTA.B21
BLKSTA.B20
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12
BLKSTA.B8

* Bit 0 is the least significant bit (starting from the right).

592

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-ofservice 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 blocks 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 configuration errors. The default is 1 (no configuration errors). When the block initializes, 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 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.

20. COUT Contact Output Block

B0193AX Rev Z

DESCRP

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


blocks function (for example, PLT 3 FURNACE 2 HEATER CONTROL).

DEV_ID

Device Identifier is a character array that specifies the 6-character letterbug of the connected FBM or FBC.

ERCODE

Error Code is a string data store which indicates the type of configuration
error which caused the blocks DEFINE parameter to be set false. Validation of configuration errors does not proceed past the first error encountered 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
W51
W52
W54
W59

Description
The specified FBM or FBC does not contain any digital
output points)
PNT_NO out of range for the specified FBM or FBC)
Specified IOM_ID does not exist
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 values 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 connected 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.

593

B0193AX Rev Z

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

1=

2=

3=

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:

Bit Number*
(0 to 31)
22

Name
BAD

Description When True


Bad I/O Alarm Inhibited

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

BAD B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

INHSTA

Boolean Connection
(B32 to B1)
INHSTA.B10

* Bit 0 is the least significant bit (starting from the right).


INITMA

594

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.

20. COUT Contact Output Block

B0193AX Rev Z

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

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 blocks sustained output to be inverted from the input value IN, or the blocks 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=
1=

The block does not transmit the COUT value to an FBM or


FBC point.
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 pathname of the FBM or FBC to which the block is connected.
IOM_ID has the form CompoundName:BlockName, where CompoundName 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-character 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 displays. 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 blocks
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.

595

B0193AX Rev Z

20. COUT Contact Output Block

LOOPID

Loop Identifier is a configurable string of up to 32 characters which 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 blocks 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 blocks 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
0
1
2
3
4
5
6

Length
0.1 sec
0.5 sec*
1.0 sec
2.0 sec
10 sec
30 sec
1 min

Period
7
8
9
10
11
12
13

Length
10 min
60 min
0.2 sec
5.0 sec**
0.6 sec***
6.0 sec****
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.

596

20. COUT Contact Output Block

B0193AX Rev Z

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

Period Time is 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 Control Processor is 0.5 sec. Refer to the appropriate Integrated Control Software 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 607).

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

597

B0193AX Rev Z

598

20. COUT Contact Output Block

TYPE

When you enter COUT 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 notification 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 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.

20. COUT Contact Output Block

B0193AX Rev Z

20.5 Functions
20.5.1 Detailed Diagram
INVCO

PLSOPTWIDTH

Point
Inversion

IN

(M)
o

Pulsed
Output

LAST GOOD VALUE o


BUMPLESS INIT VALUE o
CRBK
PLSOPT = 0
Bumpless Init Cycle
(See Section 15.5.3)

PLSOPT = 1
Non-Pulsed
COUT State

PROPT
Auto
IN.BAD
IN.OOS
IN.Disconnect
IN.ERROR

o
(A)

MA
o

IOMOPT

COUT

To
ECB

AND

AND
o BUMPLESS INIT VALUE

OR

IN.BAD
IN.OOS
IN.Disconnect

AND
Open
Cascade
Detection

INITO

OR
AND

EROPT = 1

o USE LAST GOOD VALUE

OR

AND
EROPT = 2

AND

OR

IOMOPT
ECB OOS

ECB Bad
Readback
Point Status
Bad

OR

AND

COUT.OOS
INITO.OOS
CRBK.OOS
COUT.SECURE
BAD
COUT.BAD
INITO.BAD

AND

IOMOPT

BAO
Failsafe
Detection

Auto
Transition Cycle

Manual

CRBK.BAD
COUT.SECURE
Bad
AND
Alarming

AND
OR

FS

AND

Figure 20-2. COUT Block Operational Diagram

599

B0193AX Rev Z

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 following are the FBMs or FBCs and point numbers providing valid output destinations for the COUT
block:
FBM

Electrical Type

FBM219
FBM241
FBM242
FBM09
FBM10
FBM11
FBM14
FBM15
FBM16
FBM17
FBM26
FBM27
FBC09
FBC10
FBC09
Redundant
FBC10
Redundant

Contact or dc In; Output Switch with Internal or


External Source
Contact or dc In; Output Switch with Internal or
External Source
Contact Output; Output Switch with External Source
Contact or dc In; Output Switch with Internal or
External Source
120 V ac In; 120 V ac Output Switch
240 V ac In; 240 V ac Output Switch
Contact or dc In; Output Switch with Internal or
External Source Expansion
120 V ac In; 120 V ac Output Switch Expansion
240 V ac In; 240 V ac Output Switch Expansion
Contact or dc In; Output Switch with Internal or
External Source (Plus Analog I/O)
Contact or 125 V dc or Contact Externally Powered In;
Externally Powered Output Switch
Contact or 125 V dc or Contact Externally Powered In;
Externally Powered Output Switch Expansion
Isolated Contact or Relay Out
Configurable ac or dc In; Configurable ac, dc or
Contact Out
Isolated Contact or Relay Out, Redundant
Configurable ac or dc In; Configurable ac, dc or
Contact Out, Redundant

Valid Output Points


Points 25 to 32
Points 9 to 16
Points 1 to 16
Points 9 to 16
Points 9 to 16
Points 9 to 16
Points 25 to 32
Points 25 to 32
Points 25 to 32
Points 11 to 14
Points 9 to 16
Points 25 to 32
Points 1 to 32
Points 33 to 64, if
configured as outputs.
Points 1 to 32
Points 33 to 64, if
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 Integrated 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.

600

20. COUT Contact Output Block

B0193AX Rev Z

Table 20-2. Input/Output Points, FBC10 and FBC10 Redundant

BUSMID
32
40
48
56
64

Input Points
1 to 32
1 to 40
1 to 48
1 to 56
1 to 64

Output Points
33 to 64
41 to 64
49 to 64
57 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 minutes, 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 minutes, 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.

601

B0193AX Rev Z

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 Integrated 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 resulting 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 downstream 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 conditions exists, CRBK is set to the readback value from the FBM or FBC, or if there is no connected

602

20. COUT Contact Output Block

B0193AX Rev Z

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 mnemonics 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 BLKSTA.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 addition 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 nonexistent 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.

603

B0193AX Rev Z

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 processing 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 processing 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 output. 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 therefore kept true throughout the mode.
Alarming is always active during Manual mode of the COUT block.
604

20. COUT Contact Output Block

B0193AX Rev Z

20.9 Alarming
The COUT block supports the Bad I/O alarm type. The functionality of this alarm type 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 COUT block is as follows:
Table 20-3. Alarm Nomenclature

Type
I/O Bad

Option
BAO = True

Priority

Group

BAP

BAG

Text
BAT

Default
Display
IOBAD

Indicator
Parameter
BAD

605

B0193AX Rev Z

20. COUT Contact Output Block

20.10 Application Diagram

BO01

BO02

RO01

RO02

CALCA
Program
BI02 BI04 BI09 BI11
CIN
CIN
CIN
CIN

WIDTH
CIN

CIN
WIDTH

CIN

IN

COUT

CIN
COUT

FBM241
or
FBM09

Flow
Switch
Feedstock

Tank Full
Switch
Tank Half
Full Switch

Output
Product

Flow
Switch

606

Solenoid
Valve

IN

20. COUT Contact Output Block

B0193AX Rev Z

241

242

219

97

94

62

O
O
O
O
O
O
O
O

O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O

86

27

26

17

16

15

14

11

10

Hardware
Type #

20.11 Appendix A Valid Output Connections

O
O
O
O
O
O
O
O

O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O

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

O
O
O
O
O
O
O
O

O
O
O
O
O
O
O
O

O
O
O
O
O
O
O
O

O
O
O
O

O
O
O
O
O
O
O
O

O
O
O
O
O
O
O
O

O
O
O
O
O
O
O
O

O
O
O
O
O
O
O
O

O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
I/O
I/O

O
O
O
O
O
O
O
O
I/O
I/O
607

Point
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Legend:

608

I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
O = Output
I/O = Configurable as Input or Output

I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O

242

241

219

97

94

86

62

27

26

17

16

15

14

11

10

Hardware
Type #

20. COUT Contact Output Block

B0193AX Rev Z

20. COUT Contact Output Block

B0193AX Rev Z

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.

609

B0193AX Rev Z

610

20. COUT Contact Output Block

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 capability for a single digital output point directed to two redundant Fieldbus Modules (FBMs) 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 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 Users Guide (B0700BK). For more information on the FBM207/217, refer to DIN Rail
Mounted Subsystem Users Guide (B0400FA).
See Figure 21-1 for an overview of COUTR block operation.

611

B0193AX Rev Z

21. COUTR Redundant Contact Output Block

FBM
Option

Pulse
Option

FBM
Option

Width

Input
Pulse
Output

0
Primary and
Secondary
Readback
Values

ECBs
Failsafe/Bad

FBM and
Channel
Status

Point
Selection

Fieldbus
Module
Identifiers
Point
Number

Write
Points

To
Redundant
ECBs
Contact
Output

Failsafe
Processing

Failsafe

Bad FBM/Input
Detection

Bad Alarming
and Messages

Alarms
Messages

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

612

21. COUTR Redundant Contact Output Block

B0193AX Rev Z

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, including 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 without 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.

613

B0193AX Rev Z

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

0 to 13

PHASE

block execution phase

integer

no-con/no-set

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

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 to 32

IN

generic input

boolean

con/set

0 to 1

PROPT

propagate error option

boolean

no-con/no-set

0 to 1

EROPT

error option

short

no-con/no-set

0 to 2

PLSOPT

pulse option

boolean

no-con/no-set

0 to 1

WIDTH

pulse width

real

con/set

0 minutes

any real

MA

manual/auto

boolean

con/set

0 to 1

INITMA

initialize MA

short

no-con/no-set

0 to 2

MANFS

manual if failsafe option

boolean

no-con/no-set

0 to 1

INHOPT

alarm inhibit option

short

no-con/no-set

0 to 3

INHIB

alarm inhibit

boolean

con/set

0 to 1

BAO

bad alarm option

boolean

no-con/no-set

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

1 to 5

BAG

bad alarm group

short

no-con/set

1 to 8

AMRTIN

alarm message regeneration integer

no-con/set

0 to 32767 seconds

Non-Configurable Parameters
OUTPUTS
ALMSTA

alarm status

pack_l

con/no-set

see Parameter Def.

BAD

bad I/O status indicator

boolean

con/no-set

0 to 1

BLKSTA

block status

pack_l

con/no-set

see Parameter Def.

COUT

contact output

boolean

con/no-set

0 to 1

CRBK_P

primary contact readback

boolean

con/no-set

0 to 1

CRBK_S

secondary contact readback boolean

con/no-set

0 to 1

CRIT

alarm criticality

integer

con/no-set

0 to 5

FS

failsafe indicator

boolean

con/no-set

0 to 1

INHSTA

alarm inhibit status

pack_l

con/no-set

see Parameter Def.

INITO

initialize output

short

con/no-set

0 to 1

PRTYPE

priority type

integer

con/no-set

0 to 8

UNACK

unacknowledge alarm

boolean

con/no-set

0 to 1

614

21. COUTR Redundant Contact Output Block

B0193AX Rev Z

Table 21-1. COUTR Block Parameters (Continued)


Name

Description

Type

Accessibility

Default

Units/Range

DATA STORES
ACHNGE

alternate change

integer

con/no-set

0 to 32767

ALMOPT

alarm options

pack_l

no-con/no-set

see Parameter Def.

DEFINE

no configuration errors

boolean

no-con/no-set

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 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:

Bit Number*
(0 to 31)
0 (Least Significant)
1
2
3
4
5
6
7
14
15
22

Configured Alarm
Option When True
Alarm group 8 in use
Alarm group 7 in use
Alarm group 6 in use
Alarm group 5 in use
Alarm group 4 in use
Alarm group 3 in use
Alarm group 2 in use
Alarm group 1 in use
Secondary point alarm option**
Primary point alarm option**
Bad I/O alarm configured**

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

B24

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Boolean Connection
(B32 to B1)
ALMOPT.B32
ALMOPT.B31
ALMOPT.B30
ALMOPT.B29
ALMOPT.B28
ALMOPT.B27
ALMOPT.B26
ALMOPT.B25
ALMOPT.B18
ALMOPT.B17
ALMOPT.B10

* Bit 0 is the least significant bit (starting from the right).


** Bit is set if BAO = 1.
615

B0193AX Rev Z

21. COUTR Redundant Contact Output Block

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


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

Bit
Number*
(0 to 31)

Name

0 to 4
(Least Significant)
5 to 7

PRTYPE

14
15
22

BAD_S
BAD_P
BAD

30
31

--UNACK

CRIT

CRIT

Description When True


Priority Type: Only PRTYPE values
0 and 8 are used in the COUTR
block
Criticality; 5 = lowest priority,
1 = highest
Secondary point Bad
Primary point Bad
Bad I/O alarm (primary and
secondary points Bad)
Bad alarm inhibited
Unacknowledged Bad alarm

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

BAD_P B18

B16

BAD_S B17

B15

B14

B13

B12

B11

B10

B9

BAD

B8

B7

B6

B5

B4

B3

B2

UNACK B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

ALMSTA

PRTYPE

Boolean
Connection
(B32 to B1)

ALMSTA.18
ALMSTA.17
ALMSTA.B10
ALMSTA.B2
ALMSTA.B1

* Bit 0 is the least significant bit (starting from the right).

616

AMRTIN

Alarm Regeneration Timer is an integer that specifies the time interval for
an alarm condition to exist continuously, after which a new unacknowledged alarm condition and an associated alarm message is generated. Values range from 0 (default, no regeneration) to 32767 seconds.

BAD

Bad is a boolean output parameter which is set true when both of the connected 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).

21. COUTR Redundant Contact Output Block

B0193AX Rev Z

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 operational states. For the COUTR block, only the following bits are used:

Bit Number*
(0 to 31)

Name

1
7
8
9
11
12
14
15

BIOR
HOLD
FBM
FBMR
MA
BIO
UDEF
ON

20
24

WLCK
FS

0
B32

B30

BIOR B31

3
B29

4
B28

5
B27

6
B26

B24

7
HOLD B25

FBM

B22

B21

Boolean Connection
(B32 to B1)

Description When True


Secondary I/O Bad
Hold
Primary FBM failure
Secondary FBM failure
Manual = 0, Auto = 1
Primary I/O Bad
Block Undefined
Compound On = 1,
Compound Off = 0
Workstation Lock
Failsafed outputs (both
outputs in failsafe)

FBMR B23

B20

MA

B19

BIO

B17

UDEF B18

B16

ON

B15

B14

B13

B12

B11

LCK

B10

B9

B8
FS

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

BLKSTA.B31
BLKSTA.B25
BLKSTA.B24
BLKSTA.B23
BLKSTA.B21
BLKSTA.B20
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12
BLKSTA.B8

* Bit 0 is the least significant bit (starting from the right).

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

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 initial617

B0193AX Rev Z

21. COUTR Redundant Contact Output Block

izes the blocks 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 blocks 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 configuration errors. The default is 1 (no configuration errors). When the block initializes, 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 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 describes


the blocks function (for example, PLT 3 FURNACE 2 HEATER CONTROL).

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 blocks 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
W43 INVALID PERIOD/
PHASE COMBINATION

Description

The configured PHASE parameter


value is not consistent with the configured PERIOD value.
W51 INVALID HARDWARE/ The specified FBM does not conSOFTWARE TYPE
tain any digital output points
W52 INVALID I/O
PNT_NO out of range for the specCHANNEL/GROUP NUMBER ified FBM
W54 ECB DOES NOT EXIST Specified IOM_ID or IOMIDR
does not exist

618

21. COUTR Redundant Contact Output Block

B0193AX Rev Z

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=
1=

2=

3=

When an alarm is inhibited, disable alarm messages but do not


disable alarm detection.
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.
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.
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.

619

B0193AX Rev Z

21. COUTR Redundant Contact Output Block

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:

Bit Number*
(0 to 31)

Name

14

BAD_S

15

BAD_P

22

BAD

Description When True


Secondary point Bad alarm
inhibited**
Primary point Bad alarm
inhibited**
Bad I/O alarm inhibited**

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

B23

B22

B21

B20

B19

BAD_S B18

B16

BAD_P B17

B15

B14

B13

B12

B11

B10
BAD

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

INHSTA

Boolean Connection
(B32 to B1)
INHSTA.B18
INHSTA.B17
INHSTA.B10

* Bit 0 is the least significant bit (starting from the right).


** Bit is set if 0 < Compound.CINHIB BAP or INHIB = 1.

620

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.

21. COUTR Redundant Contact Output Block

IOMOPT

B0193AX Rev Z

FBM Option is a boolean specifying whether FBM connections to the


block exist, where: Values:
0=
1=

The block does not transmit the COUT value to FBM points.
The block transmits the COUT value to both FBMs points
specified by IOM_ID, IOMIDR, and PNT_NO each execution 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 CompoundName 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 specifies the pathname of the secondary FBM to which the block is connected.
IOMIDR has the form CompoundName:BlockName, where CompoundName 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 blocks parameters are honored only if the identifier of the workstation 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 blocks parame621

B0193AX Rev Z

21. COUTR Redundant Contact Output Block

ters are honored (subject to the usual access rules) only if the requesting
workstations 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 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.

MA

Manual/Auto is a boolean input that controls the blocks 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 blocks 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
0
1
2
3
4

622

Length
0.1 sec
0.5 sec*
1.0 sec
2.0 sec
10 sec

Period
7
8
9
10
11

Length
10 min
60 min
0.2 sec
5.0 sec**
0.6 sec***

21. COUTR Redundant Contact Output Block

Period
5
6

B0193AX Rev Z

Length
30 sec
1 min

Period
12
13

Length
6.0 sec****
0.05 sec*****

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

PHASE

Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Control Processor is 0.5 sec. Refer to the appropriate Integrated Control Software 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

623

B0193AX Rev Z

624

21. COUTR Redundant Contact Output Block

TYPE

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

UNACK

Unacknowledge is a boolean output parameter that is set true, for notification 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 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.

21. COUTR Redundant Contact Output Block

B0193AX Rev Z

21.5 Functions
21.5.1 Detailed Diagram
IOMOPT

Prim.
ECB

MA
PLSOPT WIDTH

M
IN

Pulsed
Output

Readback

Sec.
ECB

Value
Returned from
Prim. FBM

CRBK_P

Value
Returned from
Sec. FBM

CRBK_S
COUT

LAST GOOD VALUE

CRBK_P

0
COUT

CRBK_S

IN.BAD
IN.OOS
IN.Disconnect
PROPT
Auto
IN.BAD
IN.OOS
IN.Disconnect
IN.ERROR

Open
Cascade
Detection

INITO

OR
EROPT = 1

AND
USE LAST GOOD VALUE

OR

AND
EROPT = 2

AND

OR

IOMOPT
Prim. ECB OOS
Sec. ECB OOS
Prim. ECB Bad
Sec. ECB Bad

AND

IOMOPT
Prim. Readback Pt. Bad
Sec. Readback Pt. Bad

OR
AND

Manual
Failsafe
Detection
Auto
Transition Cycle

COUT.OOS
INITO.OOS
CRBK_P.OOS
CRBK_S.OOS
COUT.SECURE
BAD
COUT.BAD
INITO.BAD
CRBK_P.BAD
CRBK_S.BAD
COUT.SECURE

AND
AND

AND
OR

FS

BAO

AND

Bad
Alarming

AND
Figure 21-2. COUTR Block Operational Diagram

625

B0193AX Rev Z

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 Users Guide (B0700BK). For more
information on the FBM207/217, refer to DIN Rail Mounted Subsystem Users 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.

626

21. COUTR Redundant Contact Output Block

B0193AX Rev Z

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 continues until the pulse timer expires.
When the Pulse Option parameter is true (PLSOPT = 1) and the block is in Manual mode, any 0to-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 Integrated 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.

627

B0193AX Rev Z

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 contact 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 written 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 situation, 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 nonexistent 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.
628

21. COUTR Redundant Contact Output Block

B0193AX Rev Z

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 processing 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 processing 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 blocks 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 execution cycle. COUT cannot be set manually, that is, by an OM set operation, when the
block is in Auto mode.
629

B0193AX Rev Z

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 output; 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.

630

21. COUTR Redundant Contact Output Block

B0193AX Rev Z

Neither PROPT nor EROPT are active during Manual mode.


The cascade is considered open during Manual mode of the COUTR block, and INITO is therefore 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

Type
I/O Bad

Option
BAO = True

Priority

Group

BAP

BAG

Text
BAT

Default
Display
IOBAD

Indicator
Parameter
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 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 secondary 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.
631

B0193AX Rev Z

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 generated 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 appropriate Integrated Control Software Concepts document (B0700AG or B0193AW) for detailed information on inhibiting, disabling, reprioritizing, and regenerating alarms.

632

21. COUTR Redundant Contact Output Block

B0193AX Rev Z

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

FBM240

ECB5

FBM240

FBM241

Feedstock
WIDTH

IN

COUTR

ECB5

ECB5

Tank Full
Switch
FBM240

FBM240

Output
Product

Solenoid
Valve

633

B0193AX Rev Z

634

21. COUTR Redundant Contact Output Block

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 applications 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


PAUSED

MA
ACTIVE
STEPMD

DEP
BLOCK
Standard
Parameters

BI (124)
II (18)
RI (115)

User
Parameters
Subroutines
SBXs
Main
Statement
Section
(with steps)

SUSPND
STMNO, SUBRNO
SBXNO, STEPNO
OP_ERR
ALMSTA, BLKSTA
MSGNO
BO (116)
IO (15)
RO (115)

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 Monitor (MON) block detects an off-normal process condition, it can activate an
635

B0193AX Rev Z

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 programmable 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
blocks algorithm.
The user-defined algorithm consists of:
Local block variables to be used by the blocks 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 blocks 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.

636

22. DEP Dependent Sequence Block

B0193AX Rev Z

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

0 to 13

PHASE

block phase number

integer

no-con/no-set

---

LOOPID

loopid

string

no-con/set

blank

1 to 32 chars

MA

manual/auto

boolean

con/set

0 to 1

RSTMA

restart MA

short

no-con/set

[0|1|2]

ACTIVE

sequence block state

boolean

con/set

0 to 1

RSTACT

restart ACTIVE

short

no-con/set

[0|1|2]

INHIB

alarm inhibit

boolean

con/set

0 to 1

INHOPT

inhibit option

short

no-con/no-set

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

1 to 8

BI0001 to BI0024

user lab input

boolean

con/set

0 to 1

II0001-II0008

user lab input

long

con/set

---

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 to 1

OP_PRI

alarm priority

integer

con/set

[1..5]

OP_GRP

alarm message group

integer

no-con/set

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

---

Non-Configurable Parameters
OUTPUTS
ALMSTA

alarm status

pack_l

con/no-set

bit map

BLKSTA

block status

pack_l

con/no-set

bit map

BO0001 to BO0016 user lab output

boolean

con/set

0 to 1

CRIT

criticality

integer

con/no-set

[0..5]

CSIZE

code size

integer

no-con/no-set

---

INHSTA

inhibit status

pack_l

con/no-set

0 to FFFFFFFF

637

B0193AX Rev Z

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

---

MSGNO

message number

long

con/no-set

0 to 2E31-1

OP_ERR

operation error

long

con/no-set

---

PAUSED

execution stopped

boolean

con/no-set

0 to 1

PRTYPE

priority type

integer

con/no-set

[0..10]

con/set

0.0

RO1

con/no-set

0 to 5

RO0001 to RO0015 user lab output


SBXNO

real

subroutine exception number long

SC_IND

state change indicator

long

con/no-set

---

STEPNO

executed step

long

con/no-set

---

STMNO

executed statement number long

con/no-set

---

SUBRNO

subroutine number

con/no-set

---

long

TRACMD

trace mode

long

con/no-set

0 to 2

UNACK

alarm notification

boolean

con/no-set

0 to 1

ACHNGE

alternate change

integer

con/no-set

-32768 to 32767

ALMOPT

alarm options

pack_l

no-con/no-set

0 to FFFFFFFF

DATA STORES

BA0001 to BA0004

boolean array 1 to 4

boolean[16]

no-con/set

16 boolean

DEFINE

no config errors

boolean

no-con/no-set

0 to 1

DISBX1 to DISBX5

SBX states

boolean

no-con/set

0 to 1

ERCODE

config error

string

no-con/no-set

1 to 43 chars

ERHKEY

external reference key

integer

no-con/no-set

-1

---

FPNBUF

pathname buffer

char[33]

no-con/no-set

1 to 33 chars

IA0001

integer array 1

long[16]

no-con/set

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 to 1

NXTSTM

next HLBL statement

boolean

no-con/set

0 to 1

OF_ICM

number of bytes ic

integer

no-con/no-set

---

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

1 to 5

STEPMD

step mode

boolean

con/set

0 to 1

STEPRQ

step request

short

no-con/set

---

STMRQ

statement request

long

no-con/set

---

SUSPND

suspend

boolean

con/set

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

---

22.3.1 Parameter Definitions


ACHNGE

638

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.

22. DEP Dependent Sequence Block

B0193AX Rev Z

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:

Bit Number*
(0 to 31)

Configured Alarm Option


When True

0
1
7

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

8
B24

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Boolean Connection
(B32 to B1)

Alarm Group 8 in Use


Alarm Group 7 in Use
Alarm Group 1 in Use

ALMOPT.B32
ALMOPT.B31
ALMOPT.B25

* Bit 0 is the least significant bit (starting from the right).


There are no mnemonic names for the individual bits of ALMOPT.
Alarm Status is a 32-bit output, bit-mapped to indicate the blocks alarm
states. For the DEP block, only the following bits are used:

Bit Number
(0 to 31)*

CRIT

Name

Description When True

0 to 4

PTYP_MSK

5 to 7

CRIT_MSK

26
27

STAL
OPER

Priority Type: See parameter PRTYPE for values


used in the AIN block
Criticality; 5 = lowest priority, 1= highest
State Change Alarm
Sequence Operational
Error Alarm

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

STAL B6

OPER B5

B4

B3
INH

B1

UNAK B2

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

ALMSTA

PRTYPE

Boolean Connection
(B32 to B1)
ALMSTA.B32
ALMSTA.B28
ALMSTA.B27
ALMSTA.B25
ALMSTA.B6
ALMSTA.B5

639

B0193AX Rev Z

22. DEP Dependent Sequence Block

Bit Number
(0 to 31)*

Name

29
30

Boolean Connection
(B32 to B1)

Description When True

INH
UNAK

Alarm inhibit
Unacknowledged

ALMSTA.B3
ALMSTA.B2

* Bit 0 is the least significant bit (starting from the right).


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 userdefined 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 blocks operational states. For the DEP block, only the following bits are used:

Bit
Number*
(0 to 31)
11
14
15
16
18
19

Name

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

B24

B23

B22

B21

MA

B20

B19

B17
ON

UDEF B18

B16
ACT

B15

PAUS B14

B13
SBX

B11

WLCK B12

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Description When True

Boolean
Connection
(B32 to B1)

MA
UDEF
ON
ACT
PAUS
SBX

Manual(= false)/Auto(= true) BLKSTA.B21


Undefined
BLKSTA.B18
Compound On
BLKSTA.B17
Active/Inactive
BLKSTA.B16
Paused
BLKSTA.B14
Executing Sequence Block
BLKSTA.B13
Exception (SBX) Statements
20
WLCK Workstation Lock
BLKSTA.B12
* Bit 0 is the least significant bit (starting from the right).

BO0001 to BO0016
Boolean Outputs 1 through 16, are user parameters, and are the evaluation 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.

640

22. DEP Dependent Sequence Block

B0193AX Rev Z

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 blocks 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 configuration errors. The default is 1 (no configuration errors). When the block initializes, 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 blocks compound, change deltas have no
effect.

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


blocks function (for example, PLT 3 FURNACE 2 HEATER CONTROL).

DISBX1 to DISBX5
Disable Sequence Block Exceptions (SBX 1 through 5) are boolean outputs. When true, DISX1, for example, indicates that SBX 1 has been disabled. 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.

641

B0193AX Rev Z

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 blocks
DEFINE parameter to be set false, but not the warning situations. Validation of configuration errors does not proceed past the first error encountered 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
W43 INVALID PERIOD/
PHASE COMBINATION
W44 INVALID
ENGINEERING RANGE
W46 INVALID INPUT
CONNECTION

W48 INVALID BLOCK


OPTION
W53 INVALID PARAMETER
VALUE
W58 INSTALL ERROR;
DELETE/UNDELETE BLOCK

642

Value
PHASE does not exist for given block
PERIOD, or block PERIOD not
compatible with compound PERIOD.
High range value is less than or equal
to low range value.
The source parameter specified in the
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.
The configured value of a block option
is illegal.
A parameter value is not in the acceptable range.
A Database Installer error has
occurred.

ERHKEY

External Reference Location Key is an indexed specification of the location type for an external reference (data store for debugging use only).

FPNBUF

Full Path Name Buffer contains the full path name of the external reference (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).

22. DEP Dependent Sequence Block

B0193AX Rev Z

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 standard parameters which can be user labelled.

II0001 to II0008

Integer Inputs 1 through 8 are user parameters that can be read in userdefined 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.
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.
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.
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.

1=

2=

3=

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:

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B6
STAL

B7

B5

B4

OPER

B3
INH

B1

UNACK B2

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

INHSTA

643

B0193AX Rev Z

22. DEP Dependent Sequence Block

Bit
Number*
(0 to 31)

Name

26
27

STAL
OPER

29
30

INH
UNACK

Description When True


State Change Alarm
Sequence Operational Error
Alarm
Inhibit Alarm
Unacknowledged

Boolean
Connection
(B32 to B1)
INHSTA.B6
INHSTA.B5
INHSTA.B3
INHSTA.B2

* Bit 0 is the least significant bit (starting from the right).


IO0001 to IO0005
Integer Outputs 1 through 5 are user parameters that you can reference in
the blocks sequence logic. You can optionally assign labels to these outputs to facilitate referencing.

644

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-character 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 displays. 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 blocks
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 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 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 destination.

22. DEP Dependent Sequence Block

MA

B0193AX Rev Z

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 section 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, NXTSTM causes the HLBL statement following the current one to be executed. 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 operational 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.

645

B0193AX Rev Z

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 messages 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 priority 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 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.

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 blocks 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
0
1
2
3
4
5
6

Length
0.1 sec
0.5 sec*
1.0 sec
2.0 sec
10 sec
30 sec
1 min

Period
7
8
9
10
11
12
13

Length
10 min
60 min
0.2 sec
5.0 sec**
0.6 sec***
6.0 sec****
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.

646

22. DEP Dependent Sequence Block

B0193AX Rev Z

***** Available in CP40, CP40B, and CP60.


PHASE

Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For instance, a block with
PERIOD of 3 (2.0 sec) can execute within the first, second, third, or
fourth BPC of the 2-second time period, assuming the BPC of the Control Processor is 0.5 sec. 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
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 statement 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 engineering 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 blocks sequence logic. You can optionally assign labels to these outputs to facilitate referencing.
RO1

Range Output is an array of real values that specify the high and low engineering 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 designated 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.
647

B0193AX Rev Z

RSTMA

22. DEP Dependent Sequence Block

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 display. The block ignores out of range values. After granting an SBX request,
the block resets SUBRNO and STMNO to 0. Use the NEXT STMT button 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 destination of a SENDMSG statement in the IND sequence logic. The Object
Manager can then retrieve SN0001 to SN0010 for operator display purposes.

648

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
blocks 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 section; 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 blocks 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.

22. DEP Dependent Sequence Block

B0193AX Rev Z

STMNO

Statement Number 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 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. Activate 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 (Manual, 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 blocks 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 internal evaluation stack (data store for debugging use only).

TRACMD

Trace Mode indicator shows whether the block is in Trace mode.


TRACMD
0
1
2

TRACRQ

Indication
Not in trace mode
Subr-Trace mode
SBX-Trace mode

Trace Request is a nonconfigurable, short integer. When the block is in


Manual, TRACRQ determines whether the block is set into the SubrTrace 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
1
2
any other value

Request granted
Into Subr-Trace mode
Into SBX-Trace mode
Out of Trace mode

649

B0193AX Rev Z

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 following 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 blocks 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 statements that can be executed per BPC. The block does not deactivate itself automatically in the
Step mode.
You can divide the blocks main section into steps by defining step labels in the blocks 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 processing.

650

22. DEP Dependent Sequence Block

B0193AX Rev Z

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
1
2

SBX Function
System error handler, OP_ERR = no user error
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 executed.
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
3
4
5

SBX Function
Transition logic for switch to Inactive
Transition logic for switch to Manual
Transition logic for switch to Paused

If the block is not Paused when the block mode changes from Active/Auto or Active/Step to Inactive, 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 Inactive, 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 executing 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.

651

B0193AX Rev Z

22. DEP Dependent Sequence Block

If a statement is in execution when you request a state change, the statements execution is completed 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 execution 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 statements 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 blocks 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 subroutines 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 blocks main section. The block is idle before the first statement in the requested subroutine. 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
blocks 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 parameters. External sources (other blocks and applications) can write values to the blocks 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 blocks main section is executed.
An EXIT statement is executed.
Another Sequence block executes an ABORT statement.
The ACTIVE parameter value is toggled to Inactive.
652

22. DEP Dependent Sequence Block

B0193AX Rev Z

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 blocks 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 Integrated 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
Compound B
Compound C

Continuous
Continuous
Continuous
1

MON/TIM
MON/TIM
MON/TIM
2

EXC
EXC
EXC
3

DEP/IND
DEP/IND
DEP/IND

Continuous
Continuous
Continuous

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) Users Guide (B0400DF) for a definition of the HLBL
syntax and semantics and the sequence compiler related limits.

653

B0193AX Rev Z

654

22. DEP Dependent Sequence Block

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 blocks
GAP parameter (Figure 23-1 and Figure 23-2). The outputs normally control on/off valves or
other discrete devices.
Output Option
Tristate
-- OUTDEC
Setpoint

ERROR Differential
Gap
Generator

Bistate

++ OUTINC

Measurement

Alarm Messages and Indicators

Alarming

Figure 23-1. DGAP Block I/O Diagram

OUTINC 1
0
1
OUTDEC 0
OUTINC 1
0
1
OUTDEC 0

TRISTATE

Time
BISTATE

Time

Figure 23-2. DGAP Tristate and Bistate Typical Operation

655

B0193AX Rev Z

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

656

23. DGAP Differential Gap Block

B0193AX Rev Z

Control Error Option (CEOPT) allows you to enable, or disable, the blocks 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 blocks OUTDEC and OUTINC output 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

string

no-con/no-set

blank

1 to 12 chars

Configurable Parameters
INPUTS
NAME

block name

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

0 to 13

PHASE

block phase number

integer

no-con/no-set

---

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 to 1

SPT

setpoint

real

con/set

0.0

RI1

MODOPT

control mode option

short

no-con/no-set

[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 to 1

INITMA

initialize MA

short

no-con/no-set

[0|1|2]

MBADOP

manual bad option

short

no-con/no-set

[0|1|2]

MANSW

manual switch

Boolean

con/set

0 to 1

AUTSW

auto switch

Boolean

con/set

0 to 1

CEOPT

control error option

short

no-con/no-set

0 to 2

HOLD

hold mode

Boolean

con/set

0 to 1

INITI

initialize in

short

con/set

0 to 1

LR

local/remote

Boolean

con/set

0 to 1

INITLR

initialize LR

short

no-con/no-set

[0|1|2]

LOCSP

local setpoint

Boolean

no-con/no-set

0 to 1

LOCSW

local switch

Boolean

con/set

0 to 1

REMSW

remote switch

Boolean

con/set

0 to 1

657

B0193AX Rev Z

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|1|2]

MANALM

manual alarm option

short

no-con/no-set

0 to 1

INHOPT

inhibit option

short

no-con/no-set

0 to 3

INHIB

alarm inhibit

Boolean

con/set

0 to 1

INHALM

inhibit alarm

pack_b

con/set

0 to FFFF

MEASNM

meas alarm name

string

no-con/no-set

blank

1 to 32 chars

MALOPT

meas alarm option

short

no-con/no-set

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

[1 to 5]

MEASGR

meas alarm group

short

no-con/set

[1 to 8]

DALOPT

deviation alarm option

short

no-con/no-set

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

[1 to 5]

DEVGRP

deviation alarm group

short

no-con/set

[1 to 8]

HHAOPT

high-high option

short

no-con/no-set

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

[1 to 5]

HHAGRP

high-high group

short

no-con/set

[1 to 8]

AMRTIN

alarm regeneration timer

integer

no-con/no-set

0 to 32767 s

NASTDB

alarm deadband timer

long integer

no-con/no-set

0-2147483647 ms

NASOPT

nuisance alarm suppression option

short

no-con/no-set

0 to 2

Non-Configurable Parameters
OUTPUTS
ALMSTA

alarm status

pack_l

con/no-set

0 to FFFFFFFF

BCALCO

back calc out

real

con/no-set

0.0

RI1

BLKSTA

block status

pack_l

con/no-set

0 to FFFFFFFF

CRIT

criticality

integer

con/no-set

[0 to 5]

ERROR

control error

real

con/no-set

0.0

RI1

HDAIND

high deviation indicator

Boolean

con/no-set

0 to 1

HHAIND

high-high absolute indicator Boolean

con/no-set

0 to 1

INHSTA

inhibit status

pack_l

con/no-set

0 to FFFFFFFF

INITO

initialize out

short

con/no-set

0 to 1

658

23. DGAP Differential Gap Block

B0193AX Rev Z

Table 23-1. DGAP Block Parameters (Continued)


Name

Description

Type

Accessibility

Default

Units/Range

LDAIND

low deviation indicator

Boolean

con/no-set

0 to 1

LLAIND

low-low alarm indicator

Boolean

con/no-set

0 to 1

MEASHI

meas high alarm indicator

Boolean

con/no-set

0 to 1

MEASLI

meas low alarm indicator

Boolean

con/no-set

0 to 1

OUTDEC

output decrease

Boolean

con/no-set

0 to 1

OUTINC

output increase

Boolean

con/no-set

0 to 1

PRTYPE

priority type

integer

con/no-set

[0 to 6]

QALSTA

quality status

pack_l

con/no-set

0 to FFFFFFFF

UNACK

alarm notification

Boolean

con/no-set

0 to 1

ACHNGE

alternate change

integer

con/no-set

-32768 to 32767

ALMOPT

alarm options

pack_l

no-con/no-set

0 to FFFFFFFF

DEFINE

no config errors

Boolean

no-con/no-set

0 to 1

ERCODE

config error

string

no-con/no-set

1 to 43 chars

LOCKID

lock identifier

string

no-con/no-set

---

8 to 13 chars

LOCKRQ

lock request

Boolean

no-con/set

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

1 to 3

RI1-RI2

eng range input

real[3]

no-con/no-set

100,0,1

specifiable

DATA STORES

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:

Bit
Number*
(0 to 31)
0
1

Configured Alarm Option


When True
Alarm Group 8 in Use
Alarm Group 7 in Use

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

B24

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Boolean Connection
(B32 to B1) or (Name)
for programming
ALMOPT.B32
ALMOPT.B31

659

B0193AX Rev Z

23. DGAP Differential Gap Block

Bit
Number*
(0 to 31)

Boolean Connection
(B32 to B1) or (Name)
for programming

Configured Alarm Option


When True

7
16

Alarm Group 1 in Use


ALMOPT.B25
Low Absolute Alarm ConALMOPT.B16
figured
17
High Absolute Alarm Con- ALMOPT.B15
figured
20
Low deviation Alarm ConALMOPT.B12
figured
21
High deviation Alarm Con- ALMOPT.B11
figured
24
Low-Low Absolute Alarm
ALMOPT.B8
Configured
25
High-High Absolute Alarm ALMOPT.B7
Configured
* Bit 0 is the least significant bit (starting from the right).
There are no mnemonic names for the individual bits of ALMOPT.
Alarm Status is a 32-bit output to indicate the blocks alarm states. For the
DGAP block, only the following bits are used:

660

Name

Description When True

0 to 4

PTYP_MSK

5 to 7

CRIT_MSK

16
17
20
21
24

LMA
HMA
LDA
HDA
LLA

Priority Type: See parameter


PRTYPE for values used in
the DGAP block
Criticality; 5 = lowest priority,
1= highest
Low Absolute Alarm
High Absolute Alarm
Low Deviation Alarm
High Deviation Alarm
Low-Low Absolute Alarm

CRIT

PRTYPE

Boolean
Connection
(B32 to B1)
ALMSTA.B32
ALMSTA.B28
ALMSTA.B27ALMSTA.B25
ALMSTA.B16
ALMSTA.B15
ALMSTA.B12
ALMSTA.B11
ALMSTA.B8

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

B16
LMA

B15

B14

HMA

B13

B11

B12
LDA

HDA

B10

B9

B8
LLA

B7

B6

Bit
Number
(0 to 31)1

HHA

B5

B4

B3
INH

B1

UNAK B2

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

ALMSTA

23. DGAP Differential Gap Block

Bit
Number
(0 to 31)1
25
29
30

B0193AX Rev Z

Name

Description When True

HHA
INH
UNAK
1.

Boolean
Connection
(B32 to B1)

High-High Absolute Alarm


Alarm inhibit
Unacknowledged

ALMSTA.B7
ALMSTA.B3
ALMSTA.B2

* Bit 0 is the least significant bit (starting from the right).

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

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 Measurement 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.
Block Status is a 32-bit output that indicates the following block operational states. For the DGAP block, only the following bits are used:

0
B32

1
B31

2
B30

3
B29

4
B28

B27
CTL

B26

B25

TRK

8
B24

B22
LR

STRK B23

B21
MA

B20

B19

B17

B16

UDEF B18

ON

B15

B14

B13

B11

WLCK B12

B10

B9

B7

B8

B6

LRO

B5

MAO

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

HLD

BLKSTA

661

B0193AX Rev Z

23. DGAP Differential Gap Block

Bit Number*
(0 to 31)
5
6
7
9
10

Name

Description When True

Boolean
Connection
(B32 to B1)

Controlling
BLKSTA.B27
Tracking
BLKSTA.B26
Holding
BLKSTA.B25
Setpoint Tracking
BLKSTA.B23
Local(= false)/Remote(=
BLKSTA.B22
true)
11
MA
Manual(= false)/Auto(=
BLKSTA.B21
true)
14
UDEF
Undefined (Inverse of
BLKSTA.B18
DEFINE)
15
ON
Compound On
BLKSTA.B17
20
WLCK
Workstation Lock
BLKSTA.B12
25
LRO
Local/Remote Override
BLKSTA.B7
26
MAO
Manual/Auto Override
BLKSTA.B6
* Bit 0 is the least significant bit (starting from the right).
CEOPT

CTL
TRK
HLD
STRK
LR

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=
1=

2=

The block takes no implicit Hold action when it detects a control error.
The block goes to the Hold state if, while MBADOP = 0,
MEAS: (a) has its BAD status bit set true; (b) has its Out-ofService status bit set true; (c) is experiencing peer-to-peer path
failure.
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).

662

CRIT

Criticality is an integer output that indicates the priority, ranging from 1


to 5, of the blocks 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.

23. DGAP Differential Gap Block

B0193AX Rev Z

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 configuration errors. The default is 1 (no configuration errors). When the block initializes, DEFINE is set to 0 if any configured parameters fail validation
testing. In that case, no further processing of the block occurs. To return
DEFINE to a true value, correct all configuration errors and re-install the
block. DEFINE is the inverse of undefined (UDEF) in the BLKSTA
parameter.

DELTI1 to DELTI2
Change Delta for Input Range 1 or 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 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 blocks compound, change deltas have no
effect.
DESCRP

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


blocks function (for example, PLT 3 FURNACE 2 HEATER CONTROL).

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 messages 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 blocks
DEFINE parameter to be set false, but not the warning situations. Validation of configuration errors does not proceed past the first error encountered 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

663

B0193AX Rev Z

23. DGAP Differential Gap Block

list specifies the possible values of ERCODE, and the significance of each
value in this block:
Message

Value

W43 INVALID
PERIOD/PHASE COMBINATION
W44 INVALID ENGINEERING RANGE
W46 INVALID INPUT
CONNECTION

PHASE does not exist for given block


PERIOD, or block PERIOD not compatible with compound PERIOD.
High range value is less than or equal
to low range value.
The source parameter specified in the
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.
The configured value of a block option
is illegal.
A parameter value is not in the acceptable range.
A Database Installer error has occurred.

W48 INVALID BLOCK


OPTION
W53 INVALID
PARAMETER VALUE
W58 INSTALL
ERROR;
DELETE/UNDELETE
BLOCK

664

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 deadband. 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 Validation on page 684.

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.

23. DGAP Differential Gap Block

B0193AX Rev Z

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 deviation alarm and set the High Deviation Alarm Indicator, HDAIND, true.

HDATXT

High Deviation Alarm Text is a user-configurable text string of up to 32characters, output with the alarm message to identify the alarm.

HHAGRP

High-High Absolute Alarm Group is a short integer input that directs


High-High Absolute alarm messages to one of eight groups of alarm
devices.

HHAIND

High-High Alarm Indicator is a Boolean output set true when the blockdependent 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.

665

B0193AX Rev Z

Description When True

0
B16

B6

B15

B5

B14

B4

B13

B3

Bit Number*
(0 to 15)

B12

10

B11

11

B10

12

B9

13

B8

14

B7

15

B2

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:

B1

INHALM

23. DGAP Differential Gap Block

Boolean Connection
(B16 to B1)

0
1
4
5
8

Inhibit Low Absolute Alarm


INHALM.B16
Inhibit High Absolute Alarm INHALM.B15
Inhibit Low Deviation Alarm INHALM.B12
Inhibit High Deviation Alarm INHALM.B11
Inhibit Low-Low Absolute
INHALM.B8
Alarm
9
Inhibit High-High Absolute
INHALM.B7
Alarm
* Bit 0 is the least significant bit (starting from the right)
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 compound parameter CINHIB.

INHOPT

Inhibit Option specifies the following actions applying to all block alarms:
0=
1=

2=

3=

666

When an alarm is inhibited, disable alarm notification but do


not disable alarm detection.
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.
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 setting UNACK false.
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 setting UNACK false.

23. DGAP Differential Gap Block

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:

16

Description When True

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B16

Name

B17

B15

LMA

B14

HMA

B12
LDA

Bit
Number*
(0 to 31)

B13

B11
HDA

B10

B8

B9

B7

LLA

B6

HHA

B5

B4

B3
INH

B1

UNACK B2

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

INHSTA

B0193AX Rev Z

Boolean
Connection
(B32 to B1)

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 bit (starting from the right).
INITI

Initialization In defines the source block and parameter that would normally 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.
667

B0193AX Rev Z

23. DGAP Differential Gap Block

The Initialize LR state is ignored if the LR input has an established linkage, or LOCSW or REMSW are set true.
INITMA

Initialize Manual/Auto specifies the desired state of the MA input during


initialization, where:
0 = Manual
1 = Auto
2 = The MA state specified in the checkpoint file (reboot only)
The block asserts this initial M/A state whenever:
It is installed into the Control Processor database.
The Control Processor undergoes a reboot operation.
The compound in which it resides is turned on.
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 connects 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.

668

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 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 measurement 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-character that is output with the alarm message to identify the alarm.

23. DGAP Differential Gap Block

B0193AX Rev Z

LLAIND

Low-Low Alarm Indicator is a Boolean output set true when the blockdependent 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.

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-character 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 displays. 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 blocks
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 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.

LOOPID

Loop Identifier is a configurable 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.

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

669

B0193AX Rev Z

23. DGAP Differential Gap Block

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 specific algorithm. In Manual, 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 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

670

23. DGAP Differential Gap Block

B0193AX Rev Z

of the MBADOP conditions are true, the block will be switched to Manual regardless of the MANSW and AUTSW settings.
MEAS

Measurement is an input identifying the source of the blocks 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
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 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).

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.

671

B0193AX Rev Z

672

23. DGAP Differential Gap Block

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 Detection 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
alarms 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 Measurement 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 Measurement 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 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

23. DGAP Differential Gap Block

B0193AX Rev Z

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 blocks 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
0
1
2
3
4
5
6

Length
0.1 sec
0.5 sec*
1.0 sec
2.0 sec
10 sec
30 sec
1 min

Period
7
8
9
10
11
12
13

Length
10 min
60 min
0.2 sec
5.0 sec**
0.6 sec***
6.0 sec****
0.05 sec*****

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

Period Time is 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 Control Processor is 0.5 sec. Refer to the appropriate Integrated Control Software 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 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 ERR status bit is set true.
It is experiencing peer-to-peer path failure.

673

B0193AX Rev Z

23. DGAP Differential Gap Block

If a transition to Manual occurs while the ERR status is true, it remains


true until either a set command is written to that output or until the block
transfers to Auto with the error condition returned to normal.
PRSCON

Present Control state is a data store that contains the substates of Auto:
1 = Holding
2 = Tracking
3 = Controlling (not open loop)

PRTYPE

Priority Type is an indexed output parameter that indicates the alarm type
of the highest priority active alarm. The PRTYPE output of this block
includes the following alarm types:
0 = No active alarm
1 = High Absolute
2 = Low Absolute
3 = High-High Absolute
4 = Low-Low Absolute
5 = High Deviation
6 = Low Deviation

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 connectable output parameter. Available bits for this block are provided below.

Bit
Number1
30
29
25
24
21
20
17
16
5
2
674

Definition
Alarms Unacknowledged
Alarms Inhibited
High-High Absolute Alarm
Low-Low Absolute Alarm
High Deviation Alarm
Low Deviation Alarm
High Absolute Alarm
Low Absolute Alarm
Manual
Uncertain

Contents
ALMSTA.UNA
ALMSTA.INH
ALMSTA.HHA
ALMSTA.LLA
ALMSTA.HDA
ALMSTA.LDA
ALMSTA.HMA
ALMSTA.LMA
BLKSTA.MA
MEAS.ERR status

Boolean Connection
(B32 to B1)
QALSTA.B2
QALSTA.B3
QALSTA.B7
QALSTA.B8
QALSTA.B11
QALSTA.B12
QALSTA.B15
QALSTA.B16
QALSTA.B27
QALSTA.B30

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

8
B24

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

23. DGAP Differential Gap Block

Bit
Number1
1
0

Definition
Out-of-Service
Bad

1.

B0193AX Rev Z

Contents
MEAS.OOS status
MEAS.BAD status

Boolean Connection
(B32 to B1)
QALSTA.B31
QALSTA.B32

Bit 0 is the least significant bit (starting from the right).

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 engineering 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 determines 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 settable, 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).

675

B0193AX Rev Z

23. DGAP Differential Gap Block

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.

23.4 Detailed Operation


In the Auto state, the DGAP block performs on-off control via the outputs, OUTINC and
OUTDEC. 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 parameter 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 signals, and options represented by toggle switches.

676

23. DGAP Differential Gap Block

LR
LOCSP

LOCSW
REMSW

Remote

B0193AX Rev Z

Manual
Local
SPTRK

MODOPT
GAPDB GAP

RSP
SPT

Local

SPT

HOLD

Tristate

Track

Control

AUTSW
MBADOP
MANSW
MA

Manual
OUTDEC

ERROR

Differential
Gap
Generator

MEAS

Bistate

Auto
Hold

Control

BCALCO

Manual
OUTINC

MEAS
unreliable
(see BCALCO)

INHIB
INHALM
INHOPT
DALOPT
DEVADB
DEVPRI
DEVGRP

Auto
Hold

Deviation

Limit
(High
Deviation
Alarming)

HDAIND

Limit
(Low
Deviation
Alarming)

LDAIND

HHALIM
MEASDB
HHATXT

Limit
(High-High
Absolute
Alarming)

HHAIND

LLALIM
MEASDB
LLATXT

Limit
(Low-Low
Absolute
Alarming)

LLAIND

MEASHL
MEASDB
MEASHT

Limit
(High
Absolute
Alarming)

MEASHI

MEASLL
MEASDB
MEASLT

Limit
(Low
Absolute
Alarming)

MEASLI

HDALIM
HDATXT

LDALIM
LDATXT

MANALM
MA
Manual

Auto

HHAOPT
HHAPRI
HHAGRP
MEASNM

MALOPT
MEASPR
MEASGR
MEASNM

Output Message
Including:
HHAIND, HHATXT
LLAIND, LLATXT
MEASHI, MEASHT
MEASLI, MEASLT
HDAIND, HDATXT
LDAIND, LDATXT
PRTYPE
CRIT
UNACK

Figure 23-3. DGAP, Detailed Block Diagram

DGAP has two operational modes as selected by the MODOPT parameter:


BiState Operation
TriState Operation.

677

B0193AX Rev Z

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
GAP

Dead Zone
SPT

0
-10
-20
-30
-40
-50

OUTINC

1
0
1

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 operational 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 controls 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 differential 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).

678

23. DGAP Differential Gap Block

B0193AX Rev Z

Deviation
50

Setpoint - Measurement = Error

40
30

} Deadband = GAPDB

20
10
GAP

Dead Zone

SPT

-10
-20
-30

} Deadband = GAPDB

-40
-50

OUTINC

1
0
1

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 setpoint.
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 nonsettable 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.

679

B0193AX Rev Z

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 output, 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 parameter 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 onoff control. Even if MBADOP = 1 or 2, the block goes to the Holding substate if the MA parameter is linked.

680

23. DGAP Differential Gap Block

B0193AX Rev Z

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 messages if the INHIB input is false.
Unacknowledge (UNACK) is a connectable Boolean output parameter which is set true, for notification 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 666 for its formatting.
The INHOPT parameter specifies the actions taken when alarms are inhibited in the block. See
INHOPT on page 666 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.

681

B0193AX Rev Z

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
MEASHL

{MEASDB
{MEASDB

MEAS

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 message.
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 deadband (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
682

23. DGAP Differential Gap Block

B0193AX Rev Z

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
HDA Alarm Clears

+ Deviation
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).

683

B0193AX Rev Z

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 userdefined 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 unpredictable. 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 controller (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.

684

23. DGAP Differential Gap Block

B0193AX Rev Z

MEAS
SPT

PID
OUT
RSP

MEAS

DGAP
OUTDEC
(Decrease)

OUTINC
(Increase)
AIN

COUTR, MCOUT

AIN

FBM

FBM

FBM

Motor
Driven
Actuator
PT

Position
Sensor
Furnace
Air
Damper
Figure 23-9. DGAP with Position Feedback

685

B0193AX Rev Z

686

23. DGAP Differential Gap Block

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 algorithm in Fieldbus Modules (FBM04, FBM17, 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 algorithm to the analog-todigital (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

FFTUNE
Extender Block

FBTUNE
Extender Block
Supervisory
Setpoint
Limit
Local
Setpoint
Remote
Setpoint

Multiplicative Input
Local
Operators
Panel

Bias

Auto/
Manual
Switch

SE

LR
Ramp, Local
Enable
Limit
Remote Disable
Limit
Absolute
Alarms

Scale

Deviation
Alarms

Ramp
Output

Scale

DPIDA
Manual

Select
One

Compensator

Measurement 1
Measurement 2
Measurement 3

Filter
Redundancy
Option

Feedback
Control
Algorithm

x
B
A/B

+
Auto

Limit,
Ramp

Output

Track

FBM Using ECB52

Figure 24-1. DPIDA Controller Functional Diagram

687

B0193AX Rev Z

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 information provided by the CP. FBM04 and FBM17 also provide three redundant measurement inputs.
FBM based control achieves fast controller response with very low integrated 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 algorithm 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 blocks 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 compensator 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
688

24. DPIDA Controller

B0193AX Rev Z

Measurement linearization, SQRENB


Measurement characterization, CHAREN
Anti-alias filtering, FLTOPT
Failsafe action, FSOPT
Output scaling, LOSCAL and HOSCAL
Local operators 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 compensations 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 process or another block.

689

B0193AX Rev Z

24. DPIDA Controller

Auto and Manual latch switch inputs (AUTSW and MANSW) that allow the controller 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 controller 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 operation 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
690

24. DPIDA Controller

B0193AX Rev Z

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 measurement during auto operation. This option also provides standard alarm
notification and reporting features.
Deviation Alarm Option (DALOPT) enables deviation alarming of the measurementsetpoint 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 priority 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 contains 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.

691

B0193AX Rev Z

24. DPIDA Controller

24.3.1.5 ECB52 Features

Redundancy Option (REDOPT) allows the FBM04 or FBM17 to select one of up to


three redundant inputs as the measurement input to the algorithm. 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 allows connection of a local operators 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 configured 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

boolean

con/set

0 to 1

Configurable Parameters
INPUTS
AUTSW

auto switch

BAG

bad alarm group

short

no-con/set

1 to 8

BAO

bad alarm option

boolean

no-con/no-set

0 to 1

BAP

bad alarm priority

integer

con/set

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

0 to 2

DALOPT

deviation alarm opt

short

no-con/no-set

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%

DERIV

derivative time

real

con/set

0.0

0 to real minutes

692

24. DPIDA Controller

B0193AX Rev Z

Table 24-1. DPIDA Block Parameters (Continued)


Name

Description

Type

Accessibility

Default

Units/Range

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 to 8

DEVLIM

deviation limit

real

no-con/no-set

2.0%

RI1

DEVPRI

deviation alarm priority

integer

con/set

1 to 5

DEVTIM

deviation alarm time

integer

no-con/no-set

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 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 to 8

HHALIM

high-high alarm limit

real

con/set

100.0

RI1

HHAOPT

high-high alarm option

short

no-con/no-set

0 to 3

HHAPRI

high-high alarm priority

integer

con/set

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 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 to 1

INHALM

inhibit alarm

pack_b

con/set

0 to FFFF

INHIB

alarm inhibit

boolean

con/set

0 to 1

INHOPT

inhibit option

short

no-con/no-set

0 to 3

INITLR

initialize local/remote

short

no-con/no-set

0 to 2

INITMA

initialize MA

short

no-con/no-set

0 to 2

INITSE

initial SE

short

no-con/no-set

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

LOCSP

lock setpoint

boolean

no-con/no-set

0 to 1

693

B0193AX Rev Z

24. DPIDA Controller

Table 24-1. DPIDA Block Parameters (Continued)


Name

Description

Type

Accessibility

Default

Units/Range

LOCSW

local setpoint switch

boolean

con/set

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 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 to 1

MALOPT

meas alarm option

short

no-con/no-set

0 to 3

MANALM

manual alarm option

short

no-con/no-set

0 to 4

MANSW

manual switch

boolean

con/set

0 to 1

MBADOP

manual if bad option

short

no-con/no-set

[0|1|2]

MCLOPT

manual clamp option

boolean

no-con/no-set

0 to 1

MEASDB

meas alarm deadband

real

no-con/set

0.0

RI1

MEASGR

meas alarm group

short

no-con/set

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

1 to 5

MODOPT

control mode option

short

no-con/no-set

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 to 1

OALOPT

output alarm opt

short

no-con/no-set

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 to 8

OUTNM

output alarm name

string

no-con/no-set

2 blanks

1 to 32 chars

OUTPRI

output alarm priority

integer

con/set

1 to 5

PBAND

proportional band

real

con/set

1000.0

0.1 to real %

PERIOD

block sample time

short

no-con/no-set

0 to 13

PHASE

block execute phase

integer

no-con/no-set

see param def

PRIBLK

primary block

boolean

no-con/no-set

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 to 1

REMSW

remote switch

boolean

con/set

0 to 1

RSP

remote setpoint

real

con/set

0.0

RI1

SPCLMP

setpoint clamp

short

no-con/no-set

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

SPRAMP

local setpoint ramp option

boolean

con/set

0 to 1

694

24. DPIDA Controller

B0193AX Rev Z

Table 24-1. DPIDA Block Parameters (Continued)


Name

Description

Type

Accessibility

Default

Units/Range

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 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|1|2]

SUPGRP

supervisory group

short

no-con/no-set

1 to 8

SUPOPT

supervisory option

short

no-con/no-set

0 to 4

TRACK

track input

real

con/set

0.0

RO1

TRKENL

track enable

boolean

con/set

0 to 1

TYPE

block type

integer

no-con/no-set

124

DPIDA

AMRTIN

alarm regeneration timer

integer

no-con/no-set

0 to 32767 s

NASTDB

alarm deadband timer

long integer no-con/no-set

NASOPT

nuisance alarm suppression short


option

0-2147483647 ms

no-con/no-set

0 to 2

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

real

con/set

0.0

RI1

MEAS01 to MEAS03 measurement 1 to 3


OUT2

output 2

real

con/set

0.0

RO1

SE

supervisory enable

boolean

no-con/set

0 to 1

SELRQ

select request

short

con/set

0 to 3

SELST

select status

short

con/set

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

0 to 1

CRIT

alarm criticality

integer

con/no-set

0 to 5

ERROR

control error

real

con/no-set

0.0

RI1

FLBREQ

fallback request

short

con/no-set

0 to 1

FS

failsafe state

boolean

con/no-set

0 to 1

HDAIND

high deviation alarm indicator boolean

con/no-set

0 to 1

HHAIND

high-high alarm indicator

boolean

con/no-set

0 to 1

HOAIND

high output alarm indicator

boolean

con/no-set

0 to 1

HOLIND

high output limit indicator

boolean

con/no-set

0 to 1

INHSTA

inhibit status

pack_l

con/no-set

0x00...0

0 to 0xFFFFFFFF

INITO

initialize output

short

con/no-set

0 to 1

LDAIND

low deviation alarm indicator boolean

con/no-set

0 to 1

LLAIND

low-low alarm indicator

boolean

con/no-set

0 to 1

LOAIND

low output alarm indicator

boolean

con/no-set

0 to 1

695

B0193AX Rev Z

24. DPIDA Controller

Table 24-1. DPIDA Block Parameters (Continued)


Name

Description

Type

Accessibility

Default

Units/Range

LOLIND

low output limit indicator

boolean

con/no-set

0 to 1

MEASHI

meas high alarm indicator

boolean

con/no-set

0 to 1

MEASLI

meas lo alarm indicator

boolean

con/no-set

0 to 1

OUT

output

real

con/no-set

0.0

RO1

PRTYPE

priority type

integer

con/no-set

0 to 10

QALSTA

quality status

pack_l

con/no-set

0 to FFFFFFFF

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

RI1

UNACK

unacknowledge alarm

boolean

con/no-set

0 to 1

DATA STORES
ACHNGE

alternate change

integer

con/no-set

-32768 to 32767

ALMOPT

alarm options

pack_l

no-con/no-set

0 to FFFFFFFF

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 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 to 3

PRSCON

present control

short

no-con/no-set

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 settable 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:

Bit Number*
(0 to 31)
0
7
696

Configured Alarm Option


When True
Alarm group 1 in use
Alarm group 8 in use

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

8
B24

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Boolean Connection
(B32 to B1)
ALMOPT.B32
ALMOPT.B25

24. DPIDA Controller

B0193AX Rev Z

Bit Number*
(0 to 31)

Configured Alarm Option


When True

16
17
18
19
20
21
22
24
25
27
28

Boolean Connection
(B32 to B1)

Low measurement alarm


High measurement alarm
Low output alarm
High output alarm
Low deviation alarm
High deviation alarm
Bad I/O alarm
Low-low absolute alarm
High-high absolute alarm
Operational error alarm
Out-of-range alarm

ALMOPT.B16
ALMOPT.B15
ALMOPT.B14
ALMOPT.B13
ALMOPT.B12
ALMOPT.B11
ALMOPT.B10
ALMOPT.B8
ALMOPT.B7
ALMOPT.B5
ALMOPT.B4

* Bit 0 is the least significant bit (starting from the right).


Alarm Status is a 32-bit output that is bit-mapped to indicate the blocks
alarm states. The DPIDA block uses the following bits:

0 to 4
5 to 7
16
17
18
19
20
21
22
24
25
28
29

CRIT

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

B23

B22

B21

B20

B19

B18

B17

B16

PRTYPE

LMA

B14

B15
HMA

LOA

B12

B11

B13
HOA

LDA

HDA

B10

B9

BAD

B8

B7

B6

Bit Number*
(0 to 31)

LLA

HHA

B5

B3

B4
OOR

INH

B1

UNACK B2

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

ALMSTA

Name

Description When True

Boolean Connection
(B32 to B1)

PRTYPE**
CRIT**
LMA
HMA
LOA
HOA
LDA
HDA
BAD
LLA
HHA
OOR
INH

Priority type (0 to 25)*


Criticality (0 to 5)*
Low measurement alarm
High measurement alarm
Low output alarm
High output alarm
Low deviation alarm
High deviation alarm
Bad I/O alarm
Low-low absolute alarm
High-high absolute
Out-of-range alarm
Inhibit alarm

----ALMSTA.B16
ALMSTA.B15
ALMSTA.B14
ALMSTA.B13
ALMSTA.B12
ALMSTA.B11
ALMSTA.B10
ALMSTA.B8
ALMSTA.B7
ALMSTA.B4
ALMSTA.B3

697

B0193AX Rev Z

Bit Number*
(0 to 31)
30

24. DPIDA Controller

Name
UNACK

Description When True

Boolean Connection
(B32 to B1)

Unacknowledged alarm

ALMSTA.B2

* Bit 0 is the least significant bit (starting from the right).


** PRTYPE and CRIT are binary values. See PRTYPE and CRIT parameter definitions for values used by the DPIDA block.

698

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

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 Measurement 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 compensation is set by the FFTUNE block.

24. DPIDA Controller

B0193AX Rev Z

Block Status is a 32-bit output, bit-mapped to indicate various block


operational states. The DPIDA block uses the following bits:

0
1
2
4
5
6
7
8
9
10
11
12
14
15
16
17
18
19

MTN
STN
PTN
FOL
CTL
TRK
HLD
FBM
STRK
LR
MA
BAD
UDEF
ON
FTNI
FTN

20
23
24
25
26
27
28
29
30
31

WLCK
MO
FS
LRO
MAO
LOL
HOL
SE
SC
FLB

Manual tune mode**


Self-tune mode**
Pre-tune mode**
Follow mode
Controlling
Tracking
Holding
FBM failure
Setpoint tracking
0 = Local; 1 = Remote
0 = Manual; 1 = Auto
Bad I/O
Undefined
Compound on
Feedforward tune inactive
Feedforward tune active
Not used
Redundant measurement
input deviation limit
Workstation lock
Manual override (panel)
Failsafe
Local/Remote override
Manual/Auto override
Low output limit***
High output limit***
Supervisory enabled
Supervisory control
Supervisory fallback

DEV

B31

B32
MTN

B30

STN

PTN

B28
FOL

3
B29

B27
CTL

B26

B25

TRK

HLD

B22
LR

Description When True

8
B24

B21

Name

STRK B23

B20

MA

B19

B17
ON

BAD

B16

UDEF B18

B15

FTNI

B14

B9
MO

FTN

B8
FS

B13

B7
LRO

DEV

B6
MAO

B11

B5

WLCK B12

B4

LOL

Bit Number*
(0 to 31)

B10

B3

HOL

B2
SC

SE

B1
FLB

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

FBM

BLKSTA

Boolean Connection
(B32 to B1)
BLKSTA.B32
BLKSTA.B31
BLKSTA.B30
BLKSTA.B28
BLKSTA.B27
BLKSTA.B26
BLKSTA.B25
BLKSTA.B24
BLKSTA.B23
BLKSTA.B22
BLKSTA.B21
BLKSTA.B20
BLKSTA.B18
BLKSTA.B17
BLKSTA.B16
BLKSTA.B15
BLKSTA.B14
BLKSTA.B13
BLKSTA.B12
BLKSTA.B9
BLKSTA.B8
BLKSTA.B7
BLKSTA.B6
BLKSTA.B5
BLKSTA.B4
BLKSTA.B3
BLKSTA.B2
BLKSTA.B1

699

B0193AX Rev Z

24. DPIDA Controller

* Bit 0 is the least significant bit (starting from the right).


** These are tuning states for the EXACT tuning algorithm.
*** The controller output is clamped at these limits.
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 751. To provide backward compatibility,
CEOPT defaults to 1. CEOPT has a range of 0 to 2 where:
0=
1=

2=

The block takes no implicit Hold action when it detects a


control error.
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.
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
control error forces the controller to Hold if MA is set to Auto, and it disables 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.

700

CRIT

Criticality is an integer output that indicates the priority, 1 to 5, of the


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

24. DPIDA Controller

B0193AX Rev Z

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 BLKSTA. 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
DELTI2

Change Delta for Input Range 1 or 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 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 blocks compound, change deltas have no
effect.

DELTO1

Change delta for Output Range 1 is a configurable real value that defines
the minimum percent of the output range that triggers change-driven
connections for parameters in the range RO1. The default value is 1.0 percent. If communication is within the same CP that contains the blocks
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.
DESCRP

Descriptor is a user-defined string of up to 32 characters that describes the


blocks function (for example, PLT 3 FURNACE 2 HEATER CONTROL).

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

701

B0193AX Rev Z

702

24. DPIDA Controller

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 consistent 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 provides the engineering units text for the values defined by the range for output 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. Validation 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. (PRITIM = zero is not allowed occurs when PRIBLK = 1.)
W51 Invalid Hardware/Software Type.
W54 ECB does not exist.
W58 Install Error; Delete/Undelete Block.
W59 Duplicate Output Channel.

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 blocks BLKSTA parameter (see
the FBTUNE Block Description).

FFTBLK

Feed Forward Tune BLKSTA is a long integer input that contains the bitmapped value of the connected FFTUNE blocks 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

24. DPIDA Controller

B0193AX Rev Z

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 deviation alarm and set the High Deviation Alarm Indicator, HDAIND, true.

HDATXT

High Deviation Alarm Text is a user-configurable text string of up to 32characters, 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.

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 triggers 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

703

B0193AX Rev Z

704

24. DPIDA Controller

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 whenever 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 substate of Auto, holding the output at its last computed value.

HOLIM

High Output Limit is a real input (range RO1) that specifies the maximum value for the output (OUT). 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).

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.

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.

24. DPIDA Controller

Inhibit When True


Low measurement alarm
High measurement alarm
Low output alarm
High output alarm
Low deviation alarm
High deviation alarm
Bad I/O alarm
Low low absolute alarm
High high absolute alarm

0
B16

B15

B14

B13

B5

B12

B4

0
1
2
3
4
5
6
8
9

B11

B3

Bit Number*
(0 to 15)

10

B10

11

B9

12

B8

13

B7

14

B6

15

B2

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:

B1

INHALM

B0193AX Rev Z

Boolean Connection
(B16 to B1)
INHALM.B16
INHALM.B15
INHALM.B14
INHALM.B13
INHALM.B12
INHALM.B11
INHALM.B10
INHALM.B8
INHALM.B7

* Bit 0 is the least significant bit (starting from the right).


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 compound parameter CINHIB.

INHOPT

Inhibit Option specifies the following actions applying to all block alarms:
0=
1=

2=

3=

When an alarm is inhibited, disable alarm messages but do


not disable alarm detection.
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.
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.
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.

705

B0193AX Rev Z

24. DPIDA Controller

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:

Bit Number*
(0 to 31)

Name

Inhibited When True

16
17
18
19
20
21
22
24
25
28
29

LMA
HMA
LOA
HOA
LDA
HDA
BAD
LLA
HHA
OOR
INH

Low measurement alarm


High measurement alarm
Low output alarm
High output alarm
Low deviation alarm
High deviation alarm
Bad I/O alarm
Low-low absolute alarm
High-high absolute
Out-of-range alarm
Inhibit alarm

0
B32

B31

B30

B29

B28

B27

B26

B25

B23

B22

B21

B20

B19

B18

B17

LMA B16

HMA B15

LOA B14

HOA B13

LDA B12

HDA B11

B9

BAD B10

LLA B8

B6

HHA B7

B5

B3

OOR B4

INH

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

INHSTA

Boolean Connection
(B32 to B1)
ALMSTA.B16
ALMSTA.B15
ALMSTA.B14
ALMSTA.B13
ALMSTA.B12
ALMSTA.B11
ALMSTA.B10
ALMSTA.B8
ALMSTA.B7
ALMSTA.B4
ALMSTA.B3

* Bit 0 is the least significant bit (starting from the right).

INITLR

Initialize Local/Remote is an integer input that specifies the desired state


of the LR input during initialization, where:
0=
1=
2=

Local
Remote
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.

706

24. DPIDA Controller

INITMA

B0193AX Rev Z

Initialize Manual/Auto is a short integer input that specifies the desired


state of the MA input during initialization:
0=
1=
2=

Manual
Auto
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 downstream 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 specifies the initial state of the SE parameter in a block configured for Supervisory 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 minutes. For the PI, PID and NIPID modes, INT is adaptively tuned by the
FBTUNE block, if it is linked to the DPIDA block.

707

B0193AX Rev Z

708

24. DPIDA Controller

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 CompoundName 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:
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 controller, 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 measurement 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-character 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 measurement (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.

24. DPIDA Controller

B0193AX Rev Z

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 blocks parameters are honored only if the requesting
workstations identifier matches the contents of LOCKID.
LOCKID does not lock out sequence code write access to block parameters. Sequence block set requests to any of the blocks parameters are
always honored.
The lock-request message sets LOCKRQ to true and sets LOCKID to the
identifier of the requesting workstation. The lock-release message clears
LOCKRQ and nulls LOCKID.
LOCKID has the format LETTERBUG:DEVNAME, where LETTERBUG 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 identifier of the requesting workstation, and sets the WLCK bit in the BLKSTA parameter. Set requests to any of the blocks parameters are honored
only if the requesting workstations identifier matches the contents of
LOCKID.
LOCKID does not lock out sequence code write access to block parameters. Sequence block set requests to any of the blocks 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.

709

B0193AX Rev Z

24. DPIDA Controller

The LOCSW and REMSW overrides have higher precedence, but LR


remains secured when they are no longer asserted.

710

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 identifies the loop or process associated with the block. 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 = 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 blocks operating state:
0 = Manual
1 = Auto

24. DPIDA Controller

B0193AX Rev Z

In Manual, each DPIDA block output is unsecured, which makes it settable 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 absolute 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
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 Manual 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.

711

B0193AX Rev Z

712

24. DPIDA Controller

MEAS

Measurement is a real input representing the FBMs 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
MEAS03

Measurement 1 to 3 are real inputs representing FBM Channels 1, 2, and


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.

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.

24. DPIDA Controller

B0193AX Rev Z

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 Detection 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
alarms 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 customize 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.
713

B0193AX Rev Z

24. DPIDA Controller

OUTADB

Output Alarm Deadband is a real input that specifies the size of the deadband 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 identical to the value in the set request. Otherwise the request is rejected with a
LOCKED_ACCESS error. Any application can clear OWNER by setting
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 a real 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. For the PI, PID and NIPID
modes, PBAND is adaptively tuned by the FBTUNE block, if it is linked
to the DPIDA block.

PERIOD

Period is an indexed input that dictates the blocks 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
0
1
2
3
4
5
6

Length
0.1 sec
0.5 sec*
1.0 sec
2.0 sec
10 sec
30 sec
1 min

Period
7
8
9
10
11
12
13

Length
10 min
60 min
0.2 sec
5.0 sec**
0.6 sec***
6.0 sec****
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.
714

24. DPIDA Controller

B0193AX Rev Z

*** If the BPC is 0.5 sec., this period is treated internally as 0.5 sec., but
the PERIOD parameter remains 11.
**** If the BPC is not 2.0 sec., this period is treated internally as 5.0 sec.,
but the PERIOD parameter remains 12.
***** Available in CP40, CP40B, and CP60.
PERTIM

Period Time is a real data store value representing the period time of the
DPIDA (shadow) block in seconds.

PHASE

Phase is an integer input that causes the DPIDA (shadow) block to 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. 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.
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 closing 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 measurement 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.

715

B0193AX Rev Z

24. DPIDA Controller

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

716

State

INIT_U

2
3

PRI_OPN
INIT_C

4
5
6
7

PRI_CLS
SUP_INIT
SUP_OPN
SUP_CLS

Description
Unconditional initialization of the primary cascade is in progress.
The primary cascade is open.
Conditional initialization of the primary cascade is in progress.
The primary cascade is closed.
The supervisory cascade is initializing.
The supervisory cascade is open.
The supervisory cascade is closed.

PRSCON

Present Control state is a short integer data store that contains the substates 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.

24. DPIDA Controller

B0193AX Rev Z

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

SELRQ

Select Request is a short integer input that selects one of up to three


redundant measurements for use by the FBM algorithm:
0=
1=
2=
3=

use normal selection based on REDOPT in ECB52 (see


REDOPT in ECB52 Parameter Definitions on page 723.
select analog input channel 1 measurement, if healthy
(REDOPT = 1 or 2).
select analog input channel 2 measurement, if healthy
(REDOPT = 1 or 2).
select analog input channel 3 measurement, if healthy
(REDOPT = 2).

SELST

Select Status is a short integer input that indicates which of the three
redundant measurements is being used by the FBM algorithm, depending
on the value of SELRQ:
1 = analog input channel 1 is selected
2 = analog input channel 2 is selected
3 = analog input channel 3 is selected
If SELRQ is set to 0, SELST is set to 1.

SPCLMP

Setpoint Clamp is a configurable short integer that specifies the limits to


be used when clamping or limiting the Supervisory setpoint (SUP_IN),
Remote setpoint (RSP), and local setpoint (SPT).
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.

717

B0193AX Rev Z

24. DPIDA Controller

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 process, 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.

SPROPT

Setpoint Option is a configurable short integer input that specifies the setpoint ramping option:
0=
1=
2=
3=
4=

no setpoint ramping.
ramp using SPRATE as ramp rate (units/minutes).
ramp using SPRATE as ramp rate; do not ramp on deviation
alarm.
ramp using SPRATE as ramp time (minutes).
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.
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.
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

718

SetPoint is a real output that always represents the active controller setpoint that is compared with the MEAS input to produce the ERROR signal. LR determines the source of SPT.

24. DPIDA Controller

B0193AX Rev Z

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.)
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 =
-2 =
-1 =
0=
1=
2=
3=
4=
5=
6=

Pretune
Off
Hold last tuning
Quiet, waiting for new (isolated) response
Locating and confirming peak 1
Locating and confirming peak 2
Locating and confirming peak 3
Locating and confirming peak 4
Wait
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 =
-1 =
0=
1=
2=
3=
4=
5=
6=

Off
Hold last tuning
Quiet, waiting for new disturbance
Unmeasured disturbance (or non-isolated response)
Measured disturbance
Significant (isolated) response
Confirmed response
Wait
Settle

States 4, 5, and 6 are bypassed if an FBTUNE extension block is not


active on the DPIDA block.

719

B0193AX Rev Z

24. DPIDA Controller

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.

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
Bit 13 = 1
Bit 14 = 1
Bit 13 = 1 and Bit 14 =1

Initialize SUP_IN
SUP_IN is limited high
SUP_IN is limited low
Supervisory cascade is open

SUPBCO is not configurable and can only be accessed by an application


program.

720

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 application:
0 = No Supervisory control
1 = Set Point Control (SPC) of the blocks 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.

24. DPIDA Controller

B0193AX Rev Z

SUP_IN

Supervisory Input is a real output that is the parameter set by a Supervisory application when performing supervisory control of this blocks setpoint. SUP_IN also contains a status bit (Bit 10) that must be set by the
supervisor to acknowledge a request to initialize (Bit 10 in SUPBCO).

TRACK

Track is a real input that provides the input signal that the block output
(OUT) tracks when the block is in Auto and TRKENL is set to 1.

TRKENL

Track Enable is a boolean input that enables the block output to follow
the TRACK input.
0 = disable tracking
1 = enable tracking

TYPE

Type is a system-level mnemonic label indicating the block type. Enter


DPIDA or select DPIDA from the block type list under Show when
configuring the block.

UNACK

Unacknowledge is a boolean output that the block sets to true when it


detects an alarm. It is typically reset by operator action.

721

B0193AX Rev Z

24. DPIDA Controller

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 723.
Table 24-2. ECB52 Parameters
Name

Description

Type

Accessibility

Default

Units/Range

bool

no-con/no-set

---

Configured Parameters - INPUTS


ATC

air-to-close

CHAREN

characterize enable

boolean

no-con/no-set

0 to 1

CYCTIM

FBM cycle time

short

no-con/set

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 to 1

FLTTIM

filter time

short

no-con/set

0 to CYCTIM

FS5DPD

failsafe value

integer

no-con/no-set

0 to 64000

FSDLAY

failsafe delay

long

no-con/no-set

1000

10 ms units

FSENAB

failsafe enable

short

no-con/no-set

0 to 1

FSMMPD

failsafe mask main

short

no-con/no-set

0 to 255

FSOPT

failsafe option

short

no-con/no-set

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

4, 17, or 22

INVDFI

invert device fail

boolean

no-con/no-set

0 to 1

LMSCAL

low meas scale

integer

no-con/no-set

0 to 64000

LORVAL

lo out-of-range val

integer

no-con/no-set

0 to 64000

LOSCAL

low output scale

integer

no-con/no-set

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 t0 9

OORENB

out-of-range enable

boolean

no-con/no-set

0 to 1

PERIOD

block sample time

short

no-con/no-set

0 to 9

PHASE

block execute phase

integer

no-con/no-set

see param def

PNLOPT

panel option

boolean

no-con/set

0 to 1

REDOPT

redundancy option

short

no-con/no-set

0 to 2

SQRENB

square root enable

boolean

no-con/no-set

0 to 1

SWTYPE

software type

short

no-con/no-set

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

-32768 to 32767

ECBSTA

ECB status

pack_l

con/no-set

0x00...0

0 to 0xFFFFFFFF

ACTION

equip act request

pack_b

no-con/set

0 to 100

BUSWDS

bus switch disable

short

no-con/no-set

0 to 1

DATA STORES

722

24. DPIDA Controller

B0193AX Rev Z

Table 24-2. ECB52 Parameters (Continued)


Name

Description

Type

Accessibility

Default

Units/Range

CYCLE

actual cycle time

short

no-con/no-set

0, 2 to 10

DEFINE

no config errors

boolean

no-con/no-set

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

---

NR_OUT

# of outputs

short

no-con/no-set

---

LADDR

logical address

short

no-con/no-set

255

0 to 255

OF_INP

offset of input

integer

no-con/no-set

---

OF_OUT

offset of outs

integer

no-con/no-set

---

OPSTAT

operational status

short

no-con/no-set

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

Bit Number
(0 to 15)
0
1
2
3
4
5
6

Description When True


ON_LINE
OFF_LINE
RUN_DIAG
DOWNLOAD
CALIB1 #
CALIB2 #
UNDECLAR_ECB

0
B16

B15

B14

B13

B12

B11

10

B10

11

B9

12

B8

13

B7

14

B6

B1

15

B5

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 particular FBM:

B4

ACTION

B3

Alternate Change is an integer output that is incremented each time a settable parameter is changed externally. It wraps around from 32767 to
-32768.

B2

ACHNGE

Boolean Connection
(B16 to B1)
ACTION.B16
ACTION.B15
ACTION.B14
ACTION.B13
ACTION.B12
ACTION.B11
ACTION.B10

* Bit 0 is the least significant bit (starting from the right).


NOTE

Do not set ACTION with an application program.

723

B0193AX Rev Z

24. DPIDA Controller

ATC

Air-To-Close is a boolean input that specifies reversing the controller output 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 characterizer.
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 loading is greater than the configured CYCTIM allows, the controller adaptively 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
0 (default)
2
3
4
5

Time (ms)
50
10
15
20
25

Value
6
7
8
9
10

Time (ms)
30
35
40
45
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

724

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

24. DPIDA Controller

B0193AX Rev Z

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


blocks function (for example, COMPRESSOR 3 SURGE CONTROL).

DEV_ID

Device Identifier is a character array that specifies the 6-character letterbug identifier of the connected FBM.

ECBSTA

ECB Status is a 32-bit output, bit-mapped to indicate various block operational states. For the ECB52 block, the following bits are used:

Bit Number
(0 to 31)
0
1
8
9
14
15

Description When True


ECB is on-scan
Device is shutdown
Device is not ready
Communications failed
ECB is undefined
ECB is on

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

B24

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Boolean Connection
(B32 to B1)
ECBSTA.B32
ECBSTA.B31
ECBSTA.B24
ECBSTA.B23
ECBSTA.B18
ECBSTA.B17

ERCODE

Error Code is a string data store that indicates the type of configuration
error that caused the blocks 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 sampling windows for analog conversion averaging:
0=
1=

FLTTIM

average over two sampling windows to provide anti-alias


filtering (default)
average over one sampling window

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
0 (default)
1

Time (ms)
CYCTIM
5

Value
6
7

Time (ms)
30
35

725

B0193AX Rev Z

24. DPIDA Controller

Value

Time (ms)
10
15
20
25

2
3
4
5

Value

Time (ms)
40
45
50

8
9
10

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

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

8
B24

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

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, heartbeat, 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 communication 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

726

24. DPIDA Controller

B0193AX Rev Z

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 controller 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 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%.

727

B0193AX Rev Z

24. DPIDA Controller

LORVAL

Low-Out-of-Range Value is an integer input that specifies the low limit


for range checking of the FBM measurement inputs MEASn configured
by REDOPT. If OORENB is set true and a measurement is less than this
limit, its status is set Bad.

LOSCAL

Low Output Scale is an integer input (0 to 64000) that specifies the FBM
count value (default = 0) that represents an output value of 0.0%.

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 number of X, Y coordinates (default= 2) for characterizing the selected measurement.

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 measurement inputs configured by REDOPT.

OPSTAT

Module Operational Status is a short integer data store that indicates the
following FBM operational status:
Value
0
1
2
3
4
5
6
7
8

Device failed
Communications failed
Ride through
Go maintenance off
Go ECB off
Going on
Module OK
Maintenance off
ECB off

OUOM01

Output Message Index 0 is a short integer data store that specifies the offset 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
0
1
2

728

Definition

Length
0.1 sec
0.5 sec*
1.0 sec

Period
7
8
9

Length
10 min
60 min
0.2 sec

24. DPIDA Controller

B0193AX Rev Z

Period

Length

3
4
5
6

Period

2.0 sec
10 sec
30 sec
1 min

Length

10
11
12
13

5.0 sec**
0.6 sec***
6.0 sec****
0.05 sec*****

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

Phase is an integer input that causes the block to execute at a specific BPC
within the time determined by the PERIOD. For 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 document (B0700AG or B0193AW).

PNLOPT

Panel Option is a boolean input that specifies the use of the local operators panel (Foxboro Deutschland) for manual operation of the controller
output in an FBM17.
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 connectable output parameter. Available bits for this block are provided below.

Bit
Number1
30

Definition
Alarms Unacknowledged

Contents
ALMSTA.UNA

0
B32

1
B31

2
B30

3
B29

4
B28

5
B27

6
B26

7
B25

8
B24

B23

B22

B21

B20

B19

B18

B17

B16

B15

B14

B13

B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Boolean Connection
(B32 to B1)
QALSTA.B2

729

B0193AX Rev Z

24. DPIDA Controller

Bit
Number1
29
25
24
21
20
19
18
17
16
5
4
3
2
1
0
1.

730

Definition

Contents

Alarms Inhibited
High-High Absolute Alarm
Low-Low Absolute Alarm
High Deviation Alarm
Low Deviation Alarm
High Output Alarm
Low Output Alarm
High Absolute Alarm
Low Absolute Alarm
Manual
Low Limited
High Limited
Uncertain
Out-of-Service
Bad

ALMSTA.INH
ALMSTA.HHA
ALMSTA.LLA
ALMSTA.HDA
ALMSTA.LDA
ALMSTA.HOA
ALMSTA.LOA
ALMSTA.HMA
ALMSTA.LMA
BLKSTA.MA
MEAS.LLO status
MEAS.LHI status
MEAS.ERR status
MEAS.OOS status
MEAS.BAD status

Boolean Connection
(B32 to B1)
QALSTA.B3
QALSTA.B7
QALSTA.B8
QALSTA.B11
QALSTA.B12
QALSTA.B13
QALSTA.B14
QALSTA.B15
QALSTA.B16
QALSTA.B27
QALSTA.B28
QALSTA.B29
QALSTA.B30
QALSTA.B31
QALSTA.B32

Bit 0 is the least significant bit (starting from the right).

REDOPT

Redundancy Option is a short integer input that specifies redundant measurement inputs MEASn for FBM04 and FBM17:
0 = no redundancy (default; channel 1 only)
1 = dual redundancy (channels 1 and 2)
2 = triple redundancy (channels 1, 2 and 3)

SQRENB

Square Root Enable is a boolean input that enables or disables application


of the square root function to the scaled measurement.
0 = Disable (default)
1 = Enable

SWREV

Software Revision is the revision level of the FBM software type ECB52.
Once SWREV is set, it cannot be edited via the Integrated Control Configurator.

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 configuring the block.

X_1PD to X_9PD

Integer input coordinate values for an 8-segment characterizer that conditions the selected measurement when CHAREN is set true. The values

24. DPIDA Controller

B0193AX Rev Z

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 conditions 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 information 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)
3. Remote switch (REMSW)
4. Local setpoint (LOCSP)
5. Local or Remote (LR).

731

732

Figure 24-2. PIDA Controller Detailed Functional Diagram

cd

SPT

dy
I ------ + y = x = input
dt

DPIDA

Add

Mult

FFTUNE
block linked

Linearize

dc f
D -------dt

e
100
---------- e g
P

ep
+

f bb f r

m
x

fbb

fr

OSV

fb b

mf

Clamp

Scale

Yes

No

fb

Hold
Track

Manual
mb Auto

Scale

BIAS KBIAS,
BBIAS

Limit .

ml

Local
Panel
Ramp
MA

HOSCAL
LOSCAL

Scale

ms

Scale

OSV

Bad I/O
Detection

MA, MBADOP,
BAO
MANSW, AUTSW

MA, TRACK HOLD,


HOLIM, HSCO1,
MODOPT
BCALCO LOLIM LSCO1 MCOPT
TRKENL

fbr

Lag

PBAND* INT* MEAS

ECB52

Using

FBM

eg

CHAREN

Characterize

REDOPT
LMSCAL
Nine X, Y
HMSCAL
SQRENB Values

cf

rf

1
y = --- ( x ( t ) y ( t ) ) dt + y 0 = output
I

Enable

Disable

Track

Remote

Local

Gain Compensator

Ramp

LR, LOCSP, LOCSW, SUPOPT, HZONE, LZONE, HSCIN, MULTIN


REMSW, STRKOP
SE
KZONE, NONLOP LSCIN

Lag:

rf

Scale

Butterworth
Filter
c

1.0

*From FBTUNE block, if connected

meas3

meas2

SELRQ
meas1

DERIV*
KD*

MODOPT

SPLLAG*

Scale, Limit

Scale, Limit

RSP

SUP_IN

Scale, Limit

SPT

HSCI1, LSCI1, SPHLIM, SPROPT, SPTARG,


SPRAMP, SPRATE
SPLLIM, SPCLMP

OUT2

Control
Output

OUT

BAD

B0193AX Rev Z
24. DPIDA Controller

24. DPIDA Controller

B0193AX Rev Z

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 745 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 display 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
A
b
c
cf
cd
ci
D
e
eg
ep
fr
fb
fbb
fbr
I
KD
Kz

Description
Setpoint lead/lag ratio (SPLLAG)
b = KBIAS (BIAS + BBIAS)
Controlled variable selected measurement
Butterworth filtered measurement
Derivative filtered cf
Integral filtered cd
Derivative time (DERIV)
Control error
Nonlinear gain adjusted e
Proportional filtered eg
Scaled MULTIN
Feedback from controller output
fbb = fb - b
fbr = fbb - fr
Integral time (INT)
Derivative gain (KD)
Zone gain for nonlinear gain
733

B0193AX Rev Z

24. DPIDA Controller

Table 24-3. FBM Variables (Continued)

Variable
m
mf
mb
ml
ms
meas1
meas2
meas3
P
r
rf
t
x
y

Description
Manipulated variable
mf = m fr
mb = mf + b
Limited mb
ms = 6400 (ml - LOSCAL / HOSCAL - LOSCAL)
Measurement 1
Measurement 2
Measurement 3
Proportional band (PBAND)
Selected setpoint
Compensated setpoint
Time constant
Lag input
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 Z

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 --- f r
P Is
Is
D
= ------KD

In the above expressions:


c
c f = -----------------------------------------2
1 + s + 0.5 ( s )
735

B0193AX Rev Z

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):


t

1
m b = --- ( r c f ) dt f r + b
I 0

Proportional and derivative (PD):


dc f
100
m b = --------- r c f + D ------- f r + b
dt
P
D
= ------KD

Proportional and integral (PI):


t

100 1
m b = --------- --- ( r c f ) dt + Ar c f r + b
P I 0

Proportional, integral, and derivative (PID):


dc f
100 1 t
D
m b = --------- --- ( r c f ) dt + Ar 1 + ---- c f D ------- f r + b
dt
P I 0
I
1--- = 1--- + --1- K

I D D

Non-interacting PID (NIPID):


dc f
100 1 t
m b = --------- --- ( r c f ) dt + Ar c f D ------- f r + b
dt
P I 0
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 Z

NOTE

The above expression for cf can also be expressed as two simultaneous integral equations, 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
Measurement filtering
Setpoint compensation
Nonlinear gain
Multiplicative input MULTIN
Bias input BIAS
FFTUNE feedforward tuning
FBTUNE feedback tuning

PD

PI

X
X
X
X

X
X
X

X
X
X

X
X
X
X
X
X

PID
X
X
X
X
X
X
X

NIPID
X
X
X
X
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 Display.

737

B0193AX Rev Z

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 automatic 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 757).
If all measurement inputs are bad, the MEAS.BAD status is set true and the controller automatically 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
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
is set false, a control error forces the controller to Hold if MA is set to Auto, and it disables setpoint tracking if SPTRKOP is set true.

738

24. DPIDA Controller

B0193AX Rev Z

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 calculation and holds the output at the last good value. If the controller experiences an open loop condition, 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 Transfers 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 initialization, the acknowledgement is not required and a Hold of one cycle only occurs.
If you set the PRIBLK parameter in the DPIDA block to 1, the user must use PRITIM to hold
the blocks output for x seconds (PRITIM=x) during a manual to automatic mode change.
However, the warning W48 - INVALID BLOCK OPTION appears when you configure
PRITIM to 0.0 and PRIBLK to 1. To resolve this error, set PRITIM to be greater than 0 seconds.

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

739

B0193AX Rev Z

24. DPIDA Controller

24.6.2.9 Cascade Handling


DPIDA Key Parameters: BCALCO, BLKSTA, CEOPT, INCOPT, MEAS, PRIBLK, RSP, SPT
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
MEAS

PID
Block

OUT

PRIBLK = 1
RSP
MEAS

FBK
BCALCI

BCALCO

Figure 24-3. Cascade Configuration (Typical)

740

DPIDA

24. DPIDA Controller

B0193AX Rev Z

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 connected 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 initialization, 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 blocks 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 Controlling substate of Auto to resume closed loop control.
The PRIBLK option allows a downstream block to initialize before the uptream block has
matched its output to its BCALCI input. The PRIBLK feature is needed if the upstream blocks
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.

741

B0193AX Rev Z

24. DPIDA Controller

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 output span variance parameter OSV. If you set HOLIM less than LOLIM, then HOLIM is automatically 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.
When MCLOPT is true, the computed controller output (ml) value undergoes limiting as above.
If MCLOPT is 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 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.

742

24. DPIDA Controller

B0193AX Rev Z

Table 24-5. FBM I/O Variable Scaling

FBM Variable
A
----D
----holim
hzone
I
K
kzone
lolim
lzone
ml
meas1
meas2
meas3
P
r
track

Description
Setpoint lead/lag ratio
--Controlled variable measurement
Derivative time
----High output limit clamped to RO1
Zone high limit for nonlinear gain
Integral time
Derivative gain
Gain for nonlinear zone
Low output limit clamped to RO1
Zone low limit for nonlinear gain
Manipulated variable limited
Measurement 1
Measurement 2
Measurement 3
Proportional band
Selected setpoint
Track input

Unit Range
0 to 1
RO1
RI1
minutes
RIN
%
RO1
0 to 100%
minutes
0.1 to 100.0
--RO1
0 to 100%
RO1
RI1
RI1
RI1
%
RI1
RO1

CP Related Parameter
SPLLAG
BIAS
MEAS
DERIV
MULTIN
OUT2
HOLIM
HZONE
INT
KD
KZONE
LOLIM
LZONE
OUT
MEAS1
MEAS2
MEAS3
PBAND
SPT
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.

743

B0193AX Rev Z

24. DPIDA Controller

1.1

Input Step

1.0
.9
.8

Output

.7
.6

= DERIV / KD = 0.1 s

.5
.4
.3
.2
.1
0

.1

.2

.3

.4

.5
.6
Time (s)

.7

.8

.9

1.0

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.5s
Measurement filtering can be useful even when derivative action is not used, such as when the
process has a high frequency resonance. In this case, choose DERIV to have a small nonzero value
and KD to have a value less than one, such that the filter time constant
(DERIV / KD) is large enough to provide significant attenuation at the resonant frequency. The
range of KD is restricted to be not less than 0.1 and not greater than 100.
In all control modes, the measurement (c) is fed through a Butterworth filter. For the P, I, and PI
control modes, the derivative time (DERIV) is set to 0, thus providing no measurement filtering.

744

24. DPIDA Controller

B0193AX Rev Z

A noisy is measurement requires proper filtering to remove unwanted noise:


Use anti-alias filtering with CYCTIM and FILTIM set to 50 ms. Faster cycle times
can cause problems (see Controller Cycle Time and Measurement Sampling on
page 756).
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 setpoint. 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.
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 controller 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 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 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.

745

B0193AX Rev Z

24. DPIDA Controller

Supervisory
Application

Operator
Displays

SUPBCO
SUP_IN
SE
LR
SUPOPT

MEAS

PID
Block

OUT

DPIDA
Block

RSP
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.
Local/Remote Overrides
DPIDA Key Parameters: INITLR, LOCSP, LOCSW, LR, REMSW
When the Local switch (LOCSW) override is true, it sets LR to false (Local) and secures it.
LOCSW has priority over REMSW, INITLR, and LOCSP. If both LOCSW and REMSW are
true, LR is set to Local.
When the Remote switch (REMSW) override is true, it sets LR to true (Remote) and secures it.
REMSW has priority over INITLR and LOCSP.
Setpoint State
DPIDA Key Parameters: INITLR, LOCSW, LR, MEAS, REMSW, SPT, STRKOP, TRKENL
The setpoint states are:
Remote
Tracking
Local.
The INITLR, REMSW, and LOCSW overrides are applied to the LR parameter as described
above and in Block Initialization on page 755.
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.
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 immediately displayed on the faceplate of the Block Detail Display.
Setpoint Limiting
DPIDA Key Parameters: HSCI1, LSCI1, SPCLMP, SPHLIM, SPLLIM
746

24. DPIDA Controller

B0193AX Rev Z

The setpoints limits are clamped as follows.


If SPLLIM < LSCI1, it is set to LSCI1.
If SPLLIM > HSCI1, it is set to HSCI1.
If SPHLIM < SPLLIM, it is set to SPLLIM.
If SPHLIM > HSCI1, it is set to HSCI1.
If SPCLMP = 0, and the setpoint state is Supervisory, Remote, or Tracking, the SUP_IN/RSP
value is clamped as follows:
If SUP_IN/RSP <= LSCI1, it is set to LSCI1
If SUP_IN/RSP >= HSCI1, it is set to HSCI1.
If SPCLMP = 0 and the setpoint state is Local, the SPT value is clamped as follows:
If SPT <= SPLLIM, it is set to SPLLIM.
If SPT >= SPHLIM, it is set to SPHLIM.
If SPCLMP = 1, the SPT value in Local mode (RSP in Remote mode, SUP_IN in Supervisory
mode) is clamped as follows:
If SPT/RSP/SUP_IN <= SPLLIM, it is set to SPLLIM.
If SPT/RSP?SUP_IN >= SPHLIM, it is set to SPHLIM.
If SPCLMP = 2, an attempt to set SPT in Local mode (RSP in Remote mode, SUP_IN in Supervisory mode) less than SPLLIM or greater than SPHLIM via an OM Setval or OM Write operation will be rejected with an OUT_OF_RANGE error code. If RSP has a source connection, it is
clamped as follows:
If RSP <= SPLLIM, it is set to SPLLIM.
If RSP >= SPHLIM, it is set to SPHLIM.
Setpoint Gain Compensation
DPIDA Key Parameters: INT, SPLLAG, SPT
Lead/lag compensation is applied to the setpoint with a user specified lead/lag ratio (SPLLAG see
Figure 24-7). SPLLAG adjustment allows the amount of proportional action applied to the setpoint 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.

747

B0193AX Rev Z

24. DPIDA Controller

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

748

24. DPIDA Controller

B0193AX Rev Z

Setpoint Ramping
DPIDA Key Parameters: SPHLIM, SPLLIM, SPRAMP, SPRATE, SPROPT, SPT, SPTARG
If SPROPT is 1 and LR is Local, the setpoint ramps at the rate SPRATE (units/minute) from its
initial value to SPTARG, following an SPRAMP transition from 0 to 1.
If SPROPT is 2, ramping stops whenever the deviation (MEAS - SPT) is in alarm and continued
setpoint ramping would increase the deviation. If ramping decreases deviation, ramping is not
inhibited.
If SPROPT is 3 and LR is Local, the setpoint ramps from its initial value to SPTARG during the
time period SPRATE (minutes).
If SPROPT is 4, ramping stops whenever the deviation is in alarm and continued setpoint ramping 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

SPROPT
1
2
3
4

Rate
(Units/Minutes)

Time (Minutes)

X
X

Stop on
Deviation Alarm
X

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

749

B0193AX Rev Z

24. DPIDA Controller

40

30

Slope = 1.0
LZONE

HZONE

20
Nonlinear Response

10
Characterized
Control
Error (eg)

Slope = 1.0

Deg

0
Slope = 1.0

De
Slope = KZONE = Deg / De
eg = KZONE e

10

20
30

Linear Response

40
-40

-30

-20

-10

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

750

24. DPIDA Controller

B0193AX Rev Z

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 linear 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 previous 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 connected 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 measurements 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 (LORVAL) 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
Boolean

15
B1

14
B2

13
B3

12
B4

11
B5

10
B6

9
B7

8
B8

7
B9

6
B10

5
B11

4
B12

3
B13

2
B14

1
B15

0
B16

The bit definitions are listed in Table 24-7.

751

B0193AX Rev Z

24. DPIDA Controller

Table 24-7. Status Bit Definitions for Parameter Value Record

Bit Number
(0 to 15)

Name

Definition

BAD
SECURE
INITC/ACK
OOS
SHADOW
LHI
LLO
ERROR/INITU

Data Type:
1 = character
2 = integer
3 = real
4 = string
5 = boolean
6 = long integer
7 = (unused)
8 = short integer
9 = packed boolean
10 = packed long
OM Status:
0 = No Response
1 = On Scan
2 = Disconnect
3 = Deleted
4 = Nonconnect
5 (unused)
6 (unused)
7 = Not sent
Bad I/O
Secure/Release
Initialize Conditional/Acknowledge
Out of Service
Shadow Parameter
Limited High
Limited Low
Error/Initialize Unconditional

0 to 4

5 to 7

8
9
10
11
12
13
14
15

Boolean
Connection
(B16 to B1)
B16 to B12

B11 to B9

B8
B7
B6
B5
B4
B3
B2
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)

752

24. DPIDA Controller

B0193AX Rev Z

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.

753

B0193AX Rev Z

24. DPIDA Controller

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, reconfigured, 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 configured, 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 FBM4,
FBM17, and FBM22.
Engineering Ranges
DPIDA Key Parameters: HSCI1, HSCI2, HSCIN, HSCO1, LSCI1, LSCI2, LSCIN, LSCO1
The block checks the engineering ranges (RI1, RI2,RIN, and RO1) for crossover of the high and
low values. If any high value is less than its corresponding low value, the block sets ERCODE to
INV_ENG_RANGE and enters the undefined state.

754

24. DPIDA Controller

B0193AX Rev Z

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
LR
LR *

Condition

OUT

LOCSP = 1
INITLR = 0
INITLR = 1
INITLR = 2
INITMA = 0
INITMA = 1
INITMA = 2
---

BCALCO
STATEB
STATEF
SPTARG ***

------SPROPT = 1

MA **

Resulting Value
LR = 0 and secured
LR = 0
LR = 1
LR is unchanged
MA = 0
MA = 1
MA is unchanged
OUT = 0 on a cold start.
OUT = present value on a transition to or from Failsafe.
BCALCO = MEAS or SPT depending on the setpoint state.
STATEB = off
STATEF = off
SPTARG = SPT

* If the block is NOT restarting following an on-line upgrade warm start or a turning on of the compound.
** If the block is NOT restarting following an on-line upgrade warm start or a turning on of the compound, 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
755

B0193AX Rev Z

24. DPIDA Controller

The block validates the tuning block connections as it does during initialization (see Validation
Checks on page 754).
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 following important status:
Table 24-9. Status of Critical Parameters

Status
MEAS.OOS = 1
MEAS.BAD = 1
BCALCO.OOS = 1
BCALCO.BAD = 1
MA.OOS = 1

Condition
FBM communications failure
FBM communications failure or bad measurement
FBM communications failure
FBM communications failure or bad measurement
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 setting 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 (CYCTIM) 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 configured 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.

756

24. DPIDA Controller

B0193AX Rev Z

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

Sampling Window

Sampling Window

FLTOPT = 0
FLTIM = 0 or CYCTIM

Sampling Window

FLTOPT = 1

Sampling Window

Time

Sampling Window

FLTOPT = 0
FLTIM < CYCTIM

Sampling Window

FLTOPT = 1
FLTIM < CYCTIM

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 previous 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 window, which provides less filtering.
FLTTIM = 0 sets the sampling window equal to the controller cycle time. This is the optimal setting for almost all cases. FLTTIM ranges from 1 to the value of CYCTIM, and specifies the sampling 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 filtering (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.
757

B0193AX Rev Z

24. DPIDA Controller

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
Linear
Nominal 0 to 10 V dc
4 to 20 mA dc

LMSCAL Count
0
1600
12800

HMSCAL Count
64000
64000
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
758

24. DPIDA Controller

B0193AX Rev Z

bit. Any value greater than 32767 requires that the sign bit be true (1), indicating a negative number. 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
%
0
25
50
75
100

Count Value
12800
25600
38400
51200
64000

(Integer)
12800
25600
-27136
-14336
-1536

(Hexadecimal)
0x3200
0x6400
0x9600
0xC800
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 selection 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.

759

B0193AX Rev Z

24. DPIDA Controller

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 specified 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
Linear
-0.2 to 10.2 V dc
4.0 to 20 mA dc

LOSCAL Count
0
1600
12800

HOSCAL Count
64000
64000
64000

HOSCAL and LOSCAL values range from 0 to 64000 counts. However, you must enter the values 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 values in hexadecimal format. For more information on entering the
values, see Measurement Processing on page 757.

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 fallback/Hold action for the FBM analog output. Failsafe configuration of the remaining FBM outputs is fixed.
FSENAB enables the Failsafe timer and FSDLAY specifies the Failsafe delay time. For more information on Failsafe operation, refer to the appropriate Integrated Control Software Concepts document (B0700AG or B0193AW).
760

24. DPIDA Controller

B0193AX Rev Z

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

24.6.3.5 FBM04 I/O Channels


The FBM04 I/O channels assignments are listed in Table 24-13:
Table 24-13. FBM04 Channel Assignments

Channel
1
2
3
4
5
6
7
8

Description
Analog input
Analog input
Analog input
Analog input
Analog output
Analog output
Analog output
Analog output

Range
0 to 20 mA dc
0 to 20 mA dc
0 to 20 mA dc
0 to 20 mA dc
0 to 20 mA dc
0 to 20 mA dc
0 to 20 mA dc
0 to 20 mA dc

Assignment
Measurement 1
Measurement 2
Measurement 3
Unavailable to user
Control output
Unavailable to user
Unavailable to user
Unavailable to user

24.6.3.6 FBM17 I/O Channels and Operators Panel


ECB52 Key Parameters: PNLOPT, INVDFI
The FBM17 with DPIDA software supports a local operators panel (which can be supplied 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 Manual
(see Figure 24-10).

761

B0193AX Rev Z

24. DPIDA Controller

FBM17
Analog Input 1

Analog Output 1

Measurement

Output
Local Operators 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 (DPIDA) Local Operators Panel Configuration

When PNLOPT is configured true, you can use a a local operators 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.
762

24. DPIDA Controller

B0193AX Rev Z

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. Operationally, 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 Failsafe 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 I/O channels assignments are listed in Table 24-14:
Table 24-14. FBM17 Channel Assignments

Channel
1
2
3
4
5
6
7
8
9
10
11

Description
Analog input
Analog input
Analog input
Analog input
Analog output
Analog output
Digital input
Digital input
Digital input
Digital input
Digital output

Range

Assignment

0 to 10 V dc
0 to 10 V dc
0 to 10 V dc
0 to 10 V dc
0 to 10 V dc
0 to 10 V dc
Open to close
Open to close
Open to close
Open to close
Open to close

Measurement 1
Measurement 2
Measurement 3
Unavailable to user
Control output
FBM Fail Indicator
Ramp up output
Ramp down output
Auto/Manual toggle
Device fail
Unavailable to user

763

B0193AX Rev Z

24. DPIDA Controller

Table 24-14. FBM17 Channel Assignments (Continued)

Channel
12
13
14

Description
Digital output
Digital output
Digital output

Range
Open to close
Open to close
Open to close

Assignment
Unavailable to user
CP Fail
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 indicator 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 Manual, 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
2
7

Description
Analog output
Analog input

Range
0 to 20 mA dc
0 to 20 mA dc

Assignment
Control output
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 compression of process gases or for utility air. Traditionally, surge control schemes have been standalone 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.

764

24. DPIDA Controller

B0193AX Rev Z

Adapter
CALC
User Set Ratio
MATH

AIN

CHARC

RATIO

AIN

DPIDA

ECB52
MEAS
SPT
LOLIM
PBAND
INT

CP
ECB

Period = 0.5 s for all blocks

OUT
FBM
MEAS

PID
Algorithm

Output

Cycle Time = 25 ms

FT

Inlet

PT

PT

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.

765

B0193AX Rev Z

24. DPIDA Controller

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

Control Line

Pressure

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 software-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 setting 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.

766

24. DPIDA Controller

B0193AX Rev Z

NOTE

This application example is not a complete control strategy for compressor surge
control. You must contact The Foxboro Company to design a complete control
strategy for your application.

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 particular 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

767

B0193AX Rev Z

24. DPIDA Controller

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 particular surge control application.

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
Block

Column 3 Value

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

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 to 13

PHASE

block phase number integer

no-con/no-set

---

LOOPID

loopid

string

no-con/set

blank

1 to 32 characters

IOM_ID

FBM reference

string

no-con/no-set

blank

---

Configurable Parameters
INPUTS
NAME

COL_1 to COL_3

column 1 to 3 value real

con/set

0.0

RI1

HSCI1 to HSCI3

high scale 1 to 3

no-con/no-set

100.0

specifiable

real

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 Z

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 to 1

block status

pack_l

con/no-set

bit map

ACHNGE

alternate change

integer

con/no-set

-32768 to 32767

AM_SET

auto/manual set

boolean

con/set

0 to1

AM_STA

auto/manual station boolean

con/set

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

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

1 to 43 chars

LR

local/remote

boolean

con/set

0 to 1

LOCKID

lock identifier

string

no-con/no-set

blank

8 to 13 chars

LOCKRQ

lock request

boolean

no-con/set

0 to 1

MA

manual/auto

boolean

con/set

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 to 1

WP_STA

workstation

boolean

con/set

0 to 1

Non-Configurable Parameters
OUTPUTS
BLKSTA

DATA STORES

25.2.1 Parameter Definitions

770

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.

25. DSI Display Station Interface Block

Block Status is a 32-bit output, bit-mapped to indicate the blocks operational states. For the DSI block, only the following bits are used:

Bit
Number*
(0 to 31)

Name

10
11
12

LR
MA
BAD

14
15
20

UDEF
ON
WLCK

Description When True


Local(= false)/Remote(= true)
Manual(= false)/Auto(= true)
Bad I/O (I/O Blocks only block in BAD state)
Undefined
Compound On
Workstation Lock

0
B32

B31

B30

B29

B28

B27

B26

B22
LR

B25

B21
MA

B23

B20

B19

BAD

B17

UDEF B18

B16

ON

B15

B14

B13

B11

WLCK B12

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

B24

BLKSTA

B0193AX Rev Z

Boolean
Connection
(B32 to B1)
BLKSTA.B22
BLKSTA.B21
BLKSTA.B20
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12

* Bit 0 is the least significant bit (starting from the right).


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 indicators.
DEFINE

Define is a data store which indicates the presence or absence of configuration errors. The default is 1 (no configuration errors). When the block initializes, 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 connections 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 Z

25. DSI Display Station Interface Block

same CP that contains the blocks compound, change deltas have no


effect.
DESCRP

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


the blocks function (for example, PLT 3 FURNACE 2 HEATER
CONTROL) .

DEV_ID

Device Identifier is a character array that specifies the 6-character letterbug 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 parameters HSCI1 to HSCI3, LSCI1 to LSCI3, and DELTI1 to DELTI3, provide 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 blocks
DEFINE parameter to be set false, but not the warning situations. Validation of configuration errors does not proceed past the first error encountered 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
W43 INVALID PERIOD/
PHASE COMBINATION

W44 INVALID
ENGINEERING RANGE
W46 INVALID INPUT
CONNECTION

W48 INVALID BLOCK


OPTION
W53 INVALID
PARAMETER VALUE
W58 INSTALL ERROR;
DELETE/UNDELETE
BLOCK
772

Value
PHASE does not exist for given block
PERIOD, or block PERIOD not
compatible with compound
PERIOD.
High range value is less than or equal
to low range value.
The source parameter specified in the
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.
The configured value of a block
option is illegal.
A parameter value is not in the acceptable range.
A Database Installer error has
occurred.

25. DSI Display Station Interface Block

B0193AX Rev Z

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 CompoundName 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-character 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 displays. 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 blocks
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 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.

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.

LR_STA

Local/Remote input is displayed as the LR indicator on the DSI display


station.

773

B0193AX Rev Z

25. DSI Display Station Interface Block

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 measurement value, the block computes the output according to its specific algorithm. 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 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.

PERIOD

Period is an indexed input that dictates the blocks 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
0
1
2
3
4
5
6

Length
0.1 sec
0.5 sec*
1.0 sec
2.0 sec
10 sec
30 sec
1 min

Period
7
8
9
10
11
12
13

Length
10 min
60 min
0.2 sec
5.0 sec**
0.6 sec***
6.0 sec****
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

774

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 Control Processor is 0.5 sec. Refer to the appropriate Integrated Control Software Concepts document (B0700AG or B0193AW).

25. DSI Display Station Interface Block

B0193AX Rev Z

RI1 to RI3

Range Input is an array of real values that specify the high and low engineering 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 Stations indicators via the
ECB14 assigned to that specific Display Station.
FIELDBUS

Control
Processor

NOEDBUS

FBM001

CONTROL
PROCESSOR 30
40, or 40B

See DP10, CP30,


CP40 or CP40B
Figure 20-3

up to 48 FBMs (CP10)
up to 64 FBMs (CP30,CP40
and CP40B)
FBM002
FBM032

FIELDBUS
DP1S01

up to 24 Display Stations
DP1S02

FIELDBUS

up to 24 Display Stations

DISPLAY
PROCESSOR 10
DP1S01

DP1S24

DP1S02

DP1S24

Figure 25-2. System with Display Station Capability

775

B0193AX Rev Z

to/from
other CPs

25. DSI Display Station Interface Block

PANEL DISPLAY PROCESSOR, CP30, CP40, or CP40B DISPLAY STATIONS


for DP1S01
DSI Block

ECB14

DP1S01

DP1S23
up to 24 DSs

NODEBUS

FIELDBUS
for DP1S02
DSI Block

DP1S02

DP1S24

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 oversees 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 countsvalue 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.
776

25. DSI Display Station Interface Block

B0193AX Rev Z

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 algorithm.
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 fieldbus. The absence or presence of the AMS and its peripheral components have no effect on the
DSI block.

777

B0193AX Rev Z

778

25. DSI Display Station Interface Block

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, transport 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
Deadtime
Follow
Hold
Running Average Disable

DTIME
BLOCK

Output
Block Status
Data Collection Flag

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 blocks input, and the linear interpolation in the blocks output.
NUMBKT, Number of Buckets, specifies the number of buckets for storing intermediate deadtime values.

779

B0193AX Rev Z

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

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

0 to 13

PHASE

block phase number integer

no-con/no-set

---

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

Configurable Parameters
INPUTS
NAME

PROPT

propagate error

boolean

no-con/no-set

0 to 1

DTOPT

dead time option

boolean

no-con/no-set

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 to 1

INITMA

initialize MA

short

no-con/no-set

[0|1|2]

FOLLOW

follow mode

boolean

con/set

0 to 1

HOLD

hold mode

boolean

con/set

0 to 1

CEOPT

control error option

short

no-con/no-set

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

bit map

DTFLAG

deadtime flag

integer

con/no-set

0 to 32767

OUT

output

real

con/no-set

0.0

RO1

ACHNGE

alternate change

integer

con/no-set

-32768 to 32767

DEFINE

no config errors

boolean

no-con/no-set

0 to 1

DTCYCL

dead time in cycles

real

no-con/no-set

1.0

---

DATA STORES

780

26. DTIME Dead Time Compensator Block

B0193AX Rev Z

Table 26-1. DTIME Block Parameters (Continued)


Name

Description

Type

Accessibility

Default

Units/Range

ERCODE

config error

string

no-con/no-set

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 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 blocks operational states. For the DTIME block, only the following bits are used:

Bit
Number*
(0 to 31)
4
7
11
14
15
20

Name

Description When True

FOL
HLD
MA
UDEF
ON
WLCK

Follow
Holding
Manual(= false)/Auto(= true)
Undefined
Compound On
Workstation Lock

0
B32

1
B31

2
B30

B29

B28

FOL

5
B27

6
B26

B25

HLD

8
B24

B23

B22

B20

B21
MA

B19

B17

UDEF B18

ON

B16

B15

B14

B13

WLCK B12

B11

B10

B9

B8

B7

B6

B5

B4

B3

B2

B1

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9

Boolean
Connection
(B32 to B1)
BLKSTA.B28
BLKSTA.B25
BLKSTA.B21
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12

* Bit 0 is the least significant bit (starting from the right).

781

B0193AX Rev Z

CEOPT

26. DTIME Dead Time Compensator Block

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=
1=

2=

The block takes no implicit Hold action when it detects a control error.
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.
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).

782

DEFINE

Define is a data store which indicates the presence or absence of configuration errors. The default is 1 (no configuration errors). When the block initializes, 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 blocks compound, change deltas have no
effect.

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


blocks function (for example, PLT 3 FURNACE 2 HEATER CONTROL).

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 connect it to a block to provide varying delay times, as long as the DT value
remains equal to or greater than the block period.

DTCYCL

Dead Time Cycles is a real parameter representing the deadtime of the


block calculated in block cycles.

26. DTIME Dead Time Compensator Block

B0193AX Rev Z

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 blocks input, and the linear interpolation in the blocks 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 blocks
DEFINE parameter to be set false, but not the warning situations. Validation of configuration errors does not proceed past the first error encountered 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
W43 INVALID PERIOD/
PHASE COMBINATION
W44 INVALID
ENGINEERING RANGE
W46 INVALID INPUT
CONNECTION

W48 INVALID BLOCK


OPTION
W53 INVALID
PARAMETER VALUE
W58 INSTALL ERROR;
DELETE/UNDELETE
BLOCK
FOLLOW

Value
PHASE does not exist for given block
PERIOD, or block PERIOD not
compatible with compound PERIOD.
High range value is less than or equal
to low range value.
The source parameter specified in the
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.
The configured value of a block option
is illegal.
A parameter value is not in the acceptable range.
A Database Installer error has
occurred.

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.

783

B0193AX Rev Z

784

26. DTIME Dead Time Compensator Block

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 configurator. (The block does not assert INITMA on ordinary
reconfiguration.)
INITMA is ignored if MA has an established linkage.

LOCKID

Lock Identifier is a string identifying the workstation which has locked


access to the block via a successful setting of LOCKRQ. LOCKID has the
format LETTERBUG:DEVNAME, where LETTERBUG is the 6-character 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 displays. 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 blocks
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.

LOOPID

Loop Identifier is a configurable 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.

26. DTIME Dead Time Compensator Block

B0193AX Rev Z

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

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 specific algorithm. 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 program can then set the output to a desired value.

MEAS

Measurement is an input identifying the source of the blocks 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 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 blocks execution time base
and allowable PHASE values. For stations other than gateways, PERIOD
values range from 0 to 13 and map to the following period time lengths.
(Gateway blocks have different period values than shown here.)
Period
0
1
2
3

Length
0.1 sec
0.5 sec*
1.0 sec
2.0 sec

Period
7
8
9
10

Length
10 min
60 min
0.2 sec
5.0 sec**
785

B0193AX Rev Z

26. DTIME Dead Time Compensator Block

Period
4
5
6

Length
10 sec
30 sec
1 min

Period
11
12
13

Length
0.6 sec***
6.0 sec****
0.05 sec*****

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

786

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 Control Processor is 0.5 sec. Refer to the appropriate Integrated Control Software 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 engineering 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 engineering 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 designated range.

26. DTIME Dead Time Compensator Block

TYPE

B0193AX Rev Z

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 feature is inoperable.
A transition from Manual-to-Auto mode forces all deadtime dynamics to vanish so that the measurement immediately appears at the output.
In Auto, the block performs deadtime compensation if the FOLLOW input is false. If the FOLLOW 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 elements, 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
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.

787

B0193AX Rev Z

26. DTIME Dead Time Compensator Block

Bucket Brigade

MEAS (t)

1
st

st
MEAS (t) dt

MEAS
(k * st)

bk
(n)

bk
(n-1)
st
*

bk
(2)

***
st
*

st
*

bk
(1)
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.
A transition from Manual-to-Auto forces all deadtime dynamics to vanish so that the measurement immediately appears at the output and the signal begins the delay at the moment of transition. 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 output (via Object Manager SET commands) by ramping the output at the faceplate or by making a
Direct Data Entry.

788

You might also like