LabVIEWForum.de - Wie programiert man richtig?

LabVIEWForum.de

Normale Version: Wie programiert man richtig?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Du kannst dich freuenBig Grin
Du hast schon richtig angefangen!
Wie programmiere ich richtig????Glare
Markus hat auch schon einen sehr guten Typ gegeben. Wenn du noch nie ein großes LabVIEW Programm erstellt hast, dann besuch erst einmal die Basic Kurse von NI.
Dann empfehle ich dir die LabVIEW Development Guidelines von National zu lesen.
Darin steht sehr gut beschrieben, was man vor einem großen Projekt machen sollte.
Wenn du auf diejenigen hörst, die dir ohne zu wissen was dein Programm machen soll, Sequenzen, Statemachinen und Schleifen empfehlen, dann bist du jetzt schon verloren.

Große Projekte müssen zuerst sehr detailliert durchdacht werden. Auch in LabVIEW!!
Welche Geräte sind beteiligt und wie wird mit ihnen kommuniziert?
Wann benötige ich auf welcher Ebene welche Informationen?
Wie kann ich im laufenden VI auf die Infos unter den verschiedenen Ebenen austauschen?
Was mache ich, wenn ich Fehler irgendeiner Art erkenne?
Wie muss meine Bedienoberfläche gestaltet werden?
Wie kommen die Messwerte oder Ereignisse an die Bedienoberfläche?
Viele Fragen die du vorher auf einem großen Blatt Papier klären mußt.

Eine gute Planung erspart dir sehr sehr viel Sorgen und Mehrarbeit.

Gruß
Michael
Das kann ich nur bestätigen.

Ich habe vorher nicht gefragt und habe einfach losprogrammiert.
Mitlerweile habe ich, nachdem ich mehrfach das halbe Programm wegschmeissen musste, z.B. die "Statemachine" neu erfunden. Das es sowas schon gibt habe ich gerade erst gelesen. Man kommt nach Schlaflosen Nächten dann zwangsläufig auf sowas, weil es einfach die beste Möglichkeit ist. (In meinem Fall jetzt)
Ich hätte mir vermutlich sehr viel Arbeit und Kopfzerbrechen erspart wenn ich in diesem Forum häufiger dumme Fragen gestellt hätte.

Das nächste Mal (und mein Prof hat schon neue spaßige Aufgaben) werde ich mir jedenfalls einen riesenhaften Papierplan erstellen. Und bevor da nicht der letzte Wert korrekt übergeben wurde, werde ich auch nicht anfangen.


Grüße und mein Beileid,
Chris
Danke für die vielen Antworten...

Was ist eine Statemachine, ist das eine Funktion von LabVIEW?


In einem speziellen fall würden sich nun bei mir eine Ereignisbaumstruktur anbieten, könnte es aber genau so mit einer Case structure(1,2,3, ...) lösen.
Ist die ereignistruktur nur ein Mittel zum Zweck, hat sie nachteile? Zeitliche etc.
oder kann man sie genau so verwenden wie jede andere structur
Eine Statemaschine ist keine Funktion von LV. Sie ist vielmehr ein Programmierprinzip.
Im Grunde ist es einfach eine Case Struktur mit einer While Schleife herum. In den einzelnen Cases werden dann Teile deines Programmes abgearbeitet und ausgewählt, welcher Case als nächstes kommt.
Gibt viele Beispiele dazu, auch hier im Forum.

Eine Ereignissstruktur eignet sich besonders gut dann, wenn du auf Benutzereingaben reagieren willst.

Was genau verstehst du denn unter Ereignisbaumstruktur?
Meinte eigentlich eine Ereignisstruktur...

also kann man diese uneingeschränt verwenden.
In meinem FAll sollen verschiedenen Operationen, je nach gedrückten button, ausgeführt werden.

und noch was: kann man local variable uneingeschränt verwenden oder sollte man sie eher in grenzen halten
' schrieb:In meinem FAll sollen verschiedenen Operationen, je nach gedrückten button, ausgeführt werden.

Dann eignet sich auf jeden Fall eine Ereignissstruktur hervorragend.

Prinzipiell sollte man versuchen lokale Variable so wenig wie möglich einzusetzen.
Sie haben mehrere Nachteile:

- Zum einen brauchen sie Rechenleistung
- Verzettelt man sich leicht damit, weil man leicht die Übersicht verliert, wo was wohin geschrieben wird
- Ist das ganze nicht synchronisiert. Wenn du also in 2 unabhängigen Schleifen jeweils in eine lok. Variable schreibst bzw. ausliest, weißt du nie, welche Schleife nun zuerst abgearbeitet wurde.

Du solltest also:
- bevorzugt Drähte verwenden
- Melder/Queues, wenn du zwischen parallel laufenden Strukturen/SubVis Information austauscht

Wenn sich lokale Variable trotzdem nicht vermeiden lassen, sind diese der Funktion "Value" eines Eigenschaftsknoten aber vorzuziehen, wie ich neulich in diesem Forum hier erfahren habe Smile

Es gibt übrigens schon massig Threads hier über lokale Variable, die schon fast in Glaubenskriege ausgeartet sind Big Grin
Seiten: 1 2
Referenz-URLs