-> Hier kostenlos registrieren
Hallo,
in einem Projekt verwenden wir die SPS CX-9020 mit diversen Klemmen und TwinCat 3 auf einem Desktop-PC zur Entwicklung.
Aktuell geht es um die Implementation einer Kommunikation per TCP.
Das übertragen von Byte-Werte aus einem Python-Skript funktioniert mit "s.send(bytes(data, 'utf-8'))" in Python 3 tadellos,
wobei "data" ein String ist, welcher in Bytes konvertiert wird; also ein Array solcher, die dann von TwinCat 3 empfangen werden können.
Dazu läuft auf der anderen Seite in TwinCat eine Konfiguration, welche ich im Anhang angefügt habe.
Die Funktionsblöcke "TimeController" und "ValueController" sind von mir geschrieben, fungieren aber nur zum Starten des Netzwerks.
Das Problem tritt auf, wenn die Daten erfolgreich an "SocketReceive" gesendet werden und die Verbindung dann endet.
Sei es, wenn ich händisch die Eingabe von Daten in Python, falls ich es als Prompt in der Shell mache, abbreche
oder wenn ein automatisches Skript Daten sendet:
Endet die Eingabe "in" Python, so ändert sich der Zustand "eState" des Blocks
"ClientServerConnection" nicht von "CONNECTED" wieder auf "SUSPENDED" sondern bleibt bei "CONNECTED". Gleichzeitig erscheint sofort
der Error "32772" am "Error ID"-Ausgang von "SocketReceive" und eine erneute Ausgabe ist nicht möglich.
Das geschieht bei der Beendigung jeder Eingabe an die SPS aus Python heraus, selbst wenn ich an mein Skript in Python 3 Folgendes anhänge:
"s.shutdown(socket.SHUT_RDWR); s.close()", wobei "s" der "Socket" in Python 3 ist.
Wie kann ich das Problem beheben?
Bitte melden, wenn mehr Infos benötigt werden!

in einem Projekt verwenden wir die SPS CX-9020 mit diversen Klemmen und TwinCat 3 auf einem Desktop-PC zur Entwicklung.
Aktuell geht es um die Implementation einer Kommunikation per TCP.
Das übertragen von Byte-Werte aus einem Python-Skript funktioniert mit "s.send(bytes(data, 'utf-8'))" in Python 3 tadellos,
wobei "data" ein String ist, welcher in Bytes konvertiert wird; also ein Array solcher, die dann von TwinCat 3 empfangen werden können.
Dazu läuft auf der anderen Seite in TwinCat eine Konfiguration, welche ich im Anhang angefügt habe.
Die Funktionsblöcke "TimeController" und "ValueController" sind von mir geschrieben, fungieren aber nur zum Starten des Netzwerks.
Das Problem tritt auf, wenn die Daten erfolgreich an "SocketReceive" gesendet werden und die Verbindung dann endet.
Sei es, wenn ich händisch die Eingabe von Daten in Python, falls ich es als Prompt in der Shell mache, abbreche
oder wenn ein automatisches Skript Daten sendet:
Endet die Eingabe "in" Python, so ändert sich der Zustand "eState" des Blocks
"ClientServerConnection" nicht von "CONNECTED" wieder auf "SUSPENDED" sondern bleibt bei "CONNECTED". Gleichzeitig erscheint sofort
der Error "32772" am "Error ID"-Ausgang von "SocketReceive" und eine erneute Ausgabe ist nicht möglich.
Das geschieht bei der Beendigung jeder Eingabe an die SPS aus Python heraus, selbst wenn ich an mein Skript in Python 3 Folgendes anhänge:
"s.shutdown(socket.SHUT_RDWR); s.close()", wobei "s" der "Socket" in Python 3 ist.
Wie kann ich das Problem beheben?
Bitte melden, wenn mehr Infos benötigt werden!
