LabVIEWForum.de
Compact Rio - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Module (/Forum-LabVIEW-Module)
+---- Forum: LabVIEW FPGA (/Forum-LabVIEW-FPGA)
+---- Thema: Compact Rio (/Thread-Compact-Rio)



Compact Rio - Florian Sim - 17.02.2015 19:33

Hi Leute,

ich bin relativ neu in LV und habe mal eine grundsätzliche Frage zu dem Compact Rio System. Für ein Projekt von mir messe ich nach einem
Referenzimpuls mit einem Delay von 40 microseconds 7 Analoge Inputs (Druck) und mittel diese dann (der größte und kleinste Wert wird hierbei noch aussortiert). Das gleiche mache ich 40 microseconds später noch einmal. 30 Microseconds nach dieser Messung erfolgt dann die Druckregelung mit einem PI Regler. Beim nächsten Referenzimpuls geht der Spass wieder von vorne los. Es ist noch anzumerken, dass ich die gemittelten Werte, bis zum erneuten Messvorgang über eine Feedback Node zwischen speichern muss (Muss eine Art gleitender Mittelwert der "Mittelwerte" bilden) Wie ihr seht steht da etwas Data Processing an. Wie läuft das nun beim Compact Rio ab? Time ich die Messung und Regelung über das FPGA Modul und verarbeite die Daten dann im Realtime Prozessor? Tschuldigung für die dumme Frage, aber ich habe keine Ahnung wie viel Data Processing der FPGA Chip verkraften kann und für irgendwas muss der Prozessor ja da sein Big Grin

Einen schönen Abend noch!

Danke und Gruß,

Flo


RE: Compact Rio - jg - 17.02.2015 21:13

Kann man nicht so einfach beantworten (es fehlen einige Hintergrundinfos):

Es gibt eine ganze Reihe von cRIOs mit unterschiedlichen RT-Leistungen und unterschiedlichen FPGA-Chips. Wenn sich ein FPGA-Programm bei einem Target nicht mehr kompilieren lässt, dann kann das bei einem größeren Chip schon wieder ganz anders aussehen. Dann hängt es auch noch von der Programmierung ab, bei einem ungeschicktem VI funktioniert das Kompilieren mglw. nicht, aber nach Optimierung geht es dann wieder.

Aus dem Bauch heraus würde ich bei 30-40 Mikrosekunden versuchen, das ganze im FPGA zu lösen.

Und dann noch zu RT: Es ist ein weit verbreiteter Irrtum, dass RT beim cRIO schnell bedeutet. Das Wichtige am Real-Time Betriebssystem ist, dass Programmabschnitte (wie z.B. Loops) - wenn nötig und wenn so programmiert - verlässlich mit möglichst wenig Jitter abgearbeitet werden.

Gruß, Jens


RE: Compact Rio - Florian Sim - 17.02.2015 22:01

Vielen Dank,

Ein paar Arrays auf dem Prozessor auslesen und wieder zurück dürfte eigtl nicht zu lange dauern. Sind ja nur 7 Werte pro Array und nicht massig Daten.

Schönen Abend noch,

Flo


RE: Compact Rio - GerdW - 18.02.2015 08:59

Hallo Flo,

Zitat:Ein paar Arrays auf dem Prozessor auslesen und wieder zurück dürfte eigtl nicht zu lange dauern. Sind ja nur 7 Werte pro Array und nicht massig Daten.
Du hast leider immer noch nichts über den Typ des cRIO verraten…

- Die älteren cRIOs haben z.T. CPU-Taktfrequenzen von 400MHz (oder gar nur 266MHz). Da sind 30µs nur ~10000 CPU-Takte und das cRIO hat deutlich mehr zu erledigen als "nur 7 Werte kopieren"…
- Bei 30µs würde ich auch dem RT nicht mehr vertrauen. Ein Jitter von 1µs sind dann schon 3% deiner Zielzeit…
- Datenmittelung kann der FPGA erledigen, sogar mit taktgenauer Clock…
- Wie schnell ist dein AI-Modul? Hast du überhaupt eines, welches in 40µs 7 Messwerte aufnehmen kann?
- Wenn du "einfach" RT programmieren willst, bist du auf die ScanEngine angewiesen. Diese ist nicht in der Lage, mit deinen Timing-Anforderungen umzugehen! Du bist also definitiv auf den FPGA angewiesen!


RE: Compact Rio - Florian Sim - 18.02.2015 18:18

Hallo Gerd,

vielen Dank für die hilfreiche Antwort! Da ich komplett neu in diesem Bereich bin, handelte es sich dabei mehr um eine grundsätzliche Frage. Ich bin gerade dabei ein mögliches Setup zusammen zustellen, deswegen wollte ich mich vorher erst einmal schlau machen, so dass ich da nicht in die falschen Sachen investiere (AI die das können gibt es durchaus)! Eine kurze letzte Frage hätte ich noch: Bedeutet das mit der 1 kHz Scan Engine, das ich im Prinzip nur 1000 Werte pro Sekunde erfassen kann (Soweit ich das verstanden habe, gibt die Scan Engine ja den Takt vor mit dem ein Wert erfasst/verarbeitet wird)? Könnte ich nicht durch eine andere Struktur (Sequenzstruktur mit einem timer drin) mehr Werte als die 1000 in 1er Sekunde erfassen, oder würde das dann dazu führen, das die Werte nicht mehr richtig verarbeitet werden? Sorry für die doofe Frage.

Gruß,

Flo


RE: Compact Rio - GerdW - 18.02.2015 20:39

Hallo Florian,

die ScanEngine dient dazu, ohne eigene Programmierung des FPGA an die Messwerte deiner cRIO-Module zu kommen bzw. Werte auszugeben. Und eben dieses ist in der Geschwindigkeit (und auch den Optionen) relativ limitiert, wenn man es mit eigener direkter FPGA-Programmierung vergleicht (siehe Punkt 5 im verlinkten KB-Artikel).

Beispiel:
Über den FPGA kann ich ein DIO-Modul als PWM-Generator mit 1MHz Grundtakt, Counter, DO und DI (alles gleichzeitig!) programmieren - mit der ScanEngine bist du auf nur eine der 4 Möglichkeiten beschränkt, mit einer festen (und selten passenden) Grundtaktung bei PWM-Ausgängen…