LabVIEWForum.de
Registerkarte weiterschalten mit boolschen Schalter?? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Registerkarte weiterschalten mit boolschen Schalter?? (/Thread-Registerkarte-weiterschalten-mit-boolschen-Schalter)

Seiten: 1 2


Registerkarte weiterschalten mit boolschen Schalter?? - lab Neuling - 10.04.2013 21:44

Guten Abend.
Ich bin ein LabView Neuling. Arbeite erst seit 2 Wochen mit dem Programm.
Für meine Diplomarbeit benötige ich aber LabView.

Mein Problem: Für eine Case Struktur, welche ich mit einem boolschen Schalter (nächster Prüfpunkt) weiterschalten möchte, benötigte ich einen Impuls. Damit nur ein Register weitergeschaltet wird und nicht mehrere. Aber die Latch Schaltfunktion funktioniert leider nicht (akzeptiert das Programm ja nicht). Ich habe nun eine Wartezeit eingefügt. Wenn ich den Button für 500ms drücke schaltet es auf das nächste Register. Wenn ich aber länger Drücke läuft das Programm einfach durch.
Im Anhang ist mein Programm. Vieleicht hat jemand eine Idee wie man dieses Problem auf möglichst einfache Weise beheben könnte.

Vielen Dank schon im Voraus


RE: Registerkarte weiterschalten mit boolschen Schalter?? - Trinitatis - 10.04.2013 22:57

(10.04.2013 21:44 )lab Neuling schrieb:  Mein Problem: Für eine Case Struktur, welche ich mit einem boolschen Schalter (nächster Prüfpunkt) weiterschalten möchte, benötigte ich einen Impuls. Damit nur ein Register weitergeschaltet wird und nicht mehrere.

Hallo Lab Neuling,

ich kann leider deinen Code nicht öffnen, da es bei mir mit LV 2011 aufhört. Aus deiner Aussage werde ich aber nicht schlau genug, um davon überzeugt zu sein, dir mit meiner Antwort helfen zu können, da du Case Struktur und Register in einen Topf wirfst.

Mein Antwortbeispiel basiert auf der Annahme, dass du per Knopfdruck eine Registerkarte weiterschalten möchtest von einem Reiter zum nächsten, egal, wie lange du auf den Knopf drückst.

Falls ich da zu einfach gedacht habe, müsstest du dein VI mal <= LV2011 abspeichern, oder jemand anderes hilft dir.


Gruß, Marko


RE: Registerkarte weiterschalten mit boolschen Schalter?? - NWOmason - 11.04.2013 05:30

(10.04.2013 21:44 )lab Neuling schrieb:  ... benötigte ich einen Impuls. Damit nur ein Register weitergeschaltet wird und nicht mehrere. Aber die Latch Schaltfunktion funktioniert leider nicht (akzeptiert das Programm ja nicht).

Dafür kannst du - wie von Trinitatis gezeigt - eine Ereignisstruktur verwenden, um die Registerkarten durchzuschalten. Dann hast du auch wieder das Latch-Verhalten bei der boolschen Schaltfläche.

(10.04.2013 21:44 )lab Neuling schrieb:  Für eine Case Struktur, welche ich mit einem boolschen Schalter (nächster Prüfpunkt) weiterschalten möchte,

Die Beschreibung des Schalters 'Nächster Prüfpunkt' deutet für mich auf eine Ablaufsteuerung hin. Somit wäre es sicher eine Überlegung wert, das Programm als Statemaschine aufzubauen.

Beste Grüße,
NWO


RE: Registerkarte weiterschalten mit boolschen Schalter?? - lab Neuling - 12.04.2013 13:57

Vielen Dank für die schnellen Antworten!!

Die Ereignissstruktur hat mir weitergeholfen.

Nun habe ich folgendes Problem:

Siehe Programm im Anhang.

Wenn ich im "Register Home" "Prüfung starte"n klicke, geht im Frontpanel das Register auf "1. Prüfpunkt" aber im Blockfdiagram wird der 1. Prüfpunkt nicht bearbeitet.
Das Programm bleibt in einer Schleife hängen. Der Wert von der Registerkarte wird nicht abgefragt. Dadurch wird nicht auf das nächste Register witergeschaltet.
Ich finde aber den Fehler nicht.

Vieleich sieht Ihr den Fehler.

Vielen Dank


RE: Registerkarte weiterschalten mit boolschen Schalter?? - GerdW - 12.04.2013 14:15

Hallo lab,

THINK DATAFLOW!

