INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Pulse zählen Durchflussensor mit Hilfe einer Waveform



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!

19.06.2017, 10:50
Beitrag #1

Aisser Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Dec 2016

LV 2015
2016
EN


Deutschland
Pulse zählen Durchflussensor mit Hilfe einer Waveform
Hallo zusammen,

ich habe die Aufgabe von Durchflusssensoren die Impulse zu zählen, die Durchflusssensoren sind auf DI-Karten geführt. (Hardware Ni cDAQ-9137)
Nun habe ich mir gedacht, dass ich die digitalen Eingänge einfach als Waveform aufzeichne und anschließend mit Hilfe des Waveform Peak Detection VI einerseits die Pulse zähle und andererseits Rückschlüsse auf den Durchfluss bekomme.
Die Aufzeichnung soll 24 DI umfassen.
Da diese Testläufe unter anderem auch 3 Wochen dauern können habe ich eine Frage zu den Waveformen.
Wo werden die Waveformen gespeichert? Und bekomme ich Probleme mit dem Arbeitsspeicher bei meiner angedachten Lösung?

Vielen Dank und Liebe Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
19.06.2017, 11:48
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Pulse zählen Durchflussensor mit Hilfe einer Waveform
Hallo Aisser,

Zitat:Da diese Testläufe unter anderem auch 3 Wochen dauern können habe ich eine Frage zu den Waveformen.
Wo werden die Waveformen gespeichert? Und bekomme ich Probleme mit dem Arbeitsspeicher bei meiner angedachten Lösung?
Wenn du Daten von 3 Wochen im Speicher halten wolltest, bekämest du sicher Probleme…
Aber warum willst du das?

Alles, was du brauchst, ist doch der jeweils aktuelle Zählerstand!
Also: DI-Daten einlesen, auswerten, jeweiligen Zählerstand aktualisieren. Damit benötigst du für 24 Zähler eben 24*4 Byte (I32) an Speicher…

Außerdem: Wozu die WaveformPeakDetection? Du musst doch nur digitale Flanken zählen - schau dir mal die Funktion PtByPt-BooleanCrossing an!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.06.2017, 13:50
Beitrag #3

Aisser Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Dec 2016

LV 2015
2016
EN


Deutschland
RE: Pulse zählen Durchflussensor mit Hilfe einer Waveform
Vielen Dank für die schnelle Antwort, ich denke dass ich mir die Boolean Crossing selbst schreiben muss, da ich nur das Base Development System benutze.

Ich bin nun mit etwas Internetrecherche auf eine Lösung gekommen, welche aber jedoch noch einige Fragen mit sich bringt.
Und zwar wandle ich die Waveform zuerst in ein Boolean Array um, anschließend folgt ein OrArrayElements VI um dann die Flanken zählen zu können.
Leider ist mir nicht klar, was die Umwandlung in ein Boolean Array macht, ich dachte es werden einfach alle Messpunkte als Array gespeichert.
Weiters ist mir die Funkiton des OrArrayElements nicht klar, in der Hilfe steht, dass es FALSE liefert, wenn alle Elemente False sind, ansonsten TRUE.
Ich möchte nun keinen Code verwenden, wo ich die Funktion nicht verstehe, vielleicht kann mir jemand eine kurze Erklärung geben.
Screenshot befindet sich im Anhang.

