Bringing the Benefits of Real-Time Data Collection to the World
Sutron Corporation, 22400 Davis Drive, Sterling, Virginia 20164-4444
12
Making a Measurement
There are four classes of measurement commands which will be referred to as M commands (Measurement
Commands), C commands (Concurrent Measurement Commands), MC commands (Measurement
commands with CRC-16), and CC commands (Concurrent Measurement Commands with CRC-16).
Concurrent measurement commands are new to version 1.2 of the SDI-12 specification. The commands
with CRC-16 are new to version 1.3 of the SDI-12 specification. In the original class of “M” measurement
commands, the data recorder issued the measurement command and then waited for the sensor to complete
the measurement before continuing the data collection cycle. Only one sensor could be accessed at a time
and a maximum of nine parameters could be returned. With version 1.2 of the specification, concurrent
measurements were defined. With a concurrent measurement, the data recorder can request the sensor to
take a measurement, determine how long it will be until the sensor has a reading, and then continue on
making requests to other sensors on the SDI-12 bus. This way multiple sensors are taking measurements
concurrent with each other. Once the measurement time for a sensor has expired the data recorder polls the
sensor for the data. The CRC-16 commands that were added in version 1.3 of the specification add a 16 bit
cyclic redundancy check (CRC-16) to the returned data values. This provides an additional means for the
data recorder to ensure that the collected data has not been corrupted. Software support for SDI-12 version
1.3 was added in software revision V2.0. Version V1.9 and before only support the M commands.
Selecting a measurement command class
Always supported
The first requirement is that the data recorder support the command. All SDI-12 data recorders support the
non-concurrent measurement M command. With the M command the data recorder collects data from the
sensors one at a time.
Multiple long measurement time sensors
When collecting data from several SDI-12 sensors that have long measurement times, the complete data
collection cycle can be shortened by utilizing concurrent commands. The data recorder can initiate the
measurement on all the sensors and when each finishes, then collect the data from all of them. Since the
measurement times overlap, the complete data collection cycle is shorter. There is no advantage to the
concurrent measurement C command when there is only one sensor.
Improved data integrity checking
The measurement command classes with CRC-16 (MC and CC) offer additional data integrity checking
over the non CRC-16 commands (M and C). The non CRC-16 commands offer data integrity checking in
the form of parity and the SDI-12 command structure. The CRC-16 commands offer some additional data
integrity through the addition of a CRC-16. Since the CRC-16 commands are brand new in SDI-12 version
1.3, not as many data recorders support them. In most applications, lack of this support on the part of the
data recorder will not be missed since non CRC-16 SDI-12 commands still offer significant data integrity
checking. If the data recorder supports CRC-16 commands, then it is recommended to use them when
collecting data from this sensor in order to benefit from the increased noise immunity.
Making a non-concurrent Measurement (M command)
The command to tell the ACCUBAR
®
to make a measurement with the original measurement command is:
aM!
where a is the address character, and M is the command to
make a measurement