Desarrolladores/Bibliotecas gráficas
Crear bibliotecas gráficas
Autoría, publicación, vinculación y actualización de bibliotecas de faceplates versionadas.
2 min de lectura
Una biblioteca empaqueta plantillas e imágenes en un único archivo *.abscada-library.json. Se vincula a otro proyecto con un alias y una versión concreta.
Flujo de trabajo
- Autoría: desarrolla los faceplates en un proyecto normal, con una pantalla de pruebas enlazada a variables internas.
- Publicar: Bibliotecas… → Publicar biblioteca…, elige plantillas, nombre, versión, autor y licencia.
- Vincular: en el proyecto consumidor, Bibliotecas… → Vincular… y un alias, por ejemplo
equipos. - Usar: las plantillas aparecen como
equipos__unidad,equipos__valvula. - Actualizar: Actualizar desde… con una versión nueva de la misma biblioteca.
Reglas de autonomía
- Las referencias a variables deben ser parámetros
$nombre. - No se admiten dependencias de scripts, pantallas o visores del proyecto de autoría.
- Las imágenes, incluidas las de estados dinámicos, se incrustan en base64.
- Los colores de paleta
@Nombrese resuelven a HEX al publicar. - Los archivos publicados no se sobrescriben: cada versión es un archivo nuevo.
Publicar desde Python
from abscada.project import Project
from abscada.faceplate_libraries import export_library
p = Project.load("autor")
export_library(p, ["bomba", "valvula"], "equipos-1.0.0.abscada-library.json",
"Equipos de proceso", "1.0.0",
author="Mi equipo", license="GPL-3.0-or-later")
Vincular y actualizar desde Python
from abscada.faceplate_libraries import link
p = Project.load("consumidor")
link(p, "equipos-1.0.0.abscada-library.json", "equipos")
p.save()
# Revisión posterior compatible:
link(p, "equipos-1.1.0.abscada-library.json", "equipos", update=True)
p.save()
Una actualización se rechaza si quita un parámetro usado, cambia su tipo, añade uno obligatorio o elimina una plantilla en uso. El proyecto anterior se conserva intacto.
Formato del paquete
{"schema_version": 1, "name": "Equipos de proceso", "version": "1.0.0",
"author": "Mi equipo", "license": "GPL-3.0-or-later",
"faceplates": {"bomba": {"width": 100, "height": 60, "parameters": {}, "elements": []}},
"assets": {"a1b2c3.svg": "<base64>"}}
El proyecto guarda una instantánea completa con huella SHA-256 en libraries.json: funciona aunque el archivo original desaparezca.
Validar
.venv\Scripts\python tools/validate_library.py equipos-1.0.0.abscada-library.json
.venv\Scripts\python -m pytest tests/test_faceplate_libraries.py
Límites actuales
Sin faceplates anidados, sin visores de tendencias/alarmas dentro de plantillas, sin scripts empaquetados ni dependencias entre bibliotecas. Los parámetros son primitivos: una UDT se descompone en parámetros hoja.
Adaptar bibliotecas
La especificación descargable describe controles, propiedades, dinámicas y criterios de aceptación para adaptar objetos a abSCADA.
Librería estándar y del proyecto
Studio reúne la librería del proyecto, la estándar y las externas en Librerías. La estándar viene con la aplicación y es de solo lectura: cópiala al proyecto para modificarla. Las carpetas del proyecto solo organizan el editor. Las externas conservan alias, instantánea, versión y huella; no se actualizan implícitamente. El formato y las APIs siguen usando el término faceplate. Consulta la guía de uso.