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 

Mit Digitalmodul Frequenz ermitteln



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!

31.10.2012, 23:00
Beitrag #1

ElRon Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Oct 2012

2011
2012
DE



Mit Digitalmodul Frequenz ermitteln
Hallo Leute,

schlage mich erst seit Kurzem mit LV um und bin ohne eure Hilfe mit meiner Aufgabe überfordert. Für einen Prüfstand muss ich die Messsoftware auf LabView schreibenConstruction. Dabei werden unter anderem folgende Sensoren ausgelesen:

17x Volumenstromsensor (max. fünf im Simultanbetrieb)
Signalausgabe der Sensoren:
fmax: 5000Hz
Signal: Rechteck
0: 0V
1: 22V
k: 84 Imp./l

Hardware:
NI 9178 cDAQ
Messmodul: NI 9425 (hat keine Counterfunktion)

Meine Fragen:
1. Ist es überhaupt möglich mit diesem Modul eine Frequenz zu messen? (Hab auf verschiedene Arten versucht einen Wert zu bekommen, aber habe nie etwas Vernünftiges erhalten.)

2. Falls eine Frequenzermittlung möglich ist, kann mir jemand einen Tipp geben, wie ich das Problem lösen könnte?

Ein vi folgt...

Danke und Gruss
ElRon
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
01.11.2012, 09:25 (Dieser Beitrag wurde zuletzt bearbeitet: 01.11.2012 09:26 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Mit Digitalmodul Frequenz ermitteln
Hallo ElRon,

um bei fmax=5kHz des Sensors alle Pulste mitzubekommen, musst du mit wenigstens 10kHz abtasten. Das 9425-Modul kann bis zu 140kHz, dies würde also funktionieren. Du müsstest dann selbst Pulse zählen, was aber relativ einfach ist.

Aber:
Das Modul selbst bietet keinen HW-Timer an (und deshalb auch keine Counter). Du musst also in Software entsprechend schnell (und deterministisch) abfragen! Und hier kommt das cDAQ ins Spiel: Ich weiß nicht, ob dieses einen HW-getakteten DI-Task für dein Modul erlaubt. Denn dies wäre die (aus meiner Sicht) einzige Möglichkeit, entsprechend schnell abzutasten...

Erstelle doch einfach mal in MAX einen Task und schaue, ob dies überhaupt (fehlerfrei) möglich ist!

Zitat:bin ohne eure Hilfe mit meiner Aufgabe überfordert.
Keine gute Voraussetzung für den Job... Wink

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.11.2012, 18:55
Beitrag #3

ElRon Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Oct 2012

2011
2012
DE



RE: Mit Digitalmodul Frequenz ermitteln
Hallo GerdW,

danke für deine Antwort. HW-getaktet funktioniert leider nicht, habs soeben versucht. Aber ich werde mir vier NI 9421 (Schmerz!) beschaffen, ich glaube das ist die beste Lösung. Trotzdem nimmt mich folgendes wunder:

- woher der Fehler in meinem vi rührt (siehe Abbildung).
- wie ich mein vi erweitern kann, damit die Pulse gezählt werden.

Zitat:
Zitat:Zitat:bin ohne eure Hilfe mit meiner Aufgabe überfordert.
Keine gute Voraussetzung für den Job... Wink
... aber lehrreich...Haare


Angehängte Datei(en) Thumbnail(s)
   

11.0 .vi  Signal_auslesen.vi (Größe: 26,41 KB / Downloads: 162)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.11.2012, 20:00 (Dieser Beitrag wurde zuletzt bearbeitet: 01.11.2012 20:01 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Mit Digitalmodul Frequenz ermitteln
Hallo ElRon,

zu deinem Bild:
- Hast du dir schon mal die Beispiele zu den DAQmx-Funktionen angeschaut? Dort wird überall der Fehlercluster durchverdrahtet. Das hat seine Gründe...
- Kann den Fehler hier bei mir nicht nachstellen. Ich vermute mal, es liegt an den gleichen Namen für Task und virtuellem Kanal...

- Warum jetzt gleich 4 9421-Module? Reicht dir nicht eines für deine 5 Sensoren?
- Bei Hardware-Fragen sollte man sich (gerade, aber nicht ausschließlich, als Anfänger) direkt von NI beraten lassen. (Tel. 089-7413130)

Wenn die Module mit dem Chassis direkt Counter bieten, kannst du Tasks erstellen, die dir direkt die Frequenz ausgeben. Schau dir die mitgelieferten Beispiele an!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.11.2012, 16:13
Beitrag #5

ElRon Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Oct 2012

2011
2012
DE



RE: Mit Digitalmodul Frequenz ermitteln
Hallo zusammen

@ GerdW, danke für deine Antwort!

Meine Ausgangslage hat sich wieder geändert:

Wie gesagt, ich habe mir versuchshalber ein NI9421 (8 DI 10kHz) gekauft. Damit lässt sich problemlos ein Frequenztask erstellen. Das Problem ist, sobald ein zählergestützte Erfassung erstellt wird, sind HW-mässig nur noch 4 DI möglich. Leider habe ich nicht genügend freie Slots, um alle 17 Sensoren zu erfassen. Daher kommt wieder das NI9425 (32DI 140kHz) ins Spiel...

...folgende ist meine Überlegung:

Mit dem DAQ-Assistent erstelle ich z.B. diesen Task:
Abtastrate: 10kHz
zu lesende Werte: 10000
Erfassungsmodus: kontinuierlich

Dann erhalte ich jede Sekunde ein 1D-Array mit 32*10'000 Werte (Siehe Screenshot).
Wenn ich bei diesem Array in jeder Spalte (roter Pfeil) die Anzahl der "1" bestimmen kann, lässt sich damit die Frequenz ermitteln. In meinem Screenshot ist eine Turbine an das Modul angeschlossen.
z.B. 2000 "1" -> 2000Hz Frequenz...

Nun meine Frage:

Wie kann ich aus diesem Array die Anzahl der "1" in jeder Spalte ermitteln? Habe schon alle Array-Funktionen ausprobiert und Onkel Google half mir leider auch nicht weiter.

Ich danke euch, freundliche Grüsse ElRon


Angehängte Datei(en) Thumbnail(s)
   

11.0 .vi  1D-Array-Sample.vi (Größe: 54,14 KB / Downloads: 162)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.11.2012, 16:42 (Dieser Beitrag wurde zuletzt bearbeitet: 07.11.2012 16:45 von GerdW.)
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Mit Digitalmodul Frequenz ermitteln
Hallo ElRon,

ich habe mal stur nach Kontexthilfe deine digitale Waveform in boolsche Arrays umgewandelt:
   
(Ich arbeite nur wenig mit Waveforms und gar nicht mit digitalen...)

Wie du aus dem Zählen der TRUE-Bits auf die Frequenz schließen willst, ist mir nicht ganz klar.
Wenn ich je 16 Bits habe wie
1.) TTFFTTFFTTFFTTFF und 2.) TTTTFFFFTTTTFFFF
dann hat Beispiel 1 eine höhere Frequenz als Beispiel 2 - aber beide die gleiche Anzahl TRUE-Bits...
Vielleicht solltest du besser (steigende) Flanken zählen?

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

