Bibliotheken verwenden
Bibliotheken sind Sammlungen wiederverwendbarer Objekte wie:
- POUs wie Funktionsbausteine oder Funktionen
- Interfaces und ihre Methoden und Properties
- Datentypen wie Enumerationen, Strukturen, Aliases, Unions
- Globale Variablen, Konstanten, Parameterlisten
- Textlisten, Bildersammlungen, Visualisierungen, Visualisierungselemente
- Externe Dateien (z. B. Dokumentationen)
Durch das Einbinden einer Bibliothek in ein Projekt können die durch die Bibliothek bereitgestellten Module genauso im Projekt verwendet werden wie die anderen Bausteine und Variablen, die direkt im Projekt definiert sind.
Empfehlungen und Hinweise Beachten Sie in Ergänzung zu den Beschreibungen der Bibliotheksverwendung die Anwendungshinweise im Abschnitt Empfehlungen und Hinweise. |
Für die Verwendung von Bibliotheken sind die nachfolgend aufgeführten Schritte relevant: Bibliothekserstellung, Bibliotheksinstallation und Bibliotheksverwaltung.
Falls eine Bibliothek bereits erstellt und installiert wurde (ist z. B. für System-Bibliotheken der Fall), wird nur der Schritt der Bibliotheksverwaltung bzw. der Einbindung von Bibliotheken benötigt. Eigene Bibliotheken müssen hingegen zuvor erstellt und installiert werden.
Bibliothekserstellung
- Bei der Erstellung einer Bibliothek kann zwischen zwei Bibliothekstypen gewählt werden: *.library (Source-Bibliothek) und *.compiled-library (übersetzte Bibliothek mit Quellcodeschutz).
- Voraussetzungen und weitere Informationen finden Sie im Abschnitt Bibliothekserstellung.
Bibliotheksinstallation
- Voraussetzung für die Verwendung einer Bibliothek in einem Projekt ist die vorherige Installation der Bibliothek auf dem System. Bibliotheken werden auf dem lokalen System in verschiedenen „Repositories“ (Verzeichnisse, Speicherorte) verwaltet. Bevor eine Bibliothek in ein Projekt eingebunden werden kann, muss sie mit einer definierten Versionsnummer auf dem lokalen System in ein solches Repository installiert werden.
- Ausnahme: Projekte, die als Bibliothek referenziert werden.
Siehe SPS-Projekt als referenzierte Bibliothek verwenden. - Ist eine verwendete Bibliotheksversion nicht im Repository installiert, wird dies über ein Hinweissymbol im Projektbaum an der Referenz verdeutlicht.
- Die Installation von Bibliotheken erfolgt im Bibliotheksrepository.
Bibliotheksverwaltung
- Der Bibliotheksverwalter bietet einen guten Überblick über die im Projekt verwendeten SPS-Bibliotheksreferenzen und kann genutzt werden, um Bibliotheken bzw. Platzhalter in ein Projekt einzubinden. Durch die Einbindung können die durch die Bibliotheksreferenz bereitgestellten Elemente im Projekt verwendet werden.
- Bibliotheksreferenzen, die als Unterbibliotheken in einer anderen Bibliothek referenziert sind, werden im Bibliotheksverwalter ebenfalls dargestellt. Es gibt allerdings auch „versteckte Bibliotheken“ (siehe Abschnitt Befehl Eigenschaften).
- Bei Verwendung einer Bibliothek wird immer eine eindeutige Version der Bibliothek referenziert. Welche dies ist, wird als effektive Version angegeben. Falls die Bibliothek mit einer festen Version angefügt wurde (z. B. 3.3.0.0), wird das Projekt immer diese Bibliotheksversion nutzen, auch wenn von dieser Bibliothek bereits neuere Versionen existieren sollten. Das Projekt kann über die Einstellung „immer neueste“/„*“ aber auch automatisch immer die neueste Version einer Bibliothek nutzen. In diesem Fall verwendet TwinCAT immer die neueste im Bibliotheksrepository gefundene Version der Bibliothek. Weitere Informationen sowie ein Beispiel finden Sie unter Befehl Immer neueste Version verwenden.
- Es ist nicht möglich, die gleiche Version derselben Bibliothek mehr als einmal zu einem Bibliotheksverwalter hinzufügen. Eine Version einer Bibliothek kann in einem Bibliotheksverwalter entweder als Bibliothek oder als Platzhalter referenziert werden.
- Liegt die Bibliothek nicht in übersetzter Form (*.compiled-library) vor, sondern ist die *.library-Datei vorhanden, so können die im Bibliotheksverwalter aufgeführten Elemente der Bibliothek durch einen Doppelklick auf den jeweiligen Eintrag geöffnet werden.
- Sie können Bibliotheksreferenzen in Form einer Bibliothek oder in Form eines Platzhalters zum Bibliotheksverwalter hinzufügen und so in Ihre Anwendung einbinden (siehe Abschnitt Befehl Bibliothek hinzufügen). Es sollten nach Möglichkeit Platzhalter verwendet werden. Weitere Informationen finden Sie im Abschnitt Bibliotheksplatzhalter.
- Wenn ein Bibliotheksmodul im Projekt angesprochen wird, werden die Bibliotheken und Repositories in der Reihenfolge durchsucht, in der sie im Bibliotheksrepository aufgeführt sind. Weitere Informationen finden Sie im Abschnitt Eindeutiger Zugriff auf Bibliotheksmodule oder -variablen.
Bibliotheksdokumentation
TwinCAT stellt Ihnen vielfältige Möglichkeiten der Bibliotheksdokumentation zur Verfügung. Informationen hierzu finden Sie im Abschnitt Bibliotheksdokumentation.
Sehen Sie im Folgenden außerdem Informationen zu diesen Themen:
- Referenzierte Bibliotheken
- Bibliotheksversionen
- Eindeutiger Zugriff auf Bibliotheksmodule und -variablen
- TwinCAT 2.x PLC Control Bibliotheken
- Externe und interne Bibliotheken bzw. Bibliotheksmodule, spätes Binden
Referenzierte Bibliotheken
- Eine Bibliothek kann andere Bibliotheken einbinden (referenzierte Bibliotheken), wobei die Verschachtelung beliebig tief sein kann. Wenn eine solche „Vater“-Bibliothek dann selbst in ein Projekt eingebunden wird, stehen die in ihr referenzierten Bibliotheken dort ebenfalls zur Verfügung.
- Bibliotheksreferenzen sollten unbedingt über Bibliotheksplatzhalter definiert werden, um Probleme zu vermeiden, die durch Versionsabhängigkeiten und die Notwendigkeit, herstellerspezifische Bibliotheken zu verwenden, entstehen können.
- In den Eigenschaften jeder referenzierten Bibliothek, können Sie festlegen, wie sie sich später, wenn sie über die „Vater“-Bibliothek in ein Projekt eingebunden wird, verhalten soll; beispielsweise ob sie im Bibliotheksverwalter „verborgen“ werden soll.
Bibliotheksversionen
- Mehrere Versionen einer Bibliothek können gleichzeitig auf dem System installiert sein.
- Mehrere Versionen einer Bibliothek können gleichzeitig im Projekt eingebunden sein. Es ist nicht ratsam, das zu tun. In diesem Fall muss unbedingt jeder der Bibliotheken ein eindeutiger Namensraum zugeordnet sein und der Zugriff auf die Symbole muss qualifiziert erfolgen. Beispiele: V1.Send, V2.Send
- Die Version bzw. Auflösung von Bibliotheken bzw. Platzhaltern kann im Eigenschaftenfenster konfiguriert werden. Die Auflösung von Platzhaltern kann außerdem im Platzhalter-Dialog angepasst werden.
- Insbesondere wenn andere Bibliotheken in einer Bibliothek referenziert werden, aber auch um ein Projekt kompatibel zu machen, wird dringend empfohlen, Platzhalter zu verwenden. Damit können Probleme aufgrund von Versionsabhängigkeiten oder der Notwendigkeit, herstellerspezifische Bibliotheken zu verwenden, vermieden werden.
Eindeutiger Zugriff auf Bibliotheksmodule oder -variablen
- Wenn im Projekt und in Bibliotheken mehrere Module oder Variablen gleichen Namens verfügbar sind, sollte der Zugriff auf eine Modulkomponente eindeutig sein. Bezogen auf Bibliotheken wird die Eindeutigkeit durch Hinzufügen des Namensraums der Bibliothek vor dem Modulnamen erreicht.
- Die Standardeinstellung für den Namensraum einer Bibliothek entspricht dem Bibliothekstitel. Für eine Bibliothek kann hingegen auch explizit ein davon abweichender Namensraum definiert werden: entweder allgemein für die Bibliothek bei der Bibliothekserstellung in den Projekteigenschaften oder für den lokalen Gebrauch der Bibliothek in einem Projekt im Eigenschaftenfenster der Bibliotheksreferenz.
Der Namensraum der Bibliothek muss als Präfix des Bezeichners verwendet werden, damit ein eindeutiger Zugriff auf ein Modul möglich ist, das mehrfach im Projekt vorhanden ist. - Beispiel:
- Die Bibliothek Lib1 wird in einem Applikationsprojekt eingebunden.
- Die Funktion F_Sample ist sowohl in der Bibliothek Lib1 als auch in der Applikation deklariert.
- Um einen eindeutigen Zugriff auf die beiden Funktionen zu implementieren, wird der Namensraum der Bibliothek vor dem Aufruf der Bibliotheksfunktion hinzugefügt. Dadurch wird eindeutig die Funktion der Bibliothek Lib1 angesprochen.
- Aufruf der Applikationsfunktion
nResult := F_Sample(nInput := nVar);
- Aufruf der Bibliotheksfunktion
nResult := Lib1.F_Sample(nInput := nVar);
TwinCAT 2.x PLC Control Bibliotheken
- Bibliotheken, die mit TwinCAT 2.x PLC Control (*.lib) erstellt wurden, werden weiterhin unterstützt.
- Ein „altes“ Bibliotheksprojekt (*.lib) kann in TwinCAT 3 PLC geöffnet und in eine „neue Bibliothek“ (*.library/*.compiled-library) konvertiert werden.
- Wenn ein altes Projekt geöffnet wird, das alte Bibliotheken referenziert, kann gewählt werden, ob diese Referenzen beibehalten, durch andere ersetzt oder gelöscht werden sollen. Sollen sie beibehalten werden, werden die betreffenden Bibliotheken in das neue Format konvertiert und dabei automatisch in das „System“-Bibliotheksrepository installiert. Falls sie die nötigen Projektinformationen nicht enthalten, können diese unmittelbar nachgetragen werden. Die Vorgehensweise, gemäß derer eine bestimmte alte Bibliothek bei der Konvertierung eines alten Projekts gehandhabt wurde, kann in den Projektoptionen gespeichert werden. Somit muss, sollte die gleiche Bibliothek erneut bei der Konvertierung eines alten Projekts in Erscheinung treten, die Vorgehensweise nicht wiederholt definiert werden, sondern wird automatisch ausgeführt.
- Im Abschnitt Neues Element hinzufügen wird die Vorgehensweise beim Öffnen und Konvertieren von Projekten und Bibliotheken beschrieben.
Externe und interne Bibliotheksmodule, spätes Binden
- Bei externen Bibliotheksmodulen handelt es sich um Firmware-Funktionen, deren Implementierung sich nicht in der SPS-Bibliothek befindet. Für Bibliotheken mit Firmware-Funktionen gilt, dass die Firmware auf dem Zielsystem vorliegen muss und erst gebunden wird, wenn die Applikation dort läuft.