Getaktete Erfassung digitaler Daten und unmittelbare Auswertung zur Drehgeschwindigkeitsbestimmung
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!
17.08.2010, 14:01 (Dieser Beitrag wurde zuletzt bearbeitet: 17.08.2010 14:26 von ColtSeavers.)
Getaktete Erfassung digitaler Daten und unmittelbare Auswertung zur Drehgeschwindigkeitsbestimmung
Hi allerseits,
ich habe folgendes Problem:
für eine Drehgeschwindigkeitsmessung nehme ich mit einer NI 9421-Messkarte im NI cDAQ-9178-Chassis je Sekunde 1000 Boolesche Samples bei einer Taktfrequenz von 2,5 kHZ auf. (bzw. nehme ich einen Signalverlauf auf und wandle ihn in ein Array um). Dieser Teil meines VIs funktioniert auch. bis zu der For-Schleife bekomme ich Booolesche Arrays die auch sehr sinnvoll aussehen, das hab ich mit einer Sonde überprüft.
Das Problem ist allerdings, dass die FOR-Schleife zum Abarbeiten dieser Arrays nicht ausgeführt wird. In dieser FOR-Schleife sollen die Arrays so ausgewertet werden, dass die TRUEs gezählt werden, und zwar nur diejenigen, die einem FALSE folgen.
(Ich habe an der Welle, deren Drehzahl gemessen werden soll, 3 Magneten, die einen Hall-Sensor passieren. Diese Magneten stehen in unterschiedlichen Abständen zueinander, um später die Drehrichtung zu bestimmen (nur zur Rahmeninfo, für dies VI erstmal egal), dieser Aufbau ist auch nicht veränderbar, da er so in einer Pumpe vorhanden ist. Daher kann ich auch nicht über Frequenzmessung gehen, da ich keine regelmäßige Frequenz habe)
Eine Counter-Karte habe ich auch nich, daher ist dieses Prinzip das einzige was mir bisher eingefallen ist: eine bestimmte Anzahl von Samples bei definierter Frequenz abtasten und dann unmitelbar auswerten zu lassen.
Ich kann mir bisher nicht erklären, warum die FOR-Schleife nicht ausgeführt wird.
Kann es an der Verschachtelung der FOR-SCHleife in der while-Schleife liegen?
Oder kann es sein , dass die 1000 Samples nicht abgearbeitet werden können bis das nächste Array ankommt und ich somit irgendwie in Konflikt mit dem Timer der WHILE-Schleife komme?
ich habe es allerdings auch schon mit weniger Samples (500) ausprobiert und bekomme das gleiche Ergebnis: Hinter der For-Schleife bekome ich immer eine 0, da diese nicht richtig ausgeführt wird, wenn sie überhaupt ausgeführt wird.
(Die WHILE-Schleife ist im Moment erstmal nur dazu da, dass ich in richtigem Zeitabstand die Arrays auslese, allerdings wird die FOR-Schleife auch ohne die WHILE-Schleife, also bei ienmaligem Durchlauf nicht richtig ausgeführt)
zusammenfassend ist also mein GRUNDPROBLEM an dieser Stelle:
Ich bekomme Boolesche Arrays die ich analysieren möchte in der FOR-Schleife, aus irgendeinem mir bisher unerfindlichen Grund, wird diese FOR-Schleife allerdings nicht ausgeführt. Ich habe auch schon die automatische Indizierung am Schleifeneingang probiert, ohne eben die Schleifen-Zahl der FOR-Schleife explizit anzugeben, habe aber das gleiche Ergebnis bekommen.
So, ich glaube ich bin auch schon nur noch am schwafeln und hab mich in vielen Sachen schon wiederholt. Die VIs sind im Anhang.
Getaktete Erfassung digitaler Daten und unmittelbare Auswertung zur Drehgeschwindigkeitsbestimmung
Hallo,
ich vermute mal, Du hast Dein Problem inzwischen gelöst............. - aber hier mal meine Herangehensweise, wenn etwas nicht so geht - wie ich ( oder Ilsebill ) es will - die Fischköpfe verstehen das sicher.
Da ich z.Zt. kein Daqmx installiert habe - hier das Ganze ohne Deinen Input mit Simulations-Daten.
Zerlege doch einfach das zunächst nicht funktionable Programm in entsprechende Teile die sinnvollerweise durch die
"Diagram Disable Structure" - so heisst das Ding in der english Version - ausgeblendet werden und füttere die zickigen Parts mit Simulationsdaten. Das hilft fast immer.