ElRon Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Oct 2012

2011
2012
DE



RE: Mit Digitalmodul Frequenz ermitteln
Hallo GerdW,

die True Bits stellen die steigenden Flanken dar. Das NI-9425 Modul gibt mir beim Task "digitale Erfassung" die steigenden Flanken als Bits aus. Daher ist für mich nur die Anzahl der True-Bits in jeder Spalte relevant und nicht die Reihenfolge.

Die Funktion "Digitaldaten nach boolesches Array" hab ich auch versucht, bin aber daran gescheitert. Warum muss ich diese Funktion in eine For-Schleife packen (siehe Screenshot "DWDT ohne...", bzw. "DWDT mit...")? Das verstehe ich nichtFragezeichen Ich hab mal ein Waveform in der gleichen Grösse generiert. Diese kann ich ohne For-Schleife konvertieren...?

Jedenfalls komme, so glaube ich, mit deinem Tipp weiter... Nächste Woche stellt es sich heraus...

Danke und Gruss
elron


Angehängte Datei(en) Thumbnail(s)
           
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.11.2012, 08:52 (Dieser Beitrag wurde zuletzt bearbeitet: 08.11.2012 09:03 von Achim.)
Beitrag #8

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
RE: Mit Digitalmodul Frequenz ermitteln
(31.10.2012 23:00 )ElRon schrieb:  Hardware:
NI 9178 cDAQ
Messmodul: NI 9425 (hat keine Counterfunktion)

Kein einziges DI-Modul hat ne Counterfunktion integriert...das Modul ist nur die Schnittstelle zu den im Chassis integrierten 4 Countern. Diese sind gleichzeitig nutzbar, das reicht allerdings nicht für deine fünf Sensoren. Allerdings ist die Countermessung die beste (oder besser: einzig verlässliche) Methode, um Frequenzen der von dir verwendeten Sensoren zu erfassen. Kommst du evtl.doch mit nur vier Sensoren gleichzeitig aus?

Für die "Umschaltung" zwischen den Sensoren müsstest du z.B. ein Auswahl-Menü (?) bereitstellen oder das programmatisch machen, d.h. die entsprechenden DI-Kanäle jeweils einem programmatisch zur Laufzeit erzeugten Countertask zuordnen.


