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 

Impulsgenerator programmieren mit myRIO-1900 FPGA



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!

25.03.2017, 12:18
Beitrag #1

puh Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Mar 2017

2016
2016
EN


Deutschland
Impulsgenerator programmieren mit myRIO-1900 FPGA
Hallo zusammen,

ich arbeite gerade, im Rahmen einer Projektarbeit, an der Universität an der Programmierung für einen Impulsgenerator. Nach langer Sucherei habe ich mittlerweile den FPGA "myRIO-1900 Student" vor mir liegen und kann endlich mit der Programmierung loslegen.

Thema:
Als Thema soll ich einen 12-kanäligen Impulsgenerator programmieren, der sich über eine visualierte Benutzeroberfläche (PC), bedienen lässt. U.a. soll ich hier Schaltfrequenz, Totzeiten, Phasenverschiebungen usw. einstellen können.
Mit LabVIEW FPGA will ich das nun umsetzen, allerdings habe ich hier noch ein paar Probleme, die ich gerade nicht gelöst bekomme:

Fragen:
1. Ich möchte im Frontpanel Schaltfrequenz, Totzeiten, Phasenverschiebungen usw. einstellen können. Da ich mit Änderung einiger Parameter, andere Parameter "einschränken" muss (z.B.: bei Schaltfrequenz von 100kHz [=1ms] kann die Totzeit nicht >= 1ms sein! --> einfachstes Beispiel, um die Einschränkung einiger Parameter zu erläutern), möchte ich gerne eine Eingabe vornehmen (Control) und von LabVIEW ausgeben lassen, welche Parameter letzenendes wirklich verwendet oder ggf. auf-/abgerundet werden (Indictator).

Da ich mit LabVIEW FPGA nur sehr schlecht rechnen kann (einfache Multiplikation & Division schränkt die Rechenleistung stark ein und lässt sich nicht wie mit LabVIEW "einfach mal so" durchführen.), möchte ich die Eingaben & Berechnungen außerhalb des FPGAs bearbeiten und nur die "Endsignale" an den FPGA übertragen. Das komplette Frontpanel soll also außerhalb des FPGAs ablaufen und nur die Signalerzeugung soll über dem FPGA passieren.

Wie kann ich Berechnungen außerhalb des FPGAs durchführen und die Endsignale an den FPGA übertragen? Im Anhang habe ich ein Bild angehängt, bei dem ich einen VI unter "myRIO" hinzugefügt habe (VI: untitled4.vi). In dem Bereich kann ich problemlos Berechnungen durchführen. Scheinbar liegt dieser VI außerhalb des FPGA Chips?! Wie kann ich die Berechnungen von dort aus auf den VI auf dem FPGA übertragen (VI: DelayPatternGenerator_Main.vi). Ich hatte mal was von Übertragungen mittels DMA usw. gelesen. Ich finde aber aktuell kein geeignetes Whitepaper, was mir da den Lichtblick bringt.

2. Ich bekomme die Kompilierung nicht hin. Was bei LabVIEW einfach funktioniert, soll mit LabVIEW FPGA nur über einen Cloud Service machbar sein (siehe Anhang)? Blink


Angehängte Datei(en) Thumbnail(s)
           
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.03.2017, 17:09
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Impulsgenerator programmieren mit myRIO-1900 FPGA
Willkommen im LabVIEWforum,

leider zur Einleitung mir einem kleinen Tadel:

Offtopic2
Dir ist schon bekannt, dass Windows inzwischen ein Screenshot-Progamm On-Board hat? Damit hätten deine Uploads erstens eine wesentlich kleinere Dateigröße und wären deutlich besser lesbar...

Jetzt zu deinen Fragen:
Ist dir klar, was alles so an einem myRIO drinnen steckt? Das ist nicht nur ein FPGA mit IOs, darüber liegt ARM Dual Core Prozessor mit einem speziellen Linux-RealTime Betriebssystem. Dein Untitled VI läuft bei interaktiver Ausführung auf diesem System und nicht auf dem FPGA, deshalb muss es auch nicht erst umständlich und langwierig übersetzt werden.

