- 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.
- 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.
- 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 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 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.
- 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.
- Se modificaron los logs de ejecución para reflejar nuevas fechas y duraciones en los scripts x1, x2, x4 y x7.
- Se ajustó el directorio de trabajo en `script_config.json` y `work_dir.json` para apuntar a la nueva ubicación de los archivos.
- Se eliminaron archivos obsoletos como `readme.md` y `siemens_tia_scripting.md`.
- Se mejoró la documentación y se añadieron nuevas descripciones para los scripts en `scripts_description.json`.
- Implemented a new button in the UI to open the current working directory in the file explorer.
- Added event listener for the new button that triggers an API call to open the directory.
- Included validation to ensure a group is selected and the working directory is set before attempting to open the explorer.
- Created a new JSON description file for the CSharpCodeMerger script group.
- Updated directory structure in readme.md to include project-specific files.
- Refactored find_io_recursively to include module context for better IO address mapping.
- Modified generate_markdown_tree to generate PLC-specific hardware trees and improved markdown formatting.
- Added sanitization function for filenames to ensure valid output paths.
- Improved logging to provide detailed execution flow and output paths.
- Updated process_aml_file to extract and save global outputs, returning project data for further processing.
- Enhanced overall error handling and output messages for clarity.
- Created a README file for the ObtainIOFromProjectTia script group detailing the directory structure and file organization.
- Added a detailed execution log for the x4_cross_reference.py script, including timestamps, output summaries, and error logs.
- Introduced a comprehensive guide detailing the structure and interpretation of _XRef.xml files.
- Explained key XML elements necessary for constructing call trees, including SourceObject, ReferenceObject, and Location.
- Provided a step-by-step data extraction strategy for identifying caller-callee relationships.
- Included example Python code for parsing XML and aggregating call relationships.
- Addressed considerations for handling multiple files and variations across TIA Portal versions.