Campbell Scientific CR1000KD CR800 and CR850 Measurement and Control Systems - Page 407

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

Page 407 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 CR800 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 CR800. Reasons may include: • The CR800 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 CR800 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 CR800 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 CR800 is being loaded into a 2-MB CR800. 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 CR800 compiler attempt to check whether the CR800 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() 407

  • 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

Section 10.
Troubleshooting
407
10.3.1.8.2 Watchdoginfo.txt File
A CPU:
WatchdogInfo.txt
file is created on the CPU: drive when the CR800
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 CR800.
Reasons may include:
The CR800 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 CR800 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 CR800 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 CR800 is being loaded into a 2-MB
CR800.
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 CR800 compiler attempt to check
whether the CR800 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()