ParamManagerScripts/backend/script_groups/IO_adaptation
Miguel c37e485fd3 Se añadió una nueva ruta API para buscar archivos mediante un diálogo de selección, permitiendo al usuario elegir archivos desde su sistema. Además, se actualizaron los archivos de configuración JSON para incluir nuevos parámetros relacionados con el directorio de Obsidian y se mejoró la interfaz de usuario para manejar la selección de archivos, integrando un nuevo botón de búsqueda en los campos de entrada. 2025-07-14 10:55:08 +02:00
..
.cursor/rules Se actualizaron los archivos de configuración JSON para reflejar nuevos parámetros de directorios de exportación, incluyendo "aml_exp_directory" y "resultados_exp_directory". Además, se realizaron mejoras en el script `x1_export_CAx.py`, optimizando la gestión de directorios de salida y la detección de archivos de proyecto TIA. Se ajustaron los mensajes de depuración y se mejoró la estructura del código para mayor claridad. 2025-07-14 10:29:47 +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
.doc Se actualizaron los archivos de configuración JSON para reflejar nuevos parámetros de directorios de exportación, incluyendo "aml_exp_directory" y "resultados_exp_directory". Además, se realizaron mejoras en el script `x1_export_CAx.py`, optimizando la gestión de directorios de salida y la detección de archivos de proyecto TIA. Se ajustaron los mensajes de depuración y se mejoró la estructura del código para mayor claridad. 2025-07-14 10:29:47 +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 Se actualizaron los archivos de configuración JSON para reflejar nuevos parámetros de directorios de exportación, incluyendo "aml_exp_directory" y "resultados_exp_directory". Además, se realizaron mejoras en el script `x1_export_CAx.py`, optimizando la gestión de directorios de salida y la detección de archivos de proyecto TIA. Se ajustaron los mensajes de depuración y se mejoró la estructura del código para mayor claridad. 2025-07-14 10:29:47 +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 Se actualizaron los archivos de configuración JSON para reflejar nuevos parámetros de directorios de exportación, incluyendo "aml_exp_directory" y "resultados_exp_directory". Además, se realizaron mejoras en el script `x1_export_CAx.py`, optimizando la gestión de directorios de salida y la detección de archivos de proyecto TIA. Se ajustaron los mensajes de depuración y se mejoró la estructura del código para mayor claridad. 2025-07-14 10:29:47 +02:00
esquema_work.json Se añadió una nueva ruta API para buscar archivos mediante un diálogo de selección, permitiendo al usuario elegir archivos desde su sistema. Además, se actualizaron los archivos de configuración JSON para incluir nuevos parámetros relacionados con el directorio de Obsidian y se mejoró la interfaz de usuario para manejar la selección de archivos, integrando un nuevo botón de búsqueda en los campos de entrada. 2025-07-14 10:55:08 +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 actualizaron los archivos de configuración JSON para reflejar nuevos parámetros de directorios de exportación, incluyendo "aml_exp_directory" y "resultados_exp_directory". Además, se realizaron mejoras en el script `x1_export_CAx.py`, optimizando la gestión de directorios de salida y la detección de archivos de proyecto TIA. Se ajustaron los mensajes de depuración y se mejoró la estructura del código para mayor claridad. 2025-07-14 10:29:47 +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 Se actualizaron los archivos de configuración JSON para reflejar nuevos parámetros de directorios de exportación, incluyendo "aml_exp_directory" y "resultados_exp_directory". Además, se realizaron mejoras en el script `x1_export_CAx.py`, optimizando la gestión de directorios de salida y la detección de archivos de proyecto TIA. Se ajustaron los mensajes de depuración y se mejoró la estructura del código para mayor claridad. 2025-07-14 10:29:47 +02:00
x2_process_CAx.py Se actualizaron los archivos de configuración JSON para reflejar nuevos parámetros de directorios de exportación, incluyendo "aml_exp_directory" y "resultados_exp_directory". Además, se realizaron mejoras en el script `x1_export_CAx.py`, optimizando la gestión de directorios de salida y la detección de archivos de proyecto TIA. Se ajustaron los mensajes de depuración y se mejoró la estructura del código para mayor claridad. 2025-07-14 10:29:47 +02:00
x3_excel_to_md.py Se actualizaron los archivos de configuración JSON para reflejar nuevos parámetros de directorios de exportación, incluyendo "aml_exp_directory" y "resultados_exp_directory". Además, se realizaron mejoras en el script `x1_export_CAx.py`, optimizando la gestión de directorios de salida y la detección de archivos de proyecto TIA. Se ajustaron los mensajes de depuración y se mejoró la estructura del código para mayor claridad. 2025-07-14 10:29:47 +02:00
x4_prompt_generator.py Se actualizaron los archivos de configuración JSON para reflejar nuevos parámetros de directorios de exportación, incluyendo "aml_exp_directory" y "resultados_exp_directory". Además, se realizaron mejoras en el script `x1_export_CAx.py`, optimizando la gestión de directorios de salida y la detección de archivos de proyecto TIA. Se ajustaron los mensajes de depuración y se mejoró la estructura del código para mayor claridad. 2025-07-14 10:29:47 +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/ │ │ └── ... │ └── ... └── ...