Campbell Scientific CR1000KD CR1000 Measurement and Control System - Page 227

Bool8 Data Type

Page 227 highlights

Section 7. Installation '3) sample time to three string forms using the TableName.FieldName notation. 'Form 1: "mm/dd/yyyy hr:mm:ss UTTime(1) = TimeTable.TimeLong(1,1) 'Form 2: "dd/mm/yyyy hr:mm:ss UTTime(2) = TimeTable.TimeLong(3,1) 'Form 3: "ccyy-mm-dd hr:mm:ss (ISO 8601 Int'l Date) UTTime(3) = TimeTable.TimeLong(4,1) NextScan EndProg 7.8.11 Bool8 Data Type Boolean variables are used to represent conditions that have only two states -- true or false -- such as program-control flags and hardware-control ports. A BOOLEAN data-type variable uses the same four-byte integer format as a LONG data type, but it can be set to only one of two values. To save data-storage space and data transmission bandwidth, consider using BOOL8 format to store data in final-storage data tables. BOOL8 is a one-byte variable that holds eight bits of information (8 states * 1 bit per state). To store the same information using the 32-bit BOOLEAN data type, 256 bits are required (8 states * 32 bits per state). When programming with BOOL8, repetitions in the output processing DataTable() instruction must be divisible by two, since an odd number of bytes cannot be stored. Also note that when the CR1000 converts a LONG or FLOAT data type to BOOL8, only the least significant eight bits of the binary equivalent are used, i.e., only the binary representation of the decimal integer modulo divide (p. 458) 256 is used. Example: Given: LONG integer 5435 Find: BOOL8 representation of 5435 Solution: 5435 / 256 = 21.2304687 0.2304687 * 256 = 59 Binary representation of 59 = 00111011 (CR1000 stores these bits in reverse order) When datalogger support software (p. 77) retrieves the BOOL8 data type, it splits it apart into eight fields of -1 or 0 when storing to an ASCII file. Consequently, more memory is required for the ASCII file, but CR1000 memory is conserved. The compact BOOL8 data type also results in less use of telecommunications band width when data are collected. CRBasic example Bool8 and Bit-Shift Operators (p. 229) programs the CR1000 to monitor the state of 32 'alarms' as a tutorial exercise. The alarms are toggled by manually entering zero or non-zero (e.g., 0 or 1) in each public variable representing an alarm as shown in figure Alarms Toggled in Bit-Shift Example (p. 228) . Samples of the four public variables FlagsBool(1), FlagsBool(2), FlagsBool(3), and FlagsBool(4) are stored in data table "Bool8Data" as four onebyte values. However, as shown in figure Bool8 Data from Bit-Shift Example (Numeric Monitor) (p. 228) , when viewing the data table in a numeric monitor , data are conveniently translated into 32 values of True or False. In addition, as shown in figure Bool8 Data from Bit-Shift Example (PC Data File) (p. 229) , when datalogger support software (p. 77) stores the data in an ASCII file, it is stored as 32 columns of either 0 or -1, each column representing the state of an alarm. 227

  • 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
  • 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
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • 351
  • 352
  • 353
  • 354
  • 355
  • 356
  • 357
  • 358
  • 359
  • 360
  • 361
  • 362
  • 363
  • 364
  • 365
  • 366
  • 367
  • 368
  • 369
  • 370
  • 371
  • 372
  • 373
  • 374
  • 375
  • 376
  • 377
  • 378
  • 379
  • 380
  • 381
  • 382
  • 383
  • 384
  • 385
  • 386
  • 387
  • 388
  • 389
  • 390
  • 391
  • 392
  • 393
  • 394
  • 395
  • 396
  • 397
  • 398
  • 399
  • 400
  • 401
  • 402
  • 403
  • 404
  • 405
  • 406
  • 407
  • 408
  • 409
  • 410
  • 411
  • 412
  • 413
  • 414
  • 415
  • 416
  • 417
  • 418
  • 419
  • 420
  • 421
  • 422
  • 423
  • 424
  • 425
  • 426
  • 427
  • 428
  • 429
  • 430
  • 431
  • 432
  • 433
  • 434
  • 435
  • 436
  • 437
  • 438
  • 439
  • 440
  • 441
  • 442
  • 443
  • 444
  • 445
  • 446
  • 447
  • 448
  • 449
  • 450
  • 451
  • 452
  • 453
  • 454
  • 455
  • 456
  • 457
  • 458
  • 459
  • 460
  • 461
  • 462
  • 463
  • 464
  • 465
  • 466
  • 467
  • 468
  • 469
  • 470
  • 471
  • 472
  • 473
  • 474
  • 475
  • 476
  • 477
  • 478
  • 479
  • 480
  • 481
  • 482
  • 483
  • 484
  • 485
  • 486
  • 487
  • 488
  • 489
  • 490
  • 491
  • 492
  • 493
  • 494
  • 495
  • 496
  • 497
  • 498
  • 499
  • 500
  • 501
  • 502
  • 503
  • 504
  • 505
  • 506
  • 507
  • 508
  • 509
  • 510
  • 511
  • 512
  • 513
  • 514
  • 515
  • 516
  • 517
  • 518
  • 519
  • 520
  • 521
  • 522
  • 523
  • 524
  • 525
  • 526
  • 527
  • 528
  • 529
  • 530
  • 531
  • 532
  • 533
  • 534
  • 535
  • 536
  • 537
  • 538
  • 539
  • 540
  • 541
  • 542
  • 543
  • 544
  • 545
  • 546
  • 547
  • 548
  • 549
  • 550
  • 551
  • 552
  • 553
  • 554
  • 555
  • 556
  • 557
  • 558
  • 559
  • 560
  • 561
  • 562
  • 563
  • 564
  • 565
  • 566
  • 567
  • 568
  • 569
  • 570
  • 571
  • 572
  • 573
  • 574
  • 575
  • 576
  • 577
  • 578
  • 579
  • 580
  • 581
  • 582
  • 583
  • 584
  • 585
  • 586
  • 587
  • 588

