Campbell Scientific CR6 CR6 Measurement and Control System - Page 477

Program Does Not Compile, 5.3 Program Compiles / Does Not Run Correctly

Page 477 highlights

Section 10. Troubleshooting For example, if COM1 is the source of the watchdog, knowing exactly what is connected to the port and at what baud rate and frequency (how often) the port is communicating are valuable pieces of information. 10.5.1.9 Calibration Errors Calibration errors are usually caused by an analog input that exceeds the input limits (p. 311) of the CR6. • Check all analog inputs to make sure they are not greater than ±5 Vdc by measuring the voltage between the input and a G terminal. Do this with a multimeter (p. 501). • Check for condensation, which can sometimes cause leakage from a 12 Vdc source terminal into other places. • Check for a lose ground wire on a sensor powered from a 12V or SW12 terminal. 10.5.2 Program Does Not Compile Although the CRBasic Editor compiler states that a program compiles OK, the program may not run or even compile in the CR6. Reasons may include: • The CR6 has a different (usually older) operating system that is not fully compatible with the PC compiler. Check the two versions if in doubt. The PC version is shown on the first line of the compile results. • The program has large memory requirements for data tables or variables and the CR6 does not have adequate memory. This normally is flagged at compile time, in the compile results. If this type of error occurs, check: o for copies of old programs on the CPU: drive. The CR6 keeps copies of all program files unless they are deleted, the drive is formatted, or a new operating system is loaded with DevConfig (p. 116). o that the USR: drive, if created, is not too large. The USR: drive may be using memory needed for the program. 10.5.3 Program Compiles / Does Not Run Correctly If the program compiles but does not run correctly, timing discrepancies are often the cause. Neither CRBasic Editor nor the CR6 compiler attempt to check whether the CR6 is fast enough to do all that the program specifies in the time allocated. If a program is tight on time, look further at the execution times. Check the measurement and processing times in the Status table (MeasureTime, ProcessTime, MaxProcTime) for all scans, then try experimenting with the InstructionTimes() instruction in the program. Analyzing InstructionTimes() results can be difficult due to the multitasking nature of the logger, but it can be a useful tool for fine tuning a program. 10.5.4 NAN and ±INF NAN (not-a-number) and ±INF (infinite) are data words indicating an exceptional occurrence in datalogger function or processing. NAN is a constant that can be used in expressions as shown in the following code snip that sets a CRBasic control feature (a flag) if the wind direction is NAN: If WindDir = NAN Then 477

  • 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
  • 591
  • 592
  • 593
  • 594
  • 595
  • 596
  • 597
  • 598
  • 599
  • 600
  • 601
  • 602
  • 603
  • 604
  • 605
  • 606
  • 607
  • 608
  • 609
  • 610
  • 611
  • 612
  • 613
  • 614
  • 615
  • 616
  • 617
  • 618
  • 619
  • 620
  • 621
  • 622
  • 623
  • 624
  • 625
  • 626

Section 10.
Troubleshooting
For example, if COM1 is the source of the watchdog, knowing exactly what is
connected to the port and at what baud rate and frequency (how often) the port is
communicating are valuable pieces of information.
10.5.1.9 Calibration Errors
Calibration errors are usually caused by an analog input that exceeds the
input
limits
(p. 311)
of the CR6.
Check all analog inputs to make sure they are not greater than ±5 Vdc by
measuring the voltage between the input and a
G
terminal.
Do this with a
multimeter
(p. 501).
Check for condensation, which can sometimes cause leakage from a 12 Vdc
source terminal into other places.
Check for a lose ground wire on a sensor powered from a
12V
or
SW12
terminal.
10.5.2 Program Does Not Compile
Although the
CRBasic Editor
compiler states that a program compiles OK, the
program may not run or even compile in the CR6.
Reasons may include:
The CR6 has a different (usually older) operating system that is not fully
compatible with the PC compiler. Check the two versions if in doubt.
The
PC version is shown on the first line of the compile results.
The program has large memory requirements for data tables or variables and
the CR6 does not have adequate memory.
This normally is flagged at
compile time, in the compile results. If this type of error occurs, check:
o
for copies of old programs on the CPU: drive.
The CR6 keeps copies of
all program files unless they are deleted, the drive is formatted, or a new
operating system is loaded with
DevConfig
(p. 116).
o
that the USR: drive, if created, is not too large. The USR: drive may be
using memory needed for the program.
10.5.3 Program Compiles / Does Not Run Correctly
If the program compiles but does not run correctly, timing discrepancies are often
the cause. Neither
CRBasic Editor
nor the CR6 compiler attempt to check whether
the CR6 is fast enough to do all that the program specifies in the time allocated. If
a program is tight on time, look further at the execution times.
Check the
measurement and processing times in the
Status
table (
MeasureTime
,
ProcessTime
,
MaxProcTime
) for all scans, then try experimenting with the
InstructionTimes()
instruction in the program. Analyzing
InstructionTimes()
results can be difficult due to the multitasking nature of the logger, but it can be a
useful tool for fine tuning a program.
10.5.4 NAN and ±INF
NAN
(not-a-number) and
±INF
(infinite) are data words indicating an exceptional
occurrence in datalogger function or processing.
NAN
is a constant that can be
used in expressions as shown in the following code snip that sets a CRBasic
control feature (a flag) if the wind direction is
NAN
:
If
WindDir = NAN
Then
477