DT80 range Modbus capability David Williams Product Development Manager 23 March 2010 Introduction to Modbus • What is Modbus? • Is an serial data protocol for transferring data between intelligent devices. • Widely used in industrial sector • Designed to be scalable in size and complexity. • Supported in SCADA (Supervisory Control And Data Acquisition) applications • Has a Master (Client) that requests data from Slave (Server) devices 2 Introduction to Modbus • Modbus can operate using a broad range of communications media. • Serial connection are typically RS232, RS422 or RS485 • TCP/IP network, which can use a variety of physical link types e.g. Ethernet wireless, fibre-optic, serial (PPP) • There are two methods of data transfer • Modbus RTU (Remote Telemetry Unit) • Binary data in packet format • Most common implementation • Modbus ASCII • Plain text in packet format (Little used) 3 Introduction to Modbus • Modbus Serial • One master per network • Each network can have up to 247 slave devices • 1 slave device for RS232 • Each slave device has a unique address (1 to 247) • Modbus TCP/IP • Multiple masters on one network • Slave devices identified by TCP/IP address. 4 Introduction to Modbus • The master device requests data from the slave • Message includes; • Slave address • Function codes; • • • • 0 = Read a coil (e.g. Read / write the state of a digital channel) 1 = Read state 3 = Input register (Read a register) 4 = Output register (Read or write to a register.) • Starting address of registers to be accessed • Number of registers • 16 bit check sum 5 Introduction to Modbus • Slave device will respond only to messages direct to it. • Slave devices can have up to 65535 registers • Registers can be either coils (bit state) or data • Data can be of types; • • • • • • Signed 16 bit integer Unsigned 16 bit integer Signed 32 bit integer Unsigned 32 bit integer 32 bit floating point number Maximum message length is 255 bytes • This means you need to understand the device configuration and mapping 6 DT80 Range Modbus capability • Generic implementation • No special drivers required for SCADA packages • Ease of integration into existing SCADA systems • Supports standard Modbus data types • Flexible communications • Can support non standard baud rates and other communications settings (Parity, TCP/IP ports etc) • Can be simultaneously connected to more than one Modbus network • Can be a master and slave simultaneously on different networks 7 DT80 Range Modbus capability • Example; • Can be a master on an serial sensor port RS485 network and a slave on the RS232 host port • Can be a master and a slave on a TCP/IP network 8 DT80 Range Modbus capability • The DT80 supports Modbus master or slave modes over • RS232 - Serial sensor port and Host port • RS422 - Serial sensor port • RS485 - Serial sensor port • TCP/IP - Ethernet or PPP • On a TCP/IP network a DT80 can be both a master and a slave device at the same time. 9 DT80 Range Modbus capability • Unusual capabilities • Back filling data in to SCADA systems • SCADA systems are real time. If the network or power fails then data is lost. The DT80 having independent power will keep data that can be recovered latter. • Independent alarming. • The DT80 has the capability to send alarms independent of SCADA system • Gateway • Modbus to Modbus • SDI-12 to Modbus • Serial to Modbus • CAN to Modbus (e.g. OBDII, J1939) 10 DT80 Range Modbus capability • Unusual capabilities • FTP Client - Can push data to a site • FTP Server - Can serve data when requested • High quality web interface built in as standard • Custom web pages • Allows real time inter logger calculations and data exchange. 11 DT80 Range Modbus Slave configuration • Introduced in V6.02 firmware (May 2006) • Modbus registers mapping • Channel variables - Registers 1 to 1000 • System variables - Registers 4001 to 4053 • Digital I/O and relay - Registers 8000 to 8009 Note: Modbus master can access digital i/o directly • Data types supported • Signed 16 bit integer • Unsigned 16 bit integer • Signed 32 bit integer • 32 bit floating point number 12 DT80 Range Modbus Slave configuration • Slave commands and settings • SetModBus • Used to set the data type in the registers • Profile settings • Allow the DT80 to be configured to suit Modbus network • Set communications interface to slave mode Note: Modbus ASCII is not supported 13 DT80 Range Modbus Master configuration • Example of code Begin“Slave" SETMODBUS 1..2CV MBI 100 'Configure Modbus registers for temperature readings RA("B:",Data:NOV:60D)1M ' Measure concrete temperature - 2 thermocouples per channel on CEM20 #1 101*TT(=1CV,"Temp1~DegC",ff2) 'Temperature 1 mapped to MODBus register 1 101TT(=2CV,"Temp2~DegC",ff2) 'Temperature 2 mapped to MODBus register 2 END 14 DT80 Range Modbus Master configuration • Introduced in V8 firmware (March 2010) • New channel type nMODBUS(Options)(=Assign) • Access to the different communications interfaces • 1 = Serial sensor port • 2 = Host port • 4 = TCP/IP 15 DT80 Range Modbus Master configuration • Channel options; • Allow read / access to all Modbus functionality • Assign (Option) • Writing data to single or multiple registers - =x..xxCV • Profile settings • To configure DT80 to match Modbus network • Set communications interface to master mode • Error messages and diagnostics • Full error reporting will 11 new error messages • Diagnostics for Modbus added 16 DT80 Range Modbus Master configuration • Example of code Begin"Master" RA1M '======================================================= 'Read remote temperatures from MODBus slave ' RTU address - AD“myDT80.com.au" ' Register 3 start address 1 - R3:1 ' Read consecutive registers to CV's - =1..2CV ' Read MODBus signed integers - MBI ' Integers have been x 100 so we x by 0.01 - 0.01 ' 3 re-tries - RT3 ' 15 second time out - TO15 '======================================================= 4MODBUS(AD"myDT80.com.au",R3:1,=1..2CV,MBI,0.01,RT3,TO15,W) 1cv(ff2,"RmtTemp1~DegC") 'Remote Temperature 1 2cv(ff2,"RmtTemp2~DegC") 'Remote Temperature 2 End 17 DT80 Range Modbus applications • Who use Modbus? • Manufacturing • Petrochemical • Chemical • Power • Water • Desalination • Purification • Waste treatment 18 DT80 Range Modbus applications • What can we connect to? • Programmable Logic Controllers (PLC) • Controllers (Ovens, water baths, fridges, freezers etc) • Human Machine Interfaces (HMI) • Analog and digital I/O modules • Smart Sensors • RFID tag readers • Pressure • Supervisory Control And Data Acquisition (SCADA) • Whole new ranges of sensors, devices and applications. 19 DT80 Range Modbus applications • HMI • Allows operator to enter data directly into DT80 • Change set points • Batch ID’s • Operator ID • Graphical display of real time data to operator • Indicators • Charts • Mimic type displays. 20 DT80 Range Modbus applications • Dam monitoring • Multiple remote sites (50+) • Mix of sensors • SDI-12 • Modbus depth sensor • Vibrating wire piezometers • Remote Network connection via VPN back to central SCADA system • Data is backed up by using dataTaker unload commands to a separate system. 21 DT80 Range Modbus applications • Vehicle location & down time monitoring • In each vehicle • Modbus RTU RFID tag read • Touch screen HMI • DT80 • RFID tags distributed around site • If a vehicle has been stationary for more than a set period of time then the driver is required to input a reason why. 22