ParamManagerScripts/backend/script_groups/IO_adaptation
Miguel be3b333491 Implementación de nuevas funcionalidades en la API y mejoras en la interfaz de usuario
- Se añadió una nueva ruta API para abrir la carpeta de un grupo en el explorador de archivos, mejorando la accesibilidad.
- Se implementaron botones en la interfaz para abrir la carpeta del grupo y copiar la ruta del grupo al portapapeles.
- Se mejoró la lógica de visualización de botones en la interfaz, permitiendo un mejor manejo de la visibilidad de los mismos.
- Se realizaron ajustes en los logs de ejecución para reflejar las nuevas funcionalidades y cambios en los directorios de trabajo.
2025-06-12 20:06:45 +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 Creado nuevo grupo IO_adaptation con flujo de trabajo desde x1 a x5 2025-05-15 12:16:01 +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
log_x0_documentation.txt 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
log_x1_excel_to_md.txt Creado nuevo grupo IO_adaptation con flujo de trabajo desde x1 a x5 2025-05-15 12:16:01 +02:00
log_x1_export_CAx.txt 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
log_x2_md_to_excel.txt Creado nuevo grupo IO_adaptation con flujo de trabajo desde x1 a x5 2025-05-15 12:16:01 +02:00
log_x2_process_CAx.txt Implementación de nuevas funcionalidades en la API y mejoras en la interfaz de usuario 2025-06-12 20:06:45 +02:00
log_x3_excel_to_md.txt Implementación de nuevas funcionalidades en la API y mejoras en la interfaz de usuario 2025-06-12 20:06:45 +02:00
log_x4_prompt_generator.txt Implementación de nuevas funcionalidades en la API y mejoras en la interfaz de usuario 2025-06-12 20:06:45 +02:00
log_x7_update_CAx.txt 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 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 Implementación de nuevas funcionalidades en el Launcher GUI 2025-06-06 16:35:11 +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 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
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 Creado nuevo grupo IO_adaptation con flujo de trabajo desde x1 a x5 2025-05-15 12:16:01 +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/ │ │ └── ... │ └── ... └── ...