08.12.2010, 18:03
Beitrag #1
|
Matze
LVF-Team
Beiträge: 1.027
Registriert seit: Apr 2010
20xx
2010
DE_EN
7xxxx
Deutschland
|
RT-Exe erstellen, was muss beachtet werden?
Hallo zusammen,
ich programmiere für das cRIO. Starte ich meine Anwendung aus LabVIEW heraus (über den Ausführen-Pfeil), dann wird das Programm sofort abgearbeitet.
Erstelle ich nun eine RT-Exe daraus, dann dauert es 1 - 2 Minuten, bis das Programm läuft. Die CPU-Auslastung liegt in der Zeit bei rund 100%. Der Arbeitsspeicher nimmt in dieser Zeit kontinuierlich zu, bis er so voll ist, wie auch bei der aus LabVIEW heraus gestarteten Anwendung. Dann sinkt die CPU-Auslastung und das Programm läuft.
Muss man da irgendetwas beachten (Compiler-Optionen o.ä.) oder wie ist das Verhalten zu erklären?
Die Anwendung läuft ohne RT-Exe viel besser als mit. Ich hätte eigentlich das Gegenteil erwartet, da der ganze Ethernet-Overhead (Frontpanel in LabVIEW sichtbar, Sonden etc.) wegfällt.
Grüße
Matze
|
|
|
14.12.2010, 20:51
(Dieser Beitrag wurde zuletzt bearbeitet: 14.12.2010 20:54 von Matze.)
Beitrag #3
|
Matze
LVF-Team
Beiträge: 1.027
Registriert seit: Apr 2010
20xx
2010
DE_EN
7xxxx
Deutschland
|
RT-Exe erstellen, was muss beachtet werden?
Hallo,
fast den gesamten Speicher weise ich zu Beginn zu, bevor ich in die parallelen Schleifen gehe, die eigentlich ununterbrochen laufen (sollen). Alles fest zuzuweisen ist natürlich nicht praktikabel, aber der Speicherbedarf ändert sich im laufenden Programm kaum, es sei denn, man hat mal einen Dateizugriff, doch auch ohne diese ist das Problem vorhanden.
Es geht auch alles einwandfrei, wenn ich über den Pfeilbutton aus LabVIEW starte.
Shared Variables nutze ich keine. Ich habe die Unterstützung dafür auch gar nicht erst installiert.
Die RT-Exe macht irgendwas ganz komisches im Vergleich zum Start aus LabVIEW heraus. Nach ca 2 Minuten kann ich das Programm verwenden, davor leider gar nicht.
Weiß keiner, was das sein könnte?
Wenn es aus LabVIEW heraus nicht ging, wäre klar, dass es am Programm liegt. Aber selbst wenn der Speicher dynamisch zugewiesen werden würde, darf sich die Anwendung im kompilierten Zustand nicht so von der "nicht richtig kompilierten" unterscheiden. Doch wie gesagt, den Speicher weise ich einmalig zu.
Das RT Trace Execution Toolkit ist für eine Aufzeichnungsdauer von 2 Sekunden ok, mehr wird nicht protokolliert, auch wenn ich 10 MB Speicher zuweise. Aber wie gesagt, es kann kein generelles Problem mit dem Programm sein, da es aus LabVIEW heraus läuft.
|
|
|
15.12.2010, 11:42
Beitrag #4
|
Matze
LVF-Team
Beiträge: 1.027
Registriert seit: Apr 2010
20xx
2010
DE_EN
7xxxx
Deutschland
|
RT-Exe erstellen, was muss beachtet werden?
Hab's grad nochmals getestet:
Das erste, was ich nun im Programm mache ist, die User-LED einzuschalten. Anschließend wird der Rest ausgeführt.
Die LED geht erst nach der Wartezeit von ca. 2 Minuten an. D.h. davor läuft mein Programm noch gar nicht. Gibt's da Netzwerk-Optionen/-Timeouts o.ä. oder was könnte das denn sein?
|
|
|
17.01.2011, 11:24
Beitrag #5
|
|
|
25.01.2011, 21:36
Beitrag #6
|
Matze
LVF-Team
Beiträge: 1.027
Registriert seit: Apr 2010
20xx
2010
DE_EN
7xxxx
Deutschland
|
RT-Exe erstellen, was muss beachtet werden?
Danke. Auf dieses Ergebnis bin ich mittlerweile auch gekaommen.
In den 2 Minuten werden Betriebssystem gebootet, Treiber geladen etc. Aber 2 Minuten sind verdammt lange, finde ich. Doch das scheint bei den cRIOs normal zu sein.
|
|
|
09.04.2011, 20:58
Beitrag #7
|
|
|
| |