LabVIEWForum.de - Struktur-Probleme

LabVIEWForum.de

Normale Version: Struktur-Probleme
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Leute,

für mein weiteres Vorgehen bräuchte ich mal ein paar Ratschläge.Und zwar läuft mein Programm soweit wunderbar außer wenn ich sehr große Datensätze "reinschiebe". Mein Programm ist grob formuliert wie folgt aufgebaut: in einer gestapelten Sequenzstruktur liegt eine While-Schleife in der wiederum ein Event-Struktur, vor der Eventstruktur liegen auch noch ein paar For-Schleifen die eine Signaltriggerung machen.Da liegt das Problem denn bei großen Datensätzen dauert es sehr lang bis das Event dann ausgeführt wird.Jedoch habe ich diese Triggerung nicht mit im Event weil die ausgangsdaten für mehrere Events verwendet werden.
Meine Frage sind nun:
1) Gibt es eine Möglichkeit, dass ich die Triggerung noch in einen Event-Case lege aber die Ausgangsdaten für mehrere andere Event-Case trotzdem bereitstelle?
2) Oder muss ich wie die Stop-Fkt. eine extra While-Schleife außerhalb der anderen While-Schleife legen aber innerhalb der Sequenz.(Oh man ich hoffe mir kann noch jemand folgen..)
3) Oder macht man das ganz anders?

Zur allgemeinen Verständigung noch ein Bild vom groben Aufbau:
[attachment=14160]

Also ich hoffe ihr könnt mit meinen Ausführungen etwas anfagen.
Schöne Grüße und vielen Dank im Voraus!
Schönen guten Morgen an alle da draußen Big Grin!

Hab noch mal ein bischen nachgedacht über mein Problem und wollte mal fragen ob die Lösung darin besteht, dass ich die Abarbeitung der Triggerung die vor dem Event-Case liegt in das Event-Case lege und mittels Schieberegistern für die anderen Events bereitstelle?

Stelle diese Fragen, weil mein Programm schon ziehmlich umfangreich ist und ich nicht einfach was verändern möchte ohne zu wissen das der Rest des Programms dann nicht mehr funktioniert.
Werd aber mal ein bischen rumexperimentieren.
Aber vielleicht kann mir jemand sagen ob ich auf den richtigen Weg bin oder nicht.

Schöne Grüße!
Kannst Du mal Dein Programm hochladen? Mit dem Screenshot fange ich nicht viel an.

Gruß Markus
' schrieb:Kannst Du mal Dein Programm hochladen? Mit dem Screenshot fange ich nicht viel an.

Gruß Markus

Leider ist es so das es ein relativ großes Programm ist d.h mit sehr vielen SubVI, deshlab hab ich es nicht hochgeladen und nur diese Skizze gemacht.

Hab gerade was im LV-Tutorium gefunden und bin im Moment am Basteln.

Meld mich wieder Tippen
' schrieb:Da liegt das Problem denn bei großen Datensätzen dauert es sehr lang bis das Event dann ausgeführt wird.
Wenn dem so ist, würde ich diese Routine nicht in einen Eventcase legen. Dann dauert der doch so lange. Event-Bearbeitungen sollen aber nur minimal kurz sein.

Zitat:Jedoch habe ich diese Triggerung nicht mit im Event weil die ausgangsdaten für mehrere Events verwendet werden.
Das ließe ich auf jeden Fall mit Schieberegister lösen.

Zitat:Oder muss ich wie die Stop-Fkt. eine extra While-Schleife außerhalb der anderen While-Schleife legen aber innerhalb der Sequenz.(Oh man ich hoffe mir kann noch jemand folgen..)
Also quasi eine eigene Task ...

Zitat:Oder macht man das ganz anders?
Wäre eine komplette Auslagerung in eine While-Schleife ganz außerhalb der übergeordneten Sequenz in deiner Applikation denkbar?
Dann könnte diese While-Schleife dauern so lange sie will. Einen Einfluß auf die Reaktionszeit der Event-Struktur ist dann minimiert. Die Daten müssten dann aber per Queue/Melder bereitgestellt werden.

Ist denn der Code in den einzelnen Events von den Daten abhängig? Ist es dann nicht sogar notwendig, auf die Abarbeitung diese einen Routine zu warten?
Ah... ich könnt gerade los O