Von diesem System kannst du (IMHO) am einfachsten und stabilsten Daten mit dem FPGA-Programm austauschen.

Zum Einstieg solltest du vielleicht diesen Link anschauen.

Zum FPGA-Kompilieren kann ich nur sagen: Wenn das FPGA-Modul inkl. Xilinx Compiler korrekt installiert ist, dann kann du auch lokal übersetzen. Da ich nicht weiß, was du alles installiert hast bzw. an Installationsmaterial hattest, kann ich dir leider nicht sagen, was du falsch gemacht hast.

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
26.03.2017, 13:01 (Dieser Beitrag wurde zuletzt bearbeitet: 26.03.2017 13:42 von puh.)
Beitrag #3

puh Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Mar 2017

2016
2016
EN


Deutschland
RE: Impulsgenerator programmieren mit myRIO-1900 FPGA
(25.03.2017 17:09 )jg schrieb:  Willkommen im LabVIEWforum,

leider zur Einleitung mir einem kleinen Tadel:

Offtopic2
Dir ist schon bekannt, dass Windows inzwischen ein Screenshot-Progamm On-Board hat? Damit hätten deine Uploads erstens eine wesentlich kleinere Dateigröße und wären deutlich besser lesbar...

Tut mir Leid. Ich bin normal ein großer Fan vom Snipping Tool, aber ich hatte die Bilder mit dem Handy gemacht, da ich die mit einem Kommilitonen über einen Messenger "geteilt" habe. Am Wochenende habe ich gerade leider keinen Zugriff auf den Labor PC und den myRIO und musste mir daher so behilflich sein. Sorry dafür!

Zitat:Dein Untitled VI läuft bei interaktiver Ausführung auf diesem System und nicht auf dem FPGA, deshalb muss es auch nicht erst umständlich und langwierig übersetzt werden.

Von diesem System kannst du (IMHO) am einfachsten und stabilsten Daten mit dem FPGA-Programm austauschen.

Super, das habe ich mir doch soweit schon gedacht. Was ich bisher aber noch nicht rausgefunden habe ist, wie ich die Daten von dem einen VI (untitled4.vi) auf den VI auf dem FPGA (Main VI) übertragen bekomme?! Also: Wie bekomme ich das "Ausgangssignal" im VI untitled4.vi als "Eingangssignal" für einen anderen VI (auf dem FPGA) umgesetzt?

Zitat:Zum FPGA-Kompilieren kann ich nur sagen: Wenn das FPGA-Modul inkl. Xilinx Compiler korrekt installiert ist, dann kann du auch lokal übersetzen. Da ich nicht weiß, was du alles installiert hast bzw. an Installationsmaterial hattest, kann ich dir leider nicht sagen, was du falsch gemacht hast.

Ich habe "Use the locale Compile Server" angewählt. Daraufhin kam die Fehlermeldung (siehe Anhang). Als Software habe ich LabVIEW 2016, LabVIEW Realtime und LabVIEW FPGA installiert. Auch den Xilinx Compiler hatte ich mir (nachträglich) installiert. Ich bekomme trotzdem diese Fehlermeldung ausgespuckt.

Ist deiner Meinung nach der Ansatz sinnvoll, dass ich alle Berechnungen, Ausgaben usw. für das Frontpanel auf dem ARM Prozessor auslagere und lediglich die Signalgenerierung über den FPGA realisiere?! Das war jetzt meine Idee, wie ich das umsetzen wollen würde.

LG
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.03.2017, 19:34
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Impulsgenerator programmieren mit myRIO-1900 FPGA
Hallo puh,

Zitat:Ich habe "Use the locale Compile Server" angewählt. … Ich bekomme trotzdem diese Fehlermeldung ausgespuckt.
Dann wird es wohl einen Fehler bei der Installation gegeben haben. Oder du hast nicht die korrekte Version am korrekten Ort installiert…
Nimm doch die CompileCloud!

