Socket Error #10054



  • Hallo,

    Ich habe mir für mein Rad Studio 2009 (C++Builder) "delphimodbus" geladen und installiert.
    Quelle: http://sourceforge.net/projects/delphimodbus/
    Rad Studio 2009 bringt ja Indy 10 gleich mit und daher konnte ich auch von delphimodbus die Indy 10 Demo laden und compilieren.

    Ich habe dann beide Anwendungen gestartet:
    ModbusMaster.exe
    ModbusSlave.exe

    Wenn ich im Modbus Master Client den "Register read" Button drücke erhalte ich umgehend eine Socket Error #10054 Meldung:

    http://msdn.microsoft.com/de-de/library/windows/desktop/ms740668(v=vs.85).aspx schrieb:

    WSAECONNRESET - 10054 - Connection reset by peer.
    Eine vorhandene Verbindung wurde vom Remotehost geschlossen. Normalerweise wird dieser Fehler ausgelöst, wenn die Peeranwendung auf dem Remotehost plötzlich beendet wird, der Host neu gestartet wird, der Host oder die Remotenetzwerkschnittstelle deaktiviert wird oder der Remotehost die Verbindung schließt, ohne ausstehende Aktionen zu berücksichtigen (unter setsockopt finden Sie weitere Informationen zur SO_LINGER-Option für den Remotesocket). Dieser Fehler tritt möglicherweise auch auf, wenn eine Verbindung aufgrund von Keepalive-Aktivitäten unterbrochen wurde, da während der Ausführung eines oder mehrerer Vorgänge ein Fehler erkannt wurde. Vorgänge, die noch nicht abgeschlossen worden sind, schlagen fehl und erzeugen den Fehler WSAENETRESET. Nachfolgende Vorgänge schlagen mit WSAECONNRESET fehl.

    Die Modbus Slave Anwendung wird dann auch geschlossen. Kann mir hier jemand eventuell weiterhelfen?



  • Wenn ich "Write register" Button verwende, dann funktioniert die Kommunikation, aber er zerstört quasi die Register im Slave ab dem Register das ich zum Überschreiben angegeben habe. Als Beispiel; Ich sage Register 5 soll Value 1 erhalten, dann sehe ich im Slave das alle Register ab 5 mit irgendwelchem Quatsch beschrieben wurden. Er sollte ja aber nur Register 5 überschreiben. Auch meldet er nach ein paar Sekunden einen Fehler beim Master: "PLC write register failed". 😢

    Ich nutze Rad Studio 2009 unter Windows 8.



  • Ich habe jetzt weiter rumprobiert:

    1. Mein Indy von Rad Studio 2009 entfernt und von Hand die neueste Version 10 installiert.

    2. Die Exe auf Windows XP ausprobiert.. selbe Fehler

    3. Vorgänger Version installiert 1.5.2.. selbe Fehler

    Kennt jemand hier eine Alternative für Modbus TCP, kann auch gern etwas kosten. Ich habe normal "Modlink" Komponente gekauft, aber die kann leider keine TCP Kommunikation. 😞



  • I found the solution.. you must delete msrPLCWriteRegisters and msrPLCReadHoldingRegisters and insert again.. now its working. *happy*


Anmelden zum Antworten