Commit Graph

98 Commits

Author SHA1 Message Date
Miguel ab99a1cee1 Implement hash-based change detection for XML files and enhance cross-reference parsing documentation
- Added HASH_DETECTION.md to document the new SHA256 hash-based change detection method for XML files, detailing its advantages over traditional methods.
- Introduced a new field `source_xml_hash` in JSON files to store the hash of the source XML, improving change detection accuracy.
- Updated `x0_main.py`, `x1_to_json.py`, and `x2_process.py` to implement hash calculation and usage in processing logic.
- Created xref_info.md to provide comprehensive technical documentation on parsing TIA Portal `_XRef.xml` files for call tree generation.
- Added debug scripts (`debug_find_network13.py`, `debug_sr_details.py`, `debug_sr_processed.py`, `debug_sr_xml.py`) for detailed analysis of network and instruction data in JSON and XML formats.
2025-09-02 15:53:49 +02:00
Miguel 70bbc8d6f9 Enhance logging functionality and UI improvements
- Updated ConfigurationManager to allow reading a limited number of log lines.
- Modified Logger to read the log file with an option to limit the number of lines returned.
- Adjusted JavaScript to fetch only the last 1000 lines of logs for performance.
- Added a new function to open a full log viewer in a new tab.
- Implemented a log viewer template with search functionality, download option, and refresh capability.
- Improved log display in the main interface with a message indicating the number of lines shown.
- Added functionality to manage log lines in memory to prevent overflow.
2025-08-29 12:47:29 +02:00
Miguel fab8c95038 Add Syrup Line MFM Prep DAR Function Block Implementation
- Implemented the "Syrup_Line_MFM_Prep_DAR" function block with optimized access.
- Defined input and output variables for the function block.
- Added various internal state variables and temporary variables for processing.
- Converted logic from LAD and STL to structured text for the syrup preparation process.
- Included fuzzy logic for syrup density checks and syrup line manual drain conditions.
- Integrated timeout handling and pump status management within the function block.
- Ensured compatibility with existing system variables and procedures.
2025-08-28 17:32:18 +02:00
Miguel c907112293 Implement SyrBrix Autocorrection Function Block and Syrup Line MFM Preparation Logic
- Added the SyrBrix Autocorrection function block (FB1809) to handle syrup brix and density measurements for sugar-based beverages.
- Implemented logic for syrup autocorrection requests, latching, and running states.
- Introduced a new function block for Syrup Line MFM Preparation (FB1813) to manage syrup line preparation and related timers.
- Enhanced network logic for syrup preparation, including handling of manual drain and fuzzy logic for syrup density checks.
- Updated variable handling and added necessary comments for clarity and maintainability.
2025-08-28 14:55:55 +02:00
Miguel b1ee3a0eae feat: Add duplicate UID handler and process_sr processor
- Implemented a new processor for handling duplicate UIDs in JSON data. The `duplicate_uid_handler.py` detects and resolves duplicate UIDs by renaming them with a suffix (_dup1, _dup2, etc.) and updates references accordingly.
- Added a new processor for Set/Reset flip-flop (Sr) in `process_sr.py`. This processor marks instructions as processed without generating specific code for cases with no connections, and flags errors for more complex cases.
2025-08-27 22:30:30 +02:00
Miguel 480e831b7a Refactor code structure for improved readability and maintainability 2025-08-27 18:08:57 +02:00
Miguel f68bea6056 feat: Enhance launcher history and logging with detailed execution records for scripts, including support for VS Code integration 2025-08-26 12:53:35 +02:00
Miguel c0ef4cb12a Optimize tab switching, WebSocket initialization, and script loading for improved performance and user experience. Refactor form rendering and group change handling to reduce unnecessary operations and enhance code readability. Implement efficient DOM updates and error handling throughout the application. 2025-08-24 11:05:54 +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 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 3b3cfd7062 Se implementó la funcionalidad para abrir archivos seleccionados desde el editor de esquemas, añadiendo un botón "Abrir" que permite al usuario abrir archivos con la aplicación predeterminada del sistema. Se desarrolló una nueva ruta API `/api/open-file` para manejar la apertura de archivos, con soporte multiplataforma para Windows, macOS y Linux. Además, se realizaron mejoras en la interfaz de usuario para habilitar el botón "Abrir" solo cuando se selecciona un archivo. Se actualizó la documentación en `MemoriaDeEvolucion.md` para reflejar estos cambios. 2025-07-14 17:33:37 +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 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 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 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 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 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 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 e3eb2fb9e5 Mejoras en el Launcher C# y gestión de proyectos
- Se añadió la funcionalidad de limpieza del estado previo en el gestor de lanzadores C#.
- Se implementó un método para reiniciar completamente el launcher, asegurando una inicialización adecuada.
- Se mejoró la gestión de argumentos para ejecutables, permitiendo la selección y ejecución con argumentos predefinidos.
- Se optimizó la lógica de inicialización y se añadieron mensajes de depuración para facilitar el seguimiento de errores.
- Se realizaron ajustes en la interfaz para mejorar la experiencia del usuario al gestionar proyectos y ejecutables.
2025-06-18 02:44:36 +02:00
Miguel 5be80138c5 Implementación de mejoras en el Launcher C# y gestión de proyectos
- Se completó la implementación del editor de proyectos C#, permitiendo agregar, editar y eliminar proyectos con un formulario avanzado.
- Se mejoró la gestión de ejecutables C#, incluyendo la capacidad de ejecutar, obtener metadatos y argumentos predefinidos.
- Se añadieron nuevas rutas API para gestionar proyectos y ejecutables C#, mejorando la funcionalidad y la experiencia del usuario.
- Se actualizaron los logs para reflejar la ejecución de procesos y se implementaron notificaciones para el manejo de errores.
- Se mejoró la interfaz de usuario con nuevos modales para la gestión de proyectos y ejecutables, facilitando la interacción.
2025-06-18 01:58:03 +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