Vielen Dank


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.06.2017, 13:56 (Dieser Beitrag wurde zuletzt bearbeitet: 19.06.2017 13:58 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Pulse zählen Durchflussensor mit Hilfe einer Waveform
Hallo Aisser,

Zitat:Und zwar wandle ich die Waveform zuerst in ein Boolean Array um, anschließend folgt ein OrArrayElements VI um dann die Flanken zählen zu können.
Das mit dem "in ein Array umwandeln" ist ja ok, aber wozu die OR-Funktion?

Zitat:Leider ist mir nicht klar, was die Umwandlung in ein Boolean Array macht, ich dachte es werden einfach alle Messpunkte als Array gespeichert.
Macht es doch auch!?

Zitat:Weiters ist mir die Funkiton des OrArrayElements nicht klar, in der Hilfe steht, dass es FALSE liefert, wenn alle Elemente False sind, ansonsten TRUE.
Du weißt schon was eine OR-Funktion macht? (Das ist eine grundlegende boolsche Rechenoperation…)
Die von dir gewählte Funktion führt dieses OR für alle Array-Elemente durch, Ergebnis wie laut LabVIEW-Hilfe!

Zitat:Ich möchte nun keinen Code verwenden, wo ich die Funktion nicht verstehe, vielleicht kann mir jemand eine kurze Erklärung geben.
Sinnvoller wäre es, wenn du dir erstmal überlegst, was du überhaupt und dann auch "wie" machen willst - bevor du irgendwas mit dir unbekannten Funktionen programmierst!
(Stift & Papier und dann ein Ablaufschema entwerfen!)

Tipp: eine steigende Flanke erkennt man an einem TRUE-Wert, der auf einen FALSE-Wert folgt. (In LabVIEW benötigt man dafür ein Schieberegister oder eine Feedbacknode…)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.06.2017, 14:22
Beitrag #5

Aisser Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Dec 2016

LV 2015
2016
EN


Deutschland
RE: Pulse zählen Durchflussensor mit Hilfe einer Waveform
Zitat:Das mit dem "in ein Array umwandeln" ist ja ok, aber wozu die OR-Funktion?

Die OR-Funktion habe ich ja nicht verstanden und mich aus diesem Grund gewundert, warum die Flankenauswertung funktioniert.
Die bestehende Anlage baut auf diesen Code auf, aus diesem Grund wollte ich erstmals die Funktion verstehen.

Ich werde nun versuchen deinen Tipp anzuwenden und bei dem gewandelten Array auf einen Wechsel von FALSE auf TRUE achten.
Erstellt die Konvertierung hierbei nur ein Boolean-Array zwischen zwei Konvertierungen?
Ich habe versucht, dass Boolean Array auszulesen, werde aber hierbei nicht schlauer, ich vestehe auch nicht, warum hierfür ein 2D-Boolean Array erstellt werden muss.

Vielen Dank
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.06.2017, 14:50
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Pulse zählen Durchflussensor mit Hilfe einer Waveform
Hallo Aisser,

Zitat:Erstellt die Konvertierung hierbei nur ein Boolean-Array zwischen zwei Konvertierungen?
Häh? "die Konvertierung zwischen zwei Konvertierungen?" Häh?
Hmm

Zitat:Ich habe versucht, dass Boolean Array auszulesen, werde aber hierbei nicht schlauer, ich vestehe auch nicht, warum hierfür ein 2D-Boolean Array erstellt werden muss.
Ich auch nicht, aber ich arbeite auch nie mit den digitalen Waveforms…
Wenn deine digitale Waveform genau einen digitalen Kanal enthält, dann sollte das 2D-Bool-Array auch nur eine Zeile (oder Spalte?) enthalten. Wenn du mehrere digitale Kanäle in der Waveform hast, dann sollte jede Zeile (oder Spalte?) einem Kanal entsprechen…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.06.2017, 15:21
Beitrag #7

Aisser Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Dec 2016

LV 2015
2016
EN


Deutschland
RE: Pulse zählen Durchflussensor mit Hilfe einer Waveform
Ich glaube, dass die Waveform bei jedem DAQ read neu beschrieben wird, daraus folgt, dass bei jedem DAQ read nach der Wandlung auch mein Array mit den aktuellen Werten befüllt wird.
Wie könnte ich nun die Länge des Arrays raus finden? Die size Funktion liefert mir immer nur den Wert 1.
Ich bin langsam echt am verzweifeln mit diesem Waveform->Array Problem.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.06.2017, 15:34
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Pulse zählen Durchflussensor mit Hilfe einer Waveform
Hallo Aisser,

Zitat:Ich glaube, dass die Waveform bei jedem DAQ read neu beschrieben wird, daraus folgt, dass bei jedem DAQ read nach der Wandlung auch mein Array mit den aktuellen Werten befüllt wird.
THINK DATAFLOW: da kommt ein Draht aus dem DAQmxRead heraus, der neue Daten enthält…
(Da wird keine Waveform "neu beschrieben"…)

Zitat:Wie könnte ich nun die Länge des Arrays raus finden? Die size Funktion liefert mir immer nur den Wert 1.
Um die Größe eines Arrays zu bestimmen, wird ArraySize verwendet.
Wenn dieses ausgibt, dass das Array genau "1" Element groß ist, dann wird das wohl so sein…

Zitat:Ich bin langsam echt am verzweifeln mit diesem Waveform->Array Problem.
Wo kommt denn deine Waveform her? Mit welchen Parametern rufst du DAQmxRead auf?
Verwendest du etwa einen "x chan 1 sample"-Modus? Dann solltest du dich allerdings auch nicht wundern, wenn dein Array hinterher nur 1 Sample enthält…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.06.2017, 15:38 (Dieser Beitrag wurde zuletzt bearbeitet: 19.06.2017 15:38 von jg.)
Beitrag #9

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Pulse zählen Durchflussensor mit Hilfe einer Waveform
(19.06.2017 15:21 )Aisser schrieb:  Wie könnte ich nun die Länge des Arrays raus finden? Die size Funktion liefert mir immer nur den Wert 1.
Wenn man wüsste, wie du deinen DAQmx-Task konfiguriert hast...
Und welches DIO-Modul du verwendest...

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.06.2017, 16:12 (Dieser Beitrag wurde zuletzt bearbeitet: 19.06.2017 16:21 von Aisser.)
Beitrag #10

Aisser Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Dec 2016

LV 2015
2016
EN


Deutschland
RE: Pulse zählen Durchflussensor mit Hilfe einer Waveform
Zitat:Wo kommt denn deine Waveform her? Mit welchen Parametern rufst du DAQmxRead auf?
Verwendest du etwa einen "x chan 1 sample"-Modus? Dann solltest du dich allerdings auch nicht wundern, wenn dein Array hinterher nur 1 Sample enthält…

Ich habe gerade meine Datenaufzeichnung angseschaut und feststellen müssen, dass ich auf NChan und 1 Sample eingestellt habe, erklärt nun auch, warum mein Array nur die Größe 1 besitzt.

Vielen Dank für den Hinweis.

Ich habe im Anhang einmal meine aktuelle DAQ-Read angehängt.

Ich zeichne hier zum testen nur die Eingänge einer Digitalen Ausgangskarte auf.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Erzeugung der Pulse mit NI USB 6002(DAQmx) Felix777 10 10.243 10.08.2015 22:49
Letzter Beitrag: jg
  Durchflusssensor - Pulse zählen/Frequenz messen zig 46 27.891 07.10.2014 09:56
Letzter Beitrag: zig
  Pulsfolgen mit Veränderebarer frequenz und exakter anzahl der pulse phz 4 4.547 12.03.2013 09:37
Letzter Beitrag: phz
  Pulse-Frequenzy-Divider mit NI PCIe-6351 jo0 1 3.331 18.05.2011 18:39
Letzter Beitrag: jg
  Pulse zählen dualsbiker 4 6.000 28.04.2011 21:02
Letzter Beitrag: GerdW
  Schnelle Pulse erzeugen mit NI-PCIx-6351 Bjoern_LPT 17 13.045 15.02.2011 13:18
Letzter Beitrag: jg

Gehe zu: