LabVIEWForum.de - Ablaufprobleme

LabVIEWForum.de

Normale Version: Ablaufprobleme
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hey Users,

ich habe mein Projekt in einige Teile aufgeteilt und in verschiedenen VI´s entwickelt.
Jetzt habe ich diese ganzen VI´s zusammen in ein VI kopiert. Also einfach alles im Block-Diagramm
kopiert und in ein VI eingefügt.

Die einzelnen VI´s funktionieren Einwandfrei. Das zusammengefügte macht nicht immer das was es soll, bzw.
dauert sehr lange.

Die einzelnen Teile befinden sich meist auch noch in extra While-Schleifen.

Ist es sinnvoll alles in eine While-Schleife zu packen oder hat das wenig auswirkung auf die Performance?
Ich benutze einige Lokale Variablen, da ich die Werte teilweise so übergebe, das ich es nicht über einen anderen Weg geschafft habe.
Hat dies auch große Auswirkungen, oder hat dies andere Ursachen?

Danke für jeden Tip.
Ich glaube nicht, dass "einige Lokale Variablen" großartig Auswirkungen haben. Aber ohne dein VI zu sehen, ist es ziemlich schwer, Ursachen festzustellen. Allerdings gilt bei CPU-Performance der Satz "Nichts plus Nichts ist immer noch Nichts" nicht uneingeschränkt. Extremfall: Jedes SubVI für sich dauert 100ms. Das merkst du nicht wirklich. Wenn du 20 davon zusammen würfelst, dann sind es schon 2s, was ganz ordentlich auffällt...

Bitte lade doch mal dein VI hoch!
Moin,

wenn alle einzelnen VI's an sich laufen und das "Haupt-VI mit dem eingefügten Diagrammen läuft nicht richtig würd ich sagen das die Struktur dieses VI's nicht OK ist.
Wäre hilfreich wenn du mal das VI oder nen screenshot des Diagramms hier darstellst.
ein guter Tip ist sonst net möglich.

- lokale Variablen die in verschiedenen while Schleifen gleichzeitig aufgerufen werden können ?O
- zeitliche Zusammenhänge berücksichtigt ?

........
Hallo,

eine BITTE im voraus. BITTE STEINIGT MICH NICHT.

Die Liste meiner Fehler die Ihr feststellen werdet ist bestimmt nicht kurz. Aber vielleicht kann ich die ja leicht abstellen.

Anbei mein VI.

Danke.

(VI LV 8.5)
Hi Wolle,

1. Schau' mal, dass Du nie ein Blockdiagramm hast, das größer als eine Bildschirmgröße ist. (Du übertriffst ja schon fast den Leber. Der hat
mal voller Stolz gesagt, dass sein Blockdiagramm 2 Quadratmeter hat) Big Grin
2. Initialisiere Deine Schieberegister
3. Pack' am besten alles in eine Whileschleife und mach es mit einer Statemachine mit Eventstruktur.
(Eine, bzw mehrere Statemachines hast Du ja schon drin, auch da wo Du die Schalter in einem Case nach dem anderen abfragst, aber ich
würde eine Event-Struktur verwenden)
4. Wenn Du alles in einer Schleife/State-Machine hast, dann kannst Du auch Deine lokalen Variablen mit einem Schieberegister ersetzen
(zumindest die meisten davon)

Mehr kann ich momentan leider nicht dazu sagen, weil ich nicht ganz durchblicke und weil auch ein paar SubVIs fehlen.

Sieh' das nicht als negative Kritik, sondern als gut gemeinte Ratschläge.

Gruß nach Gärtringen
Markus
' schrieb:Hallo,

eine BITTE im voraus. BITTE STEINIGT MICH NICHT.

Die Liste meiner Fehler die Ihr feststellen werdet ist bestimmt nicht kurz. Aber vielleicht kann ich die ja leicht abstellen.

Anbei mein VI.

Danke.

Hallo WolfiB,
ich meine Steinigen wäre aber schon angebracht.Lol

