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!
seit dem Wechsel nach LV2011 habe ich Probleme mit einer Startup-Realtime Application.
Das Projekt wurde unter LV2009 entwickelt und funktionierte fehlerfrei als rtexe.
Nach dem Wechsel auf LV2011 gab es zuerst Probleme mit Typedefs, die in dem FPGA-VI (mit 2011 neu kompiliert) verwendet wurden.
Es wurde ständig der Suchdialog nach dem Speicherort der Typedefs angezeigt, alle ausgewählt und dann ging es wieder von vorn los. Lösung war das Löschen der Elemente in der FPGA und ein erneutes hinzufügen und im Anschluss das kompilieren.
Nächstes Problem entstand beim Erstellen der RT-Application. LV konnte das VI mit der "Open FPGA Reference" nicht speichern und brachte eine entsprechende Fehlermeldung. Abhilfe hier war das Setzen der Option "Typdefinitionen entfernen" in den Build-Einstellungen. Danach konnte die Startup.rtexe ohne Fehler erzeugt werden.
Beide Abhilfen konnten zwar die Problematik lösen aber können keinesfalls als normale Arbeitsweise akzeptiert werden. Wenn das bei jedem Projekt notwendig ist und das dann noch bei großen und komplexen Programmen, dann gute Nacht.
Nach der Übertragung auf das cRIO-Target via "Run as Startup" und einem Neustart wird jedoch die Anwendung nicht gestartet bzw. gleich wieder beendet. Genaueres ist schwer feststellbar. Im DSM sieht man jedoch zu dem Zeitpunkt, wenn die rtexe aufgerufen wird einen kurzen Anstieg der CPU-Last (auf ca. 45% und dann gleich wieder <3%).
In der Entwicklungsumgebung von 2011 läuft das Projekt einwandfrei. Die SSE2-Option in der Build-Spezifikation ist deaktiviert. Es wurden keine Veränderungen an der Programmlogik nach dem Wechsel auf 2011 vorgenommen und unter 2009 gab es keine der oben genannten Fehlerbilder.
Auch das Wechseln der Bindung der FPGA-Referenz von Buildspezifikation nach VI und dann nach Bitfile brachte keine pos. Veränderung.
Für einen Hinweis bzw. einen kleinen Tipp wäre ich sehr dankbar. Es nervt gewaltig, das Projekt in der Entwicklungsumgebung starten zu müssen und dann das RT-System via "Disconnect" als quasi autarkes System bis zum nächsten Neustart laufen lassen zu müssen.
Die Supportanfragen bei NI konnten bisher nicht wirklich weiterhelfen.
RE: startup.rtexe nach Wechsel auf 2011 startet nicht
Ohne Kenntnis deines Sourcecodes ist es schwer, eine definitive Aussage zu treffen.
Mglw. hast du irgendetwas während der Initialisierung-Phase "parallel" programmiert, und der 2009er Kompiler hat zufällig daraus die korrekte Reihenfolge gemacht, und jetzt, unter 2011 als rt-exe haut es dir etwas durcheinander, was bei interaktiver Ausführung doch noch passen kann.
Ich sehe da nur die Chance, dir ein "Debug-VI" zu erstellen, welches z.B. immer etwas in ein Logfile schreibt, um so herauszufinden, welche Schritte vielleicht noch ausgeführt werden und welche nicht mehr.
Weiterer Stolperstein könnten die VI-Pfade innerhalb eine Exe sein, vgl. den Tip hier.
Letzte, wenn auch eher unwahrscheinliche Idee: Hast du alle 2011er Patches, die es schon gibt, installiert?
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!
RE: startup.rtexe nach Wechsel auf 2011 startet nicht
Ich kram den Thread mal wieder raus, den zu meinem Leidwesen habe ich momentan ähnliche Probleme.
Aktuell entwickle ich ein Projekt unter LV 2011 SP1f1 (es muss leider LV 2011 sein, da ich auch den FPGA eine sbRIO-9606 programmieren muss, und das geht erst mit dieser Version), und neuerdings ist es absolut unvorhersehbar, wann ich eine lauffähige startup.rtexe erstellen kann.
Interaktiver Start als VI aus dem Projekt heraus geht IMMER, der Kompiliervorgang der startup.rtexe läuft auch IMMER ohne Fehlermeldungen durch, bloß ob danach die exe wirklich auf dem sbRIO läuft, das steht in den Sternen.
Ich habe schon so ziemlich jede Kombination an Compiler-Optionen durch (mit/ohne Errorhandling, TypeDefs trennen, SSE2 (in-)aktiv, etc. etc.), es ergibt sich kein Muster. Einmal klappt es mit SSE2, dann wird eine kleine Änderung am Sourcecode durchgeführt, und der nächste Compile-Vorgang erzeugt z.B. erst beim dritten Durchlauf eine startende Exe, dann aber mit deaktiviertem SSE2.
Es liegt auch nicht spezifisch an dem einen sbRIO, ich habe hier mehrere 9606 im Einsatz, und entweder startet eine rtexe auf allen oder auf keinem der sbRIOs.
Hat zufällig noch jemand diese Probleme? Oder eine Idee, woher dieses seltsame LV 2011er Verhalten herkommt?
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!
RE: startup.rtexe nach Wechsel auf 2011 startet nicht
Es sieht so aus, als ob ich den Störenfried in meinen Projekt gefunden habe.
Ein kleines harmloses Sub-VI, eingestellt auf Ausführungspriorität "subroutine" war offenbar der Übertäter. Seit ich diese VI wieder auf normale Priorität eingestellt habe, wurde noch keine "defekte" startup.rtexe erstellt.
Hier noch ein Screenshot vom BD (Labels sind absichtlich im Screenshot entfernt):
Sieht da jemand etwas, was auf einem RT-Target nicht als Subroutine laufen darf?
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!
RE: startup.rtexe nach Wechsel auf 2011 startet nicht
Hallo,
ich habe gleiches Problem erfahren und nach langem Suchen hat sich herausgestellt, dass LabVIEW seit V2011 Probleme mit shared variables in Verbindung mit Typdefinitionen hat.
Trennt man die shared variable von der Typdefinition, so startet die startup.rtexe. Der Bug ist NI bekannt, es gibt aber derzeit noch keinen offiziellen Workaround.
Ist man auf eine Typdefinition angewiesen, so müsste man die Variable als string deklarieren und die zu übermittelnden Daten entsprechend vorher serialisieren und nach Empfang deserialisieren ((un)flatten to string).
Gruß Lutz
25.02.2015, 11:28 (Dieser Beitrag wurde zuletzt bearbeitet: 25.02.2015 12:20 von Valduril.)
RE: startup.rtexe nach Wechsel auf 2011 startet nicht
(15.11.2012 14:22 )seilkopf schrieb: Hallo,
ich habe gleiches Problem erfahren und nach langem Suchen hat sich herausgestellt, dass LabVIEW seit V2011 Probleme mit shared variables in Verbindung mit Typdefinitionen hat.
Trennt man die shared variable von der Typdefinition, so startet die startup.rtexe. Der Bug ist NI bekannt, es gibt aber derzeit noch keinen offiziellen Workaround.
[...]
Ist dieser Fehler in der Version LV 2014 immernoch vorhanden?