Skip to main content

Libraries.json

Este es un archivo de manifiesto que contiene las referencias directas a la biblioteca que han sido declaradas explícitamente por el desarrollador de la aplicación o biblioteca. Es válido en el directorio principal de una aplicación y en el directorio raíz de un proyecto de biblioteca. La misma biblioteca no puede ser referenciada con dos espacios de nombres diferentes dentro del mismo directorio. Libraries.json archivo.

El archivo consta de tres secciones:

  • La primera sección references Contiene un diccionario JSON cuya clave es el espacio de nombres de la referencia de la biblioteca y cuyos valores son objetos que describen los detalles de la referencia. $type El término "miembro" se utiliza para distinguir entre los diferentes tipos de referencia.

  • La segunda sección placeholderOverrides Contiene un diccionario JSON donde las claves son los nombres de los marcadores de posición y los valores son los ID de las bibliotecas o los patrones que anulan el marcador de posición.

  • La tercera sección libraryParameters Contiene un diccionario JSON de pares clave/valor. Las claves del diccionario externo pueden contener los siguientes valores:

    • Un marcador de posición precedido por un signo de almohadilla (# ) para hacer referencia a la biblioteca de marcadores de posición

    • A LibraryId para hacer referencia a la biblioteca administrada

    • Una ruta relativa para hacer referencia al proyecto de la biblioteca

    Los diccionarios internos contienen los parámetros de la biblioteca como clave y los valores correspondientes como valor.

Miembro

Válido para $type

Requerido

Valor predeterminado

Descripción

$type

Sí

Tipo de referencia de biblioteca

  • ManagedLibrary: ID de la biblioteca que consta de nombre, versión y proveedor

  • RelativePath Ruta relativa a un proyecto de biblioteca en el disco duro

  • Placeholder: Nombres de marcador de posición con una resolución predeterminada. Una extensión o placeholderOverrides anulará esta resolución si es necesario.

allowUnqualifiedAccess

Todo

false

Si el valor es true, entonces se puede acceder a la biblioteca sin calificación de espacio de nombres. El valor recomendado para el código nuevo es false Esto corresponde a la negación de la qualifiedOnly valor en CODESYS 3, que por defecto es false Por razones históricas. Esto solo surte efecto si la biblioteca permite el acceso sin restricciones.

publishSymbolsInContainer

Todo

false

Si el valor es true En ese caso, la biblioteca referenciada publicará sus símbolos en la biblioteca contenedora que la referencia. Utilice esta configuración para definir los símbolos publicados al crear una biblioteca contenedora.

optional

Todo

false

Si el valor es true En ese caso, no se producirán errores de compilación simplemente porque la biblioteca no esté disponible. Sin embargo, pueden producirse errores de compilación debido a la falta de símbolos en dicha biblioteca.

linkAllContent

Todo

false

Si el valor es true Entonces, todo el contenido de la biblioteca se vinculará. Esto normalmente se usa solo para bibliotecas del sistema.

path

RelativePath

Sí

La ruta de la biblioteca, en relación con la ubicación actual Libraries.json archivo. La ruta utiliza la notación URI. Por lo tanto, utilice ../ para subir un nivel de directorio y foo/ para abrir el foo carpeta. La ruta apunta a una CODESYS 4 directorio del proyecto de la biblioteca (*.fbslib/).

libraryId

ManagedLibrary

Sí

El ID de la biblioteca administrada, donde la parte de la versión puede ser un patrón. El formato del patrón se define en la sección Bibliotecas de referencia.

includePrerelease

ManagedLibrary, Placeholder

false

Si el valor es true, entonces cuando se comparan las versiones, los patrones de versión también aceptan versiones de prelanzamiento dentro del rango permitido por el patrón.

Si el valor es false, entonces las versiones con etiquetas de prelanzamiento solo son aceptadas por un patrón de versión cuando al menos un elemento de comparación, con la misma tupla [mayor, menor, parche] dentro del patrón, también tiene una etiqueta de prelanzamiento.

placeholder

Placeholder

Sí

El marcador de posición para una biblioteca referenciada. Se resuelve al ID de la biblioteca mediante la resolución del marcador de posición.

defaultResolution

Placeholder

null

Opcional: Si esta opción está habilitada, todos los POU utilizarán esta versión (o patrón de versión) de la biblioteca.

ejemplo 47. Ejemplo
{
  "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"
    }
  }
}



Bibliotecas de referencia

Al igual que en CODESYS 3, bibliotecas en CODESYS 4 Se puede hacer referencia a través de marcadores de posición, identificadores de biblioteca exactos o identificadores de biblioteca con patrones de versión. Además, las bibliotecas de origen que están disponibles como bibliotecas editables también se pueden referenciar a través de su ruta relativa a la Libraries.json archivo,

Patrón de versión

Sintaxis de ejemplo

Descripción

1.2.3.4

Corresponde exactamente a la versión especificada 1.2.3.4.

1.2.3

Esto corresponde exactamente a la versión 1.2.3 o 1.2.3.0.

*

x

X

La última versión disponible, pero no hay versiones preliminares.

1.2.*

1.2.*.*

1.2.x

1.2.X

El último nivel de parche publicado de la versión 1.2

>=1.2.3-alfa.2

Versión 1.2.3 o posterior, incluidas las versiones preliminares de 1.2.3 de alpha.2 y superiores.

1.0.0 - 2.0.0

1 - 2

>=1.0.0 <=2.0.0

Compatible con las versiones desde la 1.0.0.0 hasta la 2.0.0.0 inclusive, pero excluyendo las versiones preliminares.

Nota: Los rangos con "-" requieren espacios alrededor del operador para distinguirlos de los indicadores de prelanzamiento: 1.0.0-2.0.0 != 1.0.0 - 2.0.0

  • 1.0.0 - 2.0.0 : rango >=1.0.0 a <=2.0.0

  • 1.0.0-2.0.0: versión exacta 1.0.0 con la bandera de prelanzamiento 2.0.0

>=1,2,3 <1,5

Admite cualquier versión desde la 1.2.3 en adelante, pero excluyendo la 1.5.

>=1.0

Versión mínima 1.0 (inclusive)

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

Todas las versiones 1.x, excepto la versión 1.5.0.