In both of these examples, the IPEndPoint object ep for the MODBUS slave is set to IP address 192.168.0.150. A Modbus object, mb is created that refers to that endpoint. The mb object is used for communicating with the slave.
This first example shows a procedure that reads from a MODBUS slave.
Public Sub Modbus_Read_Example
Dim ep As New IPEndPoint("192.168.0.150")
Dim mb As New Modbus(ep)
Dim ii As Integer
Dim bool() As Boolean
Dim input() As Integer
mb.ReadCoils(1, 16, bool)
For ii = 1 To 16
Console.Write("Coil " & CStr(ii) & ": ")
Console.Writeline(bool(ii-1))
Next ii
mb.ReadDiscreteInputs(1, 16, bool)
For ii = 1 To 16
Console.Write("Input " & CStr(ii) & ": ")
Console.Writeline(bool(ii-1))
Next ii
mb.ReadHoldingRegisters(1, 2, input)
For ii = 1 To 2
Console.Write("HReg " & CStr(ii) & ": ")
Console.Writeline(Hex(input(ii-1)))
Next ii
mb.ReadInputRegisters(1, 2, input)
For ii = 1 To 2
Console.Write("IReg " & CStr(ii) & ": ")
Console.Writeline(Hex(input(ii-1)))
Next ii
mb.Close()
End Sub
The next example shows a procedure that writes to a MODBUS slave.
Public Sub Modbus_Write_Example
Dim ep As New IPEndPoint("192.168.0.150")
Dim mb As New Modbus(ep)
Dim ii As Integer
Dim output() As Integer
Dim bool() As Boolean
For ii = 1 To 16
mb.WriteSingleCoil(ii, ii And 1)
Next ii
mb.WriteSingleRegister(1, 600)
ReDim bool(15)
For ii = 0 To 15
bool(ii) = ii And 2
Next ii
mb.WriteMultipleCoils(1, bool)
ReDim output(15)
For ii = 0 To 15
output(ii) = ii*ii
Next ii
mb.WriteMultipleRegisters(1, output)
End Sub