Die nächste Iteration wird erst gestartet, wenn die aktuelle abgearbeitet ist. Und das passiert bei dir leider nie, solange du kein Event "Prüfung OK" erzeugst. So hast du es jedenfalls programmiert! Noch schlimmer: der Button "Prüfung OK" wird auch noch extra unsichtbar gemacht, damit der Nutzer auch wirklich nie drauf klicken kann... Hmm

Entweder du programmierst eine saubere Statemachine, die alle Events in der Eventstruktur erfasst und abarbeitet ODER du verzichtest auf die Eventstruktur und pollst alles. Dein Mischmasch macht die Sache jedenfalls nicht besser...

Zitat:Die Ereignissstruktur hat mir weitergeholfen.
Eben nicht, da sie der Grund für dein aktuelles Problem ist...


RE: Registerkarte weiterschalten mit boolschen Schalter?? - sara2211 - 21.11.2016 17:07

Hallo ihr Lieben,

ich habe mich an euren Beispielprogrammen orientiert, mit dem Ziel ein Registrierkartenmenü in mein Programm einzubinden. Mein Versuch ist es, das Registrierkartenmenü so zu programmieren, dass man am Ende der Eingabe immer mit einem Button, der in der Registrierkarte positioniert ist, die Auswahlen bestätigt und dann weiter auf die nächste Registrierkarte weitergeleitet wird.
Leider funktioniert das nicht so schön wie bei euch (wo der Button außerhalb der Registrierkarte ist und somit immer derselbe).

Weiterhin kommt die Schwierigkeit noch hinzu, dass die Steuerung der Oberfläche als SubVI in meiner MainVI eingebunden ist.

Leider habe ich das Problem, dass mein Programm zwar läuft, aber das "eine Registrierkarte weiterspringen" nicht funktioniert. Was ist hierbei mein Fehler? ich komme leider nicht weiter Huh


RE: Registerkarte weiterschalten mit boolschen Schalter?? - GerdW - 21.11.2016 20:55

Hallo sara,

du hast da eine (bzw. mehrere) Eventstruktur(en), die auf Wertänderungen von Referenzen warten.
Wann sollen die jemals auftreten?

Hast du die LabVIEW-Grundlagen durchgearbeitet?
Hast du dir die mit LabVIEW mitgelieferten BeispielVIs angeschaut?
Hast du verstanden, wie die Event-Struktur funktioniert?

Nachtrag: Ich würde mich auch weigern, vernünftig zu arbeiten, wenn ich lokale Variablen OHNE Label vorgesetzt bekomme! Wink


RE: Registerkarte weiterschalten mit boolschen Schalter?? - sara2211 - 22.11.2016 14:52

Hallo Gerd,

ich habe mir jetzt nochmal einige Beispiele angesehen und versucht diese nachzuvollziehen.
Mein Vorhaben habe ich programmiert (OrientierungVI.vi) und wollte dieses Vorgehen jetzt auf mein eigentliches Projekt (Main.vi) mit SubVI (Bedinungsauswahl.vi) übertragen...leider gibt es da einige Probleme mit den Referenzen und ich weiß leider nicht mehr wirklich weiter. Die Verknüpfungen aus meinem Erstversucht OrientierungVI.vi, kann ich leider nicht einfach so übernehmen.

An der Schleifeniteration kann ich erkennen, dass offensichtlich nichts angesprochen wird. Wie kriege ich das verändert bzw mein Programm zumindest mal ans Laufen? Denknach


RE: Registerkarte weiterschalten mit boolschen Schalter?? - GerdW - 22.11.2016 15:23

Hallo sara,

du wartest immer noch auf Wertänderungen von Referenzen…
Die Referenz auf ein Control wird sich aber zur Laufzeit NIE ändern! Du willst doch sicherlich auf Wertänderungen des COntrols selbst achten - dann musst du das auch programmieren…

Schau dir mal das/die Beispiel-VI(s) zu User-Events an, damit kann man das Problem lösen.
Oder man lässt den ganzen Quatsch mit dem subVI und erledigt das ganze im MainVI: dann brauchst du überhaupt keine Referenzen auf die ganzen Controls weiterreichen!


RE: Registerkarte weiterschalten mit boolschen Schalter?? - jg - 22.11.2016 16:41

(22.11.2016 15:23 )GerdW schrieb:  Hallo sara,
Oder man lässt den ganzen Quatsch mit dem subVI und erledigt das ganze im MainVI: dann brauchst du überhaupt keine Referenzen auf die ganzen Controls weiterreichen!
Ich kann da Gerd nur zustimmen! Lerne erst einmal die Basics von LabVIEW, indem du das GUI-Handling NICHT in SubVIs auslagerst. Das macht es nur unnötig
kompliziert zum Einstieg.

Gruß, Jens