Instructions
UM-0085-B09  DT80 Range User Manual  Page 179 
RG 
If a Modbus client then requests input registers 3:00007-3:00012 it will receive the following raw data: 
Register 
Value (hex / decimal) 
Comments 
3:00007 
47AE 
The 32-bit value 41BF47AE is the IEEE754 representation of 23.91 
3:00008  41BF 
3:00009 
BF7E / 49022 
490.22 multiplied by scaling factor (100) 
3:00010  FFFF / 65535  overflow: 921.0 x 100 = 92100 is too big for an unsigned 16-bit integer 
3:00011 
0001 / 1 
The 32-bit value 00012710 equals 75536 decimal 
3:00012 
2710 / 10000 
To make sense of this, the client software must support the 32-bit data formats used by the DT80, and it must be told the 
data type of each register (or register pair).  
Note1: Be aware that for 32-bit data types, the word order (i.e. whether the upper or lower 16 bits comes first) is not proscribed by the 
Modbus standard, so naturally both orderings are widely used. Most client software can be configured to support either   ordering. 
Note2: In this example 7CV and 11CV are spread across two registers apiece (3:00007-8 and 3:00011-12 respectively), which makes 
channel variables 8CV and 12CV effectively inaccessible
 via Modbus. They can still be used in the program (e.g. setting  8CV=42 in 
the above program is perfectly OK and won't interfere with 7CV); it's just that they cannot (easily) be accessed by a Modbus client. 
Note3: Some Modbus clients require that all 32-bit register pairs start on an odd-numbered register. That is, you can return a 32-bit 
value using registers 30001-30002, but not using registers 30002-30003. 
Putting It All Together 
In this example, a greenhouse is monitored by a DT80. Three thermocouples on analog inputs 1-3 monitor the 
temperature at various points. The DT80 is required to log the temperatures every 15s and switch on an extractor fan (by 
setting digital output 1D low) if any of the temperatures exceed a programmable setpoint. A sensor attached to the fan 
produces a voltage proportional to fan speed (1.25mV/rpm) and this is fed into analog input 4. Digital output 2D is 
connected to a watering system valve. 
The DT80 is connected to an Ethernet network. In a central office an operator runs a Modbus-capable SCADA package. 
She wants to be able to: 
•  check current temperatures 
•  set the current extractor fan setpoint 
•  check the status of the extractor fan (fan RPM and state of control output) 
•  switch the watering system on or off 
•  check how many data and alarm records have been logged 
The following sections discuss how this might be achieved. 
  DT80 Configuration 
It is assumed that the DT80's Ethernet connection has already been set up. This can be verified by entering its IP 
address into DeTransfer or a web browser and checking that the DT80's command or web interface is accessible. If you 
cannot connect to these services then you probably won't be able to connect to the Modbus server either. See Ethernet 
Communications (P231) for more information. Once TCP/IP connectivity has been established, a suitable DT80 job can 
be entered: 
  BEGIN"GERANIUM" 
   SETMODBUS 1..4CV MBI 10 'temperatures & setpoint 
   SETMODBUS 5..7CV MBL 1 'logged data,alarm recs (32 bit) 
   SETMODBUS 9CV MBI 1 'fan RPM 
   4CV(W)=30.0 ' default setpoint 
   'update every 15 sec 
   RA(DATA:30D,ALARMS:500KB)15S 
   1TK(NR,=1CV) 
   2TK(NR,=2CV) 
   3TK(NR,=3CV) 
   'set 10CV=1 if at least one temp over limit 
   'set 11CV=1 if all temps under limit 
   'allow +/- 1 degC hysteresis 
   10CV(W)=(1CV>4CV+1)OR(2CV>4CV+1)OR(3CV>4CV+1) 
   11CV(W)=(1CV<4CV-1)AND(2CV<4CV-1)AND(3CV<4CV-1) 
   ALARM1(10CV>.5)"Temp>?4 Fan ON^M"{1DSO=0} 
   ALARM2(11CV>.5)"Fan OFF^M"{1DSO=1} 
   32SV(W,=5CV) 'num logged data recs for sched A 
   33SV(W,=7CV) 'num logged alarm recs for sched A 
   4V(W,0.8,=9CV) 'fan speed 1.25mV/rpm 
   LOGONA 
  END 










