LabVIEWForum.de
Kommunikation mit Java - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenkommunikation (/Forum-Datenkommunikation)
+---- Thema: Kommunikation mit Java (/Thread-Kommunikation-mit-Java)



Kommunikation mit Java - evildead - 22.09.2009 15:37

Hallo,

ich habe folgendes Problem ich habe ein Programm in Java welches vorgibt wann die Messungen vorgenommen werden sollen. Die Messungen werden mit einem LavView Programm vorgenommen. Wie kann ich dem LabVIEW Programm von Java aus sagen, dass es jetzt messen soll. Nach der Messung müsste ich noch Bescheid bekommen, dass die Messung fertig ist. Messergebnisse müssen nicht übergeben werden.

Ich hab mir überlegt dass beide über übers Netzwerk kommunizieren(geht ja auch an einem Rechner). Würde das evtl auch über den Std In/Out gehen? Oder weiß noch jemand eine Möglichkeit?

mfG

Stefan


Kommunikation mit Java - eg - 22.09.2009 15:43

Ja, Netzwerk über Localhost wäre das beste, denke ich.


Kommunikation mit Java - TSC - 22.09.2009 15:49

du könntest das LabVIEW programm so programmieren, dass es sich nach einer messung beendet. in java startest du dann das externe LabVIEW programm und wartest, bis es abgearbeitet ist. das wäre so mein ansatz. wofür man da jetzt ne netzwerkkommunikation brauchen sollte, kann ich nicht nachvollziehen.

LG
Torsten


Kommunikation mit Java - IchSelbst - 22.09.2009 15:54

Offtopic2
' schrieb:wofür man da jetzt ne netzwerkkommunikation brauchen sollte, kann ich nicht nachvollziehen.
Es ist ja auch keine "Netzwerkkommunikation", sondern eine "Datenübertragung über TCP/IP" zwischen zwei Applikationen auf dem selben Rechner.


Kommunikation mit Java - eg - 22.09.2009 15:57

' schrieb:Es ist ja auch keine "Netzwerkkommunikation", sondern eine "Datenübertragung über TCP/IP" zwischen zwei Applikationen auf dem selben Rechner.

Warum ist es keine Netzwerkkommunikation? Es ist eine Netzwerkkommunikation (weil es über die Netzwerkkarte läuft), nur halt im Localhost (also auf dem selben Rechner).

' schrieb:du könntest das LabVIEW programm so programmieren, dass es sich nach einer messung beendet. in java startest du dann das externe LabVIEW programm und wartest, bis es abgearbeitet ist. das wäre so mein ansatz.

Einfach, aber nicht flexibel.


Kommunikation mit Java - evildead - 22.09.2009 16:10

Danke für die schnellen Antworten.

Das mit dem Starten und Beenden geht spitze. Um das ganze flexibler zu gestalten Lese ich vor dem Messen eine Config-Datei ein die die Parameter meiner
Messung enthält.
Jetzt müsste ich nur noch wissen wie ich aus dem LabVIEW Programm eine exe mach und wie man einen übergebenen Parameter (wo er das Ergebniss hin speichern soll) ausliest.
Ich will das LabVIEW Programm also z.b. mit "myProg.exe c:messung1.txt" starten. Und das Programm soll die Messergebnisse dann in c:messung1.txt speichern.

mfG

Stefan


Kommunikation mit Java - IchSelbst - 22.09.2009 16:14

' schrieb:Warum ist es keine Netzwerkkommunikation?
Erstens, weil ich's in Anführungszeichen geschrieben habe.
Zweitens: Weil für die Funktion, die der Anwender haben will (DÜ Punkt-zu-Punkt, Master-Slave) kein Netzwerk im allgemeinen Sinne (Verbund mehrerer Komponenten) notwendig ist. Er hat viele Möglichkeiten: Die von TSchAC, oder SharedMemory/SharedFile, DDE gab es glaub ich auch mal. Ich selbst würde aber das mit dem Localhost vorziehen.

Nachtrag:
Ich sehe gerade, der Anwender hat sich für TSchAC mit DÜ per File entschieden. Naja, geht natürlich auch.


Kommunikation mit Java - schrotti - 22.09.2009 18:59

' schrieb:Jetzt müsste ich nur noch wissen wie ich aus dem LabVIEW Programm eine exe mach und wie man einen übergebenen Parameter (wo er das Ergebniss hin speichern soll) ausliest.
Ich will das LabVIEW Programm also z.b. mit "myProg.exe c:messung1.txt" starten. Und das Programm soll die Messergebnisse dann in c:messung1.txt speichern.
Die Kommandozeilenargumente erhältst du durch Aufruf der gleichnamigen Eigenschaft. Wenn du die Exe erstellst musst du allerdings angeben, dass Argumente beim Start übergeben werden sollen.

[attachment=21410]


Kommunikation mit Java - TSC - 23.09.2009 07:22

Um eine EXE zu erstellen musst du den Appliaktion-Builder installiert haben. Dieser ist allerdings nicht in allen LabVIEW-Paketen enthalten. Wenn du ihn hast, musst du zunächst ein Projekt erstellen. Innerhalb des Projektes legst du dann deine VIs wie benötigt an und kannst dann eine Build-Spezifikation (Regeln für die Erstellung der EXE-Datei) erstellen.

LG
Torsten