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!
Hat das schonmal jemand gemacht und kann mir helfen?
Meine erste Frage ist: Wenn ich mein RT-Programm erstellt habe und auf dem Windowsrechner laufen lasse, kann ich auf demselben Rechner auch das Frontpanel meines Programms benutzen, oder geht wirklich nur die Vernetzung zweier Systeme?
3mal erfolgreich 1mal nicht erfolgreich gemacht.
Du kannst das Frontpanel von deinem RT Programm benutzen, das waere aber nicht im Sinne von RT.
RT bedeutet, dass ein VI zeitkritisch laeuft und zur Gaenze von stoerenden Faktoren (Thread-Wechsel, Mausklicks, Keyboardklicks) abgeschirmt ist.
Dem gegenueber steht ein anderes VI, dass dem User das Monitoren bzw. Controlling bietet (diese beiden laufen am RT System -> ohne Frontpanel). Am anderen Ende, sprich am Host Rechner laeuft dann wiederum ein VI, dass mittels TCP/IP oder neuerdings auch Shared Variables mit dem RT System kommuniziert, ohne die RT Eigenschaften zu behindern.
Zwischen zeitkritischem VI und "Kommunikationsvi" (welche beide am RT laufen) werden die Daten mittels FIFO Speichern ausgetauscht, die im Sinne von RT arbeiten.
Wenn ich aber zum Beispiel als RT-Aufgabe eine Servoachse fahren möchte, muss ich ja irgendwo zum Beispiel einen positionswert vorgeben können, also brauche ich auf jeden Fall ein Frontpannel.
Wenn ich das Frontpannel nich in Realtime benutzen kann, sehe ich folgendes Problem:
Servoachsen könnten ja auch mit einem Button im Tippbetrieb, oder "Einrichten" solange "fahren", bis ein Button wieder losgelassen wurde. Also muß ich garantieren können, dass das loslassen des Buttons innerhalb einer gewissen Zeit erkannt wird, sonst fährt der Motor ja weiter. Garantieren kann man dies doch aber nur in Realtime - oder sehe ich das Falsch?
ein RT VI kann schon ein Frontpanel haben, aber in der Regel wird des nicht genutzt. Und eigentlich werden sie GAR NICHT genutzt um einenen Benutzer interagieren zu lassen, höchstens um etwas zu visualisieren ...
Zudem: RT unterstützt keine latching Booleans, also ist da nix mit "Knopf Drücken und Achse fährt bis wieder losgelassen" ...
Wenn man mit RT arbeitet braucht man 2 PCs: einmal das RT-Ziel auf dem die zeitkritischen Sachen bearbeitet werden und einen Steuerungs Rechner, auf dem visualisiert wird, Daten eingegeben werden, etc. Die Kommunikation zwischen den beiden Systemen erfolgt in der Regel über TCP/IP, oder in LV 8 über shared variables ...
Du kannst das Frontpanel schon im RT benutzen, nur dann kannst gleich wieder auf Windoof zurueck greifen!
Nehmen wir mal an, dass du auf der einen Seite ein RT System verwendest, ABER auf der anderen Seite keine RT Applikation generierst.
D.h. du programmierst auf deinem Host Rechner - verbindest dich aufs RT System und drueckst auf den Run-Button - das VI wird in den fluechtigen Speicher kompiliert und laeuft vor sich hin.
Am Host System siehst du dann ggf. Aktualisierungen diverser Elemente.
Schon mal nachgedacht, wie die "Werte" von A nach B bzw. B nach A uebertragen werden? In deinem Projekt hast du keine TCP/IP Funktionen, Shared Variables oder sonstiges verwendet.
D.h. durch die staendige Kommunikation mit dem Host kannst du niemals garantieren, dass innerhalb einer harten Grenze auf Aktionen reagiert wird (was jedoch im Sinne von RT sein sollte -> RT ist nicht schnell sondern deterministisch!)
Wenn du vor hast, dein Programm so aufzubauen bzw. anzufangen, dann verzichte lieber komplett auf das RT System und starte lieber auf deinem Host Rechner den Windows-Task-Manager - Prozesse - such dir die LabVIEW.exe raus - rechtsklick - Prioritaet - Hoeher als normal...
Dann hast ungefaehr den gleichen Effekt
Schade, dass also eine "richtige" echtzeit-Visualisierung nicht geht.
Ist denn diese Vorgehensweise ohne RT zulässig? Immerhin könnte etwas Kaputt gehen, wenn sich Windoof beim Tastendruck aufhängt - oder noch schlimmeres.
Kernel Fehler hatte ich auch schon des oefteren, nur das Problem war, das der Grund nicht eruiert werden konnte.
Ist dein Desktop PC auf Multithreading enigestellt oder ist es ein Dual-Core Prozessor?
Verwendest du eine interne oder externe Netzwerkkarte?
Wenn du eine externe Netzwerkkarte zusaetzlich zur internen verwendest, hast dann schon versucht die interne zu deaktivieren/aktivieren?
Hast evtl. einen 2ten Rechner wo du es austesten kannst?
Ist dein System auf FAT formatiert?
Mit welchen Boot-Disketten hast es ausgetestet (nur mit der Format Diskette oder auch mit der Safe-Mode Diskette)?
Welche Frontside-Bus Taktung hat der Rechner? (Hat bei mir z.B. einen Unterschied ausgemacht - 800 hat nicht funktioniert, 400 schon...)
Hast auch diesen Absatz beruecksichtigt:
LabVIEW Real-Time requires that the BIOS include the PCI BIOS interface funtion set. Whether the BIOS includes PCI BIOS support is generally not specified on data sheets and may be difficult to determine. If the PCI BIOS interface function set is not present in the BIOS, LabVIEW Real-Time will not be able to access PCI devices and will generally display an error that it failed to find and configure a network adapter. An example motherboard which does not include PCI BIOS support is the Intel® D915GEV.
Die Taktung sollte ebenfalls im Bios aufgefuehrt sein, ansonsten in den Specs.
Ich glaube, reine Vermutung, dass es an der internen Netzwerkkarte liegt.
Hast du evtl. die Moegl auf eine externe zurueck zu greifen?
Pro 10/100S z.B.