LabVIEWForum.de
UND-Funktion bringt Fehler - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: UND-Funktion bringt Fehler (/Thread-UND-Funktion-bringt-Fehler)



UND-Funktion bringt Fehler - Blacky27 - 27.04.2014 17:28

Hallo,

ich habe zur Übung (bin noch in den Kinderschuhen) ein einfaches VI erstellt, dass die Spannungsänderung eines Potis erfasst.
Die Spannungsversorgung +5V des Potis und den Abgriff des Widerstandes habe ich an das myDAQ angeschlossen.
Wenn die Spannung einen Wert unter- bzw. überschreitet soll eine LED leuchten. Ebenso wenn sich die Spannung zwischen den Grenzwerten befindet.
Also nicht anspruchvolles.
Ich habe das Signal einmal über den DAQ-Assistenten erfasst und ein zweites mal über einen virtuellen Kanal (so nennt man das glaube ich).
Das VI mittels virtuellen Kanal läuft fehlerfrei, bei der Erfassung des Signals über den DAQ-Assistent gibt es Probleme.
Wenn ich nun, wie im VI ersichtlich, die beiden Signale (größer/kleiner) über eine NICHT-Funktion mit einer UND-Funktion verbinde erhalte ich eine Fehlermeldung, bzw.
die Verbindung zwischen der zweiten NICHT-Funktion und der UND-Funktion wird abgebrochen.
Die größer/kleiner Vergleiche alleine funktionieren fehlerfrei.
Warum ist das so, und warum funktioniert es mit einem virtuellen Kanal?

Was mir auch unklar ist, wenn ich die Messung das erste Mal starte, erhalte ich keine Ergebnisse.
Wenn ich den STOP-Button betätige erscheint folgende Meldung:
Fehler - 200099 bei DAQmx Create Channel (AI-Voltage-Basic).vi:1780001
Mögliche Ursachen:
Kein physikalischer Kanal angegeben.

Den Kanal habe ich aber ausgewählt, DEV2/ai0.
Nachdem ich die Meldung bestätigt habe und eine neue Messung starte, funktioniert diese einwandfrei.



Grüße, Blacky27


RE: UND-Funktion bringt Fehler - GerdW - 27.04.2014 17:45

Hallo Blacky,

Zitat:Die größer/kleiner Vergleiche alleine funktionieren fehlerfrei.
Man kann eine UND-Funktion jederzeit durch ein passendes ODER ersetzen, um dabei einige NOTs einzusparen:
[attachment=49500]
Lernt man so etwas heute nicht mehr?
Außerdem gibt es ja in LabVIEW die InRangeAndCoerce-Funktion, die eine sehr ähnliche Aufgabe erfüllt…

Zitat:Ich habe das Signal einmal über den DAQ-Assistenten erfasst und ein zweites mal über einen virtuellen Kanal (so nennt man das glaube ich).
Falls du mit "virtueller Kanal" dein Übung1.vi meinst: nein, so nennt man das nicht! Das sind ein Eingabeelement und mehrere Anzeigeelemente…
In deinem Übungs2.vi befindet sich auch kein DAQ-Assistent, sondern nur normale DAQmx-Funktionen!

Zitat:Das VI mittels virtuellen Kanal läuft fehlerfrei, bei der Erfassung des Signals über den DAQ-Assistent gibt es Probleme.
Dann lass doch den DAQ-Assistenten weg. Die "einfachen" DAQmx-Funktionen sich nicht so schwer - und man kommt (auch mittels der mitgelieferten Beispiel-VIs) wesentlich weiter…

Zitat:Wenn ich nun, wie im VI ersichtlich, die beiden Signale (größer/kleiner) über eine NICHT-Funktion mit einer UND-Funktion verbinde erhalte ich eine Fehlermeldung, bzw. die Verbindung zwischen der zweiten NICHT-Funktion und der UND-Funktion wird abgebrochen.
Glas1
Ich nehme mal an, du sprichst vom DDT-Datentyp, der aus dem DAQ-Assistenten herauspurzelt. Der ist schon an sich unübersichtlich, aber den jetzt auch noch mit boolschen Operationen zu verwursten ist schon grob fahrlässig.
Wenn du aber mal das VI zeigen würdest bzw. die Fehlermeldung exakt benennen, dann könnte man hier genauer darauf eingehen…

Zitat:Was mir auch unklar ist, wenn ich die Messung das erste Mal starte, erhalte ich keine Ergebnisse.
Wenn ich den STOP-Button betätige erscheint folgende Meldung:
Fehler - 200099 bei DAQmx Create Channel (AI-Voltage-Basic).vi:1780001
Mögliche Ursachen:
Kein physikalischer Kanal angegeben.
Den Kanal habe ich aber ausgewählt, DEV2/ai0.
Nachdem ich die Meldung bestätigt habe und eine neue Messung starte, funktioniert diese einwandfrei.
Du redest jetzt von Übung2.vi? Hast du mal dein VI mit Debugging untersucht? Highlight-Execution z.B.?
Wann hast du den Kanal ausgewählt? Vor oder nach Start des VIs?


