LabVIEWForum.de - Wie Programme in LabView Strukturieren?

LabVIEWForum.de

Normale Version: Wie Programme in LabView Strukturieren?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Wie Strukturiert man Programme Grundsätzlich um nicht später Chaos zu bekommen, SubVi's scheinen mir nur eine alternative für Formeln/Brerechnungen zu sein.

Hallo ich möchte mehrere Analoge und Digitalesignale Einlesen und gleichzeitig Analogesignale Generieren, unter verwendung meiner Hardware (siehe Signatur)

Was mich nun umtreibt ist die frage wie ich bei unterschiedlichen Pegelhöhen am Eingang und auch noch der (späteren) Generierung eines Signals, dass eigentliche Programm Strukturiere?

Beim C Programmieren oder Java habe ich mir ja immer eine bestimmte Hauptaufgabe gesucht und Probleme in Unterprogrammen gelöst, macht dies auch sinn bei der Datenaufnahme und Speicherung?
Für jede "Gruppe" von Eingangssignalen, heißt 5V Sensoren, 10V Sensor, usw. müsste man ja umständlich einen virtuellen Eingang bauen und dann weiterverarbeiten...
Hat Labview Probleme damit? Die meiste Literatur beschäftigt sich nur mit Stumpfen links rein, rechts raus ohne jedoch das Timing/Samplen in Synchronisation zu behandeln.

Meine Ansätze:
1.Alle Signale erst mal aufnehmen und in einer Excel/CSV Datei speichern und dann Frontpanel nur zur Darstellung der bereits gespeicherten Signale verwenden
2.Signale Aufnehmen und gleichzeitig Anzeigen, ohne SubVis. Später dann Subvis einfügen und als letztes ein kleinen Programmteil der "Speichern" kann
3.In Abhängigkeit von meinem zu generierenden Ausgangssignal, wird Synchron dazu Eingänge gelesen und gleichzeitig angezeigt. Speichern auch erst später...


Die herangehens weise an ein größeres Software Projekt mit Labview ist mir nicht klar :-(
Offtopic2
Wenn du schon zwecks verwendeter Hardware auf deine Signatur verweist, dann solltest du auch sicherstellen, dass sie am Beitrags-Ende sichtbar ist:
[attachment=53671]
Gruß, Jens
Hallo Moes,

Zitat:Wie Strukturiert man Programme Grundsätzlich um nicht später Chaos zu bekommen, SubVi's scheinen mir nur eine alternative für Formeln/Brerechnungen zu sein.
Anscheinend ist dir nicht bewußt, wozu man subVIs alles nutzen kann. Wenn du sie jedenfalls derart in eine Ecke schiebst, kann ich mir gut vorstellen, dass deine Programme unübersichtlich werden…

Zitat:Was mich nun umtreibt ist die frage wie ich bei unterschiedlichen Pegelhöhen am Eingang und auch noch der (späteren) Generierung eines Signals, dass eigentliche Programm Strukturiere?
Ich verstehe die Fragestellung nicht: was hat ein Signalpegel mit deiner Programmstruktur zu tun? Wo soll da ein Zusammenhang sein??? Hmm

Zitat:Beim C Programmieren oder Java habe ich mir ja immer eine bestimmte Hauptaufgabe gesucht und Probleme in Unterprogrammen gelöst
In LabVIEW nennt sich dieses Konzept "MainVI" und "subVIs"…

Zitat:macht dies auch sinn bei der Datenaufnahme und Speicherung?
Ja klar, auf alle Fälle!

Zitat:Für jede "Gruppe" von Eingangssignalen, heißt 5V Sensoren, 10V Sensor, usw. müsste man ja umständlich einen virtuellen Eingang bauen und dann weiterverarbeiten...
Hmm
Das sind alles Spannungssignale, die man mit nur einem DAQmx-Task messen kann…

Zitat:Hat Labview Probleme damit?
Womit?

Zitat:Die meiste Literatur beschäftigt sich nur mit Stumpfen links rein, rechts raus ohne jedoch das Timing/Samplen in Synchronisation zu behandeln.
Dafür gibt es ja jede Menge BeispielVIs, die automatisch mit LabVIEW mitinstalliert werden…

Zitat:Meine Ansätze:
1. Könnte man machen, ist aber umständlich.
2. Könnte man machen: aber warum unter Verzicht auf subVIs? Und warum erst später speichern?
3. Inputs lesen und Outputs schreiben kann parallel laufen. Und notfalls auch irgendwie synchronisiert. Wieso willst du auf Speichern verzichten?

Zitat:Die herangehens weise an ein größeres Software Projekt mit Labview ist mir nicht klar :-(
Wie in jeder anderen Programmiersprache auch: man überlegt sich erst einmal anhand eines Lastenheftes ein Konzept. Dann überlegt man sich die nötigen Datenstrukturen und Programmteile. Und dann überlegt man sich ein passendes Programmkonzept und setzt dieses um (entweder bottom-up oder top-down)…
Wie würdest du sowas in C oder JAVA angehen?
Hallo, ich bin es nochmal Blush

Wollte mal zu meinem hier angehängten Programm fragen wie man die Eingagnssignale vom Typ Double am besten als Diagramm darstellen könnte?

Habe schon mehrer Diagramm Formen gefunden nur leider ist keine in der Lage mehr als zwei Signale darzustellen, beziehungsweise es wird beim verstellen der Plotanzahl immer nur eine Gerade gezeigt :-(



Bahn Wenn ich ein Subvi erstelle mit nur einer Schleife die alle 1000ms Datenpunkt auf ein Diagramm aufpunktet, so bricht das Gesamte Programm von der EGschwindigkeit her ein!

Gibt es da ein Sinnvolles mittel ein kleines Unterprogramm viel langsamer laufen zu lassen?

Gruß Moes
Hallo Moes,

Zitat:wie man die Eingagnssignale vom Typ Double am besten als Diagramm darstellen könnte?
Definiere "am besten"…
Ansonsten: einfach mit dem Chart verbinden! Die Hilfe zeigt dir, wie das gemacht wird.

Zitat:Habe schon mehrer Diagramm Formen gefunden nur leider ist keine in der Lage mehr als zwei Signale darzustellen, beziehungsweise es wird beim verstellen der Plotanzahl immer nur eine Gerade gezeigt :-(
Es gibt nur ein Diagramm, das andere sind Graphen!
Und alle können mehr als 2 Plots darstellen!
Und in deinem VI ist überhaupt kein Chart…

Zitat:Wenn ich ein Subvi erstelle mit nur einer Schleife die alle 1000ms Datenpunkt auf ein Diagramm aufpunktet, so bricht das Gesamte Programm von der EGschwindigkeit her ein!
Das könnte an deiner Programmierung liegen. Tipp: Parallele Schleifen, Consumer-Producer-Schema, Verzicht auf lokale Variablen, Vermeidung unsinniger FormulaNodes…

In deinem VI ist kein Chart!

Zitat:Gibt es da ein Sinnvolles mittel ein kleines Unterprogramm viel langsamer laufen zu lassen?
Solange das subVI in der Main-Schleife liegt: Nein. THINK DATAFLOW!
Ansonsten: einfach parallel aufrufen!

Mit dem Gebrauch der ganzen Median-Filter bist du dir sicher?
Referenz-URLs