LabVIEWForum.de
Laufzeitfehler nach Compiler - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Module (/Forum-LabVIEW-Module)
+---- Forum: LabVIEW FPGA (/Forum-LabVIEW-FPGA)
+---- Thema: Laufzeitfehler nach Compiler (/Thread-Laufzeitfehler-nach-Compiler)

Seiten: 1 2 3


Laufzeitfehler nach Compiler - chrissyPu - 04.11.2009 10:04

So ganz allgemein würde ich das nicht unterschreiben, aber prinzipiell ist das schon in Ordnung. Ein FPGA ist halt schnell, deterministisch und echt parallel, dafür kann es mit komplexen Datentypen nicht so wirklich gut.

Generell teile ich eher so auf, dass ich auf dem FPGA Sachen laufen lasse, die eine gewisse Geschwindigkeit brauchen (z.B. eine Regelung) oder mit hochgenauer Zeitbasis ausgeführt werden müssen. Voraussetzung ist auch immer, dass eigentlich kein Eingriff des Users während der Laufzeit nötig ist, nur vor oder nach der jeweiligen Aktion.

Auf dem Host läuft alles, was mit Userinteraktion zu tun hat, Datenauswertung, die ich nicht online brauche (z.B. Umrechnung in richtige Einheiten, Berechnung von Kennwerten etc.), da ich hier z.B. ohne Probleme komplex rechnen kann, aufwendige Algorithmen in Skriptknoten packe etc. und sowieso alles, was ich irgendwann vor einer Aktion machen muss, was aber im Vergleich zu 40MHz FPGA-Takt auch ein bisschen warten kann...

Generell: NI hat ganz gute Tutorials zu dem Thema. Anders könnte ich mir nicht erklären, dass ich in meiner Diplomarbeit da ganz ordentliche Sachen auf die Reihe bekommen hab...Wink

Grüße,

ch


Laufzeitfehler nach Compiler - Jansen83 - 04.11.2009 15:32

Okay.Smile
Ich versuche aber auch eine klare Strukturierung zu treffen (okay, war bisher vermutlich so nicht zu erkennenWink)
Möchte sämtliche Bewegungssachen des Linearschlittens (sprich Referenzfahrt, Rampenfahrt und Sinus²-Fahrt) auf dem Target laufen lassen und die Auswertung auf dem Host (graph. Darstellung, Speicherung der Bewegung als Excel-Werte). Sicher wärs vielleicht möglich zumindest die Referenzfahrt auf den Host zu ziehen, da keine aufwendigen Rechnungen im Hintergrund stehen, allerdings möchte ich es vermeiden deswegen zw. den Fenstern hin und her springen zu müssen. Ich denke, dass macht soweit Sinn!??!

P.S. die Einführung des "Danke" Buttons find ich klasseSmile


Gruß Jan


Laufzeitfehler nach Compiler - chrissyPu - 04.11.2009 16:03

Hi!

' schrieb:allerdings möchte ich es vermeiden deswegen zw. den Fenstern hin und her springen zu müssen. Ich denke, dass macht soweit Sinn!??!
Ich weiß nicht, welche Hardware Du hast, aber Dir ist schon klar, dass Du das Frontpanel vom FPGA-VI zur Laufzeit nicht sehen kannst, oder? Die Bedienung muss immer über den Host und dort dann programmiertechnisch über DMA oder über den entsprechenden FPGA-I/O-Methodenknoten laufen...

ch


Laufzeitfehler nach Compiler - Jansen83 - 05.11.2009 10:14

Arbeite mit ner cRio 9073 und den beiden Modulen NI9263 & NI9401.
Wieso sehe ich das Frontpanel vom FPGA VI nicht? Hab derzeit erst mal ein simples Programm draufgespielt und arbeite doch über dieses Panel?
Ich glaub da sind noch grundlegende Sachen die ich wohl nicht verstehe....
Unsure


Laufzeitfehler nach Compiler - dlambert - 05.11.2009 11:20

Also bitte nicht vergessen FPGA ist HARDWARE und ein FPGA Frontpanel ist nur eine Krücke um einige Infos abzubilden. User-Eingaben am FPGA Panel sind nicht möglich, da der FPGA ausschliesslich mit dem RT kommuniziert. Daher kannst Du ein Frontpanel zur Steuerung zum Beispiel auf dem RT realisieren. Das gilt innerhalb der Entwicklungsumgebung.

