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!
Hallo zusammen
Ich habe einen cRio 9104 Controller mit NI 9401 Digitale Eingans-Ausgangsmodule und ein paar weitere Analogeingänge. Es läuft ein File direkt auf dem FPGA und ein Hostfile, das das FPGA-File mitlädt. Wenn ich im FPGA-File digitale Ausgänge setzte, funktioniert das prima. Wenn ich hingegen vom Hostfile einen AUsgang setzen will, klappt das irgendwie nicht. Es kommt zwar keien Fehlermeldung und er sagt, es sei gesetzt worden (im Debugmodus steht ok), aber wenn ich nachmesse ist keine Spannung drauf.
Bei analogen Eingängen war es ja so, dass man im FPGA den Eingang aufrufen musste und mit einem Indikator versehen, dann war er als Variable im Hostfile verfügbar und konnte über das FPGA-"Read/Write-Control" ausgelesen werden hat auch prima funktioniert.
Wie muss ich das nun bei digitalen Ausgängen machen? Ich habe es momentan gleich gelöst, dass ich im FPGA-FIle einfach nen Indikator gesetzt habe und im Host-File den Controller auf Write umgeschaltet habe und denn TRUE gesetzt habe. (Logischerweise müsste man beim Schreiben ja einen Control im FPGA-File setzten, aber dann steht mir der Ausgang nicht als Variable zur Verfügung.) Aber leider wird dann nicht geschrieben. Kann mir jemand sagen woran das liegt?
Also ich habe es jetzt mal mit DMA gemacht, da geht es, aber es müsste doch auch auf die andere Art gehen. Wahrscheinlich habe ich im FPGA-File den Ausgang falsch angegeben, anstat dem Indikator müsste da was anderes hin...
Ich habe jetzt das File schon abgeändert, habe es noch kurz nachgebildet, einfach der Teil der Probleme machte.
Sind im Anhang. Ist jetzt halt nicht das komplette File, aber so habe ich es im Prinzip versucht. Im FPGA-File den Ausgang initialisieren und dann vom Hostz aus schreiben. Und das hat eben nicht geklappt. FPGA-File wurde auch geöffnet und ausgeführt, kam kein Fehler.
du schreibst halt in den Indicator, nicht auf den Ausgang. Der Host kann nicht direkt auf die FPGA-IOs znugreifen, sondenr halt nur auf Controls und Indicators im FPGA-VI. Dort musst du dann die entsprechenden Werte noch auf die tatsächlichen Ein- und Ausgänge schreiben bzw. davon lesen und ggf. in den Indicatoren bereitstellen.
Wenn du das nur so wie in den zwei screenshots implementiert hast, liest du zwar aus dem Digital I/O, schreibst aber aus dem Host-VI nur in den entsprechenden Indikator! Wenn Du den Wert des Indikators aus dem FPGA-VI nicht noch in dem VI auf den jeweiligen I/O schreibst, kommt halt nix raus...
Danke für die Antwort.
Ich habe schon versucht gehabt, im FPGA-File einen Controller einzufügen, wäre ja logischer, dass man dann so schreiben kann. Aber wenn ich das mache, dann ist das Problem, dass ich danach im Hostfile nicht auf die Variable des entsprechenden digitalen Ausgangs zugreiffen kann. Das geht eben nur, wenn ich einen Indikator setze. Also müsste ich quasi im FPGA-File den entsprechenden Ausgang wählen, einen Indikator einfügen, und danach noch ein zweites Mal den Ausgang einfügen und den Indikator darauf schreiben?
MFG Corono
13.07.2009, 12:24 (Dieser Beitrag wurde zuletzt bearbeitet: 13.07.2009 12:25 von Corono.)
Hmm, ich habe es noch mal mit den Controllern versucht und klappt prima. Keine Ahnung, was das letzte mal schief lief. Aber es läuft jetzt.
Eine Frage hätte ich jetzt noch. Hat zwar nichts mehr mit dem Titel zu tun aber stelle sie jetzt doch mal hier. Es gibt ja die Möglichkeit, ein FPGA-Programm direkt beim Starten des cRio ablaufen zu lassen. Da kann aber nur ein Bitfile geladen werden. Leider finde ich nirgends eine Möglichkeit, dass das Hostfile, also einfach ein .vi-File, das aber nicht auf FPGA läuft, sondern auf dem Prozessor, direkt startet. Ist das auch irgendwie möglich? Das Hostfile ruft dann das FPGA-Programm auf, das würde ja dann auch laufen.