Section 7.
Installation
227
'3) sample time to three string forms using the TableName.FieldName notation.
'Form 1: "mm/dd/yyyy hr:mm:ss
UTTime(1) = TimeTable.TimeLong(1,1)
'Form 2: "dd/mm/yyyy hr:mm:ss
UTTime(2) = TimeTable.TimeLong(3,1)
'Form 3: "ccyy-mm-dd hr:mm:ss (ISO 8601 Int'l Date)
UTTime(3) = TimeTable.TimeLong(4,1)
NextScan
EndProg
7.8.11 Bool8 Data Type
Boolean variables are used to represent conditions that have only two states -- true
or false -- such as program-control flags and hardware-control ports.
A
BOOLEAN data-type variable uses the same four-byte integer format as a LONG
data type, but it can be set to only one of two values. To save data-storage space
and data transmission bandwidth, consider using BOOL8 format to store data in
final-storage data tables.
BOOL8 is a one-byte variable that holds eight bits of
information (8 states * 1 bit per state).
To store the same information using the
32-bit BOOLEAN data type, 256 bits are required (8 states * 32 bits per state).
When programming with BOOL8, repetitions in the output processing
DataTable()
instruction must be divisible by two, since an odd number of bytes
cannot be stored.
Also note that when the CR1000 converts a LONG or FLOAT
data type to BOOL8, only the least significant eight bits of the binary equivalent
are used, i.e., only the binary representation of the decimal integer
modulo divide
(p. 458)
256 is used.
Example:
Given: LONG integer 5435
Find: BOOL8 representation of 5435
Solution:
5435 / 256 = 21.2304687
0.2304687 * 256 = 59
Binary representation of 59 = 00111011 (CR1000 stores
these bits in reverse order)
When
datalogger support software
(p. 77)
retrieves the BOOL8 data type, it splits it
apart into eight fields of -1 or 0 when storing to an ASCII file.
Consequently,
more memory is required for the ASCII file, but CR1000 memory is conserved.
The compact BOOL8 data type also results in less use of telecommunications
band width when data are collected.
CRBasic example
Bool8 and Bit-Shift Operators
(p. 229)
programs the CR1000 to
monitor the state of 32 'alarms' as a tutorial exercise.
The alarms are toggled by
manually entering zero or non-zero (e.g., 0 or 1) in each public variable
representing an alarm as shown in figure
Alarms Toggled in Bit-Shift Example
(p.
228)
.
Samples of the four public variables FlagsBool(1), FlagsBool(2),
FlagsBool(3), and FlagsBool(4) are stored in data table "Bool8Data" as four one-
byte values.
However, as shown in figure
Bool8 Data from Bit-Shift Example
(Numeric Monitor)
(p. 228)
, when viewing the data table in a numeric monitor
, data
are conveniently translated into 32 values of True or False.
In addition, as shown
in figure
Bool8 Data from Bit-Shift Example (PC Data File)
(p. 229)
, when
datalogger support software
(p. 77)
stores the data in an ASCII file, it is stored as
32 columns of either 0 or -1, each column representing the state of an alarm.