Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
RE: Abbruchbedingung while-Schleife führt zu Fehler
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?
09.02.2015, 11:36 (Dieser Beitrag wurde zuletzt bearbeitet: 09.02.2015 11:36 von GerdW.)
RE: Abbruchbedingung while-Schleife führt zu Fehler
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 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?
09.02.2015, 14:07 (Dieser Beitrag wurde zuletzt bearbeitet: 09.02.2015 14:12 von GerdW.)
RE: Abbruchbedingung while-Schleife führt zu Fehler
Halo Franzie,
das hier funktioniert bei mir prima, um Messwerte mehrerer Kanäle in einem 2D-Array zu sammeln:
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
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
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 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
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:
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
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
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
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!