Hallo an alle,
ich beschäftige mich seit kurzem mit LV und möchte Drehzahl über eine Lichtschranke erfassen. Die Lichtschranke ist an einem DI angeschlossen. Mit der Drehzahl will ich einmal die Dauer des Test bestimmen z.B. immer wenn ich ein Impuls bekomme, soll er von 1000 Umdr. substrahiert werden. Das zweite Problem ist die Drehzahl/min zu ermiteln für die Drehzahlregelung.
Das soll eigentlich nicht so schwer sein, aber ich komme einfach nicht weiter.
Ich hab da ein Bild angehängt für die Dauer des Tests.
hoffentlich hat jemand einen Vorschlag.
Hallo,
erzähl mal was über die von dir verwendete Mess-Hardware (d.h. welche DAQ-Karte hast du). Normalerweise würde man das ja eher über Counter machen.
MfG, Jens
Für die Drehzahlmessung solltest du einen Counter verwenden, der die digitalen Signale "zählt" bzw. auswertet. Dafür gibts jede Menge Beispiele in der LV-Hilfe!
Gruss
Achim
' schrieb:Für die Drehzahlmessung solltest du einen Counter verwenden, der die digitalen Signale "zählt" bzw. auswertet. Dafür gibts jede Menge Beispiele in der LV-Hilfe!
Gruss
Achim
Ich hab eine pci 6229, die hat 2 counter. Ich hab jetzt einen Virt channel erzeugt, für Flankenzählung und wenn ich den in MAX ausführe, zählt errichtig. aber in LV habe ich es noch nicht hingekriegt.
was muss ich nach dem Virtuellen Channel anschliessen, damit ich an den Werten komme.
mfg martin
Hi,
ich glaube den Flankenzähler kannst du dir sparen...du kannst die Zählung direkt über die Anschlüsse des Counters machen, das dürften PFIxx-Leitungen sein...Schau dir dazu mal die Beschreibung des Counters im Handbuch zu deiner HW an...du musst vermutlich was am Gate und an der Source des Counters anschließen (Gate dürfte für den internen Taktgeber sein, das kann man intern "routen", Source für dein Signal...oder war's umgekehrt?) Wenn du den zweiten Counter zusätzlich verwendest, wird deine Messung genauer, da dieser zweiter Counter als Taktgeber läuft. Dafür gibts aber in der LV-Hilfe Beispiele und auch unter zone.ni.com!
Gruss
Achim
erstmal danke für die schnellen Antworten
ich hab jetzt mir ein Beispiel angekuckt und einbißchen verändert(im Anhang).
es scheint zu funktionieren
das nächste Problem ist die Daten von der Messung in einem Puffer zu speichern, damit ich am ende des Tests (Dauer einige Stunden), die Werte 5 min vor dem Stop gespeichert habe.
mfg martin
Hi,
schreib die Werte in ne Datei! In nem Pufferarray kannst du sie mit BuildArray + nem Schieberegister sammeln, und alle x Minuten (Timer abfragen) schreibst du sie weg...immer wieder die Datei überschreiben, "Replace"-Abfrage aber deaktivieren!
Fünf Minuten in nem Array sammeln gibt aber auch ne ganze Menge Daten...evtl. schreibst du einfach kontinuierlich die Daten weg und extrahierst bei Testende die Zeilen für die letzen fünf Minuten aus der eingelesenen Datei...
Gruss
Achim
Hi,
das mit dem Array und dem Schiebereg. habe ich gemacht, aber das mit dem Zurücksetzen weiss ich nicht wie
gruss martin
wenn ich das VI Messwerte in Datei schreiben benutze, mit welchem Programm kann ich dann die öffnen
Was zurücksetzen? Wenn du das Array meinst, dann füge ein Casestruktur oder einen Eventcase ein, durch die du das Array schleifst...in einem Fall wirds einfach durchgereicht, im anderen wird eine leere Array-Konstante angeschlossen!
Ich würde nicht "Messwerte schreiben nehmen" (schon gar kein Express-VI !) sondern "Write Spreadsheet"...dann kannst du mit "Read Spreadsheet" wieder einlesen!