LabVIEWForum.de
Registerkarten - Tasking - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Registerkarten - Tasking (/Thread-Registerkarten-Tasking)

Seiten: 1 2


Registerkarten - Tasking - Dorian - 16.08.2007 11:56

Hallo Leute,
ich bin ganz neu im LV, und hab nun meine ProblemeSmile

Mein Problem ist, dass ich aus den Registerkarten-loops nicht raus komme. Hab die Datei mit angehängt.
Ich möchte das der Counter 1 kontinuirlich weiterzählt, und die Registerseiten 1 und 2 dann reagieren, wenn ein Ereignis auftritt, dh die Schalter Buttons bedient werden.
Nun ist es aber so, das nur die Registerseite reagiert, in der ich bin wenn ich das Programm starte. Und da ich nicht aus den Registerkartenloop rauskomme, geht ja der Stopp-Button auch nicht mehr.
Warum zählt Counter 1 nur weiter, wenn ich einen Button bedient habe?
Wie kann ich das machen, das jeweils die Registerkarte reagiert, die ich ausgewählt habe?
Was muss ich tun, damit parallel der Counter 1 (main program) weiter läuft?

Danke für eure Hilfe im voraus,
mit freundlichen Grüßen Dorian


Registerkarten - Tasking - Trumpfi - 16.08.2007 12:24

Hi Dorian,

könntest Du Dein Vi eine Version herunterspeichern, dann könnte ich es mir anschauen.

Gruß Matthias


Registerkarten - Tasking - A.Berndsen - 16.08.2007 12:29

Hallo Dorian,

wo fang ich an ?
Als erstes, in einem VI gibt es nur eine Ereignisstruktur, die in einer Whileschleife "eingebettet" ist.
In Deinem VI kämpfen zwei Strukturen gegeneinander. Das klappt nicht.
Ich hab jetzt einfach mal Dein VI umgebaut wie ich denke wie Du Dir die Funktion vorstellst.
Wenn Du Fragen dazu hast, oder die Funktionsweise anders gedacht war, laß uns daruber reden.

Gruß
Andreas


Registerkarten - Tasking - Dorian - 16.08.2007 15:07

Hallo,
danke erstmal für die schnelle Antwort.

@A.Berndsen:
Das ist von der Funktionalität fast so wie ich mir das vorgestellt hatte. Hatte auch schon probiert mit dem timeout in den Ereignis-Strukturen, doch leider wird ja dadurch das Hauptprogramm (in diesem Fall der Zähler) auf das timeout limitiert, dh er läuft nicht kontinuirlich. Zum anderen, und das wär mir wichtiger, geht die Übersicht im Block-Diagram verloren. Es ist angenehmer, wenn man im Block-Diagram die selben Seiten auswählen und bearbeiten kann, wie im Frontpanel. Aber wie du schon geschrieben hast, ist das dann so nicht möglich, wenn mehrere Ereignisstrukturen gegeneinander kämpfen. Evenetuell könnte ich ja ich jeder Ereignisstructur ein timeout-Ereignis hinzufügen, dann würde es doch gehen.
Oder gibts da noch andere Möglichkeiten die Übersicht im BlockDiagram möglichst beizubehalten?


Leg mal die Grundstruktur meines Programms dabei, damit ihr seht wie ich das meine. Bei so vielen Tabs, würde ja die liste mit Ereignissen sehr lang werden, und die Übersicht aller Elemente der einzelnen Tabs im Block-Diagram verloren gehen. Ich hoffe ihr versteht was ich meine.

@Trumpfi:
Hab von beiden Dateien die 8.0 hinzugefügt.

Mfg,
Dorian

Ps: Kann ich nicht den Event-Handler (oder wie der in LV heißt) unloaden, wenn ich einen Tab verlasse? Z.b. in Main_reduced.vi läuft ja der Haupt-Zähler, bis man den Evaluation-Tab aufruft, dann bleibt er stehen und geht nur bei einem Event weiter (könnte ja auch timeout sein). Wenn ich nun zurück auf einem anderen Tab gehe, läuft der Haupt-Zähler trotzdem nicht weiter. Wenn man da den Event-Handler vom Evaluation-Tab unloaden könnte, wär ja ein großes Problem gelöst.
Oder kann man nicht ein multitasking machen, d.h. das der Haupt-Zähler immer weiter zählt (ohne von timeouts der Ereignisse abhängig zu sein) und die Ereignis-Schleifen in parallelen Task behandelt werden?


