LabVIEWForum.de
Abbruchbedingung while-Schleife führt zu Fehler - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Abbruchbedingung while-Schleife führt zu Fehler (/Thread-Abbruchbedingung-while-Schleife-fuehrt-zu-Fehler)

Seiten: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16


RE: Abbruchbedingung while-Schleife führt zu Fehler - toxicomanie - 09.02.2015 11:30

Soweit ich sehe, funktionierts! Es ist natürlich jetzt noch nicht formatiert oder so, aber ich hab das mal probweise für 3 Kanäle ausprobiert und es werden drei Spalten beschrieben. Ist das so in Ordnung?


RE: Abbruchbedingung while-Schleife führt zu Fehler - GerdW - 09.02.2015 11:36

Hallo Franzie,

du willst jetzt aber nicht 11 Schieberegister für 11 Kanäle einführen? Wo arbeitest du mit einem 2D-Array in einem Schieberegister?

Und warum musst du bei jedem Kanal die Sampleanzahl prüfen? Bekommst du für deine Kanäle unterschiedlichen Samplezahlen vom DAQAssi geliefert???

Und warum musst du den DDT-Draht zweimal nach 2D-Array umwandeln? Hätte einmal nicht ausgereicht?


RE: Abbruchbedingung while-Schleife führt zu Fehler - toxicomanie - 09.02.2015 14:00

Hallo Gerd,

ja die 11 Schieberegister sind umständlich, vor allem weil es nach dem neuesten Stand des Projekts zu guter Letzt ja 61 wären Tongue Bei den letzten beiden Punkten gebe ich dir vollkommen recht.
Bei dem Schieberegister komm ich einfach nicht auf die Lösung :/ Ich arbeite mit einem 2D-Array bevor ich indiziere. Ich dachte mir jetzt, wenn ich die Teil-Arrays aus dem TRUE-case hinten wieder zusammenfüge, ins SRG reinstecke und vorne an die neuen Daten anhänge, dann hätte ich dasselbe Ergebnis, aber irgendwo habe ich wohl noch einen Denkfehler -.- Hilfst du mir bitte auf die Sprünge?

Ohje das liegt aber nicht daran dass ich den Index vergessen habe oder? O


RE: Abbruchbedingung while-Schleife führt zu Fehler - GerdW - 09.02.2015 14:07

Halo Franzie,

das hier funktioniert bei mir prima, um Messwerte mehrerer Kanäle in einem 2D-Array zu sammeln:
[attachment=52066]

Wie schon gesagt: einfach mit einem kleinen TestVI den Umgang mit 2D-Arrays üben!

Zitat:zu guter Letzt ja 61
Wir reden also von 61*6000 Werte im Buffer. Da wird es schon langsam sinnvoll, einen Buffer leer anzulegen und neue Werte nicht mittels BuildArray hinzuzufügen, sondern per ReplaceArraySubset einzutragen…


RE: Abbruchbedingung while-Schleife führt zu Fehler - toxicomanie - 09.02.2015 14:18

Das krieg ich gerade gar nicht auf die Reihe o.O Deine for-Schleife ist mein DAQ-Assistent sehe ich das richtig? Was macht denn die Konstante außerhalb der while-Schleife?


RE: Abbruchbedingung while-Schleife führt zu Fehler - GerdW - 09.02.2015 14:19

Damit initialisiert man das Schieberegister.
Das mit den Einsteigerkursen hatte ich aber schon erwähnt, oder?


RE: Abbruchbedingung while-Schleife führt zu Fehler - toxicomanie - 09.02.2015 15:21

Ich wollte sichergehen dass ich es richtig verstehe bevor ich es anwende.

Im Anhang jetzt der neueste Ansatz unter Verwendung deiner SRG-Aktion. Mein Problem ist jetzt, dass es mir die Messwerte doppelt in die Datei schreibt o.O Sonicht Was verkacke ich jetzt schon wieder?


Bezüglich deines Einwands mit der Buffergröße: man legt also einmalig einen Array an und schreibt immer wieder etwas dazu, anstatt jedes Mal alles neu zu schreiben?


RE: Abbruchbedingung while-Schleife führt zu Fehler - GerdW - 09.02.2015 15:30

Hallo Franzie,

Zitat:Mein Problem ist jetzt, dass es mir die Messwerte doppelt in die Datei schreibt Was verkacke ich jetzt schon wieder?
- Du hast das Prinzip der autoindizierenden Schleife nicht verstanden/verinnerlicht. Wie willst du mit deiner Programmierung jemals 60+ Kanäle verwalten?
- Du liest zwar Samples aus, löscht diese aber nicht aus deinem 2D-Array-Speicher…

Guck mal:
[attachment=52068]

Zitat:Bezüglich deines Einwands mit der Buffergröße: man legt also einmalig einen Array an und schreibt immer wieder etwas dazu, anstatt jedes Mal alles neu zu schreiben?
Man schreibt nicht "dazu", man trägt ein mittels ReplaceArraySubset!
Schreibe ich so undeutlich?


RE: Abbruchbedingung while-Schleife führt zu Fehler - toxicomanie - 09.02.2015 16:17

Nein ich glaube nicht dass es an deiner Ausdrucksweise liegt ich stell mich nur so unglaublich an -.- Ich will halt nichts falsch machen und frag lieber die dämlichsten Sachen nach bevor ich hier Tage damit beschäftigt bin meine Fehler auszubessern. Mir rennt eh ein bisschen die Zeit davon Tongue

Mit der ganzen Autoindizierung und allem hab ich jetzt aber ein bisschen das Ziel außer Augen verloren: eigentlich will ich ja nicht die Mittelwerte der Spannung, sondern des Stroms in der Datei, d.h. es fehlt noch die Umrechnung. Ich möchte jetzt gern die Reihenfolge der Kanäle ändern, damit nicht Kanal 10, sondern Kanal 1 die einzige Spannung ist, die ich messen will - per Rechtsklick lässt sich bei DAQmxread eine Konstante erstellen, mit "suchen" konnte ich die geforderten Kanäle auswählen - allerdings weiß ich jetzt nicht, wo ich die Konstante anschließen soll - hat das nicht eher was im SubVI verloren?


RE: Abbruchbedingung while-Schleife führt zu Fehler - GerdW - 09.02.2015 16:23

Hallo Franzie,

Zitat:eigentlich will ich ja nicht die Mittelwerte der Spannung, sondern des Stroms in der Datei
Das war doch nur eine klitzekleine Multiplikation, wenn ich mich richtig erinnere…

Zitat:Ich möchte jetzt gern die Reihenfolge der Kanäle ändern, damit nicht Kanal 10, sondern Kanal 1 die einzige Spannung ist, die ich messen will
Das macht man üblicherweise im Konfigurations-subVI.

Zitat:per Rechtsklick lässt sich bei DAQmxread eine Konstante erstellen, mit "suchen" konnte ich die geforderten Kanäle auswählen - allerdings weiß ich jetzt nicht, wo ich die Konstante anschließen soll
Auf welchen Eingang hast du den Rechtsklick gemacht?
Diese Konstante ist eine DAQmx-Task-Konstante, aber keine DAQmx-Kanal-Konstante. Eine DAQmx-Task-Konstante würde ich immer an den Task-Anschluss anschließen…
Mit einer Taskkonstante "StromundSpannung" können wir nicht viel anfangen, da wir die zugehörige Konfiguration nicht kennen!