Datenerfassung und - verarbeitung an einem Ventilatorenprüfstand - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Datenerfassung und - verarbeitung an einem Ventilatorenprüfstand (/Thread-Datenerfassung-und-verarbeitung-an-einem-Ventilatorenpruefstand) |
Datenerfassung und - verarbeitung an einem Ventilatorenprüfstand - schneiderlu52048 - 02.01.2017 13:27 Guten Tag, ich schreibe zurzeit meine BA und baue einen Ventilatorenprüfstand zur Verifikation der Affinitätsgesetze und weiteren Gesetzmäßigkeiten. Die Datenerfassung und -verarbeitung soll über LabVIEW geschehen. Die Signale werden über eine Datenerfassung Agilent 34970 eingelesen. Vorgesehen habe ich eine Messrate von einer Sekunde und die Aufnahme von 10 Messwerten pro Versuchsreihe. Anschließend werden die Signale auf die tatsächlichen Messgrößen umgerechnet und ein Mittelwert gebildet, mit dem die Berechnungen und die Diagramme (fehlen noch) gebildet werden. Für den ersten Versuch "Affinitätsgesetze" werden der Volumenstrom, die spezifische Stutzenarbeit und die elektrische Leistung aus den Mittelwerten berechnet. Dies soll für unterschiedliche Spannungen und unterschiedliche Differenzdruckmessungen möglich sein. Aus diesen Werten sollen verschiedene Diagramme erstellt werden, weswegen die Werte gespeichert/ festgehalten werden sollten. Ich habe versucht diese Problematik über mehrere Casestrukturen zu lösen. Allerdings wird die Programmierung recht komplex und unübersichtlich. Fällt jemandem eine elegantere Lösung ein? Ich bin leider (noch) kein LV-Profi und bin für jeden Tipp dankbar. Wenn Bedarf nach einer ausführlicheren Versuchsbeschreibung besteht, einfach schreiben. Bin mir nicht sicher inwieweit die Problemstellung verständlich ist. Vielen Dank und ein frohes neues Jahr! RE: Datenerfassung und - verarbeitung an einem Ventilatorenprüfstand - GerdW - 02.01.2017 13:57 Hallo lu, herzlich willkommen im Forum! Zitat:Die Signale werden über eine Datenerfassung Agilent 34970 eingelesen. Vorgesehen habe ich eine Messrate von einer Sekunde und die Aufnahme von 10 Messwerten pro Versuchsreihe. Anschließend werden die Signale auf die tatsächlichen Messgrößen umgerechnet und ein Mittelwert gebildet, mit dem die Berechnungen und die Diagramme (fehlen noch) gebildet werden.Das hört sich doch schon mal nach einer durchdachten Sache an… Zitat:Fällt jemandem eine elegantere Lösung ein?Ich kann momentan dein VI nicht anschauen, aber hast du schon mal über ein Producer-Consumer-Schema nachgedacht? Evtl. auch gestaffelt: DAQ -> Umrechnen -> Speichern -> Darstellung… RE: Datenerfassung und - verarbeitung an einem Ventilatorenprüfstand - schneiderlu52048 - 02.01.2017 14:36 Hallo Gerd, danke für die schnelle Antwort. Zitat:Ich kann momentan dein VI nicht anschauen, aber hast du schon mal über ein Producer-Consumer-Schema nachgedacht?Kenne leider den Begriff nicht. Ich lese mich mal in die Thematik ein und melde mich dann nochmal RE: Datenerfassung und - verarbeitung an einem Ventilatorenprüfstand - GerdW - 02.01.2017 14:45 Hallo lu, Datei -> Neu… -> VI -> aus Vorlage -> Entwurfsmuster -> Erzeuger/Verbraucher… RE: Datenerfassung und - verarbeitung an einem Ventilatorenprüfstand - schneiderlu52048 - 02.01.2017 15:53 Ich habe mich etwas in die Thematik eingelesen. Eine Struktur nach dem Erzeuger/Verbraucher-Prinzip würde das Programm strukturierter und effizienter machen. Allerdings bin ich mir über die Einbeziehung der Struktur in mein Programm etwas unschlüssig. Ich habe mal noch einen Screenshot von einem Teil meines Blockdiagramm angehängt. Zu sehen sind darin die Initialisierung, das Einlesen der Messwerte, die Umformung, die Mittelwertbildung und das Verarbeiten der Daten mittels Formelknoten in verschiedenen Cases. Meine konkreten Probleme sind: 1. Das Weiterverarbeiten der Daten für die Diagramme. Für den Versuch "Affinitätsgesetze" werden die Messdaten bei unterschiedlichen Spannungen und verschiedenen Differenzdruckmessungen ermittelt. Diese Daten sollen gespeichert werden und in verschiedenen Diagrammen dargestellt werden. Im Allgemeinen soll der Anwender den Versuch, die benutzte Differenzdruckmessung und die Spannungsstufe auswählen können. Das habe ich versucht über die drei Case-Strukturen und Auswahl-Enums zu lösen. Diese sind allerdings recht unübersichtlich, wie ich finde. Dazu würde sich das Erzeuger/Verbraucher-Prinzip anbieten oder? 2. Das Speichern der Daten und den Aufruf für die Diagramme. Wenn man eine erste Messung bei 12 Volt und danach eine Messung bei 11 Volt durchführt und diese jeweils über das Enum anwählt, werden die Daten der 12 Volt Messung dann überschrieben? 3. die allgemeine Funktionalität und Struktur des Programms. Eventuell auch die Einbindung der Erzeuger-Verbraucher-Struktur. Vielen Dank schon mal! RE: Datenerfassung und - verarbeitung an einem Ventilatorenprüfstand - GerdW - 02.01.2017 16:13 Hallo lu, Zitat:Eine Struktur nach dem Erzeuger/Verbraucher-Prinzip würde das Programm strukturierter und effizienter machen.Oh ja! Zitat:Ich habe mal noch einen Screenshot von einem Teil meines Blockdiagramm angehängt.Was mir auffällt: Du hast links eine Schleife, die Messwerte aufnimmt. Ist es korrekt, dass du eine Referenz für das Gerät auf mehrere parallele Abfragen verteilst? Ist es sinnvoll, diese Referenz in der Schleife zu schließen? Ist es sinnvoll, mehrere Iterationen dieser Schleife durchzuführen, wenn die Referenzen geschlossen werden? Ganz allgemein: - Aufräumen und für gerade und nicht verdeckte Drähte sorgen! Wie soll man sich in so einem BD zurechtfinden? - SubVIs für gleiche Operationen einführen: bei dir z.B. die Skalierung der Messwerte und die Mittelwertberechnung… Zitat:2. Das Speichern der Daten und den Aufruf für die Diagramme. Wenn man eine erste Messung bei 12 Volt und danach eine Messung bei 11 Volt durchführt und diese jeweils über das Enum anwählt, werden die Daten der 12 Volt Messung dann überschrieben? Hängt davon ab, wie du es programmierst… Zitat:3. die allgemeine Funktionalität und Struktur des Programms. Eventuell auch die Einbindung der Erzeuger-Verbraucher-Struktur.Man kann die einzelnen Bearbeitungsschritte trennen únd in jeweils eine Schleife packen: - DAQ mitsamt Messwertskalierung - Berechnungen/Auswertungen - Datenspeicherung und Anzeige RE: Datenerfassung und - verarbeitung an einem Ventilatorenprüfstand - schneiderlu52048 - 02.01.2017 16:49 Hast du natürlich recht. Ich versuche bis morgen mal etwas Ordnung reinzubekommen. Zu deinen Anmerkungen: Zitat:Ist es korrekt, dass du eine Referenz für das Gerät auf mehrere parallele Abfragen verteilst? 1. Ja das ist korrekt 2/3. Stimmt, das ist nicht sinnvoll. Ich werde diesen Teil rausziehen. Ich versuche mal weiterzumachen und melde mich dann wieder. Schönen Abend noch. RE: Datenerfassung und - verarbeitung an einem Ventilatorenprüfstand - GerdW - 02.01.2017 17:24 Hallo lu, Zitat:1. Ja das ist korrektDas ist zwar die Antwort auf meine Frage, aber nicht deren Intention! Ich halte es für problematisch, einer SharedResource wie deinem Messgerät parallel mehrere sich widersprechende Befehle zu senden! Auch das sollte per DATAFLOW serialisiert abgearbeitet werden… RE: Datenerfassung und - verarbeitung an einem Ventilatorenprüfstand - schneiderlu52048 - 03.01.2017 11:09 Guten Morgen, Zitat:Das ist zwar die Antwort auf meine Frage, aber nicht deren Intention! Ich verstehe leider nicht genau was du damit meinst. Die SubVI Initialisierung sendet doch keine sich widersprechenden Befehle, oder? Zur Serialisierung der Daten habe ich die Funktion "Daten serialisieren" benutzt. Ich glaube aber nicht, dass das die Variante ist die du gemeint hast. Entschuldigung, falls ich mich dumm anstelle. Ich habe mein BD etwas strukturiert, Teile in SubVIs verpackt und die Case-Strukturen gelöscht. Die Berechnungen habe ich wegen der Übersichtlichkeit auch in einen Formelknoten gepackt. Verstehe ich es richtig, dass ich den bis jetzt im angehängten VI vorhandenen Bereich in die Erzeugerschleife packe? Und je nach Auswahl des Versuchs, der Differenzdruckmessung und der Spannungsebene, dann eine bestimmte Verbraucherschleife aufgerufen wird, die genau dafür programmiert ist? Ich hänge das neue VI, sowie ein Bild davon, nochmals an und wäre für Feedback sehr dankbar. RE: Datenerfassung und - verarbeitung an einem Ventilatorenprüfstand - GerdW - 03.01.2017 11:20 Hallo lu, Zitat:Zur Serialisierung der Daten habe ich die Funktion "Daten serialisieren" benutzt. Ich glaube aber nicht, dass das die Variante ist die du gemeint hast.Nein, das meinte ich nicht. Ich meinte, dass du die Agilent-Abfragen in der FOR-Loop nacheinander (seriell) und nicht parallel ausführen sollst! Zitat:Ich habe mein BD etwas strukturiertUnd leider immer noch versteckte Drähte! Wo kommt der String her, der in diese ganzen Agilent-Abfragen reingeht? Zitat:Ich hänge das neue VIKannst du das heute als LV2014 (Datei -> Speicher für vorige Versionen) bereitstellen? |