Skip to main content

Grundprinzip der Bibliotheksverwaltung

In CODESYS 4 werden Bibliotheken nicht fest in die Applikation eingebettet, sondern referenziert.

Die Referenzen stammen aus verschiedenen Quellen: aus den Angaben des Entwicklers, aus Gerätebeschreibungen und aus dem Programmiersystem selbst. Viele dieser Referenzen sind unscharf. Sie nennen einen Platzhalter oder ein Versionsmuster und benennen damit noch keine konkrete Bibliothek.

Der Compiler benötigt jedoch für jede Bibliothek eine eindeutige Version. Deshalb werden in CODESYS 4 zwei Dinge getrennt: die gewünschten Referenzen und die daraus ermittelten, eindeutigen Bibliotheken.

Das Grundprinzip: Referenzliste und Lock-Datei

Die Bibliotheksverwaltung beruht auf zwei Dateien.

Die Datei Libraries.json ist die Referenzliste. In ihr tragen Sie die direkten Bibliotheksreferenzen ein. Die Datei beschreibt, welche Bibliotheken die Applikation benötigt. Sie wird von Hand oder über die Oberfläche gepflegt. 

Aus der Referenzliste wird bei der Bibliotheksauflösung der vollständige Abhängigkeitsgraph ermittelt. Dabei wird jede Referenz rekursiv aufgelöst. Auch die Bibliotheken, die ihrerseits von referenzierten Bibliotheken benötigt werden, werden erfasst.

Das Ergebnis wird in die Lock-Datei Libraries.lock.json geschrieben.

Datei

Rolle

Libraries.json

Referenzliste mit den gewünschten Bibliotheken

Die Datei wird vom Entwickler verwaltet und gepflegt.

Libraries.lock.json

Lock-Datei mit dem aufgelösten Abhängigkeitsgraphen

Die Datei wird automatisch bei der Bibliotheksauflösung erstellt und aktualisiert.

Nutzen für Versionsverwaltung und Reproduzierbarkeit

Die Lock-Datei ist auf Reproduzierbarkeit ausgelegt. Ihre Schlüssel werden sortiert, das Format bleibt stabil, und für kompilierte Bibliotheken wird eine SHA384-Prüfsumme hinterlegt.

Damit eignet sich die Lock-Datei gut für eine Versionsverwaltung wie Git oder SVN. Die Datei liegt im lesbaren JSON-Format vor. Änderungen am Bibliotheksstand sind so im Diff nachvollziehbar und können im Code-Review geprüft werden.

Wenn die Lock-Datei zusammen mit dem Projekt eingecheckt wird, erhält jeder Entwickler denselben Bibliotheksstand.

Tipp

Wer npm oder NuGet kennt, erkennt das Prinzip der Lock-Datei wieder. Für die Arbeit mit CODESYS 4 ist dieses Vorwissen nicht nötig.