Как считать вес из шкалы, используя Ethernet-соединение

Привет, это мой первый пост, поэтому, пожалуйста, держись со мной.

У меня есть весы Mettler Toledo XS32000L, и я просто пытаюсь считать вес через соединение Ethernet и приложение VB.net (2010). Я нашел много информации / кода для последовательного (COM) соединения, но ничего для соединения Ethernet.

Режим связи: Адрес удаленного хоста клиента и сервера: 192.168.0.2. Номер порта удаленного хоста: 8001 Номер порта локального сервера: 8000 (IP-адрес масштаба: 192.168.0.1)

Я могу пинговать шкалу с ответом. Я пытался использовать HyperTerminal, но безуспешно. Любая помощь будет принята с благодарностью, и, надеюсь, этот пост поможет многим другим прийти. Спасибо!

Другие источники

Код для приложения VB с последовательным соединением: http://control.com/thread/1240210560

Еще одна полезная ссылка (но не для меня): http://vb.net-informations.com/communications/vb.net_socket_programming.htm

1 ответ

Хорошо - несмотря на критику, я собираюсь опубликовать решение после нескольких часов исследований. Я создал TCP-клиент и изменил настройки (IP, порт и т. Д.). Надеюсь, это поможет некоторым будущим программистам!

Imports System.Net.Sockets

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Call Connect("192.168.0.1", "S" & vbCrLf)
End Sub

Shared Sub Connect(ByVal server As [String], ByVal message As [String])
    Try
        ' Create a TcpClient. 
        ' Note, for this client to work you need to have a TcpServer  
        ' connected to the same address as specified by the server, port 
        ' combination. 
        Dim port As Int32 = 8000
        Dim client As New TcpClient(server, port)

        ' Translate the passed message into ASCII and store it as a Byte array. 
        Dim data As [Byte]() = System.Text.Encoding.ASCII.GetBytes(message)

        ' Get a client stream for reading and writing. 
        '  Stream stream = client.GetStream(); 
        Dim stream As NetworkStream = client.GetStream()

        ' Send the message to the connected TcpServer. 
        stream.Write(data, 0, data.Length)

        'Console.WriteLine("Sent: {0}", message)
        MsgBox("Sent: {0} " & message)
        ' Receive the TcpServer.response. 
        ' Buffer to store the response bytes.
        data = New [Byte](256) {}

        ' String to store the response ASCII representation. 
        Dim responseData As [String] = [String].Empty

        ' Read the first batch of the TcpServer response bytes. 
        Dim bytes As Int32 = stream.Read(data, 0, data.Length)
        responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes)
        'Console.WriteLine("Received: {0}", responseData)
        MsgBox("Received: {0} " & responseData)

        ' Close everything.
        stream.Close()
        client.Close()
    Catch e As ArgumentNullException
        'Console.WriteLine("ArgumentNullException: {0}", e)
        MsgBox("ArgumentNullException: {0}" & e.Message)
    Catch e As SocketException
        'Console.WriteLine("SocketException: {0}", e)
        MsgBox("SocketException: {0}" & e.Message)
    End Try

    MsgBox("Got to this point in code")

    'Console.WriteLine(ControlChars.Cr + " Press Enter to continue...")
    'Console.Read()
End Sub 'Connect

End Class
Другие вопросы по тегам