Commit Graph

98 Commits

Author SHA1 Message Date
Miguel e2c78fb63e feat: Add .flake8 configuration for code style enforcement and set maximum line length 2025-08-24 10:24:45 +02:00
Miguel 24ae05cc75 fix: Correct array index access in FB_HMI_Interlock and enhance debugging for array parsing 2025-08-24 10:10:14 +02:00
Miguel 75cdf080f5 Add XML parser script and example SCL function block for HMI interlock
- Created a new script to convert XML data to SCL format.
- Added a readme file with instructions for generating SCL from XML.
- Introduced an example SCL function block "FB_HMI_Interlock" with logic for managing HMI requests.
2025-08-24 10:06:45 +02:00
Miguel c3088e9957 Refactor code structure for improved readability and maintainability 2025-08-23 17:05:44 +02:00
Miguel 18f6cdaa4f feat: Update TIA Portal version support and enhance export functionality in x1.py and x4.py; remove obsolete test scripts 2025-08-23 16:49:30 +02:00
Miguel 48e25282d6 Add path validation and sanitization tests
- Implemented `test_path_validation.py` to test filename sanitization, path sanitization, and export path validation functions.
- Added comprehensive test cases for various problematic block names and paths to ensure proper handling of invalid characters and whitespace.
- Created `test_sanitization.py` to specifically address problematic block names with updated sanitization logic, including special cases for "I/O access error" and "Time error interrupt".
- Enhanced filename sanitization to replace specific problematic characters and patterns, ensuring consistent output for known issues.
2025-08-23 16:24:58 +02:00
Miguel 586e3cc9b3 Add test script for verifying SIMATIC SD compatibility detection
- Implemented a new test script `test_simatic_sd_compatibility.py` to check the availability of SIMATIC SD format in TIA Scripting.
- Included detailed analysis of SIMATIC SD requirements based on official Siemens documentation.
- Provided feedback on supported and unsupported programming languages and block types.
- Added error handling for TIA Scripting import and environment variable checks.
2025-08-23 13:53:13 +02:00
Miguel affab8a646 Add XML block header parser and SCL header addition script
- Implemented `parse_block_header_from_xml` function to extract block information from TIA Portal XML files.
- Created `_extract_common_attributes` helper function to retrieve common attributes from block nodes.
- Added `generate_block_header_comment` function to format the header comment based on extracted block information.
- Introduced `get_block_header_comment_from_xml` for convenience in generating header comments directly from XML files.
- Developed `add_header_to_file` function in a new test script to read SCL files, check for existing headers, and prepend a generated header from the corresponding XML file.
- Included error handling and logging for better debugging and user feedback.
2025-08-23 13:14:18 +02:00
Miguel 5da864abe0 refactor: Simplify configuration and improve code readability in x4.py 2025-08-23 10:52:02 +02:00
Miguel 5ed4d9391e feat: Implement script execution and stopping functionality
- Added a new method to stop running scripts in the ScriptExecutor class, allowing graceful termination of scripts.
- Updated the ConfigurationManager class to handle script stopping requests and manage running processes.
- Enhanced the frontend JavaScript to include stop buttons for scripts, updating their state based on execution status.
- Introduced a mechanism to track running scripts and update UI elements accordingly.
- Improved logging for script execution and stopping events.
2025-08-23 10:51:38 +02:00
Miguel fdc48375ad Se añadió la propiedad `cronologia_file` en `esquema_work.json` para especificar el nombre del archivo de cronología en formato Markdown. Se actualizó `script_config.json` para reflejar el nuevo nombre del archivo de cronología en la configuración de nivel 3. Además, se ajustó la lógica en `x1.py` para utilizar el nuevo nombre de archivo y se modificó la extensión del archivo de salida a `.md`. Se optimizó el log para mostrar correctamente el nombre del archivo generado. 2025-08-11 15:35:43 +02:00
Miguel 7f815307ad Actualizadas las rutas de directorios en `script_config.json` y `work_dir.json` para reflejar la nueva estructura de proyectos. Se mejoró la lógica de manejo de `rowspan` y `colspan` en `email_parser.py` para asegurar valores válidos. Se añadió un nuevo registro en `launcher_history.json` para el script `main.py`, y se optimizó el log en `log.txt` para reflejar la nueva configuración y mensajes procesados. 2025-08-11 15:27:16 +02:00
Miguel 9d9a1bba24 Se añadió un nuevo script `x2.py` para gestionar un editor web de reglas de embellecimiento en `beautify_rules.json`, permitiendo operaciones CRUD y validación de reglas. Se actualizaron las descripciones en `scripts_description.json` y se documentaron los cambios en `MemoriaDeEvolucion.md`. Además, se mejoró la lógica de procesamiento de imágenes en `email_parser.py` para conservar un ancho máximo de 800px al incrustar imágenes en Markdown. 2025-08-08 16:59:13 +02:00
Miguel fc85347a43 Se añadió la creación del directorio `adjuntos/cronologia` en `x1.py` para almacenar imágenes de correos electrónicos. Se actualizó la función `procesar_eml` para manejar imágenes inline y adjuntas, y se refactorizó el código en `email_parser.py` para incluir la lógica de incrustación de imágenes en Markdown. Además, se mejoró la documentación en `MemoriaDeEvolucion.md` para reflejar estos cambios y se optimizó el manejo de errores en varias funciones. 2025-08-08 15:07:32 +02:00
Miguel 59cb4f4063 Se invirtieron los directorios de entrada y salida en la configuración del script de cronología. Se renombró `output_directory` a `input_directory` en `esquema_work.json` y se actualizaron las descripciones correspondientes. En `script_config.json` y `work_dir.json`, se ajustaron las rutas para reflejar los nuevos directorios. Además, se mejoró la documentación y se corrigieron lints en `x1.py` sin alterar la lógica del script. 2025-08-08 12:05:17 +02:00
Miguel 1fda6e656d Se añadió una nueva ruta API `/api/update-backend-setup` para actualizar todos los archivos `backend_setup.md` en subdirectorios `.doc` copiando el contenido desde un archivo fuente. Se implementó la lógica para manejar errores y reportar el estado de la actualización. Además, se incorporó un botón en la interfaz de usuario para facilitar esta acción. Se realizaron mejoras en la documentación de `backend_setup.md` y se ajustaron los mensajes de salida para mayor claridad. 2025-08-08 11:25:52 +02:00
Miguel 784f7c59e2 Se añadió un nuevo registro en `launcher_history.json` para el script `main.py`, incluyendo detalles de ejecución como el estado y el PID. Además, se actualizaron los metadatos de los scripts en `launcher_script_metadata.json` y se incorporó un nuevo script "IPChangerNG" en `launcher_scripts.json`. Se realizó una limpieza en `log.txt`, eliminando entradas obsoletas y optimizando el formato del log. 2025-08-08 10:33:33 +02:00
Miguel 64ef308a65 Eliminados los pyc 2025-08-02 10:39:00 +02:00
Miguel b67851e615 Se eliminó el archivo `README_x8_manual_gui.md` y se simplificó el script `x8_manual_gui.py`, transformándolo en un wrapper simple que utiliza cuadros de diálogo nativos de Windows para seleccionar archivos XML y directorios de destino. Se eliminaron ejemplos de archivos SCL y XML obsoletos, así como mejoras en la gestión de comentarios en el parser SCL. Se optimizó el manejo de errores y se actualizaron los logs para reflejar los cambios realizados. 2025-07-31 21:55:38 +02:00
Miguel 9e7e310384 Se actualizó el archivo `scripts_description.json` para ocultar el script "2: Procesar un archivo individual usando x4" y se añadió el script "2: Procesar un archivo individual" con su respectiva descripción. En `work_dir.json`, se simplificó la lista de directorios históricos eliminando entradas obsoletas. En `x0_main.py`, se mejoró la gestión de errores y se optimizó el manejo de directorios y archivos durante el proceso de limpieza. Se añadieron nuevos argumentos para permitir la conversión de un archivo XML específico a un archivo SCL específico. En `parse_scl.py`, se implementó el manejo de constantes locales en la reconstrucción de SCL. Se actualizaron los logs para reflejar los cambios realizados y se mejoró la claridad de los mensajes de error. 2025-07-31 18:08:01 +02:00
Miguel 57ca21ec76 Corregido error de indices de arrays en parsing SCL 2025-07-31 17:23:07 +02:00
Miguel 0ddee2e14a Se añadieron nuevas reglas de embellecimiento en `beautify_rules.json` para eliminar avisos de confidencialidad y responsabilidad en inglés y alemán, así como enlaces específicos de ALPLA. Además, se mejoró el script `email_parser.py` para asegurar que el contenido principal de los correos electrónicos se capture correctamente sin sobrescribirlo. Se actualizaron los directorios de trabajo en varios archivos de configuración JSON para reflejar nuevas rutas. Se eliminaron registros antiguos en `log.txt` y se optimizó el manejo de mensajes duplicados durante el procesamiento de correos electrónicos. 2025-07-31 09:47:47 +02:00
Miguel 4fa955f71b Mejorado del Log de Procesador de Emails a Cronología 2025-07-30 10:56:06 +02:00
Miguel f0f45df1b8 Se corrigio un error en la edicion de los Scripts del tab Python Scripts 2025-07-16 17:40:44 +02:00
Miguel 4d1de71990 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
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
Miguel c8141deb63 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
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
Miguel e6b875aac1 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
Miguel 7afdbca03a Se añadió una nueva sección en la documentación del backend para describir el uso de servicios compartidos, incluyendo ejemplos de implementación para el `ExcelService`, servicios de detección de idioma y servicios de Modelos de Lenguaje Grandes (LLM). Además, se eliminaron los scripts `x2_io_adaptation_script.py` y `x3_code_snippets_generator.py`, que ya no son necesarios, y se actualizaron los logs para reflejar estos cambios. 2025-07-10 16:10:13 +02:00
Miguel 164667bc2f Se modificó el script `x1_lad_converter.py` para cambiar el manejo de los objetivos de red, pasando de un solo objetivo a una lista de objetivos. Se implementaron mejoras en la lógica de análisis de redes, permitiendo la recopilación de múltiples salidas y optimizando la generación de código SCL. Además, se actualizaron los mensajes de depuración y se mejoró la estructura del código para una mayor claridad y mantenimiento. 2025-07-10 12:20:54 +02:00
Miguel ffc686e140 Se añadieron requisitos de codificación de salida en el archivo de configuración del backend, especificando que la salida estándar debe ser en UTF-8 para evitar problemas de caracteres corruptos. Además, se realizaron mejoras en el script `x1_lad_converter.py`, incluyendo la implementación de clases para gestionar funciones y bloques de funciones, así como la recopilación de interfaces de funciones en la primera pasada del convertidor. Se actualizaron los logs para reflejar la ejecución y los resultados del proceso de conversión. 2025-07-10 11:24:11 +02:00
Miguel b4959e772f Se agregó una nueva ruta en el archivo de configuración del workspace de TwinCat y se realizaron mejoras en el script `x1_lad_converter.py`. Se añadió un nuevo directorio para exportaciones y se optimizó el manejo de expresiones en el convertidor, mejorando la legibilidad y la eficiencia del código. Además, se actualizaron los logs para reflejar la ejecución del script de documentación completa de IOs, incluyendo un resumen de las variables analizadas y los archivos generados. 2025-07-09 16:42:45 +02:00
Miguel 4a1b16117e Actualización de directorios de trabajo y logs en el script de análisis XML
- Se modificaron los directorios de trabajo en `script_config.json` y `work_dir.json` para apuntar a la nueva ubicación de los archivos del proyecto 98050.
- Se actualizaron los logs de ejecución en `log_x0_main.txt` y `log_98050_PLC.txt` para reflejar las nuevas fechas, duraciones y resultados de los procesos de exportación.
- Se corrigieron rutas en varios archivos de configuración para asegurar la correcta ejecución de los scripts.
2025-07-09 14:12:43 +02:00
Miguel 2cec16af0e Se implementó una nueva función para buscar archivos de workspace específicos en un directorio, mejorando la integración con editores como VSCode y Cursor. Además, se actualizaron las configuraciones del archivo de workspace para incluir asociaciones de archivos y recomendaciones de extensiones, optimizando la experiencia del usuario al trabajar con proyectos de Python. 2025-06-23 15:29:22 +02:00
Miguel 13ceda63ba Se agregó soporte para la gestión de proyectos y scripts de Python en la aplicación. Se implementaron nuevas rutas API para crear, obtener, actualizar y eliminar proyectos y scripts de Python. Además, se realizaron ajustes en la interfaz de usuario para incluir un panel de control para scripts de Python, mejorando la experiencia del usuario al interactuar con proyectos de Python. Se actualizaron los directorios de trabajo y se corrigieron rutas en varios archivos de configuración. 2025-06-20 20:04:30 +02:00
Miguel e196dca9c4 Se implementaron mejoras en el script de análisis XML para generar pines dinámicamente en compuertas lógicas basadas en la cardinalidad. Además, se corrigieron las rutas de búsqueda de elementos en el archivo parser_utils.py para asegurar la correcta extracción de valores de TemplateValue y Negated. 2025-06-20 17:28:25 +02:00
Miguel def0f0b2d7 Eliminación del archivo README.md del convertidor LAD a pseudocódigo estructurado, optimizando la estructura del proyecto y reduciendo la confusión en la documentación. Se mantiene la funcionalidad principal del convertidor sin cambios. 2025-06-19 22:47:32 +02:00
Miguel b74db36cf9 Version Funcionante 2025-06-19 20:55:40 +02:00
Miguel 26bc892243 Actualización de directorios de trabajo y logs en el script de obtención de IO de TIA Portal
- Se modificaron los directorios de trabajo en `script_config.json` y `work_dir.json` para apuntar a la nueva ubicación de los archivos del proyecto 98050.
- Se actualizaron los logs de ejecución en `log_x1.txt` y `log_x4.txt` para reflejar las nuevas fechas, duraciones y resultados de los procesos de exportación.
- Se registraron errores en `log_x4.txt` relacionados con el acceso al proyecto, indicando que ya estaba abierto por otro usuario.
2025-06-19 19:07:49 +02:00
Miguel 99e3628955 Eliminación de archivos de ejemplo en el convertidor LAD de TwinCAT. Se han eliminado múltiples archivos .EXP que ya no son necesarios, optimizando así la estructura del proyecto y reduciendo la confusión en la gestión de ejemplos. Se mantiene la funcionalidad principal del convertidor en `x1_lad_converter.py` para la conversión de archivos .EXP a .SCL. 2025-06-19 18:39:04 +02:00
Miguel f57d0f21dc Actualización de directorios de trabajo y mejora en la gestión de logs
- Se modificaron los directorios de trabajo en `script_config.json` y `work_dir.json` para apuntar a la nueva ubicación de los archivos relacionados con el proyecto SIDEL.
- Se actualizaron los logs de ejecución en `log_x1.txt` y `log_x4.txt` para reflejar las nuevas fechas, duraciones y resultados de los procesos de exportación.
- Se implementó una nueva función de limpieza en `x0_main.py` para eliminar artefactos generados durante la ejecución de los scripts, mejorando la gestión de archivos temporales.
- Se realizaron ajustes en la interfaz de usuario para mejorar la experiencia al seleccionar y confirmar directorios de trabajo.
2025-06-19 18:05:47 +02:00
Miguel 5da7dcad06 Mejora en el convertidor LAD de TwinCAT con integración de SymPy para optimización de expresiones lógicas. Se añadieron nuevas funcionalidades para el manejo de variables y ACTIONs, así como mejoras en la estructura del código SCL generado. 2025-06-19 15:13:24 +02:00
Miguel 205e1f4c8d Mejorado de la conversion LAD de Twincat 2025-06-19 14:45:27 +02:00
Miguel c597eaa28f Primera Version TwinCat Converter 2025-06-19 14:30:15 +02:00
Miguel 95eb1bc62f - 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.
- Se implementaron mensajes de depuración adicionales para facilitar el seguimiento de errores y el estado de los procesos.
2025-06-19 00:09:05 +02:00
Miguel 7ab11a94ce Implementación del Launcher C# y mejoras en la interfaz de usuario
- Se añadió un nuevo launcher para proyectos C# que permite gestionar, ejecutar y categorizar aplicaciones compiladas.
- Se implementaron tres pestañas en la interfaz: "Scripts (Config)", "Launcher GUI (Python)" y "Launcher C#", mejorando la organización y accesibilidad.
- Se actualizaron los archivos de configuración y se mejoró la lógica de inicialización para soportar el nuevo sistema de C#.
- Se realizaron ajustes en la interfaz para incluir un panel de favoritos y un sistema de gestión de procesos en ejecución para C#.
- Se mejoró la documentación en `adicion_launcher4GUI.md` para reflejar las nuevas funcionalidades y estructura del proyecto.
2025-06-17 17:48:13 +02:00
Miguel bf30b2db52 Actualización de logs y mejora en la gestión de excepciones en el script de exportación
- Se actualizaron los registros de ejecución en `log_x4.txt` para reflejar nuevas fechas y duraciones de los procesos.
- Se implementó una nueva clase `PortalDisposedException` para manejar excepciones relacionadas con el cierre inesperado de TIA Portal.
- Se mejoró la lógica de re-apertura del portal en `x4.py`, permitiendo múltiples intentos en caso de errores de acceso a bloques.
- Se normalizaron los nombres de bloques para evitar omisiones en la exportación de referencias cruzadas.
- Se actualizaron los logs de ejecución en `log_x0_main.txt` para reflejar el aumento en el número de archivos XML procesados.
2025-06-13 13:01:29 +02:00
Miguel 734e6637bc Implementación de envío por lotes de logs y mejora en la gestión de conexiones WebSocket
- Se añadió un nuevo sistema para el envío por lotes de logs a través de WebSocket, permitiendo un vaciado del buffer cada 500 ms.
- Se implementó un hilo en segundo plano para gestionar el vaciado del buffer de logs, mejorando la eficiencia en el envío de mensajes.
- Se realizaron ajustes en la función de broadcast para acumular mensajes en un buffer antes de enviarlos, optimizando el rendimiento.
- Se actualizaron los logs de ejecución para reflejar los cambios en la gestión de logs y el nuevo comportamiento del sistema.
2025-06-13 11:16:52 +02:00
Miguel 6150c719ca Actualización de directorios de trabajo y mejora en la gestión de logs
- Se modificaron los directorios de trabajo en `script_config.json` y `work_dir.json` para apuntar a la nueva ubicación de los archivos relacionados con el proyecto SIDEL.
- Se actualizaron los logs de ejecución en `log_x1.txt` y `log_x4.txt` para reflejar las nuevas fechas, duraciones y resultados de los procesos de exportación.
- Se implementó una nueva función de limpieza en `x0_main.py` para eliminar artefactos generados durante la ejecución de los scripts, mejorando la gestión de archivos temporales.
- Se realizaron ajustes en la interfaz de usuario para mejorar la experiencia al seleccionar y confirmar directorios de trabajo.
2025-06-13 10:22:00 +02:00