The FieldTalk™ Modbus Master® Library, Java™ Edition provides connectivity to Modbus slave compatible devices and applications.
Typical applications are Modbus based Supervisory Control and Data Acquisition Systems (SCADA), Modbus data concentrators, Modbus gateways, User Interfaces and Factory Information Systems (FIS). It also helps publishing plant floor data on the web using Java applets and Java servlets.
The package is designed for the Java 2 Platform Standard Edition. It is also compatible with the J2ME Foundation and TINI SDK 1.11 platforms.
The standard Java API does not provide any support for serial ports. However serial port support is available in the form of a Java extension, which must be installed and licensed separately to the JDK and JRE. The Communications API is not part of the supply of FieldTalk.
The serial versions of this package are based on the Java Communications API 2.0. This API is a Java extension, implemented in the package javax.comm.
The Java Communication API is available from different sources:
The library is organised into one class for each Modbus protocol flavour and a common base class, which applies to all Modbus protocol flavours. Because the two serial-line protocols Modbus ASCII and Modbus RTU share some common code, an intermediate base class implements the functions specific to the serial protocols.
The base class MbusMasterFunctions contains all protocol unspecific functions, in particular the data and control functions defined by Modbus. All Modbus protocol flavours inherit from this base class.
The class MbusAsciiMasterProtocol implements the Modbus ASCII protocol, the class MbusRtuMasterProtocol implements the Modbus RTU protocol. The class MbusTcpMasterProtocol implements the MODBUS/TCP protocol. Support for the Extended Lufkin Automation (ELAM) Modbus protocol is realized by the class MbusElamMasterProtocol.
In order to use one of the four Modbus protocols, the desired Modbus protocol flavour class has to be instantiated:
MbusRtuMasterProtocol mbusProtocol = new MbusRtuMasterProtocol();
After a protocol object has been declared and opened, data and control functions can be used:
mbusProtocol.writeSingleRegister(slaveId, startRef, 1234);