LabVIEWForum.de - Fehler "constraintDict"

LabVIEWForum.de

Normale Version: Fehler "constraintDict"
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe mir eine cRIO-9076 ausgeliehen, mit welcher ich auf RT Ebene einen Digitalbus auslesen wollte. Leider funktioniert die Scan Engine etwas anders als von mir erwartet. >> http://www.labviewforum.de/Thread-Datene...-cRIO-9076

Nun habe ich versucht zumindest die Messwertaufnahme über das FPGA und die Datenaufbereitung dann im RT Teil/Host zu realisieren. Mein Problem ist, dass ich derzeit am Ende der Kompilierung der FPGA Datei eine, für mich nicht nachvollziehbare, Fehlermeldung bekomme. Am Ende der Kompilierung heißt, dass der Transfer für ca. eine Sekunde gestartet wird und dann abbricht. Der Fehler tritt an 2 unterschiedlichen PCs auf.

Auch tritt der Fehler nur auf, wenn ich einen Eingang eines Messmoduls mit im Blockdiagramm habe, wenn ich nur die FPGA-Led blinken lasse ist alles ok. Somit müsste die reine Verkabelung usw. stimmen!? Muss ich die Eingänge noch einmal extra, außer der Anfangserkennung bei einrichten des FPGA Targets, adressieren?

Aussage NI-Support: "Meistens hilft eine Neuinstallation."

Als letztes zu den PCs, ein NB mit lizensierter 2011er Version und 2012er Evaluierungsversion parallel sowie ein NB, wo vorher nur eine 2011er Runtime und der MAX aufgespielt war und jetzt die 2012er Evaluierung läuft.

Wer hat Ratschläge? Danke

Woodeye



[attachment=49778]
[attachment=49781]
Hallo Holzauge,

Zitat:Aussage NI-Support: "Meistens hilft eine Neuinstallation."
Dem würde ich mich anschließen wollen…
Im Xilinx-Log (zumindest im gezeigten Ausschnitt) ist kein Fehler vermeldet. Aber LabVIEW meldet einen Fehler in einem "py"-Skript (wahrscheinlich Python). Und das deutet auf einen Fehler bei der Installation hin…

Zitat:Auch tritt der Fehler nur auf, wenn ich einen Eingang eines Messmoduls mit im Blockdiagramm habe, wenn ich nur die FPGA-Led blinken lasse ist alles ok
Mit welcher Zeitbasis arbeitet deine Wartefunktion? Takte, µs oder ms?
Wenn du wirklich Daten mit 2MHz aufnehmen willst, würde ich die FPGA-LED in eine separate Schleife packen. Die kann nämlich bsw. mit 3Hz blinken (so mache ich das immer), während die Messwerterfassung separat deutlich schneller laufen kann.

FPGA ist manchmal sehr "zickig", was TimingViolations betrifft. Und Fehlermeldungen beim Kompilieren sind auch nicht immer einfach zu deuten - erst heute hatte ich wieder ein Timingproblem bei "non-diagram object", wo natürlich nicht gezeigt wird, wo das Problem genau liegt…
Man muss halt auch beachten, wie schnell einzelne IOs angesprochen werden können!
Hallo Gerd,

die LED war mir nur in den Sinn gekommen um das cRIO überhaupt mit mir sprechen zu lassen, sie während der Messung blinken zu lassen ist natürlich auch eine Idee...

Mal sehen, was der morgige Tag bringt, in der Firma müsste ein frisch aufgesetzter PC auf mich warten.

Danke

Woodeye
Guten Morgen,

die 2012er neu auf einem frischen PC installiert und mein kleines Probe-VI läuft.....


VG

Woodeye
Hallo zusammen,

ich muss noch einmal um Hilfe bitten....

Die Kommunikationsprobleme mit dem cRIO sind gelöst, mein Wunschcode ist nun auch auf dem Gerät untergebracht und läuft (fast) zur vollen Zufriedenheit. Nun tut sich allerdings die Frage auf, wie transportiere ich die Messwerte zum Host-VI?

Noch einmal zur Messaufgabe, ich soll das SENT Ausgangssignal von 8 Sensoren ununterbrochen mitloggen. Dazu nutze ich die NI-9401, welche ich in einer Whileschleife mit 2 MHz abtaste und mir die Zeitdifferenzen der fallenden Flanken über den TickCount berechne. Somit fallen, je nach Ausgangskonfiguration des Sensors, 400 bis 10000 U16-Werte pro Kanal und Sekunde an.

Als einzige verlustfreie Möglichkeit Daten zu übertragen habe ich den DMA-FIFO gefunden, es ist mir aber noch nicht gelungen alle Messwerte geordnet in den Speicher zu schreiben. Für jeden Kanal ein FIFO geht mit der 9076 nicht, da sie nur 5 unterstützt. In ein Array zu schreiben(?), dies ist mir noch nicht so gelungen, dass ich die Werte geordnet wieder auslesen kann.

Hat jemand noch eine rettende Idee für mich?

Ein Gedanke von mir ist noch der Einsatz der neuen "myRIO" Karte. Sie soll 16 DMA Kanäle unterstützen und sollte meine Messanforderungen locker erfüllen. Außerdem wird sie meines Wissens über USB an den PC angeschlossen, was mir sehr recht wäre. Hat da schon jemand Erfahrung?

Vielen Dank

Woodeye
Hallo Holzauge,

Zitat:Als einzige verlustfreie Möglichkeit Daten zu übertragen habe ich den DMA-FIFO gefunden, es ist mir aber noch nicht gelungen alle Messwerte geordnet in den Speicher zu schreiben. Für jeden Kanal ein FIFO geht mit der 9076 nicht, da sie nur 5 unterstützt. In ein Array zu schreiben(?), dies ist mir noch nicht so gelungen, dass ich die Werte geordnet wieder auslesen kann.
Ich arbeite bei solchen Dingen mit "Trennzeichen", d.h. ich schreibe zwischen den einzelnen Daten ein Wort, welches sonst nicht in den Daten selbst vorkommt. Daran kann der Host dann jeweils erkennen, wann ein neuer Datenblock anfängt. Bei dir könnte das dann so aussehen:
STX Sensor-Nr Wert ETX

Wenn du die Daten nicht verlustfrei benötigen würdest, könntest du sie schon im FPGA in ein Array eintragen (ein Element pro Sensor) und einfach das Array per ReadControlValue im Host abfragen…
Referenz-URLs