LabVIEWForum.de - TCP-Port schliessen

LabVIEWForum.de

Normale Version: TCP-Port schliessen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Gemeinde,

habe mit einer Siemens-SPS über TCP Kontakt.
SPS-Seite: passiv
LabVIEW: aktiv

Ich öffne eine TCP-Verbindung über einen Port / auf TCP schreiben oder lesen in einer While-Schleife / bei Programmende schließe ich die Verbindung wieder.

folgendes Problem:
Die Verbindung bleibt noch ca. 1-2 Minuten offen und schließt sich dann erst => solange kann ich nicht meine LabVIEW-Anwendung starten.

Wer kann mir helfen?

Anhang: TestVI für TCP-Verbindung
' schrieb:Hallo Gemeinde,

habe mit einer Siemens-SPS über TCP Kontakt.
SPS-Seite: passiv
LabVIEW: aktiv

Ich öffne eine TCP-Verbindung über einen Port / auf TCP schreiben oder lesen in einer While-Schleife / bei Programmende schließe ich die Verbindung wieder.

folgendes Problem:
Die Verbindung bleibt noch ca. 1-2 Minuten offen und schließt sich dann erst => solange kann ich nicht meine LabVIEW-Anwendung starten.

Wer kann mir helfen?

Anhang: TestVI für TCP-Verbindung

Hallo,

Wo/wie siehst Du denn das die Verbindung offen bleibt? Beendet das LV Programm sich nicht? Kannst du keine neue Verbindung öffnen? Gibt es eine Fehlermeldung?

VDB
Wenn du unter Systemsteuerung gehst u. "netstat -n 1" eingibst kannst du die aktuell offenen Verbindungen dir ansehen.
Wenn ich mein Programm sofort nach beenden wieder starte, kommt die Fehlermeldung, daß der Port oder die Verbindung noch nicht geschlossen sind.
' schrieb:Wenn du unter Systemsteuerung gehst u. "netstat -n 1" eingibst kannst du die aktuell offenen Verbindungen dir ansehen.
Wenn ich mein Programm sofort nach beenden wieder starte, kommt die Fehlermeldung, daß der Port oder die Verbindung noch nicht geschlossen sind.

Kontrollier doch mal im Debug-Modus ob das VI "TCP-IP Close" korrekt ausgeführt wird. Ggf. musst du den "Error In" Eingang nicht anschließen.

VDB
Close wird richtig ausgeführt.
Error in habe ich nicht angeschlossen => gleicher Fehler
' schrieb:Close wird richtig ausgeführt.
Error in habe ich nicht angeschlossen => gleicher Fehler


Hmm,

dann kriegt die SPS wohl das schließen des Ports nicht mit, denke aber der müsste mehrere Verbindungen gleichzeitig verarbeiten können. Ist der feste lokale Port im LV Programm (11010) zwingend notwendig? Probier es mal ohne, ansonsten gehen mir auch die Ideen aus.

VDB
Mit der SPS dürfte das nichts zu tun haben (passiv), allerdings braucht die SPS den lokalen für die Identifikation falls sich ein aktiver Teilnehmer anmeldet u. Daten schreibt/ausliest.

Trotzdem danke für deine Hilfe
' schrieb:Mit der SPS dürfte das nichts zu tun haben (passiv), allerdings braucht die SPS den lokalen für die Identifikation falls sich ein aktiver Teilnehmer anmeldet u. Daten schreibt/ausliest.

Trotzdem danke für deine Hilfe

Das wird nur über die Portnummer gemacht? :angry2:

Also das wir uns richtig verstehen, der Zielport an der SPS ist fest und eigentlich sollte es egal sein von welchen Port aus das Betriebsystem die Verbindung zur SPS aufbaut.. Denn es könnte ja sein das neben LV noch ein andere Programm läuft und schon den von LV verwendeten Ausgangsport belegt hat.


Zugriffssteuerung würde ich auf der Ebene eins höher machen, sprich das die SPS nach einem erfolgreichen TCP-Verbindungsaufbau erstmal ein Password/HASH-Wert oder sonstwas abfragt..
Oder halt über MAC und oder IP-Bereich nur bestimmte Rechner zulassen..

Kopfschüttelnd,
Rob

PS: mir ist klar das die SPS nicht genug Rechenleistung für eine SSL-gesicherte Verbindung hat, aber es gibt ja auch Methoden um wenigstens etwas die Verbindungen zu schützen.
Referenz-URLs