Da sitzt man mehrere Monate an einem Programm und nun am Ende stellt man fest, dass man das Programm nochmal umschreiben muss, schrei...
Dieses Programm ist quasi meine Diplomarbeit und ich dacht ich wäre fast fertig, seufz...
Tschuldigung bin gerade Pccrash

So nun zu deinen Fragen IchSelbst: Erstmal vielen Dank für die Antwort!

' schrieb:Wäre eine komplette Auslagerung in eine While-Schleife ganz außerhalb der übergeordneten Sequenz in deiner Applikation denkbar?
Dann könnte diese While-Schleife dauern so lange sie will. Einen Einfluß auf die Reaktionszeit der Event-Struktur ist dann minimiert. Die Daten müssten dann aber per Queue/Melder bereitgestellt werden.

Eine komplette Auslagerung wäre sicherlich eine Möglichkeit aber leider kenn ich mich mit den Queue/Meldern noch nicht so aus, müsste ich erstmal nachlesen.

' schrieb:Ist denn der Code in den einzelnen Events von den Daten abhängig? Ist es dann nicht sogar notwendig, auf die Abarbeitung diese einen Routine zu warten?

Ja, die einzelnen Events sind von den getriggerten Daten abhängig.Denn Satz danach versteh ich nicht, wie Routine?

Noch ne Frage zu den Events: Ihr schreibt immer das man nur minimale Prozesse in Events setzt, ich nehme mal an weil in der Zeit das FP gesperrt ist.Aber wie realisiert man es das der Prozess der bei Knopfdruck ausgelöst wird dann abgearbeitet wird? Blöde Satzstellung...
Hätte ich statt Event-Strukturen Case nehmen müssen.Ich weiß es ist total schlecht auf sowas zuantworten wenn man das VI nicht sieht...
Mit 'ner State-Machine

Gruß Markus

' schrieb:Aber wie realisiert man es das der Prozess der bei Knopfdruck ausgelöst wird dann abgearbeitet wird?
' schrieb:Mit 'ner State-Machine

Gruß Markus

Ja das ist mir gestern auch so einigermaßen bewust geworden als ich so im Forum rum gesucht habe.Das eine State-Mascine wohl die bessere Alternative wäre. Nur muss ich dazu mein komplettes Programm umbauen, wäre zwar nicht das erste mal aber ich hatte irgendiwe die Hoffnung das es noch was anderes gibt.

Danke nochmal Markus und IchSelbst, werd jetzt wohl doch nochmal mein Programm neu strukturieren müssen. seufz
' schrieb:Da sitzt man mehrere Monate an einem Programm und nun am Ende stellt man fest, dass man das Programm nochmal umschreiben muss, schrei...
Dieses Programm ist quasi meine Diplomarbeit und ich dacht ich wäre fast fertig, seufz...
Das ist halt das Problem: Als Student respektive Anfänger in LV weißt du eben noch nicht, dass es erhebliche Vorteile bringt, wenn man große Teile des Programmes mit Queue/Melder, Statemachines, Klassen, Unmengen an SubVIs, etc etc macht. Und ein fertiges Programm umzuschreiben auf eben diese Elemente ist nicht nur aufwändig sondern auch kompliziert.

Zitat:aber leider kenn ich mich mit den Queue/Meldern noch nicht so aus
Das ist ein echter Nachteil in LV - also nachlesen.

Zitat:Ja, die einzelnen Events sind von den getriggerten Daten abhängig.Denn Satz danach versteh ich nicht, wie Routine?
Wenn die nachfolgenden Programmteile (=Routinen) von den getriggerten Daten abhängig sind, sollte da ja eine Reihenfolge eingehalten werden: Erst Daten triggern, dann Events ausführen. Aber dieses Problem geht durch eine Statemachine zu lösen.

Zitat:Hätte ich statt Event-Strukturen Case nehmen müssen.
Ich vermute, obwohl ich die Applikation nicht kenne: Ja.
Wahrscheinlich willst du einen Ablauf programmieren. Jetzt eben mittels Eventsequenz. Dafür ist aber - und ich zitiere Y-P und wiederhole mich hier gerne - eine Statemachine das Mittel der Wahl.
Hab mal noch ne Frage, bin gerade beim Lesen/Anschauen von State-Maschinen. Einiges ist dabei noch sehr verwirrend. Habt ihr ein paar Tips wie man an die Umsetzung eines solchen Ablaufes ran geht?
Seiten: 1 2
Referenz-URLs