Full Text Searchable PDF User Manual

V1.1
Manual TBS09S
SDI-12 Master to Modbus Slave Converter
© 2014 Tekbox Digital Solutions
50/11 Truong Son, F2 | Q. Tan Binh | Ho Chi Minh City | Tel +84 (83)5471340 | E-mail office@tekbox.net| www.tekbox.net
The TBS09S is a converter to connect to a SDI-12 sensors to Modbus. It can connect multiple
sdi12 sensors in parallel by setting the corresponding address.
Features
▪
SDI-12 master to Modbus slave
▪
Multiple sensors can be connected
▪
SDI-12 Standard V1.3
▪
Highly configurable
▪
Switched sensor supply voltage output
▪
6 - 16V supply voltage
▪
7mA current consumption when active
▪
Less than 100µA idle current
▪
Operating Temperature Range:
-
40°C … + 80°C
Target Applications
▪
SDI-12 sensor networks
TBS09S SDI-12 master to Modbus slave converter

V1.0
TBS09S
SDI-12 Master to Modbus Slave Converter
2
Contents
1
INTRODUCTION
3
2
CONNECTIONS
3
3
MEASUREMENT
4
3.1
G
ENERAL CONFIGURATION COMMANDS
4
3.2
M
EASUREMENT COMMANDS
5
3.2.1
Send measurement command to sdi12 sensors:
5
3.2.2
Send Data
command to sdi12 sensors:
7
3.2.3
Modbus master get data from TBS09S:
8
4
SDI-12
10
5
SUPPORTED SDI-12 COMMANDS
10
6
HISTORY
11
Tables
Figures

V1.0
TBS09S
SDI-12 Master to Modbus Slave Converter
3
1 Introduction
The TBS09S is a converter to connect one or multiple sdi12 sensors to a modbus device such as a data logger
or telemetry unit.
User will use it when they got RTU support modbus and they want using it to read data of sdi12 sensors.
2 Connections
RS485 Side, from left to right:
TX+ output (or half duplex)
TX- output (or half duplex)
RX+ input
RX- input
Ground
12V, switched sensor supply voltage
SDI-12 Side, from left to right:
Cable shield
Ground
SDI-12 Data line
SDI-12 Supply voltage
Figure 1 TBS09S terminals
4 Pin terminal block:
CON1 SDI-12 Interface
Shield:
connect to the shield of the SDI-12 cable or leave it unconnected; shield and ground are
internally connected together
Ground:
connect to the GND wire of the SDI-12 cable
SDI-12 data:
connect to the data wire of the SDI-12 cable
SDI-12 Power:
connect to the positive supply voltage wire of the SDI-12 cable;
6 Pin terminal block:

V1.0
TBS09S
SDI-12 Master to Modbus Slave Converter
4
CON2 Power supply & RS485 (Modbus) interface
TX+, connect to RX+ of the Modbus Sensor; half duplex
TX-, connect to RX- of the Modbus Sensor; half duplex
RX+, connect to TX+ of the Modbus Sensor
RX-, connect to RX- of the Modbus Sensor
Ground,
connected to the GND of the SDI-12 supply for TBS09S
+12V,
supply output for the Modbus sensor. It is connected to the SDI-12 supply line, with a high side
FET switch and a 700mA fuse in between. The switch can either be controlled by SDI-12 (ON-time
determined by the warm-up time setting) or it can be configured to be permanently on.
Default J4 and J5 jumpered -
Modbus terminated with 120Ω
Default J3 jumpered half duplex
Figure 2 TBS09S jumpers
3 Measurement
3.1 General configuration commands
TBS09S is default with baurate: 19200,
Parity
: None = 0
Modbus slave address : 1
Modbus slave settings
Slave Address Register: 0xB000

