19. Communications protocols
Data loggers communicate with data logger support software, other Campbell Scientific data
loggers, and other hardware and software using a number of protocols including PakBus,
Modbus, DNP3, and TCP/IP. Several industry-specific protocols are also supported. See also
Communications specifications(p. 249).
19.1 General serial communications 109
19.2 Modbus communications 110
19.3 Internet communications 120
19.4 MQTT 122
19.5 DNP3 communications 135
19.6 PakBus communications 136
19.7 SDI-12 communications 137
Some communications services, such as satellite networks, can be expensive to send and receive
information. Best practices for reducing expense include:
l
Declare Public only those variables that need to be public. Other variables should be
declared as Dim.
l
Be conservative with use of string variables and string variable sizes. Make string variables
as big as they need to be and no more. The default size, if not specified, is 24 bytes, but the
minimum is 4 bytes. Declare string variables Public and sample string variables into data
tables only as needed.
l
When using GetVariables() / SendVariables() to send values between data
loggers, put the data in an array and use one command to get the multiple values. Using
one command to get 10 values from an array and swath of 10 is more efficient (requires
only 1 transaction) than using 10 commands to get 10 single values (requires 10
transactions). See the CRBasic Editor help for detailed instruction information and program
examples: https://help.campbellsci.com/crbasic/cr300/ .
19. Communications protocols108