ParamManagerScripts/backend/script_groups/IO_adaptation
Miguel f0f45df1b8 Se corrigio un error en la edicion de los Scripts del tab Python Scripts 2025-07-16 17:40:44 +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 añadió la funcionalidad para convertir un archivo Excel de IO desde un esquema eléctrico a formato Markdown en el script `x3_excel_to_md.py`. Se implementó una nueva función `convert_io_excel_to_markdown()` que utiliza la configuración `io_excel_file_from_ediagram` para obtener la ruta del archivo. Además, se actualizó la documentación en `MemoriaDeEvolucion.md` para reflejar estos cambios y se mejoró el manejo de errores durante la conversión. También se unificó la ejecución de ambas conversiones en una función principal `main()` para una mejor organización del flujo de trabajo. 2025-07-14 16:54:55 +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 corrigio un error en la edicion de los Scripts del tab Python Scripts 2025-07-16 17:40:44 +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 corrigio un error en la edicion de los Scripts del tab Python Scripts 2025-07-16 17:40:44 +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 añadió la funcionalidad para convertir un archivo Excel de IO desde un esquema eléctrico a formato Markdown en el script `x3_excel_to_md.py`. Se implementó una nueva función `convert_io_excel_to_markdown()` que utiliza la configuración `io_excel_file_from_ediagram` para obtener la ruta del archivo. Además, se actualizó la documentación en `MemoriaDeEvolucion.md` para reflejar estos cambios y se mejoró el manejo de errores durante la conversión. También se unificó la ejecución de ambas conversiones en una función principal `main()` para una mejor organización del flujo de trabajo. 2025-07-14 16:54:55 +02:00
x4_prompt_generator.py Se corrigio un error en la edicion de los Scripts del tab Python Scripts 2025-07-16 17:40:44 +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/ │ │ └── ... │ └── ... └── ...