7. Communications Protocols
Dataloggers communicate with datalogger support software, other Campbell Scientific
dataloggers, and other hardware and software using a number of protocols including PakBus,
Modbus, DNP3, CPI, SPI, and TCP/IP. Several industry-specific protocols are also supported.
CAN-bus is supported when using the Campbell Scientific SDM-CAN communications
module.See also Communications specifications (p. 173).
7.1 General serial communications 82
7.2 Modbus communications 82
7.3 Internet communications 91
7.4 DNP3 communications 92
7.5 Serial peripheral interface (SPI) and I2C 93
7.6 PakBus communications 93
7.7 SDI-12 communications 94
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
dataloggers, 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).
l Set the datalogger to be a PakBus router only as needed. When the datalogger is a router,
and it connects to another router like LoggerNet, it exchanges routing information with
that router and, possibly (depending on your settings), with other routers in the network.
Network Planner set this appropriately when it is used. This is also set through the IsRouter
setting in the Settings Editor.
7. Communications Protocols 81