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!
Ich habe ein Programm, das normalerweise über die Kommandozeile gesteuert wird, ich nun aber über LabVIEW ansprechen muß.
Wenn ich es über "Systembefehl ausführen" starte, kann ich über "Standardeingabe" ein paar Kommandos übergeben, die man sonst eintippen würde, und bekomme die Antwort des Programms, die normalerweise auf dem Bildschirm erscheint, bzw. eine Fehlermeldung über Standardausgabe bzw. Standardfehler des Sub-VIs und kann mir diese in entsprechenden Anzeigelementen ansehen.
So weit so gut, nur bekomme ich die Antwort erst, wenn das Programm beendet ist. Ich möchte aber, daß das Programm am Laufen bleibt und ich die Antwort abrufen kann, sobald die Eingabe getätigt wurde. Ich kann ja nicht für jedes Kommando das Programm neu starten und initialisieren.
Also müßte ich quasi eine Adresse einrichten, auf die ich von LV aus die Daten schreibe und eine von der ich die Antwort abhole, und somit die Standardeingabe Tastatur und die Standardausgabe Monitor im eingentlichen Sinn auf mein LV-Programm ändern.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Standardeingabe/Standardausgabe
Hast Du schon mal bei "wait until completion" ein "False" angeschlossen? Vielleicht hilft Dir auch das mit Deinen Befehlen.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
' schrieb:Also müßte ich quasi eine Adresse einrichten
Im Prinzip ja. Die "Adresse" wäre dann ein gemeinsamer Speicherbereich - sowas geht - aber mit LV ?
Du könntest mal folgendes probieren:
Früher konnte man das Eingabemedium und das Ausgabemedium angeben. Das Standard-Eingabemedium ist die Tastatur, das Standard-Ausgabemedium ist der Bildschirm. Beide konnte man umleiten - z.B. in eine Datei. Die Syntax hierfür lautete: MyProgram >Input <Output. (Ob es zwei Klammern << bzw. >> sein mussten, weiß ich nicht mehr). Probier doch mal folgendes: MyProgram <C:MyIn.txt >MyOut.txt. Du müsstest dann praktisch in das File C:Mytxt schreiben und das File c:MyOut.txt ständig scannen.
Ob das heute noch geht, weiß ich nicht.
[*grübel*]
Hin Senden zum Programm würde man mit SendInput() hinbekommen. Das wäre halbwegs "Stand der Technik". Vom Programm aus sieht das dann aus, als ob jemand die Tastatur bedient. Den Rest müsste man machen mit der Umleitung vom Bildschirm in ein (sequenzielles) File.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Ich habe ein Programm, das normalerweise über die Kommandozeile gesteuert wird, ich nun aber über LabVIEW ansprechen muß.
Wenn ich es über "Systembefehl ausführen" starte, kann ich über "Standardeingabe" ein paar Kommandos übergeben, die man sonst eintippen würde, und bekomme die Antwort des Programms, die normalerweise auf dem Bildschirm erscheint, bzw. eine Fehlermeldung über Standardausgabe bzw. Standardfehler des Sub-VIs und kann mir diese in entsprechenden Anzeigelementen ansehen.
So weit so gut, nur bekomme ich die Antwort erst, wenn das Programm beendet ist. Ich möchte aber, daß das Programm am Laufen bleibt und ich die Antwort abrufen kann, sobald die Eingabe getätigt wurde. Ich kann ja nicht für jedes Kommando das Programm neu starten und initialisieren.
Also müßte ich quasi eine Adresse einrichten, auf die ich von LV aus die Daten schreibe und eine von der ich die Antwort abhole, und somit die Standardeingabe Tastatur und die Standardausgabe Monitor im eingentlichen Sinn auf mein LV-Programm ändern.
Welche Möglichkeit gibt es da?
Gruß Andreas
Das geht mit der OpenG pipe library die ich mal entwickelt habe. Allerdings ist diese noch nicht als OpenG library released, da sie noch immer im Beta Stadium ist. Deshalb wirst Du Dir die Files vom CVS Server runterholen müssen. Das kann entweder über einen CVS Client wie etwas Tortoise CVS oder auch über obengenannte HTML Browse Seite da es nicht so viele VIs sind und deshalb durchaus File für File gedownloaded werden kann.
Beta Stadium will sagen, es läuft bei mir normalerweise für die Dinge dich ich tun will aber es gibt da durchaus noch Möglichkeiten dass das manchmal nicht immer auf Anhieb funkzt.
Du wirst vor allem interessiert sein an der Library selber mit der entsprechenden DLL die Du im "source" Verzeichnis findest. Zudem können die VIs im "test" Verzeichnis als eine Art Vorbild dienen wie man mit diesen VIs umgehen kann. IchSelbst wird wohl eher am Inhalt des Verzeichnisses "c_source" interessiert sein
' schrieb:Hast Du schon mal bei "wait until completion" ein "False" angeschlossen? Vielleicht hilft Dir auch das mit Deinen Befehlen.
Jo, hab ich, bringt aber nichts, weil ich dann ja keine Möglichkeit mehr habe, ein Kommando zum Beenden des Programms während der Laufzeit des VIs zu übergeben.
Ich denke, daß das, was Rolf geschrieben hat, das sein könnte, was ich suche. Habe mir die Dateien runtergeladen, sie lassen sich aber weder mit LV 7.1 noch mit LV 8.5 öffnen, da kommt immer die Fehlermeldung "Dies ist keine Ressourcen-Datei" oder "Dies ist keine zulässige LabVIEW-Datei"
' schrieb:Jo, hab ich, bringt aber nichts, weil ich dann ja keine Möglichkeit mehr habe, ein Kommando zum Beenden des Programms während der Laufzeit des VIs zu übergeben.
Ich denke, daß das, was Rolf geschrieben hat, das sein könnte, was ich suche. Habe mir die Dateien runtergeladen, sie lassen sich aber weder mit LV 7.1 noch mit LV 8.5 öffnen, da kommt immer die Fehlermeldung "Dies ist keine Ressourcen-Datei" oder "Dies ist keine zulässige LabVIEW-Datei"
Wo könnte das Problem liegen?
Gruß Andreas
Dein Webbrowser spinnt und beschädigt die Dateien beim Downloaden weil er sie als Textdatei behandeln will. Am Besten ginge es halt über direkten CVS Zugang und nur zum donwloaden geht das sogar anonymous.
Aber um es was leichter zu machen habe ich die VIs mal in ein ZIP File gepackt. Sind LabVIEW 6.0(.2) Format für wen das interessiert.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Standardeingabe/Standardausgabe
Kannst Du das Beispiel (inkl. SubVIs) mal hochladen. Da haben bestimmt einige (inkl. mir ) Interesse daran.
Gruß Markus
' schrieb:Hallo,
vielen dank, konnte die VIs jetzt öffnen und verwenden, und - ES FUNTKIONIERT
Nochmals vielen Dank, das hat mir ein ganzes Stück weitergeholfen.
Gruß Andreas
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
' schrieb:Kannst Du das Beispiel (inkl. SubVIs) mal hochladen. Da haben bestimmt einige (inkl. mir ) Interesse daran.
Gruß Markus
Ist ungünstig, weil das Programm, das ich einbinde mit einem Gerät kommuniziert und beim Start, wenn das Gerät nicht angeschlossen ist, einen Fehler bringt und sich sofort wieder beendet.
Aber ich lade es etwas abgewandelt hoch, so daß man die Kommandozeile editieren kann.
Außerdem gibt's in der Zip-Datei von Rolf Kalbermatter ein Unterverzeichnis namens "tests" wo ein paar verschiedene Beispiele drin sind.