Проблема с получением данных с контроллера, подключенного к Ethernet

#tcp #controller #hex #ip #ethernet

Вопрос:

Имеется собственный контроллер с установленным Ethernet (K-7). Руководитель может быть опрошен командой («FF A1 C1 FD»). Контроллер также отвечает на опросы (FF C2 00 32). Он написал тестовую программу для VB6 — программа и контроллер работают нормально. Но при написании программы на VB.NET, возникает ошибка — программа зависает (в любое время). Что может быть? Ошибка в строке: ns.Чтение(байт, 0, байт.Длина)

Импортирует System.Net.Сокеты

Форма Публичного Класса1

 Public TextString As String = "FF A1 C1 FD"

Dim Podkl As Byte

Dim tc As TcpClient


Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    Button4.Enabled = False
    If My.Computer.Network.Ping("192.168.1.7") = True Then
        Podkl = 1
        Timer1.Enabled = True
    End If
End Sub

Sub Send_tcp()
    Label1.Text  = 1
    TextBox5.Text = ""

    Dim parts As String() = TextString.Split(" ")
    Dim bytes(parts.Length) As Byte

    If tc Is Nothing Then tc = New TcpClient("192.168.1.7", 23)
    Dim ns As NetworkStream = tc.GetStream()

    For i As Integer = 0 To parts.Length - 1
        bytes(i) = Convert.ToByte(parts(i), 16)
    Next

    'Try
    'Send request to controller
    ns.Write(bytes, 0, bytes.Length)
    ns.Flush()

    'Received a response from the controller
    ns.Read(bytes, 0, bytes.Length)
    ns.Flush()
    ' ns.Close()

    For f = 0 To parts.Length - 1
        TextBox5.Text amp;= H_Hex(bytes(f))
    Next
    ' Catch ex As Exception

    ' End Try
End Sub

Public Function H_Hex(Text As String) As String
    If Len(Text) = 0 Then Exit Function

    If (Len(Hex(Text)) Mod 2) Then
        H_Hex = "0" amp; Hex(Text) amp; " "
    Else
        H_Hex = Hex(Text) amp; " "
    End If

End Function

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    If Podkl = 1 Then Send_tcp()
End Sub
 

Конечный класс