INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Abarbeitungsgeschwindigkeit auf dem RT-Controller extrem unterschiedlich



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!

13.02.2012, 13:59
Beitrag #1

cRio Offline
LVF-Grünschnabel
*


Beiträge: 38
Registriert seit: Nov 2011

2011
-
EN


Deutschland
Abarbeitungsgeschwindigkeit auf dem RT-Controller extrem unterschiedlich
Hallo miteinander!
Ich habe ein VI auf dem FPGA und dem RT-Controller laufen, die miteinander Daten austauschen.

Kurz erklärt: auf dem FPGA-VI wird aus einem Kennfeldausschnitt interpoliert. Reicht der Kennfeldausschnitt nicht mehr aus, fordert das FPGA-VI einen neuen Kennfeldausschnitt an (zu diesem Zweck wird auf dem RT-VI per Referenz ein Cluster auf dem FPGA-VI ausgelesen-sobald der Cluster mit neuen Werten vorliegt, weis das RT-VI bescheid dass es einen neuen Ausschnitt zusammenstellen muss) . Es sendet also Daten an das RT-VI, dieses stellt den neuen Ausschnitt aus einem großen Kennfeld zusammen und schickt das ganze wieder per DMA-FIFO an den FPGA zurück. Das FPGA VI holt sich den Inhalt aus dem DMA-FIFO und schreibt ihn in einen Speicher, um dann mit den neuen Werten munter weiter zu interpolieren.

Jetzt war ich neugierig, wie lange den mein VI auf dem FPGA warten muss, bis das VI auf dem RT-Controller seinen Job gemacht hat und dem FPGA-VI das neu zusammengestellte Kennfeld bereitstellt per DMA-FIFO. Also hab ich mal auf dem FPGA-VI das TICK-COUNT zum Benchmarken verwendet um zu messen wie lange mein FPGA-VI wartet. Mein TickCount umfasst dabei den DMA-FIFO Block (Timeout=-1, dh an dieser Stelle wartet mein FPGA VI solange, bis es die Daten auch tatsächlich erhält und auslesen kann.) und dann noch einen Sequenzteil, in dem die neu empfangenen Daten in einen Speicherbereich auf dem FPGA geschrieben werden.

Das der RT-Controller im Vergleich zum FPGA tierisch langsam ist, war mir schon klar. (FPGA 1Tick=25 ns || RT-System 25 Micorsekunden ResponseTime als Optimum! sprich Faktor 1000 Geschwindigkeitsunterschied!) Was ich mir allerdings nicht erklären kann: Die Zeit, die mein FPGA-VI nach einer Anforderung an das RT-VI wartet variiert extrem, obwohl auf dem RT-VI jedesmal das gleiche abläuft! Im Optimalfall hat mein FPGA-VI nur 200000ticks ~ 5 ms warten müssen bis das RT-VI geantwortet hat, im bisher schlimmsten entdeckten Fall waren es 3,2 Mio Ticks ~ 80 ms. Wieso variiert das so stark, obwohl auf dem RT-VI jedesmal haargenau die gleichen Prozeduren ablaufen? Den bei jeder Anforderung vom FPGA-VI erstellt das RT-VI einen neuen Kennfeldausschnitt und packt ihn in den FIFO DMA. Danach macht es solange nichts bis eine neue Anforderung kommt. Das VI auf dem RT ist zudem "ungebremst", sprich es ist ein keiner Timed-Loop sondern läuft mit maximaler Geschwindigkeit. Es laufen auch keine anderen VIs auf dem RT-Controller, die Rechenzeit beanspruchen könnten.

Hat jemand eine Erklärung? Idee?
Grüße
Stefan

Hardware: cRio 9074 mit NI 9401
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Nachrichten in diesem Thema
Abarbeitungsgeschwindigkeit auf dem RT-Controller extrem unterschiedlich - cRio - 13.02.2012 13:59

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Events auf dem RT-Controller MichaDu 8 6.907 29.08.2008 16:31
Letzter Beitrag: cb

Gehe zu: