INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Optimierungstipps für mein Host-VI



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

23.02.2010, 14:17
Beitrag #3

Jansen83 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 95
Registriert seit: May 2009

8.6
-
de

18055
Deutschland
Optimierungstipps für mein Host-VI
' schrieb:Ich glaub, ich hab Dir schonmal was dazu gesagt. Ein paar allgemeine Optimierungstips von mir:

1. Überleg Dir immer, was das Konstrukt da tut, das Du programmierst. z.B.: Wenn man eine While-Schleife mti einem "Stop if true"-Abbruchknoten, an dem eine True-Konstante angeschlossen ist, laufen lässt, läuft die genau einmal durch. i ist dann genau ein einziges mal 0 und wird nie eins. Ergo, eine Case-Struktur mit einem Case 0 und einem Case 1 wird auch immer nur den Case 0 ausführen. Was auch immer im Case 1 ist, wird nie stattfinden.
Edit: Noch ein Beispiel: Eine Zahl zu Quadrieren und hinterher die Wurzel daraus zu ziehen macht was: Genau, einen Absolutbetrag berechnen. Dazu gibt's auch ein eigenes VI zu, gleiche Palette wie Quadrat und Wurzel im übrigen...

Du hast natürlich völlig recht, dass quadrieren und Wurzel ziehen hätte ich mir sparen können mit der Verwendung der richtigen VIs.
Die While-Schleife mit einem "Stop if true"-Abbruchknoten & angeschlossener True-Konstante ist hoffe nur ein weiteres Beispiel, oder habe ich dies irgendwo so verwendet? Falls ja muss ich gestehen finde ich diese Stelle nicht Unsure

' schrieb:2. Du hast in deinem VI Rampenfahrt im Prinzip eine Sequentielle berechnung (untere Sequenz), wo die tatsächliche Berechnung von den WErten einzelner Variablen abhängt. Das machst du mit sehr vielen True-False-Cases. Schon mal über einen Formelknoten nachgedacht, Cases mit mehr als True-False als Cases oder zumindest über eine kurze Textkommentierung?

Ich muss ganz ehrlich gestehen, dass ich die Funktion der Formelknoten nicht kannte. Das ist eins meiner Probleme, dass ich mich zu selten auf unbekannten Funktionspaletten umschaue. Hätte mir natürlich viel Arbeit ersparrt und werde ich in Zukunft bei Gegebenheit verwenden.

' schrieb:3. Mach Dich mal mit dem Datenflussprinzip vertraut. Ich behaupte, dass du in dem Sub-VI keine einzige lokale Variable brauchst. Deine doch exzessive Verwendung macht zwar einen halbwegs aufgeräumten eindruck, neben den von Dir angesprochenen Race-Conditions dauert der Durchlauf aber länger und Du brauchst mehr Speicher. Da du da Sollpositionen für eine Regelung berechnest, würde mich die Durchlaufzeit ärgern.

Zum Thema Datenfluss ist leider wenig zu finden. Meine beiden Grundlagenbücher biete gesamt keine drei Seiten zum Thema, wirklich Tutorials sind im Netz so recht nicht zu finden und face-to-face hab ich leider niemanden der mir weiterhelfen kann.
In welcher Form muss ich mir das vorstellen, wenn du vermutest, dass lok. Variablen in meinem Sub-VI überflüssig sind?

' schrieb:4. Was dein konkretes Problem angeht: Mach den Schreibvorgang doch außerhalb der While-Schleife. LabVIEW kann an Schleifen automatisch Arrays aus den Einzelwerten pro Durchlauf bauen und die kannst du dann nach Abschluss der Schleife mit deinem Express-VI schreiben. Alternativ: Mach's ordentlich, vor der Schleife die Datei öffnen, in der Schleife nur schreiben und nach der Schleife wieder schließen. Im Express-VI ist ein Overhead, der die Laufzeit denke ich ziemlich verlängert. (Das ist ungefähr so, wenn du jeden morgen mit dem Fahrrad zur Arbeit fährst, vorher aber immer noch alle Staumeldungen hörst, Dir drei alternative Verbindungen mit dem ÖPNV raussuchst (weil das ja auch eine Möglichkeit wäre) und zwar jeden morgen.)
Die Thematik muss ich mir noch mal genauer angucken. Wobei mir die Datenspeicherung eh noch Probleme bereitet, aber dazu gibt es von mir noch einen anderen Thread. Dein Beispiel fand ich sehr schönSmile

' schrieb:5. Hast Du mal drüber nachgedacht, ein Timing in Deinen Case 9 einzubauen? Zumindest die maximale Samplingrate Deiner Ausgabemodule würde ich mal vorsehen...

Damit meinst du eine "Warten"-Fkt? Mit was für einer Wert?


Ich danke dir schon mal für deine Mühe, würde mich aber freuen, wenn du auf den einen oder anderen Punkt noch mal eingehen würdest.

Gruß JAN
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Optimierungstipps für mein Host-VI - Jansen83 - 23.02.2010 14:17

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Umwandlung von Ticks in Sec und Übertragung an Host derandyk 11 11.704 11.01.2019 14:12
Letzter Beitrag: GerdW
  Kommunikation zwischen FPGA und Host skar 13 15.752 09.09.2014 14:08
Letzter Beitrag: skar
  Host to Target DMA-Kanal Problem stefan360 3 5.875 21.01.2014 19:32
Letzter Beitrag: GerdW
  Messwerte vom NI 9222 in Host-VI übertragen LabVIEWNutzer 1 5.296 15.10.2013 07:00
Letzter Beitrag: Y-P
  Host VI startet die FPGA VI nicht robert_bors 8 9.322 08.07.2013 18:18
Letzter Beitrag: Holy
  DMA FIFO Host to FPGA Transfer funktioniert nicht robert_bors 3 7.281 04.07.2013 13:19
Letzter Beitrag: robert_bors

Gehe zu: