Skip to main content

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.

Beispiel 48. Beispiel einer Datei 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.

Tabelle 19.

Schlüssel

Typ

Beschreibung

title

string

Titel des Projekts

Für Bibliotheken obligatorisch

version

string

Version des Projekts

Für Bibliotheken obligatorisch

company

string

Hersteller des Projekts

Für Bibliotheken obligatorisch

author

string

Autor des Projekts

description

string

Beschreibung des Projekts

defaultNamespace

string

Standardnamensraum bei Bibliotheken. Es wird empfohlen, diese Eigenschaft für gewöhnliche Bibliotheken zu setzen.

Bei Geräteprojekten ohne Bedeutung.

released

bool

true: Bibliothek ist freigegeben

placeholder

string

Platzhalter, mit dem die Bibliothek aufgelöst wird.

Für weitere Informationen siehe: Common Libraries

autoResolveUnbound

bool

true: Automatische Platzhalterauflösung wird angefordert.

Wird für "eigenständige" Bibliotheken empfohlen, deren Platzhalter nicht von anderen Quellen (zum Beispiel einer Gerätebeschreibung) aufgelöst wird.

isContainerLibrary

bool

true: Bibliothek ist eine Container-Bibliothek

Für weitere Informationen siehe: Container Libraries

isInterfaceLibrary

bool

true: Bibliothek ist eine Interface-Bibliothek

Für weitere Informationen siehe: Interface Libraries

isCommonLibraryContainer

bool

true: Bibliothek ist eine Container-Bibliothek, die über Platzhalter aufgelöst werden muss.

Für weitere Informationen siehe: Common Libraries

languageModelAttribute

string

Sollte für neue Bibliotheken auf qualified-access-only gesetzt werden, um den qualifizierten Zugriff über das Namensraum-Präfix zu erzwingen.

generateProjectInfoFunctions

bool

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.

generateLibraryInfoFunctions

bool

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.

categories

string[]

Liste von Strings, die die Zugehörigkeit zu Projektkategorien definieren.

customProperties

object{}

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:

  • string

  • number: Wertebereich bzw. .NET Typ int32

  • boolean: true, false

  • Version: .NET System.Version als String dargestellt, zum Beispiel "1.2.3.4"

  • DateTime

Die Standardtypen string, number und boolean werden direkt als jeweiliges JSON-Literal geschrieben. Für die Typen Version und DateTime ist eine Kennzeichnung über ein Typfeld erforderlich, um sie von normalen Strings unterscheiden zu können. Deshalb werden sie als JSON-Objekte mit den Membern "type" und "value" geschrieben, zum Beispiel:

"SomeVersion": {"type": "Version", "value": "1.2.3.4" },

"SomeTime": {"type": "DateTime", "value": "2024-12-24T15:24:12" },

v3Meta

object{}

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"]