Problem mit Variablen und Sub-VI's - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Problem mit Variablen und Sub-VI's (/Thread-Problem-mit-Variablen-und-Sub-VI-39-s) |
Problem mit Variablen und Sub-VI's - RuffRyder - 07.07.2006 13:50 <div align="left">Hallo, Ich möchte an einem Messgerät Relais schalten. Die dafür vorgesehnen Einschubkarte besitzt 20 von diesen. Die einzelnen Schalter werden über eine Event-Structure abgefragt (20 Schalter-> 20 Fälle). Nun gibt es hin und wieder allerdings den unschönen Effekt, dass das Gerät den Schaltbefehl nicht mitbekommt, mein Front-Panel Element allerdings den umgeschalteten Zustand anzeigt. Zu diesem Zweck habe ich für jeden Schalter eine Variable angelegt. Wird nun ein Schaltbefehl gesendet werden danach alle Relaiszustände ausgelesen und auf die Variable geschrieben. Somit erreiche, dass meine Anzeige immer richtig ist. Allerdings nimmt diese Vorgehensweise jede Menge Platz im Blockdiagramm weg und ich würde gerne so viel wie möglich in Sub-VI's verpacken, vor allem weil es theoretisch möglich ist 3 solcher Relaiskarten zu verwenden wobei die Anzahl der Schalter auf 60 ansteigen würde. Dabei besteht natürlich jetzt das Problem mit der Variablenzuordnung. Ich habe versucht dieses über Globale Variablen zu lösen, leider ohne Erfolg. Ich erläutere kurz wie ich vorgegangen bin. 1. Globale Variable im Hauptprogramm erstellt 2. Frontpanelelemente (20 Schalter) kopiert und auf Global-FP eingefügt 3. Variable in SubVi verschoben 4. Variable verzwanzigfacht 5. jeder der 20 Var. einen Schalter zugeordnet 6. "Change to write" für alle Variablen 7. Anschließen an entsprechenden Boolschen Wert Wie schon zu Anfang gesagt ging der Plan nicht auf. Ich würde mich freuen wenn jemand eine Idee hat aus einem Sub-VI mittels Variable ein Element im Hauptprogramm zu beschreiben. THX RR</div> Problem mit Variablen und Sub-VI's - jg - 07.07.2006 13:52 <div align="left">Hallo, wie wäre es denn, deine 20 Schaltzustandsvariablen in ein Array oder alternativ in einen Cluster zu packen? Dann hast du nur eine Variable. MfG, Jens</div> Problem mit Variablen und Sub-VI's - RuffRyder - 07.07.2006 14:33 <div align="left">Ich habe schon fast befürchtet, dass diese Antwort kommt. Dies ist leider nicht so einfach möglich. Zu jedem Schalter wird ein String mit der zugehörigen Kanalnummer an die VI gesendet, die mit dem Gerät kommuniziert. Ausserdem muss ich den spezifischen Zustand dieses einen Schalters an das VI senden. Würde ich einen Cluster verwenden müsste ich für jeden Schalter den Boolschen Wert aus dem Cluster herausfädeln, womit die Kompaktheit dann auch wieder dahin wäre. Ich benötige für meine Geräte-VI EINEN Boolschen Wert und eine Kanalliste. Meine Kanalliste enthält natürlich nur einen Kanal. RR</div>[attachment=2540] Problem mit Variablen und Sub-VI's - RuffRyder - 10.07.2006 09:50 <div align="left">Auf Grund der mangelnden Ideen bin ich doch noch einmal auf den Vorschlag mit dem Cluster eingegangen. Ich habe also nun alle 20 Schalter in einen Cluster gepackt. Der Cluster wird an eine Event-Structure angeschlossen. Die Ereignisse werden auf "Mouse Down" für jeden einzelnen Schalter gelegt. Wird nun eines der Elemente betätigt läuft die Eventstructure ab. Dabei wird der Boolsche Wert des entsprechenden Schalters mittels "Unbundle by name" aus dem Cluster herausgeführt und auf die Geräte-VI geleitet. Dies funktioniert, therotisch jedenfalls. Der Wermutstropfen an der Geschichte ist, dass ich den Schalter immer 2mal betätigen muss bis der Wert gesetzt wird. Ich vermute, dass dies hat damit zu tun, dass sich der Cluster nicht in der Event-Structure befindet. Wenn ich mit der Glühbirne debugge stelle ich fest, dass die Werte nach dem ersten betätigen am Ausgang der Event-structure "warten" (??). Bei nochmaligem schalten wird der Wert zu Geräte-VI weitergeleitet. Wenn jemand gern das Programm ausprobieren möchte werde ich es hochladen, muss allerdings darauf hinweisen, dass eine korrekte Ausführung ohne die entsprechende Hardware nicht möglich ist. Deshalb müssen es erstmal 2 Bilder tun. THX RR alte Version [attachment=2543] neue Version [attachment=2544]</div> |