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 

Dieses Thema hat akzeptierte Lösungen:

Kommunikation FPGA-RT



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!

18.04.2019, 12:59
Beitrag #1

AAlp Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Apr 2019

2018
2017
DE



Kommunikation FPGA-RT
Hallo,

ich versuche nun vergeblich eine Kommunikation zwischen den Modulen der FPGA und dem RT herzustellen.
Ich habe es über Globale Variablen versucht, denen ich die Werte übergebe. Allerdings leiten diese ihren Inhalt nicht an das VI der FPGA weiter. Auch über Umgebungsvariablen ist es mir nicht gelungen Werte zwischen den VIs auszutauschen. Gibt es denn eine weitere Möglichkeit das Problem zu lösen, oder liegt ein struktureller Fehler in meinen bisherigen Versuchen vor?
Mein Projekt befindet sich im Anhang.
Freue mich über jede Hilfestellung, da ich bisher in keinem bisherigen Beitrag etwas hilfreiches gefunden habe.


0.0 .zip  FPGA.zip (Größe: 349,28 KB / Downloads: 207)


Ich arbeite mir:
Labview 2018
NI cRIO-9035

Gruß
Alp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.04.2019, 13:29 (Dieser Beitrag wurde zuletzt bearbeitet: 18.04.2019 13:29 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Kommunikation FPGA-RT
Hallo AAlp,

herzlich willkommen im Forum!

Zitat:Ich habe es über Globale Variablen versucht, denen ich die Werte übergebe. Allerdings leiten diese ihren Inhalt nicht an das VI der FPGA weiter.
Korrekt beobachtet!

Zitat:Auch über Umgebungsvariablen ist es mir nicht gelungen Werte zwischen den VIs auszutauschen.
Auch korrekt beobachtet!

Zitat:Gibt es denn eine weitere Möglichkeit das Problem zu lösen,
Ja!

Zitat:liegt ein struktureller Fehler in meinen bisherigen Versuchen vor?
Ja!

Schau dir doch einfach mal die ganzen Beispielprojekte an, die mit LabVIEW (+RT+FPGA) mitgeliefert werden!
Du kannst Daten per FIFO oder per Zugriff auf FPGA-FP-Elemente austauschen…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.04.2019, 12:52
Beitrag #3

AAlp Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Apr 2019

2018
2017
DE



RE: Kommunikation FPGA-RT
Hallo GerdW,
danke für deine Nachricht.

Ich habe nun versucht das ganze über den Austausch mit FIFO hinzu bekommen. Allerdings läuft es noch nicht ganz. Ich denke mal, dass es von der Struktur stimmen müsste. Allerdings werden die Daten immer noch nicht so übergeben, wie sie es sollen.
Dabei soll auf die FPGA Daten sowohl senden, als auch empfangen. Das geschieht allerdings noch nicht. Woran könnte das liegen?
Ich füge jeweils den Screenshot ein.

Viele Grüße
Alp


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.04.2019, 15:18 (Dieser Beitrag wurde zuletzt bearbeitet: 23.04.2019 15:18 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Kommunikation FPGA-RT
Hallo Alp,

Zitat:Allerdings läuft es noch nicht ganz.
Was genau funktioniert denn - und was nicht?

Zitat:Ich denke mal, dass es von der Struktur stimmen müsste.
Ich würde jeden FIFO in seine eigene Schleife legen, um Timing-Probleme zu minimieren/auszuschließen.

Zitat:Allerdings werden die Daten immer noch nicht so übergeben, wie sie es sollen.
Wie werden sie den übergeben?

Zitat:Dabei soll auf die FPGA Daten sowohl senden, als auch empfangen. Das geschieht allerdings noch nicht. Woran könnte das liegen?
Musst du hier wirklich FIFOs verwenden? Für Einzelwerte? Für langsame (?) Temperatursensoren?
Warum nicht Zugriffe auf das FPGA-Control?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.04.2019, 16:19
Beitrag #5

AAlp Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Apr 2019

2018
2017
DE



RE: Kommunikation FPGA-RT
Hallo GerdW,

Zitat:Was genau funktioniert denn - und was nicht?
Es sollen unterschiedliche Spannungssignale und Boolean-Werte übergeben werden. Wenn ich das am Ausgang der FPGA überprüfe, kommt überhaupt nichts an. Ich nehme an, dass ich irgendwo einen Fehler mit den Datentypen habe.


Zitat:Wie werden sie den übergeben?
Theoretisch über die Lesen-und Schreiben-Funktion mehrerer FIFO-Schnittstellen. Praktisch funktioniert das nicht Blink


Zitat:Warum nicht Zugriffe auf das FPGA-Control?
Wie meinst du das?


Gruß
Alp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.04.2019, 16:24
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Kommunikation FPGA-RT

Akzeptierte Lösung

Hallo Alp,

Zitat:Wie meinst du das?
Man kann über eine FPGA-Methode im RT-VI auf Controls/Indicator im FPGA-VI zugreifen…
Für deinen DO legst du also ein boolsches Control im FPGA an, für den Temperatur-AI einen entsprechenden Indicator. Und die liest/schreibst du per FPGA-Methode im RT-VI: wozu für so etwas einzelne (!) FIFOs anlegen und verwalten?
(Auch das wird in den Beispiel-Projekten zu FPGA+RT gezeigt…)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
23.04.2019, 17:13
Beitrag #7

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Kommunikation FPGA-RT
Ich finde den gesamten Aufbau doch sehr fehleranfällig, bzw. fehlerhaft.

Im RT:
  • Wieso startest du den FPGA-Code 4x?
  • Ich kann es jetzt nicht nachstellen, aber ich würde erst den FPGA starten (Node ausführen) und dann die FIFOs starten. Das kannst du auch gerne seriell anstatt parallel machen.
  • Ich stimme Gerd zu, pack die Lese- und Schreibelemente in eigene Loops, so dass sie unabhängig voneinander arbeiten. So wie es jetzt ist, schreibst du aktuell nur 1x, max. im Takt der Abklingzeit, wartest parallel aber auf 200 Elemente beim Temperatur-Lesen, ohne aber darauf zu achten, ob die FIFOs vielleicht überlaufen.
  • Auch beim Thermofühler stimme ich Gerd zu: Aus Erfahrung sind die Dinger relativ träge, eine Übertragung von Einzelwerten per Read/Write Node langt meist völlig, kein Bedarf für FIFOs. Dasselbe gilt wahrscheinlich für die Werte, die du an den FPGA schickst.

Der FPGA-Code ist ebenfalls seltsam:
  • Du versuchst immer mit Time-Out 0 (also so schnell wie möglich) Werte aus den FIFOs zu lesen, wertest aber den Ausgang "Timeout?" nicht aus. Stattdessen hängt jweils am Standardwert Null bzw. False eine Case-Struktur, in der du deinen Ausgänge immer auf Null setzt. Da aus dem FIFO beim Timeout auf jeden Fall ein Wert kommt, ist in den allermeisten Durchläufen z.B. der Ausgang Mod2/AO0 immer bei 0 Volt.
  • Besser: Falls es Sinn macht: FIFOs auch bzw. gerade im FPGA in unabhängige Loops packen. Aktuell wird deine Loop-Rate vom langsamsten Modul bestimmt. Wenn z.B. dein Mod1/AI1 ein langsames Thermo-Erfassungsmodul ist, dann ist die Looprate irgendwo im niedrigen Hertz-Bereich. Außerdem: Beim Lesen den Timeout? Ausgang auswerten oder vorher nachschauen, wieviele Elemente im FIFO-Buffer zum Auslegen bereitliegen.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.04.2019, 10:38
Beitrag #8

AAlp Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Apr 2019

2018
2017
DE



RE: Kommunikation FPGA-RT
Hallo,
zu aller erst danke an Gerd und jg, für eure Antworten. Ich bin gerade dabei mir die Beispiele anzusehen und denke, dass ich so langsam raus habe, wie ich es umzusetzen habe.
Beim Thema Timeout habe ich euren Punkt noch nicht ganz verstanden. Wie ermittle ich den richtigen Wert für meine Anwendung?

Gruß
Alp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.04.2019, 12:06
Beitrag #9

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Kommunikation FPGA-RT
Ich gehe nochmal auf deinen FPGA-Screenshot ein: Dort hast du an die FIFO-Read-Node bei Time-Out eine Null angeschlossen. Die Node wird somit 0 ms (also gar nicht) auf einen neuen Wert warten. Da du in deinem RT-VI zwecks Datenfluss eher selten Werte in den FIFO schiebst, wird er bei den meisten Aufrufen leer sein. "Kein Wert" gibt es aber beim Ausgabetypen "Numeric" oder "Boolean" nicht, der Ausgang wird in diesem Fall 0 bzw. False sein. Um festzustellen, ob dies jetzt wirklich ein neuer Wert aus dem FIFO ist oder nur der Default-Wert, musst du noch den Time-Out Ausgang an der Read-Node auswerten. Wenn der FIFO leer ist, wird hier ein TRUE rauskommen. In diesem Fall hast du also keinen gültigen neuen Wert, meist bedeutet das, dass man die Ausgänge auch nicht verändert.

Was jetzt aber für dich richtig ist, das musst du schon selber wissen, meine Glaskugel ist leider defekt! Glas2

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.04.2019, 16:22
Beitrag #10

AAlp Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Apr 2019

2018
2017
DE



RE: Kommunikation FPGA-RT
Hallo,
so nach etwas herumprobieren und mit Hilfe der Beispiele habe ich es geschafft, dass die Daten zwischen Host und Target ausgetauscht werden.
Dank der Hilfe von Gerd und Jens hat das alles geklappt. Angel_not


Gruß
Alp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: