Übersicht
|
Querverbindungen entstehen, wenn ein VI im Speicher ein anderes SubVI referenziert, als das, mit welchem es zuletzt gespeichert wurde, d. h. ein SubVI, das der Entwickler nicht zu referenzieren beabsichtigt hatte. NI LabVIEW könnte beispielsweise versehentlich auf eine frühere Version oder einen separaten Teil desselben gespeicherten Programmcodes verlinken. Folglich zeigt die Anwendung unerwartetes Verhalten, das sich nur schwer lokalisieren und rückgängig machen lässt. So etwas frustriert sogar erfahrene Anwender von LabVIEW. Neben vielen anderen Verbesserungen und neuen Funktionen enthält LabVIEW 8.5 neue Werkzeuge, die Entwickler dabei unterstützen, Querverbindungen in LabVIEW zu verhindern.
Inhaltsverzeichnis
- Was sind Querverbindungen?
- Werkzeuge in LabVIEW zum Vorhersagen, Vermeiden und Beheben von Querverbindungen
- Abhängigkeiten
- Komplette Pfade ansehen
- Karteireiter „Dateien“ Im LabVIEW Projekt
- Dialogfenster „Konflikte beheben“
- Ersetzen durch…
- Zusammenfassung
- Mehr über die Version LabVIEW 8.5
- Mehr über die aktuelle LabVIEW-Version
Was sind Querverbindungen?
In LabVIEW entstehen Querverbindungen wegen Unterschieden zwischen VIs im Speicher und VIs auf Festplatte. Objekte aus LabVIEW haben im Speicher zwar einmalige Namen, doch auf der Festplatte können mehrere VIs mit demselben Namen vorkommen. Wenn ein Anwender ein VI von der Festplatte laden möchte, überprüft LabVIEW deshalb erst, ob ein VI im Speicher denselben Namen hat. Abhängig vom Ergebnis wird der Anwender aufgefordert, entweder das VI aus dem Speicher zu verwenden oder es zu verwerfen und das VI von der Festplatte zu übernehmen.
Bei SubVIs fordert LabVIEW den Entwickler allerdings nicht auf, sich zwischen dem VI im Speicher und dem auf der Festplatte zu entscheiden. Stattdessen verlinkt LabVIEW zu den VIs, die sich schon im Speicher befinden und öffnet eine (vielfach ignorierte) Warnmeldung, dass VIs von unerwarteten Standorten geladen wurden.
So sind Querverbindungen zwar einfach zu definieren, oftmals aber schwer zu vermeiden. Viele LabVIEW Anwender erstellen Backups von ihren Arbeitsverzeichnissen, um eine Möglichkeit zur Wiederherstellung zu haben, falls ihnen Daten verloren gehen. Deshalb gibt es auf einem Rechner oft viele Kopien eines VIs. Querverbindungen bereiten LabVIEW Anwendern häufig Kopfzerbrechen und verursachen u. a. folgende Probleme:
- Unerwartetes Systemverhalten durch Aufrufen eines SubVIs, das eine andere Funktionalität aufweist, als das gewünschte SubVI
- Unbeabsichtigte Modifikationen, wenn ein anderes VI als das gewünschte bearbeitet wird oder VIs versehentlich in neue LabVIEW Versionen gespeichert werden
- Beeinträchtigte Produktivität wegen des Zeitaufwands, der zum Auffinden und Reparieren von Querverbindungen und für die Wiederherstellung von VIs notwendig ist
Werkzeuge in LabVIEW zum Vorhersagen, Vermeiden und Beheben von Querverbindungen
LabVIEW 8.5 enthält eine Fülle neuer Werkzeuge, die Anwendern nicht nur dabei helfen, potenzielle Situationen, in denen Querverbindungen entstehen können, zu identifizieren und zu vermeiden, sondern diese auch reparieren, sollten sie schon aufgetreten sein. Der Großteil dieser neuen Funktionen ist in das LabVIEW Projekt integriert, dessen ursprüngliche Version in LabVIEW 8 dafür konzipiert war, die Verwaltung von Zielgeräten zu verbessern (z. B. um Entwicklern die Verwaltung von VIs auf dem Host- und dem Embedded-System gleichzeitig zu ermöglichen).
Ein LabVIEW Projekt kann nun Objekte enthalten, die mit anderen Objekten im selben Projekt in Konflikt stehen. Ein Konflikt ist eine potenzielle Querverbindung, die auftritt, wenn LabVIEW versucht, ein VI mit dem gleichen qualifizierten Namen zu laden, wie ein bereits im LabVIEW Projekt vorhandenes Objekt. Identifiziert LabVIEW einen solchen Konflikt (d. h. eine Situation, in der eine Querverbindung auftreten könnte), zeigt es das Wort [Konflikt] nach dem Namen des VIs im LabVIEW Projekt an (s. Abbildung 1). Außerdem erscheint ein gelbes Warnzeichen auf den Objekten im LabVIEW Projekt, die miteinander in Konflikt stehen.
.gif)
Abbildung 1: LabVIEW Projekt mit Konflikt
Zur Vermeidung von Querverbindungen sollten Entwickler folgende neue Funktionen von LabVIEW 8.5 zur Aufhebung von Konflikten verwenden:
- Verbesserte Option zur Anzeige des vollständigen Pfads
- Neuer Karteireiter „Dateien“
- Neues Dialogfenster zum Beheben von Konflikten
- Einfache Möglichkeit, ein VI in einem LabVIEW Projekt zu ersetzen
- Neue Funktionalität zum Auffinden von aufrufenden Objekten und SubVIs
Zur Erläuterung, wie LabVIEW Entwickler diese neuen Werkzeuge mit dem LabVIEW Projekt einsetzen können, um Konflikte aufzuheben (und dadurch Querverbindungen zu verhindern), erklärt dieses Whitepaper jeden dieser Punkte anhand eines einfachen Beispiels.
Abhängigkeiten
Zur Lokalisierung der Ursache des Konflikts sollte der Entwickler die Dateien untersuchen, die vom LabVIEW Projekt referenziert werden. Um Konflikte zu vermeiden, verfolgt LabVIEW automatisch die Hierarchie jedes Objekts, das Entwickler im LabVIEW Projekt integrieren. Wenn Entwickler ein VI aus einem LabVIEW Projekt öffnen, fügt LabVIEW alle Dateien, die zur Ausführung dieser VIs notwendig sind und die noch nicht zum LabVIEW Projekt gehören, dem Ordner Abhängigkeiten hinzu. LabVIEW organisiert den Ordner Abhängigkeiten in weiteren drei Ordnern – vi.lib, user.lib und Objekte im Speicher. Wird ein VI geöffnet, das sich momentan nicht im LabVIEW Projekt befindet, wird es von LabVIEW dem Ordner Objekte im Speicher beigefügt. Diese gehören so lange zum LabVIEW Projekt, wie sich das VI, das sie referenzieren, im Speicher befindet. Der Ordner Abhängigkeiten wird aktualisiert, wenn Entwickler ein Objekt im LabVIEW Projekt hinzufügen, entfernen oder speichern (s. Abbildung 2).

