TCPConnect - bekomme keine Antwort zurück.

  • Hi,

    vorab - bin ein blutiger Anfänger :D der folgendes Problem hat:

    Ich habe eine Waage mit einer Seriellen Schnittstelle. Diese Serielle Schnittstelle ist auf einen Schnittstellenwandler geführt ( RS232 auf TCP/IP ). Wir haben bereits eine Applikation im Betrieb die Über TCP/IP Daten aus der Waage liest. Die Waage stellt hierfür einen speziellen Befehlsvorrat zur Verfügung. Kurzum - die Schnittstelle funktioniert. Der Quellcode dieser Applikation ist leider nicht einsehbar. Ich möchte diese Applikation nun mit Hilfe von AutoIt nachbilden. Ich bin auch mittlerweile in der Lage Daten an die Waage zu senden aber leider bekomme ich keine Antwort und auch keinen Fehler zurück. Es gibt die Möglichkeit den Schnittstellenwandler als TCP Client zu konfigurieren das habe ich auch versucht aber habe dennoch keine Antwort bekommen. Es muss wie bei der bestehenden Applikation auch einen Weg geben die Daten auch ohne die TCP Client Konfiguration zu lesen und zu schreiben. Ich hoffe das jemand von euch mir helfen kann.

    Anbei mein Code:


    [autoit]

    ;Tool für TMR Auslesen und Nullstellen der LKW-Waagen.
    ;Änderungen bitte eintragen
    ;Erstellung Version 1.0 Stand 20.04.2010 Sto AG Abt. TVAS Michael Blum

    [/autoit][autoit][/autoit][autoit]

    #include <GuiConstantsEx.au3>
    #Include <Color.au3>
    #include <Constants.au3>
    #include <Word.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Opt("GUIOnEventMode",1)
    TCPStartup() ; TCP wird initialisiert
    ;~ local $IP1 = "10.102.42.254" ;IP Adresse Waage 1
    ;~ local $IP2 = "10.101.34.20" ;IP Adresse Waage 2
    ;~ local $Port1 = 10000 ;TCP Port der Waage 1
    ;~ local $Port2 = 10002 ;TCP Port der Waage 2
    local $IP1 = "10.103.42.172" ;IP Adresse Waage 1
    local $IP2 = "10." ;IP Adresse Waage 2
    local $Port1 = 8000 ;TCP Port der Waage 1
    local $Port2 = 10002 ;TCP Port der Waage 2
    local $Gewicht = "RN" ; Systec String für Gweichtswert lesen wenn Waage in Ruhe
    local $ZeroIt = "SZ" ; Systec String für Waage Nullstellen
    local $waage1 = 3 ;Adresse der Waageneinheit1 (Brückenwaage)
    local $waage2 = 1 ;Adresse der Waageneinheit2 ( Gebäude 18)
    Global $Ende
    Global $socket
    Global $Message
    Global $SHOCKET
    Global $myIP

    [/autoit][autoit][/autoit][autoit]

    GUICreate("LKW Waagen Nullstellen",700,700)
    GUISetState(@sw_show)

    [/autoit][autoit][/autoit][autoit]

    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ;GUICtrlCreateLabel("Waagenantwort:",40,200,600,300,1,1)
    $Message = GUICtrlCreateList("Waagenantwort:",40,200,600,300,1)
    $W1Read = GUICtrlCreateButton("Waage 1 lesen",40,600,110,50)
    GUICtrlSetOnEvent($W1Read,"WA1RD")
    $W2Read = GUICtrlCreateButton("Waage 2 lesen",160,600,110,50)
    GUICtrlSetOnEvent($W2Read,"WA2RD")
    $W1Zero = GUICtrlCreateButton("Waage 1 Nullstellen",280,600,110,50)
    GUICtrlSetOnEvent($W1Zero,"WA1ZR")
    $W2Zero = GUICtrlCreateButton("Waage 2 Nullstellen",400,600,110,50)
    GUICtrlSetOnEvent($W2Zero,"WA2ZR")

    [/autoit][autoit][/autoit][autoit]

    $Ende = GUICtrlCreateButton("Ende",520,600,110,50)
    GUICtrlSetOnEvent($Ende, "Onexit")

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    while 1
    ;sleep(2000)
    wend

    [/autoit][autoit][/autoit][autoit]

    func WA1RD ()
    $socket = TCPConnect($IP1, $Port1)
    If $socket = -1 Then ; Wenn $socket = -1 ist, Fehlermeldung ausgeben
    MsgBox(16, "Error", "Die Verbindung zum Server konnte nicht hergestellt werden!") ; Fehlermeldung
    EndIf
    $sendedBytes = TCPSend($socket, $Gewicht & $Waage1)
    If $sendedBytes = 0 Then ; Wenn der Rückgabewert von TCPSend(...) 0 ist, Fehlermeldung ausgeben
    MsgBox(16, "Error", "Das Paket konnte nicht gesendet werden.") ; Fehlermeldung
    EndIf

    [/autoit][autoit][/autoit][autoit]

    TCPCloseSocket($socket)
    call("AntwortW1")
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    func WA2RD ()
    $socket = TCPConnect($IP2, $Port2)
    If $socket = -1 Then ; Wenn $socket = -1 ist, Fehlermeldung ausgeben
    MsgBox(16, "Error", "Die Verbindung zum Server konnte nicht hergestellt werden!") ; Fehlermeldung
    EndIf
    $sendedBytes = TCPSend($socket, $Gewicht & $Waage2)
    If $sendedBytes = 0 Then ; Wenn der Rückgabewert von TCPSend(...) 0 ist, Fehlermeldung ausgeben
    MsgBox(16, "Error", "Das Paket konnte nicht gesendet werden.") ; Fehlermeldung
    EndIf
    TCPCloseSocket($socket)
    call("AntwortW2")
    EndFunc
    func WA1ZR ()
    $socket = TCPConnect($IP1, $Port1)
    If $socket = -1 Then ; Wenn $socket = -1 ist, Fehlermeldung ausgeben
    MsgBox(16, "Error", "Die Verbindung zum Server konnte nicht hergestellt werden!") ; Fehlermeldung
    EndIf
    $sendedBytes = TCPSend($socket, $ZeroIt & $Waage1)
    If $sendedBytes = 0 Then ; Wenn der Rückgabewert von TCPSend(...) 0 ist, Fehlermeldung ausgeben
    MsgBox(16, "Error", "Das Paket konnte nicht gesendet werden.") ; Fehlermeldung
    EndIf
    TCPCloseSocket($socket)
    call("AntwortW1")
    EndFunc
    func WA2ZR ()
    $socket = TCPConnect($IP2, $Port2)
    If $socket = -1 Then ; Wenn $socket = -1 ist, Fehlermeldung ausgeben
    MsgBox(16, "Error", "Die Verbindung zum Server konnte nicht hergestellt werden!") ; Fehlermeldung
    EndIf
    $sendedBytes = TCPSend($socket, $ZeroIt & $Waage2)
    If $sendedBytes = 0 Then ; Wenn der Rückgabewert von TCPSend(...) 0 ist, Fehlermeldung ausgeben
    MsgBox(16, "Error", "Das Paket konnte nicht gesendet werden.") ; Fehlermeldung
    EndIf
    TCPCloseSocket($socket)
    call("AntwortW2")
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    func AntwortW1()

    [/autoit][autoit][/autoit][autoit]

    $myPort = 8000

    [/autoit][autoit][/autoit][autoit]

    ;~ $myip = "10.103.42.249"
    $myIP = @IPAddress1

    [/autoit][autoit][/autoit][autoit]

    $mainsocket = TCPListen($myIP, $myPort)
    ;~ $mainsocket = TCPListen($myip, $Port1)

    [/autoit][autoit][/autoit][autoit]

    While 1 ; Endlosschleife
    $acceptedSocket = TCPAccept($mainsocket) ; Wir versuchen eine möglicher Verbindung anzunehmen

    [/autoit][autoit][/autoit][autoit]

    If $acceptedSocket <> -1 Then ; Wenn $acceptedSocket ungleich -1 ist, ...
    $receivedData = TCPRecv($acceptedSocket, $myPort) ; Wenn eine Socketverbindung hergestellt wurde, empfange ein Paket vom Client ($connectedSocket)
    MsgBox(64, "Nachricht empfangen!", "Es wurde eine Nachricht empfangen: " & $receivedData)
    GUICtrlSetData($Message,$receivedData)
    TCPCloseSocket($acceptedSocket)
    ExitLoop
    EndIf

    [/autoit][autoit][/autoit][autoit]

    ;~ msgbox(1,"sally","hoi")

    [/autoit][autoit][/autoit][autoit]

    WEnd
    ;TCPCloseSocket($socket)
    TCPShutdown()

    [/autoit][autoit][/autoit][autoit]

    EndFunc

    [/autoit][autoit][/autoit][autoit]

    func AntwortW2()

    [/autoit][autoit][/autoit][autoit]

    $myPort = 10000
    $myip = "10.103.42.249"
    ;$myIP = @IPAddress1

    [/autoit][autoit][/autoit][autoit]

    $mainsocket = TCPListen($myip, $myPort)

    [/autoit][autoit][/autoit][autoit]

    While 1 ; Endlosschleife
    $acceptedSocket = TCPAccept($mainsocket) ; Wir versuchen eine möglicher Verbindung anzunehmen

    [/autoit][autoit][/autoit][autoit]

    If $acceptedSocket <> -1 Then ; Wenn $acceptedSocket ungleich -1 ist, ...
    $receivedData = TCPRecv($acceptedSocket, $myPort) ; Wenn eine Socketverbindung hergestellt wurde, empfange ein Paket vom Client ($connectedSocket)
    MsgBox(64, "Nachricht empfangen!", "Es wurde eine Nachricht empfangen: " & $receivedData)
    GUICtrlSetData($Message,$receivedData)
    TCPCloseSocket($acceptedSocket)
    ExitLoop
    EndIf

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    WEnd

    [/autoit][autoit][/autoit][autoit]

    ; TCPShutdown()

    [/autoit][autoit][/autoit][autoit]

    EndFunc

    [/autoit][autoit][/autoit][autoit]

    ; Raus hier.....
    Func CLOSEClicked()
    ;TCPShutdown()
    Exit
    EndFunc
    func onexit ()
    If @GUI_CtrlId = $Ende Then
    ;TCPShutdown()
    Exit
    EndIf
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von recordz (10. Mai 2010 um 09:46)

  • Du hast eine flasche Logik in deinem Skript. Du machst folgendes:
    Verbinden
    Senden
    Trennen
    Verbinden
    Empfangen
    Trennen
    ...

    Stattdessen solltest du nur ein mal zu Beginn verbinden und am Ende wieder trennen. Zumindest darf die Verbindung nicht zwischen einem Kommando und der Antwort darauf getrennt werden. Hast du keine Dokumentation oder sonst was von dem TCP-Wandler und der Waagenschnittstelle?

  • Versuchs mal so:

    Spoiler anzeigen
    [autoit]

    ;Tool für TMR Auslesen und Nullstellen der LKW-Waagen.
    ;Änderungen bitte eintragen
    ;Erstellung Version 1.0 Stand 20.04.2010 Sto AG Abt. TVAS Michael Blum

    [/autoit] [autoit][/autoit] [autoit]

    #include <GuiConstantsEx.au3>
    #include <Color.au3>
    #include <Constants.au3>
    #include <Word.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Opt("GUIOnEventMode", 1)
    TCPStartup() ; TCP wird initialisiert
    ;~ local $IP1 = "10.102.42.254" ;IP Adresse Waage 1
    ;~ local $IP2 = "10.101.34.20" ;IP Adresse Waage 2
    ;~ local $Port1 = 10000 ;TCP Port der Waage 1
    ;~ local $Port2 = 10002 ;TCP Port der Waage 2
    Local $IP1 = "10.103.42.172" ;IP Adresse Waage 1
    Local $IP2 = "10." ;IP Adresse Waage 2
    Local $Port1 = 8000 ;TCP Port der Waage 1
    Local $Port2 = 10002 ;TCP Port der Waage 2
    Local $Gewicht = "RN" ; Systec String für Gweichtswert lesen wenn Waage in Ruhe
    Local $ZeroIt = "SZ" ; Systec String für Waage Nullstellen
    Local $waage1 = 3 ;Adresse der Waageneinheit1 (Brückenwaage)
    Local $waage2 = 1 ;Adresse der Waageneinheit2 ( Gebäude 18)
    Global $Ende
    Global $socket
    Global $Message
    Global $SHOCKET
    Global $myIP
    Global $receivedData

    [/autoit] [autoit][/autoit] [autoit]

    GUICreate("LKW Waagen Nullstellen", 700, 700)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetOnEvent($GUI_EVENT_CLOSE, "onexit")

    [/autoit] [autoit][/autoit] [autoit]

    ;GUICtrlCreateLabel("Waagenantwort:",40,200,600,300,1,1)
    $Message = GUICtrlCreateList("Waagenantwort:", 40, 200, 600, 300, 1)
    $W1Read = GUICtrlCreateButton("Waage 1 lesen", 40, 600, 110, 50)
    GUICtrlSetOnEvent($W1Read, "WA1RD")
    $W2Read = GUICtrlCreateButton("Waage 2 lesen", 160, 600, 110, 50)
    GUICtrlSetOnEvent($W2Read, "WA2RD")
    $W1Zero = GUICtrlCreateButton("Waage 1 Nullstellen", 280, 600, 110, 50)
    GUICtrlSetOnEvent($W1Zero, "WA1ZR")
    $W2Zero = GUICtrlCreateButton("Waage 2 Nullstellen", 400, 600, 110, 50)
    GUICtrlSetOnEvent($W2Zero, "WA2ZR")

    [/autoit] [autoit][/autoit] [autoit]

    $Ende = GUICtrlCreateButton("Ende", 520, 600, 110, 50)
    GUICtrlSetOnEvent($Ende, "Onexit")

    [/autoit] [autoit][/autoit] [autoit]

    ;Verbindungen aufbauen
    $socket = TCPConnect($IP1, $Port1)
    If $socket = -1 Then ; Wenn $socket = -1 ist, Fehlermeldung ausgeben
    MsgBox(16, "Error", "Die Verbindung zum Server konnte nicht hergestellt werden!") ; Fehlermeldung
    EndIf
    $socket2 = TCPConnect($IP2, $Port2)
    If $socket2 = -1 Then ; Wenn $socket = -1 ist, Fehlermeldung ausgeben
    MsgBox(16, "Error", "Die Verbindung zum Server konnte nicht hergestellt werden!") ; Fehlermeldung
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    ;sleep(2000)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func WA1RD()
    $sendedBytes = TCPSend($socket, $Gewicht & $waage1)
    If $sendedBytes = 0 Then ; Wenn der Rückgabewert von TCPSend(...) 0 ist, Fehlermeldung ausgeben
    MsgBox(16, "Error", "Das Paket konnte nicht gesendet werden.") ; Fehlermeldung
    EndIf
    While 1
    $receivedData = TCPRecv($connectedSocket, $Port1) ; Wenn eine Socketverbindung hergestellt wurde, empfange ein Paket vom Client ($connectedSocket)
    If $receivedData <> "" Then
    MsgBox(64, "Nachricht empfangen!", "Es wurde eine Nachricht empfangen: " & $receivedData)
    GUICtrlSetData($Message, $receivedData)
    ExitLoop
    EndIf
    WEnd
    EndFunc ;==>WA1RD

    [/autoit] [autoit][/autoit] [autoit]

    Func WA2RD()
    $sendedBytes = TCPSend($socket2, $Gewicht & $waage2)
    If $sendedBytes = 0 Then ; Wenn der Rückgabewert von TCPSend(...) 0 ist, Fehlermeldung ausgeben
    MsgBox(16, "Error", "Das Paket konnte nicht gesendet werden.") ; Fehlermeldung
    EndIf
    While 1
    $receivedData = TCPRecv($connectedSocket2, $Port2) ; Wenn eine Socketverbindung hergestellt wurde, empfange ein Paket vom Client ($connectedSocket)
    If $receivedData <> "" Then
    MsgBox(64, "Nachricht empfangen!", "Es wurde eine Nachricht empfangen: " & $receivedData)
    GUICtrlSetData($Message, $receivedData)
    ExitLoop
    EndIf
    WEnd
    EndFunc ;==>WA2RD

    [/autoit] [autoit][/autoit] [autoit]

    Func WA1ZR()
    $sendedBytes = TCPSend($socket, $ZeroIt & $waage1)
    If $sendedBytes = 0 Then ; Wenn der Rückgabewert von TCPSend(...) 0 ist, Fehlermeldung ausgeben
    MsgBox(16, "Error", "Das Paket konnte nicht gesendet werden.") ; Fehlermeldung
    EndIf
    While 1
    $receivedData = TCPRecv($connectedSocket, $Port1) ; Wenn eine Socketverbindung hergestellt wurde, empfange ein Paket vom Client ($connectedSocket)
    If $receivedData <> "" Then
    MsgBox(64, "Nachricht empfangen!", "Es wurde eine Nachricht empfangen: " & $receivedData)
    GUICtrlSetData($Message, $receivedData)
    ExitLoop
    EndIf
    WEnd
    EndFunc ;==>WA1ZR

    [/autoit] [autoit][/autoit] [autoit]

    Func onexit()
    TCPShutdown()
    Exit
    EndFunc ;==>onexit

    [/autoit]

    Was ich geändert habe:
    Richtige Logik (Verbindung wird am Anfang hergestellt)
    Nur eine Funktion zum Beenden
    Hab Tidy rüberlaufen lassen

    o
    L_/
    | ||

    This ist janaiky. Copy janaiky into your signature to help him on the war to the Weltherrschaft.

  • Danke für eure Vorschläge. Mittlerweile bin ich einen Schritt weiter aber es funktioniert noch nicht richtig.

    Ich habe hier einen Testaufbau mit einem oben beschriebenen Schnittstellenwandler. Leider habe ich keine Testwage. Die Serielle Schnittstelle hängt auf meinem Com-Port - und wird mit dem Hyperterminal abgefragt. Wenn ich nun auf die IP Adresse den Abfragestring (RN2) auf Port 8000 ( TCP Port des Testwandlers) schicke erschein dieser korrekt auf dem Hyperterminal. Ich kann auch via Hyperterminal eine Antwort zurück senden die in der MessageBox korrekt dargestellt wird nur bei der Tatsächlichen Waage kommt nach wie vor keine Antwort zurück. lt. Handbuch der Waage gibt die Waagenschnittstelle aber nach 10 sekunden einen Fehler aus wenn der empfangene Befehl nicht verarbeitet werden kann. Gibt es eine alternative Verbinduungsroutine zum TCPConnect in AutoIt? Oder kann es evtl auch am "TCP Port 10000" der tatsächlichen Waage liegen???

    Anbei nochmal der aktuelle Code:

    [autoit]


    #include <GuiConstantsEx.au3>
    #Include <Color.au3>
    #include <Constants.au3>
    #include <Word.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    [/autoit][autoit][/autoit][autoit]

    Opt("GUIOnEventMode",1)

    [/autoit][autoit][/autoit][autoit]

    TCPStartup() ; TCP wird initialisiert

    [/autoit][autoit][/autoit][autoit]

    ;~ local $IP1 = "10.102.42.254" ;IP Adresse Waage 1
    ;~ local $IP2 = "10.101.34.20" ;IP Adresse Waage 2
    ;~ local $Port1 = 10000 ;TCP Port der Waage 1
    ;~ local $Port2 = 10002 ;TCP Port der Waage 2
    local $IP1 = "10.103.42.172" ;IP Adresse Waage 1
    local $IP2 = "" ;IP Adresse Waage 2
    local $Port1 = 8000 ;TCP Port der Waage 1
    local $Port2 = 10002 ;TCP Port der Waage 2
    local $Gewicht = "RN" ; Systec String für Gweichtswert lesen wenn Waage in Ruhe
    local $ZeroIt = "SZ" ; Systec String für Waage Nullstellen
    local $waage1 = 2 ;Adresse der Waageneinheit1 (Brückenwaage)
    local $waage2 = 1 ;Adresse der Waageneinheit2 ( Gebäude 18)
    Global $Ende
    Global $socket
    Global $Message
    Global $SHOCKET
    Global $myIP

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    GUICreate("LKW Waagen Nullstellen",700,700)
    GUISetState(@sw_show)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")

    [/autoit][autoit][/autoit][autoit]


    ;GUICtrlCreateLabel("Waagenantwort:",40,200,600,300,1,1)
    $Message = GUICtrlCreateList("Waagenantwort:",40,200,600,300,1)

    [/autoit][autoit][/autoit][autoit]

    $W1Read = GUICtrlCreateButton("Waage 1 lesen",40,600,110,50)
    GUICtrlSetOnEvent($W1Read,"WA1RD")

    [/autoit][autoit][/autoit][autoit]

    $W2Read = GUICtrlCreateButton("Waage 2 lesen",160,600,110,50)
    GUICtrlSetOnEvent($W2Read,"WA2RD")

    [/autoit][autoit][/autoit][autoit]

    $W1Zero = GUICtrlCreateButton("Waage 1 Nullstellen",280,600,110,50)
    GUICtrlSetOnEvent($W1Zero,"WA1ZR")

    [/autoit][autoit][/autoit][autoit]

    $W2Zero = GUICtrlCreateButton("Waage 2 Nullstellen",400,600,110,50)
    GUICtrlSetOnEvent($W2Zero,"WA2ZR")

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $Ende = GUICtrlCreateButton("Ende",520,600,110,50)
    GUICtrlSetOnEvent($Ende, "Onexit")

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    while 1
    ;sleep(2000)
    wend

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    func WA1RD ()

    [/autoit][autoit][/autoit][autoit]

    $socket = TCPConnect($IP1, $Port1)

    [/autoit][autoit][/autoit][autoit]

    If $socket = -1 Then ; Wenn $socket = -1 ist, Fehlermeldung ausgeben
    MsgBox(16, "Error", "Die Verbindung zum Server konnte nicht hergestellt werden!") ; Fehlermeldung
    EndIf

    [/autoit][autoit][/autoit][autoit]

    $sendedBytes = TCPSend($socket, $Gewicht & $Waage1)

    [/autoit][autoit][/autoit][autoit]

    If $sendedBytes = 0 Then ; Wenn der Rückgabewert von TCPSend(...) 0 ist, Fehlermeldung ausgeben
    MsgBox(16, "Error", "Das Paket konnte nicht gesendet werden.") ; Fehlermeldung
    EndIf

    [/autoit][autoit][/autoit][autoit]


    While 1 ; Endlosschleife


    ; If $acceptedSocket <> -1 Then ; Wenn $acceptedSocket ungleich -1 ist, ...
    $receivedData = TCPRecv($socket, $Port1) ; Wenn eine Socketverbindung hergestellt wurde, empfange ein Paket vom Client ($connectedSocket)

    If $receivedData <> "" Then
    MsgBox(64, "Nachricht empfangen!", "Es wurde eine Nachricht empfangen: " & $receivedData)
    GUICtrlSetData($Message,$receivedData)
    ;~ sleep(4000)
    EndIf
    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    EndFunc

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    TCPCloseSocket($socket)

    [/autoit][autoit][/autoit][autoit]

    TCPShutdown()

    [/autoit]
  • Auf jeden Fall ist der 2. Parameter von TCPRecv nicht der Port, sondern di Anzahl von bytes, die gelesen werden sollen. Da du aber große Portnummern verwendest, bemerkt man das nicht. Kannst du die Dokumentation des Wandlers und der Waage nicht mal posten. Sonst kann man nicht erkennen, ob in der Logik ein Fehler steckt.

  • Hi,


    habe das Problem gelöst allerdings mit Visual Basic :D .


    Aber ich denke das Problem mit AutoIt ist das selbe.

    Lösung: Zwischen dem Connect und dem TCPSend muss eine Wartezeit eingebaut werden damit die Verbindung richtig aufgebaut wird.