Zitat:Mit dem DAQ-Assistent erstelle ich z.B. diesen Task:
Abtastrate: 10kHz
zu lesende Werte: 10000
Erfassungsmodus: kontinuierlich

Dann erhalte ich jede Sekunde ein 1D-Array mit 32*10'000 Werte (Siehe Screenshot).
Wenn ich bei diesem Array in jeder Spalte (roter Pfeil) die Anzahl der "1" bestimmen kann, lässt sich damit die Frequenz ermitteln. In meinem Screenshot ist eine Turbine an das Modul angeschlossen.
z.B. 2000 "1" -> 2000Hz Frequenz...
Hm...ist mir auch nicht klar wie das funktionieren soll. Ich hab noch keine digitalen Waveforms verwendet. Wenn ich aber versuche, mit nem DI eine kontinuierliche DAQ zu machen, sagt mir der DAQ-Assi dass ich eine externe Taktquelle konfigurieren soll.


(07.11.2012 21:55 )ElRon schrieb:  Warum muss ich diese Funktion in eine For-Schleife packen (siehe Screenshot "DWDT ohne...", bzw. "DWDT mit...")?

Weil das VI halt nur mit einer Digitalen Waveform und nicht mit einem "Array of digital Waveforms" zurechtkommt!


A.

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.11.2012, 18:54
Beitrag #9

ElRon Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Oct 2012

2011
2012
DE



RE: Mit Digitalmodul Frequenz ermitteln
Hallo zusammen,

Es handelt sich um
Zitat:17x Volumenstromsensor
nicht um 5 Stück. Aber egal, das ändert nichts an meiner FehlüberlegungWackoHmm

Zitat:Dann erhalte ich jede Sekunde ein 1D-Array mit 32*10'000 Werte (Siehe Screenshot).
Wenn ich bei diesem Array in jeder Spalte (roter Pfeil) die Anzahl der "1" bestimmen kann, lässt sich damit die Frequenz ermitteln.
z.B. 2000 "1" -> 2000Hz Frequenz...

-> Funktioniert natürlich nur, wenn die Impulslänge bekannt ist. Man könnte sie messen, leider ist sie abhängig von der Frequenz...

Also doch:

Zitat:Wie du aus dem Zählen der TRUE-Bits auf die Frequenz schließen willst, ist mir nicht ganz klar.
Wenn ich je 16 Bits habe wie
1.) TTFFTTFFTTFFTTFF und 2.) TTTTFFFFTTTTFFFF
dann hat Beispiel 1 eine höhere Frequenz als Beispiel 2 - aber beide die gleiche Anzahl TRUE-Bits...
Vielleicht solltest du besser (steigende) Flanken zählen?
->GerdW, du hast vollkommen recht: meine Idee funktioniert nicht. Und genau das ist meine Aufgabe: Flanken zählen!

Gruss
elron
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.11.2012, 06:54 (Dieser Beitrag wurde zuletzt bearbeitet: 09.11.2012 07:00 von Achim.)
Beitrag #10

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
RE: Mit Digitalmodul Frequenz ermitteln
(08.11.2012 18:54 )ElRon schrieb:  Es handelt sich um
17x Volumenstromsensor
nicht um 5 Stück.

(08.11.2012 18:54 )ElRon schrieb:  Und genau das ist meine Aufgabe: Flanken zählen!

Ist mir schon klar...du musst 17 bedienen können, d.h. hw-mäßig anschließen, aber nur max. 5 Stück gleichzeitig auslesen. Meine Anregung geht dahin, eben nicht für alle vorab Tasks zu definieren, sondern dies zur Laufzeit (z.B. nach vorheriger Auswahl durch den Bediener) zu machen. Da gehen mit deinem Chassis aber eben nur 4 Stück gleichzeitig, weil das cDAQ eben nur so viele Counter hw-mäßig zur Verfügung stellt.

Wenn du wirklich nicht von den 5 Stück gleichzeitig abweichen kannst, dann brauchst du z.b. das hier:
http://sine.ni.com/nips/cds/view/p/lang/de/nid/1123
Allerdings hast du dann nicht genügend Pins zur Verfügung um alle Sensoren gleichzeitig auch anschließen zu können...dann müsstest du vorher ein Umschaltmodul einbauen...wenn du das nicht selber bauen willst, gibts das auch als PXI-Karte...dann müsstest du die Counterkarte auch in PXI ausführen und bräuchtest auch ein entsprechendes Chassis...ist halt ne Geldfrage!

Gruß
A.


EDIT:
Hab oben was durchgestrichen...ist zwar möglich, aber evtl. ist das für dich die bessere Alternative:
http://sine.ni.com/nips/cds/view/p/lang/de/nid/207368

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: