LabVIEWForum.de
Drehzahlerfassung - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Drehzahlerfassung (/Thread-Drehzahlerfassung--19334)



Drehzahlerfassung - stauder-trinker - 29.06.2011 17:14

Hallo zusammen,

Ich versuche eine Drehzahl mittels Reedkontakt zuerfassen. Dazu steht mir folgende Hardware zur Verfügung: NI USB-9162 in Verbindung mit NI cRrio-9215 mein alter Laptop mit XP

Versuchsaufbau:
1.Leitung vom Reedkontakt geht in ai0 - zweite Leitung geht über einen 1,5kohm Wiederstand an die - Seite einer 1,5V Batterie dann von der + Seite in ai0+

kommt nun ein Magnet am Reedkontackt vorbei ist der Stromkreis geschlossen

Nun Lese ich im Blockdiagramm aus meinem DAQ-Assi die Daten aus und mache einen Vergleich ob der erhaltene Wert > als 1,2 ist (dann wäre es true in der case strukur) bei true wird nun immer +1 addiert

Das Problem liegt nun darin das wenn der Magnet in der nähe des Reedkontacktes ist der Zähler hochschnellt da Einsen dazu addiert werden solange der Kontackt geschlossen ist - richtig wäre aber das die nächste Eins erst addiert wird wenn die Spannung einmal abgefallen ist - weiß aber nicht wie ich das umsetzen kann... das ich blutiger Anfänger bin brauch ich wohl nicht erwähnen...
Für kleine Denkanschubser wäre ich sehr dankbar!

Meine ersten gehversuche häng ich mal an...



[attachment=34433]


RE: Drehzahlerfassung - frankyp - 30.06.2011 06:03

Ohne mir dein VI angesehen zu haben versuch ich mich mal(leider kein LabVIEW auf diesem Rechner).

Du vergleichst ja ob dein gemessener Wert >1,2 ist. Versuch doch mal da eine Rückkopplung(Zeitverschiebung -1/Z^-1) anzuschließen(Strukturen), so kannst du dir den Wert eine Periode lang "merken".
Jetzt könntest du noch überprüfen, ob dein gemessener Wert < X ist(keine Ahnung was da ein sinnvoller Wert ist, musst wohl ausprobieren, vielleicht 1V?).
Die beiden Ausgänge dieser Vergleichsabfrage dann noch mit dem logischen UND verknüpfen und du bekommst nur dann ein TRUE, wenn dein vorheriger Messwert >1,2 ist und dein momentaner < 1 ist.

Könnte klappen.

Ahja, zu initialisieren ist nie verkehrt, also schließ doch einfach einen Wert kleiner als 1,2 an den Initialisierungsanschluss deiner Rückkopplung...


RE: Drehzahlerfassung - NWOmason - 30.06.2011 06:50

(29.06.2011 17:14 )stauder-trinker schrieb:  das ich blutiger Anfänger bin brauch ich wohl nicht erwähnen...

Dafür habe ich gerne diesen beiden Links parat:

Getting Started with NI LabVIEW Student Training
http://zone.ni.com/devzone/cda/tut/p/id/7466

Introduction to NI LabVIEW - Learn LabVIEW Basics
http://www.ni.com/gettingstarted/labviewbasics/

Die Zeit dafür zu investieren wird sich auszahlen Wink


(29.06.2011 17:14 )stauder-trinker schrieb:  Meine ersten gehversuche häng ich mal an...

Lass am besten erstmal die lokalen Variablen so weit es geht weg. Die verursachen Race Conditions und machen den Code meistens schlechter lesbar.

(29.06.2011 17:14 )stauder-trinker schrieb:  Das Problem liegt nun darin das wenn der Magnet in der nähe des Reedkontacktes ist der Zähler hochschnellt da Einsen dazu addiert werden solange der Kontackt geschlossen ist - richtig wäre aber das die nächste Eins erst addiert wird wenn die Spannung einmal abgefallen ist - weiß aber nicht wie ich das umsetzen kann... das ich blutiger Anfänger bin brauch ich wohl nicht erwähnen...

Im Prinzip musst du dir bei erstmaliger Überschreitung des Wertes, dies merken; dabei ist das Schieberegister das Mittel deiner Wahl.

(29.06.2011 17:14 )stauder-trinker schrieb:  Für kleine Denkanschubser wäre ich sehr dankbar!

So in der Art müsste es funktionieren, wobei der Wert von der Messwerterfassung hier nur simuliert ist:

[attachment=34435]

[attachment=34436]

Beste Grüße,
NWO


RE: Drehzahlerfassung - snuz - 30.06.2011 06:57

oder so...

p.s. Messwert muss verbunden sein...