net.wimpi.modbus.facade
Class ModbusSerialMaster

java.lang.Object
  extended by net.wimpi.modbus.facade.ModbusSerialMaster

public class ModbusSerialMaster
extends Object

Modbus/Serial Master facade.

Version:
@version@ (@date@)
Author:
Dieter Wimberger, John Charlton

Constructor Summary
ModbusSerialMaster(SerialParameters param)
          Constructs a new master facade instance for communication with a given slave.
 
Method Summary
 void connect()
          Connects this ModbusSerialMaster with the slave.
 void disconnect()
          Disconnects this ModbusSerialMaster from the slave.
 int getUnitIdentifier()
          Returns the unit identifier of this ModbusSerialMaster.
 BitVector readCoils(int unitid, int ref, int count)
          Reads a given number of coil states from the slave.
 BitVector readInputDiscretes(int unitid, int ref, int count)
          Reads a given number of input discrete states from the slave.
 InputRegister[] readInputRegisters(int unitid, int ref, int count)
          Reads a given number of input registers from the slave.
 Register[] readMultipleRegisters(int unitid, int ref, int count)
          Reads a given number of registers from the slave.
 void setUnitIdentifier(int unitid)
          Sets the unit identifier of this ModbusSerialMaster.
 boolean writeCoil(int unitid, int ref, boolean state)
          Writes a coil state to the slave.
 void writeMultipleCoils(int unitid, int ref, BitVector coils)
          Writes a given number of coil states to the slave.
 void writeMultipleRegisters(int unitid, int ref, Register[] registers)
          Writes a number of registers to the slave.
 void writeSingleRegister(int unitid, int ref, Register register)
          Writes a single register to the slave.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ModbusSerialMaster

public ModbusSerialMaster(SerialParameters param)
Constructs a new master facade instance for communication with a given slave.

Parameters:
param - SerialParameters specifies the serial port parameters to use to communicate with the slave device network.
Method Detail

setUnitIdentifier

public void setUnitIdentifier(int unitid)
Sets the unit identifier of this ModbusSerialMaster.

Parameters:
unitid - the unit identifier.

getUnitIdentifier

public int getUnitIdentifier()
Returns the unit identifier of this ModbusSerialMaster.

Returns:
the unit identifier.

connect

public void connect()
             throws Exception
Connects this ModbusSerialMaster with the slave.

Throws:
Exception - if the connection cannot be established.

disconnect

public void disconnect()
Disconnects this ModbusSerialMaster from the slave.


readCoils

public BitVector readCoils(int unitid,
                           int ref,
                           int count)
                    throws ModbusException
Reads a given number of coil states from the slave.

Note that the number of bits in the bit vector will be forced to the number originally requested.

Parameters:
unitid - (IN) the slave unit id.
ref - the offset of the coil to start reading from.
count - the number of coil states to be read.
Returns:
a BitVector instance holding the received coil states.
Throws:
ModbusException - if an I/O error, a slave exception or a transaction error occurs.

writeCoil

public boolean writeCoil(int unitid,
                         int ref,
                         boolean state)
                  throws ModbusException
Writes a coil state to the slave.

Parameters:
unitid - the slave unit id.
ref - the offset of the coil to be written.
state - the coil state to be written.
Returns:
the state of the coil as returned from the slave.
Throws:
ModbusException - if an I/O error, a slave exception or a transaction error occurs.

writeMultipleCoils

public void writeMultipleCoils(int unitid,
                               int ref,
                               BitVector coils)
                        throws ModbusException
Writes a given number of coil states to the slave.

Note that the number of coils to be written is given implicitly, through BitVector.size().

Parameters:
unitid - the slave unit id.
ref - the offset of the coil to start writing to.
coils - a BitVector which holds the coil states to be written.
Throws:
ModbusException - if an I/O error, a slave exception or a transaction error occurs.

readInputDiscretes

public BitVector readInputDiscretes(int unitid,
                                    int ref,
                                    int count)
                             throws ModbusException
Reads a given number of input discrete states from the slave.

Note that the number of bits in the bit vector will be forced to the number originally requested.

Parameters:
unitid - the slave unit id.
ref - the offset of the input discrete to start reading from.
count - the number of input discrete states to be read.
Returns:
a BitVector instance holding the received input discrete states.
Throws:
ModbusException - if an I/O error, a slave exception or a transaction error occurs.

readInputRegisters

public InputRegister[] readInputRegisters(int unitid,
                                          int ref,
                                          int count)
                                   throws ModbusException
Reads a given number of input registers from the slave.

Note that the number of input registers returned (i.e. array length) will be according to the number received in the slave response.

Parameters:
unitid - the slave unit id.
ref - the offset of the input register to start reading from.
count - the number of input registers to be read.
Returns:
a InputRegister[] with the received input registers.
Throws:
ModbusException - if an I/O error, a slave exception or a transaction error occurs.

readMultipleRegisters

public Register[] readMultipleRegisters(int unitid,
                                        int ref,
                                        int count)
                                 throws ModbusException
Reads a given number of registers from the slave.

Note that the number of registers returned (i.e. array length) will be according to the number received in the slave response.

Parameters:
unitid - the slave unit id.
ref - the offset of the register to start reading from.
count - the number of registers to be read.
Returns:
a Register[] holding the received registers.
Throws:
ModbusException - if an I/O error, a slave exception or a transaction error occurs.

writeSingleRegister

public void writeSingleRegister(int unitid,
                                int ref,
                                Register register)
                         throws ModbusException
Writes a single register to the slave.

Parameters:
unitid - the slave unit id.
ref - the offset of the register to be written.
register - a Register holding the value of the register to be written.
Throws:
ModbusException - if an I/O error, a slave exception or a transaction error occurs.

writeMultipleRegisters

public void writeMultipleRegisters(int unitid,
                                   int ref,
                                   Register[] registers)
                            throws ModbusException
Writes a number of registers to the slave.

Parameters:
unitid - the slave unit id.
ref - the offset of the register to start writing to.
registers - a Register[] holding the values of the registers to be written.
Throws:
ModbusException - if an I/O error, a slave exception or a transaction error occurs.


Copyright © 2010. All Rights Reserved.