Professional Documents
Culture Documents
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
789
795
803
811
iii
B0193AX Rev Z
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
1137
1149
1165
1181
1195
iv
B0193AX Rev Z
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
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
25
25
26
26
27
29
44
44
45
45
48
50
52
53
53
vii
B0193AX Rev Z
Contents
55
56
57
57
58
59
60
60
60
60
61
61
62
62
62
63
65
66
67
67
68
70
70
71
71
72
73
Contents
B0193AX Rev Z
110
111
111
112
112
112
112
113
113
113
114
115
116
117
117
118
120
120
120
120
122
123
125
125
125
125
126
130
130
130
130
130
130
130
131
133
133
134
134
135
137
152
152
153
ix
B0193AX Rev Z
Contents
154
155
156
157
158
158
159
161
161
162
163
163
163
164
165
165
166
166
167
168
169
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
209
209
209
210
211
214
232
232
234
236
237
237
238
238
240
252
252
252
253
253
254
254
254
255
255
255
256
256
257
257
257
260
260
262
276
276
xi
B0193AX Rev Z
Contents
276
277
277
278
279
280
280
280
280
281
281
282
282
283
285
285
285
285
286
286
293
293
295
295
295
296
296
296
299
299
300
301
302
303
315
315
315
316
316
317
317
318
318
xii
Contents
B0193AX Rev Z
319
320
320
320
320
321
321
321
321
322
322
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
353
353
354
354
355
xiii
B0193AX Rev Z
Contents
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
433
433
434
435
435
436
441
441
443
443
444
445
445
446
446
446
447
xiv
Contents
B0193AX Rev Z
447
447
447
447
448
448
449
449
450
452
453
503
504
505
506
506
506
508
511
511
511
511
512
513
526
528
531
531
531
532
532
533
544
545
547
547
547
548
548
548
548
549
549
550
xv
B0193AX Rev Z
Contents
556
556
557
558
571
571
572
572
572
572
573
573
573
573
574
575
575
576
577
577
578
578
578
578
578
579
579
579
579
580
580
580
581
581
581
582
xvi
Contents
B0193AX Rev Z
587
587
588
588
589
590
599
599
600
602
603
603
603
603
604
604
605
606
607
611
611
612
613
614
615
625
625
626
626
627
627
627
628
628
628
628
628
629
629
629
630
630
631
xvii
B0193AX Rev Z
Contents
635
635
635
635
637
638
650
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
687
687
688
688
689
689
689
xviii
Contents
B0193AX Rev Z
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
769
769
769
769
770
775
xix
B0193AX Rev Z
Contents
779
779
779
779
780
781
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.
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
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
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.
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
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
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
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.
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.
xxx
Preface
B0193AX Rev Z
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.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
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
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.
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
short
no-con/no-set
0 to 13
PHASE
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
real
no-con/no-set
100.0
specifiable
LSCI1
real
no-con/no-set
0.0
specifiable
DELTI1
real
no-con/no-set
1.0
percent
EI1
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
real
no-con/no-set
100.0
specifiable
LSCO1
real
no-con/no-set
0.0
specifiable
DELTO1
real
no-con/no-set
1.0
percent
EO1
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
short
no-con/no-set
0 to 2
PCNTOP
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
string
no-con/no-set
blank
1 to 12 chars
HAOPT
boolean
no-con/no-set
0 to 1
HABLIM
real
con/set
100.0
RO1
HABTXT
string
no-con/no-set
blank
1 to 32 chars
ABSPRI
integer
con/set
[1 to 5]
ABSGRP
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
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
Description
Type
Accessibility
Default
Units/Range
AMRTIN
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
boolean
con/no-set
0 to 1
HHAIND
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
real[3]
no-con/no-set
100,0,1
specifiable
RO1
real[3]
no-con/no-set
100,0,1
specifiable
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
ACHNGE
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.
B0193AX Rev Z
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)
ALMOPT.B32
ALMOPT.B31
ALMOPT.B25
ALMOPT.B13
ALMOPT.B7
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
B24
ALMSTA
CRIT
Name
0 to 4 (Least
Significant)
PTYP_MSK
5 to 7
CRIT_MSK
19
25
PTARG
TARG
PRTYPE
Boolean
Connection
(B32 to B1)
ALMSTA.B32ALMSTA.B28
ALMSTA.B27ALMSTA.B25
ALMSTA.B13
ALMSTA.B7
5
B0193AX Rev Z
Bit Number
(0 to 31)*
29
30
Name
Boolean
Connection
(B32 to B1)
INH
UNAK
Alarm inhibit
Unacknowledged
ALMSTA.B3
ALMSTA.B2
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)
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
B25
AMRTIN
BLKSTA.B27
BLKSTA.B25
BLKSTA.B21
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12
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.
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:
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
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
DESCRP
EI1
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
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
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
B9
HHATXT
B8
B7
HHAPRI
B6
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
Bit Number*
(0 to 15)
Boolean Connection
(B16 to B1)
INHALM.B13
INHALM.B7
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
B0193AX Rev Z
Bit
Number*
(0 to 31)
Name
19
PTARG
25
TARG
boolean
Connection
(B32 to B1)
INHSTA.B13
INHSTA.B7
INITCL
INITMA
LOCKID
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
12
LOOPID
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
MEAS
MRATE
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.
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
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
OWNER
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
* 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
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:
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.
B0193AX Rev Z
During this time, the block is in the holding state, and holds the output at
its last computed value.
PRTYPE
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
1.5 Functions
This section describes the functions in the ACCUM block.
15
B0193AX Rev Z
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
16
B0193AX Rev Z
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
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
PCNTOP = 2
Pulse Rate Per
Minute
MA
OUT
PCNTOP = 3
Pulse Count Per
Minute
B0193AX Rev Z
Convert
to Rate
Integrator
MA
OUT
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
B0193AX Rev Z
Both the Time_Conv and the EU_Conv factor must be derived by the customer
19
B0193AX Rev Z
Units of MEAS
units/second
units/minute
units/hour
units/day
MTRFAC Calculation
Results
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 * 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
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
21
B0193AX Rev Z
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
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
B0193AX Rev Z
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
PNT_No
PNT_No
AIN
FT
Water
TanK
ACCUM
CALC
24
GDEV
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
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
25
B0193AX Rev Z
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
26
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
short
no-con/no-set
0 to 13
PHASE
integer
no-con/no-set
---
LOOPID
loop identifier
string
no-con/set
blank
1 to 32 chars
IOMOPT
short
no-con/no-set
0 to 2
IOM_ID
FBM identifier
string
no-con/no-set
blank
---
PNT_NO
string
no-con/no-set
1 to 32
SCI
short
no-con/no-set
HSCO1
real
no-con/no-set
100.0
specifiable
LSCO1
real
no-con/no-set
0.0
specifiable
DELTO1
real
no-con/no-set
1.0
percent
EO1
string
no-con/no-set
RO1
OSV
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
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
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
real
con/set
0.0
minutes
XREFIN
real
con/set
0.0
deg. Celsius
XREFOP
boolean
no-con/no-set
0 to 1
KSCALE
gain scaler
real
con/set
1.0
scalar
BSCALE
real
con/set
0.0
output units
BAO
boolean
no-con/no-set
0 to 2
BAT
string
no-con/no-set
blank
1 to 32 chars
BAP
integer
con/set
1 to 5
BAG
short
no-con/set
1 to 8
ORAO
boolean
no-con/no-set
0 to 1
ORAT
string
no-con/no-set
blank
1 to 32 chars
ORAP
integer
con/set
1 to 5
ORAG
short
no-con/set
1 to 8
27
B0193AX Rev Z
Description
Type
Accessibility
Default
Units/Range
HLOP
short
no-con/no-set
0 to 3
ANM
string
no-con/no-set
blank
1 to 12 chars
HAL
real
con/set
100.0
RO1
HAT
string
no-con/no-set
blank
1 to 32 chars
LAL
real
con/set
0.0
RO1
LAT
string
no-con/no-set
blank
1 to 32 chars
HLDB
real
no-con/set
0.0
RO1
HLPR
high/low priority
integer
con/set
1 to 5
HLGP
short
no-con/set
1 to 8
HHAOPT
short
no-con/no-set
0 to 3
HHALIM
real
con/set
100.0
RO1
HHATXT
string
no-con/no-set
blank
1 to 32 chars
LLALIM
real
con/set
0.0
RO1
LLATXT
string
no-con/no-set
blank
1 to 32 chars
HHAPRI
integer
con/set
1 to 5
HHAGRP
short
no-con/set
1 to 8
PROPT
boolean
no-con/no-set
0 to 1
MEAS
optional input
real
con/set
0.0
---
AMRTIN
integer
no-con/no-set
0 to 32767 s
NASTDB
0-2147483647 ms
NASOPT
short
no-con/no-set
0 to 2
Non-Configurable Parameters
OUTPUTS
BAD
boolean
con/no-set
0 to 1
CRIT
alarm criticality
integer
con/no-set
0 to 5
HAI
boolean
con/no-set
0 to 1
HHAIND
boolean
con/no-set
0 to 1
HOR
high out-of-range
boolean
con/no-set
0 to 1
LAI
boolean
con/no-set
0 to 1
LLAIND
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
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
B0193AX Rev Z
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
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
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.B31
ALMOPT.B25
ALMOPT.B16
ALMOPT.B15
ALMOPT.B10
ALMOPT.B8
ALMOPT.B7
ALMOPT.B4
29
B0193AX Rev Z
1.
Bit
Number
(0 to 31)*
CRIT
Name
PTYP_MSK
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
30
AMRTIN
ANM
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
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
31
B0193AX Rev Z
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)
BLKSTA.B24
BLKSTA.B21
BLKSTA.B20
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12
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
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.
B0193AX Rev Z
DESCRP
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
34
HAI
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
HHAIND
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
HHAPRI
HHATXT
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
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:
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
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
B2
HLPR
Boolean Connection
(B16 to B1)
INHALM.B16
INHALM.B15
INHALM.B10
INHALM.B8
INHALM.B7
INHALM.B4
35
B0193AX Rev Z
INHOPT
Inhibit Option specifies the following actions applying to all block alarms:
0=
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
16
17
22
24
LMA
HMA
BAD
LLA
25
HHA
28
OOR
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
36
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=
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
LAI
LAL
Low Absolute Alarm Limit is a real input that defines the value of the
PNT output that triggers a Low Absolute Alarm.
LASTGV
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
LOCKID
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.
B0193AX Rev Z
MA
MANALM
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
NASOPT
2 = Suppress nuisance alarms by delaying both the Alarm Detection and the Return-to-Normal by the length of time specified in
NASTDB
NASTDB
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
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
ORAT
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
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
B0193AX Rev Z
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
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
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
Raw Count is the value read from the ECB into the block before any form
of signal conditioning, characterization, scaling, clamping or filtering is
B0193AX Rev Z
applied. It is of real data type although the ECB value may be integer, or
long integer.
RO1
SCI
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
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
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
44
BAO
AND
BAD
Alarming
B0193AX Rev Z
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
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
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
47
B0193AX Rev Z
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.
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
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
The Thermocouple conversion table for the SCI in use is entered with the degrees
Celsius value of the cold junction compensation and converted to the corresponding
millivolt value. The compensation in millivolts is added to the basic millivolt value,
and the table is entered again to convert to degrees Celsius. But if the sum is out of the
table range for millivolts then parameter LOR or HOR is set true and the processing
of Section 2.6 occurs. If LASTGV is true, then the value of PNT is not updated this
cycle, and the filter is re-initialized.
Special Thermocouple Signal Conversion
Key Parameters: EXTBLK, EXTOPT
You can specify Special Thermocouple Signal Conversion if the thermocouple does not conform
to one of the standard types in Appendix A Signal Conditioning Tables on page 67. In this
case you should link the Extender Block parameter (EXTBLK) to a CHARC block whose
Extender Block Option (EXTOPT) parameter is set to 2.
The compensation reference in degrees Celsius, however obtained, is passed to the CHARC block
specified by EXTBLK. It is used at this time to perform reverse characterization; that is, it is
entered with the passed degrees Celsius value and the corresponding millivolt equivalent is
returned.
The returned reference millivolts are added to the raw value and this sum is passed to the CHARC
block as the input. The corresponding output is the equivalent degrees Celsius.
If the CHARC input is out of range then parameter LOR or HOR is set true and the processing
of Section 2.6 occurs. If LASTGV is true, then the value of PNT is not updated this cycle, and
the filter is re-initialized.
SCI = 40-44
Linearization
2.5.2.3
KSCALE
oC
X
hor,lor
Channel Status
FBM Status
Figure 2-5. RTD Input Example
50
BSCALE
oF
+
B0193AX Rev Z
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
51
B0193AX Rev Z
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
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
B0193AX Rev Z
ECB
Functional Description
ECB7
--ECB7
---
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
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.
SCI = 0
KSCALE
Output
Engineering
BSCALE Units
+
Channel Status
FBM Status
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
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
FBM
ECB
Functional Description
Electrical Type
FBM46
ECB38R
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
B0193AX Rev Z
AIN
PNT
MEAS
REALM
or
MEALM
REALM
or
MEALM
PID
OUT
or
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
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.
56
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.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
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
B0193AX Rev Z
NOTE
OUTPUT
INPUT STEP
63%
100%
FTIM
Figure 2-10. First-Order Lag Filtering
59
B0193AX Rev Z
INPUT STEP
OUTPUT
FTIM
Figure 2-11. Butterworth Filtering
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:
61
B0193AX Rev Z
The raw value is compared against the characterizer end-points. If the value is outside the endpoints, HOR and LOR are handled as above.
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
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
LSCO1
osv(units)
Figure 2-12. Last Good Value
B0193AX Rev Z
In Manual mode, you may set the values of PNT, BAD, HOR, LOR, and the alarm indicators.
64
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
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
B0193AX Rev Z
B0193AX Rev Z
SCI = 56:
SCI = 57:
SCI = 58:
SCI = 59:
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)
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
69
B0193AX Rev Z
SCI = 55:
SCI = 56:
SCI = 57:
SCI = 58:
SCI = 59:
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)
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
Platinum
-200 to 620C
SCI
44
B0193AX Rev Z
Type
Platinum (100 Ohm
SAMA)
Material
Range
Curve
Platinum
-200 to 600C
202
203
204
205
206
207
211
212
213
217
242
237
241
Hardware
Type
201
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
202
B0193AX Rev Z
Point
29
30
31
32
I
I
I
Legend:
I = Input
O = Readback from Output
C = Thermal Compensation Channel
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
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
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
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
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.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
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
75
B0193AX Rev Z
3.3 Features
B0193AX Rev Z
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
short
no-con/no-set
0 to 13
PHASE
integer
no-con/no-set
---
LOOPID
loop identifier
string
no-con/set
blank
1 to 32 chars
IOMOPT
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
string
no-con/no-set
1 to 32
SCI
short
no-con/no-set
HSCO1
real
no-con/no-set
100.0
specifiable
LSCO1
real
no-con/no-set
0.0
specifiable
DELTO1
real
no-con/no-set
1.0
percent
EO1
string
no-con/no-set
specifiable
OSV
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
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
short
no-con/no-set
0 to 1
MTRF
meter factor
real
no-con/set
1.0
flow rate/Hz
77
B0193AX Rev Z
Description
Type
Accessibility
Default
Units/Range
FLOP
filter option
short
no-con/no-set
0 to 3
FTIM
real
con/set
0.0
[0..]minutes
XREFIN
real
con/set
0.0
deg. Celsius
XREFOP
boolean
no-con/no-set
0 to 1
KSCALE
gain scaler
real
con/set
1.0
scalar
BSCALE
real
con/set
0.0
output units
BAO
boolean
no-con/no-set
0 to 2
BAT
string
no-con/no-set
blank
1 to 32 chars
BAP
integer
con/set
1 to 5
BAG
short
no-con/set
1 to 8
ORAO
boolean
no-con/no-set
0 to 1
ORAT
string
no-con/no-set
blank
1 to 32 chars
ORAP
integer
con/set
1 to 5
ORAG
short
no-con/set
1 to 8
HLOP
short
no-con/no-set
0 to 3
ANM
string
no-con/no-set
blank
1 to 12 chars
HAL
real
con/set
100.0
RO1
HAT
string
no-con/no-set
blank
1 to 32 chars
LAL
real
con/set
0.0
RO1
LAT
string
no-con/no-set
blank
1 to 32 chars
HLDB
real
no-con/set
0.0
RO1
HLPR
high/low priority
integer
con/set
1 to 5
HLGP
short
no-con/set
1 to 8
HHAOPT
short
no-con/no-set
0 to 3
HHALIM
real
con/set
100.0
RO1
HHATXT
string
no-con/no-set
blank
1 to 32 chars
LLALIM
real
con/set
0.0
RO1
LLATXT
string
no-con/no-set
blank
1 to 32 chars
HHAPRI
integer
con/set
1 to 5
HHAGRP
short
no-con/set
1 to 8
PROPT
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
integer
no-con/no-set
0 to 32767 s
NASTDB
0-2147483647 ms
NASOPT
short
no-con/no-set
0 to 2
Non-Configurable Parameters
OUTPUTS
78
ALMSTA
alarm status
pack_l
con/no-set
bit map
BAD
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
B0193AX Rev Z
Description
Type
Accessibility
Default
Units/Range
HAI
boolean
con/no-set
0 to 1
HHAIND
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
boolean
con/no-set
0 to 1
LLAIND
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
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
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
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
Bit Number*
(0 to 31)
Boolean
Connection
(B32 to B1)
0 (Least
Significant)
1
7
16
17
22
24
25
28
ALMOPT.B32
ALMOPT.B31
ALMOPT.B25
ALMOPT.B16
ALMOPT.B15
ALMOPT.B10
ALMOPT.B8
ALMOPT.B7
ALMOPT.B4
Bit
Number*
(0 to 31)
80
CRIT
Name
PTYP_MSK
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
Bit
Number*
(0 to 31)
24
25
28
29
30
B0193AX Rev Z
Name
LLA
HHA
OOR
INH
UNACK
Boolean
Connection
(B32 to B1)
ALMSTA.B8
ALMSTA.B7
ALMSTA.B4
ALMSTA.B3
ALMSTA.B2
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
ANM
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
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
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
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
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
Bit
Number*
(0 to 31)
B0193AX Rev Z
Name
DEV
8
9
11
12
14
15
20
FBM
FBMR
MA
BAD
UDEF
ON
WLCK
Boolean
Connection
(B32 to B1)
BLKSTA.B30
BLKSTA.B24
BLKSTA.B23
BLKSTA.B21
BLKSTA.B20
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12
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
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
DEVIDR
83
B0193AX Rev Z
DEVLIM
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
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
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
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
HHAGRP
HHAIND
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
HHAPRI
HHATXT
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
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
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
B1
HLGP
Boolean
Connection
(B16 to B1)
INHALM.B16
INHALM.B15
INHALM.B10
INHALM.B8
INHALM.B7
INHALM.B4
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=
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
16
17
22
24
LMA
HMA
BAD
LLA
25
HHA
28
OOR
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
B0193AX Rev Z
INITMA
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
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
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
LAT
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
LOCKID
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
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
MANALM
MEAS
MEAS_P
MEAS_S
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
B0193AX Rev Z
NASOPT
NASTDB
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
ORAT
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
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
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
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
B0193AX Rev Z
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
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
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.
B0193AX Rev Z
RO1
SCI
SELREQ
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
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
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
96
PNT.BAD
BLKSTA.BAD
AUTO
MANUAL
BAD
AND
BAO
B0193AX Rev Z
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
BAD
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
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
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:
99
B0193AX Rev Z
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)
+
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
102
B0193AX Rev Z
Linearization
3.5.2.3
BSCALE
oC
oF
X
hor, lor
Channel Status 1
FBM Status 1
Channel Status 2
FBM Status 2
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
103
B0193AX Rev Z
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
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
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.
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
KSCALE
BSCALE
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
FBM46
ECB38R
FBM23
FBM38
ECB13
ECB22
24 Floating Point In
8 Floating Point In
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
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.
107
B0193AX Rev Z
108
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
B0193AX Rev Z
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
110
B0193AX Rev Z
OUTPUT
INPUT STEP
63%
100%
FTIM
Figure 3-9. First-Order Lag Filtering
INPUT STEP
OUTPUT
FTIM
Figure 3-10. Butterworth Filtering
111
B0193AX Rev Z
The Filter Input from the previous cycle is retained separately for primary and secondary sides.
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.
B0193AX Rev Z
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
LSCO1
osv(units)
Figure 3-11. Last Good Value
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
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
116
TT
Heated Water
Cold Water
B0193AX Rev Z
B0193AX Rev Z
SCI = 56:
SCI = 57:
SCI = 58:
SCI = 59:
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)
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
119
B0193AX Rev Z
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
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
Platinum
Platinum
202
203
204
205
206
207
211
212
213
217
237
241
242
Hardware
Type
201
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
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
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
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
Legend:
B0193AX Rev Z
I = Input
O = Readback from Output
C = Thermal Compensation Channel
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
Hardware
Type
57
58
59
61
63
95
Point
32
33
Legend:
I = Input
O = Readback from Output
C = Thermal Compensation Channel
NOTE
124
I
C
I
C
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
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
short
no-con/no-set
0 to 13
PHASE
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
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
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
Boolean
Connection
(B32 to B1)
11
14
15
20
MA
UDEF
ON
WLCK
BLKSTA.B21
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12
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
B0193AX Rev Z
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
127
B0193AX Rev Z
128
LOCKID
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
NAME
OWNER
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
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
Manual
Auto
PRIOUT
BLKSTA
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.
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.
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
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)
131
B0193AX Rev Z
132
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
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
133
B0193AX Rev Z
5.3 Features
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
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
short
no-con/no-set
0 to 13
PHASE
integer
no-con/no-set
---
LOOPID
loop identifier
string
no-con/set
blank
1 to 32 chars
IOMOPT
short
no-con/no-set
0 to 2
IOM_ID
FBM identifier
string
no-con/no-set
blank
---
PNT_NO
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
boolean
no-con/no-set
0 to 1
MEAS
process input
real
con/set
0.0
RI1
HSCI1
real
no-con/no-set
100.0
specifiable
LSCI1
real
no-con/no-set
0.0
specifiable
DELTI1
real
no-con/no-set
1.0
percent
EI1
string
no-con/no-set
specifiable
MEROPT
short
no-con/no-set
0 to 2
HSCO1
real
no-con/no-set
100.0
specifiable
LSCO1
real
no-con/no-set
0.0
specifiable
DELTO1
real
no-con/no-set
1.0
percent
EO1
string
no-con/no-set
specifiable
HOLIM
real
con/set
100.0
RO1
LOLIM
real
con/set
0.0
RO1
OSV
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
real
no-con/no-set
100.0
percent
LSCI2
real
no-con/no-set
0.0
specifiable
DELTI2
real
no-con/no-set
1.0
percent
EI2
string
no-con/no-set
specifiable
135
B0193AX Rev Z
Description
Type
Accessibility
Default
Units/Range
BEROPT
short
no-con/no-set
0 to 2
BTRKOP
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
boolean
no-con/no-set
0 to 1
MCLOPT
boolean
no-con/no-set
0 to 1
PRIBLK
primary block
boolean
no-con/no-set
0 to 1
PRITIM
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
boolean
no-con/no-set
0 to 2
BAT
string
no-con/no-set
blank
1 to 32 chars
BAP
integer
con/set
1 to 5
BAG
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
integer
no-con/no-set
0 to 32767 s
Non-Configurable Parameters
OUTPUTS
ALMSTA
alarm status
pack_l
con/no-set
bit map
BAD
boolean
con/set
0 to 1
BCALCO
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
boolean
con/set
0 to 1
INHSTA
inhibit status
pack_l
con/no-set
bit map
INITO
initialize out
short
con/no-set
---
LOLIND
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
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
B0193AX Rev Z
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
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
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.B31
ALMOPT.B25
ALMOPT.B10
137
B0193AX Rev Z
Name
0 to 4
(Least Significant)
5 to 7
PTYP_MSK
22
30
BAD
UNAK
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
PRTYPE
Boolean
Connection
(B32 to B1)
138
AMRTIN
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.
BAO
B0193AX Rev Z
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
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
Bit
Number**
(0 to 31)
Name
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
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
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.
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
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
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
FLBOPT
FLBREQ
FS
142
Description
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.
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=
143
B0193AX Rev Z
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
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
INITMA
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
B0193AX Rev Z
FBM Option is a short integer specifying whether an FBM or FBC connection to the block exists. Values are:
0=
1=
2=
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
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
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
MANFS
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
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
B0193AX Rev Z
MSCALE
NAME
NR_INP
NR_OUT
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
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
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.
B0193AX Rev Z
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
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
B0193AX Rev Z
RI2
RO1
SCO
SE
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
SUPOPT
150
B0193AX Rev Z
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.5 Functions
5.5.1 Detailed Diagram
(M)
MSCALE
MEAS
OUT
SUP_IN
Last Good Value
SCALING
BALANCING
O
(A)
CLAMPING
OUT
Back
Calculation
OUT
BCALCO
SUPBCO
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
152
OUT.OOS
BCALCO.OOS
OUT.SECURE
B0193AX Rev Z
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
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.
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.
B0193AX Rev Z
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
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
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.
156
B0193AX Rev Z
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.
157
B0193AX Rev Z
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.
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.
158
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:
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:
= 200C
= 900C
= 500C
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.
B0193AX Rev Z
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
or
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
162
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.
B0193AX Rev Z
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.
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
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.
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
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.
166
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.
167
B0193AX Rev Z
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
B0193AX Rev Z
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
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
Measurement
Scalar
&
Bias
Balance
Time
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
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
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.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
short
no-con/no-set
0 to 13
PHASE
integer
no-con/no-set
---
LOOPID
loop identifier
string
no-con/set
blank
1 to 32 chars
IOMOPT
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
string
no-con/no-set
1 to 32 chars
SCO
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
boolean
no-con/no-set
0 to 1
MEAS
process input
real
con/set
0.0
RI1
HSCI1
real
no-con/no-set
100.0
specifiable
LSCI1
real
no-con/no-set
0.0
specifiable
DELTI1
no-con/no-set
1.0
percent
EI1
string
no-con/no-set
specifiable
MEROPT
short
no-con/no-set
0 to 2
HSCO1
real
no-con/no-set
100.0
specifiable
LSCO1
real
no-con/no-set
0.0
specifiable
DELTO1
real
no-con/no-set
1.0
percent
EO1
string
no-con/no-set
specifiable
HOLIM
real
con/set
100.0
RO1
LOLIM
real
con/set
0.0
RO1
OSV
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
real
no-con/no-set
100.0
specifiable
LSCI2
real
no-con/no-set
0.0
specifiable
DELTI2
no-con/no-set
1.0
percent
EI2
string
no-con/no-set
specifiable
BEROPT
short
no-con/no-set
0 to 2
BTRKOP
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
boolean
no-con/no-set
0 to 1
174
B0193AX Rev Z
Description
Type
Accessibility
Default
Units/Range
MCLOPT
boolean
no-con/no-set
0 to 1
PRIBLK
primary block
boolean
no-con/no-set
0 to 1
PRITIM
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
boolean
no-con/no-set
0 to 2
BAT
string
no-con/no-set
blank
1 to 32 chars
BAP
integer
con/set
1 to 5
BAG
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
integer
no-con/no-set
0 to 32767 s
Non-Configurable Parameters
OUTPUTS
ALMSTA
alarm status
pack_l
con/no-set
bit map
BAD
boolean
con/set
0 to 1
BCALCO
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
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
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
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
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
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
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)
Boolean
Connection
(B32 to B1)
0 (Least Significant)
1
7
22
ALMOPT.B32
ALMOPT.B31
ALMOPT.B25
ALMOPT.B10
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
Name
0 to 4
(Least Significant)
5 to 7
PTYP_MSK
22
30
BAD
UNAK
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
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
BAO
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
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
B0193AX Rev Z
Bit
Number*
(0 to 31)
Name
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
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
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
(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
DEVIDR
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
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
FLBREQ
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
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
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)
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
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
INITSE
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
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
B0193AX Rev Z
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
MANFS
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
B0193AX Rev Z
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
MEROPT
MSCALE
NAME
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
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
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
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
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
RI2
B0193AX Rev Z
ual names; however, RI2 and its members can, optionally, be accessed on
an array basis by user tasks and displays.
RO1
SCO
SE
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
SUPOPT
B0193AX Rev Z
190
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.
B0193AX Rev Z
MEAS
SUP_IN
Last Good Value
Back Calculated Input
OUT
SCALING
BALANCING CLAMPING
Bias
Selection
O O
(A)
Back
Calculation
OUT
OUT
BCALCO
SUPBCO
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
OR
OR
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
191
B0193AX Rev Z
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)
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.
B0193AX Rev Z
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
B0193AX Rev Z
FBM
FBC04
Redundant
ECB
ECB43
Functional Description
16 Analog Out, Redundant
All analog output points in FBMs and FBCs provide 0 to 20 mA outputs with the exception of
FBM17, which provides 0 to 10 V dc outputs.
The first step in generating the block output is selection of the input source, which is done
according to the following rules:
If supervisory control is enabled, as described in Section 6.4.10, the supervisory input
SUP_IN is used as the input source, provided the supervisory cascade is closed. This
closure is indicated by the value of 7 in Present Cascade State (PRSCAS).
If supervisory control is not enabled, or the supervisory cascade is open, then the value
of MEAS is used as the input source, unless MEAS has the type of error requiring last
good value retention. The conditions for last good value retention are described in
Section 6.5.3.
If the last good value is required, then the input source is the value of MEAS from the
last processing cycle. (There is no last good value functionality when SUP_IN is the
input source.)
Whenever the input source is SUP_IN, its value is copied to MEAS, provided MEAS is unlinked.
Whenever the input source is MEAS, its value is copied to SUP_IN. If the input source is the last
good value of MEAS, that value is copied to SUP_IN.
The selected input source is then scaled, balanced, clamped, and conditioned, in that order. The
result before conditioning is stored in OUT, and the result after conditioning in RAWC.
195
B0193AX Rev Z
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
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.
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.
197
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 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:
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
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
= 200C
= 900C
= 500C
=2
199
B0193AX Rev Z
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.
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).
201
B0193AX Rev Z
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
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:
203
B0193AX Rev Z
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.
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
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.
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
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
B0193AX Rev Z
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
207
B0193AX Rev Z
208
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.
BIAS
BLOCK
Manual/Auto Overrides
Local/Remote Bias
Output
Controller
Local/Remote Overrides
Sum
Algorithm
Measurement
Measurement Scale Factors
Bias
Bias Scale Factors
Remote Bias
Initialization Output
Balance Time
Hold
Criticality
Initialization Input
Priority Type
Alarm
Algorithm
209
B0193AX Rev Z
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.
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.
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
short
no-con/no-set
0 to 13
PHASE
integer
no-con/no-set
---
211
B0193AX Rev Z
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
real
no-con/no-set
100.0
specifiable
LSCI1
real
no-con/no-set
0.0
specifiable
DELTI1
real
no-con/no-set
1.0
percent
EI1
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
real
no-con/no-set
100.0
specifiable
LSCI2
real
no-con/no-set
0.0
specifiable
DELTI2
real
no-con/no-set
1.0
percent
EI2
string
no-con/no-set
specifiable
HSCO1
real
no-con/no-set
100.0
specifiable
LSCO1
real
no-con/no-set
0.0
specifiable
DELTO1
real
no-con/no-set
1.0
percent
EO1
string
no-con/no-set
specifiable
HOLIM
real
con/set
100.0
RO1
LOLIM
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
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
boolean
no-con/no-set
0 to 1
CEOPT
short
no-con/no-set
0 to 2
HOLD
hold mode
boolean
con/set
0 to 1
PRIBLK
boolean
no-con/no-set
0 to 1
PRITIM
real
no-con/no-set
0.0
seconds
INITI
initialize input
short
con/set
---
BCALCI
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
short
no-con/no-set
[0|1|2]
BTIME
balance time
real
con/set
0.0
[0..]minutes
MANALM
short
no-con/no-set
0 to 4
INHOPT
inhibit option
short
no-con/no-set
0 to 3
212
B0193AX Rev Z
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
string
no-con/no-set
blank
1 to 32 chars
MALOPT
short
no-con/no-set
0 to 3
MEASHL
real
con/set
100.0
RI1
MEASHT
string
no-con/no-set
blank
1 to 32 chars
MEASLL
real
con/set
0.0
RI1
MEASLT
string
no-con/no-set
blank
1 to 32 chars
MEASDB
real
no-con/set
0.0
RI1
MEASPR
integer
con/set
[1..5]
MEASGR
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
string
no-con/no-set
blank
1 to 32 chars
LLALIM
real
con/set
0.0
RI1
LLATXT
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
string
no-con/no-set
blank
1 to 12 chars
BAO
boolean
no-con/no-set
0 to 1
BAT
string
no-con/no-set
blank
1 to 32 chars
BAP
integer
con/set
1 to 5
BAG
short
no-con/set
1 to 8
AMRTIN
integer
no-con/no-set
0 to 32767 s
NASTDB
0-2147483647 ms
NASOPT
short
no-con/no-set
0 to 2
pack_l
con/no-set
bit map
Non-Configurable Parameters
OUTPUTS
ALMSTA
alarm status
BCALCO
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
boolean
con/no-set
0 to 1
HOLIND
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
boolean
con/no-set
0 to 1
LOLIND
boolean
con/no-set
0 to 1
MEASHI
boolean
con/no-set
0 to 1
MEASLI
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
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
real[3]
no-con/no-set
100,0,1
specifiable
RO1
real[3]
no-con/no-set
100,0,1
specifiable
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
Boolean
Connection
(B32 to B1)
ALMOPT.B32
ALMOPT.B31
ALMOPT.B25
ALMOPT.B16
ALMOPT.B15
ALMOPT.B8
ALMOPT.B7
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
B0193AX Rev Z
Bit
Number
(0 to 31)*
CRIT
Name
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
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
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
216
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
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
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
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
BMEAS
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
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.
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
B0193AX Rev Z
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
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
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
W44 INVALID
ENGINEERING RANGE
W46 INVALID INPUT
CONNECTION
219
B0193AX Rev Z
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
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
HHAPRI
HHATXT
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.
B0193AX Rev Z
11
10
B9
B10
B11
B12
Bit
Number*
(0 to 15)
0
1
8
9
Boolean
Connection
(B16 to B1)
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
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=
221
B0193AX Rev Z
2=
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
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
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
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
223
B0193AX Rev Z
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
LOCKID
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
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
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
MALOPT
MANALM
225
B0193AX Rev Z
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
MANSW
MBADOP
MCLOPT
MEAS
MEASDB
MEASGR
MEASHI
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
MEASLI
MEASLL
Measurement Low Alarm Limit is a real input that defines the value of the
measurement that initiates a low absolute alarm.
MEASLT
MEASNM
MEASPR
NAME
NASOPT
NASTDB
2 = Suppress nuisance alarms by delaying both the Alarm Detection and the Return-to-Normal by the length of time specified in
NASTDB
227
B0193AX Rev Z
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
OWNER
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
B0193AX Rev Z
PERTIM
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
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
229
B0193AX Rev Z
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
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
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
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
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
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
231
B0193AX Rev Z
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
B0193AX Rev Z
233
B0193AX Rev Z
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.
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
B0193AX Rev Z
RBIAS
MEAS
BIAS
AOUT
MEAS
OUT
BCALCO
BCALCI
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
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
235
B0193AX Rev Z
236
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
B0193AX Rev Z
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
BIN_TYPE 148
DESCRP
block description
string
2 blanks
1 to 32 chars
PERIOD
PHASE
---
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
0 to 2
BIN
binary input
boolean
0 to 1
SELOPT
selection option
SIMOPT
simulation option
boolean
no-con/no-set
0 = no simulation
1 = simulation
UPDPER
integer
no-con/no-set
10000ms
0 to 2147483647 ms
ANM
string
no-con/no-set
blank
0 to 12 chars
238
con/set
B0193AX Rev Z
Description
Type
Accessibility
Default
Units/Range
NM0
string
no-con/no-set
blank
0 to 12 chars
NM1
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
0 to 1
SAO
boolean
no-con/no-set
0 to 1
SAP
integer
con/set
1 to 5
SAG
short
no-con/set
1 to 8
BAO
boolean
no-con/no-set
0 to 1
BAT
string
no-con/no-set
blank
1 to 32 chars
BAP
integer
con/set
1 to 5
BAG
short
no-con/set
1 to 8
SCOPT
short
no-con/no-set
0 to 3
SCGRP
short
no-con/set
1 to 8
SCTXTO
string
no-con/no-set
blank
0 to 32 chars
SCTXT1
sting
no-con/no-set
blank
0 to 32 chars
AMRTIN
integer
no-con/no-set
0 to32767 sec
NASTDB
long integer
no-con/set
0 to 2147483647
NASOPT
short
no-con/set
0 to 2
integer
con/no-set
-32768 to 32767
Non-Configurable Parameters
OUTPUTS
ACHNGE
alternate change
ALMSTA
alarm status
0 to 0xFFFFFFFF
BLKSTA
block status
0 to 0xFFFFFFFF
CIN
block output
boolean
0 to 1
CRIT
alarm criticality
integer
con/no-set
0 to 5
INHSTA
inhibit status
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
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
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)
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)
B0193AX Rev Z
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
AMRTIN
(CP270 Only)
ANM
(CP270 Only)
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)
BAP
(CP270 Only)
BAT
(CP270 Only)
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
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
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
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
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
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,
B0193AX Rev Z
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.
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)
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)
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.
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
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
INVALM
(CP270 Only)
Boolean
Connection
(B32 to B1)
B0193AX Rev Z
In any case, State alarm detection is disabled when option SAO is false.
246
IOM_ID
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)
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
MANALM
(CP270 Only)
B0193AX Rev Z
0 = No alarming in Manual
1 = Full alarming in Manual
NAME
NASOPT
(CP270 Only)
NASTDB
(CP270 Only)
NM0
(CP270 Only)
NM1
(CP270 Only)
OWNER
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
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
B0193AX Rev Z
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)
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
Definition
Out-of-Service
Bad
1.
2.
250
Contents
CIN.OOS status
CIN.BAD status
Boolean Connection
(B32 to B1)
QALSTA.B31
QALSTA.B32
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)
SAP
(CP270 Only)
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
B0193AX Rev Z
SIMOPT
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
UPDPER
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.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
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
252
B0193AX Rev Z
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
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.
254
B0193AX Rev Z
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
255
B0193AX Rev Z
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.
256
When all input values return to good status and INHOPT is set appropriately.
B0193AX Rev Z
257
B0193AX Rev Z
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
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
B0193AX Rev Z
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
short integer
no-con/no-set
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
string
no-con/no-set
2 blanks
1 to 12 chars
IOMID2
string
no-con/no-set
2 blanks
1 to 12 chars
IOMID3
string
no-con/no-set
2 blanks
1 to 12 chars
BI1_PT
string
no-con/no-set
blanks
up to 32 chars, or device
specific
BI2_PT
no-con/no-set
blanks
up to 32 chars, or device
specific
BI3_PT
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
B0193AX Rev Z
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
boolean
con/no-set
0 to 1
BIN_2
boolean
con/no-set
0 to 1
BIN_3
boolean
con/no-set
0 to 1
ECBOPT
boolean
no-con/no-set
0 = nonredundant ECBs
1 = redundant ECBs
ANM
string
no-con/no-set
blank
0 to 12 chars
NM0
string
no-con/no-set
blank
0 to 12 chars
NM1
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
short integer
no-con/set
0 to 1
SAO
boolean
no-con/no-set
0 to 1
SAP
integer
con/set
1 to 5
SAG
short
no-con/set
1 to 8
BAO
boolean
no-con/no-set
0 to 1
BAT
string
no-con/no-set
blank
1 to 32 chars
BAP
integer
con/set
1 to 5
BAG
short
no-con/set
1 to 8
SCOPT
short
no-con/no-set
0 to 3
SCGRP
short
no-con/set
1 to 8
SCTXTO
string
no-con/no-set
blank
0 to 32 chars
SCTXT1
sting
no-con/no-set
blank
0 to 32 chars
AMRTIN
integer
no-con/no-set
0 to 32767 sec
NASTDB
long integer
no-con/set
0 to 2147483647
NASOPT
short
no-con/set
0 to 2
SELOPT
selection option
short integer
no-con/no-set
SIMOPT
simulation option
boolean
no-con/no-set
0 = no simulation
1 = simulation
UPDPER
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
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
character
no-con/no-set
2 blanks
1 to 6 characters
DEVID2
no-con/no-set
2 blanks
1 to 6 characters
DEVID3
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
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)
0 (lsb)
1
2
3
4
5
6
7
Boolean
Connection
(B32 to B1)
ALMOPT.B32
ALMOPT.B31
ALMOPT.B30
ALMOPT.B29
ALMOPT.B28
ALMOPT.B27
ALMOPT.B26
ALMOPT.B25
B0193AX Rev Z
Bit
Number*
(0 to 31)
Boolean
Connection
(B32 to B1)
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
Bit Number
(0 to 31)*
Name
0 to 4
PTYP_MSK
5 to 7
22
26
29
CRIT_MSK
BAD
STA
INH
30
UNAK
Boolean
Connection
(B32 to B1)
----ALMSTA.B10
ALMSTA.B6
ALMSTA.B3
ALMSTA.B2
AMRTIN
(CP270 Only)
ANM
(CP270 Only)
ARBOPT
B0193AX Rev Z
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)
BAP
(CP270 Only)
BAT
(CP270 Only)
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.
B0193AX Rev Z
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
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
Name
ON
DCIX
Boolean
Connection
(B32 to B1)
BLKSTA.B17
BLKSTA.B9
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
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
DEVID1
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
ECBOPT
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
267
B0193AX Rev Z
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)
INHOPT
(CP270 Only)
Inhibit Option specifies the following actions applying to all block alarms:
268
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
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)
INITMA
B0193AX Rev Z
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
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)
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
B0193AX Rev Z
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
MANALM
(CP270 Only)
NAME
NASOPT
(CP270 Only)
NASTDB
(CP270 Only)
NM0
(CP270 Only)
B0193AX Rev Z
OWNER
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).
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)
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
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)
273
B0193AX Rev Z
274
SAP
(CP270 Only)
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
SIMOPT
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
UPDPER
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
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
276
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.
ARBOPT = 0 (DMR)
ARBOPT = 1 (TMR)
ARBOPT = 0 (DMR)
ARBOPT = 1 (TMR)
The DCI connections are deleted (for example, the linkages are removed from the linked lists for
the ECB or ECBs) when the BINR block is deleted.
277
B0193AX Rev Z
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.
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.
278
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.
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:
279
B0193AX Rev Z
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
B0193AX Rev Z
NOTE
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.
281
B0193AX Rev Z
282
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.
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
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.
Criticality
Priority Type
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)
285
B0193AX Rev Z
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
short
no-con/no-set
0 to 13
PHASE
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
string
no-con/no-set
blank
1 to 12 chars
NM1_1 to NM1_8
string
no-con/no-set
blank
1 to 12 chars
ANM_1 to ANM8
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
integer
con/set
[1..5]
INHOPT
inhibit option
short
no-con/no-set
0 to 3
IVO_1 to IVO_8
boolean
no-con/no-set
0 to 1
SAG_1 to SAG_8
short
no-con/set
[1..8]
SAO_1 to SAO_8
boolean
no-con/no-set
0 to 1
AMRTIN
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
286
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)
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)
ALMOPT.B32
ALMOPT.B31
ALMOPT.B25
Bit
Number
(0 to 31)*
PNT1 to PNT8
Name
0 to 4
PTYP_MSK
5 to 7
CRIT_MSK
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
AMRTIN
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)
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
288
CRIT
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
ERCODE
Error Code is a string data store which indicates the type of configuration
error or warning encountered. The error situations cause the blocks
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
W53 INVALID
PARAMETER VALUE
W58 INSTALL ERROR;
DELETE/UNDELETE
BLOCK
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 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
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=
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
Boolean
Connection
(B32 to B1)
INHSTA.B8
INHSTA.B1
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.
B0193AX Rev Z
LOCKID
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
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
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
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
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).
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
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
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.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
Current
State
295
B0193AX Rev Z
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:
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
string
no-con/no-set
296
DESCRP
NAME
STATE
State is a dynamic string that contains the name of the current state of the
VALUE parameter.
STATE0
B0193AX Rev Z
STATE1
TYPE
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
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
299
B0193AX Rev Z
300
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
301
B0193AX Rev Z
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
short integer
no-con/no-set
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
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
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
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
boolean
no-con/no-set
0 to 1
BAT
string
no-con/no-set
blank
1 to 32 chars
BAP
integer
con/set
1 to 5
BAG
short
no-con/set
1 to 8
AMRTIN
integer
no-con/no-set
0 to32767 sec
SETFS
boolean
con/set
0 to 1
boolean
con/no-set
0 to 1
integer
con/no-set
-32768 to 32767
OUTPUTS
FSCOUT
Non-Configurable Parameters
OUTPUTS
ACHNGE
302
alternate change
B0193AX Rev Z
Description
Type
Accessibility
Default
Units/Range
ALMSTA
alarm status
packed long
con/no-set
bit map
BKCO
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
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
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.
Bit
Number*
(0 to 31)
0 (lsb)
1
2
3
4
5
Boolean
Connection
(B32 to B1)
ALMOPT.B32
ALMOPT.B31
ALMOPT.B30
ALMOPT.B29
ALMOPT.B28
ALMOPT.B27
303
B0193AX Rev Z
Bit
Number*
(0 to 31)
Boolean
Connection
(B32 to B1)
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
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
304
AMRTIN
CP270 Only
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.
B0193AX Rev Z
BAG
CP270 Only
BAO
CP270 Only
BAP
CP270 Only
BAT
CP270 Only
BKCO
BLKSTA
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
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
305
B0193AX Rev Z
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
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
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.
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
FSCOUT
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.
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
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
INHIB
CP270 Only
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.
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
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
INITMA
0 (Manual) if INITMA = 0
1 (Auto) if INITMA = 1
The MA value from the checkpoint file if INITMA = 2.
INI_PT
309
B0193AX Rev Z
FBM type and the fieldbus protocol of the attached device, as described
for PNT_NO on page 312.
310
IOM_ID
LOCKID
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
MANFS
CP270 Only
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
OWNER
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
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.
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
SECTIM
SET
SETFS
SIMOPT
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
313
B0193AX Rev Z
314
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
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.
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
315
B0193AX Rev Z
The PARENT parameter of the ECB201 specifies the associated FBM ECB hosting the field
device.
IOM_ID may also directly specify the parent FBM ECB to connect to a parameter resident in the
FBM itself.
316
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.
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
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.
318
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.
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
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.
320
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.16 Initialization
The BOUT block initializes whenever the block is restarted, there is a bad-to-good transition of
the status of COUT, or there is a true-to-false transition in the status of INI_PT (see
Section 12.5.15).
Initialization action consists of setting the read-back value from the output point into IN, SET,
COUT, and COUT_request. The cascade is then opened to force an upstream initialization. See
Section 12.5.17. A block output is sent to the output point at this time.
If the block is in Auto mode, and there has been a bad-to-good transition in the status of IN, the
read-back value is set into IN, and the cascade is opened as above. The definition of Bad for the
status of IN depends on EROPT.
321
B0193AX Rev Z
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.)
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.
B0193AX Rev Z
323
B0193AX Rev Z
324
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.
325
B0193AX Rev Z
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
B0193AX Rev Z
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.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
short integer
no-con/no-set
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
string
no-con/no-set
2 blanks
up to 32 characters
IOMID2
string
no-con/no-set
2 blanks
up to 32 characters
IOMID3
string
no-con/no-set
2 blanks
up to 32 characters
CO1_PT
string
no-con/no-set
blank
device specific
CO2_PT
string
no-con/no-set
blank
device specific
CO3_PT
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
boolean
no-con/no-set
0 = non-redundant ecbs
1 = redundant ecbs
AUTSW
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
IN
binary input
boolean
con/set
0 to 1
INI_PT
string
no-con/no-set
2 blanks
device specific
MANSW
boolean
con/set
0 to 1
PRIBLK
short integer
no-con/no-set
0 to 1
PRITIM
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
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
boolean
no-con/no-set
0 to 1
BAT
string
no-con/no-set
blank
1 to 32 chars
BAP
integer
con/set
1 to 5
BAG
short
no-con/set
1 to 8
328
B0193AX Rev Z
Description
Type
Accessibility Default
Units/Range
AMRTIN
integer
no-con/no-set
0 to32767 sec
SETFS
boolean
con/set
0 to 1
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
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
boolean
no-con/no-set
(shadow)
CRBK_1
boolean
con/no-set
0 to 1
CRBK_2
boolean
con/no-set
0 to 1
CRBK_3
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
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
character
no-con/no-set
2 blanks
1 to 6 characters
DEVID2
character
no-con/no-set
2 blanks
1 to 6 characters
DEVID3
character
no-con/no-set
2 blanks
1 to 6 characters
ERCODE
configuration error
string
no-con/no-set
2 blanks
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
329
B0193AX Rev Z
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)
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
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
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
B0193AX Rev Z
AMRTIN
CP270 Only
ARBOPT
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
BAO
CP270 Only
BAT
CP270 Only
BKCO
BLKSTA
331
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
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
332
CO1_PT
CO2_PT
CO3_PT
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.
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
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
DEVID1
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
ECBOPT
B0193AX Rev Z
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
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
B0193AX Rev Z
the initial output value when the BOUTR block is installed or when the
control processor is rebooted.
FSOPTN
INHIB
CP270 Only
INHOPT
CP270 Only
Inhibit Option specifies the following actions applying to all block alarms:
335
B0193AX Rev Z
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
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
INITMA
INI_PT
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
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
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
MANFS
CP270 Only
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
OWNER
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
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
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
340
RBKTIM
SECTIM
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
SET
SETFS
SIMOPT
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,
B0193AX Rev Z
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
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.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
342
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.
ARBOPT = 0 (DMR)
ARBOPT = 1 (TMR)
ARBOPT = 0 (DMR)
ARBOPT = 1 (TMR)
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.
343
B0193AX Rev Z
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.
344
B0193AX Rev Z
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).
345
B0193AX Rev Z
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
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.
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.
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.
B0193AX Rev Z
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.
348
B0193AX Rev Z
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
350
B0193AX Rev Z
Type
BAD I/O
Option
BAO
Priority
Group
BAG
Text
BAT
Default
Display
Indicator
Parameter
IOBAD
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.
351
B0193AX Rev Z
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.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)
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
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.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
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
short
no-con/no-set
0 to 13
PHASE
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
string
no-con/no-set
specifiable
BI01 to BI16
boolean input 1 to 16
boolean
con/set
0 to 1
integer
con/set
---
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
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
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
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
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
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
no-con/no-set
100,0,1
specifiable
RO1 to RO4
no-con/set
100,0,1
specifiable
BI01 to BI16
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
B0193AX Rev Z
Bit
Number*
(0 to 31)
11
14
15
20
Name
Boolean
Connection
(B32 to B1)
MA
UDEF
ON
WLCK
BLKSTA.B21
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12
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
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
B0193AX Rev Z
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 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
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
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
IO01 to IO06
LI01 to LI02
LO01 to LO02
LOCKID
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
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
NAME
OWNER
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.)
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
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
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
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.
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.
362
B0193AX Rev Z
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
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
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
B0193AX Rev Z
Name
NXOX
OR
ORX
XOR
XORX
Function
Instruction Type
Maximum Positive
Minimum Negative
32767
2147483647
-32768
-2147483648
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
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
Name
PRI
PRO
PRP
Function
Propagate Upstream
Propagate Downstream
Propagate Errors
Instruction Type
Cascade/Propagation
Cascade
Propagation
366
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
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
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
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
368
B0193AX Rev Z
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
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
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.
370
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.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
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.
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
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.
IN RI01
ADD RI02
STEP03
ADD RI03
STEP04
STEP05
IN 3
DIV
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
373
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 14-5 shows the stack
operation for each program instruction.
STEP01
STEP02
STEP03
STEP04
STEP05
IN RI01
IN RI02
IN RI03
IN RI04
AVE
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
B0193AX Rev Z
(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
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
(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
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
12 IN BI01
13 IN BI07
14 IN BO03
15 IN BI14
16 AND
Example 2:
11 CST
12 IN BI01
13 AND BI02
14 AND ~BI03
378
ANDX
ANDX c
B0193AX Rev Z
12 IN BI01
13 IN II01
14 IN II02
15 ANDX
ASIN
(Arc Sine)
ASIN reads the value (sine function value) in the accumulator and com-
putes the value, in radians, of the first or fourth quadrant angle that has
this sine value. It then stores the angle value into the accumulator, 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
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
B0193AX Rev Z
Example 1:
11 CST
12 IN RI01
13 IN RI02
14 IN RI03
15 IN RI04
16 AVE
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
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.
382
B0193AX Rev Z
(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
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
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}
383
B0193AX Rev Z
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
(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
(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.
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
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
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
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
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
BI01
7 sec
7 sec
BO04
Figure 14-7. Timing Diagram for DON Example
DUP
388
(Duplicate)
B0193AX Rev Z
DUP copies the last stack operand back onto the stack. The stack pointer is
(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
(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
B0193AX Rev Z
(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
17 IDIV M03
IMOD
(Integer Modulus)
IMOD reads the values from the top two stack locations, truncates each into
integer form, decrements the stack pointer, and writes the integer modulus
of the first divided by the second truncated value into the new accumulator location (the new top of stack location). This overwrites the first operand and isolates the second operand from any further access. The integer
modulus is defined as the remainder after an integer division, and is
always a whole number. sptr(after) = sptr(before) - 1.
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
INB
INB {IIxx, Mxx}
B0193AX Rev Z
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
Example 2:
11 INC M02
M02 = 11.2
Increments M02 by 1.
M02 = 12.2
INR
INR {IIxx, Mxx}
(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
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
LN
(Natural Logarithm)
LN reads the value (which must be positive) in the accumulator, computes
the natural (base e) logarithm of the value, and writes the result to the
accumulator, overwriting the original contents. sptr(after) = sptr(before).
An attempt to execute this instruction with a zero or negative value in the
accumulator causes the instruction to be skipped and writes an 8 (LN
run-time error) to the PERROR parameter.
Example 1:
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
(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
B0193AX Rev Z
13 IN RI02
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
397
B0193AX Rev Z
16 MEDN
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
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
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
15 OUT BO01
(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
B0193AX Rev Z
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}
401
B0193AX Rev Z
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
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
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
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}
B0193AX Rev Z
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
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.
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
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}
B0193AX Rev Z
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
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
NXOX
NXOX c
B0193AX Rev Z
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
12 IN BI01
13 IN BI07
14 IN BO03
15 IN BI14
16 OR
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
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
(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
13 OUT BO04
BI01
5 sec
BO04
Figure 14-8. Timing Diagram for OSP Example
(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
B0193AX Rev Z
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
(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
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
(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
where:
1 0
{
{
RI08
RI08
RI06
RI05
RI04
RI03
RI02
RI01
RAND
412
H29
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
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
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).
B0193AX Rev Z
Example 1:
16...
17 RND
Example 2:
26...
27 RND
(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}
415
B0193AX Rev Z
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
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
B0193AX Rev Z
(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
(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
(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
Example:
17 SQRT
Accumulator = +49.0000
Computes square root of accumulator
Accumulator = +7.00000
418
B0193AX Rev Z
419
B0193AX Rev Z
STL LOxx
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
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
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
TIM
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
XOR
XOR c
XOR {BIxx, BOxx, Ixx, Oxx, Mxx, ~BIxx, ~BOxx, ~Ixx, ~Oxx, ~Mxx}
422
B0193AX Rev Z
12 IN BI01
13 IN BI07
14 IN BO03
15 IN BI14
16 XOR
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
13 IN II01
14 IN II02
423
B0193AX Rev Z
15 IN LI01
16 XORX 3
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
B0193AX Rev Z
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
425
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 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
CST
IN RI01
IN RI02
STEP04
IN RI03
STEP05
IN RI04
STEP06
AVE
B0193AX Rev Z
Branching Example:
RI01
Program function:
To select either of two
real inputs based on the
BI01
SELECTOR LOGIC
IN CALC BLK
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
427
B0193AX Rev Z
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
B0193AX Rev Z
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
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
430
Stack
Pop
B0193AX Rev Z
RI01
Measurement
CALC Block
Program
RO01
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
431
B0193AX Rev Z
432
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
The differences between the CALCA, CALC, MATH, and LOGIC blocks are summarized in
Table 15-1.
433
B0193AX Rev Z
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
434
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
short
no-con/no-set
0 to 10
435
B0193AX Rev Z
Description
Type
Accessibility
Default
Units/Range
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
con/set
0 to 1
II01 to II02
integer input 1 to 2
con/set
---
LI01 to LI02
long
con/set
---
MA
manual/auto
boolean
con/set
0 to 1
INITMA
initialize MA
short
no-con/no-set
0 to 2
TIMINI
short_int
no-con/set
0 to 3
M01 to M24
memory 1 to 24
real
STEP01 to STEP50
integer
no-con/no-set
0.0
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
con/no-set
0 to 1
IO01 to IO06
integer output 1 to 6
integer
con/no-set
---
LO01 to LO02
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
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
436
ACHNGE
BI01 to BI16
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)
BLKSTA.B21
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12
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
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
INITMA
IO01 to IO06
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
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
B0193AX Rev Z
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
NAME
OWNER
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
*
**
***
****
*****
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
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.
3=
TYPE
B0193AX Rev Z
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.
441
B0193AX Rev Z
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
B0193AX Rev Z
Name
TAN
TRC
Function
Tangent
Truncate
Instruction Type
Unary
Unary
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
443
B0193AX Rev Z
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
Name
PRI
PRO
PRP
444
Function
Propagate Upstream
Propagate Downstream
Propagate Errors
Instruction Type
Cascade/Propagation
Cascade
Propagation
B0193AX Rev Z
Name
CLA
CLM
CST
DUP
LAC
LACI
POP
STM
STMI
TSTB
Function
Instruction Type
Memory
Memory
Stack
Stack
Memory/Stack
Memory/Stack
Stack
Memory/Stack
Memory/Stack
Stack
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
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
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
446
B0193AX Rev Z
Name
FF
MRS
Function
Flip-Flop
Master Reset Flip-Flop
Instruction Type
Logic
Logic
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.
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 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.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
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.
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
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.
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.
S1
Sum1
S2
Sum2
S1
Sum1
ADD
S1
Sum3
DIV
IN 4
S2
S1
Sum3
S1
Quotient
Stack
Registers
(up to 24)
LEGEND:
Stack
Push
450
Stack
Pop
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
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
451
B0193AX Rev Z
(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
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.
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
(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
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:
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).
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
Example 1:
11 CST
12 IN BI01
13 IN BI07
14 IN BO03
15 IN BI14
16 AND
Example 2:
11 IN BI02
ANDX
ANDX c
456
12 IN BI01
13 IN II01
14 IN II02
15 ANDX
ASIN
B0193AX Rev Z
(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
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
15 IN RI04
16 AVE
B0193AX Rev Z
Example 2:
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
459
B0193AX Rev Z
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.
(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
(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.
B0193AX Rev Z
Accumulator = +0.6734592
Example 2:
27 CHS
Accumulator = +0.1086372
Change sign of accumulator.
Accumulator = -0.1086372
CLA
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}
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
461
B0193AX Rev Z
(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
(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
B0193AX Rev Z
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
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
B0193AX Rev Z
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
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
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
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).
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:
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
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
468
B0193AX Rev Z
(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 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
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
INR
INR {IIxx, Mxx}
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
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
472
Definition
B0193AX Rev Z
12 IN 9
13 STM M05
14 LACI M04
15 OUT RO01
LN
(Natural Logarithm)
LN reads the value (which must be positive) in the accumulator, computes
the natural (base e) logarithm of the value, and writes the result to the
accumulator, overwriting the original contents. sptr(after) = sptr(before).
An attempt to execute this instruction with a zero or negative value in the
accumulator causes the instruction to be skipped and writes an 8 (LN
run-time error) to the PERROR parameter.
Example 1:
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
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
B0193AX Rev Z
16 MAX
Example 2:
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
475
B0193AX Rev Z
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
B0193AX Rev Z
16 MIN
Example 2:
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
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
14 MRS
15 OUT BO01
(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
B0193AX Rev Z
RI01 = 12.3485
M01 = 3.73182
Multiplies RI01 by M01 and stores the result
on the stack.
Accumulator = 46.08238
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}
479
B0193AX Rev Z
12 IN BI01
13 IN BI07
14 IN BO03
15 IN BI14
16 NAND
Example 2:
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
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}
481
B0193AX Rev Z
12 IN BI01
13 IN BI07
14 IN BO03
15 IN BI14
16 NOR
Example 2:
482
BI04 = False
BO01 = True
Performs the logical NOR of BI04 and BO01
and stores the result on the stack.
Accumulator = False
NORX
NORX c
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
483
B0193AX Rev Z
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}
484
B0193AX Rev Z
Example 1:
11 CST
12 IN BI01
13 IN BI07
14 IN BO03
15 IN BI14
16 NXOR
Example 2:
NXOX
NXOX c
BI04 = False
BO01 = True
Performs the logical NXOR of BI04 and
BO01 and stores the result on the stack.
Accumulator = False
485
B0193AX Rev Z
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
B0193AX Rev Z
Example 1:
11 CST
12 IN BI01
13 IN BI07
14 IN BO03
15 IN BI14
16 OR
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
487
B0193AX Rev Z
Example:
11 CST
12 IN BI01
13 IN II01
14 IN II02
15 IN RI01
16 ORX
OSP
OSP t
OSP Mxx
488
(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
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
BI01
5 sec
BO04
Figure 15-7. Timing Diagram for OSP Example
(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
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
(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.
B0193AX Rev Z
Example:
41 IN 5
42 PRO RO03
PRP ROxx
(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:
where:
1 0
{
{
RI08
RI08
RI06
RI05
RI04
RI03
RI02
RI01
H29
RAND
RANG
491
B0193AX Rev Z
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}
492
B0193AX Rev Z
(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
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.
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)
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}
494
B0193AX Rev Z
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
495
B0193AX Rev Z
SIEC
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
(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
(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
B0193AX Rev Z
497
B0193AX Rev Z
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}
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
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
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:
M01 = 3.73182
RI01 = 12.3485
Substracts M01 from RI01 and stores the result
on the stack
Accumulator = +8.61668
499
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
TIM
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
TSTB
TSTB b
B0193AX Rev Z
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}
501
B0193AX Rev Z
Example 1:
11 CST
12 IN BI01
13 IN BI07
14 IN BO03
15 IN BI14
16 XOR
Example 2:
XORX
XORX c
BI04 = False
BO01 = True
Performs the logical XOR of BI04 and BO01
and stores the result on the stack.
Accumulator = True
502
13 IN II01
14 IN II02
15 IN LI01
16 XORX 3
B0193AX Rev Z
B0193AX Rev Z
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
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
STEP02
OUT RO01
CST
IN RI01
IN RI02
STEP04
IN RI03
STEP05
IN RI04
STEP06
AVE
505
B0193AX Rev Z
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
506
B0193AX Rev Z
Prod1
Prod2
Diff
4
Quotient
Root
Prod3
Figure 15-9. Arithmetic Chaining Example, Operation Sequence
STEP01
STEP02
STEP03
STEP04
IN 1
SUB
STEP05
DIV
STEP06
SQRT
STEP07
MUL RI05
STEP08
OUT RO01
STEP9
END
507
B0193AX Rev Z
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
RI01
Measurement
CALCA Block
Program
RO01
Example:
STEP01
STEP02
STEP03
STEP04
STEP05
STEP06
508
SUB RI01 90
BIN 5
IN 90
GTO 10
SUB RI01 10
BIP 09
STEP07
STEP08
STEP09
STEP10
STEP11
IN 10
GTO 10
IN RI01
OUT RO01
END
B0193AX Rev Z
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
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.
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.
511
B0193AX Rev Z
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
short
no-con/no-set
0 to 13
PHASE
integer
no-con/no-set
---
LOOPID
loopid
string
no-con/set
blank
1 to 32 chars
EXTOPT
short
no-con/no-set
[0..2]
MEAS
process input
real
con/set
0.0
RI1
HSCI1
real
no-con/no-set
100.0
specifiable
LSCI1
real
no-con/no-set
0.0
specifiable
DELTI1
real
no-con/no-set
1.0
percent
EI1
string
no-con/no-set
specifiable
PRIBLK
no-con/no-set
0 to 1
PRITIM
no-con/no-set
0.0
seconds
real
BCALCI
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
boolean
no-con/no-set
0 to 1
HSCO1
real
no-con/no-set
100.0
specifiable
LSCO1
real
no-con/no-set
0.0
specifiable
DELTO1
real
no-con/no-set
1.0
percent
EO1
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
B0193AX Rev Z
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
integer
no-con/no-set
0 to 32767 s
pack_l
con/no-set
bit map
Non-Configurable Parameters
OUTPUTS
ALMSTA
alarm status
BCALCO
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
real[3]
no-con/no-set
100,0,1
specifiable
RO1
real[3]
no-con/no-set
100,0,1
specifiable
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
Bit Number*
(0 to 31)
0
1
7
28
Boolean Connection
(B32 to B1)
ALMOPT.B32
ALMOPT.B31
ALMOPT.B25
ALMOPT.B4
Bit
Number
(0 to 31)*
CRIT
Name
0 to 4
PTYP_MSK
5 to 7
CRIT_MSK
28
29
30
OOR
INH
UNAK
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
514
AMRTIN
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
B0193AX Rev Z
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
MA
UDEF
ON
WLCK
MAO
Boolean
Connection
(B32 to B1)
BLKSTA.B21
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12
BLKSTA.B6
CRIT
515
B0193AX Rev Z
516
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
EI1
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
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:
B0193AX Rev Z
Message
W43 INVALID PERIOD/
PHASE COMBINATION
W44 INVALID
ENGINEERING RANGE
W46 INVALID INPUT
CONNECTION
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.
2=
517
B0193AX Rev Z
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.
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.
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=
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
OOR
INH
UNACK
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
519
B0193AX Rev Z
INITMA
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
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.
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
MEAS
NAME
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
521
B0193AX Rev Z
ORAP
ORAT
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
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
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
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
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
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
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
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-
B0193AX Rev Z
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
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
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
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:
528
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
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
531
B0193AX Rev Z
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
short
no-con/no-set
0 to 13
PHASE
integer
no-con/no-set
---
LOOPID
loop identifier
string
no-con/set
blank
1 to 32 chars
IOMOPT
boolean
no-con/no-set
0 to 1
IOM_ID
FBM identifier
string
no-con/no-set
blank
1 to 6 chars
PNT_NO
string
no-con/no-set
1 to 32
ANM
string
no-con/no-set
blank
1 to 12 chars
NM0
string
no-con/no-set
blank
1 to 12 chars
NM1
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
B0193AX Rev Z
Description
Type
Accessibility
Default
Units/Range
INVALM
boolean
no-con/no-set
0 to 1
MANALM
short
no-con/no-set
0 to 1
SAO
boolean
no-con/no-set
0 to 1
SAP
integer
con/set
1 to 5
SAG
short
no-con/set
1 to 8
BAO
boolean
no-con/no-set
0 to 1
BAT
string
no-con/no-set
blank
1 to 32 chars
BAP
integer
con/set
1 to 5
BAG
short
no-con/set
1 to 8
SCOPT
short
no-con/no-set
0 to 3
SCGRP
short
no-con/set
1 to 8
SCTXT0
string
no-con/no-set
blank
1 to 32 chars
SCTXT1
string
no-con/no-set
blank
1 to 32 chars
PROPT
boolean
no-con/no-set
0 to 1
IN
input
boolean
con/set
0 to 1
AMRTIN
integer
no-con/no-set
0 to 32767 s
NASTDB
long integer
no-con/no-set
0-2147483647 ms
NASOPT
short
no-con/no-set
0 to 2
bit map
Non-Configurable Parameters
OUTPUTS
ALMSTA
alarm status
pack_l
con/no-set
BAD
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
B0193AX Rev Z
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)
Boolean
Connection
(B32 to B1)
0 (Least Significant)
1
7
22
26
ALMOPT.B32
ALMOPT.B31
ALMOPT.B25
ALMOPT.B10
ALMOPT.B6
Bit
Number*
(0 to 31)
0 to 4
(Least Significant)
5 to 7
534
Name
PTYP_MSK
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
B0193AX Rev Z
Bit
Number*
(0 to 31)
Name
22
26
30
Boolean
Connection
(B32 to B1)
BAD
STA
UNAK
ALMSTA.B10
ALMSTA.B6
ALMSTA.B2
ANM
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
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
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
Bit
Number*
(0 to 31)
8
11
12
14
15
20
Name
FBM
MA
BAD
UDEF
ON
WLCK
Boolean
Connection
(B32 to B1)
BLKSTA.B24
BLKSTA.B21
BLKSTA.B20
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12
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
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
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:
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)
6
10
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
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=
537
B0193AX Rev Z
2=
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
22
26
BAD
STA
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
INITMA
538
INVALM
B0193AX Rev Z
1=
In any case, State alarm detection is disabled when option SAO is false.
IOMOPT
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
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
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
MANALM
NAME
NASOPT
NASTDB
NM0
B0193AX Rev Z
NM1
OWNER
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
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
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
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
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
SAG
State Alarm Group is a short integer input that directs State alarm messages to one of eight groups of alarm devices.
SAO
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
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
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.
IOM_ID
PNT_NO
AND
SCTXT0
SCTXT1
AND
STATE
Alarming
IVO
FROM
ECB
IN
(M)
SAO
IOMOPT
1
INVALM
Point
Inversion
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
544
AND
CIN.OOS
B0193AX Rev Z
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
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
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
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
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)
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)
B0193AX Rev Z
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.
548
B0193AX Rev Z
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
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
BO02
COUT
BO01
LOGIC
Program
Flow
Switch
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
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
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
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
551
B0193AX Rev Z
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
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
554
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.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
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
short
no-con/no-set
0 to 13
PHASE
integer
no-con/no-set
LOOPID
loop identifier
string
no-con/set
blank
1 to 32 chars
IOMOPT
boolean
no-con/no-set
0 to 1
IOM_ID
string
no-con/no-set
blank
1 to 25 chars
IOMIDR
string
no-con/no-set
blank
1 to 25 chars
PNT_NO
string
no-con/no-set
1 to 32
ANM
string
no-con/no-set
blank
1 to 32 chars
NM0
string
no-con/no-set
blank
1 to 32 chars
NM1
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
short
no-con/no-set
0 to 3
INHIB
alarm inhibit
boolean
con/set
0 to 1
INHALM
pack_b
con/set
0 to FFFF
INVALM
boolean
no-con/no-set
0 to 1
MANALM
short
no-con/no-set
0 to 1
SAO
boolean
no-con/no-set
0 to 1
SAP
short
con/set
1 to 5
SAG
short
no-con/set
1 to 8
BAO
boolean
no-con/no-set
0 to 1
BAT
string
no-con/no-set
blank
1 to 32 chars
BAP
integer
con/set
1 to 5
BAG
short
no-con/set
1 to 8
SCOPT
short
no-con/no-set
0 to 3
SCGRP
short
no-con/no-set
1 to 8
SCTXT0
string
no-con/no-set
blank
1 to 32 chars
SCTXT1
string
no-con/no-set
blank
1 to 32 chars
SELOPT
select option
short
no-con/no-set
0 to 2
CIN_P
boolean
con/set
0 to 1
CIN_S
boolean
con/set
0 to 1
AMRTIN
integer
no-con/set
0 to 32767 s
NASTDB
long
no-con/set
0 to 2147483647 ms
NASOPT
short
no-con/no-set
0 to 2
557
B0193AX Rev Z
Description
Type
Accessibility
Default
Units/Range
Non-Configurable Parameters
OUTPUTS
ALMSTA
alarm status
pack_l
con/no-set
BAD
boolean
con/no-set
0 to 1
BLKSTA
block status
pack_l
con/no-set
CIN
contact input
boolean
con/no-set
0 to 1
CRIT
alarm criticality
integer
con/no-set
0 to 5
INHSTA
pack_l
con/no-set
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
DEFINE
no configuration errors
boolean
no-con/no-set
0 to 1
DEV_ID
char[6]
no-con/no-set
blank
1 to 6 chars
DEVIDR
char[6]
no-con/no-set
blank
1 to 6 chars
ERCODE
string
no-con/no-set
blank
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
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
B0193AX Rev Z
Bit Number*
(0 to 31)
0 (Least Significant)
1
2
3
4
5
6
7
14
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
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
Boolean
Connection
(B32 to B1)
PRTYPE
ALMSTA.B18
ALMSTA.B17
0 to 4
(Least
Significant)
5 to 7
CRIT
14
15
BAD_S
BAD_P
559
B0193AX Rev Z
Bit
Number*(
0 to 31)
22
26
30
31
Name
BAD
STA
--UNACK
Boolean
Connection
(B32 to B1)
ALMSTA.B10
ALMSTA.B6
ALMSTA.B2
ALMSTA.B1
560
AMRTIN
ANM
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
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
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
Boolean
Connection
(B32 to B1)
BIOR
FBM
FBMR
MA
BIO
UDEF
ON
WLCK
BLKSTA.B31
BLKSTA.B24
BLKSTA.B23
BLKSTA.B21
BLKSTA.B20
BLKSTA.B18
BLKSTA.B17
BLKSTA.B12
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
CRIT
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
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
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
B0193AX Rev Z
Bit
Number*
(0 to 15)
6
10
Boolean Connection
(B16 to B1)
INHALM.B10
INHALM.B6
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=
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
Bit
Number*
(0 to 31)
Name
14
BAD_S
15
BAD_P
22
26
BAD
STA
Boolean
Connection
(B32 to B1)
INHSTA.B18
INHSTA.B17
INHSTA.B10
INHSTA.B6
INITMA
INVALM
1=
In any case, State alarm detection is disabled when option SAO is false.
564
IOMOPT
B0193AX Rev Z
IOM_ID
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
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
MA
MANALM
NAME
NASOPT
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
NM0
NM1
OWNER
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
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
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
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
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
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
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
AND
OR
CIN_P.BAD
CIN_S.BAD
AND
BAD
OR
CIN.BAD
AND
MA = 1
OR
BAO
AND
BAD
Alarming
MA = 0
MANALM = 1
AND
571
B0193AX Rev Z
572
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.
573
B0193AX Rev Z
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
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
B0193AX Rev Z
575
B0193AX Rev Z
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
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
577
B0193AX Rev Z
Alarm Level
Sequence State
Alarm Notification
Compound
578
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.
Descriptor
On/Off
579
B0193AX Rev Z
Additionally, parameters are defined as being configurable, and either connectable/settable, not
connectable/not settable, or a combination that is dependent upon the compound, block, and
state.
Out-of-Service 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
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.
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.
581
B0193AX Rev Z
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
short
no-con/no-set
0 to 13
PHASE
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
B0193AX Rev Z
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
integer
no-con/no-set
blank
1 to 12 chars
GR2FD1 TO
GR2FD8
integer
no-con/no-set
blank
1 to 12 chars
GR3FD1 TO
GR3FD8
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
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
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.
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.
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
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
! 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
SSTATE
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.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.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.
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
short
no-con/no-set
0 to 13
PHASE
integer
no-con/no-set
---
LOOPID
loop identifier
string
no-con/set
blank
1 to 32 chars
IOMOPT
boolean
no-con/no-set
0 to 1
IOM_ID
FBM identifier
string
no-con/no-set
blank
1 to 6 chars
PNT_NO
string
no-con/no-set
1 to 32
IN
generic input
boolean
con/set
0 to 1
PROPT
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
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
boolean
no-con/no-set
0 to 1
BAT
string
no-con/no-set
blank
1 to 32 chars
BAP
integer
con/set
1 to 5
BAG
short
no-con/set
1 to 8
DEV_ID
FBM Letterbug
char[6]
no-con/no-set
blank
1 to 6 chars
AMRTIN
integer
no-con/no-set
0 to 32767 s
pack_l
con/no-set
bit map
Non-Configurable Parameters
OUTPUTS
ALMSTA
alarm status
BAD
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
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
---
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
Boolean Connection
(B32 to B1)
ALMOPT.B32
ALMOPT.B31
ALMOPT.B25
ALMOPT.B10
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
Bit
Number*
(0 to 31)
CRIT
Name
0 to 4
(Least Significant)
5 to 7
PTYP_MSK
CRIT_MSK
22
30
BAD
UNAK
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
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
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
591
B0193AX Rev Z
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
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
592
COUT
CRBK
CRIT
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.
B0193AX Rev Z
DESCRP
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
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
INHOPT
Inhibit Option specifies the following actions applying to all block alarms:
0=
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
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
594
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
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
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
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
NAME
OWNER
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
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
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
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
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
B0193AX Rev Z
20.5 Functions
20.5.1 Detailed Diagram
INVCO
PLSOPTWIDTH
Point
Inversion
IN
(M)
o
Pulsed
Output
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
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
599
B0193AX Rev Z
Electrical Type
FBM219
FBM241
FBM242
FBM09
FBM10
FBM11
FBM14
FBM15
FBM16
FBM17
FBM26
FBM27
FBC09
FBC10
FBC09
Redundant
FBC10
Redundant
NOTE
600
B0193AX Rev Z
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:
601
B0193AX Rev Z
602
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.
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
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.
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
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
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 #
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 #
B0193AX Rev Z
B0193AX Rev Z
NOTE
609
B0193AX Rev Z
610
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
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
612
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
613
B0193AX Rev Z
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
short
no-con/no-set
0 to 13
PHASE
integer
no-con/no-set
LOOPID
loop identifier
string
no-con/set
2 blanks
1 to 32 chars
IOMOPT
boolean
no-con/no-set
0 to 1
IOM_ID
string
no-con/no-set
2 blanks
1 to 25 chars
IOMIDR
string
no-con/no-set
blank
1 to 25 chars
PNT_NO
string
no-con/no-set
1 to 32
IN
generic input
boolean
con/set
0 to 1
PROPT
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
boolean
no-con/no-set
0 to 1
INHOPT
short
no-con/no-set
0 to 3
INHIB
alarm inhibit
boolean
con/set
0 to 1
BAO
boolean
no-con/no-set
0 to 1
BAT
string
no-con/no-set
2 blanks
1 to 32 chars
BAP
integer
con/set
1 to 5
BAG
short
no-con/set
1 to 8
AMRTIN
no-con/set
0 to 32767 seconds
Non-Configurable Parameters
OUTPUTS
ALMSTA
alarm status
pack_l
con/no-set
BAD
boolean
con/no-set
0 to 1
BLKSTA
block status
pack_l
con/no-set
COUT
contact output
boolean
con/no-set
0 to 1
CRBK_P
boolean
con/no-set
0 to 1
CRBK_S
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
pack_l
con/no-set
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
B0193AX Rev Z
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
DEFINE
no configuration errors
boolean
no-con/no-set
0 to 1
DEV_ID
char[6]
no-con/no-set
blank
1 to 6 chars
DEVIDR
char[6]
no-con/no-set
blank
1 to 6 chars
ERCODE
string
no-con/no-set
2 blanks
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
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
B0193AX Rev Z
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
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
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
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).
B0193AX Rev Z
BAT
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)
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
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
CRBK_S
B0193AX Rev Z
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
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
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
618
B0193AX Rev Z
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=
619
B0193AX Rev Z
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
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
620
INITMA
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.
IOMOPT
B0193AX Rev Z
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
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
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
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
MANFS
NAME
OWNER
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***
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
PROPT
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
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
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
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
626
B0193AX Rev Z
627
B0193AX Rev Z
When a healthy block output is in the failsafe state or transitions out of the failsafe
state.
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.
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
If the Bad Alarming Option is enabled (BAO = 1), bad alarming is active while
COUTR is in the Auto mode.
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).
630
B0193AX Rev Z
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).
B0193AX Rev Z
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.
632
B0193AX Rev Z
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
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.
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)
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
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.
636
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
short
no-con/no-set
0 to 13
PHASE
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
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
integer
no-con/set
100
0-32767
HSCI1
real
no-con/no-set
100.0
specifiable
LSCI1
real
no-con/no-set
0.0
specifiable
DELTI1
real
no-con/no-set
1.0
percent
EI1
string
no-con/no-set
specifiable
HSCO1
real
no-con/no-set
100.0
specifiable
LSCO1
real
no-con/no-set
0.0
specifiable
DELTO1
real
no-con/no-set
1.0
percent
EO1
string
no-con/no-set
specifiable
short
no-con/set
1 to 8
BI0001 to BI0024
boolean
con/set
0 to 1
II0001-II0008
long
con/set
---
RI0001 to RI0015
real
con/set
0.0
RI1
string
no-con/set
blank
---
OP_OPT
boolean
no-con/no-set
0 to 1
OP_PRI
alarm priority
integer
con/set
[1..5]
OP_GRP
integer
no-con/set
1 to 8
OP_TXT
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
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
Description
Type
Accessibility
Default
Units/Range
IO0001 to IO0005
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
real
SC_IND
long
con/no-set
---
STEPNO
executed step
long
con/no-set
---
STMNO
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
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
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
real[16]
no-con/set
0.0
1 to 16 reals
RI1
real[3]
no-con/no-set
100,0,1
specifiable
RO1
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
integer
no-con/no-set
-1
---
TRACRQ
trace request
short
no-con/set
---
638
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)
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)
ALMOPT.B32
ALMOPT.B31
ALMOPT.B25
Bit Number
(0 to 31)*
CRIT
Name
0 to 4
PTYP_MSK
5 to 7
CRIT_MSK
26
27
STAL
OPER
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
Bit Number
(0 to 31)*
Name
29
30
Boolean Connection
(B32 to B1)
INH
UNAK
Alarm inhibit
Unacknowledged
ALMSTA.B3
ALMSTA.B2
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
Boolean
Connection
(B32 to B1)
MA
UDEF
ON
ACT
PAUS
SBX
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
B0193AX Rev Z
BPCSTM
CRIT
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
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
DESCRP
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
641
B0193AX Rev Z
EO1
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
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).
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=
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
Bit
Number*
(0 to 31)
Name
26
27
STAL
OPER
29
30
INH
UNACK
Boolean
Connection
(B32 to B1)
INHSTA.B6
INHSTA.B5
INHSTA.B3
INHSTA.B2
644
LOCKID
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.
MA
B0193AX Rev Z
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
NAME
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
OP_ERR
OP_GRP
645
B0193AX Rev Z
OP_OPT
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
OWNER
PAUSED
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
B0193AX Rev Z
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
B0193AX Rev Z
RSTMA
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
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
STEPRQ
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
SUBRNO
SUSPND
TIMCNT
TOPEVL
Top of Evaluation Stack is an indexed specification of the top of the internal evaluation stack (data store for debugging use only).
TRACMD
TRACRQ
Indication
Not in trace mode
Subr-Trace mode
SBX-Trace mode
Request granted
Into Subr-Trace mode
Into SBX-Trace mode
Out of Trace mode
649
B0193AX Rev Z
When you enter DEP or select DEP from the block type list under
Show, an identifying integer is created specifying this block type.
UNACK
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
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
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
B0193AX Rev Z
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
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
Alarming
OUTINC 1
0
1
OUTDEC 0
OUTINC 1
0
1
OUTDEC 0
TRISTATE
Time
BISTATE
Time
655
B0193AX Rev Z
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
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
short
no-con/no-set
0 to 13
PHASE
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
real
no-con/no-set
100.0
specifiable
LSCI1, LSCI2
real
no-con/no-set
0.0
specifiable
DELTI, DELTI2
real
no-con/no-set
1.0
percent
EI1-EI2
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
short
no-con/no-set
[2,3]
GAP
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
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
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
Description
Type
Accessibility
Default
Units/Range
RSP
remote setpoint
real
con/set
0.0
RI1
STRKOP
short
no-con/no-set
[0|1|2]
MANALM
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
string
no-con/no-set
blank
1 to 32 chars
MALOPT
short
no-con/no-set
0 to 3
MEASHL
real
con/set
100.0
RI1
MEASHT
string
no-con/no-set
blank
1 to 32 chars
MEASLL
real
con/set
0.0
RI1
MEASLT
string
no-con/no-set
blank
1 to 32 chars
MEASDB
real
no-con/set
[0.0
RI1
MEASPR
integer
con/set
[1 to 5]
MEASGR
short
no-con/set
[1 to 8]
DALOPT
short
no-con/no-set
0 to 3
HDALIM
real
con/set
100.0
RI1
HDATXT
string
no-con/no-set
blank
1 to 32 chars
LDALIM
real
con/set
-100.0
RI1
LDATXT
string
no-con/no-set
blank
1 to 32 chars
DEVADB
real
no-con/set
[0.0
RI1
DEVPRI
integer
con/set
[1 to 5]
DEVGRP
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
string
no-con/no-set
blank
1 to 32 chars
LLALIM
real
con/set
0.0
RI1
LLATXT
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
integer
no-con/no-set
0 to 32767 s
NASTDB
long integer
no-con/no-set
0-2147483647 ms
NASOPT
short
no-con/no-set
0 to 2
Non-Configurable Parameters
OUTPUTS
ALMSTA
alarm status
pack_l
con/no-set
0 to FFFFFFFF
BCALCO
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
Boolean
con/no-set
0 to 1
HHAIND
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
B0193AX Rev Z
Description
Type
Accessibility
Default
Units/Range
LDAIND
Boolean
con/no-set
0 to 1
LLAIND
Boolean
con/no-set
0 to 1
MEASHI
Boolean
con/no-set
0 to 1
MEASLI
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
real[3]
no-con/no-set
100,0,1
specifiable
DATA STORES
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
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
Bit
Number*
(0 to 31)
Boolean Connection
(B32 to B1) or (Name)
for programming
7
16
660
Name
0 to 4
PTYP_MSK
5 to 7
CRIT_MSK
16
17
20
21
24
LMA
HMA
LDA
HDA
LLA
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
Bit
Number
(0 to 31)1
25
29
30
B0193AX Rev Z
Name
HHA
INH
UNAK
1.
Boolean
Connection
(B32 to B1)
ALMSTA.B7
ALMSTA.B3
ALMSTA.B2
AMRTIN
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:
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
Bit Number*
(0 to 31)
5
6
7
9
10
Name
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.
662
CRIT
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.
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
DEVADB
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
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
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
664
ERROR
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.
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
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
HHAPRI
HHATXT
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
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
Boolean Connection
(B16 to B1)
0
1
4
5
8
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
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
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
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
B0193AX Rev Z
The Initialize LR state is ignored if the LR input has an established linkage, or LOCSW or REMSW are set true.
INITMA
INITO
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.
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
LOCKID
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
LOCSW
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
669
B0193AX Rev Z
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
MALOPT
MANALM
MANSW
MBADOP
670
B0193AX Rev Z
of the MBADOP conditions are true, the block will be switched to Manual regardless of the MANSW and AUTSW settings.
MEAS
MEASDB
MEASGR
MEASHI
MEASHL
Measurement High Alarm Limit is a real input that defines the value of
the measurement that initiates a high absolute alarm.
MEASHT
MEASLI
MEASLL
Measurement Low Alarm Limit is a real input that defines the value of the
measurement that initiates a low absolute alarm.
MEASLT
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
MODOPT
NAME
671
B0193AX Rev Z
672
NASOPT
NASTDB
OUTDEC
OUTINC
OWNER
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
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
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
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
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
REMSW
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
SPT
STRKOP
675
B0193AX Rev Z
When you enter DGAP or select DGAP from the block type list
under Show, an identifying integer is created specifying this block type.
UNACK
676
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
677
B0193AX Rev Z
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).
678
B0193AX Rev Z
Deviation
50
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.
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
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.
680
B0193AX Rev Z
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.
681
B0193AX Rev Z
{MEASDB
{MEASDB
MEAS
GAP
MEASLL
LLALIM
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.
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
683
B0193AX Rev Z
MEAS
PID
OUT
RSP
DGAP
MEAS
FBK
BCALCI
BCALCO
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
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
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
687
B0193AX Rev Z
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.
B0193AX Rev Z
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
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
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.
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.
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.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
short
no-con/set
1 to 8
BAO
boolean
no-con/no-set
0 to 1
BAP
integer
con/set
1 to 5
BAT
string
no-con/no-set
2 blanks
1 to 32 chars
BBIAS
real
no-con/no-set
0.0
RO1
BIAS
bias of output
real
con/set
0.0
RI2
CEOPT
short
no-con/no-set
0 to 2
DALOPT
short
no-con/no-set
0 to 3
DELTI1
real
no-con/no-set
1.0
positive real%
DELTI2
real
no-con/no-set
1.0
positive real%
DELTO1
real
no-con/no-set
1.0
positive real%
DERIV
derivative time
real
con/set
0.0
0 to real minutes
692
B0193AX Rev Z
Description
Type
Accessibility
Default
Units/Range
DESCRP
block descriptor
string
no-con/no-set
2 blanks
1 to 32 chars
DEVADB
real
no-con/set
0.0
RI1
DEVGRP
short
no-con/set
1 to 8
DEVLIM
deviation limit
real
no-con/no-set
2.0%
RI1
DEVPRI
integer
con/set
1 to 5
DEVTIM
integer
no-con/no-set
0 to 32767
EI1
string
no-con/no-set
1 to 32 chars
EI2
string
no-con/no-set
1 to 32 chars
EIN
string
no-con/no-set
1 to 32 chars
EO1
string
no-con/no-set
1 to 32 chars
FLBOPT
fallback option
short
no-con/no-set
0 to 4
HDALIM
real
con/set
100.0
RI1
HDATXT
string
no-con/no-set
2 blanks
1 to 32 chars
HHAGRP
short
no-con/set
1 to 8
HHALIM
real
con/set
100.0
RI1
HHAOPT
short
no-con/no-set
0 to 3
HHAPRI
integer
con/set
1 to 5
HHATXT
string
no-con/no-set
2 blanks
1 to 32 chars
HOALIM
real
con/set
100.0
RO1
HOATXT
string
no-con/no-set
2 blanks
1 to 32 chars
HOLD
hold mode
boolean
con/set
0 to 1
HOLIM
real
con/set
100.0
RO1
HSCI1
real
no-con/no-set
100.0
HSCI2
real
no-con/no-set
100.0
HSCIN
real
no-con/no-set
100.0
HSCO1
real
no-con/no-set
100.0
HZONE
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
real
no-con/no-set
1.0
KD
derivative gain
real
con/set
10.0
positive real
KZONE
nonlinear gain
real
con/set
1.0
positive real
LDALIM
real
con/set
-100.0
RI1
LDATXT
string
no-con/no-set
2 blanks
1 to 32 chars
LLALIM
real
con/set
0.0
RI1
LLATXT
string
no-con/no-set
2 blanks
1 to 32 chars
LOALIM
real
con/set
0.0
RO1
LOATXT
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
Description
Type
Accessibility
Default
Units/Range
LOCSW
boolean
con/set
0 to 1
LOLIM
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
real
no-con/no-set
0.0
LSCI2
real
no-con/no-set
0.0
LSCIN
real
no-con/no-set
0.0
LSCO1
real
no-con/no-set
0.0
any real
LZONE
real
con/set
100.0
positive real %
MA
manual/auto
boolean
con/set
0 to 1
MALOPT
short
no-con/no-set
0 to 3
MANALM
short
no-con/no-set
0 to 4
MANSW
manual switch
boolean
con/set
0 to 1
MBADOP
short
no-con/no-set
[0|1|2]
MCLOPT
boolean
no-con/no-set
0 to 1
MEASDB
real
no-con/set
0.0
RI1
MEASGR
short
no-con/set
1 to 8
MEASHL
real
con/set
100.0
RI1
MEASHT
string
no-con/no-set
2 blanks
1 to 32 chars
MEASLL
real
con/set
0.0
RI1
MEASLT
string
no-con/no-set
2 blanks
1 to 32 chars
MEASNM
string
no-con/no-set
2 blanks
1 to 32 chars
MEASPR
integer
con/set
1 to 5
MODOPT
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
short
no-con/no-set
0 to 3
OSV
real
no-con/no-set
2.0
0.0 to 25.0%
OUTADB
real
no-con/set
0.0
RO1
OUTGRP
short
no-con/set
1 to 8
OUTNM
string
no-con/no-set
2 blanks
1 to 32 chars
OUTPRI
integer
con/set
1 to 5
PBAND
proportional band
real
con/set
1000.0
0.1 to real %
PERIOD
short
no-con/no-set
0 to 13
PHASE
integer
no-con/no-set
PRIBLK
primary block
boolean
no-con/no-set
0 to 1
PRITIM
real
no-con/no-set
0.0
seconds
PROPT
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
real
con/set
100.0
RI1
SPLLAG
setpoint lead/lag
real
con/set
1.0
RI1
SPLLIM
real
con/set
0.0
RI1
SPRAMP
boolean
con/set
0 to 1
694
B0193AX Rev Z
Description
Type
Accessibility
Default
Units/Range
SPRATE
real
con/set
0.0
unit/min or min
SPROPT
short
no-con/no-set
0 to 4
SPT
setpoint
real
con/set
0.0
RI1
SPTARG
real
con/set
0.0
RI1
STRKOP
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
integer
no-con/no-set
0 to 32767 s
NASTDB
NASOPT
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
long
con/set
0x00...0
0 to 0xFFFFFFFF
FFTBLK
con/set
0x00...0
0 to 0xFFFFFFFF
MEAS
measurement
real
con/set
0.0
RI1
real
con/set
0.0
RI1
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
boolean
con/no-set
0 to 1
BCALCO
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
con/no-set
0 to 1
HHAIND
boolean
con/no-set
0 to 1
HOAIND
boolean
con/no-set
0 to 1
HOLIND
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
con/no-set
0 to 1
LLAIND
boolean
con/no-set
0 to 1
LOAIND
boolean
con/no-set
0 to 1
695
B0193AX Rev Z
Description
Type
Accessibility
Default
Units/Range
LOLIND
boolean
con/no-set
0 to 1
MEASHI
boolean
con/no-set
0 to 1
MEASLI
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
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
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
---
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
Bit Number*
(0 to 31)
0
7
696
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
B0193AX Rev Z
Bit Number*
(0 to 31)
16
17
18
19
20
21
22
24
25
27
28
Boolean Connection
(B32 to B1)
ALMOPT.B16
ALMOPT.B15
ALMOPT.B14
ALMOPT.B13
ALMOPT.B12
ALMOPT.B11
ALMOPT.B10
ALMOPT.B8
ALMOPT.B7
ALMOPT.B5
ALMOPT.B4
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
Boolean Connection
(B32 to B1)
PRTYPE**
CRIT**
LMA
HMA
LOA
HOA
LDA
HDA
BAD
LLA
HHA
OOR
INH
----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
Name
UNACK
Boolean Connection
(B32 to B1)
Unacknowledged alarm
ALMSTA.B2
698
AMRTIN
AUTSW
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
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
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.
B0193AX Rev Z
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
DEV
B31
B32
MTN
B30
STN
PTN
B28
FOL
3
B29
B27
CTL
B26
B25
TRK
HLD
B22
LR
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
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=
700
CRIT
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.
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
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
DEVTIM
Deviation Time is a configurable integer value that specifies the delay time
for detecting a deviation alarm.
701
B0193AX Rev Z
702
DEV_ID
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
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
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
B0193AX Rev Z
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
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
703
B0193AX Rev Z
704
HHAPRI
HHATXT
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
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
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
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=
705
B0193AX Rev Z
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
16
17
18
19
20
21
22
24
25
28
29
LMA
HMA
LOA
HOA
LDA
HDA
BAD
LLA
HHA
OOR
INH
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
INITLR
Local
Remote
no change, except if a reboot, use the LR state specified in the
checkpoint file.
706
INITMA
B0193AX Rev Z
Manual
Auto
no change, except if a reboot, use the MA state specified in
the checkpoint file.
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
IOM_ID
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
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
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
709
B0193AX Rev Z
710
LOCSW
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
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
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
MANALM
MANSW
MBADOP
MCLOPT
711
B0193AX Rev Z
712
MEAS
MEAS01 to
MEAS03
MEASDB
MEASGR
MEASHI
MEASHL
Measurement High Alarm Limit is a real input that defines the value of
the measurement that initiates a high absolute alarm.
MEASHT
MEASLI
MEASLL
Measurement Low Alarm Limit is a real input that defines the value of the
measurement that initiates a low absolute alarm.
MEASLT
MEASNM
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
B0193AX Rev Z
NAME
NASOPT
NASTDB
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
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
B0193AX Rev Z
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
OUTPRI
OWNER
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
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
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
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
REMSW
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.
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
SELRQ
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
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
SPLLAG
SPLLIM
Setpoint Low Limit is a real input that specifies the lower limit for the
local setpoint value in engineering units.
SPRAMP
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.
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.
B0193AX Rev Z
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)
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
719
B0193AX Rev Z
STRKOP
SUPBCO
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
720
SUPGRP
SUPOPT
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
UNACK
721
B0193AX Rev Z
Description
Type
Accessibility
Default
Units/Range
bool
no-con/no-set
---
air-to-close
CHAREN
characterize enable
boolean
no-con/no-set
0 to 1
CYCTIM
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
short
no-con/no-set
0 to 255
FSOPT
failsafe option
short
no-con/no-set
0 to 4
HMSCAL
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
integer
no-con/no-set
64000
0 to 64000
HWTYPE
hardware type
short
no-con/no-set
4, 17, or 22
INVDFI
boolean
no-con/no-set
0 to 1
LMSCAL
integer
no-con/no-set
0 to 64000
LORVAL
lo out-of-range val
integer
no-con/no-set
0 to 64000
LOSCAL
integer
no-con/no-set
0 to 64000
NAME
block name
string
no-con/no-set
2 blanks
1 to 32 chars
NUMPTS
short
no-con/no-set
2 t0 9
OORENB
out-of-range enable
boolean
no-con/no-set
0 to 1
PERIOD
short
no-con/no-set
0 to 9
PHASE
integer
no-con/no-set
PNLOPT
panel option
boolean
no-con/set
0 to 1
REDOPT
redundancy option
short
no-con/no-set
0 to 2
SQRENB
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
---
integer
no-con/no-set
---
0 to 4000
integer
no-con/no-set
---
0 to 4000
a change
integer
con/no-set
-32768 to 32767
ECBSTA
ECB status
pack_l
con/no-set
0x00...0
0 to 0xFFFFFFFF
ACTION
pack_b
no-con/set
0 to 100
BUSWDS
short
no-con/no-set
0 to 1
DATA STORES
722
B0193AX Rev Z
Description
Type
Accessibility
Default
Units/Range
CYCLE
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
short
no-con/no-set
78
0 to 255
SWREV
software revision
char[12]
no-con/no-set
1 blank
0 to 12 chars
Bit Number
(0 to 15)
0
1
2
3
4
5
6
0
B16
B15
B14
B13
B12
B11
10
B10
11
B9
12
B8
13
B7
14
B6
B1
15
B5
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
723
B0193AX Rev Z
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
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
B0193AX Rev Z
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
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
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
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
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
726
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
HMSCAL
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
LMSCAL
727
B0193AX Rev Z
LORVAL
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
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
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
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
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
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
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
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
TYPE
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
B0193AX Rev Z
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.
731
732
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
fbr
Lag
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
Lag:
rf
Scale
Butterworth
Filter
c
1.0
meas3
meas2
SELRQ
meas1
DERIV*
KD*
MODOPT
SPLLAG*
Scale, Limit
Scale, Limit
RSP
SUP_IN
Scale, Limit
SPT
OUT2
Control
Output
OUT
BAD
B0193AX Rev Z
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
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
734
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
P Is
Is
1--- = 1--- + --1- K
I D D
B0193AX Rev Z
The controller algorithms can also be expressed in the time domain as follows:
Proportional only (P):
100
m b = --------- ( r c f )f r + b
P
1
m b = --- ( r c f ) dt f r + b
I 0
100 1
m b = --------- --- ( r c f ) dt + Ar c f r + b
P I 0
I D D
dc f 2 d c f
c f + ------- + ----- 2 = c
dt 2 d t
736
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
737
B0193AX Rev Z
738
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.
739
B0193AX Rev Z
PID
Block
OUT
PRIBLK = 1
RSP
MEAS
FBK
BCALCI
BCALCO
740
DPIDA
B0193AX Rev Z
741
B0193AX Rev Z
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.
742
B0193AX Rev Z
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.
743
B0193AX Rev Z
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
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
B0193AX Rev Z
745
B0193AX Rev Z
Supervisory
Application
Operator
Displays
SUPBCO
SUP_IN
SE
LR
SUPOPT
MEAS
PID
Block
OUT
DPIDA
Block
RSP
MEAS
FBK
BCALCI
BCALCO
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
B0193AX Rev Z
747
B0193AX Rev Z
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
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.
749
B0193AX Rev Z
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
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
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.
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
751
B0193AX Rev Z
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
B0193AX Rev Z
753
B0193AX Rev Z
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.
754
B0193AX Rev Z
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.
B0193AX Rev Z
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.
756
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
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.
B0193AX Rev Z
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
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
759
B0193AX Rev Z
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.
B0193AX Rev Z
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
761
B0193AX Rev Z
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
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
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
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
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
764
B0193AX Rev Z
Adapter
CALC
User Set Ratio
MATH
AIN
CHARC
RATIO
AIN
DPIDA
ECB52
MEAS
SPT
LOLIM
PBAND
INT
CP
ECB
OUT
FBM
MEAS
PID
Algorithm
Output
Cycle Time = 25 ms
FT
Inlet
PT
PT
Compressor
Outlet
Recycle
Valve
Surge is an unstable operating condition that takes place in centrifugal or axial compressors when
the flow through the machine decreases below a critical value. This results in a sudden reversal in
flow, causing the discharge line pressure to drop. When discharge line pressure drops sufficiently,
flow through the compressor is reestablished. The cycle continues and appears as an oscillation of
flow through the compressor.
Surge damages a compressor sometimes seriously. It may result in bent shafts, cracked housings,
or damaged bearings and impellers, sometimes accompanied by injury to personnel and damage
to buildings and associated process equipment.
765
B0193AX Rev Z
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
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.
The above is not a complete list of required parameters and is not specific to a particular surge control application.
767
B0193AX Rev Z
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.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.
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
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
integer
no-con/no-set
1 to 13
PHASE
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
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
Description
Type
Accessibility
Default
Units/Range
EI1 to EI3
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
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
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
770
ACHNGE
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
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
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
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
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
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.
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
LOCKID
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
LR_STA
773
B0193AX Rev Z
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
NAME
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).
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
WP_STA
Control
Processor
NOEDBUS
FBM001
CONTROL
PROCESSOR 30
40, or 40B
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
775
B0193AX Rev Z
to/from
other CPs
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
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
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.
DTIME
BLOCK
Output
Block Status
Data Collection Flag
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
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
short
no-con/no-set
0 to 13
PHASE
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
string
no-con/no-set
specifiable
Configurable Parameters
INPUTS
NAME
PROPT
propagate error
boolean
no-con/no-set
0 to 1
DTOPT
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
real
no-con/no-set
100.0
specifiable
LSCO1
real
no-con/no-set
0.0
specifiable
DELTO1
real
no-con/no-set
1.0
percent
EO1
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
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
real
no-con/no-set
1.0
---
DATA STORES
780
B0193AX Rev Z
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
real[3]
no-con/no-set
100,0,1
specifiable
RO1
real[3]
no-con/no-set
100,0,1
specifiable
BKT_1 to BKT_n
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
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
781
B0193AX Rev Z
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 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.
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
DESCRP
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
B0193AX Rev Z
DTFLAG
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
EO1
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
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
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
LOCKID
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.
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
MEAS
NAME
NUMBKT
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
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
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
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.
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.
787
B0193AX Rev Z
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
788