RE: UND-Funktion bringt Fehler - Blacky27 - 27.04.2014 19:17

Zitat:Man kann eine UND-Funktion jederzeit durch ein passendes ODER ersetzen, um dabei einige NOTs einzusparen:
Das UND und die beiden NICHT einfach durch ein ODER zu ersetzen funktioniert nicht. Zumindest nicht so, wie Du es gemacht hast.
Dann wäre das Ergebnis TRUE, wenn eine der beiden Eingänge TRUE wären. Also entweder U<3 ODER U>7.
Es würden dann die LEDs für U<3 und 3<U<7 oder U>7 und 3<U<7 leuchten und nicht nur die LED für 3<U<7. Das wäre aber nicht die Aufgabe.


Zitat:Falls du mit "virtueller Kanal" dein Übung1.vi meinst: nein, so nennt man das nicht! Das sind ein Eingabeelement und mehrere Anzeigeelemente…
In deinem Übungs2.vi befindet sich auch kein DAQ-Assistent, sondern nur normale DAQmx-Funktionen!
Hier ist mir ein Fehler passiert. Das VI "Uebung_1" ist nicht richtig.
Ich habe das VI (Uebung_2_1) mit dem DAQ-Assistent angehängt, den Fehler habe ich rot markiert.
Dieser Fehler tritt im anderen VI (Uebung_2) mit den normalen DAQmx-Funktionen nicht auf.


Zitat:Was mir auch unklar ist, wenn ich die Messung das erste Mal starte, erhalte ich keine Ergebnisse.
Wenn ich den STOP-Button betätige erscheint folgende Meldung:
Fehler - 200099 bei DAQmx Create Channel (AI-Voltage-Basic).vi:1780001
Mögliche Ursachen:
Kein physikalischer Kanal angegeben.
Den Kanal habe ich aber ausgewählt, DEV2/ai0.
Nachdem ich die Meldung bestätigt habe und eine neue Messung starte, funktioniert diese einwandfrei.
Du redest jetzt von Übung2.vi? Hast du mal dein VI mit Debugging untersucht? Highlight-Execution z.B.?
Wann hast du den Kanal ausgewählt? Vor oder nach Start des VIs?

Hier habe ich die Lösung gefunden.
Ich muss für den Kanal einen Standard-Wert angeben. Ist im Kontextmenü: Datenoperation --> Aktuellen Wert als Standard


Tut mir leid, wenn ich mich manchmal etwas undeutlich ausdrücke, bin halt noch am Lernen.

Grüße, Blacky


RE: UND-Funktion bringt Fehler - GerdW - 28.04.2014 07:32

Hallo Blacky,

Zitat:Zumindest nicht so, wie Du es gemacht hast.
Doch, genau so wie ich es gemacht habe! Bei genauem Hinschauen erkennt man nämlich das NOR, welches ich verwendet habe…

Zitat:Hier ist mir ein Fehler passiert. Das VI "Uebung_1" ist nicht richtig. Ich habe das VI (Uebung_2_1) mit dem DAQ-Assistent angehängt, den Fehler habe ich rot markiert. Dieser Fehler tritt im anderen VI (Uebung_2) mit den normalen DAQmx-Funktionen nicht auf.
Einfachste aller Lösungen: direkt nach dem DAQ-Assi ein "From DDT" einfügen und die Daten von DDT nach (skalar) DBL umwandeln…


RE: UND-Funktion bringt Fehler - Lucki - 28.04.2014 07:59

Hier mal noch ein Vorschlag, wie man das Gedöns mit den Schwellwerten professioneller machen könnte:
[attachment=49509]


RE: UND-Funktion bringt Fehler - Blacky27 - 28.04.2014 08:51

Zitat:Doch, genau so wie ich es gemacht habe! Bei genauem Hinschauen erkennt man nämlich das NOR, welches ich verwendet habe…
Hast recht. Die "Kleinigkeit" habe ich übersehen.

Zitat:Einfachste aller Lösungen: direkt nach dem DAQ-Assi ein "From DDT" einfügen und die Daten von DDT nach (skalar) DBL umwandeln…
Getestet und funktioniert.
Werd weiterhin nur mit DAQmx-Funktionen arbeiten, oder löst man so etwas doch besser anders?

@Lucki
Das sieht zwar sehr professionell aus, aber soweit bin ich noch lange nicht.

Grüße, Blacky


RE: UND-Funktion bringt Fehler - Lucki - 29.04.2014 07:26

So kompliziert ist es aber nicht, ich hätte das abschrecikende Wort "professionell" wohl besser nicht verwenden sollen. Der einzige hinterhältige Trick ist der: die 3 Led sind Elemente eines Clusters, den man aber nicht sieht, weil als Clusterfarbe sowohl für den Rahmen als auch für die Umrandung "transparent" gewählt wurde - und die Beschriftung wird auch nicht gezeigt.
Zusätzlich wurden die die Farbbereiche für das Drehspulinstrument entsprechend den vorgegebenen Grenzwerten mit einem Eigenschaftsknoten angepasst. Den brauchte man aber nur ein einziges Mal aufzurufen.