Zitat:wie ich die Daten von dem einen VI (untitled4.vi) auf den VI auf dem FPGA (Main VI) übertragen bekomme?
LabVIEW kommt mit jeder Menge Beispielen, u.a. auch Beispiel-Projekten, wo genau das erklärt wird: Daten zwischen PC <-> RT <-> FPGA zu transferieren. Einfach mal angucken!
(Im einfachsten Fall ein FP-Element des FPGA im RT-Host lesen/schreiben…)

Zitat:Ist deiner Meinung nach der Ansatz sinnvoll, dass ich alle Berechnungen, Ausgaben usw. für das Frontpanel auf dem ARM Prozessor auslagere und lediglich die Signalgenerierung über den FPGA realisiere?!
Das hängt alles von deinen Rahmenbedingungen ab!
Eine aufwendige Berechnung würde ich eher auf dem RT machen. Einen PWM im kHz-Takt generiere ich dann doch lieber direkt auf dem FPGA…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.03.2017, 20:13 (Dieser Beitrag wurde zuletzt bearbeitet: 27.03.2017 21:58 von jg.)
Beitrag #5

puh Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Mar 2017

2016
2016
EN


Deutschland
RE: Impulsgenerator programmieren mit myRIO-1900 FPGA
Die Kompilierung habe ich jetzt hinbekommen. Danke erstmal für die Hilfe. Smile

Zitat:wie ich die Daten von dem einen VI (untitled4.vi) auf den VI auf dem FPGA (Main VI) übertragen bekomme?
LabVIEW kommt mit jeder Menge Beispielen, u.a. auch Beispiel-Projekten, wo genau das erklärt wird: Daten zwischen PC <-> RT <-> FPGA zu transferieren. Einfach mal angucken!
(Im einfachsten Fall ein FP-Element des FPGA im RT-Host lesen/schreiben…)[/quote]

