4 communications, 1 rs-232, 2 communicating with multiple pcs – Campbell Scientific CR3000 Micrologger User Manual
Page 435: 3 comms memory errors, 1 commsmemfree(1)

Section 10. Troubleshooting
435
10.4 Communications
10.4.1 RS-232
Baud rate mis-match between the CR3000 and datalogger support software is
often the root of communication problems through the RS-232 port. By default,
the CR3000 attempts to adjust its baud rate to that of the software. However,
settings changed in the CR3000 to accommodate a specific RS-232 device, such
as a smart sensor, display or modem, may confine the RS-232 port to a single
baud rate. If the baud rate can be guessed at and entered into support software
parameters, communications may be established. Once communications is
established, CR3000 baud rate settings can be changed. Clues as to what the baud
rate may be set at can be found by analyzing current and previous CR3000
programs for the SerialOpen() instruction; SerialOpen() specifies a baud rate.
Documentation provided by the manufacturer of the previous RS-232 device may
also hint at the baud rate.
10.4.2 Communicating with Multiple PCs
The CR3000 can communicate with multiple PCs simultaneously. For example,
the CR3000 may be a node of an internet PakBus network communicating with a
distant instance of LoggerNet. An onsite technician can communicate with the
CR3000 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. 530)
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. 435),
CommsMemFree(2)
(p. 437),
and CommsMemFree(3)
(p.
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 integrated 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. 471)
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: