Skip to main content

Libraries.json

Diese Datei enthält die direkten Bibliotheksverweise, die vom Entwickler der Applikation/Bibliothek explizit deklariert wurden. Sie ist im Hauptverzeichnis einer Applikation und im Stammverzeichnis eines Bibliotheksprojekts gültig. Dieselbe Bibliothek kann nicht mit zwei verschiedenen Namespaces innerhalb derselben Libraries.json referenziert werden.

Die Datei besteht aus drei Abschnitten:

  • Der erste Abschnitt references enthält ein JSON-Dictionary, dessen Schlüssel der Namespace des Bibliotheksverweises ist und dessen Werte Objekte sind, die die Details des Verweises beschreiben. Das Member $type wird verwendet, um zwischen den verschiedenen Referenztypen zu unterscheiden.

  • Der zweite Abschnitt placeholderOverrides enthält ein JSON-Dictionary, in dem die Schlüssel die Platzhalternamen und die Werte die Bibliotheks-IDs oder Muster sind, die den Platzhalter überschreiben.

  • Der dritte Abschnitt libraryParameters enthält ein JSON-Dictionary von Schlüssel-Wert-Paaren. Die Schlüssel des äußeren Dictionaries können folgende Werte enthalten:

    • Einen Platzhalter mit vorangestelltem #, der zur Referenzierung der Platzhalterbibliothek verwendet wird

    • Eine LibraryId, die zur Referenzierung der verwalteten Bibliothek verwendet wird

    • Einen relativen Pfad, der zur Referenzierung des Bibliotheksprojekts verwendet wird

    Die inneren Dictionaries enthalten die Bibliotheksparameter als Schlüssel und die zugehörigen Werte als Wert.

Member

Gültig für $type

Erforderlich

Standardwert

Beschreibung

$type

ja

Typ der Bibliotheksreferenz

  • ManagedLibrary: Bibliotheks-ID, bestehend aus Name, Version und Hersteller

  • RelativePath: Relativer Pfad zu einem Bibliotheksprojekt auf der Festplatte

  • Placeholder: Platzhalternamen mit einer Standardauflösung. Eine Extension oder placeholderOverrides überschreibt diese Auflösung bei Bedarf.

allowUnqualifiedAccess

alle

false

Wenn der Wert true ist, kann auf die Bibliothek ohne Namespace-Qualifizierung zugegriffen werden. Der empfohlene Wert für neuen Code ist false. Dies entspricht der Negation des Werts qualifiedOnly in CODESYS 3, der aus historischen Gründen standardmäßig auf false gesetzt ist. Dies hat nur dann eine Auswirkung, wenn die Bibliothek einen unqualifizierten Zugriff zulässt.

publishSymbolsInContainer

alle

false

Wenn der Wert true ist, veröffentlicht die referenzierte Bibliothek ihre Symbole in der referenzierenden Container-Bibliothek. Verwenden Sie diese Einstellung, um die veröffentlichten Symbole beim Erstellen einer Container-Bibliothek zu definieren.

optional

alle

false

Wenn der Wert true ist, treten keine Kompilierungsfehler auf, die allein dadurch verursacht werden, dass die Bibliothek nicht verfügbar ist. Es können jedoch Kompilierungsfehler auftreten, die durch fehlende Symbole aus dieser Bibliothek verursacht werden.

linkAllContent

alle

false

Wenn der Wert true ist, werden alle Inhalte der Bibliothek verknüpft. Dies wird normalerweise nur für Systembibliotheken verwendet.

path

RelativePath

ja

Der Pfad der Bibliothek, relativ zum Speicherort der aktuellen Datei Libraries.json. Der Pfad verwendet die URI-Notation. Verwenden Sie also ../, um eine Verzeichnisebene nach oben zu wechseln, und foo/, um den Ordner foo zu öffnen. Der Pfad verweist auf ein CODESYS 4 Bibliotheksprojektverzeichnis (*.fbslib/).

libraryId

ManagedLibrary

ja

Die Bibliotheks-ID der verwalteten Bibliothek, wobei der Versionsteil ein Muster sein kann. Das Format des Musters ist im Abschnitt Referenzieren von Bibliotheken definiert.

includePrerelease

ManagedLibrary, Placeholder

false

