LabVIEWForum.de - Ablaufinvariante VIs

LabVIEWForum.de

Normale Version: Ablaufinvariante VIs
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen
Frage zu ablaufinvarianten VIs: Ich habe 4 Systeme über 4 COM ports angeschossen und möchte für alle den gleichen Prozess durchführen (unabhängig voneinander)
Den Prozess hab ich in einem VI abgebildet und möchte dieses VI nun für alle 4 systeme verwenden. Da ich keine erfahrung mit ablaufinvarianz habe hier die eine oder andere frage dazu:

Sind die SubVIs eines ablaufinvarianten VIs ebenfalls ablaufinvariant oder muss ich für jedes SubVI einzeln entscheiden ob ich es ablaufinvariant brauche?
Wie soll ich bei meinem Prozess entscheiden welche VIs ich ablaufinvariant brauche? Logisch wäre für mich, wenn ich all jene VIs nehmen würde welche eine Zeit / Sensorwert / Status etc abwarten bevor der Prozess weiterläuft. Für einfachere berechnungsVIs oder ähnliches würde ich ablaufvariante VIs verwenden

Gibt es was spezielles zu beachten wenn ich in den VIs auf COM ports zugreiffe oder daten in files Schreibe? Ist hier ablaufinvarianz Problemlos oder kann das zu konflikten führen? (zB wenn 2 VIs gleichzeitig Daten in ein file schreiben möchten (verschiedene Files).

Muss ich sonst etwas grundlegendes zu beachten? Umgang mit globals, lokalen Variablen etc?

Was sind nachteile der ablaufinvarianz ausser das ich nicht debuggen kann?

danke für eure hilfe
serge
Hallo Serge,

Zitat:Sind die SubVIs eines ablaufinvarianten VIs ebenfalls ablaufinvariant oder muss ich für jedes SubVI einzeln entscheiden ob ich es ablaufinvariant brauche?
Die Ablaufvarianz legt man für jedes subVI in dessen Eigenschaften fest.

Zitat:Wie soll ich bei meinem Prozess entscheiden welche VIs ich ablaufinvariant brauche?
Nach Anforderung!
Ich verwende z.B. eine FGV in einem reentrant-VI: die sollte man tunlichst nicht reentrant setzen…
(Andererseits willst du natürlich verhindern, das ein non-reentrant VI deine Abläufe blockieren kann!)

Zitat:Gibt es was spezielles zu beachten wenn ich in den VIs auf COM ports zugreiffe oder daten in files Schreibe?
Ja: du solltest vermeiden, auf "shared resources" (COM-Ports, Dateien) parallel zugreifen zu wollen - das kann schnell zu Problemen führen!
Wenn du nur Daten in eine Datei schreibst, kannst du das durchaus noch parallel machen. Eine andere Lösung wäre aber auch, die Daten in eine Queue zu schreiben und in einem weiteren VI die Queue zu lesen und (nur) dort dann in die Datei zu speichern…

Zitat:Muss ich sonst etwas grundlegendes zu beachten? Umgang mit globals, lokalen Variablen etc?
- Wozu brauchst du hier globale Variablen?
- Lokale Variablen sind lokal in dem VI, in dem sie aufgerufen werden. Da reentrant-VIs geklont im Speicher liegen, verwendet jeder Clon seine eigene lokale Variable. (Meist Oft gibt es bessere Lösungen als lokale Variablen.)
Referenz-URLs