22.12.2009, 12:55
Beitrag #1
|
Viewer2000
LVF-Grünschnabel
Beiträge: 14
Registriert seit: Dec 2009
8.5
-
de
73563
Deutschland
|
In Array nacheinander kontinuierlich schreiben
Hallo,
Ich arbeite an einem Problem an dem ich nicht weiterkomme: Ich möchte gern nacheinander eintreffende Werte in ein Array schreiben, um damit eine Art fortlaufende Zwischenauswertung zu ermöglichen, die insbesondere das Kriterium für ein Messende dann erkennt.
Die Daten werden vom DAQ-Assistenten bereitgestellt (ich weiss, nicht professionell...). Ich scheitere nun am Versuch z.B. die letzten 10 Werte dynamisch, quasi wie ein Schieberegister, in einem Array zur Auswertung vorzuhalten. Hat hier jemand ne Idee.
Vielen Dank im Voraus!!
|
|
|
22.12.2009, 13:21
(Dieser Beitrag wurde zuletzt bearbeitet: 19.03.2010 13:06 von dimitri84.)
Beitrag #2
|
|
|
22.12.2009, 13:25
Beitrag #3
|
Viewer2000
LVF-Grünschnabel
Beiträge: 14
Registriert seit: Dec 2009
8.5
-
de
73563
Deutschland
|
In Array nacheinander kontinuierlich schreiben
hey Danke für die schnelle Antowrt.
Ich werte Temperaturen an einem Messstand aus. Wenn sich der Temperaturverlauf nur noch unwesentlich ändert, also zum Beispiel 10 aufeinanderfolgende Werte sich um weniger als 0,5 Grad unterscheiden, soll die Messung beendet werden.
|
|
|
22.12.2009, 13:33
Beitrag #4
|
Viewer2000
LVF-Grünschnabel
Beiträge: 14
Registriert seit: Dec 2009
8.5
-
de
73563
Deutschland
|
In Array nacheinander kontinuierlich schreiben
...also ich hab mich bisher auf die Konvertierung dynamischer Daten nach DBL konzentriert, um in dem dann erscheinenden Menü "1D-Array mit Skalaren - automaisch" nützen zu können. Aber leider bisher ohne Erfolg...
|
|
|
22.12.2009, 13:36
(Dieser Beitrag wurde zuletzt bearbeitet: 22.12.2009 13:45 von dimitri84.)
Beitrag #5
|
dimitri84
Astronaut
Beiträge: 1.496
Registriert seit: Aug 2009
2020 Developer Suite
2009
DE_EN
53562
Deutschland
|
In Array nacheinander kontinuierlich schreiben
' schrieb:Ich werte Temperaturen an einem Messstand aus. Wenn sich der Temperaturverlauf nur noch unwesentlich ändert, also zum Beispiel 10 aufeinanderfolgende Werte sich um weniger als 0,5 Grad unterscheiden, soll die Messung beendet werden.
Vielleicht kommst du dann auch mit 2 gewöhnlichen Schieberegistern zurecht:
Schick einfach jede Schleifeniteration den aktuellen Messwert in ein SR und überprüfe jedes Mal das deltaT (aktueller Wert zum letzten Wert). Wenn das deltaT kleiner 0.5 ist dann inkrementierst du ein zweites Schieberegister (Counter). Ist der Counter bei 10 angekommen, so ist deine Abbruchbedingung erfüllt. Wenn delta mal größer 0.5 musst du den Counter wieder auf Null setzten. Es macht allerdings einen Unterschied, ob alle 10 Werte in einem gewissen Bereich liegen müssen (Ringpuffer nötig) oder ob 10 Mal hintereinander das detltaT kleiner Grenzwert ist. Musst du abwegen.
Aber da du ja noch mehr auswerten willst, kommst du wohl an so einem Puffer nicht vorbei.
Gruß dimitri
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
|
|
|
22.12.2009, 13:44
Beitrag #6
|
Viewer2000
LVF-Grünschnabel
Beiträge: 14
Registriert seit: Dec 2009
8.5
-
de
73563
Deutschland
|
In Array nacheinander kontinuierlich schreiben
Super, genau das war meine Idee der Umsetzung. Deiner Beschreibung zufolge wär für mein Problem die SR-Lösung ausreichend. Nun habe ich in der Suche bereits nach möglichen fertigen Modulen zu Schieberegistern / shifting register erfolglos gesucht, auch meine intensiven Bemühungen selbst eines zu generieren blieben erfolglos. LabVIEW akzeptiert wohl nicht ohne Weiteres Rückkopplungen wie mir scheint... Hast du mir hierzu einen Tipp?
|
|
|
22.12.2009, 13:56
(Dieser Beitrag wurde zuletzt bearbeitet: 22.12.2009 13:57 von dimitri84.)
Beitrag #7
|
|
|
22.12.2009, 14:32
Beitrag #8
|
Viewer2000
LVF-Grünschnabel
Beiträge: 14
Registriert seit: Dec 2009
8.5
-
de
73563
Deutschland
|
In Array nacheinander kontinuierlich schreiben
ah ok, Danke. Aber was ist der "schiebende" Impuls dieses Registers. Die Zählvariable in Kombi mit einer Verzögerung, oder bereits automatischerweise ein neuankommender Wert? Und wie kann ich bei einem zweiten Register den Inkrementschritt der Zählvariable auslösen??
Wär für ne Antwort sehr dankbar.
|
|
|
22.12.2009, 14:42
Beitrag #9
|
|
|
22.12.2009, 16:53
|
Viewer2000
LVF-Grünschnabel
Beiträge: 14
Registriert seit: Dec 2009
8.5
-
de
73563
Deutschland
|
In Array nacheinander kontinuierlich schreiben
Stimmt, da hast wohl recht
Aber eines ist mir nach wie vor unbegreiflich. Ich kann jetzt einen Messwert seinem Vorgänger gegenüberstellen (Leitung durch eine bis 1 zählende For-Schleife als Schieberegister, die gerade um Dauer der Messwertabstände verzögert ist) ABER, ich kann diese Werte nicht voneinander subtrahieren.
Die Multiplikation geht, Addition auch (wenn ich einen Summand mit -1 multipliziere, dann wieder nicht...) sehr komisch.
offensichtlich muss das was mit dem Datenformat zu haben, weis hier jemand wichtige Restriktionen???
|
|
|
| |