Ganz schön viele Fragen...
(04.02.2013 16:26 )KeineFrageGuteFrage schrieb: Vielen Dank für die Antwort! Über die VI Server Funktionen der Klasse "Project" kann ich zwar ein Deploy der Komponenten und der VIs des cFP durchführen (wahrscheinlich auch VIs hinzufügen). Aber das VI starten - wenn gerade kein anderes Programm auf dem cFP läuft - kann ich damit nicht. Was inzwischen aber funktioniert ist, dass ich das VI kontrollieren kann sobald es "in memory" ist, sprich manuell gestartet wurde und ausgeführt wird.
Ja, Deploy bringt die VIs nur ins RAM des Real-Time-Systems.
(04.02.2013 16:26 )KeineFrageGuteFrage schrieb: Der Unterschied scheint zu sein, dass allein das Hinterlegen des VIs auf dem cFP, dieses nicht automatisch in den Speicher lädt, also das eigentliche Programm nicht im Register der CPU liegt. Sehe ich das richtig? Wenn es so ist schlussfolgere ich, dass ich dem Betriebssystem (hier Pharlab) den Befehl geben müsste das Programm auszuführen.
Ja genau, kannst du vergleichen mit einer Exe, wenn die auf der HDD liegt, dann "kennt" das Betriebssystem sie, aber deshalb muss sie ja noch nicht ausgeführt werden.
(04.02.2013 16:26 )KeineFrageGuteFrage schrieb: Des Weiteren würde es bedeuten, dass das VI als ausführbare (bereits kompilierte) Datei hinterlegt werden muss?! Dies wirft aber eine grundsätzliche Frage auf, auf die ich bisher keine Antwort gefunden habe:
Kann der cFP/Pharlab tatsächlich "VIs auführen" oder kompiliert mein Rechner den Code für die ihm bekannte Hardware des cFPs und sendet dem cFP dann die executable?
Jetzt wird's etwas kompliziert mit dem Erklären.
Ein VI enthält immer auch kompilierten Code, und den auch Zielsystem-spezifisch. Daher kommt die Wartezeit beim Öffnen, wenn du z.B. ein VI, was du unter dem Zielsystem "Mein Computer" erstellt hast, dann unter dem Zielsystem "RT-Target" öffnest. Somit ist es dann auch klar, wieso du ein neues VI erst einmal speichern musst, bevor du es auf dem RT-Target ausführen kannst.
Und da auf dem RT-Target schon eine LabVIEW-Runtime-Umgebung installiert ist und läuft, kann das Target auch direkt VIs ausführen.
Bei einer rtexe ist es übrigens nicht viel anders, denn im Prinzip ist das nur ein Container-Datenformat, das alle VIs enthält, die deine Applikation benötigt - natürlich entsprechend optimiert (also mglw. FP & BD entfernt, automatisches Errorhandling deaktiviert usw.).
Folgendes habe ich übrigens gerade eben unter
und einem sbRIO-Target (und somit VxWorks) probiert, es funktioniert:
Ob das für die ein gangbarer Weg ist, kann ich nicht einschätzen.
Das Ganze ist sehr speziell, da du auch "Leute mit wenig LV-Kenntnissen" erwähnst - und das dann wieder im Zusammenhang mit einem RT-System.
Gruß, Jens