Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
wenn die LV-Appl. als Server arbeitet, dann muss die SPS den Client machen und damit die Verbindung aufbauen. Die LV-Appl. muss dagegen einen Listener bereitstellen. So wird die Verbindung erstellt und offengehalten. Dann kann der Empfänger (der Server oder Client sein kann) versuchen, Daten zu lesen. Wenn keine Daten da sind, kommt der Timeout-Fehler, den du abfangen musst.
ich habe ein ähnliches Problem wie der Threatersteller und schreibe mein Anliegen einfach hier rein.
In meinem Programm wird eine TCP-Verbindung zu einer SPS S7-1500 hergestellt. Soweit funktioniert dies auch, jedoch bekomme ich den Error-Code 56 im TCP-Lesen VI, dass ich keine Daten empfange. Der Port 102 müsste der richtige sein, da die SPS über RFC 1006 kommuniziert.
Ich habe als Test ein kleines Programm auf der SPS geschrieben und würde gerne die gesendeten Daten lesen und in eine Textdatei/CSV-Datei speichern. Leider bisher vergeblich.
Kann mir da jemand weiterhelfen?
18.08.2015, 11:50 (Dieser Beitrag wurde zuletzt bearbeitet: 18.08.2015 11:55 von Trinitatis.)
so, wie du dein VI aufgebaut hast, arbeitet es als Client, so dass die Gegenstelle als Server arbeiten muss, und einen Listener bereitstellen muss, auf den du dich dann verbindest. Das sollte erst mal klappen - anderenfalls hättest du einen Fehler in deinem 1. Fehlerausgang.
Wenn die Verbindung dann besteht, versuchst du 1 Zeichen mit einem TO von 15 s auszulesen. Es muss sichergestellt sein, dass die Gegenstelle dieses Byte auch während dieser Zeit sendet. Dann solltest du es auch empfangen können.
Gruß, Marko
Edit:
anbei mal ein kleines Client /Server-Tool, mit dem du prüfen kannst, ob die Kommunikation klappt.
So wie du es beschrieben hast, soll es auch funktionieren. Ich habe als Zeichen 1 gewählt, da ich nicht wusste wie viel Daten ich erwarte. So wie ich es verstanden habe würde dann nach jedem Zeichen in die .txt geschrieben werden.
Dein Programm habe ich getestet. Die Verbindung funktioniert und es werden Daten gesendet. Danke dafür.
Mit Wireshark habe ich den Datenfluss überprüft und gesehen das Daten über TCP zwischen LV und SPS gesendet werden (54-66Bytes im durchschnitt).
Leider habe ich immernoch das Problem, dass das TCP-Lesen VI diese Daten nicht liest, obwohl sie anscheinend verschickt werden.
...nur mal so als Zwischenfrage: Du hast auch nicht die Eingänge Timout und Byteanzahl bei deiner Lesefunktion vertauscht?
Im Bild ist das schwer zu sehen, da die Leitungen irgendwo aber nicht an den Anschlüssen rauskommen. Das ist im übrigen immer fehlerträchtig - das solltest du dir abgewöhnen.
Ansonsten poste doch mal dein VI.
Ein Tip noch:
Bastel dir mal ein Shiftregister an die Schleife, in dem du den gelesenen String akkumulierts - so siehst du leischter, was alles gesendet worden ist. (Im ersten Wurf würde auch eine lik. Var. des Strings gehen)
Gruß, Marko
18.08.2015, 14:14 (Dieser Beitrag wurde zuletzt bearbeitet: 18.08.2015 14:28 von Banetta.)
Am Vertauschen der Eingänge liegt es leider nicht.
Ich habe es auch mal mit IP-Adressen von anderen Computern im Netz versucht. Da ich bislang noch von keiner Adresse Daten bekommen habe, denke ich das es am TCP-Lesen liegt.
sach mal nächstes Mal bescheid, wenn du einen Beitrag änderst. So habe ich das erst jetzt mitbekommen.
Das angehängte VI funktioniert jetzt erstmal soweit - allerdings mit einem anderen Port und auf dem localhost. So kannst du es auch selbst mit einer Server-Appl. testen.
Im Großen und ganzen habe ich allerdings nichts geändert, bis auf etwas Kosmetik. Vorher hatte ich ständig Fehler wegen der Dateispeicherei.