Zur Laufzeit könnte man das RT-Panel per Webserver anzeigen.

Hier noch ein TIP zum Laufzeitverhalten

-> NI empfiehlt ausdrücklich den Einsatz von Globalen statt Lokalen Variablen auf dem FPGA. Das bringt Laufzeitvorteile.
-> FPGA Control-Kommunikation ist auf ein Minimum zu reduzieren. Daten besser per DMA FIFO austauschen.

Hope it helps
Christian


Laufzeitfehler nach Compiler - Jansen83 - 10.11.2009 10:41

Was ich nach wie vor nicht verstehe ist, dass Beispielsweise das Case "Referenzfahrt" auf dem Target nicht mehr fehlerfrei läuft.
Auf dem Host lief es problemlos, zumal der Code ja alles andere als problematisch ist, einen Schlitten ein wenig nach Vorgabe nach links und rechts fahren zu lassen.
Git es irgendwelche guten Tutorials oder Bücher (mgl. deutschsprachig) zur Einführung der Programmierung eines FPGA Codes?
Sicher programmiere ich alles andere als optimal und synaktisch sinnvoll, aber es wird doch auch mir möglich sein das Programm zum Laufen zu kriegen mit den Inhalten wie ich sie brauche. Meine Betreuer sind leider auch etwas überfragt, da sie bisher nicht mit einer Rio gearbeitet habenSad

Edit: vielleicht kann einer der Admins das Thema in "wie programmiere ich richtig ein FPGA" ändern Unsure


Laufzeitfehler nach Compiler - Jansen83 - 10.11.2009 11:59

Kurzer Nachtrag: die 30 seitige PDF von NI `fpga_compactrio_getting_started´ hab ich gelesen, etwas umfangreicheres, vor allem wo die richtige Nutzung von SCTL beschrieben wird wär klasse.


Laufzeitfehler nach Compiler - Jansen83 - 24.11.2009 10:21

Hat keiner ein hilfreiches Tutorial für mich?Sad


Laufzeitfehler nach Compiler - dlambert - 24.11.2009 14:06

Für die Anwendung von SCTL (single cycle timed loops) benötigst Du kein Tutorial.

Du ziehst die TimedLoop um Deinen FPGA code und achtest schön darauf, dass Du TRUE als Konstante an die Stop Condition legst. Wenn nicht läuft der FPGA hier infinite !
Das macht dann auch schon den Namen aus. Die Loop läuft nur einen 'Programmzyklus'. Das heisst aber nicht dass nur ein Takt für die Abarbeitung benötigt wird.
Für den Compiler ist die SCTL lediglich eine Anweisung den Code zu optimieren.
Wer den Code sieht und die SCTL nicht kennt, schüttelt nur den Kopf. Da die Loop sofort beendet wird, scheint sie überflüssig.

Bestimmte Elemente lassen sich nicht in eine SCTL legen. Dazu zählt auch die Case Struktur an deren Stelle Du vielleicht hier und da einen Selector nehmen kannst. In der LV Hilfe ist für jedes Element das SCTL Verhalten beschrieben. Steht meist ganz unten. Spätestens der Compiler sagt Dir das dieses oder jene Element nicht in einer SCTL verwendet werden darf.

I'm sure it helps
Christian

[attachment=22764]


Laufzeitfehler nach Compiler - Jansen83 - 24.11.2009 16:24

Danke. Werde ich versuchen umzusetzen.
Gib mir bitte noch einen kleinen Tipp was mit Selector genau gemeint ist.
SCTL als "Wunderwaffe" zur Optimierung von FPGA-Codes zu bezeichnen ist aber sicher übertrieben?Also im Vergleich zu anderen Optimierungsregeln.

Darüber hinaus würde es mich interessieren, wie man mit den automaitsch generierten FPGA-Target Codes weiter verfährt?
Gibt es spezielle Stellen im Programm an denen man mit der Programmierung fortfährt, kann oder sollte man diese Codes ändern oder sollte man ganz und gar die Finger davon lassen?