Campbell Scientific CR3000 CR3000 Micrologger - Page 184

Table 28., SDI12Recorder Commands, SDIRecorder, SDI12Recorder, SlowSequence

Page 184 highlights

Section 7. Installation 184 Table 28. SDI12Recorder() Commands SDIRecorder() Instruction SDICommand Entry Actions Internal to CR3000 and Sensor 2Use variable replacement in program to use same instance of SDI12Recorder() as issued aCV! (see the CRBasic example Using SDI12Recorder() C Command ). Alternate Start Measurement Command (Cv) The SDIRecorder() aCv (not C!) command facilitates using the SDI-12 standard Start Concurrent command (aCv!) without the back-to-back measurement sequence normal to the CR3000 implementation of aCv!. Consider an application wherein four SDI-12 temperature sensors need to be nearsimultaneously measured at a 5 minute interval within a program that scans every 5 seconds. The sensors requires 95 seconds to respond with data after a measurement request. Complicating the application is the need for minimum power usage, so the sensors must power down after each measurement. This application provides a focal point for considering several measurement strategies. The simplest measurement is to issue a M! measurement command to each sensor as follows: Public BatteryVolt Public Temp1, Temp2, Temp3, Temp4 BeginProg Scan(5,Sec,0,0) 'Non-SDI-12 measurements here SDI12Recorder(Temp1,1,0,"M!",1.0,0) SDI12Recorder(Temp2,1,1,"M!",1.0,0) SDI12Recorder(Temp3,1,2,"M!",1.0,0) SDI12Recorder(Temp4,1,3,"M!",1.0,0) NextScan EndProg However, the code sequence has three problems: 1. It does not allow measurement of non-SDI-12 sensors at the required frequency. 2. It does not achieve required 5-minute sample rate because each SDI12Recorder() instruction will take about 95 s to complete before the next SDI12Recorder() instruction begins, resulting is a real scan rate of about 6.5 minutes. 3. There is a 95-second time skew between each sensor measurements. Problem 1 can be remedied by putting the SDI-12 measurements in a SlowSequence scan. Doing so allows the SDI-12 routine to run its course without affecting measurement of other sensors, as follows: Public BatteryVolt Public Temp(4) BeginProg

  • 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
  • 589
  • 590

Section 7.
Installation
184
Table 28.
SDI12Recorder() Commands
SDIRecorder() Instruction
SDICommand
Entry
Actions Internal to
CR3000 and Sensor
2
Use variable replacement in program to use same instance of
SDI12Recorder()
as issued
aCV!
(see the CRBasic example Using SDI12Recorder() C Command
).
Alternate Start Measurement Command (Cv)
The
SDIRecorder()
aCv
(not C!) command facilitates using the SDI-12 standard
Start Concurrent command (
aCv!
) without the back-to-back measurement
sequence normal to the CR3000 implementation of
aCv!
.
Consider an application wherein four SDI-12 temperature sensors need to be near-
simultaneously measured at a 5 minute interval within a program that scans every
5 seconds.
The sensors requires 95 seconds to respond with data after a
measurement request.
Complicating the application is the need for minimum
power usage, so the sensors must power down after each measurement.
This application provides a focal point for considering several measurement
strategies.
The simplest measurement is to issue a
M!
measurement command to
each sensor as follows:
Public
BatteryVolt
Public
Temp1, Temp2, Temp3, Temp4
BeginProg
Scan
(5,Sec,0,0)
'Non-SDI-12 measurements here
SDI12Recorder
(Temp1,1,0,"M!",1.0,0)
SDI12Recorder
(Temp2,1,1,"M!",1.0,0)
SDI12Recorder
(Temp3,1,2,"M!",1.0,0)
SDI12Recorder
(Temp4,1,3,"M!",1.0,0)
NextScan
EndProg
However, the code sequence has three problems:
1.
It does not allow measurement of non-SDI-12 sensors at the required
frequency.
2.
It does not achieve required 5-minute sample rate because each
SDI12Recorder()
instruction will take about 95 s to complete before the next
SDI12Recorder()
instruction begins, resulting is a real scan rate of about 6.5
minutes.
3.
There is a 95-second time skew between each sensor measurements.
Problem 1 can be remedied by putting the SDI-12 measurements in a
SlowSequence
scan.
Doing so allows the SDI-12 routine to run its course
without affecting measurement of other sensors, as follows:
Public
BatteryVolt
Public
Temp(4)
BeginProg