Abbildung 2: Ein zweites VI, das sich im Ordner Abhängigkeiten befindet, verursacht den Konflikt.
Steht ein abhängiges Objekt mit einem anderen Objekt im LabVIEW Projekt in Konflikt, wird es aus dem Ordner Abhängigkeiten gelöscht, wenn die Objekte, die es referenzieren, entfernt werden. Bevor jedoch ein Konfliktobjekt entfernt wird, muss erst festgestellt werden, warum der Konflikt vorliegt.
Komplette Pfade ansehen
Die Ursache für einen Konflikt (der zu einer Querverbindung führen könnte) lässt sich am einfachsten feststellen, indem man sich den vollständigen Pfad zu jedem Objekt im LabVIEW Projekt mit dem Warnsymbol [Konflikt] anzeigen lässt. Wählt man nach einem Rechtsklick auf das Projekt-Stammverzeichnis View»Full Paths (Ansicht » Komplette Pfade), wird eine Spalte mit den Pfaden angezeigt, die Objekten im LabVIEW Projekt entsprechen (s. Abbildung 3).
Abbildung 3: Das LabVIEW Projekt mit der Anzeige der vollständigen Pfade
Die Ansicht mit den vollständigen Pfaden ist zwar nicht neu (sie war auch schon in LabVIEW 8 und 8.20 möglich), jedoch war sie bisher nicht in einer separaten Spalte im LabVIEW Projekt dargestellt. Das klare, einfacher verständliche Layout dieser Option hilft Entwicklern, den genauen Ablageort eines Elements mit einem Konflikt auf der Festplatte zu erkennen. Um den Konflikt zu beheben, müssen alle Objekte (bis auf eines) mit demselben qualifizierten Namen im LabVIEW Projekt umbenannt oder entfernt werden.
Karteireiter „Dateien“ Im LabVIEW Projekt
Entwickler können den Ablageort der Dateien unter dem neuen Karteireiter Dateien ansehen. Über den Reiter Objekte, der die Inhalte des LabVIEW Projekts anzeigt, interagieren Entwickler mit vertrauten Komponenten des LabVIEW Projekts, die es auch schon in LabVIEW 8 und 8.20 gab, wie etwa Mein Computer, Build-Spezifikationen und Abhängigkeiten (s. Abbildung 1). Der neue Reiter Dateien zeigt die zugehörigen Dateien der Objekte des LabVIEW Projekts an (s. Abbildung 4).
Abbildung 4: Der Karteireiter Dateien zeigt den Ablageort von Objekten auf der Festplatte an.
Unter dem Reiter Dateien können Entwickler visuell verifizieren, ob unerwünschte VIs und andere Dateien aus veralteten Verzeichnissen nicht versehentlich in ein bestimmtes LabVIEW Projekt integriert werden. Außerdem können sie Operationen auf der Festplatte durchführen, wie etwa Objekte umbenennen, neu organisieren und entfernen. Wird beispielsweise eine Datei auf der Seite Dateien umbenannt, gibt LabVIEW dieser Datei auch auf der Festplatte den neuen Namen. Entwickler können Dateien auf der Festplatte mithilfe des Reiters Dateien verschieben, ohne die Verbindungen zwischen VIs negativ zu beeinflussen. Wenn ein Entwickler ein VI über den Reiter Dateien verschiebt, aktualisiert LabVIEW automatisch alle aufrufenden Objekte im LabVIEW Projekt mit den neuen Dateiinformationen für dieses VI.
Anwender können mit einem Rechtsklick auf einen Ordner oder ein Objekt zwischen verschiedenen Ansichten wechseln und aus dem Shortcut-Menü Show in Items View (Objektansicht) oder Show in Files View (Dateiansicht) wählen. Das entsprechende Shortcut-Menü erscheint nur, wenn ein Objekt in der jeweils anderen Ansicht besteht.
Dialogfenster „Konflikte beheben“
Die am meisten automatisierte Methode zur Aufhebung von Konflikten in einem LabVIEW Projekt ist die Bedienfläche Konflikte beheben (Resolve Conflicts) in der Menüleiste des LabVIEW Projekts, welche das Dialogfeld Konflikte im Projekt beheben (Resolve Project Conflicts) aufruft. Mit einem Rechtsklick auf ein Objekt mit Konflikt und Auswahl von Resolve Conflicts (Konflikte aufheben) aus dem Shortcut-Menü oder mit dem Dialogfeld Resolve Project Conflicts können Konflikte behoben werden, indem die Objekte mit Konflikt auf den korrekten Pfad umgeleitet werden (s. Abbildung 5).
Dieses Dialogfenster zeigt alle Konflikte im LabVIEW Projekt mit qualifiziertem Namen an. Innerhalb des Dialogfelds können zwei miteinander in Konflikt stehende VIs mit demselben Namen verglichen werden (der bestehende grafische Unterschied wird aufgerufen). Außerdem kann man Details für jedes ausgewählte Objekt ansehen, wie etwa Pfad, qualifizierter Name, Erstellungsdatum und Änderungsdatum. Diese Informationen sind hilfreich, wenn festgestellt werden soll, welches Objekt das korrekte für eine Anwendung ist. Während ein Entwickler alle Konflikte im Dialogfenster löst, werden diese Informationen in der Liste automatisch aktualisiert.
Ersetzen durch…
Entdeckt ein Anwender, dass eines oder mehrere VIs sich auf das falsche SubVI beziehen, möchte aber zur Behebung des Problems nicht das Dialogfenster Resolve Project Conflict nutzen, stehen immer noch andere Möglichkeiten zur Verfügung. Alle aufrufenden Objekte können auf ein SubVI mit einem anderen Pfad umgeleitet werden, indem man mit der rechten Maustaste auf ein VI mit Konflikt im LabVIEW Projekt klickt und Replace with... (Ersetzen durch...) aus dem Shortcut-Menü wählt, um das richtige SubVI auf der Festplatte auszuwählen (s. Abbildung 6). LabVIEW aktualisiert automatisch alle Objekte, die den falschen Pfad referenzieren, mit dem neuen Pfad.
Zusammenfassung
Die Version LabVIEW 8.5 ergänzte das LabVIEW Projekt um wichtige neue Funktionen. Diese beziehen sich auf Querverbindungen, einem Problem, das viele LabVIEW Entwickler seit langem haben (v. a. bei großen Anwendungen). Die neuen Funktionen bieten eine Reihe von Möglichkeiten, wie Querverbindungen vorhergesehen, vermieden und repariert werden können. Das Ergebnis ist erhöhte Produktivität und weniger Zeitaufwand für die Fehlerbehebung.
Mehr über die Version LabVIEW 8.5
Besuchen Sie unser Web-Portal zur Version LabVIEW 8.5.
Mehr über die aktuelle LabVIEW-Version
Neue Funktionen der aktuellen LabVIEW-Version
Webcast: NI LabVIEW – Neue Funktionen der grafischen Entwicklungsumgebung
Legal
This tutorial (this "tutorial") was developed by National Instruments ("NI"). Although technical support of this tutorial may be made available by National Instruments, the content in this tutorial may not be completely tested and verified, and NI does not guarantee its quality in any way or that NI will continue to support this content with each new revision of related products and drivers. THIS TUTORIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND AND SUBJECT TO CERTAIN RESTRICTIONS AS MORE SPECIFICALLY SET FORTH IN NI.COM'S TERMS OF USE (http://ni.com/legal/termsofuse/unitedstates/us/).


.gif)
.gif)

