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!
ich habe gerade beim Verteilen eine Fehlermitteilung, die ich nach verschiedenen Versuchen nicht mehr erklären kann.
Das System ist ein verteiltes, der PXI-PC ist als Host, der cRIO als RT-Target definiert (Zugriff über Scan-Modus)
Beim verteilen gibt er die angehangen Fehlermeldung aus, eine Blick auf den Speicher des cRIO hat ergeben, dass genügend vorhanden ist (sowohl RAm als auch Fester Speicher.
Hat einer eine Idee?? Ist wirklich dringend, weil es ohen Lösung nicht weitergeht
Die Historienlänge meines Diagramm war offensichtlich zu lang (3.000.000 Samples).
Kann mir jemand erklären, warum das so ist. Ich würde verstehen, wenn es beim Laufen abgebrochen wäre ... aber beim verteilen?
Zur näheren Erläuterung: Ich habe das Programm in diesem Zusatnd schon einmal laufen lassen. Kann es sein, dass die Historie irgendwie gespeichert wurde? Da ich sowohl die Logs auf dem cRIO gelöscht habe und cRIO und Hiost neu gestartet habe, wundert mich das.
--> Trotzdem würde ich es gerne verstehen.
Danke.
16.02.2012, 20:21 (Dieser Beitrag wurde zuletzt bearbeitet: 16.02.2012 20:22 von GerdW.)
beim Laden/Speichern/Verteilen eines VIs wird Speicher für die Chart-Historie reserviert. 3e6 Samples bei 8Bytes pro Wert (DBL) macht mal locker 24MB RAM, da wird es auf dem cRIO schnell knapp.
Wobei man sich eh fragt, wozu du auf dem cRIO einen Chart mit großer Historie brauchst - die haben doch keinen Bildschirm zum Anzeigen...
das ist richtig, dass sie keinen Bildschirm haben. Ich lasse das Programm allerdings auf dem cRIO laufen (Scan-Modus, der Host zeigt das Bild an), da das Verhalten eines 1kHz-Regelkreises im Verlauf angeguckt wird ... die 3e6 Samples, weil jeder Wert angezeigt wird (OK, war unnötig, wusste ich damals noich nicht) und weil das Langzeitverhalten interessant war.
Die Reservierung des Speichers erklärt es teilweise.
Beim 1. Mal ließ sich das Programm ja problemlos verteilen. Nach einem Durchlauf habe ich es modifiziert und wollte einen zweiten Durchlauf stareten ... nach deiner Erklärung würde es ja aber bedeuten, dass sowohl der alte Speicher noch belegt war und der neue reserviert werden sollte ... was ja nicht ging.
"dass sie keinen Bildschirm haben. Ich lasse das Programm allerdings auf dem cRIO laufen (Scan-Modus, der Host zeigt das Bild an)"
Du lässt also eine Routine auf dem cRIO laufen, ohne dessen Beschränkungen zu akzeptieren und das ganze noch im Quasi-Debugging, wenn du dir das VI dann noch auf dem Host anzeigen lässt...
Zitat:Beim 1. Mal ließ sich das Programm ja problemlos verteilen.
Wenn du das VI mit leerer Historie verteilst, wird noch kein Speicher benötigt. Dann lässt du es laufen, sammelst Daten in der Historie an und editierst das VI wieder. Womöglich legst du die Historie sogar als Default-Daten an, speicherst (was auf dem PC kein Problem ist) und verteilst dann wieder - bängbummkrach. Übrigens: die Rechnung mit den 24MB gilt natürlich nur für einen Plot, mehrere Plots multiplizieren den Speicherbedarf...
Zitat:Du lässt also eine Routine auf dem cRIO laufen, ohne dessen Beschränkungen zu akzeptieren und das ganze noch im Quasi-Debugging, wenn du dir das VI dann noch auf dem Host anzeigen lässt...
Verstehe ich nicht ganz. Meinst du mit den Beschränkungen den geringen Speicher? Da ich mit dem cRIO (und einem verteilten RT-System) erst seit diesem Projekt arbeite, komme ich mit den Spezialitäten noch nicht gut zurecht ... wie man sieht.
Wenn ich dich jetzt richtig verstehe, dann wäre es sinnvoll:
1. das Programm zum debuggen auf dem Host ablufen zu lassen und nur auf die Eingänge des cRIO per Scan-Mode zuzugreifen ODER aus dem Programm des cRIO alle unnötigen Oberflächen und Diagramme zu entfernen, eine Startup.exe zu erstellen und die Messdaten per shared variables zu verteilen --> der Host zeichnet sie dann auf und es kann verbesserrt werden (letztere Variante scheint mir aber doch sehr aufwendig)
2. die Historiendaten nach dem beenden des Programmes zu löschen --> ich habe da bis jetzt noch keine Lösung gefunden
Könntest du mir da etwas helfen (mit Beispielen, Hinweisen, Links, etc.)?
zu 1) Weder noch. Du bist da jetzt über einen Spezialfall gestolpert mit deiner extrem großen Historienlänge des Charts.
Es ist natürlich von Vorteil, während der Entwicklungsphase ein VI interaktiv auf einem cRIO auszuführen. Mit der startup.rtexe wird das dann schon schwieriger.
Was richtig Speicher auf dem cRIO freischaufelt, wenn du auf den Scan-Engine verzichtest und die Datenerfassung selber im FPGA programmierst.
zu 2) Historie Chart löschen mag ein guter Ansatz sein. Einfach ein leeres Array in die PropertyNode "History Data" schreiben.
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!
danke für die Auflösung meiner Verunsicherung
Das löschen sollte funktionieren, das habe ich schon in anderem Kontext genutzt.
Da ich vom FPGA programmieren bis jetzt immer etwas Respekt hatte ... kannst du mir da ein paar sinnvolle Tipps bzw. Links, etc. geben, wie/wo ich mich weiter"bilden" kann. Mit FPGA müsste das Programm dann aber kompiliert werden, richtig? Wäre also eventl. eine Variante, um es nach dem debuggen zu optimieren, richtig?