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!
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!!
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..
02.05.2017, 15:40 (Dieser Beitrag wurde zuletzt bearbeitet: 02.05.2017 15:40 von GerdW.)
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:
Ein Zeilenende ist (im \-Displaymode) ein \n - oder man nimmt stattdessen die LF-Konstante!
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.
03.05.2017, 11:19 (Dieser Beitrag wurde zuletzt bearbeitet: 03.05.2017 11:27 von Freddy.)
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.
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…
Hallo Gerd,
Deine Ausführungen hätte ich nicht besser schreiben können
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