1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| Imports System.Net.Sockets
Public Class ModbusTCP
Private Shared instance As ModbusTCP = Nothing
Private server As String = ""
Private port As Integer = 0
Private tcpClient As TcpClient = Nothing
Private networkStream As NetworkStream
Private connected As Boolean = False
Private Sub New()
End Sub
Shared Function GetInstance(addressIP As String, port As Integer) As ModbusTCP
If instance Is Nothing Then
instance = New ModbusTCP
End If
Return instance
End Function
Public Sub SetConnection(ByVal server As String, ByVal port As Integer)
Me.server = server
Me.port = port
End Sub
Public Function Connect()
Try
tcpClient = New TcpClient(server, port)
networkStream = tcpClient.GetStream()
connected = True
Catch ex As Exception
connected = False
End Try
Return connected
End Function
Public Sub Disconnect()
networkStream.Close()
tcpClient.Close()
End Sub
Private Function ExecQuery(ByVal requestFrame As Byte(), ByVal responseFrame As Byte()) As Byte()
tcpClient.SendTimeout = 5000
tcpClient.ReceiveTimeout = 5000
networkStream.Write(requestFrame, 0, requestFrame.Length)
networkStream.Read(responseFrame, 0, responseFrame.Length)
Return responseFrame
End Function |