LabVIEWForum.de - Erstes eigenes VI: Bitte um Feedback

LabVIEWForum.de

Normale Version: Erstes eigenes VI: Bitte um Feedback
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

ich bin gerade dabei mein erstes eigenes (nützliches) Labview-Programm zu schreiben und würde euch gerne nach eurer Meinung fragen. Also ob das vom Programmierstil her gut ist und ob man das ggfs besser lösen kann. Ich will mir eigentlich von Anfang an einen guten Programmierstil angewöhnen und bin da bissel auf Feedback angewiesen. Die Oberfläche muss natürlich noch aufgehübscht werden und noch um einige Funktionen ergänzt werden.

Zum Programm: Es gibt ein Register Handbetrieb und ein Register Automatikbetrieb. Im Handbetrieb habe ich derzeit nur eine Funktion drin, das wird ggfs. noch erweitert. Beim Automatikbetrieb wird zunächst eine Datei ausgewählt, in welche gespeichert werden soll. Danach wird die Aufzeichnung gestartet, die mit einem Stop Button wieder beendet werden kann. Ich habe das mit einer einfachen State-Machine gelöst. Ich habe mehrere Male eine lokale Variable eingesetzt, und weiß nicht, ob das guter Stil ist.

Das Programm muss sicher noch um eine Fehlerbehandlung ergänzt werden. Da steige ich noch nicht so ganz durch. Auch eine Dokumentation gehört dann noch dazu und es fehlen noch verschiedene Funktionen, z.B. Normierung der Messdaten und Umrechnung Sensor (Volt) nach Weg (cm).

Beim Speichern passieren noch seltsame Dinge, da scheint irgendein Puffer im Spiel zu sein. Eigentlich wollte ich, dass erst im Schritt "Aufzeichnung starten" der Schreibvorgang beginnt, zeitgleich mit dem lösen des Haltemagnets des Versuchsaufbaus. Aber irgendwie scheint Labview zuvor gepufferte Daten dann in die Datei noch mit reinzuschreiben. Das wollte ich so nicht haben.

Was meint ihr zu dem Programm? Irgendwelche Verbesserungsvorschläge bezgl. Stil oder auch Funktionalität?
Hallo Markus,

Zitat:Also ob das vom Programmierstil her gut ist und ob man das ggfs besser lösen kann.
- Das Frontpanel muss nicht auf "maximiert" gestellt werden. Vor allem bei den paar FP-Elementen…
- Ab und zu mal AutoCleanup benutzen…
- Ich bin kein Freund des DAQAssistenten. Dafür gibt es einfache DAQmx-Funktionen.
- Sehr viele lokale Variablen - IMHO zuviele für ein solche kleines VI.
- Du verwendest eine Wartezeit in der Hauptschleife, obwohl DAQmx das Schleifentiming vorgeben sollte.
- Das State-Enum ist nicht typdefiniert.
- Das BuildArray gehört direkt vor den zweiten DAQAssi, das musst du nicht 4 oder 5mal im Code verstreuen!
- Die Registerkarte sollte keine äußere Case-Struktur umschalten, sondern als Bedingung einen State der inneren Case-Struktur aufrufen.
- SelectedPath gehört in ein Schieberegister, so wie alle anderen internen "Variablen" der Statemachine auch…
- Verwende einen Latch-Schaltmodus für deine Buttons, statt sie über lokale Variablen wieder zurückzusetzen.
- Das VI kann nicht sauber beendet werden (nur gewaltsames Abbrechen ist möglich).
- Warum sind die Ausgabewerte vom Typ DBL, obwohl der DAQAssi U32 erwartet?

Zitat:Beim Speichern passieren noch seltsame Dinge, da scheint irgendein Puffer im Spiel zu sein.
Wozu rufst du ein zweites "Speichern"-ExpressVI auf, nur um es zu deaktivieren?
Ich habe nur ganz flüchtig einen Blick darauf geworfen, und da fiel mir eine unbedeutende Winzigkeit auf: Mit Rechtsklick auf das Diagramm kann man "Zahlenanzeige" aktivieren. Die Anzeige "Aktueller Wert numerisch" würde dann nicht mehr gebraucht
Ok, danke. Da gibts dann einiges zu verbessern.

Den DAQ-Assistent habe ich der Einfachheit halber genutzt. Werde vielleicht noch eine zweite Version "von Hand" programmieren, wenn das VI mal soweit fertig ist.
Sorry, aber ich bekomme es partout nicht hin, aus meiner enum-Konstante ein typedef zu machen. Normalerweise sollte das doch mit Rechtsklick möglich sein, oder?
Hallo Markus,
bei mir geht das mit der Typdef. erstellen in der von Dir erstellten VI.
Wenn Du die Typdefs bearbeiten willst, musst Du nochmals die rechte Maustaste drücken und Typdef öffnen wählen.

Gruß
Freddy
(28.11.2018 11:10 )Freddy schrieb: [ -> ]bei mir geht das mit der Typdef. erstellen in der von Dir erstellten VI.
Wo findest du das? Ich hatte in Erinnerung, dass es mit einem Rechtsklick auf das enum geht, aber da ist keine solche Option...
Laut deinem Profil verwendest du LabVIEW 2009. Wenn ich es jetzt richtig im Kopf habe, dann gibt es in dieser Version diese Rechtsklick-Option noch nicht. Erst ab LabVIEW 2011.

Gruß, Jens
(28.11.2018 11:36 )jg schrieb: [ -> ]Laut deinem Profil verwendest du LabVIEW 2009. Wenn ich es jetzt richtig im Kopf habe, dann gibt es in dieser Version diese Rechtsklick-Option noch nicht. Erst ab LabVIEW 2011.
Ok, das erklärt einiges. Am Arbeitsplatz habe ich 2018 und auf den Laborrechnern (an denen ich jetzt primär arbeite) halt noch 2009. Kann man das irgendwo nachlesen, wie das in 2009 geht?
Pulldown Menu File -> New... -> Custom Control.

Dort ein Enum anlegen mit den Werten, die du brauchst. Die Auswahl in der Menü-Zeile auf Type Def. ändern. Ctl abspeichern und dann im Code verwenden.

Gruß, Jens
Seiten: 1 2
Referenz-URLs