{"level": "INFO", "message": "PLC Generation Workflow started", "timestamp": "2025-09-04T20:20:01.707864", "module": "__main__", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "excel_file": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/PLC Data Generator/data/SAT9_MCM03.xlsx", "project_name": "SAT9_MCM03"} {"level": "INFO", "message": "Starting data processing step", "timestamp": "2025-09-04T20:20:01.708266", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} === Step 1: PLC Data Generator stdout === Loading IO path mappings... Loaded IO path mappings: APF: 11 rows M12DR: 16 rows Hub: 16 rows SorterHub: 16 rows SIO: 16 rows IB16: 16 rows OB16E: 16 rows IB16S: 16 rows Available sheets: ['DESC_PLC', 'NETWORK_PLC'] Found DESC sheet: DESC_PLC Found NETWORK sheet: NETWORK_PLC DESC columns: ['TAGNAME', 'TERM', 'DESCA', 'DESCB'] NETWORK columns: ['DPM', 'DPM_IP', 'Name', 'PartNumber', 'IP'] Classifying signals and adding IO paths... Signal classification results: SPARE: 502 I: 250 O: 49 IOLink: 13 Device type distribution: APF: 638 M12DR: 112 Hub: 16 IB16: 16 OB16E: 16 IB16S: 16 IO Path mapping results: Successful mappings: 814/814 (100.0%) Found 3 TAGNAMEs present in DESC but not in NETWORK_PLC. Adding unique DPM names not present in DESC or NETWORK_PLC.Name: ['DPM1_PS3_1', 'DPM1_PS4_1', 'DPM2_PS3_1', 'DPM2_PS4_1'] ================================================================================ WARNING: The following issues were found but processing will continue: ================================================================================ - TAGNAME 'SLOT5_IB16' from DESC sheet not found in NETWORK_PLC sheet. - TAGNAME 'SLOT6_OB16E' from DESC sheet not found in NETWORK_PLC sheet. - TAGNAME 'SLOT7_IB16S' from DESC sheet not found in NETWORK_PLC sheet. ================================================================================ Continuing with processing... Normalizing TAGNAME, DESC, and IO_PATH columns for VFDs only in the final output... Final result has 823 rows Sample of merged data: TAGNAME TERM DESCA ... SIGNAL DEVICE_TYPE IO_PATH 0 PDP3_PMM ... NaN NaN NaN 1 SLOT5_IB16 I0 MCM03 ... I IB16 Local:5:I.Data.0 2 SLOT5_IB16 I1 MCM03 ... I IB16 Local:5:I.Data.1 3 SLOT5_IB16 I10 SPARE ... SPARE IB16 Local:5:I.Data.10 4 SLOT5_IB16 I11 SPARE ... SPARE IB16 Local:5:I.Data.11 5 SLOT5_IB16 I12 SPARE ... SPARE IB16 Local:5:I.Data.12 6 SLOT5_IB16 I13 SPARE ... SPARE IB16 Local:5:I.Data.13 7 SLOT5_IB16 I14 SPARE ... SPARE IB16 Local:5:I.Data.14 8 SLOT5_IB16 I15 SPARE ... SPARE IB16 Local:5:I.Data.15 9 SLOT5_IB16 I2 MCM03 ... I IB16 Local:5:I.Data.2 [10 rows x 11 columns] New Excel file created: SAT9_MCM03_DESC_IP_MERGED.xlsx The file contains all original sheets plus the new 'DESC_IP' sheet with merged data. DEBUG: Processing Excel file: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/PLC Data Generator/data/SAT9_MCM03.xlsx DEBUG: Full project pattern matched: SAT9_MCM03 DEBUG: Final subsystem name: SAT9_MCM03 Reading input file: SAT9_MCM03_DESC_IP_MERGED.xlsx Removed 13 IOLink rows (including beacons, FIOH channels, and all other IOLink entries) Removed 9 blank name/description rows Saving output file: SAT9_MCM03_OUTPUT.csv Processing complete! Created standard output file: DESC_IP_MERGED.xlsx === Step 1: PLC Data Generator stderr === === Step 1 File Copy === Copied SAT9_MCM03_DESC_IP_MERGED.xlsx to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/DESC_IP_MERGED.xlsx {"level": "INFO", "message": "Data processing completed successfully", "timestamp": "2025-09-04T20:20:04.610588", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Starting routine generation step", "timestamp": "2025-09-04T20:20:04.610832", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Logging to file: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/logs/workflow_SAT9_MCM03_20250904_202001.log", "timestamp": "2025-09-04T20:20:06.337186", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "=== Generating All PLC Artifacts ===", "timestamp": "2025-09-04T20:20:06.338726", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Generating SafetyProgram L5X...", "timestamp": "2025-09-04T20:20:06.338946", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "WARNING", "message": "LimitedSafetyProgramGenerator is deprecated; using ModernSafetyProgramGenerator", "timestamp": "2025-09-04T20:20:06.349594", "module": "src.container", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Starting ModernSafetyProgramGenerator generation", "timestamp": "2025-09-04T20:20:06.349845", "module": "ModernSafetyProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Creating SafetyProgram XML structure", "timestamp": "2025-09-04T20:20:06.349972", "module": "ModernSafetyProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Registered plugin: main_routine (core)", "timestamp": "2025-09-04T20:20:06.359575", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: apf (device)", "timestamp": "2025-09-04T20:20:06.364379", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: belt_tracking (device)", "timestamp": "2025-09-04T20:20:06.367783", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: cb_monitor (device)", "timestamp": "2025-09-04T20:20:06.370887", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: d2c_chute (device)", "timestamp": "2025-09-04T20:20:06.374972", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: dpm (device)", "timestamp": "2025-09-04T20:20:06.378426", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: encoder (device)", "timestamp": "2025-09-04T20:20:06.381716", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: estops (safety)", "timestamp": "2025-09-04T20:20:06.388246", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: estop_check (safety)", "timestamp": "2025-09-04T20:20:06.392288", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: extendo (device)", "timestamp": "2025-09-04T20:20:06.395722", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: fioh (device)", "timestamp": "2025-09-04T20:20:06.399454", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: fiom (device)", "timestamp": "2025-09-04T20:20:06.402940", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: flow_ctrl (device)", "timestamp": "2025-09-04T20:20:06.406926", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: fpe (device)", "timestamp": "2025-09-04T20:20:06.410154", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: inputs (safety)", "timestamp": "2025-09-04T20:20:06.413412", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: jpe (device)", "timestamp": "2025-09-04T20:20:06.416728", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: mcm (core)", "timestamp": "2025-09-04T20:20:06.420327", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: outputs (safety)", "timestamp": "2025-09-04T20:20:06.424285", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: pb_chute (device)", "timestamp": "2025-09-04T20:20:06.427598", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: pmm (device)", "timestamp": "2025-09-04T20:20:06.431733", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: rack (core)", "timestamp": "2025-09-04T20:20:06.436143", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: resets (safety)", "timestamp": "2025-09-04T20:20:06.440843", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: safety_tag_map (core)", "timestamp": "2025-09-04T20:20:06.444882", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: safety_tag_mapping (safety)", "timestamp": "2025-09-04T20:20:06.448306", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: speed_ctrl (device)", "timestamp": "2025-09-04T20:20:06.451904", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: station_epc (safety)", "timestamp": "2025-09-04T20:20:06.454893", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: station_jr_chute (device)", "timestamp": "2025-09-04T20:20:06.458789", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: station_jr_pb (device)", "timestamp": "2025-09-04T20:20:06.462714", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: station_ss_pb (device)", "timestamp": "2025-09-04T20:20:06.466311", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: station_s_pb (device)", "timestamp": "2025-09-04T20:20:06.470222", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: taching_belts (device)", "timestamp": "2025-09-04T20:20:06.473780", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "DEBUG", "message": "Registered plugin: zones (safety)", "timestamp": "2025-09-04T20:20:06.478860", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"} {"level": "INFO", "message": "Generating safety routines...", "timestamp": "2025-09-04T20:20:06.479143", "module": "ModernSafetyProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: inputs", "timestamp": "2025-09-04T20:20:07.320794", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: inputs", "timestamp": "2025-09-04T20:20:07.327123", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: outputs", "timestamp": "2025-09-04T20:20:07.333268", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Zones: subsystem key", "timestamp": "2025-09-04T20:20:07.337824", "module": "src.data_loader", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "subsystem": "DEFAULT", "found": false} {"level": "DEBUG", "message": "Zones: heuristic best match", "timestamp": "2025-09-04T20:20:07.356565", "module": "src.data_loader", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "best_key": "MCM03", "score": 24} {"level": "DEBUG", "message": "Zones: loaded", "timestamp": "2025-09-04T20:20:07.357668", "module": "src.data_loader", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "rows": 9} {"level": "INFO", "message": "Successfully generated routine: outputs", "timestamp": "2025-09-04T20:20:07.359785", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: resets", "timestamp": "2025-09-04T20:20:07.360361", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: resets", "timestamp": "2025-09-04T20:20:07.363245", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: zones", "timestamp": "2025-09-04T20:20:07.363764", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Found DCS controllers for PS3_7: {'EPC1', 'EPC2'}", "timestamp": "2025-09-04T20:20:07.366001", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Found DCS controllers for PS4_7: {'EPC1', 'EPC2'}", "timestamp": "2025-09-04T20:20:07.366885", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Found DCS controllers for UL10_1: {'ESTOP1'}", "timestamp": "2025-09-04T20:20:07.367403", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Found DCS controllers for UL11_1: {'ESTOP1'}", "timestamp": "2025-09-04T20:20:07.367933", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Found DCS controllers for UL12_1: {'EPC1', 'EPC2'}", "timestamp": "2025-09-04T20:20:07.368730", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Found DCS controllers for UL7_1: {'EPC1', 'EPC2'}", "timestamp": "2025-09-04T20:20:07.369551", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Found DCS controllers for UL8_1: {'ESTOP1'}", "timestamp": "2025-09-04T20:20:07.370091", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Found DCS controllers for UL9_1: {'ESTOP1'}", "timestamp": "2025-09-04T20:20:07.370507", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Available DCS controllers: {'PS3_7': {'EPC1', 'EPC2'}, 'PS4_7': {'EPC1', 'EPC2'}, 'UL10_1': {'ESTOP1'}, 'UL11_1': {'ESTOP1'}, 'UL12_1': {'EPC1', 'EPC2'}, 'UL7_1': {'EPC1', 'EPC2'}, 'UL8_1': {'ESTOP1'}, 'UL9_1': {'ESTOP1'}}", "timestamp": "2025-09-04T20:20:07.370831", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Zone 03-01 candidates: ['PS3_1', 'PS3_2', 'PS3_3', 'PS3_4', 'PS3_5', 'PS3_6', 'PS3_7']", "timestamp": "2025-09-04T20:20:07.372054", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base PS3_1 in zone 03-01", "timestamp": "2025-09-04T20:20:07.372549", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base PS3_2 in zone 03-01", "timestamp": "2025-09-04T20:20:07.372844", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base PS3_3 in zone 03-01", "timestamp": "2025-09-04T20:20:07.373126", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base PS3_4 in zone 03-01", "timestamp": "2025-09-04T20:20:07.373318", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base PS3_5 in zone 03-01", "timestamp": "2025-09-04T20:20:07.373481", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base PS3_6 in zone 03-01", "timestamp": "2025-09-04T20:20:07.373649", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Zones: rung", "timestamp": "2025-09-04T20:20:07.373818", "module": "src.routines.zones", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "zone": "03-01", "interlock": "MCM03", "dcs_list": ["PS3_7_EPC1_DCS_CTRL.O1", "PS3_7_EPC2_DCS_CTRL.O1"]} {"level": "DEBUG", "message": "Zone 03-02 candidates: ['UL7_1', 'UL7_2', 'UL7_3', 'UL7_4', 'UL7_5', 'UL7_6', 'UL7_7']", "timestamp": "2025-09-04T20:20:07.374317", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL7_2 in zone 03-02", "timestamp": "2025-09-04T20:20:07.374560", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL7_3 in zone 03-02", "timestamp": "2025-09-04T20:20:07.374735", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL7_4 in zone 03-02", "timestamp": "2025-09-04T20:20:07.374921", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL7_5 in zone 03-02", "timestamp": "2025-09-04T20:20:07.375069", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL7_6 in zone 03-02", "timestamp": "2025-09-04T20:20:07.375217", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL7_7 in zone 03-02", "timestamp": "2025-09-04T20:20:07.375479", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Zones: rung", "timestamp": "2025-09-04T20:20:07.375787", "module": "src.routines.zones", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "zone": "03-02", "interlock": "MCM03", "dcs_list": ["UL7_1_EPC1_DCS_CTRL.O1", "UL7_1_EPC2_DCS_CTRL.O1"]} {"level": "DEBUG", "message": "Zone 03-03 candidates: ['UL8_1', 'UL8_2', 'UL8_3', 'UL8_4', 'UL8_5', 'UL8_6', 'UL8_7', 'UL8_8', 'UL8_9']", "timestamp": "2025-09-04T20:20:07.376351", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL8_2 in zone 03-03", "timestamp": "2025-09-04T20:20:07.376648", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL8_3 in zone 03-03", "timestamp": "2025-09-04T20:20:07.376937", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL8_4 in zone 03-03", "timestamp": "2025-09-04T20:20:07.377236", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL8_5 in zone 03-03", "timestamp": "2025-09-04T20:20:07.377628", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL8_6 in zone 03-03", "timestamp": "2025-09-04T20:20:07.377934", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL8_7 in zone 03-03", "timestamp": "2025-09-04T20:20:07.378208", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL8_8 in zone 03-03", "timestamp": "2025-09-04T20:20:07.378454", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL8_9 in zone 03-03", "timestamp": "2025-09-04T20:20:07.378720", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Zones: rung", "timestamp": "2025-09-04T20:20:07.378900", "module": "src.routines.zones", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "zone": "03-03", "interlock": "MCM03", "dcs_list": ["UL8_1_ESTOP1_DCS_CTRL.O1"]} {"level": "DEBUG", "message": "Zone 03-04 candidates: ['UL9_1', 'UL9_2', 'UL9_3', 'UL9_4', 'UL9_5', 'UL9_6', 'UL9_7', 'UL9_8', 'UL9_9']", "timestamp": "2025-09-04T20:20:07.379429", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL9_2 in zone 03-04", "timestamp": "2025-09-04T20:20:07.379636", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL9_3 in zone 03-04", "timestamp": "2025-09-04T20:20:07.379900", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL9_4 in zone 03-04", "timestamp": "2025-09-04T20:20:07.380140", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL9_5 in zone 03-04", "timestamp": "2025-09-04T20:20:07.380306", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL9_6 in zone 03-04", "timestamp": "2025-09-04T20:20:07.380502", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL9_7 in zone 03-04", "timestamp": "2025-09-04T20:20:07.380684", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL9_8 in zone 03-04", "timestamp": "2025-09-04T20:20:07.380848", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL9_9 in zone 03-04", "timestamp": "2025-09-04T20:20:07.380993", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Zones: rung", "timestamp": "2025-09-04T20:20:07.381130", "module": "src.routines.zones", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "zone": "03-04", "interlock": "MCM03", "dcs_list": ["UL9_1_ESTOP1_DCS_CTRL.O1"]} {"level": "DEBUG", "message": "Zone 03-05 candidates: ['PS4_1', 'PS4_2', 'PS4_3', 'PS4_4', 'PS4_5', 'PS4_6', 'PS4_7']", "timestamp": "2025-09-04T20:20:07.381557", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base PS4_1 in zone 03-05", "timestamp": "2025-09-04T20:20:07.381822", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base PS4_2 in zone 03-05", "timestamp": "2025-09-04T20:20:07.382018", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base PS4_3 in zone 03-05", "timestamp": "2025-09-04T20:20:07.382195", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base PS4_4 in zone 03-05", "timestamp": "2025-09-04T20:20:07.382340", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base PS4_5 in zone 03-05", "timestamp": "2025-09-04T20:20:07.382475", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base PS4_6 in zone 03-05", "timestamp": "2025-09-04T20:20:07.382604", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Zones: rung", "timestamp": "2025-09-04T20:20:07.382786", "module": "src.routines.zones", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "zone": "03-05", "interlock": "MCM03", "dcs_list": ["PS4_7_EPC1_DCS_CTRL.O1", "PS4_7_EPC2_DCS_CTRL.O1"]} {"level": "DEBUG", "message": "Zone 03-06 candidates: ['UL10_1', 'UL10_2', 'UL10_3', 'UL10_4', 'UL10_5', 'UL10_6', 'UL10_7', 'UL10_8']", "timestamp": "2025-09-04T20:20:07.383172", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL10_2 in zone 03-06", "timestamp": "2025-09-04T20:20:07.383341", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL10_3 in zone 03-06", "timestamp": "2025-09-04T20:20:07.383470", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL10_4 in zone 03-06", "timestamp": "2025-09-04T20:20:07.383595", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL10_5 in zone 03-06", "timestamp": "2025-09-04T20:20:07.383775", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL10_6 in zone 03-06", "timestamp": "2025-09-04T20:20:07.383951", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL10_7 in zone 03-06", "timestamp": "2025-09-04T20:20:07.384125", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL10_8 in zone 03-06", "timestamp": "2025-09-04T20:20:07.384267", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Zones: rung", "timestamp": "2025-09-04T20:20:07.384403", "module": "src.routines.zones", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "zone": "03-06", "interlock": "MCM03", "dcs_list": ["UL10_1_ESTOP1_DCS_CTRL.O1"]} {"level": "DEBUG", "message": "Zone 03-07 candidates: ['UL11_1', 'UL11_2', 'UL11_3', 'UL11_4', 'UL11_5', 'UL11_6', 'UL11_7', 'UL11_8', 'UL11_9']", "timestamp": "2025-09-04T20:20:07.384852", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL11_2 in zone 03-07", "timestamp": "2025-09-04T20:20:07.385124", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL11_3 in zone 03-07", "timestamp": "2025-09-04T20:20:07.385317", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL11_4 in zone 03-07", "timestamp": "2025-09-04T20:20:07.385490", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL11_5 in zone 03-07", "timestamp": "2025-09-04T20:20:07.385661", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL11_6 in zone 03-07", "timestamp": "2025-09-04T20:20:07.385812", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL11_7 in zone 03-07", "timestamp": "2025-09-04T20:20:07.385942", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL11_8 in zone 03-07", "timestamp": "2025-09-04T20:20:07.386067", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL11_9 in zone 03-07", "timestamp": "2025-09-04T20:20:07.386190", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Zones: rung", "timestamp": "2025-09-04T20:20:07.386313", "module": "src.routines.zones", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "zone": "03-07", "interlock": "MCM03", "dcs_list": ["UL11_1_ESTOP1_DCS_CTRL.O1"]} {"level": "DEBUG", "message": "Zone 03-08 candidates: ['UL12_1', 'UL12_2', 'UL12_3', 'UL12_4', 'UL12_5', 'UL12_6', 'UL12_7', 'UL12_8', 'UL12_9']", "timestamp": "2025-09-04T20:20:07.386644", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL12_2 in zone 03-08", "timestamp": "2025-09-04T20:20:07.387006", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL12_3 in zone 03-08", "timestamp": "2025-09-04T20:20:07.387316", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL12_4 in zone 03-08", "timestamp": "2025-09-04T20:20:07.387527", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL12_5 in zone 03-08", "timestamp": "2025-09-04T20:20:07.387718", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL12_6 in zone 03-08", "timestamp": "2025-09-04T20:20:07.387889", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL12_7 in zone 03-08", "timestamp": "2025-09-04T20:20:07.388029", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL12_8 in zone 03-08", "timestamp": "2025-09-04T20:20:07.388162", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "No DCS controllers found for base UL12_9 in zone 03-08", "timestamp": "2025-09-04T20:20:07.388291", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Zones: rung", "timestamp": "2025-09-04T20:20:07.388420", "module": "src.routines.zones", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "zone": "03-08", "interlock": "MCM03", "dcs_list": ["UL12_1_EPC1_DCS_CTRL.O1", "UL12_1_EPC2_DCS_CTRL.O1"]} {"level": "INFO", "message": "Successfully generated routine: zones", "timestamp": "2025-09-04T20:20:07.388588", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: estops", "timestamp": "2025-09-04T20:20:07.388748", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: estops", "timestamp": "2025-09-04T20:20:07.391771", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Safety routine generation results: {'inputs': True, 'outputs': True, 'resets': True, 'zones': True, 'estops': True}", "timestamp": "2025-09-04T20:20:07.392227", "module": "ModernSafetyProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Added safety tag map with 7 tags", "timestamp": "2025-09-04T20:20:07.398885", "module": "ModernSafetyProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Routines created (6): MainRoutine, R010_INPUTS, R011_OUTPUTS, R012_RESETS, R020_ESTOPS, R030_ZONES", "timestamp": "2025-09-04T20:20:07.399325", "module": "ModernSafetyProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R010_INPUTS: 29 rungs | example: XIC(Local:7:I.Pt02.Status)XIC(Local:7:I.Pt03.Status)OTE(MCM_EPB_STATUS);", "timestamp": "2025-09-04T20:20:07.399608", "module": "ModernSafetyProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R011_OUTPUTS: 8 rungs | example: XIC(EStop_MCM_OK)XIC(EStop_03_01_OK)[OTE(PS3_1_VFD1:SO.STOOutput),OTE(PS3_2_VFD1:SO.STOOutput),OTE(PS3_3_VFD1:SO.STOOutput),OTE(PS3_4A_VFD1:SO.STOOutput),OTE...", "timestamp": "2025-09-04T20:20:07.399905", "module": "ModernSafetyProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R012_RESETS: 8 rungs | example: [XIC(SFT_PS3_7_S1_PB) ,XIC(SFT_MCM_S_PB)]OTE(RST_PS3_7_EPC1_ESTOP);", "timestamp": "2025-09-04T20:20:07.400224", "module": "ModernSafetyProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R030_ZONES: 9 rungs | example: XIC(PS3_7_EPC1_DCS_CTRL.O1)XIC(PS3_7_EPC2_DCS_CTRL.O1)OTE(EStop_03_01_OK);", "timestamp": "2025-09-04T20:20:07.400505", "module": "ModernSafetyProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R020_ESTOPS: 13 rungs | example: DCS(MCM_EPB_DCS_CTRL,EMERGENCY STOP,EQUIVALENT - ACTIVE HIGH,500,MANUAL,AUTOMATIC,Local:7:I.Pt02.Data,Local:7:I.Pt03.Data,MCM_EPB_STATUS,SFT_MCM_S_PB);", "timestamp": "2025-09-04T20:20:07.400781", "module": "ModernSafetyProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- MainRoutine: 1 rungs | example: [JSR(R010_INPUTS,0) ,JSR(R011_OUTPUTS,0) ,JSR(R012_RESETS,0) ,JSR(R020_ESTOPS,0) ,JSR(R030_ZONES,0) ];", "timestamp": "2025-09-04T20:20:07.401054", "module": "ModernSafetyProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "Successfully completed ModernSafetyProgramGenerator generation", "timestamp": "2025-09-04T20:20:07.401352", "module": "ModernSafetyProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Written ModernSafetyProgramGenerator to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM03/SafetyProgram_Generated.L5X", "timestamp": "2025-09-04T20:20:07.405705", "module": "ModernSafetyProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "[SUCCESS] SafetyProgram written to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM03/SafetyProgram_Generated.L5X", "timestamp": "2025-09-04T20:20:07.595139", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Generating MainProgram L5X...", "timestamp": "2025-09-04T20:20:07.595343", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "WARNING", "message": "LimitedMainProgramGenerator is deprecated; using ModernMainProgramGenerator", "timestamp": "2025-09-04T20:20:07.595512", "module": "src.container", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Starting ModernMainProgramGenerator generation", "timestamp": "2025-09-04T20:20:07.595750", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Creating MainProgram XML structure", "timestamp": "2025-09-04T20:20:07.595900", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Adding controller tags...", "timestamp": "2025-09-04T20:20:07.596087", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Zones: subsystem key", "timestamp": "2025-09-04T20:20:07.663425", "module": "src.data_loader", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "subsystem": "DEFAULT", "found": false} {"level": "DEBUG", "message": "Zones: heuristic best match", "timestamp": "2025-09-04T20:20:07.673863", "module": "src.data_loader", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "best_key": "MCM03", "score": 24} {"level": "DEBUG", "message": "Zones: loaded", "timestamp": "2025-09-04T20:20:07.674526", "module": "src.data_loader", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "rows": 9} {"level": "DEBUG", "message": "Extracting FPE data", "timestamp": "2025-09-04T20:20:07.856971", "module": "DataLoader", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "data_extraction", "type": "FPE"} {"level": "INFO", "message": "Data: FPE count=0", "timestamp": "2025-09-04T20:20:07.857968", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Extracting PMM data", "timestamp": "2025-09-04T20:20:07.858283", "module": "DataLoader", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "data_extraction", "type": "PMM"} {"level": "INFO", "message": "Data: PMM entries=1", "timestamp": "2025-09-04T20:20:07.860248", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "PMM processing PDP3_PMM", "timestamp": "2025-09-04T20:20:07.860492", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "PMM PDP3_PMM DPM=DPM2_PS4_1", "timestamp": "2025-09-04T20:20:07.860664", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "PMM PDP3_PMM PWM fault IO PDP3_FIO1:I.Pt12.Data", "timestamp": "2025-09-04T20:20:07.861322", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "PMM PDP3_PMM configuration stored", "timestamp": "2025-09-04T20:20:07.861477", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Data: PMM configs=1", "timestamp": "2025-09-04T20:20:07.861627", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Extracting CB_MONITOR data", "timestamp": "2025-09-04T20:20:07.861824", "module": "DataLoader", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "data_extraction", "type": "CB_MONITOR"} {"level": "INFO", "message": "Data: CB PDPs=1", "timestamp": "2025-09-04T20:20:07.863132", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "CB_MONITOR PDP3: CBs=26 FIOs=2", "timestamp": "2025-09-04T20:20:07.863404", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB1 (CB1) to position 0", "timestamp": "2025-09-04T20:20:07.863589", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB2 (CB2) to position 1", "timestamp": "2025-09-04T20:20:07.863742", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB3 (CB3) to position 2", "timestamp": "2025-09-04T20:20:07.863874", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB4 (CB4) to position 3", "timestamp": "2025-09-04T20:20:07.864007", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB5 (CB5) to position 4", "timestamp": "2025-09-04T20:20:07.864132", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB6 (CB6) to position 5", "timestamp": "2025-09-04T20:20:07.864259", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB7 (CB7) to position 6", "timestamp": "2025-09-04T20:20:07.864384", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB8 (CB8) to position 7", "timestamp": "2025-09-04T20:20:07.864506", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB9 (CB9) to position 8", "timestamp": "2025-09-04T20:20:07.864669", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB10 (CB10) to position 9", "timestamp": "2025-09-04T20:20:07.864779", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB11 (CB11) to position 10", "timestamp": "2025-09-04T20:20:07.864887", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB12 (CB12) to position 11", "timestamp": "2025-09-04T20:20:07.864994", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB13 (CB13) to position 12", "timestamp": "2025-09-04T20:20:07.865100", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB14 (CB14) to position 13", "timestamp": "2025-09-04T20:20:07.865206", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB15 (CB15) to position 14", "timestamp": "2025-09-04T20:20:07.865313", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB16 (CB16) to position 15", "timestamp": "2025-09-04T20:20:07.865418", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB17 (CB17) to position 16", "timestamp": "2025-09-04T20:20:07.865524", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB18 (CB18) to position 17", "timestamp": "2025-09-04T20:20:07.865688", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB19 (CB19) to position 18", "timestamp": "2025-09-04T20:20:07.865826", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB20 (CB20) to position 19", "timestamp": "2025-09-04T20:20:07.865963", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB21 (CB21) to position 20", "timestamp": "2025-09-04T20:20:07.866131", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB22 (CB22) to position 21", "timestamp": "2025-09-04T20:20:07.866283", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB23 (CB23) to position 22", "timestamp": "2025-09-04T20:20:07.866448", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB24 (CB24) to position 23", "timestamp": "2025-09-04T20:20:07.866575", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB25 (CB25) to position 24", "timestamp": "2025-09-04T20:20:07.866940", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Mapped PDP3_CB26 (CB26) to position 25", "timestamp": "2025-09-04T20:20:07.867488", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "CB_MONITOR PDP3: configured CBs=26 entries=['PDP3_CB1', 'PDP3_CB2', 'PDP3_CB3', 'PDP3_CB4', 'PDP3_CB5', 'PDP3_CB6', 'PDP3_CB7', 'PDP3_CB8', 'PDP3_CB9', 'PDP3_CB10', 'PDP3_CB11', 'PDP3_CB12', 'PDP3_CB13', 'PDP3_CB14', 'PDP3_CB15', 'PDP3_CB16', 'PDP3_CB17', 'PDP3_CB18', 'PDP3_CB19', 'PDP3_CB20', 'PDP3_CB21', 'PDP3_CB22', 'PDP3_CB23', 'PDP3_CB24', 'PDP3_CB25', 'PDP3_CB26'] fault=PDP3_FIO1:I.ConnectionFaulted", "timestamp": "2025-09-04T20:20:07.867776", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Data: CB configs=1", "timestamp": "2025-09-04T20:20:07.883079", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Tags created: total=365 | standard=19 safety=53 dcs=13 modules=272", "timestamp": "2025-09-04T20:20:07.884685", "module": "src.writers.xml_tag_writer", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "Added 365 controller tags", "timestamp": "2025-09-04T20:20:07.884934", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Generating main program routines...", "timestamp": "2025-09-04T20:20:07.885091", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: mcm", "timestamp": "2025-09-04T20:20:07.885259", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: mcm", "timestamp": "2025-09-04T20:20:07.885412", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: rack", "timestamp": "2025-09-04T20:20:07.885553", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: rack", "timestamp": "2025-09-04T20:20:07.885676", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: dpm", "timestamp": "2025-09-04T20:20:07.885813", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: dpm", "timestamp": "2025-09-04T20:20:07.886933", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: fiom", "timestamp": "2025-09-04T20:20:07.887191", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: fiom", "timestamp": "2025-09-04T20:20:07.888309", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: fioh", "timestamp": "2025-09-04T20:20:07.888516", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: fioh", "timestamp": "2025-09-04T20:20:07.889551", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: apf", "timestamp": "2025-09-04T20:20:07.890282", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: apf", "timestamp": "2025-09-04T20:20:07.892781", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: flow_ctrl", "timestamp": "2025-09-04T20:20:07.893282", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: flow_ctrl", "timestamp": "2025-09-04T20:20:07.894938", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Extracting SPEED_CTRL data", "timestamp": "2025-09-04T20:20:07.895162", "module": "DataLoader", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "data_extraction", "type": "SPEED_CTRL"} {"level": "INFO", "message": "Data: SPEED_CTRL VFDs=58", "timestamp": "2025-09-04T20:20:07.895581", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "SPEED_CTRL sample=PS3_1_VFD1, PS3_2_VFD1, PS3_3_VFD1, PS3_4A_VFD1, PS3_4B_VFD1...", "timestamp": "2025-09-04T20:20:07.896678", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Data: SPEED_CTRL count=58", "timestamp": "2025-09-04T20:20:07.896881", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: speed_ctrl", "timestamp": "2025-09-04T20:20:07.897002", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: speed_ctrl", "timestamp": "2025-09-04T20:20:07.897206", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: estop_check", "timestamp": "2025-09-04T20:20:07.897330", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: estop_check", "timestamp": "2025-09-04T20:20:07.901047", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: encoder", "timestamp": "2025-09-04T20:20:07.901254", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: encoder", "timestamp": "2025-09-04T20:20:07.901884", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: safety_tag_map", "timestamp": "2025-09-04T20:20:07.902044", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Safety tag map: RST data has 7 rows", "timestamp": "2025-09-04T20:20:07.902202", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Added safety tag mapping: MCM03 -> Local:5:I.Data.0", "timestamp": "2025-09-04T20:20:07.902427", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Added safety tag mapping: PS3_7_S2_PB -> PS3_5_VFD1:I.IO_0", "timestamp": "2025-09-04T20:20:07.902645", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Added safety tag mapping: PS3_7_S1_PB -> PS3_7_VFD1:I.IO_0", "timestamp": "2025-09-04T20:20:07.902817", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Added safety tag mapping: PS4_7_S2_PB -> PS4_5_VFD1:I.IO_0", "timestamp": "2025-09-04T20:20:07.902971", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Added safety tag mapping: PS4_7_S1_PB -> PS4_7_VFD1:I.IO_0", "timestamp": "2025-09-04T20:20:07.903115", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Added safety tag mapping: UL12_1_SS1_SPB -> UL12_2_FIO1:I.Pt00.Data", "timestamp": "2025-09-04T20:20:07.903255", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Added safety tag mapping: UL7_1_SS1_SPB -> UL7_2_FIO1:I.Pt00.Data", "timestamp": "2025-09-04T20:20:07.903394", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Safety tag map: Generating 7 rungs", "timestamp": "2025-09-04T20:20:07.903527", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generated rung 1: XIC(Local:5:I.Data.0)OTE(MCM03);", "timestamp": "2025-09-04T20:20:07.903644", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generated rung 2: XIC(PS3_7_VFD1:I.IO_0)OTE(PS3_7_S1_PB);", "timestamp": "2025-09-04T20:20:07.903754", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generated rung 3: XIC(PS3_5_VFD1:I.IO_0)OTE(PS3_7_S2_PB);", "timestamp": "2025-09-04T20:20:07.903862", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generated rung 4: XIC(PS4_7_VFD1:I.IO_0)OTE(PS4_7_S1_PB);", "timestamp": "2025-09-04T20:20:07.903983", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generated rung 5: XIC(PS4_5_VFD1:I.IO_0)OTE(PS4_7_S2_PB);", "timestamp": "2025-09-04T20:20:07.904101", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generated rung 6: XIC(UL7_2_FIO1:I.Pt00.Data)OTE(UL7_1_SS1_SPB);", "timestamp": "2025-09-04T20:20:07.904223", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generated rung 7: XIC(UL12_2_FIO1:I.Pt00.Data)OTE(UL12_1_SS1_SPB);", "timestamp": "2025-09-04T20:20:07.904356", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Safety tag map: Generated 7 total rungs", "timestamp": "2025-09-04T20:20:07.904475", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: safety_tag_map", "timestamp": "2025-09-04T20:20:07.904602", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: station_jr_pb", "timestamp": "2025-09-04T20:20:07.904729", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: station_jr_pb", "timestamp": "2025-09-04T20:20:07.905010", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: station_s_pb", "timestamp": "2025-09-04T20:20:07.905181", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: station_s_pb", "timestamp": "2025-09-04T20:20:07.905471", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: station_ss_pb", "timestamp": "2025-09-04T20:20:07.905703", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: station_ss_pb", "timestamp": "2025-09-04T20:20:07.906022", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: station_epc", "timestamp": "2025-09-04T20:20:07.906235", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: station_epc", "timestamp": "2025-09-04T20:20:07.906555", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: jpe", "timestamp": "2025-09-04T20:20:07.906739", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: jpe", "timestamp": "2025-09-04T20:20:07.907597", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Plugin fpe cannot generate with current data", "timestamp": "2025-09-04T20:20:07.907781", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: pmm", "timestamp": "2025-09-04T20:20:07.907936", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: pmm", "timestamp": "2025-09-04T20:20:07.908155", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: cb_monitor", "timestamp": "2025-09-04T20:20:07.908275", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: cb_monitor", "timestamp": "2025-09-04T20:20:07.908455", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: belt_tracking", "timestamp": "2025-09-04T20:20:07.908894", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: belt_tracking", "timestamp": "2025-09-04T20:20:07.910379", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Generating routine: main_routine", "timestamp": "2025-09-04T20:20:07.910639", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Generating MainRoutine with JSR calls", "timestamp": "2025-09-04T20:20:07.910755", "module": "src.routines.main_routine_plugin.MainRoutinePlugin", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated MainRoutine", "timestamp": "2025-09-04T20:20:07.910900", "module": "src.routines.main_routine_plugin.MainRoutinePlugin", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Successfully generated routine: main_routine", "timestamp": "2025-09-04T20:20:07.911001", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Main routine generation results: {'mcm': True, 'rack': True, 'dpm': True, 'fiom': True, 'fioh': True, 'apf': True, 'flow_ctrl': True, 'speed_ctrl': True, 'estop_check': True, 'encoder': True, 'safety_tag_map': True, 'station_jr_pb': True, 'station_s_pb': True, 'station_ss_pb': True, 'station_epc': True, 'jpe': True, 'fpe': False, 'pmm': True, 'cb_monitor': True, 'belt_tracking': True, 'main_routine': True}", "timestamp": "2025-09-04T20:20:07.911104", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Routines created (20): MainRoutine, R010_MCM, R011_RACK, R020_DPM, R030_FIOM, R031_FIOH, R040_APF, R050_FLOW_CTRL, R051_SPEED_CTRL, R060_PMM, R070_CB_MONITOR, R080_ENCODER, R090_STATION_JR_PB, R091_STATION_S_PB, R092_STATION_SS_PB, R093_STATION_EPC, R100_JPE, R120_ESTOP_CHECK, R130_SAFETY_TAG_MAP, ZZZ_BeltTracking", "timestamp": "2025-09-04T20:20:07.911217", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R010_MCM: 2 rungs | example: NOP();", "timestamp": "2025-09-04T20:20:07.911325", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R011_RACK: 2 rungs | example: NOP();", "timestamp": "2025-09-04T20:20:07.911427", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R020_DPM: 5 rungs | example: NOP();", "timestamp": "2025-09-04T20:20:07.911527", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R030_FIOM: 8 rungs | example: NOP();", "timestamp": "2025-09-04T20:20:07.911627", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R031_FIOH: 2 rungs | example: NOP();", "timestamp": "2025-09-04T20:20:07.911755", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R040_APF: 59 rungs | example: NOP();", "timestamp": "2025-09-04T20:20:07.911878", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R050_FLOW_CTRL: 54 rungs | example: XIC(PS3_2_VFD1.CTRL.STS.Enabled)OTE(PS3_1_VFD1.CTRL.CMD.Interlock);", "timestamp": "2025-09-04T20:20:07.912030", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R051_SPEED_CTRL: 1 rungs | example: [MOVE(Speed_350_FPM,PS3_1_VFD1.CTRL.CMD.Speed_FPM) ,MOVE(Speed_350_FPM,PS3_2_VFD1.CTRL.CMD.Speed_FPM) ,MOVE(Speed_350_FPM,PS3_3_VFD1.CTRL.CMD.Speed_FPM) ,MOV...", "timestamp": "2025-09-04T20:20:07.912166", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R120_ESTOP_CHECK: 12 rungs | example: [XIO(PS3_7_VFD1:SI.In00Data) ,XIO(PS3_7_VFD1:SI.In01Data) ]XIO(PS3_1_VFD1:SO.STOOutput)XIO(PS3_2_VFD1:SO.STOOutput)XIO(PS3_3_VFD1:SO.STOOutput)XIO(PS3_4A_VFD...", "timestamp": "2025-09-04T20:20:07.912297", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R080_ENCODER: 52 rungs | example: AOI_ENCODER(PS3_1_ENCODER.AOI,PS3_1_ENCODER.HMI,PS3_1_ENCODER.CTRL,PS3_1_VFD1.CTRL,NO_UPSTREAM,PS3_2_VFD1.CTRL,PS3_1_VFD1:I.In_1,PS3_1_VFD1:I.ConnectionFault...", "timestamp": "2025-09-04T20:20:07.912422", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R130_SAFETY_TAG_MAP: 8 rungs | example: XIC(Local:5:I.Data.0)OTE(MCM_S_PB);", "timestamp": "2025-09-04T20:20:07.912571", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R090_STATION_JR_PB: 10 rungs | example: AOI_STATION_JR_PB(PS3_1_JR1_PB.AOI,PS3_1_JR1_PB.HMI,PS3_1_JR1_PB.CTRL,NO_PARTNER,UL8_9_VFD1:I.IO_0,UL8_9_VFD1:O.IO_1,MCM.CTRL)MOVE(PS3_1_JR1_PB.CTRL.STS.Log,...", "timestamp": "2025-09-04T20:20:07.912711", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R091_STATION_S_PB: 4 rungs | example: AOI_STATION_S_PB(PS3_7_S1_PB_STATION.AOI,PS3_7_S1_PB_STATION.HMI,PS3_7_S1_PB_STATION.CTRL,PS3_7_VFD1.CTRL,PS3_7_VFD1:I.IO_0,PS3_7_VFD1:O.IO_1,PS3_1_JR1_PB.CT...", "timestamp": "2025-09-04T20:20:07.912848", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R092_STATION_SS_PB: 2 rungs | example: AOI_STATION_SS_PB(UL7_1_SS1_STATION.AOI,UL7_1_SS1_STATION.HMI,UL7_1_SS1_STATION.CTRL,UL7_1_VFD1.CTRL,UL7_2_FIO1:I.ConnectionFaulted,UL7_2_FIO1:I.Pt00.Data,UL...", "timestamp": "2025-09-04T20:20:07.912985", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R093_STATION_EPC: 8 rungs | example: AOI_STATION_EPC(PS3_7_EPC1_STATION.AOI,MCM.CTRL,PS3_7_EPC1_STATION.HMI,PS3_7_S2_PB_STATION.CTRL,PS3_7_VFD1:I.ConnectionFaulted,PS3_7_VFD1:SI.In00Data,PS3_7_V...", "timestamp": "2025-09-04T20:20:07.913119", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R100_JPE: 66 rungs | example: AOI_JPE(PS3_1_TPE1.AOI,PS3_1_TPE1.HMI,PS3_1_TPE1.CTRL,PS3_1_VFD1.CTRL,PS3_1_JR1_PB.CTRL,UL7_7_VFD1:I.ConnectionFaulted,UL7_7_VFD1:I.In_2,YES,UL8_8_VFD1:O.IO_0);", "timestamp": "2025-09-04T20:20:07.913254", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R060_PMM: 2 rungs | example: NOP();", "timestamp": "2025-09-04T20:20:07.913387", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- R070_CB_MONITOR: 2 rungs | example: NOP();", "timestamp": "2025-09-04T20:20:07.913519", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- ZZZ_BeltTracking: 59 rungs | example: NOP();", "timestamp": "2025-09-04T20:20:07.913651", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "- MainRoutine: 1 rungs | example: [JSR(R010_MCM,0) ,JSR(R011_RACK,0) ,JSR(R020_DPM,0) ,JSR(R030_FIOM,0) ,JSR(R031_FIOH,0) ,JSR(R040_APF,0) ,JSR(R050_FLOW_CTRL,0) ,JSR(R051_SPEED_CTRL,0) ,JSR(...", "timestamp": "2025-09-04T20:20:07.913783", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"} {"level": "INFO", "message": "Successfully completed ModernMainProgramGenerator generation", "timestamp": "2025-09-04T20:20:07.914177", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Written ModernMainProgramGenerator to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM03/MainProgram_Generated.L5X", "timestamp": "2025-09-04T20:20:07.922116", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "[SUCCESS] MainProgram written to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM03/MainProgram_Generated.L5X", "timestamp": "2025-09-04T20:20:07.922483", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "Generating safety tag mapping...", "timestamp": "2025-09-04T20:20:07.922664", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Creating MappingWriter wrapper", "timestamp": "2025-09-04T20:20:07.922825", "module": "src.container", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "DEBUG", "message": "Creating DataLoader instance", "timestamp": "2025-09-04T20:20:07.922996", "module": "src.container", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "excel_file": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/DESC_IP_MERGED.xlsx"} {"level": "INFO", "message": "[SUCCESS] Safety tag mapping written to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM03/SafetyTagMapping.txt", "timestamp": "2025-09-04T20:20:07.995993", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": " - Safety tags: 7", "timestamp": "2025-09-04T20:20:07.996200", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} {"level": "INFO", "message": "=== All artifacts generated successfully! ===", "timestamp": "2025-09-04T20:20:07.996357", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} === Step 2: Routines Generator stdout === Found JPE config for PS3_3_TPE2 (station from config, beacon from config) Found JPE config for PS3_5_TPE1 (station from config, beacon from config) Found JPE config for PS3_5_TPE2 (station from config, beacon from config) Found JPE config for PS3_6_TPE1 (station from config, beacon from config) Found JPE config for PS3_7_TPE1 (station from config, beacon from config) Found JPE config for PS4_3_TPE2 (station from config, beacon from config) Found JPE config for PS4_5_TPE1 (station from config, beacon from config) Found JPE config for PS4_5_TPE2 (station from config, beacon from config) Found JPE config for PS4_6_TPE1 (station from config, beacon from config) Found JPE config for PS4_7_TPE1 (station from config, beacon from config) Found JPE config for UL10_5_TPE1 (station from config, beacon from config) Found JPE config for UL10_5_TPE2 (station from config, beacon from config) Found JPE config for UL10_6_TPE1 (station from config, beacon from config) Found JPE config for UL10_7_TPE1 (station from config, beacon from config) Found JPE config for PS4_1_TPE1 Found JPE config for UL11_5_TPE1 (station from config, beacon from config) Found JPE config for UL11_5_TPE2 (station from config, beacon from config) Found JPE config for UL11_6_TPE1 (station from config, beacon from config) Found JPE config for UL11_7_TPE1 (station from config, beacon from config) Found JPE config for UL11_8_TPE1 (station from config, beacon from config) Found JPE config for PS4_1_TPE2 Found JPE config for UL12_1_TPE1 (station from config, beacon from config) Found JPE config for UL12_4_TPE1 (station from config, beacon from config) Found JPE config for UL12_4_TPE2 (station from config, beacon from config) Found JPE config for UL12_5_TPE1 (station from config, beacon from config) Found JPE config for UL12_6_TPE1 (station from config, beacon from config) Found JPE config for UL12_7_TPE1 (station from config, beacon from config) Found JPE config for UL7_1_TPE1 (station from config, beacon from config) Found JPE config for UL7_4_TPE1 (station from config, beacon from config) Found JPE config for UL7_4_TPE2 (station from config, beacon from config) Found JPE config for UL7_5_TPE1 (station from config, beacon from config) Found JPE config for UL7_6_TPE1 (station from config, beacon from config) Found JPE config for PS3_1_TPE1 Found JPE config for UL8_5_TPE1 (station from config, beacon from config) Found JPE config for UL8_5_TPE2 (station from config, beacon from config) Found JPE config for UL8_6_TPE1 (station from config, beacon from config) Found JPE config for UL8_7_TPE1 (station from config, beacon from config) Found JPE config for UL8_8_TPE1 (station from config, beacon from config) Found JPE config for PS3_1_TPE2 Found JPE config for UL9_5_TPE1 (station from config, beacon from config) Found JPE config for UL9_5_TPE2 (station from config, beacon from config) Found JPE config for UL9_6_TPE1 (station from config, beacon from config) Found JPE config for UL9_7_TPE1 (station from config, beacon from config) Found JPE config for UL9_8_TPE1 (station from config, beacon from config) Found JPE config for PS3_1_TPE3 Found JPE config for PS3_3_TPE1 (station from config, beacon from config) Found JPE config for PS4_3_TPE1 (station from config, beacon from config) Found JPE config for UL10_3_TPE3 Found JPE config for UL11_3_TPE3 Found JPE config for UL12_2_TPE2 Found JPE config for PS3_1_TPE4 Found JPE config for PS4_1_TPE3 Found JPE config for PS4_1_TPE4 Found JPE config for UL12_2_TPE1 Found JPE config for UL7_2_TPE1 Found JPE config for UL7_2_TPE2 Found JPE config for UL8_3_TPE3 Found JPE config for UL9_3_TPE3 Found JPE config for UL10_3_TPE1 Found JPE config for UL10_3_TPE2 Found JPE config for UL11_3_TPE1 Found JPE config for UL11_3_TPE2 Found JPE config for UL8_3_TPE1 Found JPE config for UL8_3_TPE2 Found JPE config for UL9_3_TPE1 Found JPE config for UL9_3_TPE2 Looking for red beacon with base PS3_7, EPC channel EPC1 Beacon mask pattern: f'{base}_BCN.*_R$' Found 2 red beacon entries Found red beacon: PS3_7_BCN2_R with IO_PATH: PS3_4B_VFD1:O.IO_0 No SO in red beacon PS3_7_BCN2_R: PS3_4B_VFD1:O.IO_0 Found STATION_EPC config for PS3_7_EPC1 Looking for red beacon with base PS4_7, EPC channel EPC1 Beacon mask pattern: f'{base}_BCN.*_R$' Found 2 red beacon entries Found red beacon: PS4_7_BCN2_R with IO_PATH: PS4_4B_VFD1:O.IO_0 No SO in red beacon PS4_7_BCN2_R: PS4_4B_VFD1:O.IO_0 Found STATION_EPC config for PS4_7_EPC1 Looking for red beacon with base UL12_1, EPC channel EPC1 Beacon mask pattern: f'{base}_BCN.*_R$' Found 0 red beacon entries Found STATION_EPC config for UL12_1_EPC1 Looking for red beacon with base UL7_1, EPC channel EPC1 Beacon mask pattern: f'{base}_BCN.*_R$' Found 0 red beacon entries Found STATION_EPC config for UL7_1_EPC1 Looking for red beacon with base PS3_7, EPC channel EPC2 Beacon mask pattern: f'{base}_BCN2_R$' Found 1 red beacon entries Found red beacon: PS3_7_BCN2_R with IO_PATH: PS3_4B_VFD1:O.IO_0 No SO in red beacon PS3_7_BCN2_R: PS3_4B_VFD1:O.IO_0 Found STATION_EPC config for PS3_7_EPC2 Looking for red beacon with base PS4_7, EPC channel EPC2 Beacon mask pattern: f'{base}_BCN2_R$' Found 1 red beacon entries Found red beacon: PS4_7_BCN2_R with IO_PATH: PS4_4B_VFD1:O.IO_0 No SO in red beacon PS4_7_BCN2_R: PS4_4B_VFD1:O.IO_0 Found STATION_EPC config for PS4_7_EPC2 Looking for red beacon with base UL12_1, EPC channel EPC2 Beacon mask pattern: f'{base}_BCN2_R$' Found 0 red beacon entries Found STATION_EPC config for UL12_1_EPC2 Looking for red beacon with base UL7_1, EPC channel EPC2 Beacon mask pattern: f'{base}_BCN2_R$' Found 0 red beacon entries Found STATION_EPC config for UL7_1_EPC2 [DEBUG] Found 0 SO beacon tags for safety mapping Found STATION_S_PB config for PS3_7_S2_PB Found STATION_S_PB config for PS3_7_S1_PB Found STATION_S_PB config for PS4_7_S2_PB Found STATION_S_PB config for PS4_7_S1_PB Found STATION_SS_PB config for UL12_1_SS1 Found STATION_SS_PB config for UL7_1_SS1 Found STATION_JR_PB config for PS4_1_JR1_PB Found STATION_JR_PB config for PS3_1_JR1_PB Found STATION_JR_PB config for UL10_3_JR1_PB Found STATION_JR_PB config for UL11_3_JR1_PB Found STATION_JR_PB config for UL12_2_JR1_PB Found STATION_JR_PB config for UL7_2_JR1_PB Found STATION_JR_PB config for PS3_1_JR2_PB Found STATION_JR_PB config for PS4_1_JR2_PB Found STATION_JR_PB config for UL8_3_JR1_PB Found STATION_JR_PB config for UL9_3_JR1_PB Created SafetyTagMapping.txt with 17 mappings File: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM03/SafetyTagMapping.txt Found JPE config for PS3_3_TPE2 (station from config, beacon from config) Found JPE config for PS3_5_TPE1 (station from config, beacon from config) Found JPE config for PS3_5_TPE2 (station from config, beacon from config) Found JPE config for PS3_6_TPE1 (station from config, beacon from config) Found JPE config for PS3_7_TPE1 (station from config, beacon from config) Found JPE config for PS4_3_TPE2 (station from config, beacon from config) Found JPE config for PS4_5_TPE1 (station from config, beacon from config) Found JPE config for PS4_5_TPE2 (station from config, beacon from config) Found JPE config for PS4_6_TPE1 (station from config, beacon from config) Found JPE config for PS4_7_TPE1 (station from config, beacon from config) Found JPE config for UL10_5_TPE1 (station from config, beacon from config) Found JPE config for UL10_5_TPE2 (station from config, beacon from config) Found JPE config for UL10_6_TPE1 (station from config, beacon from config) Found JPE config for UL10_7_TPE1 (station from config, beacon from config) Found JPE config for PS4_1_TPE1 Found JPE config for UL11_5_TPE1 (station from config, beacon from config) Found JPE config for UL11_5_TPE2 (station from config, beacon from config) Found JPE config for UL11_6_TPE1 (station from config, beacon from config) Found JPE config for UL11_7_TPE1 (station from config, beacon from config) Found JPE config for UL11_8_TPE1 (station from config, beacon from config) Found JPE config for PS4_1_TPE2 Found JPE config for UL12_1_TPE1 (station from config, beacon from config) Found JPE config for UL12_4_TPE1 (station from config, beacon from config) Found JPE config for UL12_4_TPE2 (station from config, beacon from config) Found JPE config for UL12_5_TPE1 (station from config, beacon from config) Found JPE config for UL12_6_TPE1 (station from config, beacon from config) Found JPE config for UL12_7_TPE1 (station from config, beacon from config) Found JPE config for UL7_1_TPE1 (station from config, beacon from config) Found JPE config for UL7_4_TPE1 (station from config, beacon from config) Found JPE config for UL7_4_TPE2 (station from config, beacon from config) Found JPE config for UL7_5_TPE1 (station from config, beacon from config) Found JPE config for UL7_6_TPE1 (station from config, beacon from config) Found JPE config for PS3_1_TPE1 Found JPE config for UL8_5_TPE1 (station from config, beacon from config) Found JPE config for UL8_5_TPE2 (station from config, beacon from config) Found JPE config for UL8_6_TPE1 (station from config, beacon from config) Found JPE config for UL8_7_TPE1 (station from config, beacon from config) Found JPE config for UL8_8_TPE1 (station from config, beacon from config) Found JPE config for PS3_1_TPE2 Found JPE config for UL9_5_TPE1 (station from config, beacon from config) Found JPE config for UL9_5_TPE2 (station from config, beacon from config) Found JPE config for UL9_6_TPE1 (station from config, beacon from config) Found JPE config for UL9_7_TPE1 (station from config, beacon from config) Found JPE config for UL9_8_TPE1 (station from config, beacon from config) Found JPE config for PS3_1_TPE3 Found JPE config for PS3_3_TPE1 (station from config, beacon from config) Found JPE config for PS4_3_TPE1 (station from config, beacon from config) Found JPE config for UL10_3_TPE3 Found JPE config for UL11_3_TPE3 Found JPE config for UL12_2_TPE2 Found JPE config for PS3_1_TPE4 Found JPE config for PS4_1_TPE3 Found JPE config for PS4_1_TPE4 Found JPE config for UL12_2_TPE1 Found JPE config for UL7_2_TPE1 Found JPE config for UL7_2_TPE2 Found JPE config for UL8_3_TPE3 Found JPE config for UL9_3_TPE3 Found JPE config for UL10_3_TPE1 Found JPE config for UL10_3_TPE2 Found JPE config for UL11_3_TPE1 Found JPE config for UL11_3_TPE2 Found JPE config for UL8_3_TPE1 Found JPE config for UL8_3_TPE2 Found JPE config for UL9_3_TPE1 Found JPE config for UL9_3_TPE2 Looking for red beacon with base PS3_7, EPC channel EPC1 Beacon mask pattern: f'{base}_BCN.*_R$' Found 2 red beacon entries Found red beacon: PS3_7_BCN2_R with IO_PATH: PS3_4B_VFD1:O.IO_0 No SO in red beacon PS3_7_BCN2_R: PS3_4B_VFD1:O.IO_0 Found STATION_EPC config for PS3_7_EPC1 Looking for red beacon with base PS4_7, EPC channel EPC1 Beacon mask pattern: f'{base}_BCN.*_R$' Found 2 red beacon entries Found red beacon: PS4_7_BCN2_R with IO_PATH: PS4_4B_VFD1:O.IO_0 No SO in red beacon PS4_7_BCN2_R: PS4_4B_VFD1:O.IO_0 Found STATION_EPC config for PS4_7_EPC1 Looking for red beacon with base UL12_1, EPC channel EPC1 Beacon mask pattern: f'{base}_BCN.*_R$' Found 0 red beacon entries Found STATION_EPC config for UL12_1_EPC1 Looking for red beacon with base UL7_1, EPC channel EPC1 Beacon mask pattern: f'{base}_BCN.*_R$' Found 0 red beacon entries Found STATION_EPC config for UL7_1_EPC1 Looking for red beacon with base PS3_7, EPC channel EPC2 Beacon mask pattern: f'{base}_BCN2_R$' Found 1 red beacon entries Found red beacon: PS3_7_BCN2_R with IO_PATH: PS3_4B_VFD1:O.IO_0 No SO in red beacon PS3_7_BCN2_R: PS3_4B_VFD1:O.IO_0 Found STATION_EPC config for PS3_7_EPC2 Looking for red beacon with base PS4_7, EPC channel EPC2 Beacon mask pattern: f'{base}_BCN2_R$' Found 1 red beacon entries Found red beacon: PS4_7_BCN2_R with IO_PATH: PS4_4B_VFD1:O.IO_0 No SO in red beacon PS4_7_BCN2_R: PS4_4B_VFD1:O.IO_0 Found STATION_EPC config for PS4_7_EPC2 Looking for red beacon with base UL12_1, EPC channel EPC2 Beacon mask pattern: f'{base}_BCN2_R$' Found 0 red beacon entries Found STATION_EPC config for UL12_1_EPC2 Looking for red beacon with base UL7_1, EPC channel EPC2 Beacon mask pattern: f'{base}_BCN2_R$' Found 0 red beacon entries Found STATION_EPC config for UL7_1_EPC2 Found STATION_JR_PB config for PS4_1_JR1_PB Found STATION_JR_PB config for PS3_1_JR1_PB Found STATION_JR_PB config for UL10_3_JR1_PB Found STATION_JR_PB config for UL11_3_JR1_PB Found STATION_JR_PB config for UL12_2_JR1_PB Found STATION_JR_PB config for UL7_2_JR1_PB Found STATION_JR_PB config for PS3_1_JR2_PB Found STATION_JR_PB config for PS4_1_JR2_PB Found STATION_JR_PB config for UL8_3_JR1_PB Found STATION_JR_PB config for UL9_3_JR1_PB Found STATION_S_PB config for PS3_7_S2_PB Found STATION_S_PB config for PS3_7_S1_PB Found STATION_S_PB config for PS4_7_S2_PB Found STATION_S_PB config for PS4_7_S1_PB Found STATION_SS_PB config for UL12_1_SS1 Found STATION_SS_PB config for UL7_1_SS1 Found ENCODER config for PS3_3_ENCODER (upstream: PS3_2_VFD1.CTRL, downstream: NO_DOWNSTREAM) Found ENCODER config for PS3_5_ENCODER (upstream: NO_UPSTREAM, downstream: PS3_6_VFD1.CTRL) Found ENCODER config for PS3_6_ENCODER (upstream: PS3_5_VFD1.CTRL, downstream: PS3_7_VFD1.CTRL) Found ENCODER config for PS3_7_ENCODER (upstream: PS3_6_VFD1.CTRL, downstream: NO_DOWNSTREAM) Found ENCODER config for PS4_3_ENCODER (upstream: PS4_2_VFD1.CTRL, downstream: NO_DOWNSTREAM) Found ENCODER config for PS4_5_ENCODER (upstream: NO_UPSTREAM, downstream: PS4_6_VFD1.CTRL) Found ENCODER config for PS4_6_ENCODER (upstream: PS4_5_VFD1.CTRL, downstream: PS4_7_VFD1.CTRL) Found ENCODER config for PS4_7_ENCODER (upstream: PS4_6_VFD1.CTRL, downstream: NO_DOWNSTREAM) Found ENCODER config for UL10_5_ENCODER (upstream: UL10_4_VFD1.CTRL, downstream: UL10_6_VFD1.CTRL) Found ENCODER config for UL10_6_ENCODER (upstream: UL10_5_VFD1.CTRL, downstream: UL10_7_VFD1.CTRL) Found ENCODER config for UL10_7_ENCODER (upstream: UL10_6_VFD1.CTRL, downstream: UL10_8_VFD1.CTRL) Found ENCODER config for UL10_8_ENCODER (upstream: UL10_7_VFD1.CTRL, downstream: NO_DOWNSTREAM) Found ENCODER config for UL11_5_ENCODER (upstream: UL11_4_VFD1.CTRL, downstream: UL11_6_VFD1.CTRL) Found ENCODER config for UL11_6_ENCODER (upstream: UL11_5_VFD1.CTRL, downstream: UL11_7_VFD1.CTRL) Found ENCODER config for UL11_7_ENCODER (upstream: UL11_6_VFD1.CTRL, downstream: UL11_8_VFD1.CTRL) Found ENCODER config for UL11_8_ENCODER (upstream: UL11_7_VFD1.CTRL, downstream: UL11_9_VFD1.CTRL) Found ENCODER config for UL11_9_ENCODER (upstream: UL11_8_VFD1.CTRL, downstream: NO_DOWNSTREAM) Found ENCODER config for UL12_4_ENCODER (upstream: UL12_3_VFD1.CTRL, downstream: UL12_5_VFD1.CTRL) Found ENCODER config for UL12_5_ENCODER (upstream: UL12_4_VFD1.CTRL, downstream: UL12_6_VFD1.CTRL) Found ENCODER config for UL12_6_ENCODER (upstream: UL12_5_VFD1.CTRL, downstream: UL12_7_VFD1.CTRL) Found ENCODER config for UL12_7_ENCODER (upstream: UL12_6_VFD1.CTRL, downstream: UL12_8_VFD1.CTRL) Found ENCODER config for UL12_8_ENCODER (upstream: UL12_7_VFD1.CTRL, downstream: NO_DOWNSTREAM) Found ENCODER config for UL7_4_ENCODER (upstream: UL7_3_VFD1.CTRL, downstream: UL7_5_VFD1.CTRL) Found ENCODER config for UL7_5_ENCODER (upstream: UL7_4_VFD1.CTRL, downstream: UL7_6_VFD1.CTRL) Found ENCODER config for UL7_6_ENCODER (upstream: UL7_5_VFD1.CTRL, downstream: UL7_7_VFD1.CTRL) Found ENCODER config for UL7_7_ENCODER (upstream: UL7_6_VFD1.CTRL, downstream: NO_DOWNSTREAM) Found ENCODER config for UL8_5_ENCODER (upstream: UL8_4_VFD1.CTRL, downstream: UL8_6_VFD1.CTRL) Found ENCODER config for UL8_6_ENCODER (upstream: UL8_5_VFD1.CTRL, downstream: UL8_7_VFD1.CTRL) Found ENCODER config for UL8_7_ENCODER (upstream: UL8_6_VFD1.CTRL, downstream: UL8_8_VFD1.CTRL) Found ENCODER config for UL8_8_ENCODER (upstream: UL8_7_VFD1.CTRL, downstream: UL8_9_VFD1.CTRL) Found ENCODER config for UL8_9_ENCODER (upstream: UL8_8_VFD1.CTRL, downstream: NO_DOWNSTREAM) Found ENCODER config for UL9_5_ENCODER (upstream: UL9_4_VFD1.CTRL, downstream: UL9_6_VFD1.CTRL) Found ENCODER config for UL9_6_ENCODER (upstream: UL9_5_VFD1.CTRL, downstream: UL9_7_VFD1.CTRL) Found ENCODER config for UL9_7_ENCODER (upstream: UL9_6_VFD1.CTRL, downstream: UL9_8_VFD1.CTRL) Found ENCODER config for UL9_8_ENCODER (upstream: UL9_7_VFD1.CTRL, downstream: UL9_9_VFD1.CTRL) Found ENCODER config for UL9_9_ENCODER (upstream: UL9_8_VFD1.CTRL, downstream: NO_DOWNSTREAM) Found ENCODER config for PS3_2_ENCODER (upstream: PS3_1_VFD1.CTRL, downstream: PS3_3_VFD1.CTRL) Found ENCODER config for PS4_2_ENCODER (upstream: PS4_1_VFD1.CTRL, downstream: PS4_3_VFD1.CTRL) Found ENCODER config for UL10_3_ENCODER (upstream: NO_UPSTREAM, downstream: UL10_4_VFD1.CTRL) Found ENCODER config for UL10_4_ENCODER (upstream: UL10_3_VFD1.CTRL, downstream: UL10_5_VFD1.CTRL) Found ENCODER config for UL11_3_ENCODER (upstream: NO_UPSTREAM, downstream: UL11_4_VFD1.CTRL) Found ENCODER config for UL11_4_ENCODER (upstream: UL11_3_VFD1.CTRL, downstream: UL11_5_VFD1.CTRL) Found ENCODER config for UL12_3_ENCODER (upstream: UL12_2_VFD1.CTRL, downstream: UL12_4_VFD1.CTRL) Found ENCODER config for UL7_3_ENCODER (upstream: UL7_2_VFD1.CTRL, downstream: UL7_4_VFD1.CTRL) Found ENCODER config for UL8_4_ENCODER (upstream: UL8_3_VFD1.CTRL, downstream: UL8_5_VFD1.CTRL) Found ENCODER config for UL9_4_ENCODER (upstream: UL9_3_VFD1.CTRL, downstream: UL9_5_VFD1.CTRL) Found ENCODER config for PS3_1_ENCODER (upstream: NO_UPSTREAM, downstream: PS3_2_VFD1.CTRL) Found ENCODER config for PS4_1_ENCODER (upstream: NO_UPSTREAM, downstream: PS4_2_VFD1.CTRL) Found ENCODER config for UL12_2_ENCODER (upstream: UL12_1_VFD1.CTRL, downstream: UL12_3_VFD1.CTRL) Found ENCODER config for UL7_2_ENCODER (upstream: UL7_1_VFD1.CTRL, downstream: UL7_3_VFD1.CTRL) Found ENCODER config for UL8_3_ENCODER (upstream: NO_UPSTREAM, downstream: UL8_4_VFD1.CTRL) Found ENCODER config for UL9_3_ENCODER (upstream: NO_UPSTREAM, downstream: UL9_4_VFD1.CTRL) FIOM PDP3_FIO1 -> DPM DPM2_PS4_1 FIOM UL7_2_FIO1 -> DPM DPM1_PS3_1 FIOM UL8_3_FIO1 -> DPM DPM1_PS3_1 FIOM UL9_3_FIO1 -> DPM DPM2_PS3_1 FIOM UL10_3_FIO1 -> DPM DPM1_PS4_1 FIOM UL11_3_FIO1 -> DPM DPM1_PS4_1 FIOM UL12_2_FIO1 -> DPM DPM2_PS4_1 FIOH PDP3_FIOH1 -> FIO PDP3_FIO1 APF PS3_1_VFD1 -> DPM DPM2_PS3_1 APF PS3_2_VFD1 -> DPM DPM2_PS3_1 APF PS3_3_VFD1 -> DPM DPM2_PS3_1 APF PS3_4A_VFD1 -> DPM DPM2_PS3_1 APF PS3_4B_VFD1 -> DPM DPM2_PS3_1 APF PS3_5_VFD1 -> DPM DPM2_PS3_1 APF PS3_6_VFD1 -> DPM DPM2_PS3_1 APF PS3_7_VFD1 -> DPM DPM2_PS3_1 APF PS4_1_VFD1 -> DPM DPM2_PS4_1 APF PS4_2_VFD1 -> DPM DPM2_PS4_1 APF PS4_3_VFD1 -> DPM DPM2_PS4_1 APF PS4_4A_VFD1 -> DPM DPM2_PS4_1 APF PS4_4B_VFD1 -> DPM DPM2_PS4_1 APF PS4_5_VFD1 -> DPM DPM2_PS4_1 APF PS4_6_VFD1 -> DPM DPM2_PS4_1 APF PS4_7_VFD1 -> DPM DPM2_PS4_1 APF UL7_1_VFD1 -> DPM DPM1_PS3_1 APF UL7_2_VFD1 -> DPM DPM1_PS3_1 APF UL7_3_VFD1 -> DPM DPM1_PS3_1 APF UL7_4_VFD1 -> DPM DPM1_PS3_1 APF UL7_5_VFD1 -> DPM DPM1_PS3_1 APF UL7_6_VFD1 -> DPM DPM1_PS3_1 APF UL7_7_VFD1 -> DPM DPM1_PS3_1 APF UL8_3_VFD1 -> DPM DPM1_PS3_1 APF UL8_4_VFD1 -> DPM DPM1_PS3_1 APF UL8_5_VFD1 -> DPM DPM1_PS3_1 APF UL8_6_VFD1 -> DPM DPM1_PS3_1 APF UL8_7_VFD1 -> DPM DPM1_PS3_1 APF UL8_8_VFD1 -> DPM DPM1_PS3_1 APF UL8_9_VFD1 -> DPM DPM1_PS3_1 APF UL9_3_VFD1 -> DPM DPM2_PS3_1 APF UL9_4_VFD1 -> DPM DPM2_PS3_1 APF UL9_5_VFD1 -> DPM DPM2_PS3_1 APF UL9_6_VFD1 -> DPM DPM2_PS3_1 APF UL9_7_VFD1 -> DPM DPM2_PS3_1 APF UL9_8_VFD1 -> DPM DPM2_PS3_1 APF UL9_9_VFD1 -> DPM DPM2_PS3_1 APF UL10_3_VFD1 -> DPM DPM1_PS4_1 APF UL10_4_VFD1 -> DPM DPM1_PS4_1 APF UL10_5_VFD1 -> DPM DPM1_PS4_1 APF UL10_6_VFD1 -> DPM DPM1_PS4_1 APF UL10_7_VFD1 -> DPM DPM1_PS4_1 APF UL10_8_VFD1 -> DPM DPM1_PS4_1 APF UL11_3_VFD1 -> DPM DPM1_PS4_1 APF UL11_4_VFD1 -> DPM DPM1_PS4_1 APF UL11_5_VFD1 -> DPM DPM1_PS4_1 APF UL11_6_VFD1 -> DPM DPM1_PS4_1 APF UL11_7_VFD1 -> DPM DPM1_PS4_1 APF UL11_8_VFD1 -> DPM DPM1_PS4_1 APF UL11_9_VFD1 -> DPM DPM1_PS4_1 APF UL12_1_VFD1 -> DPM DPM2_PS4_1 APF UL12_2_VFD1 -> DPM DPM2_PS4_1 APF UL12_3_VFD1 -> DPM DPM2_PS4_1 APF UL12_4_VFD1 -> DPM DPM2_PS4_1 APF UL12_5_VFD1 -> DPM DPM2_PS4_1 APF UL12_6_VFD1 -> DPM DPM2_PS4_1 APF UL12_7_VFD1 -> DPM DPM2_PS4_1 APF UL12_8_VFD1 -> DPM DPM2_PS4_1 - Added 12 E-stop check rungs [R090_STATION_JR_PB] Starting STATION_JR_PB routine generation... Found 10 STATION_JR_PB configurations Generated 10 STATION_JR_PB rungs [R0100_JPE] Starting JPE routine generation... Found 66 JPE configurations Generated 66 JPE rungs Belt tracking for PS3_1_VFD1 -> zzz_PS3_1Tracking Belt tracking for PS3_2_VFD1 -> zzz_PS3_2Tracking Belt tracking for PS3_3_VFD1 -> zzz_PS3_3Tracking Belt tracking for PS3_4A_VFD1 -> zzz_PS3_4ATracking Belt tracking for PS3_4B_VFD1 -> zzz_PS3_4BTracking Belt tracking for PS3_5_VFD1 -> zzz_PS3_5Tracking Belt tracking for PS3_6_VFD1 -> zzz_PS3_6Tracking Belt tracking for PS3_7_VFD1 -> zzz_PS3_7Tracking Belt tracking for PS4_1_VFD1 -> zzz_PS4_1Tracking Belt tracking for PS4_2_VFD1 -> zzz_PS4_2Tracking Belt tracking for PS4_3_VFD1 -> zzz_PS4_3Tracking Belt tracking for PS4_4A_VFD1 -> zzz_PS4_4ATracking Belt tracking for PS4_4B_VFD1 -> zzz_PS4_4BTracking Belt tracking for PS4_5_VFD1 -> zzz_PS4_5Tracking Belt tracking for PS4_6_VFD1 -> zzz_PS4_6Tracking Belt tracking for PS4_7_VFD1 -> zzz_PS4_7Tracking Belt tracking for UL7_1_VFD1 -> zzz_UL7_1Tracking Belt tracking for UL7_2_VFD1 -> zzz_UL7_2Tracking Belt tracking for UL7_3_VFD1 -> zzz_UL7_3Tracking Belt tracking for UL7_4_VFD1 -> zzz_UL7_4Tracking Belt tracking for UL7_5_VFD1 -> zzz_UL7_5Tracking Belt tracking for UL7_6_VFD1 -> zzz_UL7_6Tracking Belt tracking for UL7_7_VFD1 -> zzz_UL7_7Tracking Belt tracking for UL8_3_VFD1 -> zzz_UL8_3Tracking Belt tracking for UL8_4_VFD1 -> zzz_UL8_4Tracking Belt tracking for UL8_5_VFD1 -> zzz_UL8_5Tracking Belt tracking for UL8_6_VFD1 -> zzz_UL8_6Tracking Belt tracking for UL8_7_VFD1 -> zzz_UL8_7Tracking Belt tracking for UL8_8_VFD1 -> zzz_UL8_8Tracking Belt tracking for UL8_9_VFD1 -> zzz_UL8_9Tracking Belt tracking for UL9_3_VFD1 -> zzz_UL9_3Tracking Belt tracking for UL9_4_VFD1 -> zzz_UL9_4Tracking Belt tracking for UL9_5_VFD1 -> zzz_UL9_5Tracking Belt tracking for UL9_6_VFD1 -> zzz_UL9_6Tracking Belt tracking for UL9_7_VFD1 -> zzz_UL9_7Tracking Belt tracking for UL9_8_VFD1 -> zzz_UL9_8Tracking Belt tracking for UL9_9_VFD1 -> zzz_UL9_9Tracking Belt tracking for UL10_3_VFD1 -> zzz_UL10_3Tracking Belt tracking for UL10_4_VFD1 -> zzz_UL10_4Tracking Belt tracking for UL10_5_VFD1 -> zzz_UL10_5Tracking Belt tracking for UL10_6_VFD1 -> zzz_UL10_6Tracking Belt tracking for UL10_7_VFD1 -> zzz_UL10_7Tracking Belt tracking for UL10_8_VFD1 -> zzz_UL10_8Tracking Belt tracking for UL11_3_VFD1 -> zzz_UL11_3Tracking Belt tracking for UL11_4_VFD1 -> zzz_UL11_4Tracking Belt tracking for UL11_5_VFD1 -> zzz_UL11_5Tracking Belt tracking for UL11_6_VFD1 -> zzz_UL11_6Tracking Belt tracking for UL11_7_VFD1 -> zzz_UL11_7Tracking Belt tracking for UL11_8_VFD1 -> zzz_UL11_8Tracking Belt tracking for UL11_9_VFD1 -> zzz_UL11_9Tracking Belt tracking for UL12_1_VFD1 -> zzz_UL12_1Tracking Belt tracking for UL12_2_VFD1 -> zzz_UL12_2Tracking Belt tracking for UL12_3_VFD1 -> zzz_UL12_3Tracking Belt tracking for UL12_4_VFD1 -> zzz_UL12_4Tracking Belt tracking for UL12_5_VFD1 -> zzz_UL12_5Tracking Belt tracking for UL12_6_VFD1 -> zzz_UL12_6Tracking Belt tracking for UL12_7_VFD1 -> zzz_UL12_7Tracking Belt tracking for UL12_8_VFD1 -> zzz_UL12_8Tracking - Added 58 belt tracking AOI calls Created safety tag mapping file: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM03/SafetyTagMapping.txt === Step 2: Routines Generator stderr === [20:20:06] [INFO] [logging_config.py:128:_log_with_context] Logging to file: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/logs/workflow_SAT9_MCM03_20250904_202001.log [20:20:06] [INFO] [logging_config.py:128:_log_with_context] === Generating All PLC Artifacts === [20:20:06] [INFO] [logging_config.py:128:_log_with_context] Generating SafetyProgram L5X... [20:20:06] [WARNING] [logging_config.py:128:_log_with_context] LimitedSafetyProgramGenerator is deprecated; using ModernSafetyProgramGenerator [20:20:06] [INFO] [logging_config.py:128:_log_with_context] Starting ModernSafetyProgramGenerator generation [20:20:06] [DEBUG] [logging_config.py:128:_log_with_context] Creating SafetyProgram XML structure [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: main_routine (core) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: apf (device) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: belt_tracking (device) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: cb_monitor (device) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: d2c_chute (device) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: dpm (device) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: encoder (device) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: estops (safety) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: estop_check (safety) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: extendo (device) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: fioh (device) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: fiom (device) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: flow_ctrl (device) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: fpe (device) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: inputs (safety) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: jpe (device) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: mcm (core) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: outputs (safety) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: pb_chute (device) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: pmm (device) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: rack (core) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: resets (safety) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: safety_tag_map (core) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: safety_tag_mapping (safety) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: speed_ctrl (device) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_epc (safety) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_jr_chute (device) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_jr_pb (device) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_ss_pb (device) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_s_pb (device) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: taching_belts (device) [20:20:06] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: zones (safety) [20:20:06] [INFO] [logging_config.py:128:_log_with_context] Generating safety routines... [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: inputs [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: inputs [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: outputs [20:20:07] [DEBUG] [logging_config.py:126:_log_with_context] Zones: subsystem key [20:20:07] [DEBUG] [logging_config.py:126:_log_with_context] Zones: heuristic best match [20:20:07] [DEBUG] [logging_config.py:126:_log_with_context] Zones: loaded [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: outputs [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: resets [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: resets [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: zones [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for PS3_7: {'EPC1', 'EPC2'} [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for PS4_7: {'EPC1', 'EPC2'} [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for UL10_1: {'ESTOP1'} [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for UL11_1: {'ESTOP1'} [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for UL12_1: {'EPC1', 'EPC2'} [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for UL7_1: {'EPC1', 'EPC2'} [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for UL8_1: {'ESTOP1'} [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for UL9_1: {'ESTOP1'} [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Available DCS controllers: {'PS3_7': {'EPC1', 'EPC2'}, 'PS4_7': {'EPC1', 'EPC2'}, 'UL10_1': {'ESTOP1'}, 'UL11_1': {'ESTOP1'}, 'UL12_1': {'EPC1', 'EPC2'}, 'UL7_1': {'EPC1', 'EPC2'}, 'UL8_1': {'ESTOP1'}, 'UL9_1': {'ESTOP1'}} [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Zone 03-01 candidates: ['PS3_1', 'PS3_2', 'PS3_3', 'PS3_4', 'PS3_5', 'PS3_6', 'PS3_7'] [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base PS3_1 in zone 03-01 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base PS3_2 in zone 03-01 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base PS3_3 in zone 03-01 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base PS3_4 in zone 03-01 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base PS3_5 in zone 03-01 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base PS3_6 in zone 03-01 [20:20:07] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Zone 03-02 candidates: ['UL7_1', 'UL7_2', 'UL7_3', 'UL7_4', 'UL7_5', 'UL7_6', 'UL7_7'] [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL7_2 in zone 03-02 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL7_3 in zone 03-02 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL7_4 in zone 03-02 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL7_5 in zone 03-02 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL7_6 in zone 03-02 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL7_7 in zone 03-02 [20:20:07] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Zone 03-03 candidates: ['UL8_1', 'UL8_2', 'UL8_3', 'UL8_4', 'UL8_5', 'UL8_6', 'UL8_7', 'UL8_8', 'UL8_9'] [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL8_2 in zone 03-03 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL8_3 in zone 03-03 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL8_4 in zone 03-03 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL8_5 in zone 03-03 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL8_6 in zone 03-03 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL8_7 in zone 03-03 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL8_8 in zone 03-03 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL8_9 in zone 03-03 [20:20:07] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Zone 03-04 candidates: ['UL9_1', 'UL9_2', 'UL9_3', 'UL9_4', 'UL9_5', 'UL9_6', 'UL9_7', 'UL9_8', 'UL9_9'] [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL9_2 in zone 03-04 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL9_3 in zone 03-04 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL9_4 in zone 03-04 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL9_5 in zone 03-04 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL9_6 in zone 03-04 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL9_7 in zone 03-04 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL9_8 in zone 03-04 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL9_9 in zone 03-04 [20:20:07] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Zone 03-05 candidates: ['PS4_1', 'PS4_2', 'PS4_3', 'PS4_4', 'PS4_5', 'PS4_6', 'PS4_7'] [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base PS4_1 in zone 03-05 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base PS4_2 in zone 03-05 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base PS4_3 in zone 03-05 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base PS4_4 in zone 03-05 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base PS4_5 in zone 03-05 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base PS4_6 in zone 03-05 [20:20:07] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Zone 03-06 candidates: ['UL10_1', 'UL10_2', 'UL10_3', 'UL10_4', 'UL10_5', 'UL10_6', 'UL10_7', 'UL10_8'] [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL10_2 in zone 03-06 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL10_3 in zone 03-06 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL10_4 in zone 03-06 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL10_5 in zone 03-06 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL10_6 in zone 03-06 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL10_7 in zone 03-06 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL10_8 in zone 03-06 [20:20:07] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Zone 03-07 candidates: ['UL11_1', 'UL11_2', 'UL11_3', 'UL11_4', 'UL11_5', 'UL11_6', 'UL11_7', 'UL11_8', 'UL11_9'] [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL11_2 in zone 03-07 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL11_3 in zone 03-07 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL11_4 in zone 03-07 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL11_5 in zone 03-07 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL11_6 in zone 03-07 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL11_7 in zone 03-07 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL11_8 in zone 03-07 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL11_9 in zone 03-07 [20:20:07] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Zone 03-08 candidates: ['UL12_1', 'UL12_2', 'UL12_3', 'UL12_4', 'UL12_5', 'UL12_6', 'UL12_7', 'UL12_8', 'UL12_9'] [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL12_2 in zone 03-08 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL12_3 in zone 03-08 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL12_4 in zone 03-08 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL12_5 in zone 03-08 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL12_6 in zone 03-08 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL12_7 in zone 03-08 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL12_8 in zone 03-08 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base UL12_9 in zone 03-08 [20:20:07] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: zones [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: estops [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: estops [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Safety routine generation results: {'inputs': True, 'outputs': True, 'resets': True, 'zones': True, 'estops': True} [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag map with 7 tags [20:20:07] [INFO] [logging_config.py:126:_log_with_context] Routines created (6): MainRoutine, R010_INPUTS, R011_OUTPUTS, R012_RESETS, R020_ESTOPS, R030_ZONES [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R010_INPUTS: 29 rungs | example: XIC(Local:7:I.Pt02.Status)XIC(Local:7:I.Pt03.Status)OTE(MCM_EPB_STATUS); [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R011_OUTPUTS: 8 rungs | example: XIC(EStop_MCM_OK)XIC(EStop_03_01_OK)[OTE(PS3_1_VFD1:SO.STOOutput),OTE(PS3_2_VFD1:SO.STOOutput),OTE(PS3_3_VFD1:SO.STOOutput),OTE(PS3_4A_VFD1:SO.STOOutput),OTE... [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R012_RESETS: 8 rungs | example: [XIC(SFT_PS3_7_S1_PB) ,XIC(SFT_MCM_S_PB)]OTE(RST_PS3_7_EPC1_ESTOP); [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R030_ZONES: 9 rungs | example: XIC(PS3_7_EPC1_DCS_CTRL.O1)XIC(PS3_7_EPC2_DCS_CTRL.O1)OTE(EStop_03_01_OK); [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R020_ESTOPS: 13 rungs | example: DCS(MCM_EPB_DCS_CTRL,EMERGENCY STOP,EQUIVALENT - ACTIVE HIGH,500,MANUAL,AUTOMATIC,Local:7:I.Pt02.Data,Local:7:I.Pt03.Data,MCM_EPB_STATUS,SFT_MCM_S_PB); [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - MainRoutine: 1 rungs | example: [JSR(R010_INPUTS,0) ,JSR(R011_OUTPUTS,0) ,JSR(R012_RESETS,0) ,JSR(R020_ESTOPS,0) ,JSR(R030_ZONES,0) ]; [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully completed ModernSafetyProgramGenerator generation [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Written ModernSafetyProgramGenerator to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM03/SafetyProgram_Generated.L5X [20:20:07] [INFO] [logging_config.py:128:_log_with_context] [SUCCESS] SafetyProgram written to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM03/SafetyProgram_Generated.L5X [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Generating MainProgram L5X... [20:20:07] [WARNING] [logging_config.py:128:_log_with_context] LimitedMainProgramGenerator is deprecated; using ModernMainProgramGenerator [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Starting ModernMainProgramGenerator generation [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Creating MainProgram XML structure [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Adding controller tags... [20:20:07] [DEBUG] [logging_config.py:126:_log_with_context] Zones: subsystem key [20:20:07] [DEBUG] [logging_config.py:126:_log_with_context] Zones: heuristic best match [20:20:07] [DEBUG] [logging_config.py:126:_log_with_context] Zones: loaded [20:20:07] [DEBUG] [logging_config.py:126:_log_with_context] Extracting FPE data [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Data: FPE count=0 [20:20:07] [DEBUG] [logging_config.py:126:_log_with_context] Extracting PMM data [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Data: PMM entries=1 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] PMM processing PDP3_PMM [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] PMM PDP3_PMM DPM=DPM2_PS4_1 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] PMM PDP3_PMM PWM fault IO PDP3_FIO1:I.Pt12.Data [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] PMM PDP3_PMM configuration stored [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Data: PMM configs=1 [20:20:07] [DEBUG] [logging_config.py:126:_log_with_context] Extracting CB_MONITOR data [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Data: CB PDPs=1 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] CB_MONITOR PDP3: CBs=26 FIOs=2 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB1 (CB1) to position 0 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB2 (CB2) to position 1 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB3 (CB3) to position 2 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB4 (CB4) to position 3 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB5 (CB5) to position 4 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB6 (CB6) to position 5 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB7 (CB7) to position 6 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB8 (CB8) to position 7 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB9 (CB9) to position 8 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB10 (CB10) to position 9 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB11 (CB11) to position 10 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB12 (CB12) to position 11 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB13 (CB13) to position 12 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB14 (CB14) to position 13 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB15 (CB15) to position 14 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB16 (CB16) to position 15 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB17 (CB17) to position 16 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB18 (CB18) to position 17 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB19 (CB19) to position 18 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB20 (CB20) to position 19 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB21 (CB21) to position 20 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB22 (CB22) to position 21 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB23 (CB23) to position 22 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB24 (CB24) to position 23 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB25 (CB25) to position 24 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Mapped PDP3_CB26 (CB26) to position 25 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] CB_MONITOR PDP3: configured CBs=26 entries=['PDP3_CB1', 'PDP3_CB2', 'PDP3_CB3', 'PDP3_CB4', 'PDP3_CB5', 'PDP3_CB6', 'PDP3_CB7', 'PDP3_CB8', 'PDP3_CB9', 'PDP3_CB10', 'PDP3_CB11', 'PDP3_CB12', 'PDP3_CB13', 'PDP3_CB14', 'PDP3_CB15', 'PDP3_CB16', 'PDP3_CB17', 'PDP3_CB18', 'PDP3_CB19', 'PDP3_CB20', 'PDP3_CB21', 'PDP3_CB22', 'PDP3_CB23', 'PDP3_CB24', 'PDP3_CB25', 'PDP3_CB26'] fault=PDP3_FIO1:I.ConnectionFaulted [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Data: CB configs=1 [20:20:07] [INFO] [logging_config.py:126:_log_with_context] Tags created: total=365 | standard=19 safety=53 dcs=13 modules=272 [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Added 365 controller tags [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Generating main program routines... [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: mcm [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: mcm [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: rack [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: rack [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: dpm [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: dpm [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: fiom [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: fiom [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: fioh [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: fioh [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: apf [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: apf [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: flow_ctrl [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: flow_ctrl [20:20:07] [DEBUG] [logging_config.py:126:_log_with_context] Extracting SPEED_CTRL data [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Data: SPEED_CTRL VFDs=58 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] SPEED_CTRL sample=PS3_1_VFD1, PS3_2_VFD1, PS3_3_VFD1, PS3_4A_VFD1, PS3_4B_VFD1... [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Data: SPEED_CTRL count=58 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: speed_ctrl [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: speed_ctrl [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: estop_check [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: estop_check [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: encoder [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: encoder [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: safety_tag_map [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Safety tag map: RST data has 7 rows [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: MCM03 -> Local:5:I.Data.0 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: PS3_7_S2_PB -> PS3_5_VFD1:I.IO_0 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: PS3_7_S1_PB -> PS3_7_VFD1:I.IO_0 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: PS4_7_S2_PB -> PS4_5_VFD1:I.IO_0 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: PS4_7_S1_PB -> PS4_7_VFD1:I.IO_0 [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: UL12_1_SS1_SPB -> UL12_2_FIO1:I.Pt00.Data [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: UL7_1_SS1_SPB -> UL7_2_FIO1:I.Pt00.Data [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Safety tag map: Generating 7 rungs [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 1: XIC(Local:5:I.Data.0)OTE(MCM03); [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 2: XIC(PS3_7_VFD1:I.IO_0)OTE(PS3_7_S1_PB); [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 3: XIC(PS3_5_VFD1:I.IO_0)OTE(PS3_7_S2_PB); [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 4: XIC(PS4_7_VFD1:I.IO_0)OTE(PS4_7_S1_PB); [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 5: XIC(PS4_5_VFD1:I.IO_0)OTE(PS4_7_S2_PB); [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 6: XIC(UL7_2_FIO1:I.Pt00.Data)OTE(UL7_1_SS1_SPB); [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 7: XIC(UL12_2_FIO1:I.Pt00.Data)OTE(UL12_1_SS1_SPB); [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Safety tag map: Generated 7 total rungs [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: safety_tag_map [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: station_jr_pb [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: station_jr_pb [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: station_s_pb [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: station_s_pb [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: station_ss_pb [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: station_ss_pb [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: station_epc [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: station_epc [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: jpe [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: jpe [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Plugin fpe cannot generate with current data [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: pmm [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: pmm [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: cb_monitor [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: cb_monitor [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: belt_tracking [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: belt_tracking [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: main_routine [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Generating MainRoutine with JSR calls [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated MainRoutine [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: main_routine [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Main routine generation results: {'mcm': True, 'rack': True, 'dpm': True, 'fiom': True, 'fioh': True, 'apf': True, 'flow_ctrl': True, 'speed_ctrl': True, 'estop_check': True, 'encoder': True, 'safety_tag_map': True, 'station_jr_pb': True, 'station_s_pb': True, 'station_ss_pb': True, 'station_epc': True, 'jpe': True, 'fpe': False, 'pmm': True, 'cb_monitor': True, 'belt_tracking': True, 'main_routine': True} [20:20:07] [INFO] [logging_config.py:126:_log_with_context] Routines created (20): MainRoutine, R010_MCM, R011_RACK, R020_DPM, R030_FIOM, R031_FIOH, R040_APF, R050_FLOW_CTRL, R051_SPEED_CTRL, R060_PMM, R070_CB_MONITOR, R080_ENCODER, R090_STATION_JR_PB, R091_STATION_S_PB, R092_STATION_SS_PB, R093_STATION_EPC, R100_JPE, R120_ESTOP_CHECK, R130_SAFETY_TAG_MAP, ZZZ_BeltTracking [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R010_MCM: 2 rungs | example: NOP(); [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R011_RACK: 2 rungs | example: NOP(); [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R020_DPM: 5 rungs | example: NOP(); [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R030_FIOM: 8 rungs | example: NOP(); [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R031_FIOH: 2 rungs | example: NOP(); [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R040_APF: 59 rungs | example: NOP(); [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R050_FLOW_CTRL: 54 rungs | example: XIC(PS3_2_VFD1.CTRL.STS.Enabled)OTE(PS3_1_VFD1.CTRL.CMD.Interlock); [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R051_SPEED_CTRL: 1 rungs | example: [MOVE(Speed_350_FPM,PS3_1_VFD1.CTRL.CMD.Speed_FPM) ,MOVE(Speed_350_FPM,PS3_2_VFD1.CTRL.CMD.Speed_FPM) ,MOVE(Speed_350_FPM,PS3_3_VFD1.CTRL.CMD.Speed_FPM) ,MOV... [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R120_ESTOP_CHECK: 12 rungs | example: [XIO(PS3_7_VFD1:SI.In00Data) ,XIO(PS3_7_VFD1:SI.In01Data) ]XIO(PS3_1_VFD1:SO.STOOutput)XIO(PS3_2_VFD1:SO.STOOutput)XIO(PS3_3_VFD1:SO.STOOutput)XIO(PS3_4A_VFD... [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R080_ENCODER: 52 rungs | example: AOI_ENCODER(PS3_1_ENCODER.AOI,PS3_1_ENCODER.HMI,PS3_1_ENCODER.CTRL,PS3_1_VFD1.CTRL,NO_UPSTREAM,PS3_2_VFD1.CTRL,PS3_1_VFD1:I.In_1,PS3_1_VFD1:I.ConnectionFault... [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R130_SAFETY_TAG_MAP: 8 rungs | example: XIC(Local:5:I.Data.0)OTE(MCM_S_PB); [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R090_STATION_JR_PB: 10 rungs | example: AOI_STATION_JR_PB(PS3_1_JR1_PB.AOI,PS3_1_JR1_PB.HMI,PS3_1_JR1_PB.CTRL,NO_PARTNER,UL8_9_VFD1:I.IO_0,UL8_9_VFD1:O.IO_1,MCM.CTRL)MOVE(PS3_1_JR1_PB.CTRL.STS.Log,... [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R091_STATION_S_PB: 4 rungs | example: AOI_STATION_S_PB(PS3_7_S1_PB_STATION.AOI,PS3_7_S1_PB_STATION.HMI,PS3_7_S1_PB_STATION.CTRL,PS3_7_VFD1.CTRL,PS3_7_VFD1:I.IO_0,PS3_7_VFD1:O.IO_1,PS3_1_JR1_PB.CT... [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R092_STATION_SS_PB: 2 rungs | example: AOI_STATION_SS_PB(UL7_1_SS1_STATION.AOI,UL7_1_SS1_STATION.HMI,UL7_1_SS1_STATION.CTRL,UL7_1_VFD1.CTRL,UL7_2_FIO1:I.ConnectionFaulted,UL7_2_FIO1:I.Pt00.Data,UL... [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R093_STATION_EPC: 8 rungs | example: AOI_STATION_EPC(PS3_7_EPC1_STATION.AOI,MCM.CTRL,PS3_7_EPC1_STATION.HMI,PS3_7_S2_PB_STATION.CTRL,PS3_7_VFD1:I.ConnectionFaulted,PS3_7_VFD1:SI.In00Data,PS3_7_V... [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R100_JPE: 66 rungs | example: AOI_JPE(PS3_1_TPE1.AOI,PS3_1_TPE1.HMI,PS3_1_TPE1.CTRL,PS3_1_VFD1.CTRL,PS3_1_JR1_PB.CTRL,UL7_7_VFD1:I.ConnectionFaulted,UL7_7_VFD1:I.In_2,YES,UL8_8_VFD1:O.IO_0); [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R060_PMM: 2 rungs | example: NOP(); [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - R070_CB_MONITOR: 2 rungs | example: NOP(); [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - ZZZ_BeltTracking: 59 rungs | example: NOP(); [20:20:07] [INFO] [logging_config.py:126:_log_with_context] - MainRoutine: 1 rungs | example: [JSR(R010_MCM,0) ,JSR(R011_RACK,0) ,JSR(R020_DPM,0) ,JSR(R030_FIOM,0) ,JSR(R031_FIOH,0) ,JSR(R040_APF,0) ,JSR(R050_FLOW_CTRL,0) ,JSR(R051_SPEED_CTRL,0) ,JSR(... [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Successfully completed ModernMainProgramGenerator generation [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Written ModernMainProgramGenerator to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM03/MainProgram_Generated.L5X [20:20:07] [INFO] [logging_config.py:128:_log_with_context] [SUCCESS] MainProgram written to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM03/MainProgram_Generated.L5X [20:20:07] [INFO] [logging_config.py:128:_log_with_context] Generating safety tag mapping... [20:20:07] [DEBUG] [logging_config.py:128:_log_with_context] Creating MappingWriter wrapper [20:20:07] [DEBUG] [logging_config.py:126:_log_with_context] Creating DataLoader instance [20:20:07] [INFO] [logging_config.py:128:_log_with_context] [SUCCESS] Safety tag mapping written to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM03/SafetyTagMapping.txt [20:20:07] [INFO] [logging_config.py:128:_log_with_context] - Safety tags: 7 [20:20:07] [INFO] [logging_config.py:128:_log_with_context] === All artifacts generated successfully! === {"level": "INFO", "message": "Routine generation completed successfully", "timestamp": "2025-09-04T20:20:08.054062", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"} === Step 3: IO Tree Generator stdout === Enhanced MCM Generator - Project: SAT9_MCM03 - Excel: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/PLC Data Generator/DESC_IP_MERGED.xlsx - Boilerplate: SAT9_boilerplate - Mode: Single file -------------------------------------------------- Created 1 FIOH modules based on TERM analysis Found 7 IOLM modules Found 12 LPE modules Found 58 APF modules Found 4 DPM modules Found 1 PMM modules Created 7 IOLM modules with boilerplate selection: Device 'PDP3_FIO1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) PDP3_FIO1 (FIO PDP_FIO): Using variant boilerplate PDP_FIO_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/PDP_FIO_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/PDP_FIO_Module.L5X Device 'UL10_3_FIO1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) UL10_3_FIO1 (FIO D2CMaster): Using module-specific boilerplate UL10_3_FIO1_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/UL10_3_FIO1_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/UL10_3_FIO1_Module.L5X Device 'UL11_3_FIO1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) UL11_3_FIO1 (FIO D2CMaster): Using module-specific boilerplate UL11_3_FIO1_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/UL11_3_FIO1_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/UL11_3_FIO1_Module.L5X Device 'UL12_2_FIO1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) UL12_2_FIO1 (FIO D2CMaster): Using module-specific boilerplate UL12_2_FIO1_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/UL12_2_FIO1_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/UL12_2_FIO1_Module.L5X Device 'UL7_2_FIO1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) UL7_2_FIO1 (FIO D2CMaster): Using module-specific boilerplate UL7_2_FIO1_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/UL7_2_FIO1_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/UL7_2_FIO1_Module.L5X Device 'UL8_3_FIO1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) UL8_3_FIO1 (FIO D2CMaster): Using module-specific boilerplate UL8_3_FIO1_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/UL8_3_FIO1_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/UL8_3_FIO1_Module.L5X Device 'UL9_3_FIO1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) UL9_3_FIO1 (FIO D2CMaster): Using module-specific boilerplate UL9_3_FIO1_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/UL9_3_FIO1_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/UL9_3_FIO1_Module.L5X Device 'UL10_1_EXTENDO' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/EXTENDO_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/EXTENDO_Module.L5X Device 'UL11_1_EXTENDO' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/EXTENDO_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/EXTENDO_Module.L5X Device 'UL8_1_EXTENDO' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/EXTENDO_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/EXTENDO_Module.L5X Device 'UL9_1_EXTENDO' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/EXTENDO_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/EXTENDO_Module.L5X Device 'PS3_1_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_5_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_5_HP.L5X Device 'PS3_2_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X Device 'PS3_3_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'PS3_4A_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'PS3_4B_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'PS3_5_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'PS3_6_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'PS3_7_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'PS4_1_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_5_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_5_HP.L5X Device 'PS4_2_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X Device 'PS4_3_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'PS4_4A_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'PS4_4B_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'PS4_5_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'PS4_6_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'PS4_7_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL10_3_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X Device 'UL10_4_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X Device 'UL10_5_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL10_6_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL10_7_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL10_8_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL11_3_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X Device 'UL11_4_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X Device 'UL11_5_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL11_6_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL11_7_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL11_8_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL11_9_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL12_1_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL12_2_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_5_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_5_HP.L5X Device 'UL12_3_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X Device 'UL12_4_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL12_5_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL12_6_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL12_7_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL12_8_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL7_1_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL7_2_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_5_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_5_HP.L5X Device 'UL7_3_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X Device 'UL7_4_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL7_5_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL7_6_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL7_7_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL8_3_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_5_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_5_HP.L5X Device 'UL8_4_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X Device 'UL8_5_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL8_6_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL8_7_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL8_8_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL8_9_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL9_3_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_5_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_5_HP.L5X Device 'UL9_4_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X Device 'UL9_5_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL9_6_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL9_7_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL9_8_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Device 'UL9_9_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1) Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_2_HP.L5X Successfully loaded boilerplate: SAT9_boilerplate/PMM_Module.L5X PDP3_FIOH1 (FIOH PDP_FIOH): Using variant boilerplate PDP_FIOH_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/PDP_FIOH_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/PDP_FIOH_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/SLOT5_IB16_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/SLOT7_IB16S_Module.L5X Successfully loaded boilerplate: SAT9_boilerplate/SLOT6_OB16E_Module.L5X No EN4TR modules registered for creation Importing AOIs/DataTypes from MCM base: SAT9_boilerplate/MCM03.L5X Archived old L5X: SAT9_MCM03_20250904_201746.L5X Programs already exist (2 programs found), skipping empty program creation OK: Generated project: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM03/SAT9_MCM03_20250904_202011.L5X Single file generation complete - ['/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM03/SAT9_MCM03_20250904_202011.L5X'] === Step 3 Batch Script Creation === Creating project folder compilation for: SAT9_MCM03 Source L5X: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM03/SAT9_MCM03_20250904_202011.L5X Project directory: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM03 Generated batch file: compile_SAT9_MCM03.bat SUCCESS: Project compilation ready! To compile on Windows: cd "C:\\Users\\ilia.gurielidze\\Projects\\PLC Generation\\generated_projects\\SAT9_MCM03" compile_SAT9_MCM03.bat