V1.0
TBS09S
SDI-12 Master to Modbus Slave Converter
5
Modbus command:
Modbus Master send
Example (Hex)
Modbus Slave(TBS09S) response
Slave Address
01- current addr
01
Function
06
06
Starting Address Hi
B0
00
Starting Address Lo
00
00
Data Hi
00
00
Data Lo
02 - new addr
02
Error Check (LRC or
CRC)
-
2 bytes CRC
Modbus address: 0x01 -> 0xFF
3.2 Measurement commands
When user want read data from sdi12 sensors, please following 3 steps:
3.2.1 Send measurement command to sdi12 sensors:
TBS09S will send measurement command to sdi12 sensor: aM!...aM9
, aMC!…aMC9!, aC!..aC9!, aCC!..aCC9!
Register map:
sdi12
command
register
sdi12
command
register
sdi12
command
register
sdi12
command
register
aM!
0x0010
aMC!
0x0020
aC!
0x0030
aCC!
0x0040
aM1!
0x0011
aMC1!
0x0021
aC1!
0x0031
aCC1!
0x0041
aM2!
0x0012
aMC2!
0x0022
aC2!
0x0032
aCC2!
0x0042
aM3!
0x0013
aMC3!
0x0023
aC3!
0x0033
aCC3!
0x0043
aM4!
0x0014
aMC4!
0x0024
aC4!
0x0034
aCC4!
0x0044
aM5!
0x0015
aMC5!
0x0025
aC5!
0x0035
aCC5!
0x0045
aM6!
0x0016
aMC6!
0x0026
aC6!
0x0036
aCC6!
0x0046
aM7!
0x0017
aMC7!
0x0027
aC7!
0x0037
aCC7!
0x0047
aM8!
0x0018
aMC8!
0x0028
aC8!
0x0038
aCC8!
0x0048
aM9!
0x0019
aMC9!
0x0029
aC9!
0x0039
aCC9!
0x0049

V1.0
TBS09S
SDI-12 Master to Modbus Slave Converter
6
Modbus command:
Modbus Master send
Example (Hex)
Modbus Slave(TBS09S) response
Slave Address
01
01
Function
06
06
Starting Address Hi
00
00
Starting Address Lo
10
00
Data Hi
00
00
Data Lo(
sdi12 address
)
30 sdi12 sensor
address
30
Error Check (LRC or
CRC)
-
2 bytes CRC
TBS09S support total 62 sdi12 sensor
s. Data Lo byte is hex value of sensor address(‘0’ = 0x30, ‘1’ = 0x31……)
Read time and number measurement:
After
send measurement command, user can read : ttt - the specified time, nn - the number of measurement
values the sensor will make and return in response to one or more subsequent D commands
Register map:
sdi12 sensor#
register
0
0x3010
1
0x3110
2
0x3210
3
0x3310
4
0x3410
5
0x3510
6
0x3610
7
0x3710
8
0x3810
9
0x3910
any
0x
ZZ
10
ZZ is the hex value of sensor address, base on ASCII
Modbus command:
Modbus Master send
Example (Hex)
Modbus Slave(TBS09S) response

V1.0
TBS09S
SDI-12 Master to Modbus Slave Converter
7
Slave Address
01
01
Function
04
04
Starting Address Hi
30
04
Starting Address Lo
10
00
Data Hi
00
01 - ttt time
Data Lo
02 - read 2 registers
00
Error Check (LRC or
CRC)
-
02 nn number
2 bytes CRC
Data response is 4 bytes, 2 bytes - the specified time + 2 bytes - the number of measurement values
3.2.2 Send Data
command to sdi12 sensors:
TBS09S will send data command to sdi12 sensor: aD0!...aD9!
Register map:
sdi12 command
register
aD0!
0x00D0
aD1!
0x00D1
aD2!
0x00D2
aD3!
0x00D3
aD4!
0x00D4
aD5!
0x00D5
aD6!
0x00D6
aD7!
0x00D7
aD8!
0x00D8
aD9!
0x00D9
Modbus command:
Modbus Master send
Example (Hex)
Modbus Slave(TBS09S) response
Slave Address
01
01
Function
06
06
Starting Address Hi
00
00
Starting Address Lo
D0
00
Data Hi
00
00
Data Lo
30 sdi12 sensor
address
30

