- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Se implementó un nuevo sistema de argumentos para permitir el procesamiento de múltiples PLCs desde un directorio de trabajo.
- Se mejoró la lógica de búsqueda de archivos XML, eliminando la dependencia de un subdirectorio específico.
- Se actualizaron los logs de ejecución para reflejar el estado exitoso del procesamiento y se añadieron detalles sobre los archivos encontrados y procesados.
- Se generaron nuevos archivos de salida en formato Markdown y se mejoró la estructura de los logs para facilitar la comprensión del proceso.
- Se modificó el script x1.py para soportar múltiples versiones de TIA Portal (18, 19 y 20) y se mejoró la detección de la versión a partir de la extensión del archivo del proyecto.
- Se actualizó la descripción del script en scripts_description.json para reflejar las nuevas versiones soportadas.
- Se realizaron ajustes en los logs de ejecución para reflejar las nuevas fechas y duraciones en el script x1.
- Se mejoró la gestión de directorios de exportación y se añadieron mensajes en español para una mejor comprensión del proceso de exportación.