Campbell Scientific CR1000KD CR1000 Measurement and Control System - Page 432

Communicating with Multiple PCs, 4.3 Comms Memory Errors

Page 432 highlights

Section 10. Troubleshooting 10.4.2 Communicating with Multiple PCs The CR1000 can communicate with multiple PCs simultaneously. For example, the CR1000 may be a node of an internet PakBus network communicating with a distant instance of LoggerNet. An onsite technician can communicate with the CR1000 using PC200W via a serial connection, so long as the PakBus addresses of the host PCs are different. All Campbell Scientific datalogger support software include utilities for altering PC PakBus addressing. 10.4.3 Comms Memory Errors CommsMemFree() is an array of three registers in the Status table (p. 528) that report communications memory errors. In summary, if any CommsMemFree() register is at or near zero, assistance may be required from Campbell Scientific to diagnose and correct a potentially serious communications problem. Sections CommsMemFree(1) (p. 432), CommsMemFree(2) (p. 433), and CommsMemFree(3) (p. 434) explain the possible communications memory errors in detail. 10.4.3.1 CommsMemFree(1) CommsMemFree(1): Number of buffers used in all communication, except with the external keyboard / display. Two digits per each buffer size category. Most significant digits specify the number of larger buffers. Least significant digits specify the number of smaller buffers. When TLS (p. 469) is not active, there are four-buffer categories: tiny, little, medium, and large. When TLS is active, there is a fifth category, huge, and more buffers are allocated for each category. When a buffer of a certain size is required, the smallest, suitably-sized pool that still has at least one buffer free will allocate a buffer and decrement the number in reserve. When the communication is complete, the buffer is returned to the pool and the number for that size of buffer will increment. When TLS is active, the number of buffers allocated for tiny can only be displayed as the number of tiny buffers modulo divided by 100. CommsMemFree(1) is encoded using the following expression: CommsMemFree(1) = tiny + lil*100 + mid*10000 + med*1000000 + lrg*100000000 where, tiny = number of 16‐byte packets available lil = number of little (≈100 bytes) packets mid = number of medium size (≈530 bytes) packets med = number of big (≈3 kB) packets lrg = number of large (≈18 kB) packets available, primarily for TLS. The following expressions are used to pick the individual values from CommsMemFree(1): tiny = CommsMemFree(1) % 100 lil = (CommsMemFree(1) / 100) % 100 432

  • 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
432
10.4.2 Communicating with Multiple PCs
The CR1000 can communicate with multiple PCs simultaneously.
For example,
the CR1000 may be a node of an internet PakBus network communicating with a
distant instance of
LoggerNet
.
An onsite technician can communicate with the
CR1000 using
PC200W
via a serial connection, so long as the PakBus addresses
of the host PCs are different.
All Campbell Scientific datalogger support software
include utilities for altering PC PakBus addressing.
10.4.3 Comms Memory Errors
CommsMemFree()
is an array of three registers in the
Status
table
(p. 528)
that
report communications memory errors.
In summary, if any
CommsMemFree()
register is at or near zero, assistance may be required from Campbell Scientific to
diagnose and correct a potentially serious communications problem.
Sections
CommsMemFree(1)
(p. 432),
CommsMemFree(2)
(p. 433),
and
CommsMemFree(3)
(p.
434)
explain the possible communications memory errors in detail.
10.4.3.1 CommsMemFree(1)
CommsMemFree(1):
Number of buffers used in all communication, except with
the external keyboard / display.
Two digits per each buffer size category.
Most
significant digits specify the number of larger buffers.
Least significant digits
specify the number of smaller buffers.
When
TLS
(p. 469)
is not active, there are
four-buffer categories:
tiny
,
little
,
medium
, and
large
.
When TLS is active, there
is a fifth category,
huge
, and more buffers are allocated for each category.
When a buffer of a certain size is required, the smallest, suitably-sized pool that
still has at least one buffer free will allocate a buffer and decrement the number in
reserve.
When the communication is complete, the buffer is returned to the pool
and the number for that size of buffer will increment.
When TLS is active, the number of buffers allocated for
tiny
can only be
displayed as the number of tiny buffers modulo divided by 100.
CommsMemFree(1)
is encoded using the following expression:
CommsMemFree(1) = tiny + lil*100 + mid*10000 + med*1000000 +
lrg*100000000
where,
tiny
= number of 16
byte packets available
lil
= number of little (
100 bytes) packets
mid
= number of medium size (
530 bytes) packets
med
= number of big (
3 kB) packets
lrg
= number of large (
18 kB) packets available, primarily for TLS.
The following expressions are used to pick the individual values from
CommsMemFree(1)
:
tiny = CommsMemFree(1) % 100
lil = (CommsMemFree(1) / 100) % 100