V1.0
TBS09S
SDI-12 Master to Modbus Slave Converter
8
Error Check (LRC or
CRC)
-
2 bytes CRC
3.2.3 Modbus master get data from TBS09S:
After send sommand aMx! and aDx! to sdi12 sensors, TBS09 will store 10 sensors from 0 to 9 to
REGISTER
DATA 0 to 9
Sdi12 data format will be:
a+d0+d1+d2+d3+d4+d5+d6+d7+d8+d9
(maximum)
TBS09 will use 2 Registers =
4 bytes to store each data with floating format
.
Register map:
sdi12
data
REG
SENSOR 0
REG
SENSOR 1
REG
SENSOR 2
REG
SENSOR--
REG
SENSOR 9
REG
SENSOR X
d0
0x3000
0x3100
0x3200
-
0x3900
0xZZ00
d1
0x3001
0x3101
0x3201
-
0x3901
0xZZ01
d2
0x3002
0x3102
0x3202
-
0x3902
0xZZ02
d3
0x3003
0x3103
0x3203
-
0x3903
0xZZ03
d4
0x3004
0x3104
0x3204
-
0x3904
0xZZ04
d5
0x3005
0x3105
0x3205
-
0x3905
0xZZ05
d6
0x3006
0x3106
0x3206
-
0x3906
0xZZ06
d7
0x3007
0x3107
0x3207
-
0x3907
0xZZ07
d8
0x3008
0x3108
0x3208
-
0x3908
0xZZ08
d9
0x3009
0x3109
0x3209
-
0x3909
0xZZ09
ZZ is the hex value of sensor address, base on ASCII
Modbus command:
Modbus Master send
Example (Hex)
Modbus Slave(TBS09S) response
Slave Address
01
01
Function
04
04
Starting Address Hi
30
04
Starting Address Lo
00
41
Data Hi
00
CF
Data Lo
02 - read 2 registers
1E

V1.0
TBS09S
SDI-12 Master to Modbus Slave Converter
9
Error Check (LRC or
CRC)
-
B8
2 bytes CRC
This example read data from temperature sdi12 sensor.
Data 0 is floating format with 4 bytes = 0x41, 0xCF, 0x1E, 0xB8 = 25.89 (degree celsius)
Float to hex convert online: https://www.h-schmidt.net/FloatConverter/IEEE754.html

V1.0
TBS09S
SDI-12 Master to Modbus Slave Converter
10
4 SDI-12
SDI-12 is a standard for interfacing data recorders with microprocessor-based sensors. SDI-12 stands for
serial/digital interface at 1200 baud. It can connect multiple sensors with a single data recorder on one cable. It
supports up to 60 meter cable between a sensor and a data logger.
The SDI-12 standard is prepared by
SDI-12 Support Group
(Technical Committee)
165 East 500 South
River Heights, Utah
435-752-4200
435-752-1691 (FAX)
http://www.sdi-12.org
The latest standard is version V1.3 which dates from July 18
th
, 2005. The standard is available on the website of
the SDI-12 Support Group.
More information on SDI-12 is presented in chapter 3.
5 Supported SDI-12 Commands
Following standard SDI-12 commands are supported:
Start Measurement
aM!
Start Measurement and Request CRC
aMC!
Additional Measurements
aM1!
… aM9!
Additional Measurements and Request CRC
aMC1 ! ... aMC9!
Start Concurrent Measurement
aC!
Start Concurrent Measurement and Request CRC
aCC!
Additional Concurrent Measurements
aC1!
… aC9!
Additional Concurrent Measurements and Request CRC
aCC1 ! ... aCC9!
Send Data
aD0!
… aD9!
Example controlling the soil moimoisture/temperature Sensor:
https://www.sdi-12products.com/collections/sensors/products/sdi-12-soil-moisture-temperature-probe-tbsmp02

V1.0
TBS09S
SDI-12 Master to Modbus Slave Converter
11
[TX] -
01 06 00 11 00 30 D9 DB
master send 0M1! to sensor
[RX] -
01 06 00 00 00 30 89 DE
TBS09S response ACK
[TX] -
01 06 00 D0 00 30 88 27
master send 0D0! to sensor
[RX] -
01 06 00 00 00 30 89 DE
TBS09S response ACK
[TX] -
01 04 30 00 00 02 7E CB
master read 1
st
parameter(moisture)
[RX] -
01 04 04 41 2D 99 99 8B FF
TBS09S response data = 41,2D,99,99 =10.85
[TX] -
01 04 30 01 00 02 2F 0B
master read 2
nd
parameter(temperature)
[RX] -
01 04 04 41 DB 70 A4 F8 FF
TBS09S response data = 41,DB,70,A4 =
27.43
Example above is measurement sdi12 moisture/temperature probe with addressed 0, modbus sensor is
addressed 1.
Command to get data is: 0M1! and wait 1s to send 0D0! to get humidity+ temperature with floating fomat.
6 History
Version
Date
Author
Changes
V1.0
9.8.2018
Thinh
Creation of the document
Table 1 History