LabVIEWForum.de
Eigenständige Kommunikation zweier TCP/IP-Klienten - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenkommunikation (/Forum-Datenkommunikation)
+---- Thema: Eigenständige Kommunikation zweier TCP/IP-Klienten (/Thread-Eigenstaendige-Kommunikation-zweier-TCP-IP-Klienten)



Eigenständige Kommunikation zweier TCP/IP-Klienten - brik - 10.01.2011 12:15

Hallo,

ich habe Anfang des Jahres angefangen mich mit LabView in der aktuellen Version (10) auseinanderzusetzen.
Mein Ziel ist ein Programm, welches Daten aus einer Textdatei ausliest, auf dem Bildschirm ausgibt und in einer bestimmten Reihenfolge über die TCP-Schnittstelle versendet. Diese Reihenfolge soll durch den Empfänger vorgegeben werden.

Im Anhang befindet sich mein aktueller Stand. Die Textdatei wird korrekt ausgelesen und dargestellt.

Nun finde ich aber keinen Ansatz, wie ich eine selbstgetriggerte Kommunikation starten kann.

Ich möchte, nachdem die Daten angezeigt wurden, auf einen Button drücken, welcher per TCP einen Start Befehl sendet. Dieser wird auf der anderen Seite ausgewertet und gibt einen Befehl zurück.
Auf diesen soll dann entsprechend reagiert werden und ein Datum aus meiner Datei geschickt werden.

Eine generelle TCP/IP-Kommunikation ist ja in den Beispielen von LabView vorhanden, allerdings fehlt mir da der Ansatz diese zu automatisieren.

Wenn so weit verständlich geworden ist, was ich machen möchte, würde ich mich freuen, wenn mir jemand einen Ansatz nennen könnte.

Vielen Dank und viele Grüße

Sebastian

Die LV-Version der Datei im Anhang ist 10.0


Eigenständige Kommunikation zweier TCP/IP-Klienten - Richard - 10.01.2011 21:09

Hallo brik,

wenn ich dein VI richtig interpretiere dient es nur dazu aus der Datei die evtl. zu übertragenden Daten auszulesen.
Wenn sich diese zur Laufzeit nicht ändern kannst du das ja vor eine TCP/IP Kommunikationsstruktur setzten und als Typedef-Cluster übergeben.

Je nachdem, ob es voll automatisch gehen, oder über Benutzereingriffe geschehen soll bietet sich eine Statemachine in Verbindung mit einer Eventstruktur und/oder Producer - Consumer Schleifen.

Über eine Statemachine kannst du sehr gut auf die Abfragen der gegenstelle reagieren. Du kannst z.B. in einem Case so lange auf die TCP/IP Leitung horchen, bis eine Anfrage kommt, mit dieser Anfrage kannst du in den zugehörigen Case wechseln, in dem die Antwort erstellt und gesendet wird.

Hier mal ein ganz einfaches Beispiel.

Lv10
[attachment=31604]
und
[attachment=31605]

Der Timeout ist absichtlich auf einen so niedrigen Wert eingestellt, da du so alle 250ms theoretisch das VI anhalten kannst.

Gruß Richard


Eigenständige Kommunikation zweier TCP/IP-Klienten - brik - 11.01.2011 09:24

Hallo Richard,

danke für deine Hilfe, allerdings konnte ich deinen Vorschlag noch nicht 100%ig nachbauen.

Mein Versuch ist auf den Bildern im Anhang dokumentiert. Ich weiß nicht, was ich links an die "String-Linie" machen soll, was auf deinen Screenshots nicht mehr zu sehen ist und wie ich dann das "Unbundle by Name" Element mit dem Inhalt "X-Koordinate" hin bekomme.

Im anderen Case sieht mein Fehlercluster Symbol an der T/F-Abfrage etwas anders aus als deins. Ist das falsch?

Danke schon mal und viele Grüße

Sebastian


/edit:

Ah, gerade gesehen, dass du ja geschrieben hast, dass ich meine Daten als Cluster übertragen kann. Jetzt habe ich es hinbekommen.

[attachment=31611]

Lv10


Eigenständige Kommunikation zweier TCP/IP-Klienten - brik - 11.01.2011 10:58

Ich habe jetzt das Problem, dass bei meinem Programm weder was über TCP gelesen und dementsprechend auch nichts geschrieben wird.

Das Terminmalprogramm zeigt mir an, dass sich mein LabView-Programm verbunden hat, aber wenn ich von dort was schicke, kommt nichts an.

Der Array in meinem Cluster wird ebenfalls nicht ausgelesen. Ich habe an entsprechenden Stellen mal Anzeigeelemente positioniert.

Mir leuchtet leider nicht ein, warum das nicht funktioniert. Hat noch jemand einen Rat?

Lv10
[attachment=31612] [attachment=31613] [attachment=31614]

Vielen Dank und viele Grüße