ParamManagerScripts/backend/script_groups/IO_adaptation
Miguel 2297e217c7 Se añadió un nuevo parámetro "siemens_tia_project" en el archivo de configuración JSON para especificar la ubicación del proyecto Tia Portal. Además, se eliminaron varios archivos de log obsoletos relacionados con la ejecución de scripts, optimizando así la estructura del proyecto. 2025-07-10 16:50:00 +02:00
..
.debug Implementación de nuevas funcionalidades en la API y mejoras en la interfaz de usuario 2025-06-12 20:06:45 +02:00
Hardware.md Implementación de nuevas funcionalidades en la API y mejoras en la interfaz de usuario 2025-06-12 20:06:45 +02:00
IO Adapted.md Creado nuevo grupo de scripts IO_adaptation 2025-05-14 18:04:17 +02:00
Inputs PLCTags.xlsx Creado nuevo grupo de scripts IO_adaptation 2025-05-14 18:04:17 +02:00
PLC Tags.csv Creado nuevo grupo de scripts IO_adaptation 2025-05-14 18:04:17 +02:00
TagTable Properties.csv Creado nuevo grupo de scripts IO_adaptation 2025-05-14 18:04:17 +02:00
data.json Varias mejoras en el grupo de IO Adapted. Creado boton para abrir vscode y miniconda para instalar nuevas librerias 2025-05-15 14:11:24 +02:00
description.json Add functionality to open current working directory in file explorer 2025-05-19 18:21:28 +02:00
esquema_group.json Varias mejoras en el grupo de IO Adapted. Creado boton para abrir vscode y miniconda para instalar nuevas librerias 2025-05-15 14:11:24 +02:00
esquema_work.json Se añadió un nuevo parámetro "siemens_tia_project" en el archivo de configuración JSON para especificar la ubicación del proyecto Tia Portal. Además, se eliminaron varios archivos de log obsoletos relacionados con la ejecución de scripts, optimizando así la estructura del proyecto. 2025-07-10 16:50:00 +02:00
io_paths_config.json Creado nuevo grupo IO_adaptation con flujo de trabajo desde x1 a x5 2025-05-15 12:16:01 +02:00
readme.md Actualización de scripts de adaptación IO y mejora en la gestión de directorios de trabajo 2025-06-07 15:40:30 +02:00
script_config.json - Se mejoró la lógica de procesamiento de tablas en `x5_md_to_excel.py`, permitiendo la lectura y combinación de múltiples tablas en un DataFrame. 2025-06-19 00:09:05 +02:00
scripts_description.json Implementación de nuevas funcionalidades en la API y mejoras en la interfaz de usuario 2025-06-12 20:06:45 +02:00
work_dir.json Se actualizaron los archivos de configuración JSON para incluir nuevos parámetros de directorios relacionados con las exportaciones de Tia. Además, se mejoró la documentación en el archivo backend_setup.md, añadiendo una sección sobre servicios de Modelos de Lenguaje Grandes (LLM) y su configuración. Se realizaron cambios en la interfaz de usuario en index.html, renombrando secciones para mayor claridad. 2025-07-10 16:44:20 +02:00
x0_documentation.py Creado nuevo grupo IO_adaptation con flujo de trabajo desde x1 a x5 2025-05-15 12:16:01 +02:00
x1_export_CAx.py Implementación de nuevas funcionalidades en el Launcher GUI 2025-06-06 16:35:11 +02:00
x2_process_CAx.py Implementación de nuevas funcionalidades en la API y mejoras en la interfaz de usuario 2025-06-12 20:06:45 +02:00
x3_excel_to_md.py Creado nuevo grupo IO_adaptation con flujo de trabajo desde x1 a x5 2025-05-15 12:16:01 +02:00
x4_prompt_generator.py Varias mejoras en el grupo de IO Adapted. Creado boton para abrir vscode y miniconda para instalar nuevas librerias 2025-05-15 14:11:24 +02:00
x5_md_to_excel.py Primera Version TwinCat Converter 2025-06-19 14:30:15 +02:00
x7_update_CAx.py Implementación de nuevas funcionalidades en la API y mejoras en la interfaz de usuario 2025-06-12 20:06:45 +02:00

readme.md

How to work with config setup Example

script_root = os.path.dirname( os.path.dirname(os.path.dirname(os.path.dirname(file))) ) sys.path.append(script_root) from backend.script_utils import load_configuration

if name == "main": """ Load configuration from script_config.json in the current script directory.

Returns:
    Dict containing configurations with levels 1, 2, 3 and working_directory

Example usage in scripts:
    from script_utils import load_configuration

    configs = load_configuration()
    level1_config = configs.get("level1", {})
    level2_config = configs.get("level2", {})
    level3_config = configs.get("level3", {})
    working_dir = configs.get("working_directory", "")

""""

try:
    configs = load_configuration()
    working_directory = configs.get("working_directory")
except Exception as e:
    print(f"Warning: Could not load configuration (frontend not running): {e}")
    configs = {}
    working_directory = None

# Validate working directory with .debug fallback for standalone execution
if not working_directory or not os.path.isdir(working_directory):
    print("Working directory not set or invalid in configuration.")
    print("Using .debug directory as fallback for direct script execution.")
    
    # Fallback to .debug directory under script location
    script_dir = os.path.dirname(os.path.abspath(__file__))
    debug_dir = os.path.join(script_dir, ".debug")
    
    # Create .debug directory if it doesn't exist
    os.makedirs(debug_dir, exist_ok=True)
    working_directory = debug_dir
    print(f"Using debug directory: {working_directory}")
else:
    print(f"Using configured working directory: {working_directory}")

# Acceder a la configuración específica del grupo
group_config = configs.get("level2", {})

# Leer parámetros con valores por defecto (usando los defaults del esquema como guía)
# Parámetros necesarios para x4
cfg_scl_output_dirname = group_config.get("scl_output_dir", "scl_output")
cfg_xref_output_dirname = group_config.get("xref_output_dir", "xref_output")
cfg_xref_source_subdir = group_config.get("xref_source_subdir", "source")

Debug Directory Fallback

Cuando los scripts se ejecutan directamente (no desde el frontend), utilizan un sistema de fallback para determinar el directorio de trabajo:

  1. Con Frontend: Los scripts utilizan el working_directory configurado dinámicamente a través de load_configuration()
  2. Ejecución Directa (Debug): Si no hay configuración válida, los scripts crean automáticamente un directorio .debug en la ubicación del script

Estructura del directorio de debug:

IO_adaptation/
├── .debug/                     # ← Directorio creado automáticamente para debug
│   ├── *.aml                   # Archivos AML procesados
│   ├── *.hierarchical.json     # Datos estructurados extraídos
│   ├── *_IO_Upward_Debug.md    # Archivo de debug de conexiones IO
│   ├── Hardware.md             # Tabla resumen de IO
│   └── <PLC_Name>/
│       └── Documentation/
│           └── *_Hardware_Tree.md  # Árbol de hardware por PLC
├── x2_process_CAx.py          # Script principal
└── example/                   # Archivos de ejemplo

Ventajas del directorio .debug:

  • Separación clara entre archivos de debug y archivos de producción
  • Fácil limpieza (se puede eliminar todo el directorio .debug)
  • No interfiere con archivos del proyecto principal
  • Creación automática sin configuración manual

Directory structure for Tia Portal scripts

<working_directory>/ ├── <Project_Name>_CAx_Export.aml ├── <PLC1_Name>/ │ ├── ProgramBlocks_XML/ │ │ └── ... (archivos XML de bloques) │ ├── ProgramBlocks_SCL/ │ │ └── ... (archivos SCL de bloques) │ ├── ProgramBlocks_CR/ │ │ └── ... (archivos XML de referencias cruzadas de bloques) │ ├── PlcTags/ │ │ └── ... (archivos XML de tablas de tags) │ ├── PlcTags_CR/ │ │ └── ... (archivos XML de referencias cruzadas de tablas de tags) │ ├── PlcDataTypes_CR/ │ │ └── ... (archivos XML de referencias cruzadas de UDTs) │ ├── SystemBlocks_CR/ │ │ └── ... │ └── SoftwareUnits_CR/ │ └── ... │ └── Documentation/ │ └── Source │ └── ... (archivos md de bloques de programa) │ └── JSON │ └── ... (archivos JSON temporales) │ └── xref_calls_tree.md │ └── xref_db_usage_summary.md │ └── xref_plc_tags_summary.md │ └── full_project_representation.md │ └── <Project_Name>_CAx_Export_Hardware_Tree.md

├── <PLC2_Name>/ │ ├── ProgramBlocks_XML/ │ │ └── ... │ └── ... └── ...