Ich habe mir jetzt diverse White-Paper angesehen und bin zuletzt hier auf einige interessante Beispiele gestoßen. Insbesondere den VI "Windturbine" (hier: ftp://ftp.ni.com/evaluation/crio/compact...tion_1.zip ) habe ich mir angeschaut; bin aber bisher noch nicht auf eine Lösung meines Problems gekommen.

Ich möchte über den VI auf dem RT eine einfache boolesche Variable auf einen VI, der auf dem FPGA hinterlegt ist, übertragen. Gibt es dafür nicht ein paar einfachere Beispiele, als das oben beschriebene in denen eine einfache Datenübertragung von RT -> FPGA beschrieben wird? Bisher habe ich leider nur Examples finden können, die ziemlich überworfen mit Code Zeilen waren.

LG
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.03.2017, 20:53
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Impulsgenerator programmieren mit myRIO-1900 FPGA
Hallo puh,

Zitat:LabVIEW kommt mit jeder Menge Beispiele
Datei-Menü -> "Neu…"
Dort dann die Beispiel-Projekte durchsuchen und passendes auswählen!

Zitat:Bisher habe ich leider nur Examples finden können, die ziemlich überworfen mit Code Zeilen waren.
Codezeilen? In LabVIEW? Hmm

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

puh Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Mar 2017

2016
2016
EN


Deutschland
RE: Impulsgenerator programmieren mit myRIO-1900 FPGA
Das Problem mit der Datenübertragung habe ich mittlerweile gelöst.

   

Nun ist mir aber ein anderes Problem aufgefallen, dass ich bisher (meiner Meinung nach) "unschön" gelöst habe.

Ich lasse ein Dreiecksignal über ein Case-Befehl hoch (bei false) und runterlaufen (bei true). Der Counter für das Dreiecksignal läuft über den 40MHz Takt hoch und runter. Nun möchte ich bis zu 12 Ausgänge (=6 Halbbrücken Zweige) implementieren, die entsprechend phasenverschoben werden können müssen. Da bei dem Case-Befehl das Dreiecksignal entweder hoch oder runterläuft, kann ich den Durchlauf derzeit nicht "stoppen", ohne das Programm zu beenden.
Um eine Phasenverschiebung zu realisieren, möchte ich daher gerne einen vorgelagerten Counter implementieren, der entsprechend so lange hochzählt, bis ein bestimmter Wert erreicht ist und dem "Dreieck-Counter" somit ein "TRUE" gibt.

Als Beispiel:
Kanal 1 soll mit 0° laufen und das Dreiecksignal kann sofort hochzählen. Kanal 2 soll 180° phasenverschoben dazu sein. Dafür soll nach der Eingabe des Wertes "180°" einmalig ein Counter hochzählen, der dafür sorgt, dass das Dreiecksignal von Ausgang 2 nicht sofort hochzählt.

Gelöst habe ich es derzeit so, dass ich ein Case-Befehl in einem Case-Befehl geschrieben habe. Wenn der äußere Case-Befehl "True" ist, wird solange gewartet bis der entsprechende "Tick" für die Phasenverschiebung erreicht ist. Erst dann soll das Dreiecksignal starten. Der äußere Case-Befehl wird nur aufgerufen, wenn ein Wert != 0 eingegeben wurde oder der Wert geändert wurde.

Gibt es dafür vielleicht eine "schönere" Lösung?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.04.2017, 14:42
Beitrag #8

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Impulsgenerator programmieren mit myRIO-1900 FPGA
Wie wäre es mit einem Upload des FPGA-VI, anstatt das lang, breit und umständlich zu erklären?

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
19.04.2017, 15:30
Beitrag #9

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Impulsgenerator programmieren mit myRIO-1900 FPGA

Akzeptierte Lösung

Hallo puh,

Zitat:Um eine Phasenverschiebung zu realisieren, möchte ich daher gerne einen vorgelagerten Counter implementieren, der entsprechend so lange hochzählt, bis ein bestimmter Wert erreicht ist und dem "Dreieck-Counter" somit ein "TRUE" gibt.
Wenn alle Ausgänge den gleichen Takt verwenden, reicht ein Counter aus: Für die Phasenverschiebung dann einfach einen festen Wert auf den Counter dazuaddieren…

Beispiel: Counter steht aktuell bei 10 und zählt bis max. 120 hoch. Du willst auf einem zweiten Kanal eine Phasenverschiebung von 60° haben: du musst also 60°/360°*120=20 zum Counter hinzuaddieren. Ergebnis: Kanal1 bekommt den Ausgabewert, der zum Counter=10 passt und Kanal2 den Wert, der zu Counter=30 gehört…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.04.2017, 17:59
Beitrag #10

puh Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Mar 2017

2016
2016
EN


Deutschland
RE: Impulsgenerator programmieren mit myRIO-1900 FPGA
Heute Nachmittag hatte ich mir ähnliches schon überlegt. Leider merke ich, dass ich mich in meiner Studienzeit wenig mit der Programmierung beschäftigt habe und dadurch auch bei manchmal scheinbar einfachen Dingen, etwas kompliziert denke.

Dein Tipp hat mir auf jeden Fall weitergeholfen. Vielen Dank dafür! Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Sind Referenzen auf FPGA-Variablen in FPGA vi möglich? Felix777 2 6.938 26.10.2015 20:41
Letzter Beitrag: Felix777
  FPGA-Referenz öffnen: FPGA-VI nicht kompiliert LauraP. 9 11.540 17.03.2015 16:58
Letzter Beitrag: LauraP.
  Tutorials zu SENT und myRIO Slev1n 2 6.483 06.11.2014 22:51
Letzter Beitrag: Slev1n
  Kommunikation MyRIO mit IMU Fenris 0 5.012 13.09.2014 09:06
Letzter Beitrag: Fenris
  Bedienung Steuerung FPGA => DMA => RT(myRIO) lazaii 5 8.211 27.06.2014 12:30
Letzter Beitrag: Stefan_r
  Endliche Pulserzeugung mit myRIO (FPGA) Hoodi 6 7.693 06.05.2014 17:50
Letzter Beitrag: jg

Gehe zu: