NET ModbusClient – Methods
Namespace: EasyModbus
Class: ModbusClient
Constructor ModbusClient(string ipAddress, int port)
Constructor for Modbus TCP and Modbus UDP connection.
string ipAddress: Ip- Address of the Modbus TCP Server
int port: Port of the Modbus TCP Server listening (Standard is 502)
Constructor ModbusClient( string serialPort)
Constructor for serial connection (Modbus RTU).
String serialPort: Name of the serial port to be used (e.g. “COM1”)
Constructor ModbusClient( )
Parameterless constructor. Needed parameters has to be changed using properties.
void Connect()
Connects to the Modbus Server (Modbus Master for RTU) with the previous selected properties.
void Connect (string ipAddress, int port)
Connects to the specified Modbus TCP Server
string ipAddress: Ip- Address of the Modbus TCP Server
int port: Port of the Modbus TCP Server listening (Standard is 502)
bool[] ReadDiscreteInputs(int startingAddress, int quantity)
Read Discrete Inputs from Master device (Function code 2)
startingAddress: First discrete input to be read
quantity: Numer of discrete Inputs to be read
returns: Boolean Array [0..quantity-1] which contains the discrete Inputs
bool[] ReadCoils(int startingAddress, int quantity)
Read Coils from Master device (Function code 1)
startingAddress: First coil to be read
quantity: Numer of coils to be read
returns: Boolean Array [0..quantity-1] which contains the coils
int[] ReadHoldingRegisters(int startingAddress, int quantity)
Read Holding Registers from Master device (Function code 3)
startingAddress: First holding register to be read
quantity: Number of holding registers to be read
returns: Int Array [0..quantity-1] which contains the holding registers
int[] ReadInputRegisters(int startingAddress, int quantity)
Read Input Registers from Master device (Function code 4)
startingAddress : First input register to be read
quantity: Number of input registers to be read
returns: Int Array [0..quantity-1] which contains the input registers
void WriteSingleCoil(int startingAddress, bool value)
Write single Coil to Master device (Function code 5)
startingAddress: Coil to be written
value: Coil Value to be written
void WriteSingleRegister(int startingAddress, int value)
Write single Register to Master device (Function code 6)
startingAddress: Register to be written
value: Register Value to be written
WriteMultipleCoils(int startingAddress, bool[] values)
Write multiple coils to Master device (Function code 15)
startingAddress : First coil to be written
values: Coil Values [0..quantity-1] to be written
WriteMultipleRegisters(int startingAddress, int[] values)
Write multiple registers to Master device (Function code 16)
startingAddress: First register to be written
values: Register Values [0..quantity-1] to be written
void Disconnect()
Close connection to Master Device
static float ConvertRegistersToFloat(int[] registers)
Converts two ModbusRegisters to Float – Example: EasyModbus.ModbusClient.ConvertRegistersToFloat(modbusClient.ReadHoldingRegisters(19,2))
registers: Two Register values (int array [0..1]) received from Modbus
returns: Connected float value
static float ConvertRegistersToFloat(int[] registers, RegisterOrder registerOrder)
Converts two ModbusRegisters to Float, Registers can by swapped
registers: Two Register values (int array [0..1]) received from Modbus
registerOrder: Desired Word Order (Low Register first or High Register first)
returns: Connected float value
static Int32 ConvertRegistersToInt(int[] registers)
Converts two ModbusRegisters to 32 Bit Integer value
registers: Two Register values (int array [0..1]) received from Modbus
returns: Connected 32 Bit Integer value
static Int32 ConvertRegistersToInt(int[] registers, RegisterOrder registerOrder)
Converts two ModbusRegisters to 32 Bit Integer value – Registers can be swapped
registers: Two Register values (int array [0..1]) received from Modbus
registerOrder: Desired Word Order (Low Register first or High Register first
returns: Connected 32 Bit Integer value
public static Int64 ConvertRegistersToLong(int[] registers)
Convert four 16 Bit Registers to 64 Bit Integer value Register Order “LowHigh”: Reg0: Low Word…..Reg3: High Word, “HighLow”: Reg0: High Word…..Reg3: Low Word
registers: Four Register values received from Modbus
returns: 64 bit value
public static Int64 ConvertRegistersToLong(int[] registers, RegisterOrder registerOrder)
Convert four 16 Bit Registers to 64 Bit Integer value – Registers can be swapped
registers: four Register values received from Modbus
registerOrder: Desired Word Order (Low Register first or High Register first
returns: Connected 64 Bit Integer value
public static double ConvertRegistersToDouble(int[] registers)
Convert four 16 Bit Registers to 64 Bit double prec. value Register Order “LowHigh”: Reg0: Low Word…..Reg3: High Word, “HighLow”: Reg0: High Word…..Reg3: Low Word
registers: four Register values received from Modbus
returns: 64 bit value
public static double ConvertRegistersToDouble(int[] registers, RegisterOrder registerOrder)
Convert four 16 Bit Registers to 64 Bit double prec. value – Registers can be swapped
registers: four Register values received from Modbus
registerOrder: Desired Word Order (Low Register first or High Register first
returns: Connected double prec. float value
public static int[] ConvertFloatToTwoRegisters(float floatValue)
Converts float to two ModbusRegisters – Example: modbusClient.WriteMultipleRegisters(24, EasyModbus.ModbusClient.ConvertFloatToTwoRegisters((float)1.22));
floatValue: Float value which has to be converted into two registers
returns: Register values
public static int[] ConvertFloatToTwoRegisters(float floatValue, RegisterOrder registerOrder)
Converts float to two ModbusRegisters Registers – Registers can be swapped
floatValue: Float value which has to be converted into two registers
registerOrder: Desired Word Order (Low Register first or High Register first
returns: Register values
public static int[] ConvertIntToTwoRegisters(Int32 intValue)
Converts 32 Bit Value to two ModbusRegisters
intValue: Int value which has to be converted into two registers
returns: Register values
public static int[] ConvertDoubleToTwoRegisters(Int32 intValue, RegisterOrder registerOrder)
Converts 32 Bit Value to two ModbusRegisters Registers – Registers can be swapped
intValue: Double value which has to be converted into two registers
registerOrder: Desired Word Order (Low Register first or High Register first
returns: Register values
public static int[] ConvertLongToTwoRegisters(Int64 longValue)
Converts 64 Bit Value to four ModbusRegisters
longValue: long value which has to be converted into four registers
returns: Register values
public static int[] ConvertLongToTwoRegisters(Int64 longValue, RegisterOrder registerOrder)
Converts 64 Bit Value to four ModbusRegisters – Registers can be swapped
longValue: long value which has to be converted into four registers
registerOrder: Desired Word Order (Low Register first or High Register first
Register values
public static int[] ConvertDoubleToTwoRegisters(double doubleValue)
Converts 64 Bit double prec Value to four ModbusRegisters
doubleValue: double value which has to be converted into four registers
returns: Register values
public static int[] ConvertDoubleToTwoRegisters(double doubleValue, RegisterOrder registerOrder)
Converts 64 Bit double prec. Value to four ModbusRegisters – Registers can be swapped
doubleValue: double value which has to be converted into four registers
registerOrder: Desired Word Order (Low Register first or High Register first
returns: Register values
public static string ConvertRegistersToString(int[] registers, int offset, int stringLength)
Converts 16 – Bit Register values to String
registers – Register array received via Modbus
offset – First Register containing the String to convert
stringLength – number of characters in String (must be even)
returns: Converted String
public static int[] ConvertStringToRegisters(string stringToConvert)
Converts a String to 16 – Bit Registers
registers – Register array received via Modbus
returns: Converted String
public bool Available(int timeout)
Checks if the Server IP-Address is available
timeout: Timeout to wait for response
NET ModbusClient – Properties
Namespace: EasyModbus
Class: ModbusClient
bool Connected
returns “TRUE” if client is connected to Server; otherwise “FALSE”
string IPAddress
Gets or Sets the IP-Address of the Server to be connected
int Port
Gets or Sets the Port were the Modbus-TCP Server is reachable (Standard is 502)
bool UDPFlag
Gets or Sets the UDP-Flag to activate Modbus UDP.
byte UnitIdentifier
Gets or Sets the Unit identifier in case of serial connection (Default = 0)
int Baudrate
Gets or Sets the Baudrate for serial connection (Default = 9600)
Parity Parity
Gets or Sets the of Parity in case of serial connection
StopBits StopBits
Gets or Sets the number of stopbits in case of serial connection
int ConnectionTimeout
Gets or Sets the connection Timeout in case of ModbusTCP connection
string LogFileFilename
Gets or Sets the Filename for the LogFile. If the Filename is set, the LogData are stored in that file, otherwise no Logdata will be written