LabVIEWForum.de - DAQ Assistent - Watchdog

LabVIEWForum.de

Normale Version: DAQ Assistent - Watchdog
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Britta,
versuch teile des VI in Sub VI zu zerlegen. Damit sind nicht so viele Leitungen auf einem Bild.
Es ist auch oft der Fall, dass Sub VI's mehrfach verwendet werden können.
Getestete Sub VI erleichtern bei der Fehlersuche da sie als Fehlerquelle ausschließen kann.

Betrachte immer das Bild des VI und stell Dir vor du solltes in einem Jahr etwas daran ändern. Wie schnell könntest Du Dich in das Programm rein denken.
Übersichtlichkeit löst oft Programmfehler bzw. man sieht sie schneller.
Die Datenströme und ihre Abhängigkeiten sind besser sichtbar.

Gruß
Freddy
(12.02.2016 09:55 )Britta123 schrieb: [ -> ]Und was müsste ich dabei beachten.
Was hier fehlt, fällt nicht unter Tricks, eher unter Styleguide.

Was schlecht ist, ist die Unübersichtlichkeit. Es gibt zu viele zu lange Drähte mit zu vielen Biegungen.

Schön wäre natürlich, alles modular aufzubauen. z.B. für alles, was eine DAQmx-Task hat, ein eigenes FGV. Nachrüsten geht sowas aber nur ganz schwer.

Was aber geht, ist folgendes:
Du kannst die vielen einzelnen Drähte in einen Cluster zusammenfassen. Außerdem viele Funktionen in ein SubVI auslagern. z.B. die drei PWM-Assistenten. Alleine durch diese beiden Maßnahmen wird das BD schon erheblich kleiner. Die Handhabung des VIs FlowRegelung im BD wird dann auch schöner: Es gibt nur noch einen Eingang, nämlich einen Cluster mit allen Daten.

Der "Cluster mit den Drähten" hat möglicherweise kein FP, was nicht schlecht wäre. Dieser Cluster liegt im Schieberegister. Ein weiterer Cluster enthält idealerweise alle Frontpanel-Anzeigeelemente. Praktisch ist das leider nicht immer umsetzbar. Auch FP-Bedienelemente kann man in einen Cluster legen.

Weist du um den Sachverhalt, dass eine Abfrage von DBL-Werten auf den Wert 0.0 zu Problemen führen kann? Aus "Rundungs-technischen Gründen" kann z.B. bei einer Operation, bei der 0.0 herauskommen soll, z.B. 1e-10, was fast Null ist, herauskommen. Und weil es eben nur fast Null ist, wird der Vergleich auf "= Null" false ergeben. Einen "Ist-Gleich"-Vergleich soll man bei DBL-Werten eigentlich nicht machen, eigentlich soll man eine Bereichsabfrage machen. z.B.: Alles was im Bereich von [-1E-5 .. 1E-5] liegt, gilt als Null. Möglich ist, dass bei dir aus gegebenen Gründen, die ich nicht kenne, eine "Ist-Gleich"-Abfrage funktioniert. Zumindest aber muss man sich dieses Effektes im Klaren sein.

Zuletzt noch ein kleines Späßchen:
Es gibt nur einen Grund ein BD so zu gestalten. Du kannst deinem/r Chef/in sagen: "Kuck, so kompliziert ist das". Yahoo
Hallo Britta,

Zitat:Denn eigenlich habe ich mittlerweile alle Funktionen integriert und es läuft auch einwandfrei..
Einigen wir uns auf "es läuft"! Big Grin

- Ich propagiere immer den Verzicht auf ExpressVIs.
- Du mischt "normale" DAQmx-Funktionen mit DAQ-Assistenten - warum?
- Du wandelst ein Array in DDT um, um zwei Samples auszulesen - warum?
- Verbesserungswürdig: im Bild mittig unten sieht man zwei Indicators mit identischem Label. Was soll das?
- Den StyleGuide findest du in der LabVIEW-Hilfe: verdeckte Drähte, kreuz-und-quer-Verdrahtung (z.b. von rechts unten nach links oben), ...
- Einige RubeGoldbergs im Bild…
- ...
Zitat:Es gibt nur einen Grund ein BD so zu gestalten. Du kannst deinem/r Chef/in sagen: "Kuck, so kompliziert ist das".
Hallo IchSelbst,
super Argument werde ich mir für meine nächsten Gespräche mit meinem Chef merken.Big Grin
Gruß Freddy
Vielen lieben Dank für die vielen Tipps!
Ich werde das Programm noch mal überarbeiten und es übersichtlicher gestalten.

@Gerd:
"- Du mischt "normale" DAQmx-Funktionen mit DAQ-Assistenten - warum?"
Weil der DAQ - Assitent im Vorgängerprogramm, das ich bekommen habe, implementiert war und ich mich noch nicht getraut habe, dass abzuändern. Die Gefahr war mir bisher zu groß, dass danach nichts mehr läuft Big Grin

"- Du wandelst ein Array in DDT um, um zwei Samples auszulesen - warum?"
Du meinst unten im Bild, wo der Sensor ausgelesen wird? Ich muss beide Werte des Sensor auf der Oberfläche darstellen und wusste nicht wie ich diese sonst separieren kann.

"- Verbesserungswürdig: im Bild mittig unten sieht man zwei Indicators mit identischem Label. Was soll das?"
Jaa, die Beschriftung könnte besser sein, dass sehe ich auch so.

Ich werde mich noch weiterhin in LabVIEW beschäftigen, das nächste Programm sollte dann nicht mehr so chaotisch aussehen Big Grin
Ich werde berichten, ob der Watchdog mit neuer Hardware einwandfrei funktioniert Wink

Herzlichen Gruß
Britta
Hallo Britta,

Zitat:Ich muss beide Werte des Sensor auf der Oberfläche darstellen und wusste nicht wie ich diese sonst separieren kann.
Wenn man die Elemente eines Arrays haben will, dann sollte man diese indizieren: IndexArray…
Seiten: 1 2
Referenz-URLs