Für das Erstellen, das Referenzieren, das Verschlüsseln und Schützen von Bibliotheken wie auch das Dokumentieren sollten Sie unbedingt bestimmte Regeln einhalten, um Konsistenzprobleme zu vermeiden und den Anwender ausreichend zu unterstützen.
Die nachfolgende Beschreibung gibt nur einen Überblick über die Möglichkeiten der Bibliotheksentwicklung. Eine weiterführende detaillierte Beschreibung zu diesen Themen finden Sie in den Richtlinien für die Bibliotheksentwicklung "LibDevSummary".
Siehe auch
Allgemeines
-
Sie können für Bibliotheken Kategorien definieren. Die Bibliotheken werden dann im Bibliotheksrepository unterhalb dieser Kategorien dargestellt.
-
Sie können für eine Bibliothek einen Namensraum definieren, um einen eindeutigen Zugriff auf die eingebundenen Objekte zu ermöglichen. Durch das Hinzufügen des Namensraums vor dem Bausteinnamen wird ein Zugriff eindeutig:
<namespace>.<variable name>
Beispiel:
AC.Module
-
Sie können die POUs nicht verschlüsselter Bibliotheken (
*.library
) durch einen Doppelklick auf den jeweiligen Eintrag im Bibliotheksverwalter öffnen. -
Sie können folgende Bibliothekstypen erzeugen:
-
*.library
: Implementierungsbibliothek (Quellcode der Bibliothek) -
*.compiled-library
,*.compiled-library-v3
: Geschützte Bibliothek; der Quellcode ist nicht mehr zugänglich. -
*_Itfs.library
: Interfacebibliothek; enthält nur Objekte, die der Schnittstellendefinition einer Komponente dienen (beispielsweise Konstanten, Strukturen, Schnittstellen) und keinen Code generieren -
*_Cnt.library
: Containerbibliothek; enthält keine Programmierbausteine, sondern ausschließlich andere Bibliotheken; dient somit zur bequemen Einbindung eines ganzen Sets von Bibliotheken, deren Bausteine auf oberster Ebene der Containerbibliothek veröffentlicht werden.
-
-
Sie können externe Bibliotheken in die Applikation einbinden. Externe Bibliotheken werden außerhalb von CODESYS in einer anderen Programmiersprache wie beispielsweise C programmiert.
Schutz von Bibliotheken
-
Quellcode-Schutz:
Durch das Bereitstellen einer Bibliothek im "compiled-library"-Format ist der Quellcode der Bibliotheksbausteine nach Einbinden der Bibliothek in ein Projekt nicht mehr sichtbar.
-
Signierung:
Ab CODESYS V3 SP15 wird für die Signierung von Bibliotheksprojekten (
*.compiled-library-v3
) immer ein Zertifikat verwendet. Über eine Einstellung im Security-Screen kann die Signierung erzwungen werden. Dann benötigen Sie zum Erzeugen einer übersetzten Bibliothek ein für Codesignierung geeignetes Zertifikat in Ihrem Benutzerprofil.Für Bibliotheksprojekte, die mit CODESYS < V3 SP15 kompatibel sein müssen (
*.compiled-library
), ist nur die weniger sichere Signierung mit einem privaten Schlüssel und einem zugehörigen Token möglich. Diese veraltete Methode sollte nur nur noch aus Kompatibilitätsgründen verwendet werden und erfolgt über die Registerkarte „Signieren“ der „Projektinformationen“.Hinweis: Für das Signieren von Bibliotheken sollten Sie die Compilerversion 3.5.15.0 oder höher verwenden, da dadurch ein besseres Speicherformat genutzt wird.
-
Lizenzierung:
Sie können Bibliotheken durch eine Lizenz (Dongle oder Soft Container) schützen. Lizenzgeschütze Bibliotheken können in das Bibliotheksrepository installiert werden, für die Verwendung im Projekt muss jedoch die gültige Lizenz auf dem Rechner vorliegen. Die Lizenzverwaltung erfolgt im Lizenz-Manager.
Bibliotheksversionen
-
Sie können gleichzeitig mehrere Versionen einer Bibliothek auf dem System installieren.
-
Sie können gleichzeitig mehrere Versionen einer Bibliothek in Ihr Projekt einbinden. 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.SendBlob
,V2.SendBlob
Referenzierte Bibliotheken
-
Sie können eine Bibliothek in andere Bibliotheken einbinden (referenzierte Bibliotheken). Dabei kann die Verschachtelung beliebig tief sein.
-
Sie können festlegen, ob referenzierte Bibliotheken im Bibliotheksverwalter sichtbar sein sollen.
-
Sie können referenzierte Bibliotheken über Bibliotheksplatzhalter einbinden. Damit vermeiden Sie Probleme, die aufgrund von Versionsabhängigkeiten oder der Notwendigkeit, herstellerspezifische Bibliotheken zu verwenden, entstehen können.