LabVIEWForum.de - Transientenrecorder unter cRio

LabVIEWForum.de

Normale Version: Transientenrecorder unter cRio
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Leute,
ich möchte eine Datenerfassung unter cRIO programmieren.
Dazu verwende ich unter anderem das cRio- Modul 9223 in einem 9104- Chassis.
Das Modul NI9223 ist ja schön schnell mit 1 MS. das benötige ich auch, weil ich schnell auf Signale reagieren muss. Es soll vom Auftreten eines Events bis zur Abschaltung maximal 10 µs dauern.
Nun will man ja auch wissen, wie es zu der Abschaltung gekommen ist.
Das ist der Grund für den Transientenrecorder (bei uns heisst das Ding so; ist im Prinzip ein Ding, das die Geschehnisse um ein Ereignis mit genügender Auflösung speichert)
Nun bin ich auf der Suche nach prinzipiellen Designideen.
Ich hatte mit, naiver weise, vorgestellt, dass ich einen Ringspeicher baue, in den ich mit z.B. 100 kHz die Messwerte schreibe. Die Größe des Speichers sollt ca. 100.00 Messwerte sein, damit man eine Sekunde speichern kann.
Ich wollte deshalb einen Ringspeicher nehmen, weil es ja nicht Not tut über DMA immer auf das RealTime- Target zu schreiben. Da entsteht ja ein heftiger Datenstrom. Vor allem weil ich 4 Kanäle benötige.
Gibt es nun ein Event, dann wird das Schreiben in den Ringspeicher (verzögert / wegen pre- und posttrigger) und er wird dann ausgelesen.
Das muss nicht schnell sein, weil dann die Anlage eh ausgefallen ist.
Aber Fifo vom RealTime- Target auszulesen scheint auch nicht ohne weiteres Möglich zu sein. Somit muss man sich da dann auch noch einen Trick überlegen.
Aus diesem Grund hier dieser Post.
Mal sehen, was ihr da für Ideen habt.
Danke,
Rüdiger
Hallo Rüdiger,

Zitat:Ich hatte mit, naiver weise, vorgestellt, dass ich einen Ringspeicher baue, in den ich mit z.B. 100 kHz die Messwerte schreibe. Die Größe des Speichers sollt ca. 100.00 Messwerte sein, damit man eine Sekunde speichern kann.
Du willst auf dem FPGA einen Ringspeicher für 100kSamples haben? Das 9223 hat 16bit Auflösung, du bekommst also ein I16 pro Sample: das macht einen Speicherbedarf von 200kB auf dem FPGA! Deine Vorstellung ist da schon sehr naiv: solche Speichermengen sind auf dem FPGA eher selten…

Zitat:Aber Fifo vom RealTime- Target auszulesen scheint auch nicht ohne weiteres Möglich zu sein.
Wieso nicht? Genau dafür gibt es doch FIFOs, um Daten vom FPGA zum RT-Host zu schieben…

Zitat:Somit muss man sich da dann auch noch einen Trick überlegen.
Hmm Ein Trick?
Für solche Sachen gibt es BeispielVIs und Beispiel-Projekte…
Hallo GerdW,
da hast Du sicherlich recht. Der Speicherbedarf ist schon gross, zumal ich die Hoffnung hatte 4 Kanäle und noch anderen Code auf dem FPGA zu implementieren.
Allerdings hat man ja sonst auch den Datenstrom zwischen dem Realtimesystem und dem FPGA. Wäre das denn kein Problem?
Und wenn ich das dann recht gelesen habe, dann muss ich das Fifo als "Target to Host" konfigurieren?
Tschuldigung für die "naiven" Fragen, aber ich mache mich mit diesem Thema erst vertraut.
Hallo Rüdiger,

Zitat:Tschuldigung für die "naiven" Fragen, aber ich mache mich mit diesem Thema erst vertraut.
Dann kann ich die Hilfe empfehlen: hier!

Und einfach mal bei NI nach AppNotes und Einsteigerkursen suchen. Außerdem hast du ja noch diverse Beispiel-Projekte und BeispielVIs auf deinem Rechner…
Referenz-URLs