ProjectInfo.json
Die Projektinformationen werden in CODESYS 4 in der UTF-8 codierten Datei ProjectInfo.json abgelegt. Die Datei liegt im Fall eines Geräteprojekts im Verzeichnis *.fbsdev, im Fall eines Bibliotheksprojekts im Verzeichnis *.fbslib.
Die wichtigsten Projektinformationen befinden sich in der obersten Ebene in der Datei, die übrigen Schlüssel in dem dynamisch erweiterbaren Objekt oder Dictionary customProperties.
ProjectInfo.json{
"title": "C4 Test Compiled Library",
"version": "1.0.0-alpha3+build-42",
"author": "Team CBE", "company":
"CODESYS Development GmbH",
"description": "Test library for compiled library creation",
"defaultNamespace": "C4CompiledTestLib",
"placeholder": "C4CompiledTestLib",
"categories": ["System|SysLibs", "Docs|Fieldbus|Modbus", "Use Cases",
"customProperties": {
"DocFormat": "reStructuredText",
"SomeTime": {"type": "DateTime", "value": "2024-12-24T15:24:12" }
}
}Definierte Schlüssel in der Datei ProjectInfo.json
Die meisten Schlüssel entsprechen exakt den Projektinformationen in CODESYS 3, jedoch mit angepasster Namenskonvention.
Schlüssel | Typ | Beschreibung |
|---|---|---|
|
| Titel des Projekts Für Bibliotheken obligatorisch |
|
| Version des Projekts Für Bibliotheken obligatorisch |
|
| Hersteller des Projekts Für Bibliotheken obligatorisch |
|
| Autor des Projekts |
|
| Beschreibung des Projekts |
|
| Standardnamensraum bei Bibliotheken. Es wird empfohlen, diese Eigenschaft für gewöhnliche Bibliotheken zu setzen. Bei Geräteprojekten ohne Bedeutung. |
|
|
|
|
| Platzhalter, mit dem die Bibliothek aufgelöst wird. Für weitere Informationen siehe: Common Libraries |
|
|
Wird für "eigenständige" Bibliotheken empfohlen, deren Platzhalter nicht von anderen Quellen (zum Beispiel einer Gerätebeschreibung) aufgelöst wird. |
|
|
Für weitere Informationen siehe: Container Libraries |
|
|
Für weitere Informationen siehe: Interface Libraries |
|
|
Für weitere Informationen siehe: Common Libraries |
|
| Sollte für neue Bibliotheken auf |
|
| Steuert die Erzeugung von Funktionen, mit denen in der Applikation programmatisch auf die Projekteigenschaften zugegriffen werden kann. Hinweis: Dieser Schlüssel wird aktuell in CODESYS 4 noch nicht ausgewertet. |
|
| Steuert die Erzeugung von Funktionen, mit denen in der Applikation programmatisch auf die Bibliothekseigenschaften zugegriffen wird. Hinweis: Dieser Schlüssel wird aktuell in CODESYS 4 noch nicht ausgewertet. |
|
| Liste von Strings, die die Zugehörigkeit zu Projektkategorien definieren. |
|
| Eigenschaften, die nicht fest vordefiniert sind. Wie in CODESYS 3 kann in CODESYS 4 die Liste der Eigenschaften durch den Anwender dynamisch erweitert werden. Allerdings sind hierfür nur die folgenden Datentypen verfügbar:
Die Standardtypen
|
|
| Von CODESYS 3 in dateibasiertem Speicherformat abgelegte Metadaten, die für CODESYS 4 nicht relevant sind. Sie sind nur relevant, wenn ein File-based Storage CODESYS 3-Projekt in CODESYS 4 geöffnet werden soll. Daten, die ohne Funktionsverlust ignoriert werden können, werden ignoriert. Die übrigen Daten erzeugen in CODESYS 4 eine Fehlermeldung. Plug-in-spezifische Daten werden von einer Schnittstelle beurteilt. Alle Properties, die von keinem Plug-in erkannt werden, erzeugen einen Fehler. |
Bibliothekskategorien
Die Bibliothekskategorien dienen der hierarchischen Gruppierung der Bibliotheken. Eine Bibliothek kann keiner, einer oder mehreren Kategorien angehören, die Kategorien selbst sind hierarchisch aufgebaut.
Die Bibliothekskategorien werden als Liste categories in der ProjectInfo.json abgelegt.
Die Liste muss nicht vorhanden sein.
Die Liste kann beliebig viele Kategorien enthalten.
Die Bezeichner der hierarchischen Ebenen der Kategorien werden jeweils durch das Pipe-Symbol
|getrennt.Ein Kategoriebezeichner darf nicht leer sein oder nur aus Whitespace bestehen.
Die Zeichen der Unicode Kategorien "Control Characters" (U+0000-U+001F, U+007F-U+009F), "Line Separator" (U+2028) und "Paragraph Separator" (U+2029) sind ausgeschlossen.
Beispiel für gültige Kategorien: ["System|SysLibs", "Docs|Fieldbus|Sercos", "Use Cases"]
Beispiel für ungültige Kategorien: ["", "A||B", "A| |B", "A\r\nB"]