ParamManagerScripts/backend/script_groups/IO_adaptation/.doc/MemoriaDeEvolucion.md

7.5 KiB

Definiciones de Frontend en .doc\backend_setup.md

Flujo de trabajo:

Se usa [x1] para exportar los datos de configuración desde el proyecto de Tia Portal, incluidos los IO configurados en el hardware. Esto genera un archivo AML. Con [x2] se procesa el archivo AML y se convierte en markdown. Si hay un solo PLC se genera el archivo [Hardware.md]. Además genera un archivo Excel con los IOs por nodos del PLC. 3. Se deben procesar los IO desde el esquema eléctrico y agregarlos a [Hardware.md]. Se debe exportar todos los tags como un archivo excel desde el Tia Portal. Con [x3] se convierte y se filtran los tags según los path definidos en [io_paths_config] y se genera un archivo "Master IO Tags.md". [x4] Genera el prompt a usar con Claude usando MCP para que pueda acceder a los archivos originales y evitar tener que hacer uploads. Una vez que se genera el archivo procesado por el LLM se puede usar [x5] que convierte las adaptaciones a un archivo que luego se puede importar en Tia Portal 8. Importar en Tia Portal el archivo [PLCTags_Updated.xlsx]

Nuevo flujo alternativo con Excel:

Después del paso 2, se puede usar : [x7] para: Modificar manualmente el archivo Excel de IOs generado- Aplicar los cambios de vuelta al archivo AML original Generar un AML actualizado con las modificaciones

Cambios recientes:

Automatización de selección de proyecto TIA Portal (x1_export_CAx.py):

  • Eliminada la interfaz gráfica tkinter para selección manual de archivos
  • El script ahora lee automáticamente la ruta del proyecto desde la configuración siemens_tia_project en work_dir.json
  • Nueva función find_project_file_in_dir() que busca automáticamente archivos .ap18/.ap19/.ap20 en el directorio configurado
  • Validación automática que verifica que exista exactamente un archivo de proyecto en el directorio especificado
  • Mejora en la experiencia de usuario al eliminar pasos manuales de selección de archivos

Directorio de exportación CAx configurable (x1_export_CAx.py):

  • La ruta de exportación de archivos CAx ahora es configurable.
  • El script utiliza el valor aml_exp_directory de la configuración level2 en work_dir.json.
  • La nueva ruta de salida se construye como working_directory / aml_exp_directory.
  • Todos los archivos generados (AML, Markdown y log) se guardan en este directorio, manteniendo los artefactos de exportación organizados.

Directorio de E/S configurable para el procesamiento CAx (x2_process_CAx.py):

  • El script ahora utiliza el directorio aml_exp_directory de work_dir.json para la entrada y salida de archivos.
  • Se ha unificado el comportamiento con x1_export_CAx.py, esperando el archivo AML de entrada en working_directory / aml_exp_directory.
  • Todos los archivos generados (JSON, Markdown, Excel) se guardan en este mismo directorio, manteniendo la consistencia del flujo de trabajo.
  • Se mantiene el fallback al directorio .debug para la ejecución independiente del script.

Selección automática de archivo AML (x2_process_CAx.py):

  • El script ahora busca automáticamente un único archivo .aml en el directorio aml_exp_directory.
  • Si se encuentra un solo archivo, se utiliza directamente, eliminando la necesidad del diálogo de selección manual.
  • Si se encuentran cero o múltiples archivos .aml, el script recurre al diálogo de selección manual para que el usuario resuelva la ambigüedad.
  • Esta mejora agiliza el flujo de trabajo al automatizar la selección de archivos en el caso más común.

Directorio de resultados configurable (x1 y x2):

  • Se ha agregado el parámetro resultados_exp_directory a la configuración level2 en work_dir.json.
  • x1_export_CAx.py ahora guarda la tabla de resumen (*CAx_Summary.md) en el subdirectorio working_directory / resultados_exp_directory.
  • x2_process_CAx.py guarda todos los archivos de resultados finales (tablas Markdown y reportes Excel) en working_directory / resultados_exp_directory, anidados en carpetas por PLC.
  • Los archivos intermedios (JSON, logs, debug files) permanecen en aml_exp_directory, separando los artefactos de compilación de los resultados finales.

Corrección de errores de exportación en TIA Portal (x1_export_CAx.py):

  • Se ha solucionado un error que ocurría cuando el archivo AML a exportar ya existía. El script ahora elimina los archivos .aml y .log existentes antes de la exportación para permitir la sobrescritura.
  • Se ha corregido el manejo de excepciones al eliminar un bloque except que intentaba capturar una excepción inexistente (TiaException), lo que causaba un error secundario y ocultaba el problema original.

Flujo de trabajo de E/S con Excel mejorado (x3_excel_to_md.py):

  • Directorios configurables: El script ahora utiliza tags_exp_directory (de level3) para buscar archivos Excel y resultados_exp_directory (de level2) para guardar el archivo Markdown resultante. Ambos se leen desde work_dir.json.
  • Selección automática de archivo: Si solo existe un archivo .xlsx en tags_exp_directory, el script lo utiliza automáticamente, eliminando la necesidad de selección manual.
  • Fallback a diálogo manual: Si se encuentran cero o múltiples archivos Excel, el script muestra un diálogo para que el usuario seleccione el archivo correcto, manteniendo la flexibilidad.
  • Consistencia del proyecto: Esta actualización alinea el comportamiento de x3_excel_to_md.py con los scripts x1 y x2, creando un flujo de trabajo más coherente y automatizado.

Configuración dinámica de rutas en el generador de prompts (x4_prompt_generator.py):

  • Las rutas de los archivos de entrada (Master IO Tags.md y Hardware.md) ahora se construyen dinámicamente utilizando resultados_exp_directory de la configuración level2, alineándose con el resto de los scripts.
  • La configuración de las rutas base de Obsidian (ObsideanDir, ObsideanProjectsBase) se ha movido al level3 para una mejor organización de la configuración.
  • El prompt generado refleja automáticamente estas rutas configurables, asegurando que las herramientas de IA siempre utilicen las ubicaciones correctas de los archivos.

Conversión dual de archivos Excel a Markdown (x3_excel_to_md.py):

  • Nueva funcionalidad: El script ahora realiza dos conversiones en una sola ejecución:
    1. Convierte el Excel de tags de TIA Portal a 'Master IO Tags.md' (funcionalidad existente)
    2. Convierte el Excel de IO desde esquema eléctrico a 'Hardware_ED.md' (nueva funcionalidad)
  • Configuración de archivo de IO: Utiliza la configuración io_excel_file_from_ediagram del level3 para obtener la ruta del archivo Excel de IO desde el esquema eléctrico.
  • Conversión directa: La nueva función convert_io_excel_to_markdown() convierte directamente la tabla del Excel a formato Markdown sin filtros ni adaptaciones, manteniendo la estructura original de columnas.
  • Manejo de celdas vacías: Las celdas vacías del Excel se convierten en un espacio ' ' en el archivo Markdown para mantener la estructura de la tabla.
  • Manejo de errores robusto: Incluye validaciones para verificar la existencia del archivo Excel, que no esté vacío, y manejo de excepciones durante la lectura y escritura.
  • Escape de caracteres: Implementa escape automático de caracteres especiales de Markdown (como |) para evitar errores de formato en las tablas.
  • Función principal unificada: Se ha creado una función main() que ejecuta ambas conversiones secuencialmente, proporcionando una experiencia de usuario más fluida y organizada.