Campbell Scientific CR1000KD CR1000 Measurement and Control System - Page 427

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

Page 427 highlights

Section 10. Troubleshooting 10.3.1.8.2 Watchdoginfo.txt File A CPU: WatchdogInfo.txt file is created on the CPU: drive when the CR1000 experiences a software reset (as opposed to a hardware reset that increment the Status-table WatchdogError register). Postings of WatchdogInfo.txt files are rare. Please consult with a Campbell Scientific applications engineer at any occurrence. Debugging beyond the source of the watchdog is quite involved. Please contact Campbell Scientific for assistance. There are a few key things to look for: 1. Are multiple tasks waiting for the same resource? This is always caused by a software bug. 2. In newer operating systmes, there is information about the memory regions. If anything like ColorX: fail is seen, this means that the memory is corrupted. 3. The comms memory information can also be a clue for PakBus and TCP triggered watchdogs. 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.3.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 CR1000. Reasons may include: • The CR1000 has a different (usually older) operating system that is not 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 CR1000 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 encumbering the CPU: drive. The CR1000 will keep copies of all program files ever loaded unless they are deleted, the drive is formatted, or a new operating system with DevConfig. o that the USR: drive, if created, is not too large. The USR: drive may be using memory needed for the program. o that a program written for a 4-MB CR1000 is being loaded into a 2-MB CR1000. o that a memory card (CF) is not available when a program is attempting to access the CRD: drive. This can only be a problem if a TableFile() or CardOut() instruction is included in the program. 10.3.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 CR1000 compiler attempt to check whether the CR1000 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 427

  • 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 10.
Troubleshooting
427
10.3.1.8.2 Watchdoginfo.txt File
A CPU:
WatchdogInfo.txt
file is created on the CPU: drive when the CR1000
experiences a software reset (as opposed to a hardware reset that increment the
Status-
table
WatchdogError
register).
Postings of
WatchdogInfo.txt
files are
rare.
Please consult with a Campbell Scientific applications engineer at any
occurrence.
Debugging beyond the source of the watchdog is quite involved.
Please contact
Campbell Scientific for assistance.
There are a few key things to look for:
1. Are multiple tasks waiting for the same resource? This is always caused by a
software bug.
2. In newer operating systmes, there is information about the memory regions. If
anything like
ColorX: fail
is seen
,
this means that the memory is corrupted.
3. The comms memory information can also be a clue for PakBus and TCP
triggered watchdogs.
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.3.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 CR1000.
Reasons may include:
The CR1000 has a different (usually older) operating system that is not
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 CR1000 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 encumbering the CPU: drive. The CR1000
will keep copies of all program files ever loaded unless they are deleted,
the drive is formatted, or a new operating system with
DevConfig
.
o
that the USR: drive, if created, is not too large. The USR: drive may be
using memory needed for the program.
o
that a program written for a 4-MB CR1000 is being loaded into a 2-MB
CR1000.
o
that a memory card (CF) is not available when a program is attempting to
access the CRD: drive.
This can only be a problem if a
TableFile()
or
CardOut()
instruction is included in the program.
10.3.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 CR1000 compiler attempt to check
whether the CR1000 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