Bibliotheksplatzhalter
Ein Bibliotheksplatzhalter ist ein Platzhalter, der auf eine bestimmte Bibliothek verweist. Der Platzhalter kann dabei entweder auf eine feste Version oder auf die „immer neueste“ Version dieser Bibliothek aufgelöst werden.
Die Anleitung, wie Sie einen neuen Bibliotheksplatzhalter erstellen, finden Sie im Kapitel Befehl Bibliothek hinzufügen.
Die Auflösung aller im Projekt befindlichen Platzhalter stellen Sie auf Applikationsebene ein. Das bedeutet, dass Sie auf Applikationsebene sowohl die Auflösung von den Platzhaltern einstellen können, die direkt auf Applikationsebene eingebunden sind, als auch von solchen, die innerhalb von referenzierten Bibliotheken verwendet werden.
Sie können also von außen festlegen, auf welche Bibliothek ein Bibliotheksplatzhalter aufgelöst werden soll, der innerhalb einer anderen Bibliothek eingebunden ist. Es ist nicht nötig, die äußere Bibliothek erneut zu speichern, um die Versionen der intern verwendeten Bibliotheksplatzhalter zu ändern. Weitere Informationen, wie die Auflösung von Platzhaltern festgelegt werden kann, finden Sie im Abschnitt Platzhalterauflösung ändern.
Aufgrund dieser Möglichkeiten ist die Anpassung von verwendeten Bibliotheksversionen mit äußerst geringem Aufwand verbunden, sodass sich der Engineering-Prozess von Projekten und Bibliotheken sehr flexibel gestaltet.
Wenn eine Bibliotheksreferenz in ein Projekt eingebunden wird, sollte somit möglichst ein Platzhalter anstelle einer Bibliothek verwendet werden.
Beispiel
- Ein Applikationsprojekt benötigt die Bibliotheken LibA und LibB.
- Die Bibliothek LibB benötigt ihrerseits auch die Module von LibA.
- LibA wird damit als direkte Bibliothek in der Applikation, aber auch als Unterbibliothek von LibB verwendet.
- Durch die Referenzierung von LibA als Platzhalter – sowohl in der Applikation als auch in LibB – kann durch die Definition der Platzhalterauflösung im Applikationsprojekt festgelegt werden, welche Version der LibA im gesamten Projekt (Applikation und LibB) verwendet werden soll.
- Falls also beispielsweise eine Änderung innerhalb von LibA benötigt wird, wobei die Schnittstellen von LibA unverändert bleiben und die Kompatibilität mit der Vorgängerversion sichergestellt ist, kann dieser neue Bibliotheksstand im gesamten Projekt (Applikation und LibB) auf einfache Weise genutzt werden.
Dafür wird die geänderte LibA mit einer neuen Version erstellt und installiert (z. B. Änderung der Version von 1.0.0.0 auf 1.0.0.1). Falls der Platzhalter LibA im Applikationsprojekt als eine feste Bibliotheksversion, also als 1.0.0.0, aufgelöst wurde, wird die Platzhalterauflösung entsprechend auf LibA-Version 1.0.0.1 geändert. Falls der Platzhalter LibA im Applikationsprojekt hingegen als „neueste Version“ definiert wurde, ist keine Anpassung nötig – nach Installation von LibA-Version 1.0.0.1 wird diese automatisch referenziert und im gesamten Projekt (Applikation und LibB) verwendet.
Erkennen von Bibliotheken und Platzhaltern
Ob eine Bibliotheksreferenz als Bibliothek oder als Platzhalter eingebunden ist, kann anhand von Unterschieden im Bibliotheksverwalter und im Eigenschaftenfenster erkannt werden.
- Bibliotheksverwalter: Bei einem Platzhalter wird der Bibliotheksname dem Platzhalternamen zugewiesen, sodass ersichtlich ist, auf welche „reelle“ Bibliothek der Platzhalter verweist (z. B. MyPlaceholder = Tc2_Standard, * (Beckhoff Automation GmbH)). Bei einer Bibliothek ist dies nicht der Fall: hier wird nur der Bibliotheksname angezeigt (Tc2_Standard, * (Beckhoff Automation GmbH)).
In dem folgenden Screenshot handelt es sich bei den ersten beiden Einträgen im Bibliotheksverwalter um Platzhalter, der dritte Eintrag signalisiert die Verwendung einer Bibliothek. - Eigenschaftenfenster: Das Eigenschaftenfenster zeigt direkt in der obersten Zeile an, ob es sich um Platzhalter- oder Bibliothekseigenschaften handelt.
Die in dem Eigenschaftenfenster angezeigten Eigenschaften unterscheiden sich entsprechend: ein Platzhalter wird auf eine bestimmte Bibliothek samt bestimmter Bibliotheksversion aufgelöst – bei der Bibliothek ist bereits festgelegt, um welche Bibliothek es sich handelt, lediglich die Version kann noch angepasst werden. In beiden Fällen kann im Eigenschaftenfenster der Namensraum konfiguriert werden.