LabVIEWForum.de - Frequenztest Echtzeit

LabVIEWForum.de

Normale Version: Frequenztest Echtzeit
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen.
Ich arbeite an einem Realtimeprojekt. Nutze ein PXI System mit einer PXI 6259 Karte für AIO und DIO.
Bei meinem Projekt ist unter anderem die Verarbeitung einer Frequenz notwendig. Ich habe mal ein Test VI erstellt um die Frequenz aufzunehmen (siehe Screenshot) Ich lege an den AI des Systems das Rechtecksignal eines Frequenzumrichters an. (high 5V; low 0,5V) Bei der Überschreitung eines Schwellwertes von 4V soll ein digitales high- und bei der Unterschreitung von 1V ein digitales low- Signal ausgegeben werden. Bist zu einer Frequenz von 5Hz kommt das System auch mit, aber bei höheren Frequenzen ist es ein beliebiger Wechsel von low auf high.
Wahrscheinlich handelt es sich um einen Anfängerfehler meinerseits, währe super wenn jemand für mich einen Hinweis hätte.
P.S.: ich vermute selber das es an der Einstellung der zeitgesteuerten Schleife hängt: 1kHz mit einer Periode von 1ms, wobei die CPU auch voll ausgelastet ist.
Gruß Vrijdag
Hallo Vrijdag,

Zitat:Ich arbeite an einem Realtimeprojekt. Nutze ein PXI System mit einer PXI 6259 Karte für AIO und DIO.
Bist du dir sicher mit der Aussage "Realtimeprojekt"?

Zitat:Ich lege an den AI des Systems das Rechtecksignal eines Frequenzumrichters an. (high 5V; low 0,5V)
Also anscheinend ein TTL-Signal. Warum also kein Digitaleingang dafür benutzen?

Zitat:Bist zu einer Frequenz von 5Hz kommt das System auch mit, aber bei höheren Frequenzen ist es ein beliebiger Wechsel von low auf high.
Wahrscheinlich handelt es sich um einen Anfängerfehler meinerseits
Du arbeitest mit Abfrage von Einzelwerten. Der Overhead dabei ist immens und wird kaum in einer 1kHz-Schleife funktionieren.
Und noch schlimmer: in jeder Iteration werden neue Tasks angelegt (schlimm genug), die dann auch nicht gelöscht werden (ganz schlimm)...

Zitat:ich vermute selber das es an der Einstellung der zeitgesteuerten Schleife hängt: 1kHz mit einer Periode von 1ms, wobei die CPU auch voll ausgelastet ist.
Nein, es liegt daran, was du in der Schleife machst...
Hallo Gerd

Bei der Aussage, dass ich an einem Echtzeitprojekt arbeite, bin ich mir absolut sicher.
Ok die Sache mit den DIO hätte ich noch genauer beschreiben können. Im eigentlichen Programm (dies soll ja nur ein Test sein) liegt kein TTL- Signal an. In dem Fall kann es zu vielen verschiedenen Signalverläufen kommen.
Ich werde mich jetzt nochmal an eine neue Version machen und deine, im dritten Punkt, angesprochenen Fehler bearbeiten. Mal sehen zu welchem Ergebnis ich komme.
Danke nochmal.
Bin, schon wieder da.
Vielen Dank Gerd! Habe mich an deine Kritik gehalten und siehe da es funktioniert super!
Eine Frage hätte ich noch, als du von der Abfrage von Einzelwerten sprachst: Ich habe jetzt mal 1Kanal NSamples und 1Kanal mit 1Sample verglichen und keinen Unterschied feststellen können. Worin liegt der genau?
Ach ja, jetzt versteh ich auch warum die CPU immer voll ausgelastet war.
Gruß Vrijdag
Hallo Vrijdag,

Zitat:Ich habe jetzt mal 1Kanal NSamples und 1Kanal mit 1Sample verglichen und keinen Unterschied feststellen können. Worin liegt der genau?
- Du stellst nirgends die Anzahl der Samples pro Kanal ein...
- Du verwendest weiterhin nur einen Wert pro Read (falls mehr Werte gelesen werden, schmeißt du die unbenutzt weg)

Zitat:Ach ja, jetzt versteh ich auch warum die CPU immer voll ausgelastet war.
Learning by doing Wink

Deinen tollen Vergleich kann man übrigens durch die InRange&Coerce-Funktion ersetzen...
Referenz-URLs