Wenn der Wert true ist, akzeptieren Versionsmuster beim Vergleich auch Vorabversionen innerhalb des durch das Muster zulässigen Bereichs.

Wenn der Wert false ist gilt: Versionen mit Prerelease-Tags werden nur dann von einem Versionsmuster akzeptiert, wenn mindestens ein Vergleichselement mit demselben [Major, Minor, Patch]-Tupel innerhalb des Musters ebenfalls ein Prerelease-Tag hat.

placeholder

Placeholder

ja

Der Platzhalter zu einer referenzierten Bibliothek. Er wird über die Platzhalterauflösung in die Bibliotheks-ID aufgelöst.

defaultResolution

Placeholder

null

Optional: Wenn diese Option aktiviert ist, verwenden alle Programmierbausteine diese Version (oder dieses Versionsmuster) der Bibliothek.

Beispiel 47. Beispiel
{
  "references" : {
    "TESTEXTERNALS": {
      "$type": "RelativePath",
      "path": "../../../TestLib.fbslib/",
      "optional": true,
      "linkAllContent": true
    },
    "SysTime": {
      "$type": "Placeholder",
      "placeholder": "SysTime"
    },
    "Standard": {
      "$type": "ManagedLibrary",
      "libraryId": "Standard, 3.5.18.0 (System)"
    },
    "AcmeTools": {
      "$type": "ManagedLibrary",
      "libraryId": "Acme Tools, 3.5.* (Acme International Inc.)",
      "publishSymbolsInContainer": true, // comments and trailing commas are tolerated
    },
    "WsCompiled": {
      "$type": "RelativePath",
      "path": "../../../pipeline-assets/Some library.compiled-library", 
      "noHash": true
    }
  },
  "placeholderOverrides": {
    "SysTime" : "SysTime, 3.5.17.0 (System)",
    "OtherPlaceholder" : "SomeToolsLib, >=1.2.0 (SomeTools Company)"
  },
  "libraryParameters": {
    "#SysTime": {
      "ParamOne": "250",
      "ParamTwo": "true"
    },
    "Acme Tools, 3.5.* (Acme International Inc.)": {
      "ParamOne": "125"
    },
    "../../../TestLib.fbslib/": {
      "ParamThree": "125"
    }
  }
}



Referenzieren von Bibliotheken

Wie in CODESYS 3 können in CODESYS 4 Bibliotheken über Platzhalter, exakte Bibliotheks-IDs oder Bibliotheks-IDs mit Versionsmustern referenziert werden. Darüber hinaus können Quellbibliotheken, die als bearbeitbare Bibliotheken vorliegen, auch über ihren relativen Pfad zur Datei Libraries.json, referenziert werden,

Versionsmuster

Beispielsyntax

Beschreibung

1.2.3.4

Entspricht genau der angegebenen Version 1.2.3.4

1.2.3

Entspricht genau der Version 1.2.3, beziehungsweise 1.2.3.0

*

x

X

Die neueste verfügbare freigegebene Version, jedoch keine Vorabversionen

1.2.*

1.2.*.*

1.2.x

1.2.X

Der neueste freigegebene Patch-Level von Version 1.2

>=1.2.3-alpha.2

Version 1.2.3 oder neuer, einschließlich Vorabversionen von 1.2.3 ab alpha.2 und neuer

1.0.0 - 2.0.0

1 - 2

>=1.0.0 <=2.0.0

Passt auf Versionen von 1.0.0.0 bis genau einschließlich 2.0.0.0, jedoch ohne Vorabversionen.

Hinweis: Bereiche mit '-' erfordern Leerzeichen um den Operator, um sich von Vorabversions-Kennzeichen zu unterscheiden: 1.0.0-2.0.0 != 1.0.0 - 2.0.0

  • 1.0.0 - 2.0.0 : Bereich >=1.0.0 bis <=2.0.0

  • 1.0.0-2.0.0 : exakte Version 1.0.0 mit Prerelease-Flag 2.0.0

>=1.2.3 <1.5

Akzeptiert jede Version ab einschließlich 1.2.3 aufwärts bis, aber ohne 1.5

>=1.0

Mindestversion 1.0 (einschließlich)

>=1.0 <1.5||>=1.5.1 <2

Alle 1.x-Versionen außer der Version 1.5.0