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!
24.10.2007, 15:18 (Dieser Beitrag wurde zuletzt bearbeitet: 03.12.2007 21:31 von jg.)
1. Ich möchte mein SubVI (RS232) aus der Menüleiste meines Hauptprogramms (mit Event Struktur) aufrufen um es zu konfigurieren. Das klappt in sofern, dass das FP des Subs geöffnet wird und ich Eingaben machen kann. Was mich stört ist, dass wenn kein Gerät angeschlossen oder ein Default Wert eingestellt ist, beim Aufruf eine Fehlermeldung erscheint. Ich habe die Funktion "Run when opened" deaktiviert, so das es nach meinem Verständnis nicht direkt ausgeführt werden sollte, wenn ich es aufrufe. Ich meine ich hätte schonmal was zu dieser Art von Problem hier gelesen, konnte mich aber nit an den Namen des Topics erinnern.
2. Die andere Frage ist warum nach dem Kompilieren des gesamten Programms, in den SubVI´s die ich zur Laufzeit konfigurieren möchte, der Menüeintrag "Speichern" (obwohl ich ihn angelegt habe) fehlt.
Ich hab das Sub angehängt.
Gruß Sven
P.S. Die in diesem Blockdiagramm auftauchende Menüstruktur wurde schon in ein Sub verbannt.
(VI LV 8.0)
Anzeige
24.10.2007, 15:50 (Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2007 15:52 von jg.)
' schrieb:Ich habe die Funktion "Run when opened" deaktiviert, so das es nach meinem Verständnis nicht direkt ausgeführt werden sollte, wenn ich es aufrufe. Ich meine ich hätte schonmal was zu dieser Art von Problem hier gelesen, konnte mich aber nit an den Namen des Topics erinnern.
Das ist für eine finale EXE vollkommen uninteressant. Das SubVI wird auf jeden Fall ausgeführt. Wenn du solche Konzepte (sprich ich ruf mal ein SubVI mit FP auf, mach dann Einstellungen, und drücke erst dann am besten auf den Run-Button in der Taskleiste oben) verwenden willst, dann bist du ganz schön auf dem Holzweg. Überdenke da mal deinen Programmaufbau, auch innerhalb der SubVI's
' schrieb:2. Die andere Frage ist warum nach dem Kompilieren des gesamten Programms, in den SubVI´s die ich zur Laufzeit konfigurieren möchte, der Menüeintrag "Speichern" (obwohl ich ihn angelegt habe) fehlt.
Wie willst du ein SubVI innerhalb einer EXE speichern???????????????????????? Da wird dir dein Virenscanner aber was husten, wenn das ginge!
MfG, Jens
P.S.: Merke, nicht alles, was in der Entwicklungsumgebung möglich ist, ist auch in einem finalen Programm möglich und/oder sinnvoll.
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
also so wie mein SubVI jetzt gestrickt ist, wird es bei jedem Aufruf mit dem Default-Wert für den Anschluss ausgeführt. Wie kann ich es denn am besten realisieren, dass ich die Anschlusseinstellungen vom Hauptprogramm aus nachträglich (bspw. an einem anderen Rechner mit anderen COM-Ports) einstelle. Müsste ich diese Einstellung in der Initialisierung des Hauptprogramms vornehmen (z.B. das Programm wird gestartet und der Benutzer wird direkt aufgefordert die Anschlusseinstellung vorzunehmen)?
Ist es überhaupt erlaubt/möglich ein SubVI nachträglich im laufenden Betrieb zu konfigurieren und wenn, wie mach ich das am besten?
Ich will euch nicht mit meinen Problemen langweilen, aber ausser diesem Forum habe ich keinerlei Ansprechpartner.
Kann ich die Ini-Datei meiner .exe so modifizieren, das ich die gewünschten COM-Ports als Default Werte darein schreibe? Die müsste man dann halt auf anderen Rechnern ggf abändern.
also so wie mein SubVI jetzt gestrickt ist, wird es bei jedem Aufruf mit dem Default-Wert für den Anschluss ausgeführt. Wie kann ich es denn am besten realisieren, dass ich die Anschlusseinstellungen vom Hauptprogramm aus nachträglich (bspw. an einem anderen Rechner mit anderen COM-Ports) einstelle. Müsste ich diese Einstellung in der Initialisierung des Hauptprogramms vornehmen (z.B. das Programm wird gestartet und der Benutzer wird direkt aufgefordert die Anschlusseinstellung vorzunehmen)?
Das wäre eine von vielen Möglichkeiten.
' schrieb:Ist es überhaupt erlaubt/möglich ein SubVI nachträglich im laufenden Betrieb zu konfigurieren und wenn, wie mach ich das am besten?
Ich will euch nicht mit meinen Problemen langweilen, aber ausser diesem Forum habe ich keinerlei Ansprechpartner.
Folgendes ist natürlich immer möglich:
1. Du übergibst Einstellungen als Eingang an dein SubVI. Dann brauchst du die Konfiguration irgendwo anders oder aus einem externen File.
2. Bau dein SubVI so, dass erst ein "User-Dialog" gestartet wird. Das häufig angewandte Programmier-Konzept hierzu ist eine State-Machine inkl. Event-Struktur, um auf User-Eingaben zu reagieren. Erst wenn dein Anwender dann seine Einstellungen vorgenommen hat und z.B. einen Knopf weiter drückt, machst du dann in einen anderen State deiner State-Machine mit deiner Abarbeitung weiter. Bsp. zu State-Machine findest du ebenfalls hier im Forum oder wenn du mal in der Entwicklungsumgebung den Punkt "Menü->File->New..." aufrufst.
Es gibt natürlich auch noch weitere Konzepte und Möglichkeiten.
' schrieb:Kann ich die Ini-Datei meiner .exe so modifizieren, das ich die gewünschten COM-Ports als Default Werte darein schreibe? Die müsste man dann halt auf anderen Rechnern ggf abändern.
Im Prinzip ja, aber das Einlesen musst du selber programmieren. Es gibt hier im Forum x Beispiele zum Thema "Default-Werte speichern und lesen". Beliebt ist z.B. die Anwendung von XML-Files.
Denke generell an Folgendes: Für ein endgültiges Programm macht man eigentlich die Bedienleiste mit den Buttons Run/Stop/usw aus der Entwicklungsumgebung unsichtbar. Beim Kompilieren und Linken gibt man ein Top-Level-VI an, dass dann auch automatisch gestartet wird. SubVI's werden dann durch den Aufruf im Programm-Ablauf gestartet (manchmal mit FP, manchmal natürlich auch ohne). Du musst also dafür sorgen, den Anwender durch dein Programm zu führen.
MfG, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
erstmal Danke für deine Antworten Jens. Hab da mal was gebastelt was im kleinen meiner bisherigen Programmstruktur entspricht. Allerdings bin ich mir unsicher ob die Werte nach dem, was ich mir als Konfig vorstelle, auch erhalten bleiben.
Im HauptVI kann im Menü der Punkt Anschlüsse gewählt werden.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
SubVI konfigurieren
Hallo,
Deine Dateien kann man nicht entpacken (zumindest ich nicht). Da kommen bei mir Fehlermeldungen.
Gruß Markus
' schrieb:Hallo,
erstmal Danke für deine Antworten Jens. Hab da mal was gebastelt was im kleinen meiner bisherigen Programmstruktur entspricht. Allerdings bin ich mir unsicher ob die Werte nach dem, was ich mir als Konfig vorstelle, auch erhalten bleiben.
Im HauptVI kann im Menü der Punkt Anschlüsse gewählt werden.
Hab mal alles angehängt.
Gruß Sven
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
nachdem ich mein Werk von gestern heute ausprobieren konnte (Mööp, falsch gedacht) hab ich jetzt etwas, was meiner Meinung nach funktionieren sollte, wo ich aber gerne noch eure Experten Meinungen zu hätte.
Also, mein Hauptprogramm besteht aus einer dreiteiligen Sequenz. Der erste Rahmen baut das Menu (wovon ich Teile vielleicht nit mehr brauche) und ruft einen Ereignisgesteuerten Dialog (Template) auf, in dem ich die Ports sowie die Verbindungseinstellungen vornehmen kann. Bei Bestätigung werden die Werte übernommen und ausgegeben (die im SubVI geöffneten Sessions werden nicht wieder geschlossen). Der mittlere Teil der Sequenz enthält das Hauptprogramm (wo nun hoffentlich alle Befehle meiner Aktionen brav durch das SubVI (Befehle sendenNeu.vi) verschickt werden können. Wird das Programm beendet gelangt es in den dritten Teil der Sequenz wo die beiden Sessions geschlossen werden. Die Anschlüsse übergebe ich als Lokale Variablen.
Wenn ihr mir das ganze validieren würdet/könntet wäre ich überglücklich und würd mich ans Feintuning machen.
Erwartungsvolle Grüße
Sven
P.S. Ich hänge wieder alles an.
P.S.S Konnte man das Archiv von gestern den nu entpacken??
So, von der Grundidee doch schon mal nicht schlecht.
Was machst du aber, wenn dein Eingangsdialog abgebrochen wird? Das hast du jetzt noch nicht berücksichtigt.
Dann könntest du in deinem Haupt-VI auf die lokalen Variablen verzichten.
Die Bool-Variablen "StopMain" und "Sende irgendwas!" gehören in die Event-Struktur in den entsprechenden Fall, sonst werden sie nicht zurückgesetzt. Auf das Wait-VI kannst du auch verzichten, das macht schon die Event-Struktur. Dass du dein Pulldown-Menü noch nicht abfängst, weist du selber, also, da hast du noch zu arbeiten.
Und schau dir mal, wie schon gesagt, das Konzept "State-Machine" an, das macht es mglw. noch übersichtlicher.
MfG, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!