Ich schreib mal nur was generelles.
Wenn du möchtest das Alle Whileschleifen Paralell ablaufen dann nimm irgendeine Konstante plaziere sie auserhalb der schleifen und verbinde sie mit allen While schleifen.
Mach eine Sequenzstruktur um alles was du hast. Einen rahmen davor einfügen und alle Variablen da rein die du Beim Programmstart iniziallisieren möchtest.
Einen Rahmen danach einfügen und alle Variablen die nach ablauf deiner ganzen schleifen wieder zurückgesetzt werden sollen da rein.
Das ist zwar bei deinem Prog nicht schön aber hilft vielleicht.

Wie es momentan ist ist nicht gesichert was wan läuft.

Um mehr zu schreiben fehlt mir gerade die Zeit.

Grüße
Achimedes
Sorry aber bei hörts momentan bei 7.1 mit LabVIEW auf.
' schrieb:Hi Wolle,

1. Schau' mal, dass Du nie ein Blockdiagramm hast, das größer als eine Bildschirmgröße ist. (Du übertriffst ja schon fast den Leber. Der hat
mal voller Stolz gesagt, dass sein Blockdiagramm 2 Quadratmeter hat) Big Grin

Hab ich schon versucht, aber manchmal ist einfah zuviel drin in einer Seite. Versuch es aber mal.

Zitat:2. Initialisiere Deine Schieberegister

Bringt das was?

Zitat:3. Pack' am besten alles in eine Whileschleife und mach es mit einer Statemachine mit Eventstruktur.
(Eine, bzw mehrere Statemachines hast Du ja schon drin, auch da wo Du die Schalter in einem Case nach dem anderen abfragst, aber ich
würde eine Event-Struktur verwenden)
Versteh ich nicht ganz. StateMachine ok. Aber wie kann ich die in eine Eventstruktur packen?
Mit den Schlatern meinst du das, wo ich die ganzen ncheinander abfrage und immer durchschleife? Bringt das also mehr wie nur bessere Übersicht?

Zitat:4. Wenn Du alles in einer Schleife/State-Machine hast, dann kannst Du auch Deine lokalen Variablen mit einem Schieberegister ersetzen
(zumindest die meisten davon)
Dann hab ich wahrscheinlich sehr viele, richtig? Wo ich viele meistens dann nur durchschleife richtig?

Zitat:Mehr kann ich momentan leider nicht dazu sagen, weil ich nicht ganz durchblicke und weil auch ein paar SubVIs fehlen.

Sieh' das nicht als negative Kritik, sondern als gut gemeinte Ratschläge.

Gruß nach Gärtringen
Markus


Seh das auch nicht als Kritik. 4 Wochen mit LabVIEW sind eben noch net soviel. Muss noch viel lernen bei LabVIEW.

Gruß Wolle
' schrieb:Hab ich schon versucht, aber manchmal ist einfah zuviel drin in einer Seite. Versuch es aber mal.
Bringt das was?
Versteh ich nicht ganz. StateMachine ok. Aber wie kann ich die in eine Eventstruktur packen?
Mit den Schlatern meinst du das, wo ich die ganzen ncheinander abfrage und immer durchschleife? Bringt das also mehr wie nur bessere Übersicht?
Dann hab ich wahrscheinlich sehr viele, richtig? Wo ich viele meistens dann nur durchschleife richtig?
Seh das auch nicht als Kritik. 4 Wochen mit LabVIEW sind eben noch net soviel. Muss noch viel lernen bei LabVIEW.

Gruß Wolle

Bringt das was? Ja, weil du dann nie "irgendwelche" Werte drin hast, sondern zumindest deinen Startwert.

Schieberegister in einer StateMachine: Ja, du schleifst dann viele einfach nur durch. Ist meistens trotzdem besser als lokale Variablen. Alternativ kannst du den Feedback Node verwenden, dann sparst du dir die ganzen Strippen.
' schrieb:Sorry aber bei hörts momentan bei 7.1 mit LabVIEW auf.

Dan schreib bitte nicht 8.2 ins Profil... Profil_ergaenzen
Seiten: 1 2
Referenz-URLs