LabVIEWForum.de
Mehrere Befehle über System Exec VI - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Mehrere Befehle über System Exec VI (/Thread-Mehrere-Befehle-ueber-System-Exec-VI)



Mehrere Befehle über System Exec VI - creo_123 - 29.04.2017 14:06

Hallo liebes Forum,

um mit einem Gerät zu kommunizieren, muss ich den Umweg über das Windows-Terminal gehen. Ich nutze hierzu das "System Exec VI". Solange ich nur einen Befehle sende, funktioniert das auch. Sobald ich aber mehrere "System Exec VI's" hintereinander schalte, um mehr als einen Befehl zu senden, öffnet mit jedem VI ein neues CMD-Fenster. Für meine Anwendung bin ich allerdings darauf angewiesen, die Befehle immer wieder im selben Fenster zu senden.

Vielleicht hat ja jemand eine Idee, wie ich das umsetzen könnte.. würde mir wirklich sehr weiterhelfen..

Viele Grüße und schonmal vielen Dank für die Unterstützung!!


RE: Mehrere Befehle über System Exec VI - IchSelbst - 30.04.2017 11:05

(29.04.2017 14:06 )creo_123 schrieb:  Für meine Anwendung bin ich allerdings darauf angewiesen, die Befehle immer wieder im selben Fenster zu senden.
Warum?

Du könntest eine BAT-Datei schreiben, die dann alle Befehle enthält, und die ausführen lassen.


RE: Mehrere Befehle über System Exec VI - Freddy - 02.05.2017 11:45

Hallo CREO,
Du möchtest ein Programm starten und unterschiedliche Scripte abarbeiten lassen.

Wenn man so was mit dem System EXEC.vi machen möchte, muss man die Scripte vorher zusammenstellen. Das kannst Du ja auch in einem VI machen.

Zuerst ein VI das erstellt der BAT oder der SCRIPT Datei. Danach startet das VI mit dem System EXEC.vi

Vielleicht kannst Du das Problem etwas näher beschreiben.

Gruß
Freddy


RE: Mehrere Befehle über System Exec VI - creo_123 - 02.05.2017 15:33

vielen Dank für die Hilfe!

ich möchte über Telnet mit einem Gerät kommunizieren, bzw. darauf eine Anwendung starten. Da ich zuerst dachte, dass Telnet nicht mehr von Labview unterstützt wird, war der Plan Telnet direkt über die Windows-Konsole zu nutzen.

Inzwischen habe ich aber bemerkt, dass ich doch noch die "Internet Toolkits" installieren kann und hier fertige Telnet-Vis zu finden sind. Meiner Meinung nach sollte die Umsetzung hierüber einfacher sein. Leider hänge ich aber noch an einer Stelle:

Ich kann die Verbindung aufbauen und muss dann zuerst ein Leerzeichen schicken, bevor ich den eigentlichen Befehl senden kann. Das Leerzeichen kommt auch an und ich sehe auch, dass der Befehl in die Konsole geschrieben wird. Allerdings scheint am Ende des Befehls ein Enter zu fehlen und ich stehe momentan total auf dem Schlauch, wie ich das hinzufügen kann. Verschiedene Vorschläge, wie beispielsweise ein \n oder \r an den String anhängen, habe ich schon ausprobiert.. leider jedoch ohne Erfolg..

Zum besseren Verständnis habe ich das VI angehängt..


RE: Mehrere Befehle über System Exec VI - GerdW - 02.05.2017 15:40

Hallo creo,

Zitat:Allerdings scheint am Ende des Befehls ein Enter zu fehlen und ich stehe momentan total auf dem Schlauch, wie ich das hinzufügen kann.
Es gibt doch eine ganze Palette mit String-Funktionen und -Konstanten:
[attachment=57733]
Ein Zeilenende ist (im \-Displaymode) ein \n - oder man nimmt stattdessen die LF-Konstante!


RE: Mehrere Befehle über System Exec VI - creo_123 - 03.05.2017 11:02

Hallo Gerd,

danke für deine Nachricht! Wenn ich den String wie in deinem Beispiel zusammensetze, wird das "Enter" mitgeschickt. Allerdings meldet mir das Messgerät ein "Illegal Command". Dabei sende ich meiner Meinung nach genau den Befehl, der, wenn ich ihn über die Windows-Telnet-Konsole sende, akzeptiert wird. Kann es sein, dass Labview da noch irgendetwas mitschickt, das ich nicht sehe?

Und eine zweite Sache, die ich gerade nicht nachvollziehen kann: wenn ich den String selbst in einer Konstante zusammensetze und das \n ans Ende setze, erhält das Gerät kein "Enter". Scheinbar wird dann nur der Befehl in die Befehlszeile geschrieben, aber nicht mit Enter bestätigt.


RE: Mehrere Befehle über System Exec VI - Freddy - 03.05.2017 11:19

Zitat:Und eine zweite Sache, die ich gerade nicht nachvollziehen kann: wenn ich den String selbst in einer Konstante zusammensetze und das \n ans Ende setze, erhält das Gerät kein "Enter". Scheinbar wird dann nur der Befehl in die Befehlszeile geschrieben, aber nicht mit Enter bestätigt.
Wenn Du einen String mit \n schreibst, werden die beiden Zeichen \ und n übertragen.
Das Return Zeichen ist nicht sichtbar.
Wenn Du das Return Zeichen im String haben möchtest.
Dann so.

Zitat:Allerdings meldet mir das Messgerät ein "Illegal Command". Dabei sende ich meiner Meinung nach genau den Befehl, der, wenn ich ihn über die Windows-Telnet-Konsole sende, akzeptiert wird. Kann es sein, dass Labview da noch irgendetwas mitschickt, das ich nicht sehe?
Wenn Du eine Kopie des Befehls, den Du von Hand eingegeben hast, mit dem von LabView erzeugten String vergleichst, sollte true heraus kommen.
Damit kannst Du ausschließen, dass die Befehle nicht gleich sind.

Gruß
Freddy


RE: Mehrere Befehle über System Exec VI - GerdW - 03.05.2017 11:56

Hallo Freddy,

ich hatte oben im Snippet explizit den Anzeigemodus der Stringkonstanten sichtbar gemacht. Und ich habe im Text dazu auf den \-Displaymode hingewiesen!
Im \-Displaymode kann man prima \n (newline/LF) oder \r (CarriageReturn) schreiben…


RE: Mehrere Befehle über System Exec VI - Freddy - 03.05.2017 12:11

Hallo Gerd,
Deine Ausführungen hätte ich nicht besser schreiben können Big Grin
Ich bin nur auf den Satzteil eingegangen.
Zitat:Und eine zweite Sache, die ich gerade nicht nachvollziehen kann: wenn ich den String selbst in einer Konstante zusammensetze und das \n ans Ende setze



RE: Mehrere Befehle über System Exec VI - creo_123 - 04.05.2017 06:03

Ich muss gestehen, dass ich den Begriff "Displaymode" falsch verstanden hatte, da ich in dieser Richtung noch nie etwas gemacht habe in Labview..

Jetzt habe ich die Stringkonstante im Dropdown-Menü aber entsprechend umgestellt und alles funktioniert wunderbar!Smile

Nochmals vielen vielen Dank für die Hilfe!!!