Registerkarten - Tasking - Dorian - 17.08.2007 12:47

Hallo,
so, jetzt hab ich das Problem (fast) gelöst. Hab die verschiedenen Ereignis-Schleifen nebeneinander laufen. Dadurch behält man im Blockdiagram die Übersicht über die Tabs, aber die sind trotzdem nicht untereinander "verknüpft". Und von der Funktionalität stimmts jetzt auch.
Da die Tabs (im Blockdiagram) jetzt nebeneinander sind, ist es zwar nicht so schön, als mit dem Case Selektor, wo nur eines auf dem Bildschirm erscheint, aber funktioniert. Geht wahrscheinlich nicht anders, oder?

Ich hänge das VI als 8.2 und 8.0 Version an, wenns jemand interessiert, bzw dasselbe Problem hat.

Danke für eure Hilfe.

Grüße,
Dorian


Registerkarten - Tasking - Achim - 17.08.2007 13:52

Ich versteh immer noch nicht, was du machen willst...aber es geht sicher einfacher...und vor allem auch mit nur einer Eventstruktur!

Vielleicht kannst du mal Schritt für Schritt aufschreiben (strukturiert!), was ablaufen soll...

Mit zwei Eventstrukturen in nem VI wird man aber nicht glücklich...

Gruss
Achim


Registerkarten - Tasking - Dorian - 17.08.2007 17:54

Hi Achim,

ich möchte ein Programm machen, das viele Tabs hat. Und in den Tabs sollen die Buttons auf Events reagieren. Das Problem bei einer einzigen Event-Structur wäre, dass die sehr viele Events erfassen müsste, und dadurch ziemlich unübersichtlich wird. Deshalb möchte ich die verschiedenen Tabs im Blockdiagram auch separat voneinander haben.
Aber hab das Problem so wie ich im letzten Post geschrieben habe, gelöst. Damit bleibt die Übersicht im Blockdiagram behalten.

Gruß
Dorian


Registerkarten - Tasking - jg - 17.08.2007 19:51

Hallo,

ich weiss ja nicht, aber Andreas hat es dir schon gesagt, und Achim ebenfalls, und ich sag es jetzt zum allerletzten Mal (und bitte glaub uns erfahrenen LV-Programmierern):

Du fällst mit mehr als einer Eventstruktur innerhalb eines VI's irgendwann garantiert auf die Schnauze!!!! Irgendwas wird irgendwann NICHT funktionieren und du weisst nicht wo. Lies auch mal die Hilfe von LV zur Event-Struktur durch, auch da steht ganz klar: NIE 2 Event-Strukturen in einem VI.

BASTA.

Und wenn es dann nicht funktioniert, dann frag uns nicht!

MfG, Jens


Registerkarten - Tasking - Dorian - 21.08.2007 12:46

Hallo Jens,

ok, alles klar. Wusste leider nur nicht wie ich das anders lösen sollte.

Wie könnte ich das dann machen, damit es trotz vielen Tabs übersichtlich bleibt? Oder mischt man dann normalerweise die Elemente der Registerkarten vom Frontpanel im Block-Diagram zusammen?
Hast du vielleicht (oder gibts hier im Forum) ein Beispiel das gut und
übersichtlich gelöst wird? (Die LV-Beispiele haben ja alle nur 2 o 3 Tabs, und dann kann man noch die Übersicht behalten,
aber bei 10 Tab's und noch mehr Bedienelemente ist das ja schon anders)

Gruß
Dorian


Registerkarten - Tasking - jg - 21.08.2007 17:56

Hallo, Dorian,

schön, dass du es akzeptierst, dass du nur eine Event-Struktur verwenden sollst.

Jetzt verstehe ich aber nicht, was nun dein Problem ist. Ob das Tab-Control nun 2 oder 20 Reiter hat und nun pro Reiter nur 1 oder 20 Controls im FP sind, ist doch völlig egal. Einfach für jedes Event (Button gedrückt, Variable geändert, etc.) einen Event einfügen und entsprechend abarbeiten. Was soll daran unübersichtlich sein? Unübersichtlich sind nur 5 qm große BD, wo alles parallel abläuft.

MfG, Jens