Campbell Scientific CR1000KD CR1000 Measurement and Control System - Page 319

Table 70., Example. E for a 10 Hz input signal, TimerIO, PulseCount, Average, AvgRun, AvgSpa, Table

Page 319 highlights

Section 8. Operation Table 70. Example. E for a 10 Hz input signal Scan Rising Edge / Scan E 5.0 50 50 0.5 5 5 0.05 0.5 1 TimerIO() instruction measures frequencies of ≤ 1 kHz with higher frequency resolution over short (sub-second) intervals. In contrast, sub-second frequency measurement with PulseCount() produce measurements of lower resolution. Consider a 1-kHz input. Table Frequency Resolution Comparison (p. 319) lists frequency resolution to be expected for a 1-kHz signal measured by TimerIO() and PulseCount() at 0.5-s and 5.0-s scan intervals. Increasing a measurement interval from 1 second to 10 seconds, either by increasing the scan interval (when using PulseCount()) or by averaging (when using PulseCount() or TimerIO()), improves the resulting frequency resolution from 1 Hz to 0.1 Hz. Averaging can be accomplished by the Average(), AvgRun(), and AvgSpa() instructions. Also, PulseCount() has the option of entering a number greater than 1 in the POption parameter. Doing so enters an averaging interval in milliseconds for a direct running average computation. However, use caution when averaging, Averaging of any measurement reduces the certainty that the result truly represents a real aspect of the phenomenon being measured. Table 71. Frequency Resolution Comparison 0.5 s Scan PulseCount(), POption=1 FR = 2 Hz TimerIO(), Function=2 FR = 0.0011 Hz 5.0 s Scan FR = 0.2 Hz FR = 0.00011 Hz Q - When more than one pulse is in a scan interval, what does TimerIO() return when configured to return a frequency? Does it average the measured periods and compute the frequency from that (f = 1/T)? For example: Scan(50,mSec,10,0) TimerIO(WindSpd(),11111111,00022000,60,Sec) A - In the background, a 32-bit timer counter is saved each time the signal transitions as programmed (rising or falling). This counter is running at a fixed high frequency. A count is also incremented for each transition. When the TimerIO() instruction executes, it uses the difference of time between the edge prior to the last execution and the edge prior to this execution as the time difference. The number of transitions that occur between these two times divided by the time difference gives the calculated frequency. For multiple edges occurring between execution intervals, this calculation does assume that the frequency is not varying over the execution interval. The calculation returns the average regardless of how the signal is changing. 319

  • 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 8.
Operation
319
Table 70.
Example. E for a 10 Hz input signal
Scan
Rising Edge / Scan
E
5.0
50
50
0.5
5
5
0.05
0.5
1
TimerIO()
instruction measures frequencies of
1 kHz with higher frequency
resolution over short (sub-second) intervals.
In contrast, sub-second frequency
measurement with
PulseCount()
produce measurements of lower resolution.
Consider a 1-kHz input.
Table
Frequency Resolution Comparison
(p. 319)
lists
frequency resolution to be expected for a 1-kHz signal measured by
TimerIO()
and
PulseCount()
at 0.5-s and 5.0-s scan intervals.
Increasing a measurement interval from 1 second to 10 seconds, either by
increasing the scan interval (when using
PulseCount()
) or by averaging (when
using
PulseCount()
or
TimerIO()
), improves the resulting frequency resolution
from 1 Hz to 0.1 Hz.
Averaging can be accomplished by the
Average()
,
AvgRun()
, and
AvgSpa()
instructions. Also,
PulseCount()
has the option of
entering a number greater than 1 in the
POption
parameter.
Doing so enters an
averaging interval in milliseconds for a direct running average computation.
However, use caution when averaging,
Averaging of any measurement reduces
the certainty that the result truly represents a real aspect of the phenomenon being
measured.
Table 71.
Frequency Resolution Comparison
0.5 s Scan
5.0 s Scan
PulseCount()
,
POption
=
1
FR = 2 Hz
FR = 0.2 Hz
TimerIO()
,
Function
=
2
FR = 0.0011 Hz
FR = 0.00011 Hz
Q — When more than one pulse is in a scan interval, what does
TimerIO()
return
when configured to return a frequency? Does it average the measured periods and
compute the frequency from that (f = 1/T)?
For example:
Scan
(50,mSec,10,0)
TimerIO
(WindSpd(),11111111,00022000,60,Sec)
A — In the background, a 32-bit timer counter is saved each time the signal
transitions as programmed (rising or falling).
This counter is running at a fixed
high frequency.
A count is also incremented for each transition.
When the
TimerIO()
instruction executes, it uses the difference of time between the edge
prior to the last execution and the edge prior to this execution as the time
difference.
The number of transitions that occur between these two times divided
by the time difference gives the calculated frequency.
For multiple edges
occurring between execution intervals, this calculation does assume that the
frequency is not varying over the execution interval.
The calculation returns the
average regardless of how the signal is changing.